From f32e178e46b043ccad839affe271c0776088da6f Mon Sep 17 00:00:00 2001 From: xxDUxx <96152564+xxDUxx@users.noreply.github.com> Date: Thu, 26 Jan 2023 17:53:30 +0100 Subject: [PATCH 001/594] Update widalt.settings.js --- apps/widalt/widalt.settings.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/widalt/widalt.settings.js b/apps/widalt/widalt.settings.js index 57993474e..a05934d8d 100644 --- a/apps/widalt/widalt.settings.js +++ b/apps/widalt/widalt.settings.js @@ -1,6 +1,6 @@ (function(back) { var settings = Object.assign({ - interval: 5000, + interval: 60000, }, require('Storage').readJSON("widalt.json", true) || {}); o=Bangle.getOptions(); Bangle.getPressure().then((p)=>{ From 8c700386613ec9da01c173bbaf36224375a467ac Mon Sep 17 00:00:00 2001 From: xxDUxx <96152564+xxDUxx@users.noreply.github.com> Date: Thu, 26 Jan 2023 18:18:11 +0100 Subject: [PATCH 002/594] Update app.js --- apps/contourclock/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/contourclock/app.js b/apps/contourclock/app.js index 407203e6c..0bf34b0fd 100644 --- a/apps/contourclock/app.js +++ b/apps/contourclock/app.js @@ -16,7 +16,7 @@ require('Storage').writeJSON("contourclock.json", settings); } require("FontTeletext10x18Ascii").add(Graphics); - let extrasShown = (!settings.hidewhenlocked) && (!Bangle.isLocked()); + let extrasShown = (!settings.hidewhenlocked) || (!Bangle.isLocked()); let installedFonts = require('Storage').readJSON("contourclock-install.json") || {}; if (installedFonts.n > 0) { //New install - check for unused font files settings.fontIndex = E.clip(settings.fontIndex, -installedFonts.n + 1, installedFonts.n - 1); From 4e6cc0961d5568d59dae15a8d7d3d24c539cf2ec Mon Sep 17 00:00:00 2001 From: xxDUxx <96152564+xxDUxx@users.noreply.github.com> Date: Thu, 26 Jan 2023 18:18:55 +0100 Subject: [PATCH 003/594] Update widalt.wid.js --- apps/widalt/widalt.wid.js | 54 +++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/apps/widalt/widalt.wid.js b/apps/widalt/widalt.wid.js index dbd1a763e..2080a4197 100644 --- a/apps/widalt/widalt.wid.js +++ b/apps/widalt/widalt.wid.js @@ -1,38 +1,42 @@ -(()=>{ - var alt=""; - var lastAlt=0; +(() => { + var alt = ""; + var lastAlt; + var timeout; var settings = Object.assign({ - interval: 5000, + interval: 60000, }, require('Storage').readJSON("widalt.json", true) || {}); - Bangle.setBarometerPower(true,"widalt"); - Bangle.on("pressure", (p)=>{ - if (Math.floor(p.altitude)!=lastAlt) { - lastAlt=Math.floor(p.altitude); - alt=p.altitude.toFixed(0); - var w = WIDGETS["widalt"].width; - WIDGETS["widalt"].width = 1 + (alt.length)*12+16; - if (w!=WIDGETS["widalt"].width) Bangle.drawWidgets(); - else WIDGETS["widalt"].draw(); + Bangle.setBarometerPower(true, "widalt"); + Bangle.on("pressure", (p) => { + if (timeout) return; + //some other app is using the barometer - ignore new readings until our interval is up + if (Math.floor(p.altitude) != lastAlt) { + lastAlt = Math.floor(p.altitude); + nextUpdate = Date.now() + settings.interval; + alt = p.altitude.toFixed(0); + WIDGETS.widalt.draw(); } - Bangle.setBarometerPower(false,"widalt") - setTimeout(()=>{Bangle.setBarometerPower(true,"widalt");},settings.interval); + Bangle.setBarometerPower(false, "widalt"); + timeout = setTimeout(() => { + timeout = undefined; + Bangle.setBarometerPower(true, "widalt"); + }, settings.interval); }); - + function draw() { - if (!Bangle.isLCDOn()) return; + if (!Bangle.isLCDOn()) return; g.reset(); - g.setColor(g.theme.bg); - g.fillRect(this.x, this.y, this.x + this.width, this.y + 23); - g.setColor(g.theme.fg); - g.drawImage(atob("EBCBAAAAAAAIAAwgFXAX0BCYIIggTD/EYPZADkACf/4AAAAA"), this.x, this.y+4); -g.setFontCustom(atob("AAAAABwAAOAAAgAAHAADwAD4AB8AB8AA+AAeAADAAAAOAAP+AH/8B4DwMAGBgAwMAGBgAwOAOA//gD/4AD4AAAAAAAABgAAcAwDAGAwAwP/+B//wAAGAAAwAAGAAAAAAAAIAwHgOA4DwMA+BgOwMDmBg4wOeGA/gwDwGAAAAAAAAAGAHA8A4DwMAGBhAwMMGBjgwOcOA+/gDj4AAAAABgAAcAAHgADsAA5gAOMAHBgBwMAP/+B//wABgAAMAAAAAAAgD4OB/AwOYGBjAwMYGBjBwMe8Bh/AIHwAAAAAAAAAfAAP8AHxwB8GAdgwPMGBxgwMOOAB/gAH4AAAAAAABgAAMAABgAwMAeBgPgMHwBj4AN8AB+AAPAABAAAAAAAMfAH38B/xwMcGBhgwMMGBjgwP+OA+/gDj4AAAAAAAAOAAH4AA/gQMMGBgzwME8BhvAOPgA/4AD8AAEAAAAAAGAwA4OAHBwAAA="), 46, atob("BAgMDAwMDAwMDAwMBQ=="), 21+(1<<8)+(1<<16)); + g.clearRect(this.x, this.y, this.x + this.width, this.y + 23); + var w = this.width; + this.width = 1 + (alt.length) * 12 + 16; + if (w != this.width) Bangle.drawWidgets(); + g.drawImage(atob("EBCBAAAAAAAIAAwgFXAX0BCYIIggTD/EYPZADkACf/4AAAAA"), this.x, this.y + 4); + g.setFontCustom(atob("AAAAABwAAOAAAgAAHAADwAD4AB8AB8AA+AAeAADAAAAOAAP+AH/8B4DwMAGBgAwMAGBgAwOAOA//gD/4AD4AAAAAAAABgAAcAwDAGAwAwP/+B//wAAGAAAwAAGAAAAAAAAIAwHgOA4DwMA+BgOwMDmBg4wOeGA/gwDwGAAAAAAAAAGAHA8A4DwMAGBhAwMMGBjgwOcOA+/gDj4AAAAABgAAcAAHgADsAA5gAOMAHBgBwMAP/+B//wABgAAMAAAAAAAgD4OB/AwOYGBjAwMYGBjBwMe8Bh/AIHwAAAAAAAAAfAAP8AHxwB8GAdgwPMGBxgwMOOAB/gAH4AAAAAAABgAAMAABgAwMAeBgPgMHwBj4AN8AB+AAPAABAAAAAAAMfAH38B/xwMcGBhgwMMGBjgwP+OA+/gDj4AAAAAAAAOAAH4AA/gQMMGBgzwME8BhvAOPgA/4AD8AAEAAAAAAGAwA4OAHBwAAA="), 46, atob("BAgMDAwMDAwMDAwMBQ=="), 21 + (1 << 8) + (1 << 16)); g.setFontAlign(-1, 0); - g.drawString(alt, this.x+16, this.y + 12); + g.drawString(alt, this.x + 16, this.y + 12); } - WIDGETS["widalt"] = { + WIDGETS.widalt = { area: "tr", width: 6, draw: draw }; - })(); From c9fd5eebc00d1b8c53076ad982cd3a82e3be653c Mon Sep 17 00:00:00 2001 From: xxDUxx <96152564+xxDUxx@users.noreply.github.com> Date: Thu, 30 Mar 2023 09:11:41 +0200 Subject: [PATCH 004/594] Update app.js --- apps/contourclock/app.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/contourclock/app.js b/apps/contourclock/app.js index 0bf34b0fd..2e1c25469 100644 --- a/apps/contourclock/app.js +++ b/apps/contourclock/app.js @@ -45,6 +45,7 @@ }; let hideExtras = function() { if (extrasTimeout) clearTimeout(extrasTimeout); + delete extrasTimeout; g.clearRect(0, 138, g.getWidth() - 1, 176); require("widget_utils").hide(); extrasShown = false; @@ -83,6 +84,8 @@ Bangle.removeListener('twist', showExtras); if (drawTimeout) clearTimeout(drawTimeout); if (extrasTimeout) clearTimeout(extrasTimeout); + delete drawTimeout; + delete extrasTimeout; if (settings.hideWhenLocked) require("widget_utils").show(); g.reset(); g.clear(); From 2ee7c6468acc5f6bbc6a4b282842906298a63689 Mon Sep 17 00:00:00 2001 From: paul-arg <18153423+paul-arg@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:27:46 +0200 Subject: [PATCH 005/594] elapsed_t: use the new pickers for target date and time --- apps/elapsed_t/ChangeLog | 1 + apps/elapsed_t/app.js | 268 ++++++++++++++++++++--------------- apps/elapsed_t/metadata.json | 2 +- 3 files changed, 157 insertions(+), 114 deletions(-) diff --git a/apps/elapsed_t/ChangeLog b/apps/elapsed_t/ChangeLog index 6a72c2590..193bb2413 100644 --- a/apps/elapsed_t/ChangeLog +++ b/apps/elapsed_t/ChangeLog @@ -1,3 +1,4 @@ 0.01: New App! 0.02: Handle AM/PM time in the "set target" menu. Add yesterday/today/tomorrow when showing target date to improve readability. 0.03: Add option to set clock as default, handle DST in day/month/year mode +0.04: Use new pickers from more_pickers library diff --git a/apps/elapsed_t/app.js b/apps/elapsed_t/app.js index 13fbca2cd..bda8d2ef1 100644 --- a/apps/elapsed_t/app.js +++ b/apps/elapsed_t/app.js @@ -49,17 +49,12 @@ function writeData() { require('Storage').writeJSON(APP_NAME + ".data.json", data); } -function writeSettings() { - require('Storage').writeJSON(APP_NAME + ".settings.json", settings); - temp_displaySeconds = settings.temp_displaySeconds; -} - let inMenu = false; Bangle.on('touch', function (zone, e) { if (!inMenu && e.y > 24) { if (drawTimeout) clearTimeout(drawTimeout); - E.showMenu(menu); + showMainMenu(); inMenu = true; } }); @@ -112,11 +107,11 @@ function formatDateTime(date, dateFormat, time24, showSeconds) { return formattedDateTime; } -function formatHourToAMPM(h){ +function formatHourToAMPM(h) { var ampm = (h >= 12 ? 'PM' : 'AM'); var h_ampm = h % 12; h_ampm = (h_ampm == 0 ? 12 : h_ampm); - return `${h_ampm} ${ampm}` + return `${h_ampm}\n${ampm}`; } function howManyDaysInMonth(month, year) { @@ -132,95 +127,145 @@ function handleExceedingDay() { } } -var menu = { - "": { - "title": "Set target", - back: function () { - E.showMenu(); - Bangle.setUI("clock"); - inMenu = false; - draw(); - } - }, - 'Day': { - value: data.target.D, - min: 1, max: 31, wrap: true, - onchange: v => { - data.target.D = v; - } - }, - 'Month': { - value: data.target.M, - min: 1, max: 12, noList: true, wrap: true, - onchange: v => { - data.target.M = v; - handleExceedingDay(); - } - }, - 'Year': { - value: data.target.Y, - min: 1900, max: 2100, - onchange: v => { - data.target.Y = v; - handleExceedingDay(); - } - }, - 'Hours': { - value: data.target.h, - min: 0, max: 23, wrap: true, - onchange: v => { - data.target.h = v; - }, - format: function (v) {return(settings.time24 ? pad2(v) : formatHourToAMPM(v))} - }, - 'Minutes': { - value: data.target.m, - min: 0, max: 59, wrap: true, - onchange: v => { - data.target.m = v; - }, - format: function (v) { return pad2(v); } - }, - 'Seconds': { - value: data.target.s, - min: 0, max: 59, wrap: true, - onchange: v => { - data.target.s = v; - }, - format: function (v) { return pad2(v); } - }, - 'Save': function () { - E.showMenu(); - inMenu = false; - Bangle.setUI("clock"); - setTarget(true); - writeSettings(); - temp_displaySeconds = settings.displaySeconds; - updateQueueMillis(settings.displaySeconds); - draw(); - }, - 'Reset': function () { - E.showMenu(); - inMenu = false; - Bangle.setUI("clock"); - setTarget(false); - updateQueueMillis(settings.displaySeconds); - draw(); - }, - 'Set clock as default': function () { - setClockAsDefault(); - E.showAlert("Elapsed Time was set as default").then(function() { - E.showMenu(); - inMenu = false; - Bangle.setUI("clock"); - draw(); - }); - } -}; +function getDatePickerObject() { + switch (settings.dateFormat) { + case 0: + return { + back: showMainMenu, + title: "Date", + separator_1: "/", + separator_2: "/", -function setClockAsDefault(){ + value_1: data.target.D, + min_1: 1, max_1: 31, step_1: 1, wrap_1: true, + + value_2: data.target.M, + min_2: 1, max_2: 12, step_2: 1, wrap_2: true, + + value_3: data.target.Y, + min_3: 1900, max_3: 2100, step_3: 1, wrap_3: true, + + format_1: function (v_1) { return (pad2(v_1)); }, + format_2: function (v_2) { return (pad2(v_2)); }, + onchange: function (v_1, v_2, v_3) { data.target.D = v_1; data.target.M = v_2; data.target.Y = v_3; setTarget(true); } + }; + + case 1: + return { + back: showMainMenu, + title: "Date", + separator_1: "/", + separator_2: "/", + + value_1: data.target.M, + min_1: 1, max_1: 12, step_1: 1, wrap_1: true, + + value_2: data.target.D, + min_2: 1, max_2: 31, step_2: 1, wrap_2: true, + + value_3: data.target.Y, + min_3: 1900, max_3: 2100, step_3: 1, wrap_3: true, + + format_1: function (v_1) { return (pad2(v_1)); }, + format_2: function (v_2) { return (pad2(v_2)); }, + onchange: function (v_1, v_2, v_3) { data.target.M = v_1; data.target.D = v_2; data.target.Y = v_3; setTarget(true); } + }; + + case 2: + return { + back: showMainMenu, + title: "Date", + separator_1: "-", + separator_2: "-", + + value_1: data.target.Y, + min_1: 1900, max_1: 2100, step_1: 1, wrap_1: true, + + value_2: data.target.M, + min_2: 1, max_2: 12, step_2: 1, wrap_2: true, + + value_3: data.target.D, + min_3: 1, max_3: 31, step_3: 1, wrap_3: true, + + format_1: function (v_1) { return (pad2(v_1)); }, + format_2: function (v_2) { return (pad2(v_2)); }, + onchange: function (v_1, v_2, v_3) { data.target.Y = v_1; data.target.M = v_2; data.target.D = v_3; setTarget(true); } + }; + } +} + +function getTimePickerObject() { + var timePickerObject = { + back: showMainMenu, + title: "Time", + separator_1: ":", + separator_2: ":", + + value_1: data.target.h, + min_1: 0, max_1: 23, step_1: 1, wrap_1: true, + + value_2: data.target.m, + min_2: 0, max_2: 59, step_2: 1, wrap_2: true, + + value_3: data.target.s, + min_3: 0, max_3: 59, step_3: 1, wrap_3: true, + + format_2: function (v_2) { return (pad2(v_2)); }, + format_3: function (v_3) { return (pad2(v_3)); }, + onchange: function (v_1, v_2, v_3) { data.target.h = v_1; data.target.m = v_2; data.target.s = v_3; setTarget(true); }, + }; + + if (settings.time24) { + timePickerObject.format_1 = function (v_1) { return (pad2(v_1)); }; + } else { + timePickerObject.format_1 = function (v_1) { return (formatHourToAMPM(v_1)); }; + } + + return timePickerObject; +} + +function showMainMenu() { + E.showMenu({ + "": { + "title": "Set target", + back: function () { + E.showMenu(); + Bangle.setUI("clock"); + inMenu = false; + draw(); + } + }, + 'Date': { + value: formatDateTime(target, settings.dateFormat, settings.time24, true).date, + onchange: function () { require("more_pickers").triplePicker(getDatePickerObject()); } + }, + 'Time': { + value: formatDateTime(target, settings.dateFormat, settings.time24, true).time, + onchange: function () { require("more_pickers").triplePicker(getTimePickerObject()); } + }, + 'Reset': function () { + E.showMenu(); + inMenu = false; + Bangle.setUI("clock"); + setTarget(false); + updateQueueMillis(settings.displaySeconds); + draw(); + }, + 'Set clock as default': function () { + setClockAsDefault(); + E.showAlert("Elapsed Time was set as default").then(function () { + E.showMenu(); + inMenu = false; + Bangle.setUI("clock"); + draw(); + }); + } + }); +} + +function setClockAsDefault() { let storage = require('Storage'); - let settings = storage.readJSON('setting.json',true)||{clock:null}; + let settings = storage.readJSON('setting.json', true) || { clock: null }; settings.clock = "elapsed_t.app.js"; storage.writeJSON('setting.json', settings); } @@ -238,26 +283,21 @@ function setTarget(set) { data.target.isSet = true; } else { target = new Date(); + target.setSeconds(0); Object.assign( data, { target: { isSet: false, - Y: now.getFullYear(), - M: now.getMonth() + 1, // Month is zero-based, so add 1 - D: now.getDate(), - h: now.getHours(), - m: now.getMinutes(), + Y: target.getFullYear(), + M: target.getMonth() + 1, // Month is zero-based, so add 1 + D: target.getDate(), + h: target.getHours(), + m: target.getMinutes(), s: 0 } } ); - menu.Day.value = data.target.D; - menu.Month.value = data.target.M; - menu.Year.value = data.target.Y; - menu.Hours.value = data.target.h; - menu.Minutes.value = data.target.m; - menu.Seconds.value = 0; } writeData(); @@ -269,7 +309,6 @@ setTarget(data.target.isSet); var drawTimeout; var queueMillis = 1000; - function queueDraw() { if (drawTimeout) clearTimeout(drawTimeout); var delay = queueMillis - (Date.now() % queueMillis); @@ -335,18 +374,21 @@ function diffToTarget() { var end; if (now > target) { - start = target; - end = now; + start = new Date(target.getTime()); + end = new Date(now.getTime()); } else { - start = now; - end = target; + start = new Date(now.getTime()); + end = new Date(target.getTime()); } + // Adjust for DST + end.setMinutes(end.getMinutes() + end.getTimezoneOffset() - start.getTimezoneOffset()); + diff.Y = end.getFullYear() - start.getFullYear(); diff.M = end.getMonth() - start.getMonth(); diff.D = end.getDate() - start.getDate(); diff.hh = end.getHours() - start.getHours(); - diff.mm = end.getMinutes() - start.getMinutes() + end.getTimezoneOffset() - start.getTimezoneOffset(); + diff.mm = end.getMinutes() - start.getMinutes(); diff.ss = end.getSeconds() - start.getSeconds(); // Adjust negative differences @@ -372,7 +414,6 @@ function diffToTarget() { diff.Y--; } - } else { var timeDifference = target - now; timeDifference = Math.abs(timeDifference); @@ -492,3 +533,4 @@ Bangle.drawWidgets(); Bangle.setUI("clock"); draw(); + diff --git a/apps/elapsed_t/metadata.json b/apps/elapsed_t/metadata.json index fa0674e0b..2515e0e79 100644 --- a/apps/elapsed_t/metadata.json +++ b/apps/elapsed_t/metadata.json @@ -3,7 +3,7 @@ "name": "Elapsed Time Clock", "shortName": "Elapsed Time", "type": "clock", - "version":"0.03", + "version":"0.04", "description": "A clock that calculates the time difference between now and any given target date.", "tags": "clock,tool", "supports": ["BANGLEJS2"], From 8be9b27f8b83605e72083c9ac99f09a68351817b Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Thu, 20 Jun 2024 09:15:12 -0700 Subject: [PATCH 006/594] Create app.js --- 8Ball/app.js | 1 + 1 file changed, 1 insertion(+) create mode 100644 8Ball/app.js diff --git a/8Ball/app.js b/8Ball/app.js new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/8Ball/app.js @@ -0,0 +1 @@ + From 61feaec8c72e7bc78829fe05e6155f1e30b16d90 Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Thu, 20 Jun 2024 09:18:29 -0700 Subject: [PATCH 007/594] Update app.js added the app --- 8Ball/app.js | 129 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) diff --git a/8Ball/app.js b/8Ball/app.js index 8b1378917..86096434d 100644 --- a/8Ball/app.js +++ b/8Ball/app.js @@ -1 +1,130 @@ +try {keyboard = require(keyboard);} catch(e) {keyboard = null;}var keyboard = "textinput"; +var Name = ""; +var WaitTime = 0; +Bangle.setLCDTimeout(0); +var answers = new Array("no", "yes","WHAT????","What do you think", "That was a bad question", "YES!!!", "NOOOOO!!", "nope","100%","yup","why should I answer that?","think for yourself","ask again later, I'm busy", "what Was that horrible question","how dare you?","you wanted to hear yes? okay, yes", "Don't get angry when I say no","you are 100% wrong","totally, for sure","hmmm... I'll ponder it and get back to you later","I just asked the presedent and they say yes","wow, you really have a lot of questions", "NOPE","is the sky blue, hmmm...","I don't have time to answer","How many more questions before you change my name?","theres this thing called wikipedia","hmm... I don't seem to be able to reach the internet right now","if you phrase it like that, yes","Huh, never thought so hard in my life","The winds of time say no"); +var consonants = new Array("b","c","d","f","g","h","j","k","l","m","n","p","q","r","s","t","v","w","x","y","z"); +var vowels = new Array("a","e","i","o","u"); +try {keyboard = require(keyboard);} catch(e) {keyboard = null;} +function generateName() +{ + Name = ""; + var nameLength = Math.round(Math.random()*5); + for(var i = 0; i < nameLength; i++){ + var cosonant = consonants[Math.round(Math.random()*consonants.length/2)]; + var vowel = vowels[Math.round(Math.random()*vowels.length/2)]; + Name = Name + cosonant + vowel; + if(Name == "") + { + generateName(); + } + } +} +generateName(); +function menu() +{ + g.clear(); + E.showMenu(); + menuOpen = 1; + E.showMenu({ + "" : { title : /*LANG*/Name }, + "< Back" : () => menu(), + "Start" : () => { + E.showMenu(); + g.clear(); + menuOpen = 0; + Drawtext("ask " + Name + " a yes or no question"); + }, + "Show name" : () => { + E.showMenu(); + if(Name == null) + { + E.showAlert("No Name Data").then(result => {menu();}); + } + + else + { + E.showAlert(Name).then(result => {menu();}); + } + }, + + "regenerate name" : () => { + E.showMenu(); + generateName(); + E.showAlert("name regenerated as " + Name).then(result => {menu();}); + + + }, + "show answers" : () => { + var menu = new Array(); + for(var i = 0; i < answers.length; i++){ + menu.push({title : answers[i]}); + } + E.showMenu(menu); + + + }, + + "Add answer" : () => { + E.showMenu(); + var result = keyboard.input({}).then(result => {if(result != ""){answers.push(result);} menu();}); + }, + "Edit name" : () => { + E.showMenu(); + var result = keyboard.input({}).then(result => {Name = result, menu();}); + + }, + "Exit" : () => load(), + }); +} +menu(); + + var answer; +function Drawtext(text) +{ + g.clear(); + //g.setFontAlign(0,0); + g.setFont("Vector", 20); + g.drawString(g.wrapString(text, g.getWidth(), -20).join("\n")); + + +} +function DrawWidgets() +{ + Bangle.loadWidgets(); + Bangle.drawWidgets(); +} +function WriteAnswer() +{ + if (menuOpen == 0) + { + var randomnumber = Math.round(Math.random()*answers.length); + answer = answers[randomnumber]; + var i; + + Drawtext(answer); + setTimeout(function() { + Drawtext("ask " + Name + " a yes or no question"); +}, 3000); + + } + +} +//turns screen timeout off when menu closed +//needs attention +/*if(menuOpen == 1) +{ + Bangle.setLCDTimeout(10); +} +else +{ + Bangle.setLCDTimeout(undefined); +}*/ + +setWatch(function() { + menu(); + +}, (process.env.HWVERSION==2) ? BTN1 : BTN2, {repeat:true, edge:"falling"}); + + Bangle.on('touch', function(button, xy) { WriteAnswer(); }); From 2b7aac868693668fa38761e982bf62386e24ef26 Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Thu, 20 Jun 2024 09:34:12 -0700 Subject: [PATCH 008/594] Create app-icon.js added appicon --- 8Ball/app-icon.js | 1 + 1 file changed, 1 insertion(+) create mode 100644 8Ball/app-icon.js diff --git a/8Ball/app-icon.js b/8Ball/app-icon.js new file mode 100644 index 000000000..18811535a --- /dev/null +++ b/8Ball/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwwIROj/wAod//wECgPgg+AAoIDBA4IFBhwCBuACBjgCBnACD4AICBwPACgVggfwgwFB4AiBgYuB4AHBgYsBGQQDBAooTBAAQTBgIFEBgYFBg4kBApARCwAdE4AFBAgMD8AFJCIRBDwJNHFwRZBCgIFCAQKMCg6gC///UQQFFsACBQYQFLFIoFKSpcBGgIABTYIFD4ArCGYQFFg4RDY4IXECAYAHA==")) From f73cdb7126caac0bc5e6c916bc871cffade6f306 Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Thu, 20 Jun 2024 09:41:13 -0700 Subject: [PATCH 009/594] Create metadata.json --- 8Ball/metadata.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 8Ball/metadata.json diff --git a/8Ball/metadata.json b/8Ball/metadata.json new file mode 100644 index 000000000..9cbe91389 --- /dev/null +++ b/8Ball/metadata.json @@ -0,0 +1,15 @@ +{ "id": "8ball", + "name": "Magic 8 ball", + "shortName":"8ball", + "icon": "8ball.png", + "version":"0.01", + "description": "It tells your future! + + Ask the 8ball a question by clicking start and then clicking the screen! Then it will answer you question with a yes or no answer (hint : only ask it yes or no questions, its a little dumb).", + "tags": "Games", + "supports": ["BANGLEJS2"], + "storage": [ + {"name":"8ball.app.js","url":"app.js"}, + {"name":"8ball.img","url":"app-icon.js","evaluate":true} + ] +} From e83129cfa1e16a825a63fa588f0d41f0da221c40 Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Thu, 20 Jun 2024 09:42:07 -0700 Subject: [PATCH 010/594] Add files via upload --- 8Ball/8ball.png | Bin 0 -> 983 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 8Ball/8ball.png diff --git a/8Ball/8ball.png b/8Ball/8ball.png new file mode 100644 index 0000000000000000000000000000000000000000..72344261a449d4945cc8c8e7e889bc8b1614e466 GIT binary patch literal 983 zcmV;|11S87P)6>g+VS4QY7+% ziE?@2!7brUZp8zUdBjLzghVdo{=iJR%(%^`>!(;ip{lsgQ#O8=MZchl=- zz*=cUj+wn>Ky}=J?f@G#yO|C)nYy+KxEp8p9#|6P6X~W`!8mUKP64AWbc{{0G>q1H zAd8S08uxxb1ttZcIT?5sw@z{iiQ&KpIWkY6lS{i{z=5E!66{s zgY9Q6*kq&w2j!yz=;33$e+XZba0$@TrQIlCx$M5^_uwQpEr1iUx#GcBv#gWgW1xcv zyE2E+dBcTW2Jk@ri||Qz&E8L7q(|H7z)lUM2H2qm>xMDFFTH-gBGWDnV4n|-8buec z9FlKy<5si*J^^(=wyg*-4H$1>*H=&eBhcE$@jT7IX;Mdt#xTdm_=t=bkvbM@42Nxu zV^JhgJT`UBQ6-_U=oy#wJz+vwJ@B@fJ_jUTNVvRLL^5mAHG?#`>kilQRCraW&wUkT zP8Dbn+>oDvUX1eMGH+8>I3y?&srnNR=j3B-P&bgKuzFH`R{BUb*}zR;ri(~q#^jnl zGP>1FpCZlt2<(|HKcU4xOrqKJd&Xqg zuX?nmtd5#2t&ML$7h93o7H=!jvrWGD`wB6 zR6chT0BsZOZ^LfSgZ%6m`%-XOg`JUlNWUoY45k0Hr+aywJ9!bQM6j75a-w$mC#z~+)g5*`4pw-*#hhzKQ*xA+J z&>Da>UiJZXI_jAfVF8z)pcU$9tIqAQR*vraK~N_oK540S(5Nrgu4 Date: Thu, 20 Jun 2024 09:57:31 -0700 Subject: [PATCH 011/594] Create app.js --- apps/8ball/app.js | 130 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 apps/8ball/app.js diff --git a/apps/8ball/app.js b/apps/8ball/app.js new file mode 100644 index 000000000..86096434d --- /dev/null +++ b/apps/8ball/app.js @@ -0,0 +1,130 @@ +try {keyboard = require(keyboard);} catch(e) {keyboard = null;}var keyboard = "textinput"; +var Name = ""; +var WaitTime = 0; +Bangle.setLCDTimeout(0); + +var answers = new Array("no", "yes","WHAT????","What do you think", "That was a bad question", "YES!!!", "NOOOOO!!", "nope","100%","yup","why should I answer that?","think for yourself","ask again later, I'm busy", "what Was that horrible question","how dare you?","you wanted to hear yes? okay, yes", "Don't get angry when I say no","you are 100% wrong","totally, for sure","hmmm... I'll ponder it and get back to you later","I just asked the presedent and they say yes","wow, you really have a lot of questions", "NOPE","is the sky blue, hmmm...","I don't have time to answer","How many more questions before you change my name?","theres this thing called wikipedia","hmm... I don't seem to be able to reach the internet right now","if you phrase it like that, yes","Huh, never thought so hard in my life","The winds of time say no"); +var consonants = new Array("b","c","d","f","g","h","j","k","l","m","n","p","q","r","s","t","v","w","x","y","z"); +var vowels = new Array("a","e","i","o","u"); +try {keyboard = require(keyboard);} catch(e) {keyboard = null;} +function generateName() +{ + Name = ""; + var nameLength = Math.round(Math.random()*5); + for(var i = 0; i < nameLength; i++){ + var cosonant = consonants[Math.round(Math.random()*consonants.length/2)]; + var vowel = vowels[Math.round(Math.random()*vowels.length/2)]; + Name = Name + cosonant + vowel; + if(Name == "") + { + generateName(); + } + } +} +generateName(); +function menu() +{ + g.clear(); + E.showMenu(); + menuOpen = 1; + E.showMenu({ + "" : { title : /*LANG*/Name }, + "< Back" : () => menu(), + "Start" : () => { + E.showMenu(); + g.clear(); + menuOpen = 0; + Drawtext("ask " + Name + " a yes or no question"); + }, + "Show name" : () => { + E.showMenu(); + if(Name == null) + { + E.showAlert("No Name Data").then(result => {menu();}); + } + + else + { + E.showAlert(Name).then(result => {menu();}); + } + }, + + "regenerate name" : () => { + E.showMenu(); + generateName(); + E.showAlert("name regenerated as " + Name).then(result => {menu();}); + + + }, + "show answers" : () => { + var menu = new Array(); + for(var i = 0; i < answers.length; i++){ + menu.push({title : answers[i]}); + } + E.showMenu(menu); + + + }, + + "Add answer" : () => { + E.showMenu(); + var result = keyboard.input({}).then(result => {if(result != ""){answers.push(result);} menu();}); + }, + "Edit name" : () => { + E.showMenu(); + var result = keyboard.input({}).then(result => {Name = result, menu();}); + + }, + "Exit" : () => load(), + }); +} +menu(); + + var answer; +function Drawtext(text) +{ + g.clear(); + //g.setFontAlign(0,0); + g.setFont("Vector", 20); + g.drawString(g.wrapString(text, g.getWidth(), -20).join("\n")); + + +} +function DrawWidgets() +{ + Bangle.loadWidgets(); + Bangle.drawWidgets(); +} +function WriteAnswer() +{ + if (menuOpen == 0) + { + var randomnumber = Math.round(Math.random()*answers.length); + answer = answers[randomnumber]; + var i; + + Drawtext(answer); + setTimeout(function() { + Drawtext("ask " + Name + " a yes or no question"); +}, 3000); + + } + +} +//turns screen timeout off when menu closed +//needs attention +/*if(menuOpen == 1) +{ + Bangle.setLCDTimeout(10); +} +else +{ + Bangle.setLCDTimeout(undefined); +}*/ + +setWatch(function() { + menu(); + +}, (process.env.HWVERSION==2) ? BTN1 : BTN2, {repeat:true, edge:"falling"}); + + Bangle.on('touch', function(button, xy) { WriteAnswer(); }); From 81fd82926f94211be7a7b669dbdcaa5d3dc70a8e Mon Sep 17 00:00:00 2001 From: paul-arg <18153423+paul-arg@users.noreply.github.com> Date: Sun, 23 Jun 2024 22:16:55 +0200 Subject: [PATCH 012/594] fix bug preventing to not show seconds when locked --- apps/elapsed_t/app.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/apps/elapsed_t/app.js b/apps/elapsed_t/app.js index bda8d2ef1..246ae4465 100644 --- a/apps/elapsed_t/app.js +++ b/apps/elapsed_t/app.js @@ -532,5 +532,11 @@ Bangle.loadWidgets(); Bangle.drawWidgets(); Bangle.setUI("clock"); +if (Bangle.isBacklightOn()) { + temp_displaySeconds = settings.displaySeconds; + updateQueueMillis(temp_displaySeconds); +} else { + temp_displaySeconds = false; + updateQueueMillis(false); +} draw(); - From 03f1f8cda0e67c561bc8102ff8cda90734a3b3a8 Mon Sep 17 00:00:00 2001 From: paul-arg <18153423+paul-arg@users.noreply.github.com> Date: Sun, 23 Jun 2024 22:54:16 +0200 Subject: [PATCH 013/594] elapsed_t: add setting to show seconds never/unlocked/always --- apps/elapsed_t/ChangeLog | 2 +- apps/elapsed_t/app.js | 48 +++++++++++++++----------------------- apps/elapsed_t/settings.js | 9 ++++--- 3 files changed, 26 insertions(+), 33 deletions(-) diff --git a/apps/elapsed_t/ChangeLog b/apps/elapsed_t/ChangeLog index 193bb2413..26fbf5ff0 100644 --- a/apps/elapsed_t/ChangeLog +++ b/apps/elapsed_t/ChangeLog @@ -1,4 +1,4 @@ 0.01: New App! 0.02: Handle AM/PM time in the "set target" menu. Add yesterday/today/tomorrow when showing target date to improve readability. 0.03: Add option to set clock as default, handle DST in day/month/year mode -0.04: Use new pickers from more_pickers library +0.04: Use new pickers from the more_pickers library, add settings to display seconds never/unlocked/always diff --git a/apps/elapsed_t/app.js b/apps/elapsed_t/app.js index 246ae4465..08e2e145f 100644 --- a/apps/elapsed_t/app.js +++ b/apps/elapsed_t/app.js @@ -24,14 +24,12 @@ var now = new Date(); var settings = Object.assign({ // default values - displaySeconds: true, + displaySeconds: 1, displayMonthsYears: true, dateFormat: 0, time24: true }, require('Storage').readJSON(APP_NAME + ".settings.json", true) || {}); -var temp_displaySeconds = settings.displaySeconds; - var data = Object.assign({ // default values target: { @@ -118,15 +116,6 @@ function howManyDaysInMonth(month, year) { return new Date(year, month, 0).getDate(); } -function handleExceedingDay() { - var maxDays = howManyDaysInMonth(data.target.M, data.target.Y); - menu.Day.max = maxDays; - if (data.target.D > maxDays) { - menu.Day.value = maxDays; - data.target.D = maxDays; - } -} - function getDatePickerObject() { switch (settings.dateFormat) { case 0: @@ -248,7 +237,6 @@ function showMainMenu() { inMenu = false; Bangle.setUI("clock"); setTarget(false); - updateQueueMillis(settings.displaySeconds); draw(); }, 'Set clock as default': function () { @@ -307,7 +295,8 @@ var target; setTarget(data.target.isSet); var drawTimeout; -var queueMillis = 1000; +var temp_displaySeconds; +var queueMillis; function queueDraw() { if (drawTimeout) clearTimeout(drawTimeout); @@ -322,27 +311,25 @@ function queueDraw() { }, delay); } -function updateQueueMillis(displaySeconds) { +function updateQueueMillisAndDraw(displaySeconds) { + temp_displaySeconds = displaySeconds; if (displaySeconds) { queueMillis = 1000; } else { queueMillis = 60000; } + draw(); } Bangle.on('lock', function (on, reason) { - if (inMenu) { // if already in a menu, nothing to do + if (inMenu || settings.displaySeconds == 0 || settings.displaySeconds == 2) { // if already in a menu, or always/never show seconds, nothing to do return; } if (on) { // screen is locked - temp_displaySeconds = false; - updateQueueMillis(false); - draw(); + updateQueueMillisAndDraw(false); } else { // screen is unlocked - temp_displaySeconds = settings.displaySeconds; - updateQueueMillis(temp_displaySeconds); - draw(); + updateQueueMillisAndDraw(true); } }); @@ -532,11 +519,14 @@ Bangle.loadWidgets(); Bangle.drawWidgets(); Bangle.setUI("clock"); -if (Bangle.isBacklightOn()) { - temp_displaySeconds = settings.displaySeconds; - updateQueueMillis(temp_displaySeconds); -} else { - temp_displaySeconds = false; - updateQueueMillis(false); +switch (settings.displaySeconds) { + case 0: // never + updateQueueMillisAndDraw(false); + break; + case 1: // unlocked + updateQueueMillisAndDraw(Bangle.isBacklightOn()); + break; + case 2: // always + updateQueueMillisAndDraw(true); + break; } -draw(); diff --git a/apps/elapsed_t/settings.js b/apps/elapsed_t/settings.js index d3a7cb357..9b405986f 100644 --- a/apps/elapsed_t/settings.js +++ b/apps/elapsed_t/settings.js @@ -4,7 +4,7 @@ // Load settings var settings = Object.assign({ // default values - displaySeconds: true, + displaySeconds: 1, displayMonthsYears: true, dateFormat: 0, time24: true @@ -15,17 +15,20 @@ } var dateFormats = ["DD/MM/YYYY", "MM/DD/YYYY", "YYYY-MM-DD"]; + var displaySecondsFormats = ["Never", "Unlocked", "Always"]; // Show the menu E.showMenu({ "" : { "title" : "Elapsed Time" }, "< Back" : () => back(), 'Show\nseconds': { - value: !!settings.displaySeconds, + value: settings.displaySeconds, + min: 0, max: 2, wrap: true, onchange: v => { settings.displaySeconds = v; writeSettings(); - } + }, + format: function (v) {return displaySecondsFormats[v];} }, 'Show months/\nyears': { value: !!settings.displayMonthsYears, From e5c82c43415a826c0a3fbbbebdd434778a09f06a Mon Sep 17 00:00:00 2001 From: paul-arg <18153423+paul-arg@users.noreply.github.com> Date: Sun, 23 Jun 2024 23:03:59 +0200 Subject: [PATCH 014/594] elapsed_t: ensure retro compatibility with the previous displaySeconds setting --- apps/elapsed_t/app.js | 9 +++++++++ apps/elapsed_t/settings.js | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/apps/elapsed_t/app.js b/apps/elapsed_t/app.js index 08e2e145f..29bea4fef 100644 --- a/apps/elapsed_t/app.js +++ b/apps/elapsed_t/app.js @@ -30,6 +30,15 @@ var settings = Object.assign({ time24: true }, require('Storage').readJSON(APP_NAME + ".settings.json", true) || {}); +function writeSettings() { + require('Storage').writeJSON(APP_NAME + ".settings.json", settings); +} + +if (typeof settings.displaySeconds === 'boolean') { + settings.displaySeconds = 1; + writeSettings(); +} + var data = Object.assign({ // default values target: { diff --git a/apps/elapsed_t/settings.js b/apps/elapsed_t/settings.js index 9b405986f..4726516d5 100644 --- a/apps/elapsed_t/settings.js +++ b/apps/elapsed_t/settings.js @@ -14,6 +14,11 @@ require('Storage').writeJSON(FILE, settings); } + if (typeof settings.displaySeconds === 'boolean') { + settings.displaySeconds = 1; + writeSettings(); + } + var dateFormats = ["DD/MM/YYYY", "MM/DD/YYYY", "YYYY-MM-DD"]; var displaySecondsFormats = ["Never", "Unlocked", "Always"]; From e984cb18c0ce0553d9528e9b38cf6860eb319ac4 Mon Sep 17 00:00:00 2001 From: paul-arg <18153423+paul-arg@users.noreply.github.com> Date: Sun, 23 Jun 2024 23:05:44 +0200 Subject: [PATCH 015/594] elapsed_t: update readme --- apps/elapsed_t/README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/elapsed_t/README.md b/apps/elapsed_t/README.md index dc2173409..9e361be59 100644 --- a/apps/elapsed_t/README.md +++ b/apps/elapsed_t/README.md @@ -1,7 +1,10 @@ # Elapsed Time Clock A clock that calculates the time difference between now (in blue/cyan) and any given target date (in red/orange). -The results is show in years, months, days, hours, minutes, seconds. To save battery life, the seconds are shown only when the watch is unlocked, or can be disabled entirely. +The results is show in years, months, days, hours, minutes, seconds. The seconds can be shown: +- always +- when the watch is unlocked +- never. The time difference is positive if the target date is in the past and negative if it is in the future. From 57cb0586419165b23f7196e0af3016b815914ba1 Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Sat, 6 Jul 2024 13:41:38 -0700 Subject: [PATCH 016/594] Add files via upload --- apps/8ball/8ball.png | Bin 0 -> 983 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/8ball/8ball.png diff --git a/apps/8ball/8ball.png b/apps/8ball/8ball.png new file mode 100644 index 0000000000000000000000000000000000000000..72344261a449d4945cc8c8e7e889bc8b1614e466 GIT binary patch literal 983 zcmV;|11S87P)6>g+VS4QY7+% ziE?@2!7brUZp8zUdBjLzghVdo{=iJR%(%^`>!(;ip{lsgQ#O8=MZchl=- zz*=cUj+wn>Ky}=J?f@G#yO|C)nYy+KxEp8p9#|6P6X~W`!8mUKP64AWbc{{0G>q1H zAd8S08uxxb1ttZcIT?5sw@z{iiQ&KpIWkY6lS{i{z=5E!66{s zgY9Q6*kq&w2j!yz=;33$e+XZba0$@TrQIlCx$M5^_uwQpEr1iUx#GcBv#gWgW1xcv zyE2E+dBcTW2Jk@ri||Qz&E8L7q(|H7z)lUM2H2qm>xMDFFTH-gBGWDnV4n|-8buec z9FlKy<5si*J^^(=wyg*-4H$1>*H=&eBhcE$@jT7IX;Mdt#xTdm_=t=bkvbM@42Nxu zV^JhgJT`UBQ6-_U=oy#wJz+vwJ@B@fJ_jUTNVvRLL^5mAHG?#`>kilQRCraW&wUkT zP8Dbn+>oDvUX1eMGH+8>I3y?&srnNR=j3B-P&bgKuzFH`R{BUb*}zR;ri(~q#^jnl zGP>1FpCZlt2<(|HKcU4xOrqKJd&Xqg zuX?nmtd5#2t&ML$7h93o7H=!jvrWGD`wB6 zR6chT0BsZOZ^LfSgZ%6m`%-XOg`JUlNWUoY45k0Hr+aywJ9!bQM6j75a-w$mC#z~+)g5*`4pw-*#hhzKQ*xA+J z&>Da>UiJZXI_jAfVF8z)pcU$9tIqAQR*vraK~N_oK540S(5Nrgu4 Date: Sat, 6 Jul 2024 13:45:52 -0700 Subject: [PATCH 018/594] Create app-icon.js --- apps/8ball/app-icon.js | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/8ball/app-icon.js diff --git a/apps/8ball/app-icon.js b/apps/8ball/app-icon.js new file mode 100644 index 000000000..399dbef21 --- /dev/null +++ b/apps/8ball/app-icon.js @@ -0,0 +1 @@ +atob("MDCBAAAAAAAAAAAAAAAAAAAAH/AAAAAAf/4AAAAB4AeAAAAHgAHgAAAOAABwAAAcAAA4AAA4AMAcAABwAMAOAABgA/AGAADAAeADAAHAAMADgAGAAAABgAGAAAABgAMAAAAAwAMBAAAAwAMDAAAAwAMHwAAAwAMHwAAAwAMDAACAwAMBAADAwAMAAAPgwAMAAAPgwAMAAADAwAGAAACBgAGAAAABgAHAAAADgADAAAADAADgAAAHAAB////+AAB////+AABgAAAGAABgAAAGAABgAAAGAADAAAADAADAAAADAADAAAADAAGAAAABgAGAAAABgAH/////gAP/////wAYAAAAAYAYAAAAAYAf/////4AP/////wAAAAAAAAAAAAAAAAA==") From d8db65b3e76d36c83f24ba21513b0a9e8938fe90 Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Sat, 6 Jul 2024 13:46:19 -0700 Subject: [PATCH 019/594] Create metadata.json --- apps/8ball/metadata.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 apps/8ball/metadata.json diff --git a/apps/8ball/metadata.json b/apps/8ball/metadata.json new file mode 100644 index 000000000..9cbe91389 --- /dev/null +++ b/apps/8ball/metadata.json @@ -0,0 +1,15 @@ +{ "id": "8ball", + "name": "Magic 8 ball", + "shortName":"8ball", + "icon": "8ball.png", + "version":"0.01", + "description": "It tells your future! + + Ask the 8ball a question by clicking start and then clicking the screen! Then it will answer you question with a yes or no answer (hint : only ask it yes or no questions, its a little dumb).", + "tags": "Games", + "supports": ["BANGLEJS2"], + "storage": [ + {"name":"8ball.app.js","url":"app.js"}, + {"name":"8ball.img","url":"app-icon.js","evaluate":true} + ] +} From 8f4ea698e29862f4260dc2847d38c2f29d415a72 Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Sat, 6 Jul 2024 13:46:52 -0700 Subject: [PATCH 020/594] Delete 8Ball directory --- 8Ball/8ball.png | Bin 983 -> 0 bytes 8Ball/app-icon.js | 1 - 8Ball/app.js | 130 -------------------------------------------- 8Ball/metadata.json | 15 ----- 4 files changed, 146 deletions(-) delete mode 100644 8Ball/8ball.png delete mode 100644 8Ball/app-icon.js delete mode 100644 8Ball/app.js delete mode 100644 8Ball/metadata.json diff --git a/8Ball/8ball.png b/8Ball/8ball.png deleted file mode 100644 index 72344261a449d4945cc8c8e7e889bc8b1614e466..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 983 zcmV;|11S87P)6>g+VS4QY7+% ziE?@2!7brUZp8zUdBjLzghVdo{=iJR%(%^`>!(;ip{lsgQ#O8=MZchl=- zz*=cUj+wn>Ky}=J?f@G#yO|C)nYy+KxEp8p9#|6P6X~W`!8mUKP64AWbc{{0G>q1H zAd8S08uxxb1ttZcIT?5sw@z{iiQ&KpIWkY6lS{i{z=5E!66{s zgY9Q6*kq&w2j!yz=;33$e+XZba0$@TrQIlCx$M5^_uwQpEr1iUx#GcBv#gWgW1xcv zyE2E+dBcTW2Jk@ri||Qz&E8L7q(|H7z)lUM2H2qm>xMDFFTH-gBGWDnV4n|-8buec z9FlKy<5si*J^^(=wyg*-4H$1>*H=&eBhcE$@jT7IX;Mdt#xTdm_=t=bkvbM@42Nxu zV^JhgJT`UBQ6-_U=oy#wJz+vwJ@B@fJ_jUTNVvRLL^5mAHG?#`>kilQRCraW&wUkT zP8Dbn+>oDvUX1eMGH+8>I3y?&srnNR=j3B-P&bgKuzFH`R{BUb*}zR;ri(~q#^jnl zGP>1FpCZlt2<(|HKcU4xOrqKJd&Xqg zuX?nmtd5#2t&ML$7h93o7H=!jvrWGD`wB6 zR6chT0BsZOZ^LfSgZ%6m`%-XOg`JUlNWUoY45k0Hr+aywJ9!bQM6j75a-w$mC#z~+)g5*`4pw-*#hhzKQ*xA+J z&>Da>UiJZXI_jAfVF8z)pcU$9tIqAQR*vraK~N_oK540S(5Nrgu4 menu(), - "Start" : () => { - E.showMenu(); - g.clear(); - menuOpen = 0; - Drawtext("ask " + Name + " a yes or no question"); - }, - "Show name" : () => { - E.showMenu(); - if(Name == null) - { - E.showAlert("No Name Data").then(result => {menu();}); - } - - else - { - E.showAlert(Name).then(result => {menu();}); - } - }, - - "regenerate name" : () => { - E.showMenu(); - generateName(); - E.showAlert("name regenerated as " + Name).then(result => {menu();}); - - - }, - "show answers" : () => { - var menu = new Array(); - for(var i = 0; i < answers.length; i++){ - menu.push({title : answers[i]}); - } - E.showMenu(menu); - - - }, - - "Add answer" : () => { - E.showMenu(); - var result = keyboard.input({}).then(result => {if(result != ""){answers.push(result);} menu();}); - }, - "Edit name" : () => { - E.showMenu(); - var result = keyboard.input({}).then(result => {Name = result, menu();}); - - }, - "Exit" : () => load(), - }); -} -menu(); - - var answer; -function Drawtext(text) -{ - g.clear(); - //g.setFontAlign(0,0); - g.setFont("Vector", 20); - g.drawString(g.wrapString(text, g.getWidth(), -20).join("\n")); - - -} -function DrawWidgets() -{ - Bangle.loadWidgets(); - Bangle.drawWidgets(); -} -function WriteAnswer() -{ - if (menuOpen == 0) - { - var randomnumber = Math.round(Math.random()*answers.length); - answer = answers[randomnumber]; - var i; - - Drawtext(answer); - setTimeout(function() { - Drawtext("ask " + Name + " a yes or no question"); -}, 3000); - - } - -} -//turns screen timeout off when menu closed -//needs attention -/*if(menuOpen == 1) -{ - Bangle.setLCDTimeout(10); -} -else -{ - Bangle.setLCDTimeout(undefined); -}*/ - -setWatch(function() { - menu(); - -}, (process.env.HWVERSION==2) ? BTN1 : BTN2, {repeat:true, edge:"falling"}); - - Bangle.on('touch', function(button, xy) { WriteAnswer(); }); diff --git a/8Ball/metadata.json b/8Ball/metadata.json deleted file mode 100644 index 9cbe91389..000000000 --- a/8Ball/metadata.json +++ /dev/null @@ -1,15 +0,0 @@ -{ "id": "8ball", - "name": "Magic 8 ball", - "shortName":"8ball", - "icon": "8ball.png", - "version":"0.01", - "description": "It tells your future! - - Ask the 8ball a question by clicking start and then clicking the screen! Then it will answer you question with a yes or no answer (hint : only ask it yes or no questions, its a little dumb).", - "tags": "Games", - "supports": ["BANGLEJS2"], - "storage": [ - {"name":"8ball.app.js","url":"app.js"}, - {"name":"8ball.img","url":"app-icon.js","evaluate":true} - ] -} From 47854f69507783ccb19531f4ea9a5abeae2d2336 Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Tue, 9 Jul 2024 14:09:44 -0700 Subject: [PATCH 021/594] Update app.js added clockbackground app functionality --- apps/boxclk/app.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/apps/boxclk/app.js b/apps/boxclk/app.js index 12c69e789..34ffac1b6 100644 --- a/apps/boxclk/app.js +++ b/apps/boxclk/app.js @@ -4,7 +4,7 @@ * 1. Module dependencies and initial configurations * --------------------------------------------------------------- */ - + let background = require("clockbg"); let storage = require("Storage"); let locale = require("locale"); let widgets = require("widget_utils"); @@ -224,9 +224,7 @@ return function(boxes) { date = new Date(); g.clear(); - if (bgImage) { - g.drawImage(bgImage, 0, 0); - } + background.fillRect(Bangle.appRect); if (boxes.time) { boxes.time.string = modString(boxes.time, locale.time(date, isBool(boxes.time.short, true) ? 1 : 0)); updatePerMinute = isBool(boxes.time.short, true); @@ -412,4 +410,4 @@ widgets.swipeOn(); modSetColor(); setup(); -} \ No newline at end of file +} From bf7eba198f61001649687ae36e4bfa6968df46f2 Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Tue, 9 Jul 2024 14:10:37 -0700 Subject: [PATCH 022/594] Update ChangeLog --- apps/boxclk/ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/boxclk/ChangeLog b/apps/boxclk/ChangeLog index cc73fbc08..b78eba44c 100644 --- a/apps/boxclk/ChangeLog +++ b/apps/boxclk/ChangeLog @@ -3,3 +3,4 @@ 0.03: Allows showing the month in short or long format by setting `"shortMonth"` to true or false 0.04: Improves touchscreen drag handling for background apps such as Pattern Launcher 0.05: Fixes step count not resetting after a new day starts +0.06 Added clockbackground app functionality From b9c528214a3d647d3f1512df497335bcc2547bad Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Tue, 9 Jul 2024 14:12:39 -0700 Subject: [PATCH 023/594] Update metadata.json --- apps/8ball/metadata.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/apps/8ball/metadata.json b/apps/8ball/metadata.json index 9cbe91389..62c7eb468 100644 --- a/apps/8ball/metadata.json +++ b/apps/8ball/metadata.json @@ -3,9 +3,7 @@ "shortName":"8ball", "icon": "8ball.png", "version":"0.01", - "description": "It tells your future! - - Ask the 8ball a question by clicking start and then clicking the screen! Then it will answer you question with a yes or no answer (hint : only ask it yes or no questions, its a little dumb).", + "description": "It tells your future!", "tags": "Games", "supports": ["BANGLEJS2"], "storage": [ From 5fcb2a0e70a3d099f0898215a99f293ffeda8656 Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Tue, 9 Jul 2024 14:17:48 -0700 Subject: [PATCH 024/594] Update metadata.json --- apps/8ball/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/8ball/metadata.json b/apps/8ball/metadata.json index 62c7eb468..beb3a07a9 100644 --- a/apps/8ball/metadata.json +++ b/apps/8ball/metadata.json @@ -4,7 +4,7 @@ "icon": "8ball.png", "version":"0.01", "description": "It tells your future!", - "tags": "Games", + "tags": "", "supports": ["BANGLEJS2"], "storage": [ {"name":"8ball.app.js","url":"app.js"}, From 6c84343cca30b41fc681d6da42697e71041210f1 Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Tue, 9 Jul 2024 14:18:53 -0700 Subject: [PATCH 025/594] Update metadata.json --- apps/8ball/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/8ball/metadata.json b/apps/8ball/metadata.json index beb3a07a9..43f24f385 100644 --- a/apps/8ball/metadata.json +++ b/apps/8ball/metadata.json @@ -4,7 +4,7 @@ "icon": "8ball.png", "version":"0.01", "description": "It tells your future!", - "tags": "", + "tags": "games", "supports": ["BANGLEJS2"], "storage": [ {"name":"8ball.app.js","url":"app.js"}, From b0874f33b5318dde78c7776db35d59cc3801e8b7 Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Tue, 9 Jul 2024 14:20:42 -0700 Subject: [PATCH 026/594] Update metadata.json --- apps/8ball/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/8ball/metadata.json b/apps/8ball/metadata.json index 43f24f385..029deebbb 100644 --- a/apps/8ball/metadata.json +++ b/apps/8ball/metadata.json @@ -4,7 +4,7 @@ "icon": "8ball.png", "version":"0.01", "description": "It tells your future!", - "tags": "games", + "tags": "game", "supports": ["BANGLEJS2"], "storage": [ {"name":"8ball.app.js","url":"app.js"}, From 424d199d60ded91cb48c52c0ca6ab33696425a7f Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Tue, 9 Jul 2024 14:23:34 -0700 Subject: [PATCH 027/594] Update metadata.json --- apps/8ball/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/8ball/metadata.json b/apps/8ball/metadata.json index 029deebbb..e8417ecb0 100644 --- a/apps/8ball/metadata.json +++ b/apps/8ball/metadata.json @@ -4,7 +4,7 @@ "icon": "8ball.png", "version":"0.01", "description": "It tells your future!", - "tags": "game", + "tags": "'game'", "supports": ["BANGLEJS2"], "storage": [ {"name":"8ball.app.js","url":"app.js"}, From 95aa6aebe4421c364c69c0a0972cf88063c17d2f Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Tue, 9 Jul 2024 14:26:05 -0700 Subject: [PATCH 028/594] Update metadata.json --- apps/8ball/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/8ball/metadata.json b/apps/8ball/metadata.json index e8417ecb0..029deebbb 100644 --- a/apps/8ball/metadata.json +++ b/apps/8ball/metadata.json @@ -4,7 +4,7 @@ "icon": "8ball.png", "version":"0.01", "description": "It tells your future!", - "tags": "'game'", + "tags": "game", "supports": ["BANGLEJS2"], "storage": [ {"name":"8ball.app.js","url":"app.js"}, From 7bf68cd8d10181ea627558df8eb0f6412a65c93e Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Tue, 9 Jul 2024 14:29:28 -0700 Subject: [PATCH 030/594] Delete apps/boxclk/boxclk.space.img --- apps/boxclk/boxclk.space.img | Bin 30979 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 apps/boxclk/boxclk.space.img diff --git a/apps/boxclk/boxclk.space.img b/apps/boxclk/boxclk.space.img deleted file mode 100644 index 1708b5c24248a388661783f446bd86f5a2e4f715..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30979 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 Date: Tue, 9 Jul 2024 14:33:15 -0700 Subject: [PATCH 031/594] Add files via upload --- apps/8ball/screenshot.png | Bin 0 -> 2794 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/8ball/screenshot.png diff --git a/apps/8ball/screenshot.png b/apps/8ball/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..f1f888cf339e202c85206ca66034cfa298fe8fff GIT binary patch literal 2794 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 Date: Tue, 9 Jul 2024 14:33:51 -0700 Subject: [PATCH 032/594] Add files via upload --- apps/8ball/screenshot (1).png | Bin 0 -> 2071 bytes apps/8ball/screenshot (2).png | Bin 0 -> 2159 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/8ball/screenshot (1).png create mode 100644 apps/8ball/screenshot (2).png diff --git a/apps/8ball/screenshot (1).png b/apps/8ball/screenshot (1).png new file mode 100644 index 0000000000000000000000000000000000000000..edf1a4695f9c92a40c3dcc7c32cbde94f2c10ce8 GIT binary patch literal 2071 zcmeH|>sQhT7{?K>(Zx#W;zToVQ_fauO%RJR7h0xP3YDRiI;_Yd1TpjS>!w!Xsm(Pb zR%e}MM-aS}qTr-rTACQGpMpu6Mv@9hDVGeG`yckQ7tiy3^?ma_-_P@uCnew)!#rUS z2xM_wY|Nf{t^aS_T;{i+Fy(K?A_QO&qt=+EK zsl;F-T}Hm&VvPN3BI?g0r(Gx;e3R~dvKfuW$=+iB>1_+dd!hEvv-(1V&9?h3Zuud% zZ`VHoUoCZTUIH{<^1UNjMBKa0366Fe^t>eTf#NnZ3$1fgTX|<<*;aA)Ced@bndM%N zvY-Y|bhm5cvp_0=}PZA%1R632zE~3v`-_+P_S^bxB zs?cJA1XY4{T#am^l?G4SYp%o1!nFkVJk-L+)G9&qH^}l9C-1l_;cG&Wj^eBviqA|B z*iK&9(5T7HM0-#=Cnx%+nU1;d)s^EFa&P8}1BL##wR!w_h0;c$pA?6&u+Bw8xHQg# zW8MrSh<_x?7UvznBjm|v9+Az=xAJO1;Na~>B^s9%jUFB@D(H@$weW! zE^?d}4*1nKe#bOw5N2igbhK3(fuB(auis^MRSPJNY3fF}IpwEO=T7P@s)2m)929rH zjnlF$Y2pfg}-5Z8-oSm;;;}Xu)!GfXiyn3#e0W zGn|dEsQm!9*FM(A%@BDsv-64eF*H8IVz%h!9;GW$8FehJIPXQTMtqo%MIWz@)Xil5 zK7lOj+Db1<-`rLP4v*&roD^QC|h+g@Wg2Q~) zqoBlABA+|xSlJoJs_D6j&iSw|tjzj?1y`8>tmMA!Sc;Ffu5zr-c)y8lj2~GdLIff^ z--W`WEFIZzTA_V`^`Z(*Y(&ATI&XhLT2L@KC>1yi=oJSz+TEgcqXJ$ns*B<8SGigT z5RE&Dt}W0>%0nT|{p=SruBd`xG!!$Yu7WZ;M|)mWFaqZDjcr)~LOomQHQ75&DVzo;=^c8Myf}p_PW%2hf@wcENa( z5<+XNv#g*TEV^YQQ`2u(yXG5T{MO!w8;kN)Z-U;aZ#ejfM ny&S%pz6SBN5&s(+KrtlIcR_q;+Xe6WPY;RvF(HN@edyf3g>8t> literal 0 HcmV?d00001 diff --git a/apps/8ball/screenshot (2).png b/apps/8ball/screenshot (2).png new file mode 100644 index 0000000000000000000000000000000000000000..c5c6070896ac96a610ce639c9272b8d667f05624 GIT binary patch literal 2159 zcmeHJYgZBm05yU%R`U_omKFz1E9kLi&U}DoVo0TBDy5*-N_He)I1~kCW~J_wOdHuT ztqj{b65x@PL{MfA^X+mdNFquT6Ga_IKoOn$6Z_PMd+&$)?Vfwjxg}@APi_V81l!oy zYz@PNM6PT7f3VxM&V1p=_;uNk8F@0;hS%r%$;QTRe^|)zC~Ev{wJuhPfdI#?&`N97 z>*vpVrvAcjNr_ylNZ(_Ms(9*nf7B!t3Yk7@7&Uscc+SDB(U@pzt2Ij`Vd%B-NXA?M zd#yE_q9Jmq;@}+`jviVgWvJ*{AB;y=pHpaG^xu(c$4W+00w@+iq=53@60QOkv@q}r zX6{ilVC)`Oib$(oTjHi_ha&gQzsi?T&>SAw|BJ7XIM!^m{uW!O?`>na7Q3cZ$heE< zLjl1q8{~dGiYn8rP%h`3>1Z2E&}8Yc6iXzB z{ZlB-u4fB}l3R|nc>8vTr`~jiG&C7pKCPOPt0l7$B&&c_qhxWoZ+dbc{)v`3FD+}c zVKJ#(2~s87_`X@{==-ic*UKO1spyoElXgX^%WhvWdVo-Yc2Q599Av(^xKf2O^;Ee4 zueBAbNOzJLMwB@@!U8Ash)b9qE9-fgCq9*kMUAcC7kr5MonTSK2IYeC_Za63Z}ayV zljF`wj%N{W;)WGUT?|c)MZpcSoKU^fX2O8CX|ffs<|yHg)S}m3ZyI;gW6$DRC75op zsGMn6H2@+Q>ZR@xee3~vy3B+iK2paC4P_Lk5`NP;e-)j(<;vENbp#2FGaS##m^2@J zbn|}BC1#oQO8{70_(W^|4gg+BnaUgA1%yy-(ftc4K!{m6U}^WaqvuzVJMLObgJiz3 zV+&JxJ8CJsG6lRl!jij~Hyx4%UKu=qzrX|>ma>a-LBG|$)k3IMihJ&%sVVM)xOT}v z7`$Lx#Xsb@Vp$#+VDhHt6rAkhCNUEjLoixQ>-piz0A*ky zi9EFUtHZQAng=;I=J=Y@Hr59}YD^EOUMuwyM5$GzULFbf4Pl34Aul_N(CVILjrZbJ$@HDf<{``W%S|hWc>c(6 z^aBgl0mNG)z5LPTxL=@gVT%#TfZLAH@Rg(A^~D&dikTB!ScMkcDk zcA6C!iERY^Fp46YbWuatUsVUKaNSZ(UF`7bThlG41^rNVI9;)QV&#xzB#w*qb@R^~ z`JFbXA>BpNS*#fjaVW^xgwt|?sQ70|@?O`#F4`1~*Qf|A3h4hOh|^%gKCyRm*X@+R znRYL}rM+p+_THN&p4NM}r(TIe`&x1mvB`rUx@O7eZ$K$KL8}vf&eX%{AXT>@-~phb z_|_%})oysX9>DjaQ{Sl;+7u%$or18Rw#|ckF8Y3r2`bol>WI_c$I>d+-2x!wSUto& l1Mu1UoW|#F{J(Qp-FSiqi918|(XKxTn=o{E2roGC`oBR3t?mE- literal 0 HcmV?d00001 From 3af47e000eff936d8074fa05c10781620304f48e Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Tue, 9 Jul 2024 14:37:15 -0700 Subject: [PATCH 033/594] Rename screenshot (1).png to screenshot-1.png --- apps/8ball/{screenshot (1).png => screenshot-1.png} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename apps/8ball/{screenshot (1).png => screenshot-1.png} (100%) diff --git a/apps/8ball/screenshot (1).png b/apps/8ball/screenshot-1.png similarity index 100% rename from apps/8ball/screenshot (1).png rename to apps/8ball/screenshot-1.png From afb2a522419f9fe99d9789046adca3125982ae8a Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Tue, 9 Jul 2024 14:37:32 -0700 Subject: [PATCH 034/594] Rename screenshot (2).png to screenshot-2.png --- apps/8ball/{screenshot (2).png => screenshot-2.png} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename apps/8ball/{screenshot (2).png => screenshot-2.png} (100%) diff --git a/apps/8ball/screenshot (2).png b/apps/8ball/screenshot-2.png similarity index 100% rename from apps/8ball/screenshot (2).png rename to apps/8ball/screenshot-2.png From 6676acc37fe55276f41e36c16c845c10a2db74c0 Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Tue, 9 Jul 2024 14:38:35 -0700 Subject: [PATCH 035/594] Update metadata.json --- apps/8ball/metadata.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/apps/8ball/metadata.json b/apps/8ball/metadata.json index 029deebbb..2cdb11002 100644 --- a/apps/8ball/metadata.json +++ b/apps/8ball/metadata.json @@ -3,6 +3,11 @@ "shortName":"8ball", "icon": "8ball.png", "version":"0.01", + "screenshots": [ + {"url":"screenshot.png"}, + {"url":"screenshot-1.png"}, + {"url":"screenshot-2.png"} + ], "description": "It tells your future!", "tags": "game", "supports": ["BANGLEJS2"], From 408dbf76b1593e5f965b8d715285890843d844bd Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Tue, 9 Jul 2024 14:41:13 -0700 Subject: [PATCH 036/594] Update metadata.json --- apps/8ball/metadata.json | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/8ball/metadata.json b/apps/8ball/metadata.json index 2cdb11002..6944bfa2a 100644 --- a/apps/8ball/metadata.json +++ b/apps/8ball/metadata.json @@ -8,6 +8,7 @@ {"url":"screenshot-1.png"}, {"url":"screenshot-2.png"} ], + "allow_emulator": true, "description": "It tells your future!", "tags": "game", "supports": ["BANGLEJS2"], From 1b714a03503473ff72160197d570ac517ccc5610 Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Tue, 9 Jul 2024 14:46:18 -0700 Subject: [PATCH 037/594] Create ChangeLog --- apps/8ball/ChangeLog | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/8ball/ChangeLog diff --git a/apps/8ball/ChangeLog b/apps/8ball/ChangeLog new file mode 100644 index 000000000..3bcffb19b --- /dev/null +++ b/apps/8ball/ChangeLog @@ -0,0 +1 @@ +0.01: New App! From 39aeb9f55ae7fff5fd31dcde40f5086d97154b5a Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Tue, 9 Jul 2024 14:55:19 -0700 Subject: [PATCH 038/594] Update metadata.json --- apps/8ball/metadata.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/8ball/metadata.json b/apps/8ball/metadata.json index 6944bfa2a..b36cd5afb 100644 --- a/apps/8ball/metadata.json +++ b/apps/8ball/metadata.json @@ -16,4 +16,7 @@ {"name":"8ball.app.js","url":"app.js"}, {"name":"8ball.img","url":"app-icon.js","evaluate":true} ] + "data": [ + {"name":"8ballAnswers.json","url":"8ballAnswers.json"} + ] } From 9c391a9afd79c0f8fa42c5347b9ee0cfe80f31ac Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Wed, 10 Jul 2024 06:05:55 -0700 Subject: [PATCH 039/594] Update metadata.json --- apps/8ball/metadata.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/apps/8ball/metadata.json b/apps/8ball/metadata.json index b36cd5afb..71a05e014 100644 --- a/apps/8ball/metadata.json +++ b/apps/8ball/metadata.json @@ -15,8 +15,4 @@ "storage": [ {"name":"8ball.app.js","url":"app.js"}, {"name":"8ball.img","url":"app-icon.js","evaluate":true} - ] - "data": [ - {"name":"8ballAnswers.json","url":"8ballAnswers.json"} - ] } From 32060fb8f6183c678629fd0a78914f97aa1bd1dd Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Wed, 10 Jul 2024 06:06:21 -0700 Subject: [PATCH 040/594] Update metadata.json --- apps/8ball/metadata.json | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/8ball/metadata.json b/apps/8ball/metadata.json index 71a05e014..6944bfa2a 100644 --- a/apps/8ball/metadata.json +++ b/apps/8ball/metadata.json @@ -15,4 +15,5 @@ "storage": [ {"name":"8ball.app.js","url":"app.js"}, {"name":"8ball.img","url":"app-icon.js","evaluate":true} + ] } From 898f997ecc8c9f22901a8b572322102cc04341bf Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Wed, 10 Jul 2024 06:16:58 -0700 Subject: [PATCH 041/594] Update metadata.json --- apps/boxclk/metadata.json | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/boxclk/metadata.json b/apps/boxclk/metadata.json index dd81ac436..79b4c3019 100644 --- a/apps/boxclk/metadata.json +++ b/apps/boxclk/metadata.json @@ -4,6 +4,7 @@ "version": "0.05", "description": "A customizable clock with configurable text boxes that can be positioned to show your favorite background", "icon": "app.png", + "dependencies" : { "clockbg":"module" }, "screenshots": [ {"url":"screenshot.png"}, {"url":"screenshot-1.png"}, From 9956c09339c3b41b47f2820b4d15fd6d458d5f3a Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Fri, 12 Jul 2024 06:56:19 -0700 Subject: [PATCH 042/594] Update app.js --- apps/8ball/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/8ball/app.js b/apps/8ball/app.js index 86096434d..581e3e7bc 100644 --- a/apps/8ball/app.js +++ b/apps/8ball/app.js @@ -3,7 +3,7 @@ var Name = ""; var WaitTime = 0; Bangle.setLCDTimeout(0); -var answers = new Array("no", "yes","WHAT????","What do you think", "That was a bad question", "YES!!!", "NOOOOO!!", "nope","100%","yup","why should I answer that?","think for yourself","ask again later, I'm busy", "what Was that horrible question","how dare you?","you wanted to hear yes? okay, yes", "Don't get angry when I say no","you are 100% wrong","totally, for sure","hmmm... I'll ponder it and get back to you later","I just asked the presedent and they say yes","wow, you really have a lot of questions", "NOPE","is the sky blue, hmmm...","I don't have time to answer","How many more questions before you change my name?","theres this thing called wikipedia","hmm... I don't seem to be able to reach the internet right now","if you phrase it like that, yes","Huh, never thought so hard in my life","The winds of time say no"); +var answers = new Array("no", "yes","WHAT????","What do you think", "That was a bad question", "YES!!!", "NOOOOO!!", "nope","100%","yup","why should I answer that?","think for yourself","ask again later, I'm busy", "what Was that horrible question","how dare you?","you wanted to hear yes? okay, yes", "Don't get angry when I say no","you are 100% wrong","totally, for sure","hmmm... I'll ponder it and get back to you later","wow, you really have a lot of questions", "NOPE","is the sky blue, hmmm...","I don't have time to answer","How many more questions before you change my name?","theres this thing called wikipedia","hmm... I don't seem to be able to reach the internet right now","if you phrase it like that, yes","Huh, never thought so hard in my life","The winds of time say no", "uh... can you ask that again? I kinda forgot", "I know I'm a computer, but even I can get bored"); var consonants = new Array("b","c","d","f","g","h","j","k","l","m","n","p","q","r","s","t","v","w","x","y","z"); var vowels = new Array("a","e","i","o","u"); try {keyboard = require(keyboard);} catch(e) {keyboard = null;} From 540c68f2c500dc5cd793cab6789ff73f10328952 Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Fri, 12 Jul 2024 06:56:58 -0700 Subject: [PATCH 043/594] Update metadata.json --- apps/8ball/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/8ball/metadata.json b/apps/8ball/metadata.json index 6944bfa2a..da387d3d6 100644 --- a/apps/8ball/metadata.json +++ b/apps/8ball/metadata.json @@ -9,7 +9,7 @@ {"url":"screenshot-2.png"} ], "allow_emulator": true, - "description": "It tells your future!", + "description": "A very sarcastic magic 8ball", "tags": "game", "supports": ["BANGLEJS2"], "storage": [ From f38f183b1e02853237807423439cc39ec17892ff Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Wed, 19 Jun 2024 00:25:24 +0200 Subject: [PATCH 044/594] [] skyspy: start libgps --- apps/skyspy/skyspy.app.js | 53 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/apps/skyspy/skyspy.app.js b/apps/skyspy/skyspy.app.js index ff6e29712..3278c9710 100644 --- a/apps/skyspy/skyspy.app.js +++ b/apps/skyspy/skyspy.app.js @@ -3,6 +3,44 @@ 1 .. DD MM.mmm' 2 .. DD MM'ss" */ + +let libgps = { + state: {}, + on_gps: function(f) { + let fix = this.getGPSFix(); + f(fix); + + /* + "lat": number, // Latitude in degrees + "lon": number, // Longitude in degrees + "alt": number, // altitude in M + "speed": number, // Speed in kph + "course": number, // Course in degrees + "time": Date, // Current Time (or undefined if not known) + "satellites": 7, // Number of satellites + "fix": 1 // NMEA Fix state - 0 is no fix + "hdop": number, // Horizontal Dilution of Precision + */ + this.state.timeout = setTimeout(this.on_gps, 1000, f); + }, + off_gps: function() { + clearTimeout(gps_state.timeout); + }, + getGPSFix: function() { + let fix = {}; + fix.fix = 1; + fix.lat = 50; + fix.lon = 14; + fix.alt = 200; + fix.speed = 5; + fix.course = 30; + fix.time = Date(); + fix.satellites = 5; + fix.hdop = 12; + return fix; + } +}; + var mode = 1; var display = 0; @@ -69,7 +107,8 @@ function updateGps() { if (cancel_gps) return; - fix = Bangle.getGPSFix(); + //fix = Bangle.getGPSFix(); + fix = libgps.getGPSFix(); try { Bangle.getPressure().then((x) => { @@ -81,6 +120,7 @@ function updateGps() { speed = getTime() - gps_start; + print(fix); if (fix && fix.fix && fix.lat) { lat = "" + format(fix.lat); lon = "" + format(fix.lon); @@ -244,10 +284,20 @@ function markGps() { updateGps(); } +function drawBusy() { + g.reset().setFont("Vector", 20) + .setColor(1,1,1) + .fillRect(0, wi, 176, 176) + .setColor(0,0,0) + .drawString(".oO busy", 0, 30); + +} + function onSwipe(dir) { display = display + 1; if (display == 3) display = 0; + drawBusy(); } Bangle.setUI({ @@ -257,4 +307,5 @@ Bangle.setUI({ }); Bangle.loadWidgets(); Bangle.drawWidgets(); +drawBusy(); markGps(); From 4bf47626ffa024f59adf0755a92f0be25439074d Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Wed, 19 Jun 2024 23:31:36 +0200 Subject: [PATCH 045/594] [] skyspy: move lat/lon formatting to library. --- apps/skyspy/skyspy.app.js | 57 ++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/apps/skyspy/skyspy.app.js b/apps/skyspy/skyspy.app.js index 3278c9710..181d0ea51 100644 --- a/apps/skyspy/skyspy.app.js +++ b/apps/skyspy/skyspy.app.js @@ -1,11 +1,34 @@ /* Sky spy */ -/* 0 .. DD.ddddd - 1 .. DD MM.mmm' - 2 .. DD MM'ss" -*/ let libgps = { state: {}, + /* 0 .. DD.ddddd + 1 .. DD MM.mmm' + 2 .. DD MM'ss" + */ + mode: 1, + format: function(x) { + switch (this.mode) { + case 0: + return "" + x; + case 1: { + let d = Math.floor(x); + let m = x - d; + m = m*60; + return "" + d + " " + m.toFixed(3) + "'"; + } + case 2: { + let d = Math.floor(x); + let m = x - d; + m = m*60; + let mf = Math.floor(m); + let s = m - mf; + s = s*60; + return "" + d + " " + mf + "'" + s.toFixed(0) + '"'; + } + } + return "bad mode?"; + }, on_gps: function(f) { let fix = this.getGPSFix(); f(fix); @@ -27,6 +50,7 @@ let libgps = { clearTimeout(gps_state.timeout); }, getGPSFix: function() { + if (0) Bangle.getGPSFix(); let fix = {}; fix.fix = 1; fix.lat = 50; @@ -41,7 +65,6 @@ let libgps = { } }; -var mode = 1; var display = 0; var debug = 0; @@ -65,25 +88,6 @@ function radY(p, d) { return h/2 - Math.cos(a)*radD(d) + wi; } -function format(x) { - switch (mode) { - case 0: - return "" + x; - case 1: - d = Math.floor(x); - m = x - d; - m = m*60; - return "" + d + " " + m.toFixed(3) + "'"; - case 2: - d = Math.floor(x); - m = x - d; - m = m*60; - mf = Math.floor(m); - s = m - mf; - s = s*60; - return "" + d + " " + mf + "'" + s.toFixed(0) + '"'; - } -} var qalt = -1; function resetAlt() { min_dalt = 9999; max_dalt = -9999; step = 0; @@ -107,7 +111,6 @@ function updateGps() { if (cancel_gps) return; - //fix = Bangle.getGPSFix(); fix = libgps.getGPSFix(); try { @@ -122,8 +125,8 @@ function updateGps() { print(fix); if (fix && fix.fix && fix.lat) { - lat = "" + format(fix.lat); - lon = "" + format(fix.lon); + lat = "" + libgps.format(fix.lat); + lon = "" + libgps.format(fix.lon); alt = "" + fix.alt.toFixed(1); speed = "" + fix.speed.toFixed(1); hdop = "" + fix.hdop.toFixed(1); From ff46f86b2d72cdd73cba73302bafdee69cf7a00b Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Wed, 19 Jun 2024 23:51:41 +0200 Subject: [PATCH 046/594] [] skyspy: Implement time adjustment (untested). --- apps/skyspy/skyspy.app.js | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/apps/skyspy/skyspy.app.js b/apps/skyspy/skyspy.app.js index 181d0ea51..14e24ac1d 100644 --- a/apps/skyspy/skyspy.app.js +++ b/apps/skyspy/skyspy.app.js @@ -77,6 +77,8 @@ var h = 176-wi, w = 176; var fix; +var adj_time = 0; + function radA(p) { return p*(Math.PI*2); } function radD(d) { return d*(h/2); } function radX(p, d) { @@ -112,6 +114,11 @@ function updateGps() { if (cancel_gps) return; fix = libgps.getGPSFix(); + if (adj_time) { + print("Adjusting time"); + setTime(fix.time.getTime()/1000); + adj_time = 0; + } try { Bangle.getPressure().then((x) => { @@ -293,21 +300,39 @@ function drawBusy() { .fillRect(0, wi, 176, 176) .setColor(0,0,0) .drawString(".oO busy", 0, 30); +} + +function nextScreen() { + display = display + 1; + if (display == 3) + display = 0; + drawBusy(); } function onSwipe(dir) { - display = display + 1; - if (display == 3) - display = 0; - drawBusy(); + nextScreen(); } +function touchHandler(d) { + let x = Math.floor(d.x); + let y = Math.floor(d.y); + + if ((xh/2) && (y>w/2)) + nextScreen(); +} + + +Bangle.on("drag", touchHandler); Bangle.setUI({ mode : "custom", swipe : onSwipe, clock : 0 }); + Bangle.loadWidgets(); Bangle.drawWidgets(); drawBusy(); From 78a910544b2d0215ff180ac2a6da396b83826df4 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Thu, 20 Jun 2024 00:04:00 +0200 Subject: [PATCH 047/594] [] skyspy: only use fake data on emulator. --- apps/skyspy/skyspy.app.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/apps/skyspy/skyspy.app.js b/apps/skyspy/skyspy.app.js index 14e24ac1d..db7736ba0 100644 --- a/apps/skyspy/skyspy.app.js +++ b/apps/skyspy/skyspy.app.js @@ -1,6 +1,11 @@ -/* Sky spy */ + /* Sky spy */ let libgps = { + emulator: -1, + init: function(x) { + this.emulator = (process.env.BOARD=="EMSCRIPTEN" + || process.env.BOARD=="EMSCRIPTEN2")?1:0; + }, state: {}, /* 0 .. DD.ddddd 1 .. DD MM.mmm' @@ -50,7 +55,8 @@ let libgps = { clearTimeout(gps_state.timeout); }, getGPSFix: function() { - if (0) Bangle.getGPSFix(); + if (!this.emulator) + return Bangle.getGPSFix(); let fix = {}; fix.fix = 1; fix.lat = 50; @@ -130,7 +136,7 @@ function updateGps() { speed = getTime() - gps_start; - print(fix); + //print(fix); if (fix && fix.fix && fix.lat) { lat = "" + libgps.format(fix.lat); lon = "" + libgps.format(fix.lon); @@ -325,6 +331,7 @@ function touchHandler(d) { nextScreen(); } +libgps.init(); Bangle.on("drag", touchHandler); Bangle.setUI({ From ab0b4cbb45bd3a8c2d7bd18d7fb6e56516652449 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Thu, 20 Jun 2024 22:05:28 +0200 Subject: [PATCH 048/594] [] skyspy: display time error. --- apps/skyspy/skyspy.app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/skyspy/skyspy.app.js b/apps/skyspy/skyspy.app.js index db7736ba0..5dec5f148 100644 --- a/apps/skyspy/skyspy.app.js +++ b/apps/skyspy/skyspy.app.js @@ -152,7 +152,7 @@ function updateGps() { .setColor(1,1,1) .fillRect(0, wi, 176, 176) .setColor(0,0,0) - .drawString("Acquiring GPS", 0, 30) + .drawString("terr "+(getTime()-fix.time.getTime()/1000), 0, 30) .drawString(lat, 0, 50) .drawString(lon, 0, 70) .drawString("alt "+alt, 0, 90) From a64efa4d1fc0205a072dd10f10d7add23ddab8fc Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Thu, 20 Jun 2024 22:11:05 +0200 Subject: [PATCH 049/594] [] skyspy: fix button handling. --- apps/skyspy/skyspy.app.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apps/skyspy/skyspy.app.js b/apps/skyspy/skyspy.app.js index 5dec5f148..fd651a6fc 100644 --- a/apps/skyspy/skyspy.app.js +++ b/apps/skyspy/skyspy.app.js @@ -320,9 +320,16 @@ function onSwipe(dir) { nextScreen(); } +var last_b = 0; function touchHandler(d) { let x = Math.floor(d.x); let y = Math.floor(d.y); + + if (d.b != 1 || last_b != 0) { + last_b = d.b; + return; + } + last_b = d.b; if ((x Date: Thu, 20 Jun 2024 22:36:06 +0200 Subject: [PATCH 050/594] [] skyspy: switch to bigger font. --- apps/skyspy/skyspy.app.js | 57 +++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 32 deletions(-) diff --git a/apps/skyspy/skyspy.app.js b/apps/skyspy/skyspy.app.js index fd651a6fc..24337c3c8 100644 --- a/apps/skyspy/skyspy.app.js +++ b/apps/skyspy/skyspy.app.js @@ -72,12 +72,9 @@ let libgps = { }; var display = 0; - var debug = 0; - var cancel_gps, gps_start; var cur_altitude; - var wi = 24; var h = 176-wi, w = 176; @@ -123,6 +120,7 @@ function updateGps() { if (adj_time) { print("Adjusting time"); setTime(fix.time.getTime()/1000); + drawMsg("Time\nadjusted"); adj_time = 0; } @@ -147,38 +145,31 @@ function updateGps() { } let ddalt = calcAlt(alt, cur_altitude); - if (display == 1) - g.reset().setFont("Vector", 20) - .setColor(1,1,1) - .fillRect(0, wi, 176, 176) - .setColor(0,0,0) - .drawString("terr "+(getTime()-fix.time.getTime()/1000), 0, 30) - .drawString(lat, 0, 50) - .drawString(lon, 0, 70) - .drawString("alt "+alt, 0, 90) - .drawString("speed "+speed, 0, 110) - .drawString("hdop "+hdop, 0, 130) - .drawString("balt" + cur_altitude, 0, 150); - + let msg = ""; + if (display == 1) { + msg = lat + "\n" + lon + "\n" + alt + "m" + speed + "km/h\n" + + "hdop "+hdop + "m\nbalt" + cur_altitude + "m"; + } if (display == 2) { - g.reset().setFont("Vector", 20) - .setColor(1,1,1) - .fillRect(0, wi, 176, 176) - .setColor(0,0,0) - .drawString("GPS status", 0, 30) - .drawString("speed "+speed, 0, 50) - .drawString("hdop "+hdop, 0, 70) - .drawString("dd "+qalt.toFixed(0) + " (" + ddalt.toFixed(0) + ")", 0, 90) - .drawString("alt "+alt, 0, 110) - .drawString("balt " + cur_altitude, 0, 130) - .drawString(step, 0, 150); + msg = speed + "km/h\n" + + "hdop "+hdop + + "\ndd "+qalt.toFixed(0) + " (" + ddalt.toFixed(0) + ")" + + "\nalt "+alt + + "\nbalt "+cur_altitude + + "/" + step; step++; if (step == 10) { qalt = max_dalt - min_dalt; resetAlt(); } } - + if (display > 0) { + g.reset().setFont("Vector", 31) + .setColor(1,1,1) + .fillRect(0, wi, 176, 176) + .setColor(0,0,0) + .drawString(msg, 3, 25) + } if (debug > 0) print(fix); setTimeout(updateGps, 1000); @@ -299,13 +290,15 @@ function markGps() { gps_start = getTime(); updateGps(); } - -function drawBusy() { - g.reset().setFont("Vector", 20) +function drawMsg(msg) { + g.reset().setFont("Vector", 35) .setColor(1,1,1) .fillRect(0, wi, 176, 176) .setColor(0,0,0) - .drawString(".oO busy", 0, 30); + .drawString(msg, 5, 30); +} +function drawBusy() { + drawMsg("\n.oO busy"); } function nextScreen() { From eebc99fa6c4d637c161493925f0e38a5d178b6e9 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Thu, 20 Jun 2024 23:05:46 +0200 Subject: [PATCH 051/594] [] skyspy: fit data into 5 lines. --- apps/skyspy/skyspy.app.js | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/apps/skyspy/skyspy.app.js b/apps/skyspy/skyspy.app.js index 24337c3c8..17824eae6 100644 --- a/apps/skyspy/skyspy.app.js +++ b/apps/skyspy/skyspy.app.js @@ -71,7 +71,7 @@ let libgps = { } }; -var display = 0; +var display = 1; var debug = 0; var cancel_gps, gps_start; var cur_altitude; @@ -111,8 +111,9 @@ function calcAlt(alt, cur_altitude) { return ddalt; } function updateGps() { - let /*have = false,*/ lat = "lat", lon = "lon", alt = "alt", - speed = "speed", hdop = "hdop"; // balt = "balt"; + let have = false, lat = "lat ", lon = "lon ", alt = "alt ", + speed = "speed ", hdop = "hdop ", adelta = "adelta ", + tdelta = "tdelta "; if (cancel_gps) return; @@ -129,7 +130,7 @@ function updateGps() { cur_altitude = x.altitude; }, print); } catch (e) { - print("Altimeter error", e); + //print("Altimeter error", e); } speed = getTime() - gps_start; @@ -138,17 +139,20 @@ function updateGps() { if (fix && fix.fix && fix.lat) { lat = "" + libgps.format(fix.lat); lon = "" + libgps.format(fix.lon); - alt = "" + fix.alt.toFixed(1); + alt = "" + fix.alt.toFixed(0); + adelta = "" + (cur_altitude - fix.alt).toFixed(0); + tdelta = "" + (getTime() - fix.time.getTime()/1000).toFixed(0); speed = "" + fix.speed.toFixed(1); - hdop = "" + fix.hdop.toFixed(1); - //have = true; + hdop = "" + fix.hdop.toFixed(0); + have = true; } let ddalt = calcAlt(alt, cur_altitude); let msg = ""; if (display == 1) { - msg = lat + "\n" + lon + "\n" + alt + "m" + speed + "km/h\n" - + "hdop "+hdop + "m\nbalt" + cur_altitude + "m"; + msg = lat + "\n" + lon + + "\ne" + hdop + "m "+tdelta+"s\n" + + speed + "km/h\n"+ alt + "m+" + adelta + "\nmsghere"; } if (display == 2) { msg = speed + "km/h\n" + @@ -168,7 +172,7 @@ function updateGps() { .setColor(1,1,1) .fillRect(0, wi, 176, 176) .setColor(0,0,0) - .drawString(msg, 3, 25) + .drawString(msg, 3, 25); } if (debug > 0) print(fix); From 7ec2dbb17bc955288843261d3e8469642b60500a Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Thu, 20 Jun 2024 23:13:05 +0200 Subject: [PATCH 052/594] [] skyspy: Provide some info with no fix. --- apps/skyspy/skyspy.app.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/apps/skyspy/skyspy.app.js b/apps/skyspy/skyspy.app.js index 17824eae6..5d0a2fdb8 100644 --- a/apps/skyspy/skyspy.app.js +++ b/apps/skyspy/skyspy.app.js @@ -111,8 +111,8 @@ function calcAlt(alt, cur_altitude) { return ddalt; } function updateGps() { - let have = false, lat = "lat ", lon = "lon ", alt = "alt ", - speed = "speed ", hdop = "hdop ", adelta = "adelta ", + let have = false, lat = "lat ", lon = "lon ", alt = "?", + speed = "speed ", hdop = "?", adelta = "adelta ", tdelta = "tdelta "; if (cancel_gps) @@ -133,18 +133,24 @@ function updateGps() { //print("Altimeter error", e); } - speed = getTime() - gps_start; //print(fix); + if (fix && fix.time) { + tdelta = "" + (getTime() - fix.time.getTime()/1000).toFixed(0); + } if (fix && fix.fix && fix.lat) { lat = "" + libgps.format(fix.lat); lon = "" + libgps.format(fix.lon); alt = "" + fix.alt.toFixed(0); adelta = "" + (cur_altitude - fix.alt).toFixed(0); - tdelta = "" + (getTime() - fix.time.getTime()/1000).toFixed(0); speed = "" + fix.speed.toFixed(1); hdop = "" + fix.hdop.toFixed(0); have = true; + } else { + lat = "NO FIX"; + lon = "" + (getTime() - gps_start).toFixed(0) + "s"; + if (cur_altitude) + adelta = "" + cur_altitude.toFixed(0); } let ddalt = calcAlt(alt, cur_altitude); From 2dc4537dc04d41d8b5082b24b740bb0ea15855ce Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Thu, 20 Jun 2024 23:45:01 +0200 Subject: [PATCH 053/594] [] skyspy: show sats used/total when no signal --- apps/skyspy/skyspy.app.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/apps/skyspy/skyspy.app.js b/apps/skyspy/skyspy.app.js index 5d0a2fdb8..857da2410 100644 --- a/apps/skyspy/skyspy.app.js +++ b/apps/skyspy/skyspy.app.js @@ -71,15 +71,13 @@ let libgps = { } }; -var display = 1; +var display = 0; var debug = 0; var cancel_gps, gps_start; var cur_altitude; var wi = 24; var h = 176-wi, w = 176; - var fix; - var adj_time = 0; function radA(p) { return p*(Math.PI*2); } @@ -147,8 +145,9 @@ function updateGps() { hdop = "" + fix.hdop.toFixed(0); have = true; } else { - lat = "NO FIX"; - lon = "" + (getTime() - gps_start).toFixed(0) + "s"; + lat = "NO FIX "; + lon = "" + (getTime() - gps_start).toFixed(0) + "s " + + sats_used + "/" + snum; if (cur_altitude) adelta = "" + cur_altitude.toFixed(0); } @@ -241,7 +240,7 @@ function drawSats(sats) { var sats = []; var snum = 0; -//var sats_receiving = 0; +var sats_used = 0; function parseRaw(msg, lost) { if (lost) @@ -256,6 +255,7 @@ function parseRaw(msg, lost) { if (s[2] == "1") { snum = 0; sats = []; + sats_used = 0; } let view = 1 * s[3]; @@ -274,6 +274,8 @@ function parseRaw(msg, lost) { sat.ele = 1*s[i++]; sat.azi = 1*s[i++]; sat.snr = s[i++]; + if (sat.snr != "") + sats_used++; if (debug > 0) print(" ", sat); sats[snum++] = sat; From 2e60c8b5ecf28c060a1252cc6a91eed2678cddde Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Fri, 21 Jun 2024 00:04:13 +0200 Subject: [PATCH 054/594] [] skyspy: better summary for 3rd screen, too. --- apps/skyspy/skyspy.app.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/apps/skyspy/skyspy.app.js b/apps/skyspy/skyspy.app.js index 857da2410..c9e22d580 100644 --- a/apps/skyspy/skyspy.app.js +++ b/apps/skyspy/skyspy.app.js @@ -161,11 +161,9 @@ function updateGps() { } if (display == 2) { msg = speed + "km/h\n" + - "hdop "+hdop + - "\ndd "+qalt.toFixed(0) + " (" + ddalt.toFixed(0) + ")" + - "\nalt "+alt + - "\nbalt "+cur_altitude + - "/" + step; + "e"+hdop + "m/"+step + +"\ndd "+qalt.toFixed(0) + "\n(" + ddalt.toFixed(0) + ")" + + "\n"+alt + "m+" + adelta; step++; if (step == 10) { qalt = max_dalt - min_dalt; From 22d6bdbcc6e46e9647064b736d2c0ad6afc356e5 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Fri, 21 Jun 2024 00:18:55 +0200 Subject: [PATCH 055/594] [] skyspy: better debug output, add documentation --- apps/skyspy/skyspy.app.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/apps/skyspy/skyspy.app.js b/apps/skyspy/skyspy.app.js index c9e22d580..2b0965148 100644 --- a/apps/skyspy/skyspy.app.js +++ b/apps/skyspy/skyspy.app.js @@ -160,9 +160,17 @@ function updateGps() { speed + "km/h\n"+ alt + "m+" + adelta + "\nmsghere"; } if (display == 2) { + /* FIXME: ddalt/qalt should be updated in all modes */ + /* qalt is altitude quality estimate -- over ten seconds, + computes differences between GPS and barometric altitude. + The lower the better. + + ddalt is just a debugging -- same estimate, but without + waiting 10 seconds, so will be always optimistic at start + of the cycle */ msg = speed + "km/h\n" + - "e"+hdop + "m/"+step - +"\ndd "+qalt.toFixed(0) + "\n(" + ddalt.toFixed(0) + ")" + + "e"+hdop + "m" + +"\ndd "+qalt.toFixed(0) + "\n(" + step + "/" + ddalt.toFixed(0) + ")" + "\n"+alt + "m+" + adelta; step++; if (step == 10) { From 6eaad6f13a5e9b65aae151f7dbf01d7a70ff79e2 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Fri, 21 Jun 2024 09:56:52 +0200 Subject: [PATCH 056/594] [] skyspy: Compute altitude quality all the time, fix "clock adjust" message --- apps/skyspy/skyspy.app.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/skyspy/skyspy.app.js b/apps/skyspy/skyspy.app.js index 2b0965148..964e66f6a 100644 --- a/apps/skyspy/skyspy.app.js +++ b/apps/skyspy/skyspy.app.js @@ -119,7 +119,6 @@ function updateGps() { if (adj_time) { print("Adjusting time"); setTime(fix.time.getTime()/1000); - drawMsg("Time\nadjusted"); adj_time = 0; } @@ -160,7 +159,6 @@ function updateGps() { speed + "km/h\n"+ alt + "m+" + adelta + "\nmsghere"; } if (display == 2) { - /* FIXME: ddalt/qalt should be updated in all modes */ /* qalt is altitude quality estimate -- over ten seconds, computes differences between GPS and barometric altitude. The lower the better. @@ -172,12 +170,12 @@ function updateGps() { "e"+hdop + "m" +"\ndd "+qalt.toFixed(0) + "\n(" + step + "/" + ddalt.toFixed(0) + ")" + "\n"+alt + "m+" + adelta; + } step++; if (step == 10) { qalt = max_dalt - min_dalt; resetAlt(); } - } if (display > 0) { g.reset().setFont("Vector", 31) .setColor(1,1,1) @@ -342,8 +340,10 @@ function touchHandler(d) { } last_b = d.b; - if ((xh/2) && (y>w/2)) nextScreen(); From 1fa0c219e30b1aad8f49b618e1cb5ab8b4e6ed84 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Sat, 22 Jun 2024 23:20:47 +0200 Subject: [PATCH 057/594] [] skyspy: Create formatting library, and use it where suitable. --- apps/skyspy/skyspy.app.js | 169 ++++++++++++++++++++++---------------- 1 file changed, 96 insertions(+), 73 deletions(-) diff --git a/apps/skyspy/skyspy.app.js b/apps/skyspy/skyspy.app.js index 964e66f6a..ae1109fe8 100644 --- a/apps/skyspy/skyspy.app.js +++ b/apps/skyspy/skyspy.app.js @@ -1,74 +1,97 @@ - /* Sky spy */ +/* Sky spy */ + +let fmt = { + icon_alt : "\0\x08\x1a\1\x00\x00\x00\x20\x30\x78\x7C\xFE\xFF\x00\xC3\xE7\xFF\xDB\xC3\xC3\xC3\xC3\x00\x00\x00\x00\x00\x00\x00\x00", + icon_m : "\0\x08\x1a\1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xC3\xE7\xFF\xDB\xC3\xC3\xC3\xC3\x00\x00\x00\x00\x00\x00\x00\x00", + icon_km : "\0\x08\x1a\1\xC3\xC6\xCC\xD8\xF0\xD8\xCC\xC6\xC3\x00\xC3\xE7\xFF\xDB\xC3\xC3\xC3\xC3\x00\x00\x00\x00\x00\x00\x00\x00", + icon_kph : "\0\x08\x1a\1\xC3\xC6\xCC\xD8\xF0\xD8\xCC\xC6\xC3\x00\xC3\xE7\xFF\xDB\xC3\xC3\xC3\xC3\x00\xFF\x00\xC3\xC3\xFF\xC3\xC3", + icon_c : "\0\x08\x1a\1\x00\x00\x60\x90\x90\x60\x00\x7F\xFF\xC0\xC0\xC0\xC0\xC0\xFF\x7F\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", -let libgps = { - emulator: -1, - init: function(x) { - this.emulator = (process.env.BOARD=="EMSCRIPTEN" - || process.env.BOARD=="EMSCRIPTEN2")?1:0; - }, - state: {}, /* 0 .. DD.ddddd 1 .. DD MM.mmm' 2 .. DD MM'ss" */ - mode: 1, - format: function(x) { - switch (this.mode) { - case 0: - return "" + x; - case 1: { - let d = Math.floor(x); - let m = x - d; - m = m*60; - return "" + d + " " + m.toFixed(3) + "'"; - } - case 2: { - let d = Math.floor(x); - let m = x - d; - m = m*60; - let mf = Math.floor(m); - let s = m - mf; - s = s*60; - return "" + d + " " + mf + "'" + s.toFixed(0) + '"'; - } - } - return "bad mode?"; - }, - on_gps: function(f) { - let fix = this.getGPSFix(); - f(fix); + geo_mode : 1, + + init: function() {}, + fmtDist: function(km) { return km.toFixed(1) + this.icon_km; }, + fmtSteps: function(n) { return fmtDist(0.001 * 0.719 * n); }, + fmtAlt: function(m) { return m.toFixed(0) + this.icon_alt; }, + fmtTimeDiff: function(d) { + if (d < 180) + return ""+d.toFixed(0); + d = d/60; + return ""+d.toFixed(0)+"m"; + }, + fmtAngle: function(x) { + switch (this.geo_mode) { + case 0: + return "" + x; + case 1: { + let d = Math.floor(x); + let m = x - d; + m = m*60; + return "" + d + " " + m.toFixed(3) + "'"; + } + case 2: { + let d = Math.floor(x); + let m = x - d; + m = m*60; + let mf = Math.floor(m); + let s = m - mf; + s = s*60; + return "" + d + " " + mf + "'" + s.toFixed(0) + '"'; + } + } + return "bad mode?"; + }, + fmtPos: function(pos) { + return this.fmtAngle(pos.lat) + "\n" + this.fmtAngle(pos.lon); + }, +}; - /* - "lat": number, // Latitude in degrees - "lon": number, // Longitude in degrees - "alt": number, // altitude in M - "speed": number, // Speed in kph - "course": number, // Course in degrees - "time": Date, // Current Time (or undefined if not known) - "satellites": 7, // Number of satellites - "fix": 1 // NMEA Fix state - 0 is no fix - "hdop": number, // Horizontal Dilution of Precision - */ - this.state.timeout = setTimeout(this.on_gps, 1000, f); - }, - off_gps: function() { - clearTimeout(gps_state.timeout); - }, - getGPSFix: function() { - if (!this.emulator) - return Bangle.getGPSFix(); - let fix = {}; - fix.fix = 1; - fix.lat = 50; - fix.lon = 14; - fix.alt = 200; - fix.speed = 5; - fix.course = 30; - fix.time = Date(); - fix.satellites = 5; - fix.hdop = 12; - return fix; - } +let gps = { + emulator: -1, + init: function(x) { + this.emulator = (process.env.BOARD=="EMSCRIPTEN" + || process.env.BOARD=="EMSCRIPTEN2")?1:0; + }, + state: {}, + on_gps: function(f) { + let fix = this.getGPSFix(); + f(fix); + + /* + "lat": number, // Latitude in degrees + "lon": number, // Longitude in degrees + "alt": number, // altitude in M + "speed": number, // Speed in kph + "course": number, // Course in degrees + "time": Date, // Current Time (or undefined if not known) + "satellites": 7, // Number of satellites + "fix": 1 // NMEA Fix state - 0 is no fix + "hdop": number, // Horizontal Dilution of Precision + */ + this.state.timeout = setTimeout(this.on_gps, 1000, f); + }, + off_gps: function() { + clearTimeout(gps_state.timeout); + }, + getGPSFix: function() { + if (!this.emulator) + return Bangle.getGPSFix(); + let fix = {}; + fix.fix = 1; + fix.lat = 50; + fix.lon = 14; + fix.alt = 200; + fix.speed = 5; + fix.course = 30; + fix.time = Date(); + fix.satellites = 5; + fix.hdop = 12; + return fix; + } }; var display = 0; @@ -109,13 +132,13 @@ function calcAlt(alt, cur_altitude) { return ddalt; } function updateGps() { - let have = false, lat = "lat ", lon = "lon ", alt = "?", + let have = false, lat = "lat ", alt = "?", speed = "speed ", hdop = "?", adelta = "adelta ", tdelta = "tdelta "; if (cancel_gps) return; - fix = libgps.getGPSFix(); + fix = gps.getGPSFix(); if (adj_time) { print("Adjusting time"); setTime(fix.time.getTime()/1000); @@ -136,16 +159,15 @@ function updateGps() { tdelta = "" + (getTime() - fix.time.getTime()/1000).toFixed(0); } if (fix && fix.fix && fix.lat) { - lat = "" + libgps.format(fix.lat); - lon = "" + libgps.format(fix.lon); + lat = "" + fmt.fmtPos(fix); alt = "" + fix.alt.toFixed(0); adelta = "" + (cur_altitude - fix.alt).toFixed(0); speed = "" + fix.speed.toFixed(1); hdop = "" + fix.hdop.toFixed(0); have = true; } else { - lat = "NO FIX "; - lon = "" + (getTime() - gps_start).toFixed(0) + "s " + lat = "NO FIX\n" + + "" + (getTime() - gps_start).toFixed(0) + "s " + sats_used + "/" + snum; if (cur_altitude) adelta = "" + cur_altitude.toFixed(0); @@ -154,7 +176,7 @@ function updateGps() { let ddalt = calcAlt(alt, cur_altitude); let msg = ""; if (display == 1) { - msg = lat + "\n" + lon + + msg = lat + "\ne" + hdop + "m "+tdelta+"s\n" + speed + "km/h\n"+ alt + "m+" + adelta + "\nmsghere"; } @@ -349,7 +371,8 @@ function touchHandler(d) { nextScreen(); } -libgps.init(); +gps.init(); +fmt.init(); Bangle.on("drag", touchHandler); Bangle.setUI({ From cd87342bd9c07dfc5da143cc927bbcdabcbb7705 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Sun, 23 Jun 2024 14:43:35 +0200 Subject: [PATCH 058/594] [] skyspy: display N/E for a fix, too. --- apps/skyspy/skyspy.app.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/apps/skyspy/skyspy.app.js b/apps/skyspy/skyspy.app.js index ae1109fe8..7cfa5145a 100644 --- a/apps/skyspy/skyspy.app.js +++ b/apps/skyspy/skyspy.app.js @@ -46,7 +46,19 @@ let fmt = { return "bad mode?"; }, fmtPos: function(pos) { - return this.fmtAngle(pos.lat) + "\n" + this.fmtAngle(pos.lon); + let x = pos.lat; + let c = "N"; + if (x<0) { + c = "S"; + x = -x; + } + let s = c+this.fmtAngle(pos.lat) + "\n"; + c = "E"; + if (x<0) { + c = "W"; + x = -x; + } + return s + c + this.fmtAngle(pos.lon); }, }; From c2692e179b432a30fc6586f740a5f4b48b7cee1f Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Sun, 23 Jun 2024 15:11:11 +0200 Subject: [PATCH 059/594] [] skyspy: add automatic altitude adjustment --- apps/skyspy/skyspy.app.js | 70 +++++++++++++++++++++++++++++---------- 1 file changed, 52 insertions(+), 18 deletions(-) diff --git a/apps/skyspy/skyspy.app.js b/apps/skyspy/skyspy.app.js index 7cfa5145a..9d74890ff 100644 --- a/apps/skyspy/skyspy.app.js +++ b/apps/skyspy/skyspy.app.js @@ -113,7 +113,7 @@ var cur_altitude; var wi = 24; var h = 176-wi, w = 176; var fix; -var adj_time = 0; +var adj_time = 0, adj_alt = 0; function radA(p) { return p*(Math.PI*2); } function radD(d) { return d*(h/2); } @@ -156,6 +156,26 @@ function updateGps() { setTime(fix.time.getTime()/1000); adj_time = 0; } + if (adj_alt) { + print("Adjust altitude"); + if (qalt < 5) { + let rest_altitude = fix.alt; + let alt_adjust = cur_altitude - rest_altitude; + let abs = Math.abs(alt_adjust); + print("adj", alt_adjust); + let o = Bangle.getOptions(); + if (abs > 10 && abs < 150) { + let a = 0.01; + // FIXME: draw is called often compared to alt reading + if (cur_altitude > rest_altitude) + a = -a; + o.seaLevelPressure = o.seaLevelPressure + a; + Bangle.setOptions(o); + } + msg = o.seaLevelPressure.toFixed(1) + "hPa"; + print(msg); + } + } try { Bangle.getPressure().then((x) => { @@ -351,36 +371,50 @@ function drawBusy() { drawMsg("\n.oO busy"); } +var numScreens = 3; + function nextScreen() { display = display + 1; - if (display == 3) - display = 0; - drawBusy(); + if (display == numScreens) + display = 0; + drawBusy(); +} +function prevScreen() { + display = display - 1; + if (display < 0) + display = numScreens - 1; + drawBusy(); } function onSwipe(dir) { - nextScreen(); + nextScreen(); } var last_b = 0; function touchHandler(d) { - let x = Math.floor(d.x); - let y = Math.floor(d.y); - - if (d.b != 1 || last_b != 0) { + let x = Math.floor(d.x); + let y = Math.floor(d.y); + + if (d.b != 1 || last_b != 0) { + last_b = d.b; + return; + } last_b = d.b; - return; - } - last_b = d.b; - if ((xh/2) && (yh/2) && (y>w/2)) - nextScreen(); + if ((xw/2)) + prevScreen(); + if ((x>h/2) && (y>w/2)) + nextScreen(); } gps.init(); From 0eab3bdcc804c609d0175dcee6eb84551b7a9846 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Mon, 24 Jun 2024 21:26:03 +0200 Subject: [PATCH 060/594] [] skyspy: mark library versions --- apps/skyspy/skyspy.app.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/skyspy/skyspy.app.js b/apps/skyspy/skyspy.app.js index 9d74890ff..29c0a1360 100644 --- a/apps/skyspy/skyspy.app.js +++ b/apps/skyspy/skyspy.app.js @@ -1,5 +1,6 @@ /* Sky spy */ +/* fmt library v0.1 */ let fmt = { icon_alt : "\0\x08\x1a\1\x00\x00\x00\x20\x30\x78\x7C\xFE\xFF\x00\xC3\xE7\xFF\xDB\xC3\xC3\xC3\xC3\x00\x00\x00\x00\x00\x00\x00\x00", icon_m : "\0\x08\x1a\1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xC3\xE7\xFF\xDB\xC3\xC3\xC3\xC3\x00\x00\x00\x00\x00\x00\x00\x00", @@ -62,6 +63,7 @@ let fmt = { }, }; +/* gps library v0.1 */ let gps = { emulator: -1, init: function(x) { From 6014001307dd35b7dfd2d7411919cd0d87cd639f Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Sat, 13 Jul 2024 12:05:52 +0200 Subject: [PATCH 061/594] [] skyspy: increase version. --- apps/skyspy/ChangeLog | 1 + apps/skyspy/metadata.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/skyspy/ChangeLog b/apps/skyspy/ChangeLog index 79da4daf2..15a83ceeb 100644 --- a/apps/skyspy/ChangeLog +++ b/apps/skyspy/ChangeLog @@ -1,2 +1,3 @@ 0.01: attempt to import 0.02: Minor code improvements +0.03: big rewrite, adding time-adjust and altitude-adjust functionality diff --git a/apps/skyspy/metadata.json b/apps/skyspy/metadata.json index 07bc9280a..d8e9d1356 100644 --- a/apps/skyspy/metadata.json +++ b/apps/skyspy/metadata.json @@ -1,6 +1,6 @@ { "id": "skyspy", "name": "Sky Spy", - "version": "0.02", + "version": "0.03", "description": "Application for debugging GPS problems", "icon": "app.png", "readme": "README.md", From 3e7c1b6710695eb145c6f605d30291d3bebb00f9 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Sat, 13 Jul 2024 12:23:52 +0200 Subject: [PATCH 062/594] [] skyspy: attempt warning fixes. --- apps/skyspy/skyspy.app.js | 174 ++++++++++++++++++-------------------- 1 file changed, 83 insertions(+), 91 deletions(-) diff --git a/apps/skyspy/skyspy.app.js b/apps/skyspy/skyspy.app.js index 29c0a1360..0e6654c62 100644 --- a/apps/skyspy/skyspy.app.js +++ b/apps/skyspy/skyspy.app.js @@ -16,25 +16,25 @@ let fmt = { init: function() {}, fmtDist: function(km) { return km.toFixed(1) + this.icon_km; }, - fmtSteps: function(n) { return fmtDist(0.001 * 0.719 * n); }, + fmtSteps: function(n) { return this.fmtDist(0.001 * 0.719 * n); }, fmtAlt: function(m) { return m.toFixed(0) + this.icon_alt; }, fmtTimeDiff: function(d) { - if (d < 180) - return ""+d.toFixed(0); - d = d/60; - return ""+d.toFixed(0)+"m"; + if (d < 180) + return ""+d.toFixed(0); + d = d/60; + return ""+d.toFixed(0)+"m"; }, fmtAngle: function(x) { - switch (this.geo_mode) { - case 0: + switch (this.geo_mode) { + case 0: return "" + x; - case 1: { + case 1: { let d = Math.floor(x); let m = x - d; m = m*60; return "" + d + " " + m.toFixed(3) + "'"; - } - case 2: { + } + case 2: { let d = Math.floor(x); let m = x - d; m = m*60; @@ -42,24 +42,24 @@ let fmt = { let s = m - mf; s = s*60; return "" + d + " " + mf + "'" + s.toFixed(0) + '"'; - } - } - return "bad mode?"; + } + } + return "bad mode?"; }, fmtPos: function(pos) { - let x = pos.lat; - let c = "N"; - if (x<0) { - c = "S"; - x = -x; - } - let s = c+this.fmtAngle(pos.lat) + "\n"; - c = "E"; - if (x<0) { - c = "W"; - x = -x; - } - return s + c + this.fmtAngle(pos.lon); + let x = pos.lat; + let c = "N"; + if (x<0) { + c = "S"; + x = -x; + } + let s = c+this.fmtAngle(pos.lat) + "\n"; + c = "E"; + if (x<0) { + c = "W"; + x = -x; + } + return s + c + this.fmtAngle(pos.lon); }, }; @@ -67,50 +67,50 @@ let fmt = { let gps = { emulator: -1, init: function(x) { - this.emulator = (process.env.BOARD=="EMSCRIPTEN" - || process.env.BOARD=="EMSCRIPTEN2")?1:0; + this.emulator = (process.env.BOARD=="EMSCRIPTEN" + || process.env.BOARD=="EMSCRIPTEN2")?1:0; }, state: {}, on_gps: function(f) { - let fix = this.getGPSFix(); - f(fix); + let fix = this.getGPSFix(); + f(fix); - /* - "lat": number, // Latitude in degrees - "lon": number, // Longitude in degrees - "alt": number, // altitude in M - "speed": number, // Speed in kph - "course": number, // Course in degrees - "time": Date, // Current Time (or undefined if not known) - "satellites": 7, // Number of satellites - "fix": 1 // NMEA Fix state - 0 is no fix - "hdop": number, // Horizontal Dilution of Precision - */ - this.state.timeout = setTimeout(this.on_gps, 1000, f); + /* + "lat": number, // Latitude in degrees + "lon": number, // Longitude in degrees + "alt": number, // altitude in M + "speed": number, // Speed in kph + "course": number, // Course in degrees + "time": Date, // Current Time (or undefined if not known) + "satellites": 7, // Number of satellites + "fix": 1 // NMEA Fix state - 0 is no fix + "hdop": number, // Horizontal Dilution of Precision + */ + this.state.timeout = setTimeout(this.on_gps, 1000, f); }, off_gps: function() { - clearTimeout(gps_state.timeout); + clearTimeout(this.state.timeout); }, getGPSFix: function() { - if (!this.emulator) - return Bangle.getGPSFix(); - let fix = {}; - fix.fix = 1; - fix.lat = 50; - fix.lon = 14; - fix.alt = 200; - fix.speed = 5; - fix.course = 30; - fix.time = Date(); - fix.satellites = 5; - fix.hdop = 12; - return fix; + if (!this.emulator) + return Bangle.getGPSFix(); + let fix = {}; + fix.fix = 1; + fix.lat = 50; + fix.lon = 14; + fix.alt = 200; + fix.speed = 5; + fix.course = 30; + fix.time = Date(); + fix.satellites = 5; + fix.hdop = 12; + return fix; } }; var display = 0; var debug = 0; -var cancel_gps, gps_start; +var gps_start; var cur_altitude; var wi = 24; var h = 176-wi, w = 176; @@ -128,7 +128,7 @@ function radY(p, d) { return h/2 - Math.cos(a)*radD(d) + wi; } -var qalt = -1; +var qalt = -1, min_dalt, max_dalt, step; function resetAlt() { min_dalt = 9999; max_dalt = -9999; step = 0; } @@ -150,8 +150,6 @@ function updateGps() { speed = "speed ", hdop = "?", adelta = "adelta ", tdelta = "tdelta "; - if (cancel_gps) - return; fix = gps.getGPSFix(); if (adj_time) { print("Adjusting time"); @@ -161,21 +159,21 @@ function updateGps() { if (adj_alt) { print("Adjust altitude"); if (qalt < 5) { - let rest_altitude = fix.alt; - let alt_adjust = cur_altitude - rest_altitude; - let abs = Math.abs(alt_adjust); - print("adj", alt_adjust); - let o = Bangle.getOptions(); - if (abs > 10 && abs < 150) { - let a = 0.01; - // FIXME: draw is called often compared to alt reading - if (cur_altitude > rest_altitude) - a = -a; - o.seaLevelPressure = o.seaLevelPressure + a; - Bangle.setOptions(o); - } - msg = o.seaLevelPressure.toFixed(1) + "hPa"; - print(msg); + let rest_altitude = fix.alt; + let alt_adjust = cur_altitude - rest_altitude; + let abs = Math.abs(alt_adjust); + print("adj", alt_adjust); + let o = Bangle.getOptions(); + if (abs > 10 && abs < 150) { + let a = 0.01; + // FIXME: draw is called often compared to alt reading + if (cur_altitude > rest_altitude) + a = -a; + o.seaLevelPressure = o.seaLevelPressure + a; + Bangle.setOptions(o); + } + msg = o.seaLevelPressure.toFixed(1) + "hPa"; + print(msg); } } @@ -350,13 +348,7 @@ function parseRaw(msg, lost) { } } -function stopGps() { - cancel_gps=true; - Bangle.setGPSPower(0, "skyspy"); -} - function markGps() { - cancel_gps = false; Bangle.setGPSPower(1, "skyspy"); Bangle.on('GPS-raw', parseRaw); gps_start = getTime(); @@ -378,14 +370,14 @@ var numScreens = 3; function nextScreen() { display = display + 1; if (display == numScreens) - display = 0; + display = 0; drawBusy(); } function prevScreen() { display = display - 1; if (display < 0) - display = numScreens - 1; + display = numScreens - 1; drawBusy(); } @@ -399,24 +391,24 @@ function touchHandler(d) { let y = Math.floor(d.y); if (d.b != 1 || last_b != 0) { - last_b = d.b; - return; + last_b = d.b; + return; } last_b = d.b; if ((xh/2) && (yw/2)) - prevScreen(); + prevScreen(); if ((x>h/2) && (y>w/2)) - nextScreen(); + nextScreen(); } gps.init(); From 5160c2eedaf9b02e55b8601bedf51a5ae2e76e6c Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Sat, 13 Jul 2024 12:26:29 +0200 Subject: [PATCH 063/594] [] skyspy: fix remaining warning --- apps/skyspy/skyspy.app.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/skyspy/skyspy.app.js b/apps/skyspy/skyspy.app.js index 0e6654c62..a3a0d8776 100644 --- a/apps/skyspy/skyspy.app.js +++ b/apps/skyspy/skyspy.app.js @@ -146,7 +146,7 @@ function calcAlt(alt, cur_altitude) { return ddalt; } function updateGps() { - let have = false, lat = "lat ", alt = "?", + let lat = "lat ", alt = "?", speed = "speed ", hdop = "?", adelta = "adelta ", tdelta = "tdelta "; @@ -196,7 +196,6 @@ function updateGps() { adelta = "" + (cur_altitude - fix.alt).toFixed(0); speed = "" + fix.speed.toFixed(1); hdop = "" + fix.hdop.toFixed(0); - have = true; } else { lat = "NO FIX\n" + "" + (getTime() - gps_start).toFixed(0) + "s " From 42b3de082ea2542315ce7d828de2f232da23065e Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Sat, 13 Jul 2024 04:39:01 -0700 Subject: [PATCH 064/594] Update app.js --- apps/8ball/app.js | 49 +++++------------------------------------------ 1 file changed, 5 insertions(+), 44 deletions(-) diff --git a/apps/8ball/app.js b/apps/8ball/app.js index 581e3e7bc..5a15e5bca 100644 --- a/apps/8ball/app.js +++ b/apps/8ball/app.js @@ -1,9 +1,8 @@ try {keyboard = require(keyboard);} catch(e) {keyboard = null;}var keyboard = "textinput"; var Name = ""; -var WaitTime = 0; Bangle.setLCDTimeout(0); - -var answers = new Array("no", "yes","WHAT????","What do you think", "That was a bad question", "YES!!!", "NOOOOO!!", "nope","100%","yup","why should I answer that?","think for yourself","ask again later, I'm busy", "what Was that horrible question","how dare you?","you wanted to hear yes? okay, yes", "Don't get angry when I say no","you are 100% wrong","totally, for sure","hmmm... I'll ponder it and get back to you later","wow, you really have a lot of questions", "NOPE","is the sky blue, hmmm...","I don't have time to answer","How many more questions before you change my name?","theres this thing called wikipedia","hmm... I don't seem to be able to reach the internet right now","if you phrase it like that, yes","Huh, never thought so hard in my life","The winds of time say no", "uh... can you ask that again? I kinda forgot", "I know I'm a computer, but even I can get bored"); +var menuOpen = 1; +var answers = new Array("no", "yes","WHAT????","What do you think", "That was a bad question", "YES!!!", "NOOOOO!!", "nope","100%","yup","why should I answer that?","think for yourself","ask again later, I'm busy", "what Was that horrible question","how dare you?","you wanted to hear yes? okay, yes", "Don't get angry when I say no","you are 100% wrong","totally, for sure","hmmm... I'll ponder it and get back to you later","wow, you really have a lot of questions", "NOPE","is the sky blue, hmmm...","I don't have time to answer","How many more questions before you change my name?","theres this thing called wikipedia","hmm... I don't seem to be able to reach the internet right now","if you phrase it like that, yes","Huh, never thought so hard in my life","The winds of time say no"); var consonants = new Array("b","c","d","f","g","h","j","k","l","m","n","p","q","r","s","t","v","w","x","y","z"); var vowels = new Array("a","e","i","o","u"); try {keyboard = require(keyboard);} catch(e) {keyboard = null;} @@ -36,28 +35,12 @@ function menu() menuOpen = 0; Drawtext("ask " + Name + " a yes or no question"); }, - "Show name" : () => { - E.showMenu(); - if(Name == null) - { - E.showAlert("No Name Data").then(result => {menu();}); - } - - else - { - E.showAlert(Name).then(result => {menu();}); - } - }, - "regenerate name" : () => { E.showMenu(); generateName(); - E.showAlert("name regenerated as " + Name).then(result => {menu();}); - - }, "show answers" : () => { - var menu = new Array(); + var menu = new Array([]); for(var i = 0; i < answers.length; i++){ menu.push({title : answers[i]}); } @@ -72,28 +55,18 @@ function menu() }, "Edit name" : () => { E.showMenu(); - var result = keyboard.input({}).then(result => {Name = result, menu();}); - + var result = keyboard.input({}).then(result => {menu(), Name = result;}); }, "Exit" : () => load(), }); } menu(); - - var answer; +var answer; function Drawtext(text) { g.clear(); - //g.setFontAlign(0,0); g.setFont("Vector", 20); g.drawString(g.wrapString(text, g.getWidth(), -20).join("\n")); - - -} -function DrawWidgets() -{ - Bangle.loadWidgets(); - Bangle.drawWidgets(); } function WriteAnswer() { @@ -101,8 +74,6 @@ function WriteAnswer() { var randomnumber = Math.round(Math.random()*answers.length); answer = answers[randomnumber]; - var i; - Drawtext(answer); setTimeout(function() { Drawtext("ask " + Name + " a yes or no question"); @@ -111,16 +82,6 @@ function WriteAnswer() } } -//turns screen timeout off when menu closed -//needs attention -/*if(menuOpen == 1) -{ - Bangle.setLCDTimeout(10); -} -else -{ - Bangle.setLCDTimeout(undefined); -}*/ setWatch(function() { menu(); From d789d37de5d3339f87140fcc7088c94e778ee0f1 Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Sat, 13 Jul 2024 04:41:09 -0700 Subject: [PATCH 065/594] Update app.js --- apps/boxclk/app.js | 798 ++++++++++++++++++++++----------------------- 1 file changed, 397 insertions(+), 401 deletions(-) diff --git a/apps/boxclk/app.js b/apps/boxclk/app.js index 34ffac1b6..8c29aac14 100644 --- a/apps/boxclk/app.js +++ b/apps/boxclk/app.js @@ -1,413 +1,409 @@ +let background = require("clockbg"); +Modules.addCached("widget_utils", function() { + exports.hide = function() { + exports.cleanup(); + if (!global.WIDGETS) return; + g.reset(); + for (var w of global.WIDGETS) { + if (w._draw) return; + w._draw = w.draw; + w.draw = () => {}; + w._area = w.area; + w.area = ""; + if (w.x != undefined) g.clearRect(w.x, w.y, w.x + w.width - 1, w.y + 23); + } + }; + exports.show = function() { + exports.cleanup(); + if (!global.WIDGETS) return; + for (var w of global.WIDGETS) { + if (!w._draw) return; + w.draw = w._draw; + w.area = w._area; + delete w._draw; + delete w._area; + w.draw(w); + } + }; + exports.cleanup = function() { + delete exports.autohide; + delete Bangle.appRect; + if (exports.swipeHandler) { + Bangle.removeListener("swipe", exports.swipeHandler); + delete exports.swipeHandler; + } + if (exports.animInterval) { + clearInterval(exports.animInterval); + delete exports.animInterval; + } + if (exports.hideTimeout) { + clearTimeout(exports.hideTimeout); + delete exports.hideTimeout; + } + if (exports.origDraw) { + Bangle.drawWidgets = exports.origDraw; + delete exports.origDraw; + } + } + exports.swipeOn = function(autohide) { + if (process.env.HWVERSION !== 2) return exports.hide(); + exports.cleanup(); + if (!global.WIDGETS) return; + exports.autohide = autohide === undefined ? 2000 : autohide; + Bangle.appRect = { + x: 0, + y: 0, + w: g.getWidth(), + h: g.getHeight(), + x2: g.getWidth() - 1, + y2: g.getHeight() - 1 + }; + let og = Graphics.createArrayBuffer(g.getWidth(), 26, 16, { + msb: true + }); + og.theme = g.theme; + og._reset = og.reset; + og.reset = function() { + return this._reset().setColor(g.theme.fg).setBgColor(g.theme.bg); + }; + og.reset().clearRect(0, 0, og.getWidth(), 23).fillRect(0, 24, og.getWidth(), 25); + let _g = g; + let offset = -24; + + function queueDraw() { + Bangle.appRect.y = offset + 24; + Bangle.appRect.h = 1 + Bangle.appRect.y2 - Bangle.appRect.y; + if (offset > -24) Bangle.setLCDOverlay(og, 0, offset); + else Bangle.setLCDOverlay(); + } + for (var w of global.WIDGETS) { + if (w._draw) continue; + w._draw = w.draw; + w.draw = function() { + g = og; + this._draw(this); + g = _g; + if (offset > -24) queueDraw(); + }; + w._area = w.area; + if (w.area.startsWith("b")) w.area = "t" + w.area.substr(1); + } + exports.origDraw = Bangle.drawWidgets; + Bangle.drawWidgets = () => { + g = og; + exports.origDraw(); + g = _g; + }; + + function anim(dir, callback) { + if (exports.animInterval) clearInterval(exports.interval); + exports.animInterval = setInterval(function() { + offset += dir; + let stop = false; + if (dir > 0 && offset >= 0) { + stop = true; + offset = 0; + } else if (dir < 0 && offset < -23) { + stop = true; + offset = -24; + } + if (stop) { + clearInterval(exports.animInterval); + delete exports.animInterval; + if (callback) callback(); + } + queueDraw(); + }, 50); + } + exports.swipeHandler = function(lr, ud) { + if (exports.hideTimeout) { + clearTimeout(exports.hideTimeout); + delete exports.hideTimeout; + } + let cb; + if (exports.autohide > 0) cb = function() { + exports.hideTimeout = setTimeout(function() { + anim(-4); + }, exports.autohide); + } + if (ud > 0 && offset < 0) anim(4, cb); + if (ud < 0 && offset > -24) anim(-4); + }; + Bangle.on("swipe", exports.swipeHandler); + Bangle.drawWidgets(); + }; +}); { - /** - * --------------------------------------------------------------- - * 1. Module dependencies and initial configurations - * --------------------------------------------------------------- - */ - let background = require("clockbg"); - let storage = require("Storage"); - let locale = require("locale"); - let widgets = require("widget_utils"); - let date = new Date(); - let bgImage; - let configNumber = (storage.readJSON("boxclk.json", 1) || {}).selectedConfig || 0; - let fileName = 'boxclk' + (configNumber > 0 ? `-${configNumber}` : '') + '.json'; - // Add a condition to check if the file exists, if it does not, default to 'boxclk.json' - if (!storage.read(fileName)) { - fileName = 'boxclk.json'; - } - let boxesConfig = storage.readJSON(fileName, 1) || {}; - let boxes = {}; - let boxPos = {}; - let isDragging = {}; - let wasDragging = {}; - let doubleTapTimer = null; - let g_setColor; - - let saveIcon = require("heatshrink").decompress(atob("mEwwkEogA/AHdP/4AK+gWVDBQWNAAIuVGBAIB+UQdhMfGBAHBCxUAgIXHIwPyCxQwEJAgXB+MAl/zBwQGBn8ggQjBGAQXG+EA/4XI/8gBIQXTGAMPC6n/C6HzkREBC6YACC6QAFC57aHCYIXOOgLsEn4XPABIX/C6vykQAEl6/WgCQBC5imFAAT2BC5gCBI4oUCC5x0IC/4X/C4K8Bl4XJ+TCCC4wKBABkvC4tEEoMQCxcBB4IWEC4XyDBUBFwIXGJAIAOIwowDABoWGGB4uHDBwWJAH4AzA")); - - /** - * --------------------------------------------------------------- - * 2. Graphical and visual configurations - * --------------------------------------------------------------- - */ - - let w = g.getWidth(); - let h = g.getHeight(); - let totalWidth, totalHeight; - let drawTimeout; - - /** - * --------------------------------------------------------------- - * 3. Touchscreen Handlers - * --------------------------------------------------------------- - */ - - let touchHandler; - let dragHandler; - let movementDistance = 0; - - /** - * --------------------------------------------------------------- - * 4. Font loading function - * --------------------------------------------------------------- - */ - - let loadCustomFont = function() { - Graphics.prototype.setFontBrunoAce = function() { - // Actual height 23 (24 - 2) - return this.setFontCustom( - E.toString(require('heatshrink').decompress(atob('ABMHwADBh4DKg4bKgIPDAYUfAYV/AYX/AQMD/gmC+ADBn/AByE/GIU8AYUwLxcfAYX/8AnB//4JIP/FgMP4F+CQQBBjwJBFYRbBAd43DHoJpBh/g/xPEK4ZfDgEEORKDDAY8////wADLfZrTCgITBnhEBAYJMBAYMPw4DCM4QDjhwDCjwDBn0+AYMf/gDBh/4AYMH+ADBLpc4ToK/NGYZfnAYcfL4U/x5fBW4LvB/7vC+LvBgHAsBfIn76Cn4WBcYQDFEgJ+CQQYDyH4L/BAZbHLNYjjCAZc8ngDunycBZ4KkBa4KwBnEHY4UB+BfMgf/ZgMH/4XBc4cf4F/gE+ZgRjwAYcfj5jBM4U4M4RQBM4UA8BjIngDFEYJ8BAYUDAYQvCM4ZxBC4V+AYQvBnkBQ4M8gabBJQPAI4WAAYM/GYQaBAYJKCnqyCn5OCn4aBAYIaBAYJPCU4IABnBhIuDXCFAMD+Z/BY4IDBQwOPwEfv6TDAYUPAcwrDAYQ7BAYY/BI4cD8bLCK4RfEAA0BRYTeDcwIrFn0Pw43Bg4DugYDBjxBBU4SvDMYMH/5QBgP/LAQAP8EHN4UPwADHB4YAHA'))), - 46, - atob("CBEdChgYGhgaGBsaCQ=="), - 32|65536 - ); - }; - }; - - /** - * --------------------------------------------------------------- - * 5. Initial settings of boxes and their positions - * --------------------------------------------------------------- - */ - - for (let key in boxesConfig) { - if (key === 'bg' && boxesConfig[key].img) { - bgImage = storage.read(boxesConfig[key].img); - } else if (key !== 'selectedConfig') { - boxes[key] = Object.assign({}, boxesConfig[key]); + let storage = require("Storage"); + let locale = require("locale"); + let widgets = require("widget_utils"); + let date = new Date(); + let configNumber = (storage.readJSON("boxclk.json", 1) || {}).selectedConfig || 0; + let fileName = 'boxclk' + (configNumber > 0 ? `-${configNumber}` : '') + '.json'; + if (!storage.read(fileName)) { + fileName = 'boxclk.json'; } - } - - let boxKeys = Object.keys(boxes); - - boxKeys.forEach((key) => { - let boxConfig = boxes[key]; - boxPos[key] = { - x: w * boxConfig.boxPos.x, - y: h * boxConfig.boxPos.y + let boxesConfig = storage.readJSON(fileName, 1) || {}; + let boxes = {}; + let boxPos = {}; + let isDragging = {}; + let wasDragging = {}; + let doubleTapTimer = null; + let g_setColor; + let saveIcon = require("heatshrink").decompress(atob("mEwwkEogA/AHdP/4AK+gWVDBQWNAAIuVGBAIB+UQdhMfGBAHBCxUAgIXHIwPyCxQwEJAgXB+MAl/zBwQGBn8ggQjBGAQXG+EA/4XI/8gBIQXTGAMPC6n/C6HzkREBC6YACC6QAFC57aHCYIXOOgLsEn4XPABIX/C6vykQAEl6/WgCQBC5imFAAT2BC5gCBI4oUCC5x0IC/4X/C4K8Bl4XJ+TCCC4wKBABkvC4tEEoMQCxcBB4IWEC4XyDBUBFwIXGJAIAOIwowDABoWGGB4uHDBwWJAH4AzA")); + let w = g.getWidth(); + let h = g.getHeight(); + let totalWidth, totalHeight; + let drawTimeout; + let touchHandler; + let dragHandler; + let movementDistance = 0; + let loadCustomFont = function() { + Graphics.prototype.setFontBrunoAce = function() { + return this.setFontCustom(E.toString(require('heatshrink').decompress(atob('ABMHwADBh4DKg4bKgIPDAYUfAYV/AYX/AQMD/gmC+ADBn/AByE/GIU8AYUwLxcfAYX/8AnB//4JIP/FgMP4F+CQQBBjwJBFYRbBAd43DHoJpBh/g/xPEK4ZfDgEEORKDDAY8////wADLfZrTCgITBnhEBAYJMBAYMPw4DCM4QDjhwDCjwDBn0+AYMf/gDBh/4AYMH+ADBLpc4ToK/NGYZfnAYcfL4U/x5fBW4LvB/7vC+LvBgHAsBfIn76Cn4WBcYQDFEgJ+CQQYDyH4L/BAZbHLNYjjCAZc8ngDunycBZ4KkBa4KwBnEHY4UB+BfMgf/ZgMH/4XBc4cf4F/gE+ZgRjwAYcfj5jBM4U4M4RQBM4UA8BjIngDFEYJ8BAYUDAYQvCM4ZxBC4V+AYQvBnkBQ4M8gabBJQPAI4WAAYM/GYQaBAYJKCnqyCn5OCn4aBAYIaBAYJPCU4IABnBhIuDXCFAMD+Z/BY4IDBQwOPwEfv6TDAYUPAcwrDAYQ7BAYY/BI4cD8bLCK4RfEAA0BRYTeDcwIrFn0Pw43Bg4DugYDBjxBBU4SvDMYMH/5QBgP/LAQAP8EHN4UPwADHB4YAHA'))), 46, atob("CBEdChgYGhgaGBsaCQ=="), 32 | 65536); + }; }; - isDragging[key] = false; - wasDragging[key] = false; - }); - - /** - * --------------------------------------------------------------- - * 6. Text and drawing functions - * --------------------------------------------------------------- - */ - - // Overwrite the setColor function to allow the - // use of (x) in g.theme.x as a string - // in your JSON config ("fg", "bg", "fg2", "bg2", "fgH", "bgH") - let modSetColor = function() { - // Save the original setColor function - g_setColor = g.setColor; - // Overwrite setColor with the new function - g.setColor = function(color) { - if (typeof color === "string" && color in g.theme) { - g_setColor.call(g, g.theme[color]); - } else { - g_setColor.call(g, color); - } + for (let key in boxesConfig) { + if (key === 'bg' && boxesConfig[key].img) { + bgImage = storage.read(boxesConfig[key].img); + } else if (key !== 'selectedConfig') { + boxes[key] = Object.assign({}, boxesConfig[key]); + } + } + let boxKeys = Object.keys(boxes); + boxKeys.forEach((key) => { + let boxConfig = boxes[key]; + boxPos[key] = { + x: w * boxConfig.boxPos.x, + y: h * boxConfig.boxPos.y + }; + isDragging[key] = false; + wasDragging[key] = false; + }); + let modSetColor = function() { + g_setColor = g.setColor; + g.setColor = function(color) { + if (typeof color === "string" && color in g.theme) { + g_setColor.call(g, g.theme[color]); + } else { + g_setColor.call(g, color); + } + }; }; - }; - - let restoreSetColor = function() { - // Restore the original setColor function - if (g_setColor) { - g.setColor = g_setColor; - } - }; - - // Overwrite the drawString function - let g_drawString = g.drawString; - g.drawString = function(box, str, x, y) { - outlineText(box, str, x, y); - g.setColor(box.color); - g_drawString.call(g, str, x, y); - }; - - let outlineText = function(box, str, x, y) { - let px = box.outline; - let dx = [-px, 0, px, -px, px, -px, 0, px]; - let dy = [-px, -px, -px, 0, 0, px, px, px]; - g.setColor(box.outlineColor); - for (let i = 0; i < dx.length; i++) { - g_drawString.call(g, str, x + dx[i], y + dy[i]); - } - }; - - let calcBoxSize = function(boxItem) { - g.reset(); - g.setFontAlign(0,0); - g.setFont(boxItem.font, boxItem.fontSize); - let strWidth = g.stringWidth(boxItem.string) + 2 * boxItem.outline; - let fontHeight = g.getFontHeight() + 2 * boxItem.outline; - totalWidth = strWidth + 2 * boxItem.xPadding; - totalHeight = fontHeight + 2 * boxItem.yPadding; - }; - - let calcBoxPos = function(boxKey) { - return { - x1: boxPos[boxKey].x - totalWidth / 2, - y1: boxPos[boxKey].y - totalHeight / 2, - x2: boxPos[boxKey].x + totalWidth / 2, - y2: boxPos[boxKey].y + totalHeight / 2 + let restoreSetColor = function() { + if (g_setColor) { + g.setColor = g_setColor; + } }; - }; - - let displaySaveIcon = function() { - draw(boxes); - g.drawImage(saveIcon, w / 2 - 24, h / 2 - 24); - // Display save icon for 2 seconds - setTimeout(() => { - g.clearRect(w / 2 - 24, h / 2 - 24, w / 2 + 24, h / 2 + 24); - draw(boxes); - }, 2000); - }; - - /** - * --------------------------------------------------------------- - * 7. String forming helper functions - * --------------------------------------------------------------- - */ - - let isBool = function(val, defaultVal) { - return typeof val !== 'undefined' ? Boolean(val) : defaultVal; - }; - - let getDate = function(short, shortMonth, disableSuffix) { - const date = new Date(); - const dayOfMonth = date.getDate(); - const month = shortMonth ? locale.month(date, 1) : locale.month(date, 0); - const year = date.getFullYear(); - let suffix; - if ([1, 21, 31].includes(dayOfMonth)) { - suffix = "st"; - } else if ([2, 22].includes(dayOfMonth)) { - suffix = "nd"; - } else if ([3, 23].includes(dayOfMonth)) { - suffix = "rd"; - } else { - suffix = "th"; - } - let dayOfMonthStr = disableSuffix ? dayOfMonth : dayOfMonth + suffix; - return month + " " + dayOfMonthStr + (short ? '' : (", " + year)); // not including year for short version - }; - - let getDayOfWeek = function(date, short) { - return locale.dow(date, short ? 1 : 0); - }; - - locale.meridian = function(date, short) { - let hours = date.getHours(); - let meridian = hours >= 12 ? 'PM' : 'AM'; - return short ? meridian[0] : meridian; - }; - - let modString = function(boxItem, data) { - let prefix = boxItem.prefix || ''; - let suffix = boxItem.suffix || ''; - return prefix + data + suffix; - }; - - /** - * --------------------------------------------------------------- - * 8. Main draw function - * --------------------------------------------------------------- - */ - - let draw = (function() { - let updatePerMinute = true; // variable to track the state of time display - - return function(boxes) { - date = new Date(); - g.clear(); - background.fillRect(Bangle.appRect); - if (boxes.time) { - boxes.time.string = modString(boxes.time, locale.time(date, isBool(boxes.time.short, true) ? 1 : 0)); - updatePerMinute = isBool(boxes.time.short, true); - } - if (boxes.meridian) { - boxes.meridian.string = modString(boxes.meridian, locale.meridian(date, isBool(boxes.meridian.short, true))); - } - if (boxes.date) { - boxes.date.string = ( - modString(boxes.date, - getDate(isBool(boxes.date.short, true), - isBool(boxes.date.shortMonth, true), - isBool(boxes.date.disableSuffix, false) - ))); - } - if (boxes.dow) { - boxes.dow.string = modString(boxes.dow, getDayOfWeek(date, isBool(boxes.dow.short, true))); - } - if (boxes.batt) { - boxes.batt.string = modString(boxes.batt, E.getBattery()); - } - if (boxes.step) { - boxes.step.string = modString(boxes.step, Bangle.getHealthStatus("day").steps); - } - boxKeys.forEach((boxKey) => { - let boxItem = boxes[boxKey]; + let g_drawString = g.drawString; + g.drawString = function(box, str, x, y) { + outlineText(box, str, x, y); + g.setColor(box.color); + g_drawString.call(g, str, x, y); + }; + let outlineText = function(box, str, x, y) { + let px = box.outline; + let dx = [-px, 0, px, -px, px, -px, 0, px]; + let dy = [-px, -px, -px, 0, 0, px, px, px]; + g.setColor(box.outlineColor); + for (let i = 0; i < dx.length; i++) { + g_drawString.call(g, str, x + dx[i], y + dy[i]); + } + }; + let calcBoxSize = function(boxItem) { + g.reset(); + g.setFontAlign(0, 0); + g.setFont(boxItem.font, boxItem.fontSize); + let strWidth = g.stringWidth(boxItem.string) + 2 * boxItem.outline; + let fontHeight = g.getFontHeight() + 2 * boxItem.outline; + totalWidth = strWidth + 2 * boxItem.xPadding; + totalHeight = fontHeight + 2 * boxItem.yPadding; + }; + let calcBoxPos = function(boxKey) { + return { + x1: boxPos[boxKey].x - totalWidth / 2, + y1: boxPos[boxKey].y - totalHeight / 2, + x2: boxPos[boxKey].x + totalWidth / 2, + y2: boxPos[boxKey].y + totalHeight / 2 + }; + }; + let displaySaveIcon = function() { + draw(boxes); + g.drawImage(saveIcon, w / 2 - 24, h / 2 - 24); + setTimeout(() => { + g.clearRect(w / 2 - 24, h / 2 - 24, w / 2 + 24, h / 2 + 24); + draw(boxes); + }, 2000); + }; + let isBool = function(val, defaultVal) { + return typeof val !== 'undefined' ? Boolean(val) : defaultVal; + }; + let getDate = function(short, shortMonth, disableSuffix) { + const date = new Date(); + const dayOfMonth = date.getDate(); + const month = shortMonth ? locale.month(date, 1) : locale.month(date, 0); + const year = date.getFullYear(); + let suffix; + if ([1, 21, 31].includes(dayOfMonth)) { + suffix = "st"; + } else if ([2, 22].includes(dayOfMonth)) { + suffix = "nd"; + } else if ([3, 23].includes(dayOfMonth)) { + suffix = "rd"; + } else { + suffix = "th"; + } + let dayOfMonthStr = disableSuffix ? dayOfMonth : dayOfMonth + suffix; + return month + " " + dayOfMonthStr + (short ? '' : (", " + year)); + }; + let getDayOfWeek = function(date, short) { + return locale.dow(date, short ? 1 : 0); + }; + locale.meridian = function(date, short) { + let hours = date.getHours(); + let meridian = hours >= 12 ? 'PM' : 'AM'; + return short ? meridian[0] : meridian; + }; + let modString = function(boxItem, data) { + let prefix = boxItem.prefix || ''; + let suffix = boxItem.suffix || ''; + return prefix + data + suffix; + }; + let draw = (function() { + let updatePerMinute = true; + return function(boxes) { + date = new Date(); + g.clear(); + background.fillRect(Bangle.appRect); + if (boxes.time) { + boxes.time.string = modString(boxes.time, locale.time(date, isBool(boxes.time.short, true) ? 1 : 0)); + updatePerMinute = isBool(boxes.time.short, true); + } + if (boxes.meridian) { + boxes.meridian.string = modString(boxes.meridian, locale.meridian(date, isBool(boxes.meridian.short, true))); + } + if (boxes.date) { + boxes.date.string = (modString(boxes.date, getDate(isBool(boxes.date.short, true), isBool(boxes.date.shortMonth, true), isBool(boxes.date.disableSuffix, false)))); + } + if (boxes.dow) { + boxes.dow.string = modString(boxes.dow, getDayOfWeek(date, isBool(boxes.dow.short, true))); + } + if (boxes.batt) { + boxes.batt.string = modString(boxes.batt, E.getBattery()); + } + if (boxes.step) { + boxes.step.string = modString(boxes.step, Bangle.getHealthStatus("day").steps); + } + boxKeys.forEach((boxKey) => { + let boxItem = boxes[boxKey]; + calcBoxSize(boxItem); + const pos = calcBoxPos(boxKey); + if (isDragging[boxKey]) { + g.setColor(boxItem.border); + g.drawRect(pos.x1, pos.y1, pos.x2, pos.y2); + } + g.drawString(boxItem, boxItem.string, boxPos[boxKey].x + boxItem.xOffset, boxPos[boxKey].y + boxItem.yOffset); + }); + if (!Object.values(isDragging).some(Boolean)) { + if (drawTimeout) clearTimeout(drawTimeout); + let interval = updatePerMinute ? 60000 - (Date.now() % 60000) : 1000; + drawTimeout = setTimeout(() => draw(boxes), interval); + } + }; + })(); + let touchInText = function(e, boxItem, boxKey) { calcBoxSize(boxItem); const pos = calcBoxPos(boxKey); - if (isDragging[boxKey]) { - g.setColor(boxItem.border); - g.drawRect(pos.x1, pos.y1, pos.x2, pos.y2); - } - g.drawString( - boxItem, - boxItem.string, - boxPos[boxKey].x + boxItem.xOffset, - boxPos[boxKey].y + boxItem.yOffset - ); - }); - if (!Object.values(isDragging).some(Boolean)) { - if (drawTimeout) clearTimeout(drawTimeout); - let interval = updatePerMinute ? 60000 - (Date.now() % 60000) : 1000; - drawTimeout = setTimeout(() => draw(boxes), interval); - } + return e.x >= pos.x1 && e.x <= pos.x2 && e.y >= pos.y1 && e.y <= pos.y2; }; - })(); - - /** - * --------------------------------------------------------------- - * 9. Helper function for touch event - * --------------------------------------------------------------- - */ - - let touchInText = function(e, boxItem, boxKey) { - calcBoxSize(boxItem); - const pos = calcBoxPos(boxKey); - return e.x >= pos.x1 && - e.x <= pos.x2 && - e.y >= pos.y1 && - e.y <= pos.y2; - }; - - let deselectAllBoxes = function() { - Object.keys(isDragging).forEach((boxKey) => { - isDragging[boxKey] = false; - }); - restoreSetColor(); - widgets.show(); - widgets.swipeOn(); - modSetColor(); - }; - - /** - * --------------------------------------------------------------- - * 10. Setup function to configure event handlers - * --------------------------------------------------------------- - */ - - let setup = function() { - // ------------------------------------ - // Define the touchHandler function - // ------------------------------------ - touchHandler = function(zone, e) { - wasDragging = Object.assign({}, isDragging); - let boxTouched = false; - boxKeys.forEach((boxKey) => { - if (touchInText(e, boxes[boxKey], boxKey)) { - isDragging[boxKey] = true; - wasDragging[boxKey] = true; - boxTouched = true; - } - }); - if (!boxTouched) { - if (!Object.values(isDragging).some(Boolean)) { // check if no boxes are being dragged - deselectAllBoxes(); - if (doubleTapTimer) { - clearTimeout(doubleTapTimer); - doubleTapTimer = null; - // Save boxesConfig on double tap outside of any box and when no boxes are being dragged - Object.keys(boxPos).forEach((boxKey) => { - boxesConfig[boxKey].boxPos.x = (boxPos[boxKey].x / w).toFixed(3); - boxesConfig[boxKey].boxPos.y = (boxPos[boxKey].y / h).toFixed(3); - }); - storage.write(fileName, JSON.stringify(boxesConfig)); - displaySaveIcon(); - return; - } - } else { - // if any box is being dragged, just deselect all without saving - deselectAllBoxes(); - } - } - if (Object.values(wasDragging).some(Boolean) || !boxTouched) { - draw(boxes); - } - doubleTapTimer = setTimeout(() => { - doubleTapTimer = null; - }, 500); // Increase or decrease this value based on the desired double tap timing - movementDistance = 0; - }; - - // ------------------------------------ - // Define the dragHandler function - // ------------------------------------ - dragHandler = function(e) { - // Check if any box is being dragged - if (!Object.values(isDragging).some(Boolean)) return; - // Calculate the movement distance - movementDistance += Math.abs(e.dx) + Math.abs(e.dy); - // Check if the movement distance exceeds a threshold - if (movementDistance > 1) { - boxKeys.forEach((boxKey) => { - if (isDragging[boxKey]) { - widgets.hide(); - let boxItem = boxes[boxKey]; - calcBoxSize(boxItem); - let newX = boxPos[boxKey].x + e.dx; - let newY = boxPos[boxKey].y + e.dy; - if (newX - totalWidth / 2 >= 0 && - newX + totalWidth / 2 <= w && - newY - totalHeight / 2 >= 0 && - newY + totalHeight / 2 <= h ) { - boxPos[boxKey].x = newX; - boxPos[boxKey].y = newY; - } - const pos = calcBoxPos(boxKey); - g.clearRect(pos.x1, pos.y1, pos.x2, pos.y2); - } + let deselectAllBoxes = function() { + Object.keys(isDragging).forEach((boxKey) => { + isDragging[boxKey] = false; }); - draw(boxes); - } - }; - - Bangle.on('touch', touchHandler); - Bangle.on('drag', dragHandler); - - Bangle.setUI({ - mode : "clock", - remove : function() { - // Remove event handlers, stop draw timer, remove custom font if used - Bangle.removeListener('touch', touchHandler); - Bangle.removeListener('drag', dragHandler); - if (drawTimeout) clearTimeout(drawTimeout); - drawTimeout = undefined; - delete Graphics.prototype.setFontBrunoAce; - // Restore original drawString function (no outlines) - g.drawString = g_drawString; restoreSetColor(); widgets.show(); - } - }); - loadCustomFont(); - draw(boxes); - }; - - /** - * --------------------------------------------------------------- - * 11. Main execution part - * --------------------------------------------------------------- - */ - - Bangle.loadWidgets(); - widgets.swipeOn(); - modSetColor(); - setup(); + widgets.swipeOn(); + modSetColor(); + }; + let setup = function() { + touchHandler = function(zone, e) { + wasDragging = Object.assign({}, isDragging); + let boxTouched = false; + boxKeys.forEach((boxKey) => { + if (touchInText(e, boxes[boxKey], boxKey)) { + isDragging[boxKey] = true; + wasDragging[boxKey] = true; + boxTouched = true; + } + }); + if (!boxTouched) { + if (!Object.values(isDragging).some(Boolean)) { + deselectAllBoxes(); + if (doubleTapTimer) { + clearTimeout(doubleTapTimer); + doubleTapTimer = null; + Object.keys(boxPos).forEach((boxKey) => { + boxesConfig[boxKey].boxPos.x = (boxPos[boxKey].x / w).toFixed(3); + boxesConfig[boxKey].boxPos.y = (boxPos[boxKey].y / h).toFixed(3); + }); + storage.write(fileName, JSON.stringify(boxesConfig)); + displaySaveIcon(); + return; + } + } else { + deselectAllBoxes(); + } + } + if (Object.values(wasDragging).some(Boolean) || !boxTouched) { + draw(boxes); + } + doubleTapTimer = setTimeout(() => { + doubleTapTimer = null; + }, 500); + movementDistance = 0; + }; + dragHandler = function(e) { + if (!Object.values(isDragging).some(Boolean)) return; + movementDistance += Math.abs(e.dx) + Math.abs(e.dy); + if (movementDistance > 1) { + boxKeys.forEach((boxKey) => { + if (isDragging[boxKey]) { + widgets.hide(); + let boxItem = boxes[boxKey]; + calcBoxSize(boxItem); + let newX = boxPos[boxKey].x + e.dx; + let newY = boxPos[boxKey].y + e.dy; + if (newX - totalWidth / 2 >= 0 && newX + totalWidth / 2 <= w && newY - totalHeight / 2 >= 0 && newY + totalHeight / 2 <= h) { + boxPos[boxKey].x = newX; + boxPos[boxKey].y = newY; + } + const pos = calcBoxPos(boxKey); + g.clearRect(pos.x1, pos.y1, pos.x2, pos.y2); + } + }); + draw(boxes); + } + }; + Bangle.on('touch', touchHandler); + Bangle.on('drag', dragHandler); + Bangle.setUI({ + mode: "clock", + remove: function() { + Bangle.removeListener('touch', touchHandler); + Bangle.removeListener('drag', dragHandler); + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = undefined; + delete Graphics.prototype.setFontBrunoAce; + g.drawString = g_drawString; + restoreSetColor(); + widgets.show(); + } + }); + loadCustomFont(); + draw(boxes); + }; + Bangle.loadWidgets(); + widgets.swipeOn(); + modSetColor(); + setup(); } From 1a7e4c8e70b9c3a27caff7c0af4d9be376dbbb77 Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Sat, 13 Jul 2024 04:51:10 -0700 Subject: [PATCH 066/594] Update app.js --- apps/8ball/app.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/apps/8ball/app.js b/apps/8ball/app.js index 5a15e5bca..59f243f80 100644 --- a/apps/8ball/app.js +++ b/apps/8ball/app.js @@ -27,7 +27,7 @@ function menu() E.showMenu(); menuOpen = 1; E.showMenu({ - "" : { title : /*LANG*/Name }, + "" : { title : Name }, "< Back" : () => menu(), "Start" : () => { E.showMenu(); @@ -36,7 +36,7 @@ function menu() Drawtext("ask " + Name + " a yes or no question"); }, "regenerate name" : () => { - E.showMenu(); + menu(); generateName(); }, "show answers" : () => { @@ -51,17 +51,19 @@ function menu() "Add answer" : () => { E.showMenu(); - var result = keyboard.input({}).then(result => {if(result != ""){answers.push(result);} menu();}); + keyboard.input({}).then(result => {if(result != ""){answers.push(result);} menu();}); }, "Edit name" : () => { E.showMenu(); - var result = keyboard.input({}).then(result => {menu(), Name = result;}); + keyboard.input({}).then(result => {if(result != ""){Name = result;} menu();}); + }, "Exit" : () => load(), }); } menu(); -var answer; + + var answer; function Drawtext(text) { g.clear(); @@ -82,7 +84,6 @@ function WriteAnswer() } } - setWatch(function() { menu(); From d6503cfdd80185d8c7b2785ab91e3b674ff9d179 Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Sat, 13 Jul 2024 04:51:49 -0700 Subject: [PATCH 067/594] Update app.js --- apps/boxclk/app.js | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/boxclk/app.js b/apps/boxclk/app.js index 8c29aac14..df3457a09 100644 --- a/apps/boxclk/app.js +++ b/apps/boxclk/app.js @@ -165,7 +165,6 @@ Modules.addCached("widget_utils", function() { }; for (let key in boxesConfig) { if (key === 'bg' && boxesConfig[key].img) { - bgImage = storage.read(boxesConfig[key].img); } else if (key !== 'selectedConfig') { boxes[key] = Object.assign({}, boxesConfig[key]); } From f5b91c1bdd0027912623ff334df65d07eb69bebf Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Sat, 13 Jul 2024 04:59:48 -0700 Subject: [PATCH 068/594] Update app.js --- apps/boxclk/app.js | 6 ------ 1 file changed, 6 deletions(-) diff --git a/apps/boxclk/app.js b/apps/boxclk/app.js index df3457a09..ed8a62b65 100644 --- a/apps/boxclk/app.js +++ b/apps/boxclk/app.js @@ -163,12 +163,6 @@ Modules.addCached("widget_utils", function() { return this.setFontCustom(E.toString(require('heatshrink').decompress(atob('ABMHwADBh4DKg4bKgIPDAYUfAYV/AYX/AQMD/gmC+ADBn/AByE/GIU8AYUwLxcfAYX/8AnB//4JIP/FgMP4F+CQQBBjwJBFYRbBAd43DHoJpBh/g/xPEK4ZfDgEEORKDDAY8////wADLfZrTCgITBnhEBAYJMBAYMPw4DCM4QDjhwDCjwDBn0+AYMf/gDBh/4AYMH+ADBLpc4ToK/NGYZfnAYcfL4U/x5fBW4LvB/7vC+LvBgHAsBfIn76Cn4WBcYQDFEgJ+CQQYDyH4L/BAZbHLNYjjCAZc8ngDunycBZ4KkBa4KwBnEHY4UB+BfMgf/ZgMH/4XBc4cf4F/gE+ZgRjwAYcfj5jBM4U4M4RQBM4UA8BjIngDFEYJ8BAYUDAYQvCM4ZxBC4V+AYQvBnkBQ4M8gabBJQPAI4WAAYM/GYQaBAYJKCnqyCn5OCn4aBAYIaBAYJPCU4IABnBhIuDXCFAMD+Z/BY4IDBQwOPwEfv6TDAYUPAcwrDAYQ7BAYY/BI4cD8bLCK4RfEAA0BRYTeDcwIrFn0Pw43Bg4DugYDBjxBBU4SvDMYMH/5QBgP/LAQAP8EHN4UPwADHB4YAHA'))), 46, atob("CBEdChgYGhgaGBsaCQ=="), 32 | 65536); }; }; - for (let key in boxesConfig) { - if (key === 'bg' && boxesConfig[key].img) { - } else if (key !== 'selectedConfig') { - boxes[key] = Object.assign({}, boxesConfig[key]); - } - } let boxKeys = Object.keys(boxes); boxKeys.forEach((key) => { let boxConfig = boxes[key]; From b0ffab457dda73faa0ea39abe18b38733f25473b Mon Sep 17 00:00:00 2001 From: Brian Whelan Date: Mon, 15 Jul 2024 22:57:29 +0100 Subject: [PATCH 069/594] Add support for replying to messages to messagegui --- apps/messagegui/ChangeLog | 1 + apps/messagegui/app.js | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/apps/messagegui/ChangeLog b/apps/messagegui/ChangeLog index 7320d8ec6..bb3ac519e 100644 --- a/apps/messagegui/ChangeLog +++ b/apps/messagegui/ChangeLog @@ -106,3 +106,4 @@ 0.77: Messages can now use international fonts if they are installed 0.78: Fix: When user taps on a new message, clear the unread timeout 0.79: Fix: Reset the unread timeout each time a new message is shown. When the message is read from user input, do not set an unread timeout. +0.80: Add ability to reply to messages if a reply library is installed and the message can be replied to \ No newline at end of file diff --git a/apps/messagegui/app.js b/apps/messagegui/app.js index 9172bcad7..663e9a028 100644 --- a/apps/messagegui/app.js +++ b/apps/messagegui/app.js @@ -24,6 +24,7 @@ require("messages").pushMessage({"t":"add","id":"call","src":"Phone","title":"Bo var Layout = require("Layout"); var layout; // global var containing the layout for the currently displayed message var settings = require('Storage').readJSON("messages.settings.json", true) || {}; +var reply = require("reply"); var fontSmall = "6x8"; var fontMedium = g.getFonts().includes("6x15")?"6x15":"6x8:2"; var fontBig = g.getFonts().includes("12x20")?"12x20":"6x8:2"; @@ -45,6 +46,7 @@ if (Graphics.prototype.setFontIntl) { var active; // active screen (undefined/"list"/"music"/"map"/"message"/"scroller"/"settings") var openMusic = false; // go back to music screen after we handle something else? +var replying = false; // If we're replying to a message, don't interrupt // hack for 2v10 firmware's lack of ':size' font handling try { g.setFont("6x8:2"); @@ -267,11 +269,27 @@ function showMessageSettings(msg) { /*LANG*/"View Message" : () => { showMessageScroller(msg); }, + /*LANG*/"Reply": () => { + replying = true; + reply.reply({msg: msg}) + .then(result => { + Bluetooth.println(JSON.stringify(result)); + replying = false; + showMessage(msg.id); + }) + .catch(() => { + replying = false; + showMessage(msg.id); + }); + }, /*LANG*/"Delete" : () => { MESSAGES = MESSAGES.filter(m=>m.id!=msg.id); checkMessages({clockIfNoMsg:0,clockIfAllRead:0,showMsgIfUnread:0,openMusic:0}); }, }; + + if (!msg.reply || !reply) delete menu[/*LANG*/"Reply"]; + if (Bangle.messageIgnore && msg.src) menu[/*LANG*/"Ignore"] = () => { E.showPrompt(/*LANG*/"Ignore all messages from "+E.toJS(msg.src)+"?", {title:/*LANG*/"Ignore"}).then(isYes => { From 3bb1f7be5588223120799c71f1aaf14029115596 Mon Sep 17 00:00:00 2001 From: Brian Whelan Date: Mon, 15 Jul 2024 23:00:27 +0100 Subject: [PATCH 070/594] Bump messagegui version to 0.80 --- apps/messagegui/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/messagegui/metadata.json b/apps/messagegui/metadata.json index 83056fc0c..05ec18fa2 100644 --- a/apps/messagegui/metadata.json +++ b/apps/messagegui/metadata.json @@ -2,7 +2,7 @@ "id": "messagegui", "name": "Message UI", "shortName": "Messages", - "version": "0.79", + "version": "0.80", "description": "Default app to display notifications from iOS and Gadgetbridge/Android", "icon": "app.png", "type": "app", From a9fa2fb679285b40cbc10054852e769e6b4e5282 Mon Sep 17 00:00:00 2001 From: Brian Whelan Date: Mon, 15 Jul 2024 23:02:34 +0100 Subject: [PATCH 071/594] Don't showMessage if replying to a message --- apps/messagegui/app.js | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/messagegui/app.js b/apps/messagegui/app.js index 663e9a028..03f001397 100644 --- a/apps/messagegui/app.js +++ b/apps/messagegui/app.js @@ -323,6 +323,7 @@ function showMessageSettings(msg) { } function showMessage(msgid, persist) { + if (replying) { return; } if(!persist) resetReloadTimeout(); let idx = MESSAGES.findIndex(m=>m.id==msgid); var msg = MESSAGES[idx]; From dc8a475474f51d5ed3e2a015fe533c4a5199b0f7 Mon Sep 17 00:00:00 2001 From: Brian Whelan Date: Mon, 15 Jul 2024 23:19:43 +0100 Subject: [PATCH 072/594] Require reply lib --- apps/messagegui/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/messagegui/metadata.json b/apps/messagegui/metadata.json index 05ec18fa2..1e6913aac 100644 --- a/apps/messagegui/metadata.json +++ b/apps/messagegui/metadata.json @@ -8,7 +8,7 @@ "type": "app", "tags": "tool,system", "supports": ["BANGLEJS","BANGLEJS2"], - "dependencies" : { "messageicons":"module" }, + "dependencies" : { "messageicons":"module", "reply": "module" }, "provides_modules": ["messagegui"], "default": true, "readme": "README.md", From 7ae71e95066d108b8acc829423ac3da9945d25da Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Fri, 19 Jul 2024 09:58:01 +0200 Subject: [PATCH 073/594] iconbits: introduce color support --- apps/iconbits/iconbits.app.js | 52 +++++++++++++++++++++++++++++------ 1 file changed, 44 insertions(+), 8 deletions(-) diff --git a/apps/iconbits/iconbits.app.js b/apps/iconbits/iconbits.app.js index 625070dd5..d046bf1df 100644 --- a/apps/iconbits/iconbits.app.js +++ b/apps/iconbits/iconbits.app.js @@ -10,6 +10,7 @@ let kule = [0, 0, 0]; // R, G, B var font_height = 22, font_width = 8; var zoom_x = 64, zoom_y = 24, zoom_f = 6; + var color = true; let oldLock = false; let sg = null; @@ -17,7 +18,7 @@ sg.setColor(1,1,1).fillRect(0,0, font_width, font_height); } - function setup(m) { + function __setup(m) { mode = m; switch (m) { case 'font': @@ -37,10 +38,23 @@ zoom_f = 2; break; } + } + function setup(m) { + __setup(m); sg = Graphics.createArrayBuffer(font_width, font_height, 8, {}); clear(); } + function icon_big() { + zoom_x = 16; + zoom_y = 25; + zoom_f = 3; + } + + function icon_small() { + __setup("icon"); + } + function updateLock() { if (oldLock) { return; @@ -66,7 +80,11 @@ Bangle.on("lock", function() { kule[2] = Math.random(); } function selectColor (x) { - let c; + if (color) { + i = Math.floor((x - 25) / 4); + kule = toColor(i); + return; + } if (x < g.getWidth()/2) { c = 0; } else { @@ -117,6 +135,7 @@ Bangle.on("lock", function() { g.clear(); if (mode == "draw") return; + const w = g.getWidth; g.setColor(0, 0, 0.5); g.fillRect(0, 0, g.getWidth(), g.getHeight()); g.setColor(1, 1, 1); @@ -129,6 +148,16 @@ Bangle.on("lock", function() { update(); } + function toColor(i) { + let r = [0, 0, 0]; + r[0] = (i % 3) / 2; + i = Math.floor(i / 3); + r[1] = (i % 3) / 2; + i = Math.floor(i / 3); + r[2] = (i % 3) / 2; + return r; + } + function drawUtil () { if (Bangle.isLocked()) { updateLock(); @@ -136,6 +165,11 @@ Bangle.on("lock", function() { // titlebar g.setColor(kule[0], kule[1], kule[2]); g.fillRect(0, 0, g.getWidth(), 20); + for (let i = 0; i < 3*3*3; i++) { + r = toColor(i); + g.setColor(r[0], r[1], r[2]); + g.fillRect(25+4*i, 20, 25+4*i+3, 24); + } // clear button g.setColor('#000'); // black g.fillCircle(10, 10, 8, 8); @@ -173,7 +207,7 @@ Bangle.on("lock", function() { var XS = (to.x - from.x) / 32; var YS = (to.y - from.y) / 32; for (let i = 0; i < 32; i++) { - g.fillCircle(from.x + (i * XS), from.y + (i * YS), 4, 4); + g.fillCircle(from.x + (i * XS), from.y + (i * YS), 2, 2); } break; case 'square': @@ -182,7 +216,7 @@ Bangle.on("lock", function() { for (let i = 0; i < 32; i++) { const posX = from.x + (i * XS); const posY = from.y + (i * YS); - g.fillRect(posX - 10, posY - 10, posX + 10, posY + 10); + g.fillRect(posX - 4, posY - 4, posX + 4, posY + 4); } break; } @@ -190,7 +224,7 @@ Bangle.on("lock", function() { } function update() { - g.drawImage(sg, 0, 64, {}); + g.drawImage(sg, 4, 64, {}); g.drawImage(sg, zoom_x, zoom_y, { scale: zoom_f }); } @@ -226,8 +260,9 @@ Bangle.on("lock", function() { oldY = -1; }, 100); + let top_bar = 20; // tap and hold the clear button - if (tap.x < 32 && tap.y < 32) { + if (tap.x < 32 && tap.y < top_bar) { if (tap.b === 1) { if (tapTimer === null) { tapTimer = setTimeout(function () { @@ -244,7 +279,7 @@ Bangle.on("lock", function() { } return; } - if (tap.x > g.getWidth() - 32 && tap.y < 32) { + if (tap.x > g.getWidth() - 32 && tap.y < top_bar) { if (tap.b === 1) { if (tapTimer === null) { tapTimer = setTimeout(function () { @@ -264,7 +299,7 @@ Bangle.on("lock", function() { } drawUtil(); return; - } else if (tap.y < 32) { + } else if (tap.y < top_bar) { if (mode == "draw") nextColor(); else @@ -308,6 +343,7 @@ Bangle.on("lock", function() { //print("wh", im, typeof im, im[0], typeof im[0]); //print("Image:", im.length, s); print('fi("'+btoa(im)+'");'); + print(btoa(require('heatshrink').compress(im))); } From aedb898177876ff8bca37c5674c741c7b63f1dbd Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Fri, 19 Jul 2024 10:04:32 +0200 Subject: [PATCH 074/594] iconbits: cleanups. --- apps/iconbits/iconbits.app.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/apps/iconbits/iconbits.app.js b/apps/iconbits/iconbits.app.js index d046bf1df..d40cc0285 100644 --- a/apps/iconbits/iconbits.app.js +++ b/apps/iconbits/iconbits.app.js @@ -194,6 +194,9 @@ Bangle.on("lock", function() { } function __draw (g, from, to) { + let XS = (to.x - from.x) / 32; + let YS = (to.y - from.y) / 32; + switch (pen) { case 'pixel': g.drawLine(from.x, from.y, to.x, to.y); @@ -204,15 +207,11 @@ Bangle.on("lock", function() { g.drawLine(from.x + 2, from.y + 2, to.x, to.y + 2); break; case 'circle': - var XS = (to.x - from.x) / 32; - var YS = (to.y - from.y) / 32; for (let i = 0; i < 32; i++) { g.fillCircle(from.x + (i * XS), from.y + (i * YS), 2, 2); } break; case 'square': - var XS = (to.x - from.x) / 32; - var YS = (to.y - from.y) / 32; for (let i = 0; i < 32; i++) { const posX = from.x + (i * XS); const posY = from.y + (i * YS); @@ -220,7 +219,6 @@ Bangle.on("lock", function() { } break; } - } function update() { From 9697902e40bee4f32dc25a75fb387a4c1e99fb0e Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Fri, 19 Jul 2024 10:12:57 +0200 Subject: [PATCH 075/594] iconbits: cleanups, finish color selector --- apps/iconbits/iconbits.app.js | 37 ++++++++++++++++------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/apps/iconbits/iconbits.app.js b/apps/iconbits/iconbits.app.js index d40cc0285..b5f26d4df 100644 --- a/apps/iconbits/iconbits.app.js +++ b/apps/iconbits/iconbits.app.js @@ -13,6 +13,7 @@ var color = true; let oldLock = false; let sg = null; + const top_bar = 20; function clear(m) { sg.setColor(1,1,1).fillRect(0,0, font_width, font_height); @@ -61,9 +62,9 @@ } g.setColor('#fff'); g.fillRect(0, 0, g.getWidth(), 20); - g.setFont('6x8', 2); + g.setFont('Vector', 22); g.setColor('#000'); - g.drawString('PLEASE UNLOCK', 10, 2); + g.drawString('PLEASE\nUNLOCK', 10, 2); oldLock = true; } Bangle.on("lock", function() { @@ -74,14 +75,14 @@ Bangle.on("lock", function() { drawUtil(); } }); - function nextColor () { + function nextColor() { kule[0] = Math.random(); kule[1] = Math.random(); kule[2] = Math.random(); } - function selectColor (x) { + function selectColor(x) { if (color) { - i = Math.floor((x - 25) / 4); + i = Math.floor((x - 32) / 4); kule = toColor(i); return; } @@ -131,7 +132,7 @@ Bangle.on("lock", function() { } } - function drawArea () { + function drawArea() { g.clear(); if (mode == "draw") return; @@ -158,17 +159,17 @@ Bangle.on("lock", function() { return r; } - function drawUtil () { + function drawUtil() { if (Bangle.isLocked()) { updateLock(); } // titlebar g.setColor(kule[0], kule[1], kule[2]); - g.fillRect(0, 0, g.getWidth(), 20); + g.fillRect(0, 0, g.getWidth(), top_bar); for (let i = 0; i < 3*3*3; i++) { r = toColor(i); g.setColor(r[0], r[1], r[2]); - g.fillRect(25+4*i, 20, 25+4*i+3, 24); + g.fillRect(32+4*i, 12, 32+4*i+3, top_bar); } // clear button g.setColor('#000'); // black @@ -183,7 +184,7 @@ Bangle.on("lock", function() { drawBrushIcon(); } - function transform (p) { + function transform(p) { if (p.x < zoom_x || p.y < zoom_y) return p; p.x = ((p.x - zoom_x) / zoom_f); @@ -193,7 +194,7 @@ Bangle.on("lock", function() { return p; } - function __draw (g, from, to) { + function __draw(g, from, to) { let XS = (to.x - from.x) / 32; let YS = (to.y - from.y) / 32; @@ -258,7 +259,6 @@ Bangle.on("lock", function() { oldY = -1; }, 100); - let top_bar = 20; // tap and hold the clear button if (tap.x < 32 && tap.y < top_bar) { if (tap.b === 1) { @@ -343,19 +343,16 @@ Bangle.on("lock", function() { print('fi("'+btoa(im)+'");'); print(btoa(require('heatshrink').compress(im))); } - - } - setup("icon"); - drawArea(); - Bangle.setUI({ +setup("icon"); +drawArea(); +Bangle.setUI({ "mode": "custom", "drag": on_drag, "btn": on_btn, - }); - drawUtil(); - +}); +drawUtil(); function ft(icon) { g.reset().clear(); From 5cc09c832d21147f4b203868a7189db88fa60675 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Fri, 19 Jul 2024 10:31:08 +0200 Subject: [PATCH 076/594] iconbits: cleanup preview functions --- apps/iconbits/iconbits.app.js | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/apps/iconbits/iconbits.app.js b/apps/iconbits/iconbits.app.js index b5f26d4df..bb99e7c34 100644 --- a/apps/iconbits/iconbits.app.js +++ b/apps/iconbits/iconbits.app.js @@ -330,18 +330,15 @@ Bangle.on("lock", function() { s += f(v); } print("Manual bitmap\n"); - print('ft("' + s + '");'); + print('show_font("' + s + '");'); if (1) { s = ""; var im = sg.asImage("string"); for (var v of im) { - //print("val", v, typeof v); s += f(v); } - //print("wh", im, typeof im, im[0], typeof im[0]); - //print("Image:", im.length, s); - print('fi("'+btoa(im)+'");'); - print(btoa(require('heatshrink').compress(im))); + //print('show_unc_icon("'+btoa(im)+'");'); + print('show_icon("'+btoa(require('heatshrink').compress(im))+'");'); } } @@ -354,14 +351,22 @@ Bangle.setUI({ }); drawUtil(); -function ft(icon) { +function show_font(icon) { g.reset().clear(); g.setFont("Vector", 26).drawString("Hellord" + icon, 0, 0); } -function fi(icon) { +function show_bin_icon(icon) { g.reset().clear(); - g.drawImage(atob(icon), 40, 40); + g.drawImage(icon, 40, 40); +} + +function show_unc_icon(icon) { + show_bin_icon(atob(icon)); +} + +function show_icon(icon) { + unc = require("heatshrink").decompress(atob(icon)); + show_bin_icon(unc); } -//ft(icon_10 + "23.1" + icon_hpa); From 24ebb8a583e70e0125e1e35a05fac3b9e612d006 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Fri, 19 Jul 2024 11:13:32 +0200 Subject: [PATCH 077/594] iconbits: update png icon --- apps/iconbits/app.png | Bin 2459 -> 2010 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/apps/iconbits/app.png b/apps/iconbits/app.png index 7a3ee2e90600531bd4df39ad517637ecdc854745..d4e822ac7d47958ae769d3f09024801c10b8dc62 100644 GIT binary patch literal 2010 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 MB_Pzll? Date: Fri, 19 Jul 2024 11:14:18 +0200 Subject: [PATCH 078/594] iconbits: add loading/preview functions --- apps/iconbits/iconbits.app.js | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/apps/iconbits/iconbits.app.js b/apps/iconbits/iconbits.app.js index bb99e7c34..2be08e3d4 100644 --- a/apps/iconbits/iconbits.app.js +++ b/apps/iconbits/iconbits.app.js @@ -223,7 +223,8 @@ Bangle.on("lock", function() { } function update() { - g.drawImage(sg, 4, 64, {}); + if (zoom_f < 3) + g.drawImage(sg, 4, 64, {}); g.drawImage(sg, zoom_x, zoom_y, { scale: zoom_f }); } @@ -370,3 +371,20 @@ function show_icon(icon) { show_bin_icon(unc); } +function load_bin_icon(i) { + sg.reset().clear(); + sg.drawImage(i, 0, 0); + drawArea(); +} + +function load_icon(icon) { + unc = require("heatshrink").decompress(atob(icon)); + load_bin_icon(unc); +} + +function for_screen() { + g.reset().clear(); + icon_big(); + update(); +} + From b51a85657628dfb19aaa6b59d7cd701760b78dc9 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Fri, 19 Jul 2024 11:48:02 +0200 Subject: [PATCH 079/594] iconbits: cleanups, implement line drawing. --- apps/iconbits/iconbits.app.js | 53 ++++++++++++++++++++++------------- 1 file changed, 33 insertions(+), 20 deletions(-) diff --git a/apps/iconbits/iconbits.app.js b/apps/iconbits/iconbits.app.js index 2be08e3d4..1777a8af3 100644 --- a/apps/iconbits/iconbits.app.js +++ b/apps/iconbits/iconbits.app.js @@ -98,8 +98,8 @@ Bangle.on("lock", function() { function nextPen () { switch (pen) { case 'circle': pen = 'pixel'; break; - case 'pixel': pen = 'crayon'; break; - case 'crayon': pen = 'square'; break; + case 'pixel': pen = 'line'; break; + case 'line': pen = 'square'; break; case 'square': pen = 'circle'; break; default: pen = 'pixel'; break; } @@ -108,8 +108,8 @@ Bangle.on("lock", function() { discard = setTimeout(function () { oldX = -1; oldY = -1; console.log('timeout'); discard = null; }, 500); } - var oldX = -1; - var oldY = -1; + var oldX = -1, oldY = -1; + var line_from = null; function drawBrushIcon () { const w = g.getWidth(); @@ -129,6 +129,9 @@ Bangle.on("lock", function() { g.drawLine(w - 14, 6, w - 10, 12); g.drawLine(w - 6, 6, w - 10, 12); break; + case 'line': + g.drawLine(w - 5, 5, w - 15, 15); + break; } } @@ -199,6 +202,7 @@ Bangle.on("lock", function() { let YS = (to.y - from.y) / 32; switch (pen) { + case 'line': case 'pixel': g.drawLine(from.x, from.y, to.x, to.y); break; @@ -219,6 +223,8 @@ Bangle.on("lock", function() { g.fillRect(posX - 4, posY - 4, posX + 4, posY + 4); } break; + default: + print("Unkown pen ", pen); } } @@ -229,9 +235,11 @@ Bangle.on("lock", function() { } function do_draw(from, to) { + print("do-draw", from, to); from = transform(from); to = transform(to); if (from && to) { + print("__draw", from, to); __draw(sg, from, to); } update(); @@ -306,20 +314,31 @@ Bangle.on("lock", function() { drawUtil(); return; } - oldX = to.x; - oldY = to.y; sg.setColor(kule[0], kule[1], kule[2]); g.setColor(kule[0], kule[1], kule[2]); + oldX = to.x; + oldY = to.y; - do_draw(from, to); + if (pen != "line") { + do_draw(from, to); + } else { + if (tap.b == 1) { + print(line_from); + if (!line_from) { + line_from = to; + } else { + print("draw -- ", line_from, to); + do_draw(line_from, to); + line_from = null; + } + } + } drawUtil(); } function on_btn(n) { function f(i) { return "\\x" + i.toString(16).padStart(2, '0'); } - print("on_btn", n); - print(g.getPixel(0, 0)); let s = f(0) + f(font_width) + f(font_height) + f(1); // 0..black, 65535..white for (let y = 0; y < font_height; y++) { @@ -330,17 +349,11 @@ Bangle.on("lock", function() { } s += f(v); } - print("Manual bitmap\n"); - print('show_font("' + s + '");'); - if (1) { - s = ""; - var im = sg.asImage("string"); - for (var v of im) { - s += f(v); - } - //print('show_unc_icon("'+btoa(im)+'");'); - print('show_icon("'+btoa(require('heatshrink').compress(im))+'");'); - } + if (mode == "font") + print('show_font("' + s + '");'); + var im = sg.asImage("string"); + //print('show_unc_icon("'+btoa(im)+'");'); + print('show_icon("'+btoa(require('heatshrink').compress(im))+'");'); } setup("icon"); From 62cb337105f4ec196d6c1b6b7f8678de3bdc0a19 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Fri, 19 Jul 2024 13:29:25 +0200 Subject: [PATCH 080/594] iconbits: cleanups, add documentation. --- apps/iconbits/README.md | 17 +++++++++++++++-- apps/iconbits/iconbits.app.js | 8 +++----- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/apps/iconbits/README.md b/apps/iconbits/README.md index c5c524ab0..90bc0f5a3 100644 --- a/apps/iconbits/README.md +++ b/apps/iconbits/README.md @@ -3,5 +3,18 @@ Bitmap editor suitable for creating icons and fonts for BangleJS2. You'll want to run a copy of this in simulator, and another one on -watch to view the results. Draw using the provided tools, then press -the button, and you'll get result on the console. +watch to view the results. + +Draw using the provided tools, then press the button, and you'll get +result on the console; you can also use "dump();" on command +line. show_icon() takes same parameter as is used in app-icon.js +files, you can just copy&paste it to get an icon. By using +"for_screen();" command, then taking a screenshot, you can easily +generate app.png file. + +It is also possible to load existing icon into editor, using +"load_icon("");" command. At the end of iconbits.app.js file there are +more utility functions. + + + diff --git a/apps/iconbits/iconbits.app.js b/apps/iconbits/iconbits.app.js index 1777a8af3..83eb8ee89 100644 --- a/apps/iconbits/iconbits.app.js +++ b/apps/iconbits/iconbits.app.js @@ -235,11 +235,9 @@ Bangle.on("lock", function() { } function do_draw(from, to) { - print("do-draw", from, to); from = transform(from); to = transform(to); if (from && to) { - print("__draw", from, to); __draw(sg, from, to); } update(); @@ -327,7 +325,6 @@ Bangle.on("lock", function() { if (!line_from) { line_from = to; } else { - print("draw -- ", line_from, to); do_draw(line_from, to); line_from = null; } @@ -335,7 +332,8 @@ Bangle.on("lock", function() { } drawUtil(); } - function on_btn(n) { + +function dump(n) { function f(i) { return "\\x" + i.toString(16).padStart(2, '0'); } @@ -361,7 +359,7 @@ drawArea(); Bangle.setUI({ "mode": "custom", "drag": on_drag, - "btn": on_btn, + "btn": dump, }); drawUtil(); From 4561572aad3de1aee941e6da990e4acacd9e9b48 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Fri, 19 Jul 2024 21:50:37 +0200 Subject: [PATCH 081/594] iconbits: mark this as version 0.02. --- apps/iconbits/ChangeLog | 1 + apps/iconbits/metadata.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/iconbits/ChangeLog b/apps/iconbits/ChangeLog index 263d4078d..10f5d311c 100644 --- a/apps/iconbits/ChangeLog +++ b/apps/iconbits/ChangeLog @@ -1 +1,2 @@ 0.01: attempt to import +0.02: implement colors and lines diff --git a/apps/iconbits/metadata.json b/apps/iconbits/metadata.json index b98a43953..edb4b4d6a 100644 --- a/apps/iconbits/metadata.json +++ b/apps/iconbits/metadata.json @@ -1,6 +1,6 @@ { "id": "iconbits", "name": "Icon bits", - "version": "0.01", + "version": "0.02", "description": "Bitmap editor suitable for creating icons", "icon": "app.png", "readme": "README.md", From 9ae99c5cf2529cec89642a4a8e49945fa5c29972 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Sat, 11 Nov 2023 12:28:57 +0100 Subject: [PATCH 082/594] [] settings: cleanups, go to full brightness. --- apps/setting/settings.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/setting/settings.js b/apps/setting/settings.js index c5149ab5a..94c8e26a7 100644 --- a/apps/setting/settings.js +++ b/apps/setting/settings.js @@ -651,11 +651,11 @@ function showUtilMenu() { E.showMessage(/*LANG*/'Flattening battery - this can take hours.\nLong-press button to cancel.'); Bangle.setLCDTimeout(0); Bangle.setLCDPower(1); + Bangle.setLCDBrightness(1); if (Bangle.setGPSPower) Bangle.setGPSPower(1,"flat"); if (Bangle.setHRMPower) Bangle.setHRMPower(1,"flat"); if (Bangle.setCompassPower) Bangle.setCompassPower(1,"flat"); if (Bangle.setBarometerPower) Bangle.setBarometerPower(1,"flat"); - if (Bangle.setHRMPower) Bangle.setGPSPower(1,"flat"); setInterval(function() { var i=1000;while (i--); }, 1); From 1c6928ae60b9d5f17fb2499205f272cef75e8309 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Fri, 19 Jul 2024 22:12:44 +0200 Subject: [PATCH 083/594] settings: fix whitespace --- apps/setting/settings.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/setting/settings.js b/apps/setting/settings.js index 94c8e26a7..d9d77d052 100644 --- a/apps/setting/settings.js +++ b/apps/setting/settings.js @@ -651,7 +651,7 @@ function showUtilMenu() { E.showMessage(/*LANG*/'Flattening battery - this can take hours.\nLong-press button to cancel.'); Bangle.setLCDTimeout(0); Bangle.setLCDPower(1); - Bangle.setLCDBrightness(1); + Bangle.setLCDBrightness(1); if (Bangle.setGPSPower) Bangle.setGPSPower(1,"flat"); if (Bangle.setHRMPower) Bangle.setHRMPower(1,"flat"); if (Bangle.setCompassPower) Bangle.setCompassPower(1,"flat"); From d85ec84ae32d35405eaaf27e9dc781e9660c14b1 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Fri, 19 Jul 2024 22:01:24 +0200 Subject: [PATCH 084/594] iconbits: fix warnings. --- apps/iconbits/iconbits.app.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/apps/iconbits/iconbits.app.js b/apps/iconbits/iconbits.app.js index 83eb8ee89..5fc10423c 100644 --- a/apps/iconbits/iconbits.app.js +++ b/apps/iconbits/iconbits.app.js @@ -82,14 +82,13 @@ Bangle.on("lock", function() { } function selectColor(x) { if (color) { - i = Math.floor((x - 32) / 4); + let i = Math.floor((x - 32) / 4); kule = toColor(i); return; } + let c = 255; if (x < g.getWidth()/2) { c = 0; - } else { - c = 255; } kule[0] = c; kule[1] = c; @@ -170,7 +169,7 @@ Bangle.on("lock", function() { g.setColor(kule[0], kule[1], kule[2]); g.fillRect(0, 0, g.getWidth(), top_bar); for (let i = 0; i < 3*3*3; i++) { - r = toColor(i); + let r = toColor(i); g.setColor(r[0], r[1], r[2]); g.fillRect(32+4*i, 12, 32+4*i+3, top_bar); } @@ -378,7 +377,7 @@ function show_unc_icon(icon) { } function show_icon(icon) { - unc = require("heatshrink").decompress(atob(icon)); + let unc = require("heatshrink").decompress(atob(icon)); show_bin_icon(unc); } @@ -389,7 +388,7 @@ function load_bin_icon(i) { } function load_icon(icon) { - unc = require("heatshrink").decompress(atob(icon)); + let unc = require("heatshrink").decompress(atob(icon)); load_bin_icon(unc); } From f520a8ae7b0fc16c28fa1c8c0727168b46c0b5a2 Mon Sep 17 00:00:00 2001 From: Ian Ward Date: Sat, 20 Jul 2024 18:56:34 +0100 Subject: [PATCH 085/594] initial commit --- apps/quarterclock/app-icon.js | 1 + apps/quarterclock/app.js | 139 +++++++++++++++++++++++++++++++ apps/quarterclock/app.png | Bin 0 -> 252 bytes apps/quarterclock/metadata.json | 20 +++++ apps/quarterclock/screenshot.png | Bin 0 -> 1475 bytes apps/quarterclock/settings.js | 66 +++++++++++++++ 6 files changed, 226 insertions(+) create mode 100644 apps/quarterclock/app-icon.js create mode 100644 apps/quarterclock/app.js create mode 100644 apps/quarterclock/app.png create mode 100644 apps/quarterclock/metadata.json create mode 100644 apps/quarterclock/screenshot.png create mode 100644 apps/quarterclock/settings.js diff --git a/apps/quarterclock/app-icon.js b/apps/quarterclock/app-icon.js new file mode 100644 index 000000000..d6ed783ec --- /dev/null +++ b/apps/quarterclock/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEw4X/AwX48AFCqoAEC4oL/Bf4L/Bf4LTAH4A/ADGqAAIL/Bf4LD")) diff --git a/apps/quarterclock/app.js b/apps/quarterclock/app.js new file mode 100644 index 000000000..da7efed16 --- /dev/null +++ b/apps/quarterclock/app.js @@ -0,0 +1,139 @@ +{ + const minute_boxes = [ + {x:0.5, y:0}, + {x:0.5, y:0.5}, + {x:0, y:0.5}, + {x:0, y:0}, + ]; + + const hour_boxes = [ + {x:0.5, y:0}, + {x:0.75, y:0}, + {x:0.75, y:0.25}, + {x:0.75, y:0.5}, + {x:0.75, y:0.75}, + {x:0.5, y:0.75}, + {x:0.25, y:0.75}, + {x:0, y:0.75}, + {x:0, y:0.5}, + {x:0, y:0.25}, + {x:0, y:0}, + {x:0.25, y:0}, + ]; + + let drawTimeout; + + // schedule a draw for the next 15 minute period + let queueDraw = function queueDraw() { + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = setTimeout(function() { + drawTimeout = undefined; + draw(); + }, (60000 * 15) - (Date.now() % (60000 * 15))); + }; + + // Main draw function + let draw = function draw() { + var d = new Date(); + var h = d.getHours(), m = d.getMinutes(); + + g.setBgColor(settings.backgroundColour); + g.clearRect(Bangle.appRect); + + if (settings.showBattery) { + drawBattery(); + } + + // Draw minute box + drawBox(Math.floor(m/15), minute_boxes, Bangle.appRect.h/2, settings.minuteColour); + + // Draw an hour box or write the number + if (settings.digital) { + g.setColor(settings.hourColour); + g.setFont("Vector:60"); + g.setFontAlign(0,0); + g.drawString(h, Bangle.appRect.x + Bangle.appRect.w/2, Bangle.appRect.y + Bangle.appRect.h/2); + } else { + drawBox(h % 12, hour_boxes, Bangle.appRect.h/4, settings.hourColour); + } + + queueDraw(); + }; + + // Draw battery box + let drawBattery = function drawBattery() { + // Round battery up to 10% interval + let battery = (Math.floor(E.getBattery()/10)+1)/10; + + // Maximum battery box + let batterySize = 30; + + // Draw outer box at full brightness + g.setColor(settings.batteryColour); + g.drawRect( + (Bangle.appRect.w / 2) - batterySize, + (Bangle.appRect.h / 2) - batterySize + Bangle.appRect.y, + (Bangle.appRect.w / 2) + batterySize, + (Bangle.appRect.h / 2) + batterySize + Bangle.appRect.y + ); + + // Fade battery colour and draw inner box + g.setColor(settings.batteryColour.split('').map((c) => { + return c=='f' ? Math.ceil(15 * battery).toString(16) : c; + }).join('')); + g.fillRect( + (Bangle.appRect.w / 2) - (batterySize * battery), + (Bangle.appRect.h / 2) - (batterySize * battery) + Bangle.appRect.y, + (Bangle.appRect.w / 2) + (batterySize * battery), + (Bangle.appRect.h / 2) + (batterySize * battery) + Bangle.appRect.y + ); + }; + + // Draw hour or minute boxes + let drawBox = function drawBox(current, boxes, size, colour) { + x1 = (boxes[current].x * Bangle.appRect.h) + (Bangle.appRect.y/2); + y1 = (boxes[current].y * Bangle.appRect.h) + Bangle.appRect.y; + x2 = x1 + size; + y2 = y1 + size; + g.setColor(colour); + g.fillRect(x1, y1, x2, y2); + }; + + let settings = Object.assign({ + // Default values + minuteColour: '#f00', + hourColour: '#ff0', + backgroundColour: 'theme', + showWidgets: true, + showBattery: true, + digital: false, + batteryColour: '#0f0' + }, require('Storage').readJSON('quarterclock.json', true) || {}); + + if (settings.backgroundColour == 'theme') { + settings.backgroundColour = g.theme.bg; + } + + // Set minuteColour to a darker shade if same as hourColour + if (settings.minuteColour == settings.hourColour) { + settings.minuteColour = settings.minuteColour.split('').map((c) => { + return c=='f' ? '7' : c; + }).join(''); + } + + // Show launcher when middle button pressed + // Remove handler to allow fast loading + Bangle.setUI({mode:"clock", remove:function() { + if (drawTimeout) clearTimeout(drawTimeout); + }}); + + // Load and display widgets + if (settings.showWidgets) { + Bangle.loadWidgets(); + Bangle.drawWidgets(); + } + + // draw initial boxes and queue subsequent redraws + draw(); +} + diff --git a/apps/quarterclock/app.png b/apps/quarterclock/app.png new file mode 100644 index 0000000000000000000000000000000000000000..e2a1c7fc0db4e32f7602bbb68af544cf5a7b665b GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC#^NA%Cx&(BWL^R}TRdGHLo%G- z&T!;vFyLXi{oj7qC4P&R6vu)+%h-%}OE3AorZnus&4c&0e=TEBSi{8P!7Zrh{KxNr zt_xowci^!*PA(lb*VafUF=cd|T+}v$W8(2yrOrMKyoQli1cVhoMQqON;7qVNqFtl! z!d&)RJm5>x>feoD_Av`AEQw{k)Ut9v7YgfdG1r_&{k_aS(JrjZI>UaibeMYMOQq-x owWzntnL?8;Kd)bYfZ1YM{L6~#HK{=NGkCiCxvXFWXG+iEl@n0-z_3Z#iizdjjafDd4i6Yp+)G$E?rb!zbZ9uhe4_6Khro{H>`x60 zjqDR-FA6FY9KZI2k&%gC!FrLh!-KxHCz+X8f?+~=;!N>H?{lAm%%koY32m1B0*|UBBl^hbBWPBSAxUWC|l=DpE zVore{FTU=yX|yabVPuluYd2lpfW1%6;lbkT&p)v|J8+SOqvp%6n0W_eEM^^e&GDxz zKe8(4`|SEX(+=owxWFGTe}9AihbqoLvD~f?^0(a-k6gi2Z=4^WyKw!tDqE)?ZML%* z8vEn!t52_==&r^j{3C;j#jdKB%O`_pLjc9`&ZhY`x%h%l`R4-Ce8W-rv8c{I80&j;%oV zqj7oA1ML-eD~^S_u6nxn*F5vMlcM3l57ITR3E3B`v+irU)tep@yKT33&DGa?KYGc7 zZD)K|JYwMBocTO6A5WSLT^Z3=KyRnae z7WRg}lKgS=>7CfP^9Ro70d`FNq7(`FoKKD+OPAlDt;C}5(KpDeng+2=vu+x*7s{ru~{1atiF ze9as7pl>5E5sFqE`Sy{2PXB}krt$*O9m%T?C~xDEX%2h9w*ev>)|h;O>kcDO`C6v_ z8(IZCzr6n?Ec@C{{34pso+?BU%-R)3;x-j4|$Ncp6kxW&6A6U$I^uK-60p>3( z?-Yc0B>&!e{y_8f(spGIn;T6` labels[v], + min: 0, + max: values.length - 1, + wrap: true, + step: 1, + onchange: v => { + setSetting(key,values[v]); + } + }; + } + + // Helper method which breaks string set settings down to local settings object + function stringInSettings(name, values, labels) { + return stringItems(name,settings[name], values, labels); + } + + // Show the menu + E.showMenu({ + '' : { 'title' : 'Quarter Clock' }, + '< Back' : () => back(), + 'Hour Colour': stringInSettings('hourColour', ['#f00', '#0f0', '#00f', '#ff0', '#0ff', '#f0f'], ['Red', 'Green', 'Blue', 'Yellow', 'Cyan', 'Magenta']), + 'Minute Colour': stringInSettings('minuteColour', ['#f00', '#0f0', '#00f', '#ff0', '#0ff', '#f0f'], ['Red', 'Green', 'Blue', 'Yellow', 'Cyan', 'Magenta']), + 'Background Colour': stringInSettings('backgroundColour', ['theme', '#000', '#fff'],['theme', 'Black', 'White']), + 'Digital': { + value: !!settings.digital, // !! converts undefined to false + onchange: v => { + setSetting('digital', v); + }, + }, + 'Show Widgets': { + value: !!settings.showWidgets, + onchange: v => { + setSetting('showWidgets', v); + }, + }, + 'Show Battery': { + value: !!settings.showBattery, + onchange: v => { + setSetting('showBattery', v); + }, + }, + 'Battery Colour': stringInSettings('batteryColour', ['#f00', '#0f0', '#00f', '#ff0', '#0ff', '#f0f'], ['Red', 'Green', 'Blue', 'Yellow', 'Cyan', 'Magenta']), + }); +}) From 2b6839bedbee413e577802b9581b7a0d02ea09f5 Mon Sep 17 00:00:00 2001 From: Ian Ward Date: Sat, 20 Jul 2024 19:52:36 +0100 Subject: [PATCH 086/594] define variables --- apps/quarterclock/app.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/quarterclock/app.js b/apps/quarterclock/app.js index da7efed16..837cac6b6 100644 --- a/apps/quarterclock/app.js +++ b/apps/quarterclock/app.js @@ -91,10 +91,10 @@ // Draw hour or minute boxes let drawBox = function drawBox(current, boxes, size, colour) { - x1 = (boxes[current].x * Bangle.appRect.h) + (Bangle.appRect.y/2); - y1 = (boxes[current].y * Bangle.appRect.h) + Bangle.appRect.y; - x2 = x1 + size; - y2 = y1 + size; + let x1 = (boxes[current].x * Bangle.appRect.h) + (Bangle.appRect.y/2); + let y1 = (boxes[current].y * Bangle.appRect.h) + Bangle.appRect.y; + let x2 = x1 + size; + let y2 = y1 + size; g.setColor(colour); g.fillRect(x1, y1, x2, y2); }; From ec9bc29295b7935bffbc8b18d8d88e135902ce8b Mon Sep 17 00:00:00 2001 From: Ian Ward Date: Sun, 21 Jul 2024 19:05:12 +0100 Subject: [PATCH 087/594] Correctly handle hiding/showing widgets --- apps/quarterclock/app.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/quarterclock/app.js b/apps/quarterclock/app.js index 837cac6b6..7899ff2c7 100644 --- a/apps/quarterclock/app.js +++ b/apps/quarterclock/app.js @@ -125,12 +125,15 @@ // Remove handler to allow fast loading Bangle.setUI({mode:"clock", remove:function() { if (drawTimeout) clearTimeout(drawTimeout); + require("widget_utils").show(); }}); // Load and display widgets + Bangle.loadWidgets(); if (settings.showWidgets) { - Bangle.loadWidgets(); - Bangle.drawWidgets(); + require("widget_utils").show(); + } else { + require("widget_utils").hide(); } // draw initial boxes and queue subsequent redraws From 7e5c67a2b6041f5822cec42e901cf54ace762605 Mon Sep 17 00:00:00 2001 From: Ian Ward Date: Tue, 23 Jul 2024 09:16:11 +0100 Subject: [PATCH 088/594] fix bug with 100% battery --- apps/quarterclock/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/quarterclock/app.js b/apps/quarterclock/app.js index 7899ff2c7..a668860cd 100644 --- a/apps/quarterclock/app.js +++ b/apps/quarterclock/app.js @@ -63,7 +63,7 @@ // Draw battery box let drawBattery = function drawBattery() { // Round battery up to 10% interval - let battery = (Math.floor(E.getBattery()/10)+1)/10; + let battery = Math.min((Math.floor(E.getBattery()/10)+1)/10, 1); // Maximum battery box let batterySize = 30; From 3e10fff37325b29652e1bed507d741bb8885be93 Mon Sep 17 00:00:00 2001 From: Alexander Minges Date: Wed, 24 Jul 2024 13:54:47 +0200 Subject: [PATCH 089/594] use weather codes if language is not English --- apps/ffcniftyapp/app.js | 43 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/apps/ffcniftyapp/app.js b/apps/ffcniftyapp/app.js index 840dd72ff..517c0e2c5 100644 --- a/apps/ffcniftyapp/app.js +++ b/apps/ffcniftyapp/app.js @@ -1,5 +1,5 @@ const w = require("weather"); -//const locale = require("locale"); +const locale = require("locale"); // Weather icons from https://icons8.com/icon/set/weather/color function getSun() { @@ -67,6 +67,33 @@ function chooseIcon(condition) { return getPartSun; } else return getErr; } + +/* +* Choose weather icon to display based on weather conditition code +* https://openweathermap.org/weather-conditions#Weather-Condition-Codes-2 +*/ +function chooseIconByCode(code) { + const codeGroup = Math.round(code / 100); + switch (codeGroup) { + case 2: return getStorm; + case 3: return getRain; + case 5: + switch (code) { + case 511: return getSnow; + default: return getRain; + } + case 6: return getSnow; + case 7: return getPartSun; + case 8: + switch (code) { + case 800: return getSun; + case 804: return getCloud; + default: return getPartSun; + } + default: return getCloud; + } +} + /*function condenseWeather(condition) { condition = condition.toLowerCase(); if (condition.includes("thunderstorm") || @@ -143,8 +170,18 @@ const clock = new ClockFace({ //let cWea =(curr === "no data" ? "no data" : curr.txt); let cTemp= (curr === "no data" ? 273 : curr.temp); // const temp = locale.temp(curr.temp - 273.15).match(/^(\D*\d*)(.*)$/); - let w_icon = chooseIcon(curr.txt === undefined ? "no data" : curr.txt ); - //let w_icon = chooseIcon(curr.txt); + + if (locale == "en" || locale == "en_GB" || locale == "en_US") { + let w_icon = chooseIcon(curr.txt === undefined ? "no data" : curr.txt); + } else { + // cannot use condition string to determine icon of language is not English; use weather code instead + const code = curr.code || -1; + if (code > 0) { + let w_icon = chooseIconByCode(curr.code); + } else { + let w_icon = getErr(); + } + } g.setFontAlign(1, 0).setFont("Vector", 90 * this.scale); g.drawString(format(hour), this.centerTimeScaleX, this.center.y - 31 * this.scale); From 1a3c94579d38018c5c0811eb56dea3e8e6df69d0 Mon Sep 17 00:00:00 2001 From: Alexander Minges Date: Wed, 24 Jul 2024 14:15:32 +0200 Subject: [PATCH 090/594] fix setting icon based on weather code --- apps/ffcniftyapp/app.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/apps/ffcniftyapp/app.js b/apps/ffcniftyapp/app.js index 517c0e2c5..4a11caca6 100644 --- a/apps/ffcniftyapp/app.js +++ b/apps/ffcniftyapp/app.js @@ -171,15 +171,14 @@ const clock = new ClockFace({ let cTemp= (curr === "no data" ? 273 : curr.temp); // const temp = locale.temp(curr.temp - 273.15).match(/^(\D*\d*)(.*)$/); - if (locale == "en" || locale == "en_GB" || locale == "en_US") { - let w_icon = chooseIcon(curr.txt === undefined ? "no data" : curr.txt); + let w_icon = getErr; + if (locale.name === "en" || locale.name === "en_GB" || locale.name === "en_US") { + w_icon = chooseIcon(curr.txt === undefined ? "no data" : curr.txt); } else { - // cannot use condition string to determine icon of language is not English; use weather code instead + // cannot use condition string to determine icon of language is not English; use weather code instead const code = curr.code || -1; if (code > 0) { - let w_icon = chooseIconByCode(curr.code); - } else { - let w_icon = getErr(); + w_icon = chooseIconByCode(curr.code); } } From 883958dc50360c2d736e90df0b1e0bfeba871682 Mon Sep 17 00:00:00 2001 From: Alexander Minges Date: Wed, 24 Jul 2024 14:21:15 +0200 Subject: [PATCH 091/594] update metadata and changelog --- apps/ffcniftyapp/ChangeLog | 1 + apps/ffcniftyapp/metadata.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/ffcniftyapp/ChangeLog b/apps/ffcniftyapp/ChangeLog index 30dcec467..ef797827e 100644 --- a/apps/ffcniftyapp/ChangeLog +++ b/apps/ffcniftyapp/ChangeLog @@ -1,3 +1,4 @@ 0.01: New Clock Nifty A ++ >> adding more information on the right side of the clock +0.02: Fix weather icon for languages other than English diff --git a/apps/ffcniftyapp/metadata.json b/apps/ffcniftyapp/metadata.json index bbe8e7e69..6f368160b 100644 --- a/apps/ffcniftyapp/metadata.json +++ b/apps/ffcniftyapp/metadata.json @@ -1,7 +1,7 @@ { "id": "ffcniftyapp", "name": "Nifty-A Clock ++", - "version": "0.01", + "version": "0.02", "description": "A nifty clock with time and date and more", "dependencies": {"weather":"app"}, "icon": "app.png", From e9d2478e8117aee2eedc310d58ff7e21da8928f5 Mon Sep 17 00:00:00 2001 From: Alexander Minges Date: Wed, 24 Jul 2024 14:23:11 +0200 Subject: [PATCH 092/594] fix typo in comment --- apps/ffcniftyapp/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/ffcniftyapp/app.js b/apps/ffcniftyapp/app.js index 4a11caca6..5ca48c2f1 100644 --- a/apps/ffcniftyapp/app.js +++ b/apps/ffcniftyapp/app.js @@ -175,7 +175,7 @@ const clock = new ClockFace({ if (locale.name === "en" || locale.name === "en_GB" || locale.name === "en_US") { w_icon = chooseIcon(curr.txt === undefined ? "no data" : curr.txt); } else { - // cannot use condition string to determine icon of language is not English; use weather code instead + // cannot use condition string to determine icon if language is not English; use weather code instead const code = curr.code || -1; if (code > 0) { w_icon = chooseIconByCode(curr.code); From 81fdfc9f090463c67e4b3e15f13639ccebbb984f Mon Sep 17 00:00:00 2001 From: Brian Whelan Date: Wed, 24 Jul 2024 22:36:40 +0100 Subject: [PATCH 093/594] Add swipe right to reply and PR fixes --- apps/messagegui/app.js | 42 ++++++++++++++++++++++++++++++---------- apps/reply/ChangeLog | 3 ++- apps/reply/lib.js | 21 ++++++++++++++------ apps/reply/metadata.json | 2 +- 4 files changed, 50 insertions(+), 18 deletions(-) diff --git a/apps/messagegui/app.js b/apps/messagegui/app.js index 03f001397..3b03adeaf 100644 --- a/apps/messagegui/app.js +++ b/apps/messagegui/app.js @@ -24,7 +24,8 @@ require("messages").pushMessage({"t":"add","id":"call","src":"Phone","title":"Bo var Layout = require("Layout"); var layout; // global var containing the layout for the currently displayed message var settings = require('Storage').readJSON("messages.settings.json", true) || {}; -var reply = require("reply"); +var reply; +try { reply = require("reply"); } catch (e) {} var fontSmall = "6x8"; var fontMedium = g.getFonts().includes("6x15")?"6x15":"6x8:2"; var fontBig = g.getFonts().includes("12x20")?"12x20":"6x8:2"; @@ -269,7 +270,10 @@ function showMessageSettings(msg) { /*LANG*/"View Message" : () => { showMessageScroller(msg); }, - /*LANG*/"Reply": () => { + }; + + if (msg.reply && reply) { + menu[/*LANG*/"Reply"] = () => { replying = true; reply.reply({msg: msg}) .then(result => { @@ -281,14 +285,15 @@ function showMessageSettings(msg) { replying = false; showMessage(msg.id); }); - }, + }; + } + + menu = Object.assign(menu, { /*LANG*/"Delete" : () => { MESSAGES = MESSAGES.filter(m=>m.id!=msg.id); checkMessages({clockIfNoMsg:0,clockIfAllRead:0,showMsgIfUnread:0,openMusic:0}); }, - }; - - if (!msg.reply || !reply) delete menu[/*LANG*/"Reply"]; + }); if (Bangle.messageIgnore && msg.src) menu[/*LANG*/"Ignore"] = () => { @@ -393,15 +398,32 @@ function showMessage(msgid, persist) { }; footer.push({type:"img",src:atob("PhAB4A8AAAAAAAPAfAMAAAAAD4PwHAAAAAA/H4DwAAAAAH78B8AAAAAA/+A/AAAAAAH/Af//////w/gP//////8P4D///////H/Af//////z/4D8AAAAAB+/AfAAAAAA/H4DwAAAAAPg/AcAAAAADwHwDAAAAAA4A8AAAAAAAA=="),col:"#f00",cb:negHandler}); } footer.push({fillx:1}); // push images to left/right - if (msg.positive) { + if (msg.reply && reply) { + posHandler = ()=>{ + replying = true; + msg.new = false; + cancelReloadTimeout(); // don't auto-reload to clock now + reply.reply({msg: msg}) + .then(result => { + Bluetooth.println(JSON.stringify(result)); + replying = false; + layout.render(); + checkMessages({clockIfNoMsg:1,clockIfAllRead:1,showMsgIfUnread:1,openMusic:openMusic}); + }) + .catch(() => { + replying = false; + layout.render(); + showMessage(msg.id); + }); + }; footer.push({type:"img",src:atob("QRABAAAAAAAH//+AAAAABgP//8AAAAADgf//4AAAAAHg4ABwAAAAAPh8APgAAAAAfj+B////////geHv///////hf+f///////GPw///////8cGBwAAAAAPx/gDgAAAAAfD/gHAAAAAA8DngOAAAAABwDHP8AAAAADACGf4AAAAAAAAM/w=="),col:"#0f0", cb:posHandler}); + } + else if (msg.positive) { posHandler = ()=>{ msg.new = false; cancelReloadTimeout(); // don't auto-reload to clock now Bangle.messageResponse(msg,true); checkMessages({clockIfNoMsg:1,clockIfAllRead:1,showMsgIfUnread:1,openMusic:openMusic}); - }; - footer.push({type:"img",src:atob("QRABAAAAAAAAAAOAAAAABgAAA8AAAAADgAAD4AAAAAHgAAPgAAAAAPgAA+AAAAAAfgAD4///////gAPh///////gA+D///////AD4H//////8cPgAAAAAAPw8+AAAAAAAfB/4AAAAAAA8B/gAAAAAABwB+AAAAAAADAB4AAAAAAAAABgAA=="),col:"#0f0",cb:posHandler}); - + }; footer.push({type:"img",src:atob("QRABAAAAAAAAAAOAAAAABgAAA8AAAAADgAAD4AAAAAHgAAPgAAAAAPgAA+AAAAAAfgAD4///////gAPh///////gA+D///////AD4H//////8cPgAAAAAAPw8+AAAAAAAfB/4AAAAAAA8B/gAAAAAABwB+AAAAAAADAB4AAAAAAAAABgAA=="),col:"#0f0",cb:posHandler}); } layout = new Layout({ type:"v", c: [ diff --git a/apps/reply/ChangeLog b/apps/reply/ChangeLog index f3c7b0d2c..a5a65b116 100644 --- a/apps/reply/ChangeLog +++ b/apps/reply/ChangeLog @@ -1 +1,2 @@ -0.01: New Library! \ No newline at end of file +0.01: New Library! +0.02: Minor bug fixes \ No newline at end of file diff --git a/apps/reply/lib.js b/apps/reply/lib.js index 4a040c557..cdf394bb4 100644 --- a/apps/reply/lib.js +++ b/apps/reply/lib.js @@ -6,7 +6,12 @@ exports.reply = function (options) { keyboard = null; } - function constructReply(msg, replyText, resolve) { + function constructReply(msg, replyText, resolve, reject) { + if (!replyText) { + reject(""); + return; + } + var responseMessage = {msg: replyText}; if (msg.id) { responseMessage = { t: "notify", id: msg.id, n: "REPLY", msg: replyText }; @@ -29,7 +34,10 @@ exports.reply = function (options) { }, // options /*LANG*/ "Compose": function () { keyboard.input().then((result) => { - constructReply(options.msg ?? {}, result, resolve); + if (result) + constructReply(options.msg ?? {}, result, resolve, reject); + else + E.showMenu(menu); }); }, }; @@ -40,7 +48,7 @@ exports.reply = function (options) { ) || []; replies.forEach((reply) => { menu = Object.defineProperty(menu, reply.text, { - value: () => constructReply(options.msg ?? {}, reply.text, resolve), + value: () => constructReply(options.msg ?? {}, reply.text, resolve, reject), }); }); if (!keyboard) delete menu[/*LANG*/ "Compose"]; @@ -60,10 +68,11 @@ exports.reply = function (options) { ); } else { keyboard.input().then((result) => { - constructReply(options.msg.id, result, resolve); + constructReply(options.msg, result, resolve, reject); }); } + } else{ + E.showMenu(menu); } - E.showMenu(menu); }); -}; +}; \ No newline at end of file diff --git a/apps/reply/metadata.json b/apps/reply/metadata.json index 34843edd4..c028ed053 100644 --- a/apps/reply/metadata.json +++ b/apps/reply/metadata.json @@ -1,6 +1,6 @@ { "id": "reply", "name": "Reply Library", - "version": "0.01", + "version": "0.02", "description": "A library for replying to text messages via predefined responses or keyboard", "icon": "app.png", "type": "module", From ac899251dfc7240efd8d3dc34afd5678e4ee3012 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Wed, 24 Jul 2024 22:13:43 +0200 Subject: [PATCH 094/594] dedreckon: add ded reckoning application --- apps/dedreckon/ChangeLog | 1 + apps/dedreckon/README.md | 17 ++ apps/dedreckon/app-icon.js | 1 + apps/dedreckon/app.png | Bin 0 -> 1841 bytes apps/dedreckon/dedreckon.app.js | 442 ++++++++++++++++++++++++++++++++ apps/dedreckon/metadata.json | 13 + 6 files changed, 474 insertions(+) create mode 100644 apps/dedreckon/ChangeLog create mode 100644 apps/dedreckon/README.md create mode 100644 apps/dedreckon/app-icon.js create mode 100644 apps/dedreckon/app.png create mode 100644 apps/dedreckon/dedreckon.app.js create mode 100644 apps/dedreckon/metadata.json diff --git a/apps/dedreckon/ChangeLog b/apps/dedreckon/ChangeLog new file mode 100644 index 000000000..263d4078d --- /dev/null +++ b/apps/dedreckon/ChangeLog @@ -0,0 +1 @@ +0.01: attempt to import diff --git a/apps/dedreckon/README.md b/apps/dedreckon/README.md new file mode 100644 index 000000000..e46c6fd69 --- /dev/null +++ b/apps/dedreckon/README.md @@ -0,0 +1,17 @@ +# Ded Reckon + +Dead Reckoning using compass and step counter. + +This allows logging track using "dead reckoning" -- that's logging +angles from compass and distances from step counter. You need to mark +turns, and point watch to direction of the turn. Simultaneously, it +tries to log positions using GPS. You can use it to calibrate your +step length by comparing GPS and step counter data. It can also get +pretty accurate recording of track walked in right circumstances. + +Tap bottom part of the screen to select display (text or map for +now). Point watch to new direction, then tap top left part of screen +to indicate a turn. + +Map shows blue line for track from dead reckonging, and green line for +track from GPS. \ No newline at end of file diff --git a/apps/dedreckon/app-icon.js b/apps/dedreckon/app-icon.js new file mode 100644 index 000000000..39b72f00b --- /dev/null +++ b/apps/dedreckon/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwhHXAH4A/AH4A/AFsAFtoADF1wwqF4wwhEI5goGGIjFYN4wFF1KbHGUolIMc4lGSdIwJd9DstAH7FrBywwgad4veDwojJBIIvcFwIACGBYICGDYvEGBYvdFwqyLL8i+LF7oxFRxgveGAQ0EF5IwfMY4vpL5AFLAEYv/F8owoE44vrAY4vmAQIEEF85dGGE0AE4gvoFwpmHd0oINAH4A/AH4AvA")) diff --git a/apps/dedreckon/app.png b/apps/dedreckon/app.png new file mode 100644 index 0000000000000000000000000000000000000000..db3fcfb8897226665afffca643527bf49ac8b5fc GIT binary patch literal 1841 zcmdT_c~Dd57QeZE%4Ml01OzecSo#7{TG3LV6k;GmG|>PFF#%$0sVtQxhNc?9t3DO9 zra^EDLpm#XYEIy&D{}5yj@t>>jP9hXZ#%D7j!%bQ*VE`GE6NeB_iEP*l zL318*SP^lGq=B-BIn)Td*-vI>Hb&33S&r*9$^%g+?!a@muU!gWi7h4(l^WPV5{7n7%6(SCqjc%e}Yn=YUM~<9wVh-KlV4E zhlTkuhj~7Q10BahVc)};btw?g4qzON;0kDu=$4@lBiA8w;&cxsA;JI5dFbaug%}(S z=Ho~B^^~#x;Owcbkha5jxnBVB)^HZm77LO1Zkn1S)TQV`;mbiEe^Xd`3Gs*KR(fSYw?)X?q%*xO9r7JK zyH)Ql(?sC26pvmU^LKdQ6#&~#ygYO96!xb52o?#Ui9S_rOb8WMx83<~*1>kayk^En z%wVOt_0}F1{$5pAHudw8AlYUHLR<7tjKfcFrX=8@JsUzMzdISCd`?3t2_C;x6k^SD zgV5QE({W%q+G(;A?k%hTPsU+D9^}CV#oL{ZX2Hj}QZV1&flqNpO-y9T@zJ>ZwGrc+Pr%IXE#!i# zk{hCt0iG00pNj2%^upoicw5wcp40U+^6!7zTWV03@Pl@nGnZJ@>swMA__*%d4#m#Q zQF}yUiIj{|t?vtJm?=*ZWx>xq0$`a{?!^4n8umj^*I@~v_t_)68GEMgHnK--dWdW|4h5J;S2>?g^2^K>%)ABf_ zKqr}Xs1x4xxCo&|InHC@L4M2Z(fA#_VTuvz<8Z*@6j!xq+@bl^y}`4w`$w9F5y>hV znojc0Vsy;|hS~eETIF@^5054i<=5QDD&`;!M~$Y6m{6hX$dkn46?hD5tCjI5*@U^Vq+1bzX8m{Lc%7Tr9&|!rkSexo;Ni#pqTRbF@x2nDp%|(|`23*&8CPm($ z7b23#+_k^jbkNfTkHc~Lg?)X3D}uE(Hde4u&CrP%3G!{eE+F@|Bu=}ox^IHJ3hA#j z{Yy|Qz5A-Hgxt=Nt<~$KcZc@5O{OjcFDhp~9Zd7Ad6lfRi*bR)0R~2qqb@jape=uJ zH&*sCx!;vC>>qV?TXyH|K(M$)94k?;xvKx#MNfy*r`BC?wAOSM?`hmvh=pwGNlV=` z6F)sRkLjJ`7Q;4szh8z>j0dOpHEJdqa1&A%=uQID*Ndp_&+cAW$wpPHYi62Qe@upG z6z92kX8FEx+UgzPYuVS=uilLz4SNa-{vo+tUc32MEmgI_y2obyj|s^Dtymg`Z+Y$S zO3Wg|OYSHdPsOe!(Ro~{20t;S;p_WPnOFQBdyMM=+35Jmjd&Q*+50qUAh_Oq#El y=sZ6X*wn(45w5i0Y9_(ZkEI&y!=;-4E!Y(3ZMhIif5wm#XAj~;a#;qZbjR;cizRRX literal 0 HcmV?d00001 diff --git a/apps/dedreckon/dedreckon.app.js b/apps/dedreckon/dedreckon.app.js new file mode 100644 index 000000000..449bf9c1b --- /dev/null +++ b/apps/dedreckon/dedreckon.app.js @@ -0,0 +1,442 @@ +/* Ded Reckon */ +/* eslint-disable no-unused-vars */ + +/* fmt library v0.1.3 */ +let fmt = { + icon_alt : "\0\x08\x1a\1\x00\x00\x00\x20\x30\x78\x7C\xFE\xFF\x00\xC3\xE7\xFF\xDB\xC3\xC3\xC3\xC3\x00\x00\x00\x00\x00\x00\x00\x00", + icon_m : "\0\x08\x1a\1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xC3\xE7\xFF\xDB\xC3\xC3\xC3\xC3\x00\x00\x00\x00\x00\x00\x00\x00", + icon_km : "\0\x08\x1a\1\xC3\xC6\xCC\xD8\xF0\xD8\xCC\xC6\xC3\x00\xC3\xE7\xFF\xDB\xC3\xC3\xC3\xC3\x00\x00\x00\x00\x00\x00\x00\x00", + icon_kph : "\0\x08\x1a\1\xC3\xC6\xCC\xD8\xF0\xD8\xCC\xC6\xC3\x00\xC3\xE7\xFF\xDB\xC3\xC3\xC3\xC3\x00\xFF\x00\xC3\xC3\xFF\xC3\xC3", + icon_c : "\0\x08\x1a\1\x00\x00\x60\x90\x90\x60\x00\x7F\xFF\xC0\xC0\xC0\xC0\xC0\xFF\x7F\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", + + /* 0 .. DD.ddddd + 1 .. DD MM.mmm' + 2 .. DD MM'ss" + */ + geo_mode : 1, + + init: function() {}, + fmtDist: function(km) { + if (km >= 1.0) return km.toFixed(1) + this.icon_km; + return (km*1000).toFixed(0) + this.icon_m; + }, + fmtSteps: function(n) { return this.fmtDist(0.001 * 0.719 * n); }, + fmtAlt: function(m) { return m.toFixed(0) + this.icon_alt; }, + draw_dot : 1, + add0: function(i) { + if (i > 9) { + return ""+i; + } else { + return "0"+i; + } + }, + fmtTOD: function(now) { + this.draw_dot = !this.draw_dot; + let dot = ":"; + if (!this.draw_dot) + dot = "."; + return now.getHours() + dot + this.add0(now.getMinutes()); + }, + fmtNow: function() { return this.fmtTOD(new Date()); }, + fmtTimeDiff: function(d) { + if (d < 180) + return ""+d.toFixed(0); + d = d/60; + return ""+d.toFixed(0)+"m"; + }, + fmtAngle: function(x) { + switch (this.geo_mode) { + case 0: + return "" + x; + case 1: { + let d = Math.floor(x); + let m = x - d; + m = m*60; + return "" + d + " " + m.toFixed(3) + "'"; + } + case 2: { + let d = Math.floor(x); + let m = x - d; + m = m*60; + let mf = Math.floor(m); + let s = m - mf; + s = s*60; + return "" + d + " " + mf + "'" + s.toFixed(0) + '"'; + } + } + return "bad mode?"; + }, + fmtPos: function(pos) { + let x = pos.lat; + let c = "N"; + if (x<0) { + c = "S"; + x = -x; + } + let s = c+this.fmtAngle(x) + "\n"; + c = "E"; + if (x<0) { + c = "W"; + x = -x; + } + return s + c + this.fmtAngle(x); + }, + fmtFix: function(fix, t) { + if (fix && fix.fix && fix.lat) { + return this.fmtSpeed(fix.speed) + " " + + this.fmtAlt(fix.alt); + } else { + return "N/FIX " + this.fmtTimeDiff(t); + } + }, + fmtSpeed: function(kph) { + return kph.toFixed(1) + this.icon_kph; + }, +}; + +/* gps library v0.1.1 */ +let gps = { + emulator: -1, + init: function(x) { + this.emulator = (process.env.BOARD=="EMSCRIPTEN" + || process.env.BOARD=="EMSCRIPTEN2")?1:0; + }, + state: {}, + on_gps: function(f) { + let fix = this.getGPSFix(); + f(fix); + + /* + "lat": number, // Latitude in degrees + "lon": number, // Longitude in degrees + "alt": number, // altitude in M + "speed": number, // Speed in kph + "course": number, // Course in degrees + "time": Date, // Current Time (or undefined if not known) + "satellites": 7, // Number of satellites + "fix": 1 // NMEA Fix state - 0 is no fix + "hdop": number, // Horizontal Dilution of Precision + */ + this.state.timeout = setTimeout(this.on_gps, 1000, f); + }, + off_gps: function() { + clearTimeout(this.state.timeout); + }, + getGPSFix: function() { + if (!this.emulator) + return Bangle.getGPSFix(); + let fix = {}; + fix.fix = 1; + fix.lat = 50; + fix.lon = 14-(getTime()-this.gps_start) / 1000; /* Go West! */ + fix.alt = 200; + fix.speed = 5; + fix.course = 30; + fix.time = Date(); + fix.satellites = 5; + fix.hdop = 12; + return fix; + }, + gps_start : -1, + start_gps: function() { + Bangle.setGPSPower(1, "libgps"); + this.gps_start = getTime(); + }, + stop_gps: function() { + Bangle.setGPSPower(0, "libgps"); + }, +}; + +/* ui library 0.1 */ +let ui = { + display: 0, + numScreens: 2, + drawMsg: function(msg) { + g.reset().setFont("Vector", 35) + .setColor(1,1,1) + .fillRect(0, this.wi, 176, 176) + .setColor(0,0,0) + .drawString(msg, 5, 30); + }, + drawBusy: function() { + this.drawMsg("\n.oO busy"); + }, + nextScreen: function() { + print("nextS"); + this.display = this.display + 1; + if (this.display == this.numScreens) + this.display = 0; + this.drawBusy(); + }, + prevScreen: function() { + print("prevS"); + this.display = this.display - 1; + if (this.display < 0) + this.display = this.numScreens - 1; + this.drawBusy(); +}, + onSwipe: function(dir) { + this.nextScreen(); +}, + h: 176, + w: 176, + wi: 32, + last_b: 0, + touchHandler: function(d) { + let x = Math.floor(d.x); + let y = Math.floor(d.y); + + if (d.b != 1 || this.last_b != 0) { + this.last_b = d.b; + return; + } + + print("touch", x, y, this.h, this.w); + + /* + if ((xthis.h/2) && (ythis.w/2)) { + print("prev"); + this.prevScreen(); + } + if ((x>this.h/2) && (y>this.w/2)) { + print("next"); + this.nextScreen(); + } + }, + init: function() { + } +}; + +var last_steps = Bangle.getStepCount(), last_time = getTime(), speed = 0, step_phase = 0; + +var mpstep = 0.719 * 1.15; + +function updateSteps() { + if (step_phase ++ > 9) { + step_phase =0; + let steps = Bangle.getStepCount(); + let time = getTime(); + + speed = 3.6 * mpstep * ((steps-last_steps) / (time-last_time)); + last_steps = steps; + last_time = time; + } + return "" + fmt.fmtSpeed(speed) + " " + step_phase + "\n" + fmt.fmtDist(log_dist/1000) + " " + fmt.fmtDist(log_last/1000); +} + +/* compensated compass */ +var CALIBDATA = require("Storage").readJSON("magnav.json",1)||null; +const tiltfixread = require("magnav").tiltfixread; +var heading; + + +var cancel_gps = false; + +function drawStats() { + let fix = gps.getGPSFix(); + + let msg = fmt.fmtFix(fix, getTime() - gps.gps_start); + + msg += "\n" + fmt.fmtDist(gps_dist/1000) + " " + fmt.fmtDist(gps_last/1000) + "\n" + updateSteps(); + let c = Bangle.getCompass(); + if (c) msg += "\n" + c.heading.toFixed(0) + "/" + heading.toFixed(0) + "deg " + log.length + "\n"; + + g.reset().clear().setFont("Vector", 31) + .setColor(1,1,1) + .fillRect(0, 24, 176, 100) + .setColor(0,0,0) + .drawString(msg, 3, 25); +} + +function updateGps() { + if (cancel_gps) + return; + heading = tiltfixread(CALIBDATA.offset,CALIBDATA.scale); + if (ui.display == 0) { + setTimeout(updateGps, 1000); + drawLog(); + drawStats(); + } + if (ui.display == 1) { + setTimeout(updateGps, 1000); + drawLog(); + } +} + +function stopGps() { + cancel_gps=true; + gps.stop_gps(); +} + +var log = [], log_dist = 0, gps_dist = 0; +var log_last = 0, gps_last = 0; + +function logEntry() { + let e = {}; + e.time = getTime(); + e.fix = gps.getGPSFix(); + e.steps = Bangle.getStepCount(); + if (0) { + let c = Bangle.getCompass(); + if (c) + e.dir = c.heading; + else + e.dir = -1; + } else { + e.dir = heading; + } + return e; +} + +function onTurn() { + let e = logEntry(); + log.push(e); +} + +function radians(a) { return a*Math.PI/180; } +function degrees(a) { return a*180/Math.PI; } +// distance between 2 lat and lons, in meters, Mean Earth Radius = 6371km +// https://www.movable-type.co.uk/scripts/latlong.html +// (Equirectangular approximation) +function calcDistance(a,b) { + var x = radians(b.lon-a.lon) * Math.cos(radians((a.lat+b.lat)/2)); + var y = radians(b.lat-a.lat); + return Math.sqrt(x*x + y*y) * 6371000; +} + +var dn, de; +function initConv(fix) { + let n = { lat: fix.lat+1, lon: fix.lon }; + let e = { lat: fix.lat, lon: fix.lon+1 }; + + dn = calcDistance(fix, n); + de = calcDistance(fix, e); + print("conversion is ", dn, 108000, de, 50000); +} +function toM(start, fix) { + return { x: (fix.lon - start.lon) * de, y: (fix.lat - start.lat) * dn }; +} +var mpp = 4; +function toPix(q) { + let p = { x: q.x, y: q.y }; + p.x /= mpp; /* 10 m / pix */ + p.y /= -mpp; + p.x += 85; + p.y += 85; + return p; +} + +function drawLog() { + let here = logEntry(); + if (!here.fix.lat) { + here.fix.lat = 50; + here.fix.lon = 14; + } + initConv(here.fix); + log.push(here); + let l = log; + log_dist = 0; + log_last = -1; + gps_last = -1; + + g.reset().clear(); + g.setColor(0, 0, 1); + let last = { x: 0, y: 0 }; + for (let i = l.length - 2; i >= 0; i--) { + let next = {}; + let m = (l[i+1].steps - l[i].steps) * mpstep; + let dir = radians(180 + l[i].dir); + next.x = last.x + m * Math.sin(dir); + next.y = last.y + m * Math.cos(dir); + print(dir, m, last, next); + let lp = toPix(last); + let np = toPix(next); + g.drawLine(lp.x, lp.y, np.x, np.y); + g.drawCircle(np.x, np.y, 3); + last = next; + if (log_last == -1) + log_last = m; + log_dist += m; + } + g.setColor(0, 1, 0); + last = { x: 0, y: 0 }; + gps_dist = 0; + for (let i = l.length - 2; i >= 0; i--) { + let fix = l[i].fix; + if (fix.fix && fix.lat) { + let next = toM(here.fix, fix); + let lp = toPix(last); + let np = toPix(next); + let d = Math.sqrt((next.x-last.x)*(next.x-last.x)+(next.y-last.y)*(next.y-last.y)); + if (gps_last == -1) + gps_last = d; + gps_dist += d; + g.drawLine(lp.x, lp.y, np.x, np.y); + g.drawCircle(np.x, np.y, 3); + last = next; + } + } + log.pop(); +} + +function testPaint() { + let pos = gps.getGPSFix(); + log = []; + let e = { fix: pos, steps: 100, dir: 0 }; + log.push(e); + e = { fix: pos, steps: 200, dir: 90 }; + log.push(e); + e = { fix: pos, steps: 300, dir: 0 }; + log.push(e); + print(log, log.length, log[0], log[1]); + drawLog(); +} + +function touchHandler(d) { + let x = Math.floor(d.x); + let y = Math.floor(d.y); + + if (d.b != 1 || ui.last_b != 0) { + ui.last_b = d.b; + return; + } + + + if ((xui.h/2) && (y ui.onSwipe(s), + clock : 0 +}); + +if (0) + testPaint(); +if (1) { + g.reset(); + updateGps(); +} diff --git a/apps/dedreckon/metadata.json b/apps/dedreckon/metadata.json new file mode 100644 index 000000000..79bf8868e --- /dev/null +++ b/apps/dedreckon/metadata.json @@ -0,0 +1,13 @@ +{ "id": "dedreckon", + "name": "Ded Reckon", + "version": "0.01", + "description": "Dead Reckoning using compass and step counter", + "icon": "app.png", + "readme": "README.md", + "supports" : ["BANGLEJS2"], + "tags": "outdoors", + "storage": [ + {"name":"dedreckon.app.js","url":"dedreckon.app.js"}, + {"name":"dedreckon.img","url":"app-icon.js","evaluate":true} + ] +} From 3fc00c62a93e3cbdf69da0d42ba8faec7217ec98 Mon Sep 17 00:00:00 2001 From: frederic wagner Date: Sat, 27 Jul 2024 10:50:44 +0200 Subject: [PATCH 095/594] gipy : support for very large paths --- apps/gipy/app.js | 22 +++++++++++++----- apps/gipy/pkg/gps.d.ts | 4 ++-- apps/gipy/pkg/gps.js | 40 ++++++++++++++++----------------- apps/gipy/pkg/gps_bg.wasm | Bin 757415 -> 750859 bytes apps/gipy/pkg/gps_bg.wasm.d.ts | 4 ++-- 5 files changed, 41 insertions(+), 29 deletions(-) diff --git a/apps/gipy/app.js b/apps/gipy/app.js index 83ce0757a..f59268c62 100644 --- a/apps/gipy/app.js +++ b/apps/gipy/app.js @@ -95,7 +95,7 @@ function compute_eta(hour, minutes, approximate_speed, remaining_distance) { } class TilesOffsets { - constructor(filename, offset) { + constructor(filename, offset, bytes_per_tile_index) { let header = E.toArrayBuffer(s.read(filename, offset, 4)); let type_size = Uint8Array(header, 0, 1)[0]; offset += 1; @@ -105,9 +105,13 @@ class TilesOffsets { offset += 2; let bytes = (type_size==24)?3:2; - let buffer = E.toArrayBuffer(s.read(filename, offset, 2*non_empty_tiles_number+bytes*non_empty_tiles_number)); - this.non_empty_tiles = Uint16Array(buffer, 0, non_empty_tiles_number); - offset += 2 * non_empty_tiles_number; + let buffer = E.toArrayBuffer(s.read(filename, offset, bytes_per_tile_index*non_empty_tiles_number+bytes*non_empty_tiles_number)); + if (bytes_per_tile_index == 2) { + this.non_empty_tiles = Uint16Array(buffer, 0, non_empty_tiles_number); + } else { + this.non_empty_tiles = Uint24Array(buffer, 0, non_empty_tiles_number); + } + offset += bytes_per_tile_index * non_empty_tiles_number; if (type_size == 24) { this.non_empty_tiles_ends = Uint24Array( buffer, @@ -179,7 +183,11 @@ class Map { offset += 8; // tiles offsets - let res = new TilesOffsets(filename, offset); + let bytes_per_tile_index = 2; + if (this.grid_size[0] * this.grid_size[1]) >= 65536 { + bytes_per_tile_index = 3; + } + let res = new TilesOffsets(filename, offset, bytes_per_tile_index); this.tiles_offsets = res[0]; offset = res[1]; @@ -314,6 +322,10 @@ class Interests { this.side = side_array[0]; offset += 8; + let bytes_per_tile_index = 2; + if (this.grid_size[0] * this.grid_size[1]) >= 65536 { + bytes_per_tile_index = 3; + } let res = new TilesOffsets(filename, offset); offset = res[1]; this.offsets = res[0]; diff --git a/apps/gipy/pkg/gps.d.ts b/apps/gipy/pkg/gps.d.ts index 9ad646068..ff6b5360a 100644 --- a/apps/gipy/pkg/gps.d.ts +++ b/apps/gipy/pkg/gps.d.ts @@ -80,11 +80,11 @@ export interface InitOutput { readonly __wbindgen_malloc: (a: number) => number; readonly __wbindgen_realloc: (a: number, b: number, c: number) => number; readonly __wbindgen_export_2: WebAssembly.Table; - readonly wasm_bindgen__convert__closures__invoke1_mut__hc18aa489d857d6a0: (a: number, b: number, c: number) => void; + readonly _dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__hc9126e38b2d002d3: (a: number, b: number, c: number) => void; readonly __wbindgen_add_to_stack_pointer: (a: number) => number; readonly __wbindgen_free: (a: number, b: number) => void; readonly __wbindgen_exn_store: (a: number) => void; - readonly wasm_bindgen__convert__closures__invoke2_mut__h41c3b5af183df3b2: (a: number, b: number, c: number, d: number) => void; + readonly wasm_bindgen__convert__closures__invoke2_mut__h56f743924f545497: (a: number, b: number, c: number, d: number) => void; } export type SyncInitInput = BufferSource | WebAssembly.Module; diff --git a/apps/gipy/pkg/gps.js b/apps/gipy/pkg/gps.js index 0f8b74804..7416d3409 100644 --- a/apps/gipy/pkg/gps.js +++ b/apps/gipy/pkg/gps.js @@ -98,6 +98,14 @@ function takeObject(idx) { return ret; } +const cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); + +cachedTextDecoder.decode(); + +function getStringFromWasm0(ptr, len) { + return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len)); +} + function addHeapObject(obj) { if (heap_next === heap.length) heap.push(heap.length + 1); const idx = heap_next; @@ -107,14 +115,6 @@ function addHeapObject(obj) { return idx; } -const cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); - -cachedTextDecoder.decode(); - -function getStringFromWasm0(ptr, len) { - return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len)); -} - function debugString(val) { // primitive types const type = typeof val; @@ -205,7 +205,7 @@ function makeMutClosure(arg0, arg1, dtor, f) { return real; } function __wbg_adapter_24(arg0, arg1, arg2) { - wasm.wasm_bindgen__convert__closures__invoke1_mut__hc18aa489d857d6a0(arg0, arg1, addHeapObject(arg2)); + wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__hc9126e38b2d002d3(arg0, arg1, addHeapObject(arg2)); } function _assertClass(instance, klass) { @@ -389,7 +389,7 @@ function handleError(f, args) { } } function __wbg_adapter_86(arg0, arg1, arg2, arg3) { - wasm.wasm_bindgen__convert__closures__invoke2_mut__h41c3b5af183df3b2(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3)); + wasm.wasm_bindgen__convert__closures__invoke2_mut__h56f743924f545497(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3)); } /** @@ -464,10 +464,6 @@ function getImports() { imports.wbg.__wbindgen_object_drop_ref = function(arg0) { takeObject(arg0); }; - imports.wbg.__wbindgen_object_clone_ref = function(arg0) { - const ret = getObject(arg0); - return addHeapObject(ret); - }; imports.wbg.__wbindgen_string_new = function(arg0, arg1) { const ret = getStringFromWasm0(arg0, arg1); return addHeapObject(ret); @@ -476,6 +472,10 @@ function getImports() { const ret = fetch(getObject(arg0)); return addHeapObject(ret); }; + imports.wbg.__wbindgen_object_clone_ref = function(arg0) { + const ret = getObject(arg0); + return addHeapObject(ret); + }; imports.wbg.__wbg_signal_31753ac644b25fbb = function(arg0) { const ret = getObject(arg0).signal; return addHeapObject(ret); @@ -665,10 +665,6 @@ function getImports() { const ret = new Uint8Array(getObject(arg0)); return addHeapObject(ret); }; - imports.wbg.__wbg_stringify_d6471d300ded9b68 = function() { return handleError(function (arg0) { - const ret = JSON.stringify(getObject(arg0)); - return addHeapObject(ret); - }, arguments) }; imports.wbg.__wbg_get_765201544a2b6869 = function() { return handleError(function (arg0, arg1) { const ret = Reflect.get(getObject(arg0), getObject(arg1)); return addHeapObject(ret); @@ -681,6 +677,10 @@ function getImports() { const ret = Reflect.set(getObject(arg0), getObject(arg1), getObject(arg2)); return ret; }, arguments) }; + imports.wbg.__wbg_stringify_d6471d300ded9b68 = function() { return handleError(function (arg0) { + const ret = JSON.stringify(getObject(arg0)); + return addHeapObject(ret); + }, arguments) }; imports.wbg.__wbindgen_debug_string = function(arg0, arg1) { const ret = debugString(getObject(arg1)); const ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); @@ -695,8 +695,8 @@ function getImports() { const ret = wasm.memory; return addHeapObject(ret); }; - imports.wbg.__wbindgen_closure_wrapper2356 = function(arg0, arg1, arg2) { - const ret = makeMutClosure(arg0, arg1, 293, __wbg_adapter_24); + imports.wbg.__wbindgen_closure_wrapper2340 = function(arg0, arg1, arg2) { + const ret = makeMutClosure(arg0, arg1, 300, __wbg_adapter_24); return addHeapObject(ret); }; diff --git a/apps/gipy/pkg/gps_bg.wasm b/apps/gipy/pkg/gps_bg.wasm index c9e212a13aea52d635b468b054e6967b256d778b..9a0c281629d3e47e62b384363b72239587e8ab7a 100644 GIT binary patch literal 750859 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 z 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 z zCkdbBoQ#oDtO#NrmgEUjL{^MPigV7v_zg1;k5c#`LEtuTis5 zD}klMQ)#JcfjMC1@U~bs9O2Wl;Tkg7_JgwuT3Pq?XatxH#r)7*D8Oa5hlxT=`1(@Hd2PQ00$N! zee!5~W-prC4%%l&)cWIPDebtQ_MYocGtPj8c9ydXH3X=N^+2vXa~$+g$|LLu$wkbN z3TVs@M{ECZ4=pF9Q9}?vzY=Ga`O7{x&6<8Af+LAi(KuALKey+zNJ<5ibQnNaKm_Op z1SgjvNYP=(Lrz8o0lHW>8RvQqxJhAVrU1~@aEK>Xv9L8pGvYJw z%|N0g-a)%4*>~{`6I`wa34z@k~9K11W=^K+u z%1km}!zmT302*Awr@RV!`AjcJbcsL+yA3)L0*Aq{Zv2xcS^MS?drf;LZ~(8^GF&-v zb1)aHgdt(DGR_9HC^=+B$o$!^7IgC}7>QNIX_*@%7TDafO5(?pG~Hg3AMLTXP1A`7C+5JI7l&c!tP z=6Zj_Czd0`fIAG*ZZ&Vpz<^dYMu^oJAwpz4RhkfSE1k%QBt{w-^3Y@&812wRVx6Xe z0VpB$wjpZZgG_tP({Xu#q@Ip7AL=`aIoXT3F#up9*-Mo@C3~R=F`y99;lhA`6gHMU z7Bcs~lM)w8uA=@xE|s(rDDgP5C7(=j3mEi+Yg?|?Fhyw19zEj)vcp*av#Z)9!SJ~* z^%5U--eY&Ls=cg25ox|MT`eR6aapywvSwPqN!)JFuk^47zYGKl-;!hx=!NA)+!D}c zQ8yGrMgtAh|L|%!pQI^xCSHQCgmqs+>?clkmg8=76JVxLhHT`+oaZtZ%1fI|!XCmC zU$sj;Mug-f4zY&HiL4eoxXJW^t^o%Y>ELu&;{lvLzj_5-TNg9;!?H`6%;bT^Rzzbc zA)@hpsCig#sQ(;N5SJw3MT>mZ{1qb{0BnbFsG-cs=;-2ul7Phv&cz9V#IJU&{l>mdc%! zG#aEX4V=8u+un@KMBeD+z-iHeYrAvc$d`~DS8hY`6s7?YJIcj|_q$93x7Zh()iI@U zbzcLA#ioG^KNSNf@~0s3We}ShV_1OnIPegV{-#V(p*xFQK$l@*f;kJKkMc}kIIIRz z1oC;HNPiG}zDNPst3{#ItzUBW(c941K8>=t%s4p}F{)EtG^7qzx&0KPe&o?fDUl5 zr$wY_Zo&f_v#65$wwYlSm=B;y#}RB9yLLeH>cLQ=>xE3)KQIJBy@Os0Fp#ax+N--I0HRmb4ez*-PmhKY%#?yu>I0 zTWGIJPY(TVd@nk+w2!N7*OISV>}SBA+2)*88l?b=@@RCPw#2pG|0@;ffdw|T5lOl% zWW%91q%NTwI5Mg9ne~Sr0j|S(32n(ObmJB}mba4H0ZuOsv0b^}TQBeT=KE~*7Vp;- zJzDl;+V-v2rfuJR)Nr-LWsbxb$oH1*{x)ByZqCpUpv7-6||h z;Na-@`poC^{p@2N(DRPZf9zrTd}Ne#u>qRKtT-aY1oSDRD$2*M2M8%5wk#7=qB`(C z!e&Ak=!*VB7wCwr4H^l=SYmg+sF_P(q8BMA7yuq_2Lvo*ff}|&Em3x;L>hois*hlJ z-)8~}Fbi!MLP*#TA?(z_NqG^+y%(DgfY=7r087QuGTNYbk7z0&@&Bf#Vn>+wAJbIC zHV^-XpyHx^PQ?!}X(I(fB!J>gR3ISkqgsF_@bieS7z=n`07eKDhzLM9n-DeMnFdmL zi;_Hms($iz({Wdxak}hX8VfU{6>ywuA8%CgEB}@>=sM+=9pT#r!_Hxi3(r!{q#1cN&3I4 zO43i~F>uY(zr+CLDM;$CVl37b-o1Nw!s0JC(umJh|*^sOqP&-FF13!#@#|d)k$d>4R1?QBl9Pr%J0gaJ2iTHB_)62$9Nr z^ct2NXDfMqkOD%Iu^pIdZi#xC6nAHC5eaD=0`5L$z+LJxO)+7th=ZrWL4pv_4Ne50 zuk5~~AU>GMAC25WO5dkfRiB;Ae3O9?bqqUqJ$k_@n1UO>xl|B{x|2h5;i~_Cjs5Gp zW9;{Hh_T0(EXluugC0_YKB+rb)jBq4NwT%IjYvre6&F_|*gMr8Y2Nx&`^#1bVgZaY z;(&FqHCPOR0h@fRXgiCiu=z7)Is`cBPy#k_(I8CPl$b6ThW;uGB3fcakcxy{D5hwIu`?}E9qK27ST3vdcV)7(XZLGm zZvkE)XjDKHx)nP*a2%Jmwy+btb5!Be5}rSMJ03QF)tDflBdIO=pU$pk5WGNATec$MqJPI}cL8YH!KcJ+`MXYX=Y}w(MD=HSS0kh{N!#z2_=p(Tn!Be7TCV zSb{{Tx;XY&7U{%;ulpiz$T=_hkwjFT91q%#GuVIFT4D6&QG6sizPyu&!nDDT54YMu z+}1@JT0myC04qWhWBHhZgJ7^KMqc4K%j`852}+r86#ak5-pIsPg3`c3;Bm2;3WVzP z)4;2rtVm`rlxm?CkyAbcTt()*=aHGt%PGSG2#U;PUb2>ys3ATzmFXVdJO%w=M0dzZuVO<8+lzpLz0@_RQS) zWt{(#7neBs#dz-jI*vURBGRR3BOs=0^~0qtrr;M&7XO&f7ssS8Ugs;-F##9-@06|w zSdQh0b&Rb@+T8`eRH7Fbu_&eSFD}le`k}X8^D4&p(Wl#!58lZ+#W9VHX}|r36SlP9 z?tA^h%Q(GoO}@bp-?3|j9s1_CxxOl2e(`bb&d;w90F0$+@A>ix+OC8r2I4B-J%yHK*EN)p$SEeuh<=YX1rlz{tH>j{?vP z3s0pD0e#R8m~5`ZMn*Fc3>4vCLE|@Dxh_&BMi1T%U5W?G0jL8iO*~llHy88Mn*rC? zpsN(WgRWAg-J$D`emprck#84Id0kRqqWYfkOX>!y2zn=tbC3h}@6V*WGk}XYnzKQp zb?Kmu7x`h}uTT|5nsvn6Ri{XW&0Aw|X0aJHhi%1ujaU{gt;W07S*Z{%=2;>1n7ohB zo|_gS&Lp~Si!^16O4g_VGtH+!O6HyL$lM-*2Fsf>rg6M2k##lXU;Eja=$|tI(>Khb zOChzoIw#0-Oo5joNI`=-qb0q#i55400kM5G)4|R zUn}exVW>Yi5R#OVCZczIdLnd|^YrSNP-$wqJ|L^WBpP2;wO)^DXiId3xqi zviPz1NiT0dPo~qp@t>~17f`mpcp`B1fnojZ#p8bc$nB|hQZw%RliPk&Z}~*Lb?y*= zdiIxo_=|^aw*i}7IQKl1r2ON^?c0a4xq3Sf`h{Wf?C<^UInUbu?8`6zl_SqhFa0m? zcr_P(?hCg(>)h?<^1ngvE$5!w|GmV^5CBUxyaekoRc)4qIU1XCGAO@DgtpcuXY04H z_Hjl|v!+(A8Mf?M8G;e}^J-;z4O&DO5UqciyGblz;$%Q&!r1b#dce6#H~;;=nocHv z;nM2v{ctxQMj%-Bn~xHm5Sjq3svDky!FlR0n!l`{{h|xcKJvUb4yT>S7yjpg$D(-g zu!m4Pn0^m%g%}LJ_SSN1_wG|(_OQDdNKFh~VOq}&Fad=hP9yiQ4w5kjj~kEp zEk4CSVK?N3V{T@kc$|YsjIxKwDiYfee{;wZPlsxc4|otc1?}~hUl%nG2xZt^`gYxB zCxK=rN(emIm;F?{1}(P~Fg1cgbhTY-1WmV>T!y?AGBIMN%!v1rZaHc~6IJk(A7&>T z1I@(MClTyG4u*|``G61zK^AJLcv&KwH0de`{L%E~?%lhKPKJTf6jI5cS3NauO;t(b zuDgidT7hR+5!`z`JqZDaW0rk5dpg{iwMAUZ0_cWffJ;bOTn-DU3B(jP3TyhOio8JUAGcGTvJ)1;&fc>Q%u+tRO^xB{-EH#R@j1eFvfxp{zz*biXwn zt=2@FB3O;2=w8(_#!G&6qedd|6Gx)lri_$@s@)k5#jlqs{j?jKAd6=>R79Y-`6MzA zZKBCch0a_YH&h`hDHmBr+r&zu_Yz8p8t4G#fi2r0(RfhCsFdS@STZ|4BXa5o@6Gs|+ygZ|_pTsa%B4f+>+Hg;R9HyUx&g#aR2m$` z*~umyZx+h?vG+xgnW3~sC2i)N7YwJ5D&oJL*Zn>KBk}T20-Vs{XfqoPAi&ehQ^u#4 zr;M|l1dCr$yD2urYahfK8irXt2v{ir8^CMEzOp&f(C7A- zh7PBTSE8fYQ?`FUnc{%3o%an7E3ox$g|k8U&hS{Iylb{jZ;j}L_jRL>J>z2^;!dvx z>^d$BM+W65exdJnzcNQ&{@Z0@!(uI9U3d*Z9?JfVd|GusB66wtFh=bNN7l3Q>M$Z; z6-HbLNH%ylQZOtc44RmG0n|syVXY(5ZJrDv2>GMA-;$aNVUIDa7~F}VsoPYLrcZKa z2Z*O^5RFf<^!#jX7!UQ2@GQ{QL!@E{Fr1H<2$mk)aeJCo0p{?FAY zOvo(+8@ecKN|Ye>dAUcwxS(4=rG#L(VsI2yM&_Jg2!*;p0K7xRuv%)dKNNA(02ZkS zH#BxK6BSN>J`d9hBL}Hh#7G|>aq;m6J41ADR3jIDytk`Vr&QordBVgCn6`W&y2QPw zoWR+x0>9CQ!e9c1Lkz(2FuP8@vfEM(_-VNnyFR$x@56{A+OLys87^?*aHG(;Yn7aA zl>?SNCzxs9d*gL578Q_mR#ZU;y6h6|l2}U4isGkyS5dKQc3_P2M})O1nyUczWLN+p znpkuC3eM7VvKP4=1yfmjg`CyWx;R^tA|U`bhrz+y2M_CTyVt3?)RsP|<~``Pak6Wb zC*k(~`^<=wsKwW#DInHC(KB;1LmcH4*O-f0n0|plC!pfh5mDE|K;VLx&!%nF9T2L! zj}nllEaprS=*(eOJAf!}V^e@}JuYE%Cr0%)rFhq-{9xWtO_n>S$c z%ucPAn&cE4q&Al`*StxSHtSI^BYb9Ir0*(4BuM0e2$HoqN1IfKZ1)g18}oR42e+5cH99B6O3fCI5dgbsRxm$59^^05zD3sl`WwnItAg3MS-D zH?PNjz5+@V7En3>bPsAnX1r(s$M>@IyfI|R1dn7Y(QJr^id+I<%#x1QgR^m>N&)>< zd(XYeV^Fo<0#Xj)`HCq@AvhHj6|J)^#Vbf+^Zq6xhyXV1*UP_=-LCum#siPx8v)WR zH%QZ*5w$EgYJvJv7AzrBQz+n2Q8B3MIsG;3Sh6_N^em)FCh+X(NHIi_8P2WcUX7^8 z32v+!?pGpa&cxGdX*1o^JPaE!{~nEF?L5kk5*}+b3(Ty*&eWr_(j0t3c!d^{4GMxG zs00;EdHGX8TVN1jA(~|l)!o{q3zz6M^V(j|S#ulu0T?-TO8Yf}=loL%NfrO-Q2oMT zkL`j=c}00*N}nN!;(@QDps}J@8Y7_*;4nD1y>pc%DDa=3fGYl=5B+KhF9P&Rpp+Y@ z{1#)So2dn$aw}~LnMmL5ea|{3Dm>r!tadx^X7w#DL)SRAmy9kmZl=DV_`BRJ($e^8 z1jE)~V@gS1Th*REdI2(YLVM$vK2>b#-<85ilGs?TD;z7MWf!P5Cl9Bi&@__ar9<-l zVQYgLGa&P9tOpf!71#K**T}d>44(OIG_vLjc|{}@0Sr*POc83Qul>@;ZY9AIYcE=3 zb5o-alj}@`&#mOeRK6^&o!+5LX1HFT*v`CyFU=l9DOp9N7FD+Si2FJ7wQP0sYY9St z&##wVY0Qzeup>*Mo2fg(hO=ƣ(KBr--9(ap32W?igjyk_UMN2b)yNKy|%U04@u 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


biv&0L*o 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%0A@XrPu4VV@#18TC}wc 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 Date: Sat, 27 Jul 2024 11:32:36 +0200 Subject: [PATCH 096/594] gipy: fix for wasm code --- apps/gipy/pkg/gps.d.ts | 4 ++-- apps/gipy/pkg/gps.js | 16 ++++++++-------- apps/gipy/pkg/gps_bg.wasm | Bin 750859 -> 752019 bytes apps/gipy/pkg/gps_bg.wasm.d.ts | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/apps/gipy/pkg/gps.d.ts b/apps/gipy/pkg/gps.d.ts index ff6b5360a..ebf3c8456 100644 --- a/apps/gipy/pkg/gps.d.ts +++ b/apps/gipy/pkg/gps.d.ts @@ -80,11 +80,11 @@ export interface InitOutput { readonly __wbindgen_malloc: (a: number) => number; readonly __wbindgen_realloc: (a: number, b: number, c: number) => number; readonly __wbindgen_export_2: WebAssembly.Table; - readonly _dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__hc9126e38b2d002d3: (a: number, b: number, c: number) => void; + readonly wasm_bindgen__convert__closures__invoke1_mut__h175ee3b9ff4e5b4c: (a: number, b: number, c: number) => void; readonly __wbindgen_add_to_stack_pointer: (a: number) => number; readonly __wbindgen_free: (a: number, b: number) => void; readonly __wbindgen_exn_store: (a: number) => void; - readonly wasm_bindgen__convert__closures__invoke2_mut__h56f743924f545497: (a: number, b: number, c: number, d: number) => void; + readonly wasm_bindgen__convert__closures__invoke2_mut__h41622a4cb7018e76: (a: number, b: number, c: number, d: number) => void; } export type SyncInitInput = BufferSource | WebAssembly.Module; diff --git a/apps/gipy/pkg/gps.js b/apps/gipy/pkg/gps.js index 7416d3409..4c708aa83 100644 --- a/apps/gipy/pkg/gps.js +++ b/apps/gipy/pkg/gps.js @@ -205,7 +205,7 @@ function makeMutClosure(arg0, arg1, dtor, f) { return real; } function __wbg_adapter_24(arg0, arg1, arg2) { - wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__hc9126e38b2d002d3(arg0, arg1, addHeapObject(arg2)); + wasm.wasm_bindgen__convert__closures__invoke1_mut__h175ee3b9ff4e5b4c(arg0, arg1, addHeapObject(arg2)); } function _assertClass(instance, klass) { @@ -389,7 +389,7 @@ function handleError(f, args) { } } function __wbg_adapter_86(arg0, arg1, arg2, arg3) { - wasm.wasm_bindgen__convert__closures__invoke2_mut__h56f743924f545497(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3)); + wasm.wasm_bindgen__convert__closures__invoke2_mut__h41622a4cb7018e76(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3)); } /** @@ -665,6 +665,10 @@ function getImports() { const ret = new Uint8Array(getObject(arg0)); return addHeapObject(ret); }; + imports.wbg.__wbg_stringify_d6471d300ded9b68 = function() { return handleError(function (arg0) { + const ret = JSON.stringify(getObject(arg0)); + return addHeapObject(ret); + }, arguments) }; imports.wbg.__wbg_get_765201544a2b6869 = function() { return handleError(function (arg0, arg1) { const ret = Reflect.get(getObject(arg0), getObject(arg1)); return addHeapObject(ret); @@ -677,10 +681,6 @@ function getImports() { const ret = Reflect.set(getObject(arg0), getObject(arg1), getObject(arg2)); return ret; }, arguments) }; - imports.wbg.__wbg_stringify_d6471d300ded9b68 = function() { return handleError(function (arg0) { - const ret = JSON.stringify(getObject(arg0)); - return addHeapObject(ret); - }, arguments) }; imports.wbg.__wbindgen_debug_string = function(arg0, arg1) { const ret = debugString(getObject(arg1)); const ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); @@ -695,8 +695,8 @@ function getImports() { const ret = wasm.memory; return addHeapObject(ret); }; - imports.wbg.__wbindgen_closure_wrapper2340 = function(arg0, arg1, arg2) { - const ret = makeMutClosure(arg0, arg1, 300, __wbg_adapter_24); + imports.wbg.__wbindgen_closure_wrapper2378 = function(arg0, arg1, arg2) { + const ret = makeMutClosure(arg0, arg1, 302, __wbg_adapter_24); return addHeapObject(ret); }; diff --git a/apps/gipy/pkg/gps_bg.wasm b/apps/gipy/pkg/gps_bg.wasm index 9a0c281629d3e47e62b384363b72239587e8ab7a..b199813e7bb5cbc5e61b75369be77e605ce4b777 100644 GIT binary patch literal 752019 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�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�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�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±*w($-NBuNFgB7-WxNQzI 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

l}r^%U#l_}PuaX_dmuHemdkA^cYHP&l16%E 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�kr5C6^iH^;C1 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 UE^gM4wiKoDfGO$XcHW-<14GiKJOBUy literal 750859 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 z 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 Date: Sat, 27 Jul 2024 11:37:39 +0200 Subject: [PATCH 097/594] gipy: new version support for large paths (grid sizes > 65k) --- apps/gipy/ChangeLog | 3 +++ apps/gipy/metadata.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/gipy/ChangeLog b/apps/gipy/ChangeLog index 992c69a93..6e72fee81 100644 --- a/apps/gipy/ChangeLog +++ b/apps/gipy/ChangeLog @@ -135,4 +135,7 @@ * Fix for files converted from maps2gpx : path was not reduced in size correctly * Experimental ski mode : have a ski slopes map * Fix for path projection display when lost and zoomed out + 0.25: Minor code improvements + +0.26: Support for large paths (grid sizes > 65k) diff --git a/apps/gipy/metadata.json b/apps/gipy/metadata.json index 5993e3ee6..5819f2d4c 100644 --- a/apps/gipy/metadata.json +++ b/apps/gipy/metadata.json @@ -2,7 +2,7 @@ "id": "gipy", "name": "Gipy", "shortName": "Gipy", - "version": "0.25", + "version": "0.26", "description": "Follow gpx files using the gps. Don't get lost in your bike trips and hikes.", "allow_emulator":false, "icon": "gipy.png", From cac7374021939c6b658b807d4299428cf6d9afa8 Mon Sep 17 00:00:00 2001 From: frederic wagner Date: Sat, 27 Jul 2024 13:24:03 +0200 Subject: [PATCH 098/594] gipy: ok for release --- apps/gipy/app.js | 26 ++++++++++---------------- apps/gipy/pkg/gps.d.ts | 2 +- apps/gipy/pkg/gps.js | 4 ++-- apps/gipy/pkg/gps_bg.wasm | Bin 752019 -> 752369 bytes apps/gipy/pkg/gps_bg.wasm.d.ts | 2 +- 5 files changed, 14 insertions(+), 20 deletions(-) diff --git a/apps/gipy/app.js b/apps/gipy/app.js index 87b5c5cb7..566975a3e 100644 --- a/apps/gipy/app.js +++ b/apps/gipy/app.js @@ -105,30 +105,30 @@ class TilesOffsets { offset += 2; let bytes = (type_size==24)?3:2; - let buffer = E.toArrayBuffer(s.read(filename, offset, bytes_per_tile_index*non_empty_tiles_number+bytes*non_empty_tiles_number)); + let buffer = E.toArrayBuffer(s.read(filename, offset, bytes_per_tile_index*non_empty_tiles_number)); if (bytes_per_tile_index == 2) { this.non_empty_tiles = Uint16Array(buffer, 0, non_empty_tiles_number); } else { this.non_empty_tiles = Uint24Array(buffer, 0, non_empty_tiles_number); } offset += bytes_per_tile_index * non_empty_tiles_number; + let tile_buffer = E.toArrayBuffer(s.read(filename, offset, bytes*non_empty_tiles_number)); if (type_size == 24) { this.non_empty_tiles_ends = Uint24Array( - buffer, - 2*non_empty_tiles_number, + tile_buffer, + 0, non_empty_tiles_number ); - offset += 3 * non_empty_tiles_number; } else if (type_size == 16) { this.non_empty_tiles_ends = Uint16Array( - buffer, - 2*non_empty_tiles_number, + tile_buffer, + 0, non_empty_tiles_number ); - offset += 2 * non_empty_tiles_number; } else { throw "unknown size"; } + offset += bytes * non_empty_tiles_number; return [this, offset]; } tile_start_offset(tile_index) { @@ -183,10 +183,7 @@ class Map { offset += 8; // tiles offsets - let bytes_per_tile_index = 2; - if (this.grid_size[0] * this.grid_size[1]) >= 65536 { - bytes_per_tile_index = 3; - } + let bytes_per_tile_index = (this.grid_size[0] * this.grid_size[1] > 65536)?3:2; let res = new TilesOffsets(filename, offset, bytes_per_tile_index); this.tiles_offsets = res[0]; offset = res[1]; @@ -322,11 +319,8 @@ class Interests { this.side = side_array[0]; offset += 8; - let bytes_per_tile_index = 2; - if (this.grid_size[0] * this.grid_size[1]) >= 65536 { - bytes_per_tile_index = 3; - } - let res = new TilesOffsets(filename, offset); + let bytes_per_tile_index = (this.grid_size[0] * this.grid_size[1] > 65536)?3:2; + let res = new TilesOffsets(filename, offset, bytes_per_tile_index); offset = res[1]; this.offsets = res[0]; let end = this.offsets.end_offset(); diff --git a/apps/gipy/pkg/gps.d.ts b/apps/gipy/pkg/gps.d.ts index 2df09dc97..ebf3c8456 100644 --- a/apps/gipy/pkg/gps.d.ts +++ b/apps/gipy/pkg/gps.d.ts @@ -1,5 +1,5 @@ /* tslint:disable */ - +/* eslint-disable */ /** * @param {Gps} gps */ diff --git a/apps/gipy/pkg/gps.js b/apps/gipy/pkg/gps.js index 4c708aa83..d98a5c05b 100644 --- a/apps/gipy/pkg/gps.js +++ b/apps/gipy/pkg/gps.js @@ -695,8 +695,8 @@ function getImports() { const ret = wasm.memory; return addHeapObject(ret); }; - imports.wbg.__wbindgen_closure_wrapper2378 = function(arg0, arg1, arg2) { - const ret = makeMutClosure(arg0, arg1, 302, __wbg_adapter_24); + imports.wbg.__wbindgen_closure_wrapper2375 = function(arg0, arg1, arg2) { + const ret = makeMutClosure(arg0, arg1, 301, __wbg_adapter_24); return addHeapObject(ret); }; diff --git a/apps/gipy/pkg/gps_bg.wasm b/apps/gipy/pkg/gps_bg.wasm index b199813e7bb5cbc5e61b75369be77e605ce4b777..cfdf4be5fceecd90c8c952de852a6d0f3666d33f 100644 GIT binary patch delta 101722 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 K>ANv{;r{^?-Gs6L delta 102950 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⁢LD+xx5J3_5 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%0D| diff --git a/apps/gipy/pkg/gps_bg.wasm.d.ts b/apps/gipy/pkg/gps_bg.wasm.d.ts index b41044140..b6f04ad71 100644 --- a/apps/gipy/pkg/gps_bg.wasm.d.ts +++ b/apps/gipy/pkg/gps_bg.wasm.d.ts @@ -1,5 +1,5 @@ /* tslint:disable */ - +/* eslint-disable */ export const memory: WebAssembly.Memory; export function __wbg_gps_free(a: number): void; export function disable_elevation(a: number): void; From c135bea7f721cb39d38590b5ec5d19bcb7f945ff Mon Sep 17 00:00:00 2001 From: Erik Andresen Date: Wed, 31 Jul 2024 22:25:58 +0200 Subject: [PATCH 099/594] gipy: track on openstmap add option to plot openstmap if installed --- apps/gipy/app.js | 56 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/apps/gipy/app.js b/apps/gipy/app.js index 4bd1adbeb..03e2719ca 100644 --- a/apps/gipy/app.js +++ b/apps/gipy/app.js @@ -1474,6 +1474,62 @@ function start_gipy(path, maps, interests, heights) { } }, }; + try { + // plot openstmap option if installed + const osm = require("openstmap"); + menu[/*LANG*/"Plot OpenStMap"] = function() { + E.showMenu(); // remove menu + + // compute min/max coordinates + let minLat = 90; + let maxLat = -90; + let minLong = 180; + let maxLong = -180; + for(let i=0; imaxLat) maxLat=point.lat; if(point.latmaxLong) maxLong=point.lon; if(point.lon scaleY ? scaleX : scaleY)*1.1); // add 10% margin + osm.lat = (minLat+maxLat)/2.0; + osm.lon = (minLong+maxLong)/2.0; + osm.draw(); + + // draw track + g.setColor("#f09"); + for(let i=0; i Date: Fri, 2 Aug 2024 13:11:12 +0200 Subject: [PATCH 100/594] fix(measuretime): make sure to draw correct time number on overlapping-day hours --- apps/measuretime/measuretime.app.js | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/apps/measuretime/measuretime.app.js b/apps/measuretime/measuretime.app.js index 97b56c710..49f5f2835 100644 --- a/apps/measuretime/measuretime.app.js +++ b/apps/measuretime/measuretime.app.js @@ -78,6 +78,19 @@ return lineEndFull - 5; }; + let drawHourString = function(hour, yLines) { + var hourForDrawing = 0; + if (hour < 0) { + // a negative hour => (+ and - = -) + hourForDrawing = 24 + hour; + } else if (hour >= 24) { + hourForDrawing = hour - 24; + } else { + hourForDrawing = hour; + } + g.drawString(hourForDrawing, hourStringXOffset(hourForDrawing), yLines, true); + }; + let drawTime = function () { g.clear(); var d = new Date(); @@ -101,12 +114,12 @@ switch (yTopLines - 88 + mins) { case -60: lineEnd = lineEndFull; - g.drawString(d.getHours()-1, hourStringXOffset(d.getHours()-1), yTopLines, true); + drawHourString(d.getHours() - 1, yTopLines); break; case 0: case 60: lineEnd = lineEndFull; - g.drawString(d.getHours(), hourStringXOffset(d.getHours()), yTopLines, true); + drawHourString(d.getHours(), yTopLines); break; case 45: case -45: @@ -136,11 +149,11 @@ case 0: case 60: lineEnd = lineEndFull; - g.drawString(d.getHours() + 1, hourStringXOffset(d.getHours()+1), yBottomLines, true); + drawHourString(d.getHours() + 1, yBottomLines);; break; case 120: lineEnd = lineEndFull; - g.drawString(d.getHours() + 2, hourStringXOffset(d.getHours()+2), yBottomLines, true); + drawHourString(d.getHours() + 2, yBottomLines); break; case 15: case 75: From 2b751ede2ffad170d71c6af2666d1b73ab22c4b1 Mon Sep 17 00:00:00 2001 From: Bernhard Date: Fri, 2 Aug 2024 13:15:55 +0200 Subject: [PATCH 101/594] fix(measuretime): remove double semicolon --- apps/measuretime/measuretime.app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/measuretime/measuretime.app.js b/apps/measuretime/measuretime.app.js index 49f5f2835..419916416 100644 --- a/apps/measuretime/measuretime.app.js +++ b/apps/measuretime/measuretime.app.js @@ -149,7 +149,7 @@ case 0: case 60: lineEnd = lineEndFull; - drawHourString(d.getHours() + 1, yBottomLines);; + drawHourString(d.getHours() + 1, yBottomLines); break; case 120: lineEnd = lineEndFull; From 5bb2dc87a8e2d728e994bb3cb42a86f81bf6c47d Mon Sep 17 00:00:00 2001 From: Bernhard Date: Fri, 2 Aug 2024 16:02:08 +0200 Subject: [PATCH 102/594] fix(measuretime): update changelog and metadata file --- apps/measuretime/ChangeLog | 1 + apps/measuretime/metadata.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/measuretime/ChangeLog b/apps/measuretime/ChangeLog index d0ac21aac..886e92f22 100644 --- a/apps/measuretime/ChangeLog +++ b/apps/measuretime/ChangeLog @@ -1,2 +1,3 @@ 0.1: Initial release 0.2: Draw line for 3d effect, fix number alignment +0.3: Fix day-end overflowing hour calculation diff --git a/apps/measuretime/metadata.json b/apps/measuretime/metadata.json index 6ba022dc0..e25fe1ef6 100644 --- a/apps/measuretime/metadata.json +++ b/apps/measuretime/metadata.json @@ -1,7 +1,7 @@ { "id": "measuretime", "name": "Measure Time", - "version": "0.2", + "version": "0.3", "description": "Measure Time in a fancy way.", "icon": "measuretime_icon.png", "screenshots": [ From 0918ece048d9510d14489ba2d160c4baf990e002 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Fri, 2 Aug 2024 15:47:42 +0100 Subject: [PATCH 103/594] clkinfostopw 0.10: Timer ClockInfo now uses +- icons, and changes timer from 'T-5 min' to just '5 min' to aid readability --- apps/clkinfostopw/ChangeLog | 1 + apps/clkinfostopw/clkinfo.js | 2 +- apps/clkinfostopw/clkinfo.ts | 2 +- apps/clkinfostopw/metadata.json | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/clkinfostopw/ChangeLog b/apps/clkinfostopw/ChangeLog index 20742562f..bca387666 100644 --- a/apps/clkinfostopw/ChangeLog +++ b/apps/clkinfostopw/ChangeLog @@ -1,3 +1,4 @@ 0.01: New clkinfo! 0.02: Added format option, reduced battery usage 0.03: Hardcode colon-format, show milliseconds for the first minute +0.04: Change clockinfo name from timer->Timer, now uses same menu with smpltmr \ No newline at end of file diff --git a/apps/clkinfostopw/clkinfo.js b/apps/clkinfostopw/clkinfo.js index fbbe80a55..9ba4c4dc4 100644 --- a/apps/clkinfostopw/clkinfo.js +++ b/apps/clkinfostopw/clkinfo.js @@ -40,7 +40,7 @@ }; var img = function () { return atob("GBiBAAAAAAB+AAB+AAAAAAB+AAH/sAOB8AcA4A4YcAwYMBgYGBgYGBg8GBg8GBgYGBgAGAwAMA4AcAcA4AOBwAH/gAB+AAAAAAAAAA=="); }; return { - name: "timer", + name: "Timer", img: img(), items: [ { diff --git a/apps/clkinfostopw/clkinfo.ts b/apps/clkinfostopw/clkinfo.ts index f0c2a6ccb..2d14054c6 100644 --- a/apps/clkinfostopw/clkinfo.ts +++ b/apps/clkinfostopw/clkinfo.ts @@ -48,7 +48,7 @@ const img = () => atob("GBiBAAAAAAB+AAB+AAAAAAB+AAH/sAOB8AcA4A4YcAwYMBgYGBgYGBg8GBg8GBgYGBgAGAwAMA4AcAcA4AOBwAH/gAB+AAAAAAAAAA=="); return { - name: "timer", + name: "Timer", img: img(), items: [ { diff --git a/apps/clkinfostopw/metadata.json b/apps/clkinfostopw/metadata.json index f33f61dbb..b785f5c96 100644 --- a/apps/clkinfostopw/metadata.json +++ b/apps/clkinfostopw/metadata.json @@ -1,7 +1,7 @@ { "id": "clkinfostopw", "name": "Stop Watch Clockinfo", - "version":"0.03", + "version":"0.04", "description": "A simple stopwatch, shown via clockinfo", "icon": "app.png", "type": "clkinfo", From 3d1dfd3fb3d157fb861a7e0a6fc7bf964cc57afb Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Fri, 2 Aug 2024 15:47:49 +0100 Subject: [PATCH 104/594] update lint --- apps/lint_exemptions.js | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/apps/lint_exemptions.js b/apps/lint_exemptions.js index e5a2170bd..3b7da1a20 100644 --- a/apps/lint_exemptions.js +++ b/apps/lint_exemptions.js @@ -196,12 +196,6 @@ module.exports = { "no-undef" ] }, - "apps/sixths/sixths.app.js": { - "hash": "2a4676828bdf78df052df402de34e6f1abd1c847ebe0d193fc789cd6e9dd0e5c", - "rules": [ - "no-undef" - ] - }, "apps/scribble/app.js": { "hash": "6d13abd27bab8009a6bdabe1df2df394bc14aac20c68f67e8f8b085fa6b427cd", "rules": [ @@ -1249,12 +1243,6 @@ module.exports = { "no-undef" ] }, - "apps/accelrec/app.js": { - "hash": "b5369a60afc8f360f0b33f71080eb3f5d09a1bf3703acfcf07cd80dd19f1997d", - "rules": [ - "no-undef" - ] - }, "apps/BLEcontroller/app-joy.js": { "hash": "e4f34bb1bc11b52c3d7a1c537a140b0e23ccef82694dcd602cb517a8ba342898", "rules": [ From 8d602d26692bea035495c23061c16fc6319d2adf Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Fri, 2 Aug 2024 15:48:02 +0100 Subject: [PATCH 105/594] smpltmr 0.10: Timer ClockInfo now uses +- icons, and changes timer from 'T-5 min' to just '5 min' to aid readability --- apps/smpltmr/ChangeLog | 1 + apps/smpltmr/clkinfo.js | 4 ++-- apps/smpltmr/metadata.json | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/smpltmr/ChangeLog b/apps/smpltmr/ChangeLog index 2c073ff43..c3f069428 100644 --- a/apps/smpltmr/ChangeLog +++ b/apps/smpltmr/ChangeLog @@ -7,3 +7,4 @@ 0.07: Update clock_info to avoid a redraw 0.08: Timer ClockInfo now updates once a minute 0.09: Timer ClockInfo resets to timer menu when blurred +0.10: Timer ClockInfo now uses +- icons, and changes timer from 'T-5 min' to just '5 min' to aid readability \ No newline at end of file diff --git a/apps/smpltmr/clkinfo.js b/apps/smpltmr/clkinfo.js index a7a6bf71b..6fc2cd265 100644 --- a/apps/smpltmr/clkinfo.js +++ b/apps/smpltmr/clkinfo.js @@ -28,7 +28,7 @@ var min = getAlarmMinutes(); if(min < 0) return "OFF"; - return "T-" + String(min)+ " min"; + return min + " min"; } function increaseAlarm(t){ @@ -80,7 +80,7 @@ offsets.forEach((o, i) => { smpltmrItems.items = smpltmrItems.items.concat({ name: null, - get: () => ({ text: (o > 0 ? "+" : "") + o + " min.", img: smpltmrItems.img }), + get: () => ({ text: (o > 0 ? "+" : "") + o + " min", img: (o>0)?atob("GBiBAAB+AAB+AAAYAAAYAAB+AA3/sA+B8A4AcAwAMBgYGBgYGDAYDDAYDDH/jDH/jDAYDDAYDBgYGBgYGAwAMA4AcAeB4AH/gAB+AA=="):atob("GBiBAAB+AAB+AAAYAAAYAAB+AA3/sA+B8A4AcAwAMBgAGBgAGDAADDAADDH/jDH/jDAADDAADBgAGBgAGAwAMA4AcAeB4AH/gAB+AA==") }), show: function() { }, hide: function() { }, blur: restoreMainItem, diff --git a/apps/smpltmr/metadata.json b/apps/smpltmr/metadata.json index 98affcfe6..2f33f07b9 100644 --- a/apps/smpltmr/metadata.json +++ b/apps/smpltmr/metadata.json @@ -2,7 +2,7 @@ "id": "smpltmr", "name": "Simple Timer", "shortName": "Simple Timer", - "version": "0.09", + "version": "0.10", "description": "A very simple app to start a timer.", "icon": "app.png", "tags": "tool,alarm,timer,clkinfo", From e069a3870cdd56e11d4faf9d824a0b29d737b625 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Fri, 2 Aug 2024 15:48:15 +0100 Subject: [PATCH 106/594] twotwoclock 0.02: Clockinfos now save under correct name, and wrap correctly to >1 line --- apps/twotwoclock/ChangeLog | 1 + apps/twotwoclock/app.js | 8 ++++---- apps/twotwoclock/metadata.json | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/apps/twotwoclock/ChangeLog b/apps/twotwoclock/ChangeLog index 09953593e..d3275c0e8 100644 --- a/apps/twotwoclock/ChangeLog +++ b/apps/twotwoclock/ChangeLog @@ -1 +1,2 @@ 0.01: New Clock! +0.02: Clockinfos now save under correct name, and wrap correctly to >1 line \ No newline at end of file diff --git a/apps/twotwoclock/app.js b/apps/twotwoclock/app.js index 57be691e1..b2d5ea9fb 100644 --- a/apps/twotwoclock/app.js +++ b/apps/twotwoclock/app.js @@ -134,8 +134,8 @@ for (var i=0;i<10;i++) if (g.stringWidth(txt) > options.w) // if too big, smaller font g.setFont("LECO1976Regular14"); if (g.stringWidth(txt) > options.w) {// if still too big, split to 2 lines - var l = g.wrapString(txt, options.w); - txt = l.slice(0,2).join("\n") + (l.length>2)?"...":""; + var l = g.wrapString(txt, options.w-4); + txt = l.slice(0,2).join("\n") + ((l.length>2)?"...":""); } var x = options.x+options.w/2, y = options.y+54; g.setColor(g.theme.bg).drawString(txt, x-2, y). // draw the text background @@ -147,12 +147,12 @@ for (var i=0;i<10;i++) }; clockInfoMenuA = require("clock_info").addInteractive(clockInfoItems, { - app:"pebblepp", + app:"twotwoclock", x : g.getWidth()-clockInfoW, y: 0, w: clockInfoW, h:clockInfoH, draw : clockInfoDraw }); clockInfoMenuB = require("clock_info").addInteractive(clockInfoItems, { - app:"pebblepp", + app:"twotwoclock", x : g.getWidth()-clockInfoW, y: clockInfoH, w: clockInfoW, h:clockInfoH, draw : clockInfoDraw }); diff --git a/apps/twotwoclock/metadata.json b/apps/twotwoclock/metadata.json index ebcba539c..ae3b958ef 100644 --- a/apps/twotwoclock/metadata.json +++ b/apps/twotwoclock/metadata.json @@ -1,7 +1,7 @@ { "id": "twotwoclock", "name": "TwoTwo Clock", "shortName":"22 Clock", - "version":"0.01", + "version":"0.02", "description": "A clock with the time split over two lines, with custom backgrounds and two ClockInfos", "icon": "icon.png", "type": "clock", From 8c5eceb7c31e98e41f750bc54bfdc3dbd677734b Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Fri, 2 Aug 2024 16:07:48 +0100 Subject: [PATCH 107/594] Revert "clkinfostopw renaming timer->Timer" This just gets in the way of simpltmr, but maybe we should consider renaming to "stopw" or similar - or maybe it doesn't need its own category at all This reverts commit 0918ece048d9510d14489ba2d160c4baf990e002. --- apps/clkinfostopw/ChangeLog | 1 - apps/clkinfostopw/clkinfo.js | 2 +- apps/clkinfostopw/clkinfo.ts | 2 +- apps/clkinfostopw/metadata.json | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/apps/clkinfostopw/ChangeLog b/apps/clkinfostopw/ChangeLog index bca387666..20742562f 100644 --- a/apps/clkinfostopw/ChangeLog +++ b/apps/clkinfostopw/ChangeLog @@ -1,4 +1,3 @@ 0.01: New clkinfo! 0.02: Added format option, reduced battery usage 0.03: Hardcode colon-format, show milliseconds for the first minute -0.04: Change clockinfo name from timer->Timer, now uses same menu with smpltmr \ No newline at end of file diff --git a/apps/clkinfostopw/clkinfo.js b/apps/clkinfostopw/clkinfo.js index 9ba4c4dc4..fbbe80a55 100644 --- a/apps/clkinfostopw/clkinfo.js +++ b/apps/clkinfostopw/clkinfo.js @@ -40,7 +40,7 @@ }; var img = function () { return atob("GBiBAAAAAAB+AAB+AAAAAAB+AAH/sAOB8AcA4A4YcAwYMBgYGBgYGBg8GBg8GBgYGBgAGAwAMA4AcAcA4AOBwAH/gAB+AAAAAAAAAA=="); }; return { - name: "Timer", + name: "timer", img: img(), items: [ { diff --git a/apps/clkinfostopw/clkinfo.ts b/apps/clkinfostopw/clkinfo.ts index 2d14054c6..f0c2a6ccb 100644 --- a/apps/clkinfostopw/clkinfo.ts +++ b/apps/clkinfostopw/clkinfo.ts @@ -48,7 +48,7 @@ const img = () => atob("GBiBAAAAAAB+AAB+AAAAAAB+AAH/sAOB8AcA4A4YcAwYMBgYGBgYGBg8GBg8GBgYGBgAGAwAMA4AcAcA4AOBwAH/gAB+AAAAAAAAAA=="); return { - name: "Timer", + name: "timer", img: img(), items: [ { diff --git a/apps/clkinfostopw/metadata.json b/apps/clkinfostopw/metadata.json index b785f5c96..f33f61dbb 100644 --- a/apps/clkinfostopw/metadata.json +++ b/apps/clkinfostopw/metadata.json @@ -1,7 +1,7 @@ { "id": "clkinfostopw", "name": "Stop Watch Clockinfo", - "version":"0.04", + "version":"0.03", "description": "A simple stopwatch, shown via clockinfo", "icon": "app.png", "type": "clkinfo", From af61e6eff5053b28a17254958b583ce2f139a580 Mon Sep 17 00:00:00 2001 From: Erik Andresen Date: Fri, 2 Aug 2024 20:06:54 +0200 Subject: [PATCH 108/594] openstmap: drop widget call --- apps/gipy/app.js | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/gipy/app.js b/apps/gipy/app.js index 03e2719ca..9094191d9 100644 --- a/apps/gipy/app.js +++ b/apps/gipy/app.js @@ -1525,7 +1525,6 @@ function start_gipy(path, maps, interests, heights) { setWatch(function() { E.showMenu(menu); }, BTN1, {edge:"falling"}); - Bangle.drawWidgets(); }; } catch (ex) { // openstmap not available. From a5e37ec55617a13a0beb9b889a0fa8389da4de5f Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Fri, 2 Aug 2024 20:12:44 +0200 Subject: [PATCH 109/594] dedreckon: add a note about magnav. --- apps/dedreckon/README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/dedreckon/README.md b/apps/dedreckon/README.md index e46c6fd69..706c7f191 100644 --- a/apps/dedreckon/README.md +++ b/apps/dedreckon/README.md @@ -14,4 +14,7 @@ now). Point watch to new direction, then tap top left part of screen to indicate a turn. Map shows blue line for track from dead reckonging, and green line for -track from GPS. \ No newline at end of file +track from GPS. + +You probably want magnav installed (and calibrated) for useful +results, as it provides library with better compass. \ No newline at end of file From df89c22a006fe875e00f90543afa1cc79381cd22 Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Fri, 2 Aug 2024 14:14:39 -0700 Subject: [PATCH 111/594] Update app.js --- apps/boxclk/app.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/boxclk/app.js b/apps/boxclk/app.js index ed8a62b65..c47f700b0 100644 --- a/apps/boxclk/app.js +++ b/apps/boxclk/app.js @@ -167,8 +167,8 @@ Modules.addCached("widget_utils", function() { boxKeys.forEach((key) => { let boxConfig = boxes[key]; boxPos[key] = { - x: w * boxConfig.boxPos.x, - y: h * boxConfig.boxPos.y + let background = require("clockbg"); + Modules.addCached("widget_utils", function() { }; isDragging[key] = false; wasDragging[key] = false; From e06a8d73fbdb580e160d34fd4f21fc8b889501f6 Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Fri, 2 Aug 2024 14:21:58 -0700 Subject: [PATCH 112/594] Update app.js --- apps/8ball/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/8ball/app.js b/apps/8ball/app.js index 59f243f80..8a3ee427e 100644 --- a/apps/8ball/app.js +++ b/apps/8ball/app.js @@ -1,4 +1,4 @@ -try {keyboard = require(keyboard);} catch(e) {keyboard = null;}var keyboard = "textinput"; +var keyboard = "textinput"; var Name = ""; Bangle.setLCDTimeout(0); var menuOpen = 1; From ccee0c647d2a7b39c8708afefbdaee7faebbb118 Mon Sep 17 00:00:00 2001 From: only-meeps <151784194+only-meeps@users.noreply.github.com> Date: Fri, 2 Aug 2024 14:27:01 -0700 Subject: [PATCH 113/594] Update app.js --- apps/boxclk/app.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/apps/boxclk/app.js b/apps/boxclk/app.js index c47f700b0..73f4113c0 100644 --- a/apps/boxclk/app.js +++ b/apps/boxclk/app.js @@ -167,8 +167,6 @@ Modules.addCached("widget_utils", function() { boxKeys.forEach((key) => { let boxConfig = boxes[key]; boxPos[key] = { - let background = require("clockbg"); - Modules.addCached("widget_utils", function() { }; isDragging[key] = false; wasDragging[key] = false; From bfa9a757ddd417554b599f8b8ce92e88a7089471 Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Wed, 31 Jul 2024 17:52:56 +0100 Subject: [PATCH 114/594] slopeclockpp: avoid reusing background colour for clkinfo --- apps/slopeclockpp/app.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/slopeclockpp/app.js b/apps/slopeclockpp/app.js index 5b1d898d1..359993bc3 100644 --- a/apps/slopeclockpp/app.js +++ b/apps/slopeclockpp/app.js @@ -128,9 +128,9 @@ let clockInfoDraw = (itm, info, options) => { let texty = options.y+41; // set a cliprect to stop us drawing outside our box g.reset().setClipRect(options.x, options.y, options.x+options.w-1, options.y+options.h-1); - g.setFont("6x15").setBgColor(options.bg).setColor(options.fg).clearRect(options.x, texty-15, options.x+options.w-2, texty); + g.setFont("6x15").setBgColor(options.bg).clearRect(options.x, texty-15, options.x+options.w-2, texty); - if (options.focus) g.setColor(options.hl); + g.setColor(options.focus ? options.hl : options.fg); if (options.x < g.getWidth()/2) { // left align let x = options.x+2; if (info.img) g.clearRect(x, options.y, x+23, options.y+23).drawImage(info.img, x, options.y); @@ -150,7 +150,7 @@ let clockInfoMenu = require("clock_info").addInteractive(clockInfoItems, { // t }); let clockInfoMenu2 = require("clock_info").addInteractive(clockInfoItems, { // bottom left app:"slopeclockpp",x:0, y:115, w:50, h:40, - draw : clockInfoDraw, bg : bgColor, fg : g.theme.bg, hl : (bgColor=="#000")?"#f00"/*red*/:g.theme.fg + draw : clockInfoDraw, bg : bgColor, fg : g.theme.bg, hl : (g.theme.fg===g.toColor(bgColor))?"#f00"/*red*/:g.theme.fg }); // Show launcher when middle button pressed @@ -175,4 +175,4 @@ Bangle.loadWidgets(); if (settings.hideWidgets) require("widget_utils").swipeOn(); else setTimeout(Bangle.drawWidgets,0); draw(); -} \ No newline at end of file +} From 08e9d3439274bb7eb113ed9b205465caf55a9ea9 Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Wed, 31 Jul 2024 17:54:12 +0100 Subject: [PATCH 115/594] slopeclockpp: fix lint --- apps/slopeclockpp/app.js | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/slopeclockpp/app.js b/apps/slopeclockpp/app.js index 359993bc3..df732c1db 100644 --- a/apps/slopeclockpp/app.js +++ b/apps/slopeclockpp/app.js @@ -86,6 +86,7 @@ let draw = function() { let isAnimIn = true; let animInterval; +let minuteX; // Draw *just* the minute image let drawMinute = function() { var yo = slopeBorder + offsy + y - 2*slope*minuteX/R.w; From a6e0991065e500efca80666be61699bee405c9b6 Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Wed, 31 Jul 2024 17:54:29 +0100 Subject: [PATCH 116/594] slopeclockpp: bump version --- apps/slopeclockpp/ChangeLog | 3 ++- apps/slopeclockpp/metadata.json | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/slopeclockpp/ChangeLog b/apps/slopeclockpp/ChangeLog index 39f837386..43b457d4e 100644 --- a/apps/slopeclockpp/ChangeLog +++ b/apps/slopeclockpp/ChangeLog @@ -10,4 +10,5 @@ 0.08: Stability improvements - ensure we continue even if a flat string can't be allocated Stop ClockInfo text drawing outside the allocated area 0.09: Use clock_info module as an app -0.10: Option to hide widgets, tweak top widget width to avoid overlap with hour text at 9am \ No newline at end of file +0.10: Option to hide widgets, tweak top widget width to avoid overlap with hour text at 9am +0.11: Avoid rendering clkinfo in the same colour as the background diff --git a/apps/slopeclockpp/metadata.json b/apps/slopeclockpp/metadata.json index 086b8148f..00e0b0a77 100644 --- a/apps/slopeclockpp/metadata.json +++ b/apps/slopeclockpp/metadata.json @@ -1,6 +1,6 @@ { "id": "slopeclockpp", "name": "Slope Clock ++", - "version":"0.10", + "version":"0.11", "description": "A clock where hours and minutes are divided by a sloping line. When the minute changes, the numbers slide off the screen. This is a clone of the original Slope Clock which shows extra information and allows the colors to be selected.", "icon": "app.png", "screenshots": [{"url":"screenshot.png"}], From 9984914a91d4d06fe194d2ff980d4783c7909128 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Mon, 5 Aug 2024 10:45:41 +0100 Subject: [PATCH 117/594] Fix widget_utils breakage which caused the widget bar used with swipeOn to literally never be hidden. Was introduced as part of https://github.com/espruino/BangleApps/issues/3417#issuecomment-2120204969 --- modules/widget_utils.js | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/modules/widget_utils.js b/modules/widget_utils.js index 4e2acd296..4f9b85835 100644 --- a/modules/widget_utils.js +++ b/modules/widget_utils.js @@ -90,19 +90,17 @@ exports.swipeOn = function(autohide) { function queueDraw() { const o = exports.offset; + Bangle.appRect.y = o+24; + Bangle.appRect.h = 1 + Bangle.appRect.y2 - Bangle.appRect.y; if (o>-24) { - Bangle.appRect.y = o+24; - Bangle.appRect.h = 1 + Bangle.appRect.y2 - Bangle.appRect.y; - if (o>-24) { - Bangle.setLCDOverlay(og, 0, o, { - id:"widget_utils", - remove:()=>{ - require("widget_utils").cleanupOverlay(); - } - }); - } else { - Bangle.setLCDOverlay(undefined, {id: "widget_utils"}); - } + Bangle.setLCDOverlay(og, 0, o, { + id:"widget_utils", + remove:()=>{ + require("widget_utils").cleanupOverlay(); + } + }); + } else { + Bangle.setLCDOverlay(undefined, {id: "widget_utils"}); } } From 8de98708504bd9d46e73cae65353e1e65b51841d Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Mon, 5 Aug 2024 19:59:24 +0100 Subject: [PATCH 118/594] Revert changes from IDE --- apps/boxclk/app.js | 786 +++++++++++++++++++++++---------------------- 1 file changed, 395 insertions(+), 391 deletions(-) diff --git a/apps/boxclk/app.js b/apps/boxclk/app.js index 73f4113c0..83716fd90 100644 --- a/apps/boxclk/app.js +++ b/apps/boxclk/app.js @@ -1,400 +1,404 @@ -let background = require("clockbg"); -Modules.addCached("widget_utils", function() { - exports.hide = function() { - exports.cleanup(); - if (!global.WIDGETS) return; - g.reset(); - for (var w of global.WIDGETS) { - if (w._draw) return; - w._draw = w.draw; - w.draw = () => {}; - w._area = w.area; - w.area = ""; - if (w.x != undefined) g.clearRect(w.x, w.y, w.x + w.width - 1, w.y + 23); - } - }; - exports.show = function() { - exports.cleanup(); - if (!global.WIDGETS) return; - for (var w of global.WIDGETS) { - if (!w._draw) return; - w.draw = w._draw; - w.area = w._area; - delete w._draw; - delete w._area; - w.draw(w); - } - }; - exports.cleanup = function() { - delete exports.autohide; - delete Bangle.appRect; - if (exports.swipeHandler) { - Bangle.removeListener("swipe", exports.swipeHandler); - delete exports.swipeHandler; - } - if (exports.animInterval) { - clearInterval(exports.animInterval); - delete exports.animInterval; - } - if (exports.hideTimeout) { - clearTimeout(exports.hideTimeout); - delete exports.hideTimeout; - } - if (exports.origDraw) { - Bangle.drawWidgets = exports.origDraw; - delete exports.origDraw; - } - } - exports.swipeOn = function(autohide) { - if (process.env.HWVERSION !== 2) return exports.hide(); - exports.cleanup(); - if (!global.WIDGETS) return; - exports.autohide = autohide === undefined ? 2000 : autohide; - Bangle.appRect = { - x: 0, - y: 0, - w: g.getWidth(), - h: g.getHeight(), - x2: g.getWidth() - 1, - y2: g.getHeight() - 1 - }; - let og = Graphics.createArrayBuffer(g.getWidth(), 26, 16, { - msb: true - }); - og.theme = g.theme; - og._reset = og.reset; - og.reset = function() { - return this._reset().setColor(g.theme.fg).setBgColor(g.theme.bg); - }; - og.reset().clearRect(0, 0, og.getWidth(), 23).fillRect(0, 24, og.getWidth(), 25); - let _g = g; - let offset = -24; - - function queueDraw() { - Bangle.appRect.y = offset + 24; - Bangle.appRect.h = 1 + Bangle.appRect.y2 - Bangle.appRect.y; - if (offset > -24) Bangle.setLCDOverlay(og, 0, offset); - else Bangle.setLCDOverlay(); - } - for (var w of global.WIDGETS) { - if (w._draw) continue; - w._draw = w.draw; - w.draw = function() { - g = og; - this._draw(this); - g = _g; - if (offset > -24) queueDraw(); - }; - w._area = w.area; - if (w.area.startsWith("b")) w.area = "t" + w.area.substr(1); - } - exports.origDraw = Bangle.drawWidgets; - Bangle.drawWidgets = () => { - g = og; - exports.origDraw(); - g = _g; - }; - - function anim(dir, callback) { - if (exports.animInterval) clearInterval(exports.interval); - exports.animInterval = setInterval(function() { - offset += dir; - let stop = false; - if (dir > 0 && offset >= 0) { - stop = true; - offset = 0; - } else if (dir < 0 && offset < -23) { - stop = true; - offset = -24; - } - if (stop) { - clearInterval(exports.animInterval); - delete exports.animInterval; - if (callback) callback(); - } - queueDraw(); - }, 50); - } - exports.swipeHandler = function(lr, ud) { - if (exports.hideTimeout) { - clearTimeout(exports.hideTimeout); - delete exports.hideTimeout; - } - let cb; - if (exports.autohide > 0) cb = function() { - exports.hideTimeout = setTimeout(function() { - anim(-4); - }, exports.autohide); - } - if (ud > 0 && offset < 0) anim(4, cb); - if (ud < 0 && offset > -24) anim(-4); - }; - Bangle.on("swipe", exports.swipeHandler); - Bangle.drawWidgets(); - }; -}); { - let storage = require("Storage"); - let locale = require("locale"); - let widgets = require("widget_utils"); - let date = new Date(); - let configNumber = (storage.readJSON("boxclk.json", 1) || {}).selectedConfig || 0; - let fileName = 'boxclk' + (configNumber > 0 ? `-${configNumber}` : '') + '.json'; - if (!storage.read(fileName)) { - fileName = 'boxclk.json'; + /** + * --------------------------------------------------------------- + * 1. Module dependencies and initial configurations + * --------------------------------------------------------------- + */ + + let storage = require("Storage"); + let locale = require("locale"); + let widgets = require("widget_utils"); + let date = new Date(); + let configNumber = (storage.readJSON("boxclk.json", 1) || {}).selectedConfig || 0; + let fileName = 'boxclk' + (configNumber > 0 ? `-${configNumber}` : '') + '.json'; + // Add a condition to check if the file exists, if it does not, default to 'boxclk.json' + if (!storage.read(fileName)) { + fileName = 'boxclk.json'; + } + let boxesConfig = storage.readJSON(fileName, 1) || {}; + let boxes = {}; + let boxPos = {}; + let isDragging = {}; + let wasDragging = {}; + let doubleTapTimer = null; + let g_setColor; + + let saveIcon = require("heatshrink").decompress(atob("mEwwkEogA/AHdP/4AK+gWVDBQWNAAIuVGBAIB+UQdhMfGBAHBCxUAgIXHIwPyCxQwEJAgXB+MAl/zBwQGBn8ggQjBGAQXG+EA/4XI/8gBIQXTGAMPC6n/C6HzkREBC6YACC6QAFC57aHCYIXOOgLsEn4XPABIX/C6vykQAEl6/WgCQBC5imFAAT2BC5gCBI4oUCC5x0IC/4X/C4K8Bl4XJ+TCCC4wKBABkvC4tEEoMQCxcBB4IWEC4XyDBUBFwIXGJAIAOIwowDABoWGGB4uHDBwWJAH4AzA")); + + /** + * --------------------------------------------------------------- + * 2. Graphical and visual configurations + * --------------------------------------------------------------- + */ + + let w = g.getWidth(); + let h = g.getHeight(); + let totalWidth, totalHeight; + let drawTimeout; + + /** + * --------------------------------------------------------------- + * 3. Touchscreen Handlers + * --------------------------------------------------------------- + */ + + let touchHandler; + let dragHandler; + let movementDistance = 0; + + /** + * --------------------------------------------------------------- + * 4. Font loading function + * --------------------------------------------------------------- + */ + + let loadCustomFont = function() { + Graphics.prototype.setFontBrunoAce = function() { + // Actual height 23 (24 - 2) + return this.setFontCustom( + E.toString(require('heatshrink').decompress(atob('ABMHwADBh4DKg4bKgIPDAYUfAYV/AYX/AQMD/gmC+ADBn/AByE/GIU8AYUwLxcfAYX/8AnB//4JIP/FgMP4F+CQQBBjwJBFYRbBAd43DHoJpBh/g/xPEK4ZfDgEEORKDDAY8////wADLfZrTCgITBnhEBAYJMBAYMPw4DCM4QDjhwDCjwDBn0+AYMf/gDBh/4AYMH+ADBLpc4ToK/NGYZfnAYcfL4U/x5fBW4LvB/7vC+LvBgHAsBfIn76Cn4WBcYQDFEgJ+CQQYDyH4L/BAZbHLNYjjCAZc8ngDunycBZ4KkBa4KwBnEHY4UB+BfMgf/ZgMH/4XBc4cf4F/gE+ZgRjwAYcfj5jBM4U4M4RQBM4UA8BjIngDFEYJ8BAYUDAYQvCM4ZxBC4V+AYQvBnkBQ4M8gabBJQPAI4WAAYM/GYQaBAYJKCnqyCn5OCn4aBAYIaBAYJPCU4IABnBhIuDXCFAMD+Z/BY4IDBQwOPwEfv6TDAYUPAcwrDAYQ7BAYY/BI4cD8bLCK4RfEAA0BRYTeDcwIrFn0Pw43Bg4DugYDBjxBBU4SvDMYMH/5QBgP/LAQAP8EHN4UPwADHB4YAHA'))), + 46, + atob("CBEdChgYGhgaGBsaCQ=="), + 32|65536 + ); + }; + }; + + /** + * --------------------------------------------------------------- + * 5. Initial settings of boxes and their positions + * --------------------------------------------------------------- + */ + + let boxKeys = Object.keys(boxes); + + boxKeys.forEach((key) => { + let boxConfig = boxes[key]; + boxPos[key] = { + }; + isDragging[key] = false; + wasDragging[key] = false; + }); + + /** + * --------------------------------------------------------------- + * 6. Text and drawing functions + * --------------------------------------------------------------- + */ + + // Overwrite the setColor function to allow the + // use of (x) in g.theme.x as a string + // in your JSON config ("fg", "bg", "fg2", "bg2", "fgH", "bgH") + let modSetColor = function() { + // Save the original setColor function + g_setColor = g.setColor; + // Overwrite setColor with the new function + g.setColor = function(color) { + if (typeof color === "string" && color in g.theme) { + g_setColor.call(g, g.theme[color]); + } else { + g_setColor.call(g, color); + } + }; + }; + + let restoreSetColor = function() { + // Restore the original setColor function + if (g_setColor) { + g.setColor = g_setColor; } - let boxesConfig = storage.readJSON(fileName, 1) || {}; - let boxes = {}; - let boxPos = {}; - let isDragging = {}; - let wasDragging = {}; - let doubleTapTimer = null; - let g_setColor; - let saveIcon = require("heatshrink").decompress(atob("mEwwkEogA/AHdP/4AK+gWVDBQWNAAIuVGBAIB+UQdhMfGBAHBCxUAgIXHIwPyCxQwEJAgXB+MAl/zBwQGBn8ggQjBGAQXG+EA/4XI/8gBIQXTGAMPC6n/C6HzkREBC6YACC6QAFC57aHCYIXOOgLsEn4XPABIX/C6vykQAEl6/WgCQBC5imFAAT2BC5gCBI4oUCC5x0IC/4X/C4K8Bl4XJ+TCCC4wKBABkvC4tEEoMQCxcBB4IWEC4XyDBUBFwIXGJAIAOIwowDABoWGGB4uHDBwWJAH4AzA")); - let w = g.getWidth(); - let h = g.getHeight(); - let totalWidth, totalHeight; - let drawTimeout; - let touchHandler; - let dragHandler; - let movementDistance = 0; - let loadCustomFont = function() { - Graphics.prototype.setFontBrunoAce = function() { - return this.setFontCustom(E.toString(require('heatshrink').decompress(atob('ABMHwADBh4DKg4bKgIPDAYUfAYV/AYX/AQMD/gmC+ADBn/AByE/GIU8AYUwLxcfAYX/8AnB//4JIP/FgMP4F+CQQBBjwJBFYRbBAd43DHoJpBh/g/xPEK4ZfDgEEORKDDAY8////wADLfZrTCgITBnhEBAYJMBAYMPw4DCM4QDjhwDCjwDBn0+AYMf/gDBh/4AYMH+ADBLpc4ToK/NGYZfnAYcfL4U/x5fBW4LvB/7vC+LvBgHAsBfIn76Cn4WBcYQDFEgJ+CQQYDyH4L/BAZbHLNYjjCAZc8ngDunycBZ4KkBa4KwBnEHY4UB+BfMgf/ZgMH/4XBc4cf4F/gE+ZgRjwAYcfj5jBM4U4M4RQBM4UA8BjIngDFEYJ8BAYUDAYQvCM4ZxBC4V+AYQvBnkBQ4M8gabBJQPAI4WAAYM/GYQaBAYJKCnqyCn5OCn4aBAYIaBAYJPCU4IABnBhIuDXCFAMD+Z/BY4IDBQwOPwEfv6TDAYUPAcwrDAYQ7BAYY/BI4cD8bLCK4RfEAA0BRYTeDcwIrFn0Pw43Bg4DugYDBjxBBU4SvDMYMH/5QBgP/LAQAP8EHN4UPwADHB4YAHA'))), 46, atob("CBEdChgYGhgaGBsaCQ=="), 32 | 65536); - }; + }; + + // Overwrite the drawString function + let g_drawString = g.drawString; + g.drawString = function(box, str, x, y) { + outlineText(box, str, x, y); + g.setColor(box.color); + g_drawString.call(g, str, x, y); + }; + + let outlineText = function(box, str, x, y) { + let px = box.outline; + let dx = [-px, 0, px, -px, px, -px, 0, px]; + let dy = [-px, -px, -px, 0, 0, px, px, px]; + g.setColor(box.outlineColor); + for (let i = 0; i < dx.length; i++) { + g_drawString.call(g, str, x + dx[i], y + dy[i]); + } + }; + + let calcBoxSize = function(boxItem) { + g.reset(); + g.setFontAlign(0,0); + g.setFont(boxItem.font, boxItem.fontSize); + let strWidth = g.stringWidth(boxItem.string) + 2 * boxItem.outline; + let fontHeight = g.getFontHeight() + 2 * boxItem.outline; + totalWidth = strWidth + 2 * boxItem.xPadding; + totalHeight = fontHeight + 2 * boxItem.yPadding; + }; + + let calcBoxPos = function(boxKey) { + return { + x1: boxPos[boxKey].x - totalWidth / 2, + y1: boxPos[boxKey].y - totalHeight / 2, + x2: boxPos[boxKey].x + totalWidth / 2, + y2: boxPos[boxKey].y + totalHeight / 2 }; - let boxKeys = Object.keys(boxes); - boxKeys.forEach((key) => { - let boxConfig = boxes[key]; - boxPos[key] = { - }; - isDragging[key] = false; - wasDragging[key] = false; - }); - let modSetColor = function() { - g_setColor = g.setColor; - g.setColor = function(color) { - if (typeof color === "string" && color in g.theme) { - g_setColor.call(g, g.theme[color]); - } else { - g_setColor.call(g, color); - } - }; - }; - let restoreSetColor = function() { - if (g_setColor) { - g.setColor = g_setColor; - } - }; - let g_drawString = g.drawString; - g.drawString = function(box, str, x, y) { - outlineText(box, str, x, y); - g.setColor(box.color); - g_drawString.call(g, str, x, y); - }; - let outlineText = function(box, str, x, y) { - let px = box.outline; - let dx = [-px, 0, px, -px, px, -px, 0, px]; - let dy = [-px, -px, -px, 0, 0, px, px, px]; - g.setColor(box.outlineColor); - for (let i = 0; i < dx.length; i++) { - g_drawString.call(g, str, x + dx[i], y + dy[i]); - } - }; - let calcBoxSize = function(boxItem) { - g.reset(); - g.setFontAlign(0, 0); - g.setFont(boxItem.font, boxItem.fontSize); - let strWidth = g.stringWidth(boxItem.string) + 2 * boxItem.outline; - let fontHeight = g.getFontHeight() + 2 * boxItem.outline; - totalWidth = strWidth + 2 * boxItem.xPadding; - totalHeight = fontHeight + 2 * boxItem.yPadding; - }; - let calcBoxPos = function(boxKey) { - return { - x1: boxPos[boxKey].x - totalWidth / 2, - y1: boxPos[boxKey].y - totalHeight / 2, - x2: boxPos[boxKey].x + totalWidth / 2, - y2: boxPos[boxKey].y + totalHeight / 2 - }; - }; - let displaySaveIcon = function() { - draw(boxes); - g.drawImage(saveIcon, w / 2 - 24, h / 2 - 24); - setTimeout(() => { - g.clearRect(w / 2 - 24, h / 2 - 24, w / 2 + 24, h / 2 + 24); - draw(boxes); - }, 2000); - }; - let isBool = function(val, defaultVal) { - return typeof val !== 'undefined' ? Boolean(val) : defaultVal; - }; - let getDate = function(short, shortMonth, disableSuffix) { - const date = new Date(); - const dayOfMonth = date.getDate(); - const month = shortMonth ? locale.month(date, 1) : locale.month(date, 0); - const year = date.getFullYear(); - let suffix; - if ([1, 21, 31].includes(dayOfMonth)) { - suffix = "st"; - } else if ([2, 22].includes(dayOfMonth)) { - suffix = "nd"; - } else if ([3, 23].includes(dayOfMonth)) { - suffix = "rd"; - } else { - suffix = "th"; - } - let dayOfMonthStr = disableSuffix ? dayOfMonth : dayOfMonth + suffix; - return month + " " + dayOfMonthStr + (short ? '' : (", " + year)); - }; - let getDayOfWeek = function(date, short) { - return locale.dow(date, short ? 1 : 0); - }; - locale.meridian = function(date, short) { - let hours = date.getHours(); - let meridian = hours >= 12 ? 'PM' : 'AM'; - return short ? meridian[0] : meridian; - }; - let modString = function(boxItem, data) { - let prefix = boxItem.prefix || ''; - let suffix = boxItem.suffix || ''; - return prefix + data + suffix; - }; - let draw = (function() { - let updatePerMinute = true; - return function(boxes) { - date = new Date(); - g.clear(); - background.fillRect(Bangle.appRect); - if (boxes.time) { - boxes.time.string = modString(boxes.time, locale.time(date, isBool(boxes.time.short, true) ? 1 : 0)); - updatePerMinute = isBool(boxes.time.short, true); - } - if (boxes.meridian) { - boxes.meridian.string = modString(boxes.meridian, locale.meridian(date, isBool(boxes.meridian.short, true))); - } - if (boxes.date) { - boxes.date.string = (modString(boxes.date, getDate(isBool(boxes.date.short, true), isBool(boxes.date.shortMonth, true), isBool(boxes.date.disableSuffix, false)))); - } - if (boxes.dow) { - boxes.dow.string = modString(boxes.dow, getDayOfWeek(date, isBool(boxes.dow.short, true))); - } - if (boxes.batt) { - boxes.batt.string = modString(boxes.batt, E.getBattery()); - } - if (boxes.step) { - boxes.step.string = modString(boxes.step, Bangle.getHealthStatus("day").steps); - } - boxKeys.forEach((boxKey) => { - let boxItem = boxes[boxKey]; - calcBoxSize(boxItem); - const pos = calcBoxPos(boxKey); - if (isDragging[boxKey]) { - g.setColor(boxItem.border); - g.drawRect(pos.x1, pos.y1, pos.x2, pos.y2); - } - g.drawString(boxItem, boxItem.string, boxPos[boxKey].x + boxItem.xOffset, boxPos[boxKey].y + boxItem.yOffset); - }); - if (!Object.values(isDragging).some(Boolean)) { - if (drawTimeout) clearTimeout(drawTimeout); - let interval = updatePerMinute ? 60000 - (Date.now() % 60000) : 1000; - drawTimeout = setTimeout(() => draw(boxes), interval); - } - }; - })(); - let touchInText = function(e, boxItem, boxKey) { + }; + + let displaySaveIcon = function() { + draw(boxes); + g.drawImage(saveIcon, w / 2 - 24, h / 2 - 24); + // Display save icon for 2 seconds + setTimeout(() => { + g.clearRect(w / 2 - 24, h / 2 - 24, w / 2 + 24, h / 2 + 24); + draw(boxes); + }, 2000); + }; + + /** + * --------------------------------------------------------------- + * 7. String forming helper functions + * --------------------------------------------------------------- + */ + + let isBool = function(val, defaultVal) { + return typeof val !== 'undefined' ? Boolean(val) : defaultVal; + }; + + let getDate = function(short, shortMonth, disableSuffix) { + const date = new Date(); + const dayOfMonth = date.getDate(); + const month = shortMonth ? locale.month(date, 1) : locale.month(date, 0); + const year = date.getFullYear(); + let suffix; + if ([1, 21, 31].includes(dayOfMonth)) { + suffix = "st"; + } else if ([2, 22].includes(dayOfMonth)) { + suffix = "nd"; + } else if ([3, 23].includes(dayOfMonth)) { + suffix = "rd"; + } else { + suffix = "th"; + } + let dayOfMonthStr = disableSuffix ? dayOfMonth : dayOfMonth + suffix; + return month + " " + dayOfMonthStr + (short ? '' : (", " + year)); // not including year for short version + }; + + let getDayOfWeek = function(date, short) { + return locale.dow(date, short ? 1 : 0); + }; + + locale.meridian = function(date, short) { + let hours = date.getHours(); + let meridian = hours >= 12 ? 'PM' : 'AM'; + return short ? meridian[0] : meridian; + }; + + let modString = function(boxItem, data) { + let prefix = boxItem.prefix || ''; + let suffix = boxItem.suffix || ''; + return prefix + data + suffix; + }; + + /** + * --------------------------------------------------------------- + * 8. Main draw function + * --------------------------------------------------------------- + */ + + let draw = (function() { + let updatePerMinute = true; // variable to track the state of time display + + return function(boxes) { + date = new Date(); + g.clear(); + if (bgImage) { + g.drawImage(bgImage, 0, 0); + } + if (boxes.time) { + boxes.time.string = modString(boxes.time, locale.time(date, isBool(boxes.time.short, true) ? 1 : 0)); + updatePerMinute = isBool(boxes.time.short, true); + } + if (boxes.meridian) { + boxes.meridian.string = modString(boxes.meridian, locale.meridian(date, isBool(boxes.meridian.short, true))); + } + if (boxes.date) { + boxes.date.string = ( + modString(boxes.date, + getDate(isBool(boxes.date.short, true), + isBool(boxes.date.shortMonth, true), + isBool(boxes.date.disableSuffix, false) + ))); + } + if (boxes.dow) { + boxes.dow.string = modString(boxes.dow, getDayOfWeek(date, isBool(boxes.dow.short, true))); + } + if (boxes.batt) { + boxes.batt.string = modString(boxes.batt, E.getBattery()); + } + if (boxes.step) { + boxes.step.string = modString(boxes.step, Bangle.getHealthStatus("day").steps); + } + boxKeys.forEach((boxKey) => { + let boxItem = boxes[boxKey]; calcBoxSize(boxItem); const pos = calcBoxPos(boxKey); - return e.x >= pos.x1 && e.x <= pos.x2 && e.y >= pos.y1 && e.y <= pos.y2; + if (isDragging[boxKey]) { + g.setColor(boxItem.border); + g.drawRect(pos.x1, pos.y1, pos.x2, pos.y2); + } + g.drawString( + boxItem, + boxItem.string, + boxPos[boxKey].x + boxItem.xOffset, + boxPos[boxKey].y + boxItem.yOffset + ); + }); + if (!Object.values(isDragging).some(Boolean)) { + if (drawTimeout) clearTimeout(drawTimeout); + let interval = updatePerMinute ? 60000 - (Date.now() % 60000) : 1000; + drawTimeout = setTimeout(() => draw(boxes), interval); + } }; - let deselectAllBoxes = function() { - Object.keys(isDragging).forEach((boxKey) => { - isDragging[boxKey] = false; - }); - restoreSetColor(); - widgets.show(); - widgets.swipeOn(); - modSetColor(); - }; - let setup = function() { - touchHandler = function(zone, e) { - wasDragging = Object.assign({}, isDragging); - let boxTouched = false; - boxKeys.forEach((boxKey) => { - if (touchInText(e, boxes[boxKey], boxKey)) { - isDragging[boxKey] = true; - wasDragging[boxKey] = true; - boxTouched = true; - } - }); - if (!boxTouched) { - if (!Object.values(isDragging).some(Boolean)) { - deselectAllBoxes(); - if (doubleTapTimer) { - clearTimeout(doubleTapTimer); - doubleTapTimer = null; - Object.keys(boxPos).forEach((boxKey) => { - boxesConfig[boxKey].boxPos.x = (boxPos[boxKey].x / w).toFixed(3); - boxesConfig[boxKey].boxPos.y = (boxPos[boxKey].y / h).toFixed(3); - }); - storage.write(fileName, JSON.stringify(boxesConfig)); - displaySaveIcon(); - return; - } - } else { - deselectAllBoxes(); - } - } - if (Object.values(wasDragging).some(Boolean) || !boxTouched) { - draw(boxes); - } - doubleTapTimer = setTimeout(() => { - doubleTapTimer = null; - }, 500); - movementDistance = 0; - }; - dragHandler = function(e) { - if (!Object.values(isDragging).some(Boolean)) return; - movementDistance += Math.abs(e.dx) + Math.abs(e.dy); - if (movementDistance > 1) { - boxKeys.forEach((boxKey) => { - if (isDragging[boxKey]) { - widgets.hide(); - let boxItem = boxes[boxKey]; - calcBoxSize(boxItem); - let newX = boxPos[boxKey].x + e.dx; - let newY = boxPos[boxKey].y + e.dy; - if (newX - totalWidth / 2 >= 0 && newX + totalWidth / 2 <= w && newY - totalHeight / 2 >= 0 && newY + totalHeight / 2 <= h) { - boxPos[boxKey].x = newX; - boxPos[boxKey].y = newY; - } - const pos = calcBoxPos(boxKey); - g.clearRect(pos.x1, pos.y1, pos.x2, pos.y2); - } - }); - draw(boxes); - } - }; - Bangle.on('touch', touchHandler); - Bangle.on('drag', dragHandler); - Bangle.setUI({ - mode: "clock", - remove: function() { - Bangle.removeListener('touch', touchHandler); - Bangle.removeListener('drag', dragHandler); - if (drawTimeout) clearTimeout(drawTimeout); - drawTimeout = undefined; - delete Graphics.prototype.setFontBrunoAce; - g.drawString = g_drawString; - restoreSetColor(); - widgets.show(); - } - }); - loadCustomFont(); - draw(boxes); - }; - Bangle.loadWidgets(); + })(); + + /** + * --------------------------------------------------------------- + * 9. Helper function for touch event + * --------------------------------------------------------------- + */ + + let touchInText = function(e, boxItem, boxKey) { + calcBoxSize(boxItem); + const pos = calcBoxPos(boxKey); + return e.x >= pos.x1 && + e.x <= pos.x2 && + e.y >= pos.y1 && + e.y <= pos.y2; + }; + + let deselectAllBoxes = function() { + Object.keys(isDragging).forEach((boxKey) => { + isDragging[boxKey] = false; + }); + restoreSetColor(); + widgets.show(); widgets.swipeOn(); modSetColor(); - setup(); + }; + + /** + * --------------------------------------------------------------- + * 10. Setup function to configure event handlers + * --------------------------------------------------------------- + */ + + let setup = function() { + // ------------------------------------ + // Define the touchHandler function + // ------------------------------------ + touchHandler = function(zone, e) { + wasDragging = Object.assign({}, isDragging); + let boxTouched = false; + boxKeys.forEach((boxKey) => { + if (touchInText(e, boxes[boxKey], boxKey)) { + isDragging[boxKey] = true; + wasDragging[boxKey] = true; + boxTouched = true; + } + }); + if (!boxTouched) { + if (!Object.values(isDragging).some(Boolean)) { // check if no boxes are being dragged + deselectAllBoxes(); + if (doubleTapTimer) { + clearTimeout(doubleTapTimer); + doubleTapTimer = null; + // Save boxesConfig on double tap outside of any box and when no boxes are being dragged + Object.keys(boxPos).forEach((boxKey) => { + boxesConfig[boxKey].boxPos.x = (boxPos[boxKey].x / w).toFixed(3); + boxesConfig[boxKey].boxPos.y = (boxPos[boxKey].y / h).toFixed(3); + }); + storage.write(fileName, JSON.stringify(boxesConfig)); + displaySaveIcon(); + return; + } + } else { + // if any box is being dragged, just deselect all without saving + deselectAllBoxes(); + } + } + if (Object.values(wasDragging).some(Boolean) || !boxTouched) { + draw(boxes); + } + doubleTapTimer = setTimeout(() => { + doubleTapTimer = null; + }, 500); // Increase or decrease this value based on the desired double tap timing + movementDistance = 0; + }; + + // ------------------------------------ + // Define the dragHandler function + // ------------------------------------ + dragHandler = function(e) { + // Check if any box is being dragged + if (!Object.values(isDragging).some(Boolean)) return; + // Calculate the movement distance + movementDistance += Math.abs(e.dx) + Math.abs(e.dy); + // Check if the movement distance exceeds a threshold + if (movementDistance > 1) { + boxKeys.forEach((boxKey) => { + if (isDragging[boxKey]) { + widgets.hide(); + let boxItem = boxes[boxKey]; + calcBoxSize(boxItem); + let newX = boxPos[boxKey].x + e.dx; + let newY = boxPos[boxKey].y + e.dy; + if (newX - totalWidth / 2 >= 0 && + newX + totalWidth / 2 <= w && + newY - totalHeight / 2 >= 0 && + newY + totalHeight / 2 <= h ) { + boxPos[boxKey].x = newX; + boxPos[boxKey].y = newY; + } + const pos = calcBoxPos(boxKey); + g.clearRect(pos.x1, pos.y1, pos.x2, pos.y2); + } + }); + draw(boxes); + } + }; + + Bangle.on('touch', touchHandler); + Bangle.on('drag', dragHandler); + + Bangle.setUI({ + mode : "clock", + remove : function() { + // Remove event handlers, stop draw timer, remove custom font if used + Bangle.removeListener('touch', touchHandler); + Bangle.removeListener('drag', dragHandler); + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = undefined; + delete Graphics.prototype.setFontBrunoAce; + // Restore original drawString function (no outlines) + g.drawString = g_drawString; + restoreSetColor(); + widgets.show(); + } + }); + loadCustomFont(); + draw(boxes); + }; + + /** + * --------------------------------------------------------------- + * 11. Main execution part + * --------------------------------------------------------------- + */ + + Bangle.loadWidgets(); + widgets.swipeOn(); + modSetColor(); + setup(); } From 438c3b83c8414a23fc2abbdaf9e6a3141347b613 Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Mon, 5 Aug 2024 19:59:44 +0100 Subject: [PATCH 119/594] Revert dropped code --- apps/boxclk/app.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/boxclk/app.js b/apps/boxclk/app.js index 83716fd90..cf2e46df3 100644 --- a/apps/boxclk/app.js +++ b/apps/boxclk/app.js @@ -75,6 +75,8 @@ boxKeys.forEach((key) => { let boxConfig = boxes[key]; boxPos[key] = { + x: w * boxConfig.boxPos.x, + y: h * boxConfig.boxPos.y }; isDragging[key] = false; wasDragging[key] = false; From 2c4e52d720051eb958d101fd9d219e8182532a69 Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Mon, 5 Aug 2024 19:59:57 +0100 Subject: [PATCH 120/594] Apply background/clockbg --- apps/boxclk/app.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/boxclk/app.js b/apps/boxclk/app.js index cf2e46df3..548062349 100644 --- a/apps/boxclk/app.js +++ b/apps/boxclk/app.js @@ -5,6 +5,7 @@ * --------------------------------------------------------------- */ + let background = require("clockbg"); let storage = require("Storage"); let locale = require("locale"); let widgets = require("widget_utils"); @@ -215,9 +216,7 @@ return function(boxes) { date = new Date(); g.clear(); - if (bgImage) { - g.drawImage(bgImage, 0, 0); - } + background.fillRect(Bangle.appRect); if (boxes.time) { boxes.time.string = modString(boxes.time, locale.time(date, isBool(boxes.time.short, true) ? 1 : 0)); updatePerMinute = isBool(boxes.time.short, true); From 01edc827f3563fc4bd515f8a07c823fc4e446a4d Mon Sep 17 00:00:00 2001 From: Erik Andresen Date: Tue, 6 Aug 2024 05:45:14 +0200 Subject: [PATCH 121/594] gipy openstmap: drag, zoom --- apps/gipy/app.js | 85 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 58 insertions(+), 27 deletions(-) diff --git a/apps/gipy/app.js b/apps/gipy/app.js index 9094191d9..df90ad2b8 100644 --- a/apps/gipy/app.js +++ b/apps/gipy/app.js @@ -1481,10 +1481,11 @@ function start_gipy(path, maps, interests, heights) { E.showMenu(); // remove menu // compute min/max coordinates - let minLat = 90; - let maxLat = -90; - let minLong = 180; - let maxLong = -180; + const fix = Bangle.getGPSFix(); + let minLat = fix.lat ? fix.lat : 90; + let maxLat = fix.lat ? fix.lat : -90; + let minLong = fix.lon ? fix.lon : 180; + let maxLong = fix.lon ? fix.lon : -180; for(let i=0; imaxLat) maxLat=point.lat; if(point.lat scaleY ? scaleX : scaleY)*1.1); // add 10% margin osm.lat = (minLat+maxLat)/2.0; osm.lon = (minLong+maxLong)/2.0; - osm.draw(); - // draw track - g.setColor("#f09"); - for(let i=0; i { + osm.draw(); - // draw current position - g.setColor("#000"); - if (Bangle.getGPSFix().lat && Bangle.getGPSFix().lon) { - const icon = require("heatshrink").decompress(atob("jEYwYPMyVJkgHEkgICyAHCgIIDyQIChIIEoAIDC4IIEBwOAgEEyVIBAY4DBD4sGHxBQIMRAIIPpAyCHAYILUJEAiVJkAIFgVJXo5fCABQA==")); // 24x24px - const mp = osm.latLonToXY(Bangle.getGPSFix().lat, Bangle.getGPSFix().lon); - g.drawImage(icon, mp.x, mp.y); - } + // draw track + g.setColor("#f09"); + for(let i=0; i { // back handling + E.showMenu(menu); + }, + drag: (ev) => { // zoom, move + if (ev.b) { + osm.scroll(ev.dx, ev.dy); + if (!startDrag) { + startDrag = getTime(); + } + } else { + if (getTime() - startDrag < 0.2) { + // tap + if (ev.y > g.getHeight() / 2) { + osm.scale *= 2; + } else { + osm.scale /= 2; + } + } + startDrag = 0; + drawOpenStmap(); + } + }, + }); }; } catch (ex) { // openstmap not available. From a0119ba74c3c32b1284557f39e758f522f55840c Mon Sep 17 00:00:00 2001 From: Erik Andresen Date: Tue, 6 Aug 2024 05:45:46 +0200 Subject: [PATCH 122/594] gipy: increment version --- apps/gipy/ChangeLog | 1 + apps/gipy/metadata.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/gipy/ChangeLog b/apps/gipy/ChangeLog index 992c69a93..79b3a7615 100644 --- a/apps/gipy/ChangeLog +++ b/apps/gipy/ChangeLog @@ -136,3 +136,4 @@ * Experimental ski mode : have a ski slopes map * Fix for path projection display when lost and zoomed out 0.25: Minor code improvements +0.26: Add option to plot openstmap if installed diff --git a/apps/gipy/metadata.json b/apps/gipy/metadata.json index 5993e3ee6..5819f2d4c 100644 --- a/apps/gipy/metadata.json +++ b/apps/gipy/metadata.json @@ -2,7 +2,7 @@ "id": "gipy", "name": "Gipy", "shortName": "Gipy", - "version": "0.25", + "version": "0.26", "description": "Follow gpx files using the gps. Don't get lost in your bike trips and hikes.", "allow_emulator":false, "icon": "gipy.png", From 93f6dbae7429002130363a4413e7357f3dd01385 Mon Sep 17 00:00:00 2001 From: Septolum Date: Tue, 6 Aug 2024 13:32:15 +0100 Subject: [PATCH 123/594] Add date display --- apps/lato/app.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/lato/app.js b/apps/lato/app.js index 88e723a78..cabddd3ef 100644 --- a/apps/lato/app.js +++ b/apps/lato/app.js @@ -38,9 +38,12 @@ Graphics.prototype.setFontLatoSmall = function(scale) { // must be inside our own scope here so that when we are unloaded everything disappears // we also define functions using 'let fn = function() {..}' for the same reason. function decls are global - let draw = function() { + let draw = function() { + //require('DateExt') var date = new Date(); var timeStr = require("locale").time(date,1); + var dateStr = require("locale").dow(date,1) + ', ' + date.getDate() + ' ' + require("locale").month(date,1); + //var dateStr = date.as("T, D C").str; var h = g.getHeight(); var w = g.getWidth(); @@ -53,6 +56,10 @@ Graphics.prototype.setFontLatoSmall = function(scale) { g.setFontAlign(0, 0); g.setColor(g.theme.fg); g.drawString(timeStr, w/2, h/2); + + g.setFontVector(16); + g.drawString(dateStr, w/2, h/4 -4); + clockInfoMenu.redraw(); // clock_info_support // schedule a draw for the next minute From 734e64ec535219abd608d455c8ab18b21f23c9f9 Mon Sep 17 00:00:00 2001 From: Septolum Date: Tue, 6 Aug 2024 13:34:55 +0100 Subject: [PATCH 124/594] Remove commented out alt method (slower code) --- apps/lato/app.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/apps/lato/app.js b/apps/lato/app.js index cabddd3ef..87ff9a5d8 100644 --- a/apps/lato/app.js +++ b/apps/lato/app.js @@ -38,12 +38,10 @@ Graphics.prototype.setFontLatoSmall = function(scale) { // must be inside our own scope here so that when we are unloaded everything disappears // we also define functions using 'let fn = function() {..}' for the same reason. function decls are global - let draw = function() { - //require('DateExt') + let draw = function() { var date = new Date(); var timeStr = require("locale").time(date,1); var dateStr = require("locale").dow(date,1) + ', ' + date.getDate() + ' ' + require("locale").month(date,1); - //var dateStr = date.as("T, D C").str; var h = g.getHeight(); var w = g.getWidth(); From 77fded87dc5936f6d23e9277942536c9de45bbe5 Mon Sep 17 00:00:00 2001 From: Septolum Date: Tue, 6 Aug 2024 18:42:53 +0100 Subject: [PATCH 125/594] Add date settings, update readme --- apps/lato/README.md | 5 +++++ apps/lato/app.js | 25 ++++++++++++++++++++++--- apps/lato/metadata.json | 8 ++++++-- apps/lato/screenshot4.png | Bin 0 -> 1542 bytes apps/lato/settings.js | 24 ++++++++++++++++++++++++ 5 files changed, 57 insertions(+), 5 deletions(-) create mode 100644 apps/lato/screenshot4.png create mode 100644 apps/lato/settings.js diff --git a/apps/lato/README.md b/apps/lato/README.md index 556ee6fbc..1dc571509 100644 --- a/apps/lato/README.md +++ b/apps/lato/README.md @@ -5,6 +5,7 @@ A simple clock with the Lato font, with fast load and clock_info ![](screenshot1.png) ![](screenshot2.png) ![](screenshot3.png) +![](screenshot4.png) This clock is a Lato version of Simplest++. Simplest++ provided the smallest example of a clock that supports 'fast load' and 'clock @@ -25,6 +26,8 @@ Pastel Clock. * Settings are saved automatically and reloaded along with the clock. +* Date display can be enabled and disabled, along with format choice in the app settings + ## About Clock Info's * The clock info modules enable all clocks to add the display of information to the clock face. @@ -52,3 +55,5 @@ Pastel Clock. Written by: [Hugh Barney](https://github.com/hughbarney) For support and discussion please post in the [Bangle JS Forum](http://forum.espruino.com/microcosms/1424/) + +Date functionality added by [Septolum](https://github.com/Septolum) diff --git a/apps/lato/app.js b/apps/lato/app.js index 87ff9a5d8..369cba17f 100644 --- a/apps/lato/app.js +++ b/apps/lato/app.js @@ -38,10 +38,14 @@ Graphics.prototype.setFontLatoSmall = function(scale) { // must be inside our own scope here so that when we are unloaded everything disappears // we also define functions using 'let fn = function() {..}' for the same reason. function decls are global + let settings = Object.assign({ + dateDisplay: false, + dateFormat: 0, + }, require("Storage").readJSON("lato.json", true) || {}); + let draw = function() { var date = new Date(); var timeStr = require("locale").time(date,1); - var dateStr = require("locale").dow(date,1) + ', ' + date.getDate() + ' ' + require("locale").month(date,1); var h = g.getHeight(); var w = g.getWidth(); @@ -55,8 +59,23 @@ Graphics.prototype.setFontLatoSmall = function(scale) { g.setColor(g.theme.fg); g.drawString(timeStr, w/2, h/2); - g.setFontVector(16); - g.drawString(dateStr, w/2, h/4 -4); + if (settings.dateDisplay) { + switch (settings.dateFormat) { + case 1: + var dateStr = require("locale").date(date,1); + break; + + case 2: + var dateStr = require("locale").date(date); + break; + + default: + var dateStr = require("locale").dow(date,1) + ', ' + date.getDate() + ' ' + require("locale").month(date,1); + break; + } + g.setFontVector(16); + g.drawString(dateStr, w/2, h/4 -4); + } clockInfoMenu.redraw(); // clock_info_support diff --git a/apps/lato/metadata.json b/apps/lato/metadata.json index 406413790..baeb5d3ea 100644 --- a/apps/lato/metadata.json +++ b/apps/lato/metadata.json @@ -1,7 +1,7 @@ { "id": "lato", "name": "Lato", - "version": "0.03", + "version": "0.04", "description": "A Lato Font clock with fast load and clock_info", "readme": "README.md", "icon": "app.png", @@ -12,6 +12,10 @@ "dependencies" : { "clock_info":"module" }, "storage": [ {"name":"lato.app.js","url":"app.js"}, - {"name":"lato.img","url":"icon.js","evaluate":true} + {"name":"lato.img","url":"icon.js","evaluate":true}, + {"name":"lato.settings.js","url":"settings.js"} + ], + "data": [ + {"name":"lato.json"} ] } diff --git a/apps/lato/screenshot4.png b/apps/lato/screenshot4.png new file mode 100644 index 0000000000000000000000000000000000000000..5fc70fb1824acf78ae65bca8f5d95398773905c5 GIT binary patch literal 1542 zcmY+EdpOg39LLvOms{aPb5NLTgpTBKt!6V~Az_&1pu*hC-TI|EsYn=ELl-CHnqj$2 zQ}m?mRI*$)+qAP>j)!TbB?o67r{_H9^E{vT`}2JM{CvN!cm8o7q{?>ab`S`pg7Sd- zNxgNm73HPcLKR}ACLiI2giBpoD@S_>QiCLV1gC&NN*bHJ4MZYqOP30%C~tR#Sw;Ds zd(<2i#*9HAxe^ro@QHNx0ym_%;gF`>@WKASYmX5EF16%Q3wahB-SIlIMtAZ+a}+%1 ztNvTF>tP_U3^8Z{3}0HwZnN5`dq3_H<(fpqe`;ubt#+x3S^Z`vK*bxUiROm~^Iy#ytGV4BKj;M0&?TS9&1JA9oj$C z4YxTL9Q8VI8BbkRZM#l$3jSQ~>H&tH;duRS~@tgm! zsL?S>r}~RkD4v47is(vl^Hja8+131jca_B12RQnyVyUn|{U^}dz3#DMJt`XPXw&23 z09zWkQ55zaIE=eM2mPztzX!D&7i4}Tk=@sTPv;c=K2z!H zuajk5-a8>@ygxa7+pdVB+LLbZMnXj})+BgiHLWt>Y6ZG&mwZxw%yUm{`9>9|Z^y-6 z+I!kPaC!F$A+HOeHH+p&0z=o?fr6;>8Ia+$2?}$MsLuZAfpXP*_DM}jHhyz&N7gNe zdFO<>4U4)@nbK!vKc^?!r8T1I`4h>E~jjXAw&%*uCzHp`K0joPuj)51Q?ixLa?KurNdS)s0` z_w+n;ZM7SU#~{n8C)qQL2uBQ$o3FxeuN^R&MRPg|trD78UST2*pI>eBPUH_|f z{9Z~)@=vj+!uK04q>5iK%6g7@IY-Z%il^BVp2SX@UUQPA{-UfpuovLg0Q9O^E~BnX$lQSg^gH3u`(-I2gW?tQJ|>h6SVdNrEFD zhCUP3Bor>IKRF_x(S*qDxvWCbQ$B6db>bmwSv}~c`>3V@aL30$>~fm4lkK%ViG`Q6 z2Y&FjBzI#W`zpeTCce%Z6z7+_t$>zkTSmrl!kDfdbx>q0$%Gn=a-yb~hX&mi%!1y? zI%77tws!|QQB$7x%bYGCixJG?jIU>$GHEeWfPd$*-p$>f5c?!Km^oL&HhIpvm!6=C zdA&0Ex@_%>C8ZR}kk#{8A}dH1K4ys?f92SZN8@zE-ZjW@Unze|>v?9tE6{!fA1T;H zX!W=HU?zC|&6FL {save('dateDisplay', v)} + }, + "Date Format": { + value: settings.dateFormat, + min: 0, max: 2, + format: v => ["DoW, dd MMM","Locale Short","Locale Long"][v], + onchange: (v) => {save('dateFormat', v)} + } + }; + E.showMenu(appMenu) + }) \ No newline at end of file From 2d26028e24046af42abe4b5b00c9a6d5cd649e3a Mon Sep 17 00:00:00 2001 From: Septolum Date: Tue, 6 Aug 2024 21:52:42 +0100 Subject: [PATCH 126/594] Update changelog --- apps/lato/ChangeLog | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/lato/ChangeLog b/apps/lato/ChangeLog index 686f3b707..814b06b31 100644 --- a/apps/lato/ChangeLog +++ b/apps/lato/ChangeLog @@ -1,3 +1,4 @@ 0.01: first release 0.02: Use clock_info module as an app -0.03: clock_info now uses app name to maintain settings specifically for this clock face \ No newline at end of file +0.03: clock_info now uses app name to maintain settings specifically for this clock face +0.04: add optional date display, and a settings page to configure it \ No newline at end of file From 477165153a30a62d442f7b6ed6736cde3a94e229 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Wed, 7 Aug 2024 08:52:35 +0100 Subject: [PATCH 127/594] 2v24 crc --- apps/fwupdate/custom.html | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/fwupdate/custom.html b/apps/fwupdate/custom.html index 6c47cf3f2..606e59d89 100644 --- a/apps/fwupdate/custom.html +++ b/apps/fwupdate/custom.html @@ -106,6 +106,7 @@ function onInit(device) { else if (crcs[0] == 3816337552) version = "2v21"; else if (crcs[0] == 3329616485) version = "2v22"; else if (crcs[0] == 1569433504) version = "2v23"; + else if (crcs[0] == 680675961) version = "2v24"; else { // for other versions all 7 pages are used, check those var crc = crcs[1]; if (crc==1339551013) { version = "2v10.219"; ok = false; } From 3a18309f9a4ea5df9c02f4d346bc89fd6b086292 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Wed, 7 Aug 2024 08:56:54 +0100 Subject: [PATCH 128/594] 2v24 latest version --- loader.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/loader.js b/loader.js index d63610ade..1f3350656 100644 --- a/loader.js +++ b/loader.js @@ -16,7 +16,7 @@ if (window.location.host=="banglejs.com") { 'This is not the official Bangle.js App Loader - you can try the Official Version here.'; } -var RECOMMENDED_VERSION = "2v23"; +var RECOMMENDED_VERSION = "2v24"; // could check http://www.espruino.com/json/BANGLEJS.json for this // We're only interested in Bangles From fce8ef2d12b04a353a3f03f173cfa026f2a035a0 Mon Sep 17 00:00:00 2001 From: Anton Date: Wed, 7 Aug 2024 15:20:13 +0200 Subject: [PATCH 129/594] Support custom date and time formats --- apps/locale/locale.html | 162 ++++++++++++++++++++++++++++++++-------- 1 file changed, 132 insertions(+), 30 deletions(-) diff --git a/apps/locale/locale.html b/apps/locale/locale.html index 8ec818aae..727437da3 100644 --- a/apps/locale/locale.html +++ b/apps/locale/locale.html @@ -3,8 +3,9 @@ @@ -15,13 +16,15 @@

- + +

- + +
+

-

Then click

@@ -125,15 +128,14 @@ exports = { name : "system", currencySym:"£", }); - function createLocaleModule(lang) { + function createLocaleModule() { console.log(`Language ${lang}`); const translations = document.getElementById('translations').checked; console.log(`Translations: ${translations}`); - const locale = locales[lang]; if (!locale) { - alert(`Language ${lang} not found!`); + alert(`Locale not set for language ${lang}!`); return; } @@ -185,16 +187,10 @@ exports = { name : "system", currencySym:"£", "%P": `d.getHours()<12?${js(locale.ampm[0].toLowerCase())}:${js(locale.ampm[1].toLowerCase())}` }; - var timeN = locale.timePattern[0]; - var timeS = locale.timePattern[1]; - var dateN = locale.datePattern[0]; - var dateS = locale.datePattern[1]; - Object.keys(replaceList).forEach(e => { - timeN = timeN.replace(e,"${"+replaceList[e]+"}"); - timeS = timeS.replace(e,"${"+replaceList[e]+"}"); - dateN = dateN.replace(e,"${"+replaceList[e]+"}"); - dateS = dateS.replace(e,"${"+replaceList[e]+"}"); - }); + var timeN = patternToCode(locale.timePattern[0]); + var timeS = patternToCode(locale.timePattern[1]); + var dateN = patternToCode(locale.datePattern[0]); + var dateS = patternToCode(locale.datePattern[1]); var temperature = locale.temperature=='°F' ? '(t*9/5)+32' : 't'; function getLocaleModule(isLocal) { @@ -246,22 +242,121 @@ exports = { eval(getLocaleModule(true)); console.log("exports:",exports); + function patternToCode(pattern){ + for(const symbol of Object.keys(replaceList)){ + pattern = pattern.replaceAll(symbol,"${"+replaceList[symbol]+"}"); + } + return pattern; + } + function patternToOutput(pattern){ + const code = patternToCode(pattern); + const result = eval(`let d = new Date();\`${code}\``); + return result; + } + function dataList(id, options, formatter){ + let output = ``; + for(const option of options){ + const formatted = formatter?.(option) || option; + output+=`\n` + } + output += "\n"; + return output; + } + var date = new Date(); - document.getElementById("examples").innerHTML = ` + // TODO: This warning should have a link to an article explaining how the formats work, and how long they are allowed to be + document.getElementById("customize-warning").innerText = customizeLocale ? "⚠️ If you make the formats too long, some apps will not work!" : ""; + document.getElementById("examples-short-long").innerHTML = ` ShortLong Day${exports.dow(date,1)}${exports.dow(date,0)} Month${exports.month(date,1)}${exports.month(date,0)} -Date${exports.date(date,1)}${exports.date(date,0)} -Time${exports.time(date,1)}${exports.time(date,0)} -Number${exports.number(12.3456789)}${exports.number(12.3456789,4)} -Distance${exports.distance(12.34,0)}${exports.distance(12345.6,1)} -Speed${exports.speed(123)} -Temperature${exports.temp(12,0)} +Date + ${exports.date(date,1)} + ${exports.date(date,0)} + +${customizeLocale ? `Date format + + + ${dataList("short-date-patterns", [locale?.datePattern["1"], "%-d.%-m.%y", "%-d/%-m/%y", "%d/%m/%Y"], patternToOutput)} + + + + ${dataList("long-date-patterns", [locale?.datePattern["0"], "%-d. %b %Y", "%b %d, %Y"], patternToOutput)} + + ` + : ""} +Time + ${exports.time(date,1)} + ${exports.time(date,0)} + +${customizeLocale ? `Time format + + + ${dataList("short-time-patterns", [ "%HH.%MM", "%HH:%MM"], patternToOutput)} + + + + ${dataList("long-time-patterns", [locale?.timePattern["0"], "%HH.%MM.%SS", "%HH:%MM:%SS"], patternToOutput)} + + ` + : ""} + Number${exports.number(12.3456789)}${exports.number(12.3456789,4)} + Distance${exports.distance(12.34,0)}${exports.distance(12345.6,1)} `; +document.getElementById("examples").innerHTML = ` +Meridian + ${exports.meridian(new Date(0))} / + ${exports.meridian(new Date(43200000))} + +${customizeLocale ? `Meridian names + + + ${dataList("meridian-ams", [locale?.ampm["0"], "AM"])} + + + + ${dataList("meridian-pms", [locale?.ampm["1"], "PM"])} + + ` + : ""} +Speed${exports.speed(123)} +Temperature${exports.temp(12,0)} +`; + + if(customizeLocale){ + document.querySelector("input#short-date-pattern").addEventListener("input", event => { + locale.datePattern["1"] = event.target.value; + document.querySelector("td#short-date-pattern-output").innerText = patternToOutput(event.target.value); + }); + document.querySelector("input#long-date-pattern").addEventListener("input", event => { + locale.datePattern["0"] = event.target.value; + document.querySelector("td#long-date-pattern-output").innerText = patternToOutput(event.target.value); + }); + document.querySelector("input#short-time-pattern").addEventListener("input", event => { + locale.timePattern["1"] = event.target.value; + document.querySelector("td#short-time-pattern-output").innerText = patternToOutput(event.target.value); + }); + document.querySelector("input#long-time-pattern").addEventListener("input", event => { + locale.timePattern["0"] = event.target.value; + document.querySelector("td#long-time-pattern-output").innerText = patternToOutput(event.target.value); + }); + document.querySelector("input#meridian-am").addEventListener("input", event => { + locale.ampm["0"] = event.target.value; + document.querySelector("span#meridian-am-output").innerText = event.target.value; + }); + document.querySelector("input#meridian-pm").addEventListener("input", event => { + locale.ampm["1"] = event.target.value; + document.querySelector("span#meridian-pm-output").innerText = event.target.value; + }); + } return getLocaleModule(false); } + var lang; + var locale; + var customizeLocale; var languageSelector = document.getElementById("languages"); + var customizeSelector = document.getElementById('customize'); languageSelector.innerHTML = Object.keys(locales).map(l=>{ var locale = locales[l]; var localeParts = l.split("_"); // en_GB -> ["en","GB"] @@ -274,18 +369,25 @@ exports = { return `` }).join("\n"); languageSelector.addEventListener('change', function() { - const lang = languageSelector.options[languageSelector.selectedIndex].value; - createLocaleModule(lang); + lang = languageSelector.options[languageSelector.selectedIndex].value; + locale = locales[lang] + createLocaleModule(); + }); + customizeSelector.addEventListener('change', function() { + customizeLocale = customizeSelector.checked; + createLocaleModule(); }); // initial value - createLocaleModule(languageSelector.options[languageSelector.selectedIndex].value); + lang = languageSelector.options[languageSelector.selectedIndex].value; + locale = locales[lang]; + customizeLocale = false; + createLocaleModule(); document.getElementById("upload").addEventListener("click", function() { - const lang = languageSelector.options[languageSelector.selectedIndex].value; - var localeModule = createLocaleModule(lang); + var localeModule = createLocaleModule(); console.log("Locale Module is:",localeModule); sendCustomizedApp({ From ece3735684cc9eb1a23addb5ce1648bdaa4f9cc2 Mon Sep 17 00:00:00 2001 From: Anton Date: Wed, 7 Aug 2024 15:57:40 +0200 Subject: [PATCH 130/594] Save the last uploaded locale --- apps/locale/locale.html | 80 ++++++++++++++++++++++++++++++++--------- 1 file changed, 64 insertions(+), 16 deletions(-) diff --git a/apps/locale/locale.html b/apps/locale/locale.html index 727437da3..bc11ec869 100644 --- a/apps/locale/locale.html +++ b/apps/locale/locale.html @@ -352,36 +352,79 @@ ${customizeLocale ? `Meridian names return getLocaleModule(false); } + const lastUploadedLocaleID = "last-uploaded-locale"; + let lastUploadedLocale; + try{ + lastUploadedLocale = JSON.parse(localStorage?.getItem(lastUploadedLocaleID)); + }catch(error){ + console.warn("Unable to load last uploaded locale", error); + } + if(lastUploadedLocale){ + if(!lastUploadedLocale.lang){ + lastUploadedLocale = undefined; + console.warn("Unable to load last uploaded locale, it is missing the lang entry"); + }else if(lastUploadedLocale.custom){ + // Make sure to add any missing data from the original lang + // We don't know if fx a new entry has been added after the locale was last saved + const originalLocale = structuredClone(locales[lastUploadedLocale.lang]); + lastUploadedLocale = {...originalLocale, ...lastUploadedLocale}; + + // Add a special entry for the custom locale, put it first in the list + locales = {[lastUploadedLocaleID]: lastUploadedLocale, ...locales}; + } + } + var lang; var locale; - var customizeLocale; + var customizeLocale = false; var languageSelector = document.getElementById("languages"); var customizeSelector = document.getElementById('customize'); languageSelector.innerHTML = Object.keys(locales).map(l=>{ var locale = locales[l]; - var localeParts = l.split("_"); // en_GB -> ["en","GB"] + var name = l === lastUploadedLocaleID ? `Custom locale based on ${locale.lang}` : locale.lang; + var localeParts = locale.lang.split("_"); // en_GB -> ["en","GB"] var icon = ""; // If we have a 2 char ISO country code, use it to get the unicode flag if (locale.icon) icon = locale.icon+" "; else if (localeParts[1] && localeParts[1].length==2) icon = localeParts[1].toUpperCase().replace(/./g, char => String.fromCodePoint(char.charCodeAt(0)+127397) )+" "; - return `` + return `` }).join("\n"); - languageSelector.addEventListener('change', function() { - lang = languageSelector.options[languageSelector.selectedIndex].value; - locale = locales[lang] - createLocaleModule(); - }); - customizeSelector.addEventListener('change', function() { + if(lastUploadedLocale){ + if(lastUploadedLocale.custom){ + // If the last uploaded locale was customized, choose the custom locale as default value + languageSelector.value = lastUploadedLocaleID; + }else{ + // If the last uploaded locale was not customized, choose the existing locale in the list as the default value + languageSelector.value = lastUploadedLocale.lang; + } + } + languageSelector.addEventListener('change', handleLanguageChange); + function handleLanguageChange(){ + lang = languageSelector.value; + locale = structuredClone(locales[lang]); + // If the locale is customized, make sure the customization option is activated. If not, disable it. + if(Boolean(customizeSelector.checked) !== Boolean(locale.custom)){ + customizeSelector.checked = Boolean(locale.custom); + handleCustomizeChange(); + }else{ + createLocaleModule(); + } + } + customizeSelector.addEventListener('change', handleCustomizeChange); + function handleCustomizeChange(){ customizeLocale = customizeSelector.checked; - createLocaleModule(); - }); - // initial value - lang = languageSelector.options[languageSelector.selectedIndex].value; - locale = locales[lang]; - customizeLocale = false; - createLocaleModule(); + // If the user no longer wants to customize, make sure to return to the default lang entry + if(!customizeLocale){ + languageSelector.value = locales[lang].lang; + handleLanguageChange(); + }else{ + createLocaleModule(); + } + } + // set initial values + handleLanguageChange(); @@ -389,6 +432,11 @@ ${customizeLocale ? `Meridian names var localeModule = createLocaleModule(); + // Save the locale data to make it easier to upload the same locale next time. + // If the locale is not customized, only save the lang. The rest of the data will be added when the page loads next time. + const savedLocaleData = customizeLocale ? {...locale, custom: true} : {lang: locale.lang}; + localStorage?.setItem(lastUploadedLocaleID, JSON.stringify(savedLocaleData)); + console.log("Locale Module is:",localeModule); sendCustomizedApp({ storage:[ From 7fd7b531d22f0918ec3ec61efd1c7a3f5f29617f Mon Sep 17 00:00:00 2001 From: Anton Date: Wed, 7 Aug 2024 18:06:59 +0200 Subject: [PATCH 131/594] Minor fixes This makes the document standards-compliant --- apps/locale/locale.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/locale/locale.html b/apps/locale/locale.html index bc11ec869..b198b1c4b 100644 --- a/apps/locale/locale.html +++ b/apps/locale/locale.html @@ -1,4 +1,5 @@ - + + @@ -29,7 +30,7 @@ - + + + + + + + + diff --git a/apps/hadash/jsoneditor.bundlejs b/apps/hadash/jsoneditor.bundlejs new file mode 100644 index 000000000..051abb9ff --- /dev/null +++ b/apps/hadash/jsoneditor.bundlejs @@ -0,0 +1,39053 @@ +(() => { + // node_modules/vanilla-jsoneditor/standalone.js + var e; + var t; + var n; + var r; + var o; + var i; + var a; + var s; + var c; + var l; + var u; + var f; + var d; + var h; + var v; + var p; + var m; + var g; + var y; + var b; + var k; + var w; + var x; + var j; + var S; + var C; + var $; + var _; + var O; + var M; + var E; + var A; + var P; + var T; + var R; + var N; + var I; + var D; + var q; + var z; + var B; + var L; + var F; + var V; + var H; + var W; + var U; + var J; + var K; + var G; + var Q; + var Y; + var X; + var Z; + var ee; + var te; + var ne; + var re; + var oe; + var ie; + var ae; + var se; + var ce; + var le; + var ue; + var fe; + var de; + var he; + var ve; + var pe; + var me; + var ge; + var ye; + var be; + var ke; + var we; + var xe; + var je; + var Se; + var Ce; + var $e; + var _e; + var Oe; + var Me; + var Ee; + var Ae; + var Pe; + var Te; + var Re; + var Ne; + var Ie; + var De; + var qe; + var ze; + var Be; + var Le; + var Fe; + var Ve; + var He; + var We; + var Ue; + var Je; + var Ke; + var Ge; + var Qe; + var Ye; + var Xe; + var Ze; + var et; + var tt; + var nt; + var rt; + var ot; + var it; + var at; + var st; + var ct; + var lt; + var ut; + var ft; + var dt; + var ht; + var vt; + var pt; + var mt; + var gt; + var yt; + var bt; + var kt; + var wt; + var xt; + var jt; + var St; + var Ct; + var $t; + var _t; + var Ot; + var Mt; + var Et; + var At; + var Pt; + var Tt; + var Rt; + var Nt; + var It; + var Dt; + var qt; + var zt; + var Bt; + var Lt; + var Ft; + var Vt; + var Ht; + var Wt; + var Ut; + var Jt; + var Kt; + var Gt; + var Qt; + var Yt; + var Xt; + var Zt; + var en; + var tn; + var nn; + var rn; + var on; + var an; + var sn; + var cn; + var ln; + var un; + var fn; + var dn; + var hn; + var vn; + var pn; + var mn; + var gn; + var yn; + var bn; + var kn; + var wn; + var xn; + var jn; + var Sn; + var Cn; + var $n; + var _n; + var On; + var Mn; + var En; + var An; + var Pn; + var Tn; + var Rn; + var Nn; + var In; + var Dn; + var qn; + var zn; + var Bn; + var Ln; + var Fn; + var Vn; + var Hn; + var Wn; + var Un; + var Jn; + var Kn; + var Gn; + var Qn; + var Yn; + var Xn; + var Zn; + var er; + var tr; + var nr; + var rr; + var or; + var ir; + var ar; + var sr; + var cr; + var lr; + var ur; + var fr; + var dr; + var hr; + var vr; + var pr; + var mr; + var gr; + var yr; + var br; + var kr; + var wr; + var xr; + var jr; + var Sr; + var Cr; + var $r; + var _r; + var Or; + var Mr; + var Er; + var Ar; + var Pr; + var Tr; + var Rr; + var Nr; + var Ir; + var Dr; + var qr; + var zr; + var Br; + var Lr; + var Fr; + var Vr; + var Hr; + var Wr; + var Ur; + var Jr; + var Kr; + var Gr; + var Qr; + var Yr; + var Xr; + var Zr; + var eo; + var to; + var no; + var ro; + var oo; + var io; + var ao; + var so; + var co; + var lo; + var uo; + var fo; + var ho; + var vo = ["mainAxis", "crossAxis", "fallbackPlacements", "fallbackStrategy", "fallbackAxisSideDirection", "flipAlignment"]; + var po = ["mainAxis", "crossAxis", "limiter"]; + function mo(e20, t10) { + return t10 || (t10 = e20.slice(0)), Object.freeze(Object.defineProperties(e20, { raw: { value: Object.freeze(t10) } })); + } + function go() { + return go = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function(e20, t10, n10) { + var r10 = function(e21, t11) { + for (; !Object.prototype.hasOwnProperty.call(e21, t11) && null !== (e21 = Mo(e21)); ) + ; + return e21; + }(e20, t10); + if (r10) { + var o10 = Object.getOwnPropertyDescriptor(r10, t10); + return o10.get ? o10.get.call(arguments.length < 3 ? e20 : n10) : o10.value; + } + }, go.apply(this, arguments); + } + function yo(e20, t10) { + if (null == e20) + return {}; + var n10, r10, o10 = function(e21, t11) { + if (null == e21) + return {}; + var n11, r11, o11 = {}, i11 = Object.keys(e21); + for (r11 = 0; r11 < i11.length; r11++) + n11 = i11[r11], t11.indexOf(n11) >= 0 || (o11[n11] = e21[n11]); + return o11; + }(e20, t10); + if (Object.getOwnPropertySymbols) { + var i10 = Object.getOwnPropertySymbols(e20); + for (r10 = 0; r10 < i10.length; r10++) + n10 = i10[r10], t10.indexOf(n10) >= 0 || Object.prototype.propertyIsEnumerable.call(e20, n10) && (o10[n10] = e20[n10]); + } + return o10; + } + function bo(e20, t10) { + var n10 = "undefined" != typeof Symbol && e20[Symbol.iterator] || e20["@@iterator"]; + if (!n10) { + if (Array.isArray(e20) || (n10 = Lo(e20)) || t10 && e20 && "number" == typeof e20.length) { + n10 && (e20 = n10); + var r10 = 0, o10 = function() { + }; + return { s: o10, n: function() { + return r10 >= e20.length ? { done: true } : { done: false, value: e20[r10++] }; + }, e: function(e21) { + throw e21; + }, f: o10 }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var i10, a10 = true, s10 = false; + return { s: function() { + n10 = n10.call(e20); + }, n: function() { + var e21 = n10.next(); + return a10 = e21.done, e21; + }, e: function(e21) { + s10 = true, i10 = e21; + }, f: function() { + try { + a10 || null == n10.return || n10.return(); + } finally { + if (s10) + throw i10; + } + } }; + } + function ko() { + ko = function() { + return t10; + }; + var e20, t10 = {}, n10 = Object.prototype, r10 = n10.hasOwnProperty, o10 = Object.defineProperty || function(e21, t11, n11) { + e21[t11] = n11.value; + }, i10 = "function" == typeof Symbol ? Symbol : {}, a10 = i10.iterator || "@@iterator", s10 = i10.asyncIterator || "@@asyncIterator", c10 = i10.toStringTag || "@@toStringTag"; + function l10(e21, t11, n11) { + return Object.defineProperty(e21, t11, { value: n11, enumerable: true, configurable: true, writable: true }), e21[t11]; + } + try { + l10({}, ""); + } catch (e21) { + l10 = function(e23, t11, n11) { + return e23[t11] = n11; + }; + } + function u10(e21, t11, n11, r11) { + var i11 = t11 && t11.prototype instanceof g10 ? t11 : g10, a11 = Object.create(i11.prototype), s11 = new E10(r11 || []); + return o10(a11, "_invoke", { value: $10(e21, n11, s11) }), a11; + } + function f10(e21, t11, n11) { + try { + return { type: "normal", arg: e21.call(t11, n11) }; + } catch (e23) { + return { type: "throw", arg: e23 }; + } + } + t10.wrap = u10; + var d10 = "suspendedStart", h10 = "suspendedYield", v10 = "executing", p10 = "completed", m10 = {}; + function g10() { + } + function y10() { + } + function b10() { + } + var k10 = {}; + l10(k10, a10, function() { + return this; + }); + var w10 = Object.getPrototypeOf, x10 = w10 && w10(w10(A10([]))); + x10 && x10 !== n10 && r10.call(x10, a10) && (k10 = x10); + var j10 = b10.prototype = g10.prototype = Object.create(k10); + function S10(e21) { + ["next", "throw", "return"].forEach(function(t11) { + l10(e21, t11, function(e23) { + return this._invoke(t11, e23); + }); + }); + } + function C10(e21, t11) { + function n11(o11, i12, a11, s11) { + var c11 = f10(e21[o11], e21, i12); + if ("throw" !== c11.type) { + var l11 = c11.arg, u11 = l11.value; + return u11 && "object" == Ho(u11) && r10.call(u11, "__await") ? t11.resolve(u11.__await).then(function(e23) { + n11("next", e23, a11, s11); + }, function(e23) { + n11("throw", e23, a11, s11); + }) : t11.resolve(u11).then(function(e23) { + l11.value = e23, a11(l11); + }, function(e23) { + return n11("throw", e23, a11, s11); + }); + } + s11(c11.arg); + } + var i11; + o10(this, "_invoke", { value: function(e23, r11) { + function o11() { + return new t11(function(t12, o12) { + n11(e23, r11, t12, o12); + }); + } + return i11 = i11 ? i11.then(o11, o11) : o11(); + } }); + } + function $10(t11, n11, r11) { + var o11 = d10; + return function(i11, a11) { + if (o11 === v10) + throw new Error("Generator is already running"); + if (o11 === p10) { + if ("throw" === i11) + throw a11; + return { value: e20, done: true }; + } + for (r11.method = i11, r11.arg = a11; ; ) { + var s11 = r11.delegate; + if (s11) { + var c11 = _10(s11, r11); + if (c11) { + if (c11 === m10) + continue; + return c11; + } + } + if ("next" === r11.method) + r11.sent = r11._sent = r11.arg; + else if ("throw" === r11.method) { + if (o11 === d10) + throw o11 = p10, r11.arg; + r11.dispatchException(r11.arg); + } else + "return" === r11.method && r11.abrupt("return", r11.arg); + o11 = v10; + var l11 = f10(t11, n11, r11); + if ("normal" === l11.type) { + if (o11 = r11.done ? p10 : h10, l11.arg === m10) + continue; + return { value: l11.arg, done: r11.done }; + } + "throw" === l11.type && (o11 = p10, r11.method = "throw", r11.arg = l11.arg); + } + }; + } + function _10(t11, n11) { + var r11 = n11.method, o11 = t11.iterator[r11]; + if (o11 === e20) + return n11.delegate = null, "throw" === r11 && t11.iterator.return && (n11.method = "return", n11.arg = e20, _10(t11, n11), "throw" === n11.method) || "return" !== r11 && (n11.method = "throw", n11.arg = new TypeError("The iterator does not provide a '" + r11 + "' method")), m10; + var i11 = f10(o11, t11.iterator, n11.arg); + if ("throw" === i11.type) + return n11.method = "throw", n11.arg = i11.arg, n11.delegate = null, m10; + var a11 = i11.arg; + return a11 ? a11.done ? (n11[t11.resultName] = a11.value, n11.next = t11.nextLoc, "return" !== n11.method && (n11.method = "next", n11.arg = e20), n11.delegate = null, m10) : a11 : (n11.method = "throw", n11.arg = new TypeError("iterator result is not an object"), n11.delegate = null, m10); + } + function O10(e21) { + var t11 = { tryLoc: e21[0] }; + 1 in e21 && (t11.catchLoc = e21[1]), 2 in e21 && (t11.finallyLoc = e21[2], t11.afterLoc = e21[3]), this.tryEntries.push(t11); + } + function M10(e21) { + var t11 = e21.completion || {}; + t11.type = "normal", delete t11.arg, e21.completion = t11; + } + function E10(e21) { + this.tryEntries = [{ tryLoc: "root" }], e21.forEach(O10, this), this.reset(true); + } + function A10(t11) { + if (t11 || "" === t11) { + var n11 = t11[a10]; + if (n11) + return n11.call(t11); + if ("function" == typeof t11.next) + return t11; + if (!isNaN(t11.length)) { + var o11 = -1, i11 = function n12() { + for (; ++o11 < t11.length; ) + if (r10.call(t11, o11)) + return n12.value = t11[o11], n12.done = false, n12; + return n12.value = e20, n12.done = true, n12; + }; + return i11.next = i11; + } + } + throw new TypeError(Ho(t11) + " is not iterable"); + } + return y10.prototype = b10, o10(j10, "constructor", { value: b10, configurable: true }), o10(b10, "constructor", { value: y10, configurable: true }), y10.displayName = l10(b10, c10, "GeneratorFunction"), t10.isGeneratorFunction = function(e21) { + var t11 = "function" == typeof e21 && e21.constructor; + return !!t11 && (t11 === y10 || "GeneratorFunction" === (t11.displayName || t11.name)); + }, t10.mark = function(e21) { + return Object.setPrototypeOf ? Object.setPrototypeOf(e21, b10) : (e21.__proto__ = b10, l10(e21, c10, "GeneratorFunction")), e21.prototype = Object.create(j10), e21; + }, t10.awrap = function(e21) { + return { __await: e21 }; + }, S10(C10.prototype), l10(C10.prototype, s10, function() { + return this; + }), t10.AsyncIterator = C10, t10.async = function(e21, n11, r11, o11, i11) { + void 0 === i11 && (i11 = Promise); + var a11 = new C10(u10(e21, n11, r11, o11), i11); + return t10.isGeneratorFunction(n11) ? a11 : a11.next().then(function(e23) { + return e23.done ? e23.value : a11.next(); + }); + }, S10(j10), l10(j10, c10, "Generator"), l10(j10, a10, function() { + return this; + }), l10(j10, "toString", function() { + return "[object Generator]"; + }), t10.keys = function(e21) { + var t11 = Object(e21), n11 = []; + for (var r11 in t11) + n11.push(r11); + return n11.reverse(), function e23() { + for (; n11.length; ) { + var r12 = n11.pop(); + if (r12 in t11) + return e23.value = r12, e23.done = false, e23; + } + return e23.done = true, e23; + }; + }, t10.values = A10, E10.prototype = { constructor: E10, reset: function(t11) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = e20, this.done = false, this.delegate = null, this.method = "next", this.arg = e20, this.tryEntries.forEach(M10), !t11) + for (var n11 in this) + "t" === n11.charAt(0) && r10.call(this, n11) && !isNaN(+n11.slice(1)) && (this[n11] = e20); + }, stop: function() { + this.done = true; + var e21 = this.tryEntries[0].completion; + if ("throw" === e21.type) + throw e21.arg; + return this.rval; + }, dispatchException: function(t11) { + if (this.done) + throw t11; + var n11 = this; + function o11(r11, o12) { + return s11.type = "throw", s11.arg = t11, n11.next = r11, o12 && (n11.method = "next", n11.arg = e20), !!o12; + } + for (var i11 = this.tryEntries.length - 1; i11 >= 0; --i11) { + var a11 = this.tryEntries[i11], s11 = a11.completion; + if ("root" === a11.tryLoc) + return o11("end"); + if (a11.tryLoc <= this.prev) { + var c11 = r10.call(a11, "catchLoc"), l11 = r10.call(a11, "finallyLoc"); + if (c11 && l11) { + if (this.prev < a11.catchLoc) + return o11(a11.catchLoc, true); + if (this.prev < a11.finallyLoc) + return o11(a11.finallyLoc); + } else if (c11) { + if (this.prev < a11.catchLoc) + return o11(a11.catchLoc, true); + } else { + if (!l11) + throw new Error("try statement without catch or finally"); + if (this.prev < a11.finallyLoc) + return o11(a11.finallyLoc); + } + } + } + }, abrupt: function(e21, t11) { + for (var n11 = this.tryEntries.length - 1; n11 >= 0; --n11) { + var o11 = this.tryEntries[n11]; + if (o11.tryLoc <= this.prev && r10.call(o11, "finallyLoc") && this.prev < o11.finallyLoc) { + var i11 = o11; + break; + } + } + i11 && ("break" === e21 || "continue" === e21) && i11.tryLoc <= t11 && t11 <= i11.finallyLoc && (i11 = null); + var a11 = i11 ? i11.completion : {}; + return a11.type = e21, a11.arg = t11, i11 ? (this.method = "next", this.next = i11.finallyLoc, m10) : this.complete(a11); + }, complete: function(e21, t11) { + if ("throw" === e21.type) + throw e21.arg; + return "break" === e21.type || "continue" === e21.type ? this.next = e21.arg : "return" === e21.type ? (this.rval = this.arg = e21.arg, this.method = "return", this.next = "end") : "normal" === e21.type && t11 && (this.next = t11), m10; + }, finish: function(e21) { + for (var t11 = this.tryEntries.length - 1; t11 >= 0; --t11) { + var n11 = this.tryEntries[t11]; + if (n11.finallyLoc === e21) + return this.complete(n11.completion, n11.afterLoc), M10(n11), m10; + } + }, catch: function(e21) { + for (var t11 = this.tryEntries.length - 1; t11 >= 0; --t11) { + var n11 = this.tryEntries[t11]; + if (n11.tryLoc === e21) { + var r11 = n11.completion; + if ("throw" === r11.type) { + var o11 = r11.arg; + M10(n11); + } + return o11; + } + } + throw new Error("illegal catch attempt"); + }, delegateYield: function(t11, n11, r11) { + return this.delegate = { iterator: A10(t11), resultName: n11, nextLoc: r11 }, "next" === this.method && (this.arg = e20), m10; + } }, t10; + } + function wo(e20, t10, n10, r10, o10, i10, a10) { + try { + var s10 = e20[i10](a10), c10 = s10.value; + } catch (e21) { + return void n10(e21); + } + s10.done ? t10(c10) : Promise.resolve(c10).then(r10, o10); + } + function xo(e20) { + return function() { + var t10 = this, n10 = arguments; + return new Promise(function(r10, o10) { + var i10 = e20.apply(t10, n10); + function a10(e21) { + wo(i10, r10, o10, a10, s10, "next", e21); + } + function s10(e21) { + wo(i10, r10, o10, a10, s10, "throw", e21); + } + a10(void 0); + }); + }; + } + function jo(e20, t10) { + return Co(e20) || function(e21, t11) { + var n10 = null == e21 ? null : "undefined" != typeof Symbol && e21[Symbol.iterator] || e21["@@iterator"]; + if (null != n10) { + var r10, o10, i10, a10, s10 = [], c10 = true, l10 = false; + try { + if (i10 = (n10 = n10.call(e21)).next, 0 === t11) { + if (Object(n10) !== n10) + return; + c10 = false; + } else + for (; !(c10 = (r10 = i10.call(n10)).done) && (s10.push(r10.value), s10.length !== t11); c10 = true) + ; + } catch (e23) { + l10 = true, o10 = e23; + } finally { + try { + if (!c10 && null != n10.return && (a10 = n10.return(), Object(a10) !== a10)) + return; + } finally { + if (l10) + throw o10; + } + } + return s10; + } + }(e20, t10) || Lo(e20, t10) || So(); + } + function So() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function Co(e20) { + if (Array.isArray(e20)) + return e20; + } + function $o(e20) { + var t10 = "function" == typeof Map ? /* @__PURE__ */ new Map() : void 0; + return $o = function(e21) { + if (null === e21 || !function(e23) { + try { + return -1 !== Function.toString.call(e23).indexOf("[native code]"); + } catch (t11) { + return "function" == typeof e23; + } + }(e21)) + return e21; + if ("function" != typeof e21) + throw new TypeError("Super expression must either be null or a function"); + if (void 0 !== t10) { + if (t10.has(e21)) + return t10.get(e21); + t10.set(e21, n10); + } + function n10() { + return function(e23, t11, n11) { + if (Oo()) + return Reflect.construct.apply(null, arguments); + var r10 = [null]; + r10.push.apply(r10, t11); + var o10 = new (e23.bind.apply(e23, r10))(); + return n11 && Po(o10, n11.prototype), o10; + }(e21, arguments, Mo(this).constructor); + } + return n10.prototype = Object.create(e21.prototype, { constructor: { value: n10, enumerable: false, writable: true, configurable: true } }), Po(n10, e21); + }, $o(e20); + } + function _o(e20, t10, n10) { + return t10 = Mo(t10), function(e21, t11) { + if (t11 && ("object" === Ho(t11) || "function" == typeof t11)) + return t11; + if (void 0 !== t11) + throw new TypeError("Derived constructors may only return object or undefined"); + return Eo(e21); + }(e20, Oo() ? Reflect.construct(t10, n10 || [], Mo(e20).constructor) : t10.apply(e20, n10)); + } + function Oo() { + try { + var e20 = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() { + })); + } catch (e21) { + } + return (Oo = function() { + return !!e20; + })(); + } + function Mo(e20) { + return Mo = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(e21) { + return e21.__proto__ || Object.getPrototypeOf(e21); + }, Mo(e20); + } + function Eo(e20) { + if (void 0 === e20) + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return e20; + } + function Ao(e20, t10) { + if ("function" != typeof t10 && null !== t10) + throw new TypeError("Super expression must either be null or a function"); + e20.prototype = Object.create(t10 && t10.prototype, { constructor: { value: e20, writable: true, configurable: true } }), Object.defineProperty(e20, "prototype", { writable: false }), t10 && Po(e20, t10); + } + function Po(e20, t10) { + return Po = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(e21, t11) { + return e21.__proto__ = t11, e21; + }, Po(e20, t10); + } + function To(e20, t10) { + var n10 = Object.keys(e20); + if (Object.getOwnPropertySymbols) { + var r10 = Object.getOwnPropertySymbols(e20); + t10 && (r10 = r10.filter(function(t11) { + return Object.getOwnPropertyDescriptor(e20, t11).enumerable; + })), n10.push.apply(n10, r10); + } + return n10; + } + function Ro(e20) { + for (var t10 = 1; t10 < arguments.length; t10++) { + var n10 = null != arguments[t10] ? arguments[t10] : {}; + t10 % 2 ? To(Object(n10), true).forEach(function(t11) { + qo(e20, t11, n10[t11]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e20, Object.getOwnPropertyDescriptors(n10)) : To(Object(n10)).forEach(function(t11) { + Object.defineProperty(e20, t11, Object.getOwnPropertyDescriptor(n10, t11)); + }); + } + return e20; + } + function No(e20, t10) { + if (!(e20 instanceof t10)) + throw new TypeError("Cannot call a class as a function"); + } + function Io(e20, t10) { + for (var n10 = 0; n10 < t10.length; n10++) { + var r10 = t10[n10]; + r10.enumerable = r10.enumerable || false, r10.configurable = true, "value" in r10 && (r10.writable = true), Object.defineProperty(e20, zo(r10.key), r10); + } + } + function Do(e20, t10, n10) { + return t10 && Io(e20.prototype, t10), n10 && Io(e20, n10), Object.defineProperty(e20, "prototype", { writable: false }), e20; + } + function qo(e20, t10, n10) { + return (t10 = zo(t10)) in e20 ? Object.defineProperty(e20, t10, { value: n10, enumerable: true, configurable: true, writable: true }) : e20[t10] = n10, e20; + } + function zo(e20) { + var t10 = function(e21, t11) { + if ("object" != Ho(e21) || !e21) + return e21; + var n10 = e21[Symbol.toPrimitive]; + if (void 0 !== n10) { + var r10 = n10.call(e21, t11 || "default"); + if ("object" != Ho(r10)) + return r10; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === t11 ? String : Number)(e21); + }(e20, "string"); + return "symbol" == Ho(t10) ? t10 : String(t10); + } + function Bo(e20) { + return function(e21) { + if (Array.isArray(e21)) + return Vo(e21); + }(e20) || Fo(e20) || Lo(e20) || function() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + }(); + } + function Lo(e20, t10) { + if (e20) { + if ("string" == typeof e20) + return Vo(e20, t10); + var n10 = Object.prototype.toString.call(e20).slice(8, -1); + return "Object" === n10 && e20.constructor && (n10 = e20.constructor.name), "Map" === n10 || "Set" === n10 ? Array.from(e20) : "Arguments" === n10 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n10) ? Vo(e20, t10) : void 0; + } + } + function Fo(e20) { + if ("undefined" != typeof Symbol && null != e20[Symbol.iterator] || null != e20["@@iterator"]) + return Array.from(e20); + } + function Vo(e20, t10) { + (null == t10 || t10 > e20.length) && (t10 = e20.length); + for (var n10 = 0, r10 = new Array(t10); n10 < t10; n10++) + r10[n10] = e20[n10]; + return r10; + } + function Ho(e20) { + return Ho = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e21) { + return typeof e21; + } : function(e21) { + return e21 && "function" == typeof Symbol && e21.constructor === Symbol && e21 !== Symbol.prototype ? "symbol" : typeof e21; + }, Ho(e20); + } + function Wo() { + } + var Uo = function(e20) { + return e20; + }; + function Jo(e20, t10) { + for (var n10 in t10) + e20[n10] = t10[n10]; + return e20; + } + function Ko(e20) { + return e20(); + } + function Go() { + return /* @__PURE__ */ Object.create(null); + } + function Qo(e20) { + e20.forEach(Ko); + } + function Yo(e20) { + return "function" == typeof e20; + } + function Xo(e20, t10) { + return e20 != e20 ? t10 == t10 : e20 !== t10 || e20 && "object" === Ho(e20) || "function" == typeof e20; + } + function Zo(e20, t10) { + return e20 != e20 ? t10 == t10 : e20 !== t10; + } + function ei(e20, t10, n10, r10) { + if (e20) { + var o10 = ti(e20, t10, n10, r10); + return e20[0](o10); + } + } + function ti(e20, t10, n10, r10) { + return e20[1] && r10 ? Jo(n10.ctx.slice(), e20[1](r10(t10))) : n10.ctx; + } + function ni(e20, t10, n10, r10) { + if (e20[2] && r10) { + var o10 = e20[2](r10(n10)); + if (void 0 === t10.dirty) + return o10; + if ("object" === Ho(o10)) { + for (var i10 = [], a10 = Math.max(t10.dirty.length, o10.length), s10 = 0; s10 < a10; s10 += 1) + i10[s10] = t10.dirty[s10] | o10[s10]; + return i10; + } + return t10.dirty | o10; + } + return t10.dirty; + } + function ri(e20, t10, n10, r10, o10, i10) { + if (o10) { + var a10 = ti(t10, n10, r10, i10); + e20.p(a10, o10); + } + } + function oi(e20) { + if (e20.ctx.length > 32) { + for (var t10 = [], n10 = e20.ctx.length / 32, r10 = 0; r10 < n10; r10++) + t10[r10] = -1; + return t10; + } + return -1; + } + function ii(e20) { + var t10 = {}; + for (var n10 in e20) + "$" !== n10[0] && (t10[n10] = e20[n10]); + return t10; + } + function ai(e20, t10) { + var n10 = {}; + for (var r10 in t10 = new Set(t10), e20) + t10.has(r10) || "$" === r10[0] || (n10[r10] = e20[r10]); + return n10; + } + function si(e20) { + return null == e20 ? "" : e20; + } + function ci(e20) { + return e20 && Yo(e20.destroy) ? e20.destroy : Wo; + } + var li = "undefined" != typeof window; + var ui = li ? function() { + return window.performance.now(); + } : function() { + return Date.now(); + }; + var fi = li ? function(e20) { + return requestAnimationFrame(e20); + } : Wo; + var di = /* @__PURE__ */ new Set(); + function hi(e20) { + di.forEach(function(t10) { + t10.c(e20) || (di.delete(t10), t10.f()); + }), 0 !== di.size && fi(hi); + } + var vi = "undefined" != typeof window ? window : "undefined" != typeof globalThis ? globalThis : global; + function pi(e20, t10) { + e20.appendChild(t10); + } + function mi(e20, t10, n10) { + var r10 = gi(e20); + if (!r10.getElementById(t10)) { + var o10 = ji("style"); + o10.id = t10, o10.textContent = n10, bi(r10, o10); + } + } + function gi(e20) { + if (!e20) + return document; + var t10 = e20.getRootNode ? e20.getRootNode() : e20.ownerDocument; + return t10 && t10.host ? t10 : e20.ownerDocument; + } + function yi(e20) { + var t10 = ji("style"); + return t10.textContent = "/* empty */", bi(gi(e20), t10), t10.sheet; + } + function bi(e20, t10) { + return pi(e20.head || e20, t10), t10.sheet; + } + function ki(e20, t10, n10) { + e20.insertBefore(t10, n10 || null); + } + function wi(e20) { + e20.parentNode && e20.parentNode.removeChild(e20); + } + function xi(e20, t10) { + for (var n10 = 0; n10 < e20.length; n10 += 1) + e20[n10] && e20[n10].d(t10); + } + function ji(e20) { + return document.createElement(e20); + } + function Si(e20) { + return document.createElementNS("http://www.w3.org/2000/svg", e20); + } + function Ci(e20) { + return document.createTextNode(e20); + } + function $i() { + return Ci(" "); + } + function _i() { + return Ci(""); + } + function Oi(e20, t10, n10, r10) { + return e20.addEventListener(t10, n10, r10), function() { + return e20.removeEventListener(t10, n10, r10); + }; + } + function Mi(e20) { + return function(t10) { + return t10.preventDefault(), e20.call(this, t10); + }; + } + function Ei(e20) { + return function(t10) { + return t10.stopPropagation(), e20.call(this, t10); + }; + } + function Ai(e20, t10, n10) { + null == n10 ? e20.removeAttribute(t10) : e20.getAttribute(t10) !== n10 && e20.setAttribute(t10, n10); + } + var Pi = ["width", "height"]; + function Ti(e20, t10) { + var n10 = Object.getOwnPropertyDescriptors(e20.__proto__); + for (var r10 in t10) + null == t10[r10] ? e20.removeAttribute(r10) : "style" === r10 ? e20.style.cssText = t10[r10] : "__value" === r10 ? e20.value = e20[r10] = t10[r10] : n10[r10] && n10[r10].set && -1 === Pi.indexOf(r10) ? e20[r10] = t10[r10] : Ai(e20, r10, t10[r10]); + } + function Ri(e20, t10) { + for (var n10 in t10) + Ai(e20, n10, t10[n10]); + } + function Ni(e20, t10) { + t10 = "" + t10, e20.data !== t10 && (e20.data = t10); + } + function Ii(e20, t10) { + e20.value = null == t10 ? "" : t10; + } + function Di(e20, t10, n10, r10) { + null == n10 ? e20.style.removeProperty(t10) : e20.style.setProperty(t10, n10, r10 ? "important" : ""); + } + function qi(e20, t10, n10) { + for (var r10 = 0; r10 < e20.options.length; r10 += 1) { + var o10 = e20.options[r10]; + if (o10.__value === t10) + return void (o10.selected = true); + } + n10 && void 0 === t10 || (e20.selectedIndex = -1); + } + function zi(e20, t10, n10) { + e20.classList.toggle(t10, !!n10); + } + function Bi(e20, t10) { + var n10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, r10 = n10.bubbles, o10 = void 0 !== r10 && r10, i10 = n10.cancelable; + return new CustomEvent(e20, { detail: t10, bubbles: o10, cancelable: void 0 !== i10 && i10 }); + } + function Li(e20, t10) { + return new e20(t10); + } + var Fi; + var Vi = /* @__PURE__ */ new Map(); + var Hi = 0; + function Wi(e20, t10, n10, r10, o10, i10, a10) { + for (var s10 = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : 0, c10 = 16.666 / r10, l10 = "{\n", u10 = 0; u10 <= 1; u10 += c10) { + var f10 = t10 + (n10 - t10) * i10(u10); + l10 += 100 * u10 + "%{".concat(a10(f10, 1 - f10), "}\n"); + } + var d10 = l10 + "100% {".concat(a10(n10, 1 - n10), "}\n}"), h10 = "__svelte_".concat(function(e21) { + for (var t11 = 5381, n11 = e21.length; n11--; ) + t11 = (t11 << 5) - t11 ^ e21.charCodeAt(n11); + return t11 >>> 0; + }(d10), "_").concat(s10), v10 = gi(e20), p10 = Vi.get(v10) || function(e21, t11) { + var n11 = { stylesheet: yi(t11), rules: {} }; + return Vi.set(e21, n11), n11; + }(v10, e20), m10 = p10.stylesheet, g10 = p10.rules; + g10[h10] || (g10[h10] = true, m10.insertRule("@keyframes ".concat(h10, " ").concat(d10), m10.cssRules.length)); + var y10 = e20.style.animation || ""; + return e20.style.animation = "".concat(y10 ? "".concat(y10, ", ") : "").concat(h10, " ").concat(r10, "ms linear ").concat(o10, "ms 1 both"), Hi += 1, h10; + } + function Ui(e20, t10) { + var n10 = (e20.style.animation || "").split(", "), r10 = n10.filter(t10 ? function(e21) { + return e21.indexOf(t10) < 0; + } : function(e21) { + return -1 === e21.indexOf("__svelte"); + }), o10 = n10.length - r10.length; + o10 && (e20.style.animation = r10.join(", "), (Hi -= o10) || fi(function() { + Hi || (Vi.forEach(function(e21) { + var t11 = e21.stylesheet.ownerNode; + t11 && wi(t11); + }), Vi.clear()); + })); + } + function Ji(e20) { + Fi = e20; + } + function Ki() { + if (!Fi) + throw new Error("Function called outside component initialization"); + return Fi; + } + function Gi(e20) { + Ki().$$.on_mount.push(e20); + } + function Qi(e20) { + Ki().$$.on_destroy.push(e20); + } + function Yi() { + var e20 = Ki(); + return function(t10, n10) { + var r10 = (arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}).cancelable, o10 = void 0 !== r10 && r10, i10 = e20.$$.callbacks[t10]; + if (i10) { + var a10 = Bi(t10, n10, { cancelable: o10 }); + return i10.slice().forEach(function(t11) { + t11.call(e20, a10); + }), !a10.defaultPrevented; + } + return true; + }; + } + function Xi(e20, t10) { + return Ki().$$.context.set(e20, t10), t10; + } + function Zi(e20) { + return Ki().$$.context.get(e20); + } + function ea(e20, t10) { + var n10 = this, r10 = e20.$$.callbacks[t10.type]; + r10 && r10.slice().forEach(function(e21) { + return e21.call(n10, t10); + }); + } + var ta = []; + var na = []; + var ra = []; + var oa = []; + var ia = Promise.resolve(); + var aa = false; + function sa() { + aa || (aa = true, ia.then(va)); + } + function ca() { + return sa(), ia; + } + function la(e20) { + ra.push(e20); + } + function ua(e20) { + oa.push(e20); + } + var fa; + var da = /* @__PURE__ */ new Set(); + var ha = 0; + function va() { + if (0 === ha) { + var e20 = Fi; + do { + try { + for (; ha < ta.length; ) { + var t10 = ta[ha]; + ha++, Ji(t10), pa(t10.$$); + } + } catch (e21) { + throw ta.length = 0, ha = 0, e21; + } + for (Ji(null), ta.length = 0, ha = 0; na.length; ) + na.pop()(); + for (var n10 = 0; n10 < ra.length; n10 += 1) { + var r10 = ra[n10]; + da.has(r10) || (da.add(r10), r10()); + } + ra.length = 0; + } while (ta.length); + for (; oa.length; ) + oa.pop()(); + aa = false, da.clear(), Ji(e20); + } + } + function pa(e20) { + if (null !== e20.fragment) { + e20.update(), Qo(e20.before_update); + var t10 = e20.dirty; + e20.dirty = [-1], e20.fragment && e20.fragment.p(e20.ctx, t10), e20.after_update.forEach(la); + } + } + function ma(e20, t10, n10) { + e20.dispatchEvent(Bi("".concat(t10 ? "intro" : "outro").concat(n10))); + } + var ga; + var ya = /* @__PURE__ */ new Set(); + function ba() { + ga = { r: 0, c: [], p: ga }; + } + function ka() { + ga.r || Qo(ga.c), ga = ga.p; + } + function wa(e20, t10) { + e20 && e20.i && (ya.delete(e20), e20.i(t10)); + } + function xa(e20, t10, n10, r10) { + if (e20 && e20.o) { + if (ya.has(e20)) + return; + ya.add(e20), ga.c.push(function() { + ya.delete(e20), r10 && (n10 && e20.d(1), r10()); + }), e20.o(t10); + } else + r10 && r10(); + } + var ja = { duration: 0 }; + function Sa(e20, t10, n10, r10) { + var o10, i10 = t10(e20, n10, { direction: "both" }), a10 = r10 ? 0 : 1, s10 = null, c10 = null, l10 = null; + function u10() { + l10 && Ui(e20, l10); + } + function f10(e21, t11) { + var n11 = e21.b - a10; + return t11 *= Math.abs(n11), { a: a10, b: e21.b, d: n11, duration: t11, start: e21.start, end: e21.start + t11, group: e21.group }; + } + function d10(t11) { + var n11, r11 = i10 || ja, d11 = r11.delay, h10 = void 0 === d11 ? 0 : d11, v10 = r11.duration, p10 = void 0 === v10 ? 300 : v10, m10 = r11.easing, g10 = void 0 === m10 ? Uo : m10, y10 = r11.tick, b10 = void 0 === y10 ? Wo : y10, k10 = r11.css, w10 = { start: ui() + h10, b: t11 }; + t11 || (w10.group = ga, ga.r += 1), "inert" in e20 && (t11 ? void 0 !== o10 && (e20.inert = o10) : (o10 = e20.inert, e20.inert = true)), s10 || c10 ? c10 = w10 : (k10 && (u10(), l10 = Wi(e20, a10, t11, p10, h10, g10, k10)), t11 && b10(0, 1), s10 = f10(w10, p10), la(function() { + return ma(e20, t11, "start"); + }), n11 = function(t12) { + if (c10 && t12 > c10.start && (s10 = f10(c10, p10), c10 = null, ma(e20, s10.b, "start"), k10 && (u10(), l10 = Wi(e20, a10, s10.b, s10.duration, 0, g10, i10.css))), s10) { + if (t12 >= s10.end) + b10(a10 = s10.b, 1 - a10), ma(e20, s10.b, "end"), c10 || (s10.b ? u10() : --s10.group.r || Qo(s10.group.c)), s10 = null; + else if (t12 >= s10.start) { + var n12 = t12 - s10.start; + a10 = s10.a + s10.d * g10(n12 / s10.duration), b10(a10, 1 - a10); + } + } + return !(!s10 && !c10); + }, 0 === di.size && fi(hi), new Promise(function(e21) { + di.add({ c: n11, f: e21 }); + })); + } + return { run: function(e21) { + Yo(i10) ? (fa || (fa = Promise.resolve()).then(function() { + fa = null; + }), fa).then(function() { + i10 = i10({ direction: e21 ? "in" : "out" }), d10(e21); + }) : d10(e21); + }, end: function() { + u10(), s10 = c10 = null; + } }; + } + function Ca(e20) { + return void 0 !== (null == e20 ? void 0 : e20.length) ? e20 : Array.from(e20); + } + function $a(e20, t10) { + e20.d(1), t10.delete(e20.key); + } + function _a(e20, t10) { + xa(e20, 1, 1, function() { + t10.delete(e20.key); + }); + } + function Oa(e20, t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10) { + for (var d10 = e20.length, h10 = i10.length, v10 = d10, p10 = {}; v10--; ) + p10[e20[v10].key] = v10; + var m10 = [], g10 = /* @__PURE__ */ new Map(), y10 = /* @__PURE__ */ new Map(), b10 = []; + v10 = h10; + for (var k10 = function() { + var e21 = f10(o10, i10, v10), s11 = n10(e21), c11 = a10.get(s11); + c11 ? r10 && b10.push(function() { + return c11.p(e21, t10); + }) : (c11 = l10(s11, e21)).c(), g10.set(s11, m10[v10] = c11), s11 in p10 && y10.set(s11, Math.abs(v10 - p10[s11])); + }; v10--; ) + k10(); + var w10 = /* @__PURE__ */ new Set(), x10 = /* @__PURE__ */ new Set(); + function j10(e21) { + wa(e21, 1), e21.m(s10, u10), a10.set(e21.key, e21), u10 = e21.first, h10--; + } + for (; d10 && h10; ) { + var S10 = m10[h10 - 1], C10 = e20[d10 - 1], $10 = S10.key, _10 = C10.key; + S10 === C10 ? (u10 = S10.first, d10--, h10--) : g10.has(_10) ? !a10.has($10) || w10.has($10) ? j10(S10) : x10.has(_10) ? d10-- : y10.get($10) > y10.get(_10) ? (x10.add($10), j10(S10)) : (w10.add(_10), d10--) : (c10(C10, a10), d10--); + } + for (; d10--; ) { + var O10 = e20[d10]; + g10.has(O10.key) || c10(O10, a10); + } + for (; h10; ) + j10(m10[h10 - 1]); + return Qo(b10), m10; + } + function Ma(e20, t10) { + for (var n10 = {}, r10 = {}, o10 = { $$scope: 1 }, i10 = e20.length; i10--; ) { + var a10 = e20[i10], s10 = t10[i10]; + if (s10) { + for (var c10 in a10) + c10 in s10 || (r10[c10] = 1); + for (var l10 in s10) + o10[l10] || (n10[l10] = s10[l10], o10[l10] = 1); + e20[i10] = s10; + } else + for (var u10 in a10) + o10[u10] = 1; + } + for (var f10 in r10) + f10 in n10 || (n10[f10] = void 0); + return n10; + } + function Ea(e20) { + return "object" === Ho(e20) && null !== e20 ? e20 : {}; + } + function Aa(e20, t10, n10) { + var r10 = e20.$$.props[t10]; + void 0 !== r10 && (e20.$$.bound[r10] = n10, n10(e20.$$.ctx[r10])); + } + function Pa(e20) { + e20 && e20.c(); + } + function Ta(e20, t10, n10) { + var r10 = e20.$$, o10 = r10.fragment, i10 = r10.after_update; + o10 && o10.m(t10, n10), la(function() { + var t11, n11 = e20.$$.on_mount.map(Ko).filter(Yo); + e20.$$.on_destroy ? (t11 = e20.$$.on_destroy).push.apply(t11, Bo(n11)) : Qo(n11); + e20.$$.on_mount = []; + }), i10.forEach(la); + } + function Ra(e20, t10) { + var n10, r10, o10, i10 = e20.$$; + null !== i10.fragment && (n10 = i10.after_update, r10 = [], o10 = [], ra.forEach(function(e21) { + return -1 === n10.indexOf(e21) ? r10.push(e21) : o10.push(e21); + }), o10.forEach(function(e21) { + return e21(); + }), ra = r10, Qo(i10.on_destroy), i10.fragment && i10.fragment.d(t10), i10.on_destroy = i10.fragment = null, i10.ctx = []); + } + function Na(e20, t10, n10, r10, o10, i10) { + var a10 = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : null, s10 = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : [-1], c10 = Fi; + Ji(e20); + var l10 = e20.$$ = { fragment: null, ctx: [], props: i10, update: Wo, not_equal: o10, bound: Go(), on_mount: [], on_destroy: [], on_disconnect: [], before_update: [], after_update: [], context: new Map(t10.context || (c10 ? c10.$$.context : [])), callbacks: Go(), dirty: s10, skip_bound: false, root: t10.target || c10.$$.root }; + a10 && a10(l10.root); + var u10 = false; + if (l10.ctx = n10 ? n10(e20, t10.props || {}, function(t11, n11) { + var r11 = !(arguments.length <= 2) && arguments.length - 2 ? arguments.length <= 2 ? void 0 : arguments[2] : n11; + return l10.ctx && o10(l10.ctx[t11], l10.ctx[t11] = r11) && (!l10.skip_bound && l10.bound[t11] && l10.bound[t11](r11), u10 && function(e21, t12) { + -1 === e21.$$.dirty[0] && (ta.push(e21), sa(), e21.$$.dirty.fill(0)), e21.$$.dirty[t12 / 31 | 0] |= 1 << t12 % 31; + }(e20, t11)), n11; + }) : [], l10.update(), u10 = true, Qo(l10.before_update), l10.fragment = !!r10 && r10(l10.ctx), t10.target) { + if (t10.hydrate) { + var f10 = function(e21) { + return Array.from(e21.childNodes); + }(t10.target); + l10.fragment && l10.fragment.l(f10), f10.forEach(wi); + } else + l10.fragment && l10.fragment.c(); + t10.intro && wa(e20.$$.fragment), Ta(e20, t10.target, t10.anchor), va(); + } + Ji(c10); + } + var Ia = function() { + function e20() { + No(this, e20), qo(this, "$$", void 0), qo(this, "$$set", void 0); + } + return Do(e20, [{ key: "$destroy", value: function() { + Ra(this, 1), this.$destroy = Wo; + } }, { key: "$on", value: function(e21, t10) { + if (!Yo(t10)) + return Wo; + var n10 = this.$$.callbacks[e21] || (this.$$.callbacks[e21] = []); + return n10.push(t10), function() { + var e23 = n10.indexOf(t10); + -1 !== e23 && n10.splice(e23, 1); + }; + } }, { key: "$set", value: function(e21) { + var t10; + this.$$set && (t10 = e21, 0 !== Object.keys(t10).length) && (this.$$.skip_bound = true, this.$$set(e21), this.$$.skip_bound = false); + } }]), e20; + }(); + function Da(e20) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : function(e21) { + var t11 = function(e23) { + try { + if ("undefined" != typeof window && void 0 !== window.localStorage) + return window.localStorage[e23]; + } catch (e24) { + } + }("debug"); + return null != t11 && t11.endsWith("*") ? e21.startsWith(t11.slice(0, -1)) : e21 === t11; + }(e20); + if (!t10) + return qa; + var n10 = function(e21) { + for (var t11 = 0, n11 = 0; n11 < e21.length; n11++) + t11 = (t11 << 5) - t11 + e21.charCodeAt(n11), t11 |= 0; + return za[Math.abs(t11) % za.length]; + }(e20); + return function() { + for (var t11, r10 = arguments.length, o10 = new Array(r10), i10 = 0; i10 < r10; i10++) + o10[i10] = arguments[i10]; + (t11 = console).log.apply(t11, ["%c".concat(e20), "color:".concat(n10)].concat(o10)); + }; + } + function qa() { + } + "undefined" != typeof window && (window.__svelte || (window.__svelte = { v: /* @__PURE__ */ new Set() })).v.add("4"); + var za = ["#0000CC", "#0099FF", "#009400", "#8dd200", "#CCCC00", "#CC9933", "#ae04e7", "#ff35d7", "#FF3333", "#FF6600", "#FF9933", "#FFCC33"]; + function Ba(e20) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, n10 = t10.delay, r10 = void 0 === n10 ? 0 : n10, o10 = t10.duration, i10 = void 0 === o10 ? 400 : o10, a10 = t10.easing, s10 = void 0 === a10 ? Uo : a10, c10 = +getComputedStyle(e20).opacity; + return { delay: r10, duration: i10, easing: s10, css: function(e21) { + return "opacity: ".concat(e21 * c10); + } }; + } + var La = vi.window; + function Fa(e20) { + mi(e20, "svelte-n7cvum", ".svelte-n7cvum{box-sizing:border-box}.bg.svelte-n7cvum{position:fixed;z-index:1000;top:0;left:0;display:flex;flex-direction:column;justify-content:center;width:100vw;height:100vh;background:rgba(0, 0, 0, 0.66)}@supports (-webkit-touch-callout: none){}.wrap.svelte-n7cvum{position:relative;margin:2rem;max-height:100%}.window.svelte-n7cvum{position:relative;width:40rem;max-width:100%;max-height:100%;margin:2rem auto;color:black;border-radius:0.5rem;background:white}.content.svelte-n7cvum{position:relative;padding:1rem;max-height:calc(100vh - 4rem);overflow:auto}.close.svelte-n7cvum{display:block;box-sizing:border-box;position:absolute;z-index:1000;top:1rem;right:1rem;margin:0;padding:0;width:1.5rem;height:1.5rem;border:0;color:black;border-radius:1.5rem;background:white;box-shadow:0 0 0 1px black;transition:transform 0.2s cubic-bezier(0.25, 0.1, 0.25, 1),\n background 0.2s cubic-bezier(0.25, 0.1, 0.25, 1);-webkit-appearance:none}.close.svelte-n7cvum:before,.close.svelte-n7cvum:after{content:'';display:block;box-sizing:border-box;position:absolute;top:50%;width:1rem;height:1px;background:black;transform-origin:center;transition:height 0.2s cubic-bezier(0.25, 0.1, 0.25, 1),\n background 0.2s cubic-bezier(0.25, 0.1, 0.25, 1)}.close.svelte-n7cvum:before{-webkit-transform:translate(0, -50%) rotate(45deg);-moz-transform:translate(0, -50%) rotate(45deg);transform:translate(0, -50%) rotate(45deg);left:0.25rem}.close.svelte-n7cvum:after{-webkit-transform:translate(0, -50%) rotate(-45deg);-moz-transform:translate(0, -50%) rotate(-45deg);transform:translate(0, -50%) rotate(-45deg);left:0.25rem}.close.svelte-n7cvum:hover{background:black}.close.svelte-n7cvum:hover:before,.close.svelte-n7cvum:hover:after{height:2px;background:white}.close.svelte-n7cvum:focus{border-color:#3399ff;box-shadow:0 0 0 2px #3399ff}.close.svelte-n7cvum:active{transform:scale(0.9)}.close.svelte-n7cvum:hover,.close.svelte-n7cvum:focus,.close.svelte-n7cvum:active{outline:none}"); + } + function Va(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10, p10, m10, g10, y10, b10 = e20[1].closeButton && Ha(e20), k10 = e20[2]; + return k10 && (a10 = Li(k10, {})), { c: function() { + t10 = ji("div"), n10 = ji("div"), r10 = ji("div"), b10 && b10.c(), o10 = $i(), i10 = ji("div"), a10 && Pa(a10.$$.fragment), Ai(i10, "class", s10 = si(e20[1].classContent) + " svelte-n7cvum"), Ai(i10, "style", e20[9]), zi(i10, "content", !e20[0]), Ai(r10, "class", c10 = si(e20[1].classWindow) + " svelte-n7cvum"), Ai(r10, "role", "dialog"), Ai(r10, "aria-modal", "true"), Ai(r10, "aria-label", l10 = e20[1].ariaLabelledBy ? null : e20[1].ariaLabel || null), Ai(r10, "aria-labelledby", u10 = e20[1].ariaLabelledBy || null), Ai(r10, "style", e20[8]), zi(r10, "window", !e20[0]), Ai(n10, "class", d10 = si(e20[1].classWindowWrap) + " svelte-n7cvum"), Ai(n10, "style", e20[7]), zi(n10, "wrap", !e20[0]), Ai(t10, "aria-hidden", "true"), Ai(t10, "id", h10 = e20[1].id), Ai(t10, "class", v10 = si(e20[1].classBg) + " svelte-n7cvum"), Ai(t10, "style", e20[6]), zi(t10, "bg", !e20[0]); + }, m: function(s11, c11) { + ki(s11, t10, c11), pi(t10, n10), pi(n10, r10), b10 && b10.m(r10, null), pi(r10, o10), pi(r10, i10), a10 && Ta(a10, i10, null), e20[50](r10), e20[51](n10), e20[52](t10), m10 = true, g10 || (y10 = [Oi(r10, "introstart", function() { + Yo(e20[13]) && e20[13].apply(this, arguments); + }), Oi(r10, "outrostart", function() { + Yo(e20[14]) && e20[14].apply(this, arguments); + }), Oi(r10, "introend", function() { + Yo(e20[15]) && e20[15].apply(this, arguments); + }), Oi(r10, "outroend", function() { + Yo(e20[16]) && e20[16].apply(this, arguments); + }), Oi(t10, "mousedown", e20[20]), Oi(t10, "mouseup", e20[21])], g10 = true); + }, p: function(f11, p11) { + if ((e20 = f11)[1].closeButton ? b10 ? (b10.p(e20, p11), 2 & p11[0] && wa(b10, 1)) : ((b10 = Ha(e20)).c(), wa(b10, 1), b10.m(r10, o10)) : b10 && (ba(), xa(b10, 1, 1, function() { + b10 = null; + }), ka()), 4 & p11[0] && k10 !== (k10 = e20[2])) { + if (a10) { + ba(); + var g11 = a10; + xa(g11.$$.fragment, 1, 0, function() { + Ra(g11, 1); + }), ka(); + } + k10 ? (Pa((a10 = Li(k10, {})).$$.fragment), wa(a10.$$.fragment, 1), Ta(a10, i10, null)) : a10 = null; + } + (!m10 || 2 & p11[0] && s10 !== (s10 = si(e20[1].classContent) + " svelte-n7cvum")) && Ai(i10, "class", s10), (!m10 || 512 & p11[0]) && Ai(i10, "style", e20[9]), (!m10 || 3 & p11[0]) && zi(i10, "content", !e20[0]), (!m10 || 2 & p11[0] && c10 !== (c10 = si(e20[1].classWindow) + " svelte-n7cvum")) && Ai(r10, "class", c10), (!m10 || 2 & p11[0] && l10 !== (l10 = e20[1].ariaLabelledBy ? null : e20[1].ariaLabel || null)) && Ai(r10, "aria-label", l10), (!m10 || 2 & p11[0] && u10 !== (u10 = e20[1].ariaLabelledBy || null)) && Ai(r10, "aria-labelledby", u10), (!m10 || 256 & p11[0]) && Ai(r10, "style", e20[8]), (!m10 || 3 & p11[0]) && zi(r10, "window", !e20[0]), (!m10 || 2 & p11[0] && d10 !== (d10 = si(e20[1].classWindowWrap) + " svelte-n7cvum")) && Ai(n10, "class", d10), (!m10 || 128 & p11[0]) && Ai(n10, "style", e20[7]), (!m10 || 3 & p11[0]) && zi(n10, "wrap", !e20[0]), (!m10 || 2 & p11[0] && h10 !== (h10 = e20[1].id)) && Ai(t10, "id", h10), (!m10 || 2 & p11[0] && v10 !== (v10 = si(e20[1].classBg) + " svelte-n7cvum")) && Ai(t10, "class", v10), (!m10 || 64 & p11[0]) && Ai(t10, "style", e20[6]), (!m10 || 3 & p11[0]) && zi(t10, "bg", !e20[0]); + }, i: function(n11) { + m10 || (wa(b10), a10 && wa(a10.$$.fragment, n11), n11 && la(function() { + m10 && (f10 || (f10 = Sa(r10, e20[12], e20[1].transitionWindowProps, true)), f10.run(1)); + }), n11 && la(function() { + m10 && (p10 || (p10 = Sa(t10, e20[11], e20[1].transitionBgProps, true)), p10.run(1)); + }), m10 = true); + }, o: function(n11) { + xa(b10), a10 && xa(a10.$$.fragment, n11), n11 && (f10 || (f10 = Sa(r10, e20[12], e20[1].transitionWindowProps, false)), f10.run(0)), n11 && (p10 || (p10 = Sa(t10, e20[11], e20[1].transitionBgProps, false)), p10.run(0)), m10 = false; + }, d: function(n11) { + n11 && wi(t10), b10 && b10.d(), a10 && Ra(a10), e20[50](null), n11 && f10 && f10.end(), e20[51](null), e20[52](null), n11 && p10 && p10.end(), g10 = false, Qo(y10); + } }; + } + function Ha(e20) { + var t10, n10, r10, o10, i10, a10 = [Ua, Wa], s10 = []; + function c10(e21, n11) { + return 2 & n11[0] && (t10 = null), null == t10 && (t10 = !!e21[17](e21[1].closeButton)), t10 ? 0 : 1; + } + return n10 = c10(e20, [-1, -1, -1]), r10 = s10[n10] = a10[n10](e20), { c: function() { + r10.c(), o10 = _i(); + }, m: function(e21, t11) { + s10[n10].m(e21, t11), ki(e21, o10, t11), i10 = true; + }, p: function(e21, t11) { + var i11 = n10; + (n10 = c10(e21, t11)) === i11 ? s10[n10].p(e21, t11) : (ba(), xa(s10[i11], 1, 1, function() { + s10[i11] = null; + }), ka(), (r10 = s10[n10]) ? r10.p(e21, t11) : (r10 = s10[n10] = a10[n10](e21)).c(), wa(r10, 1), r10.m(o10.parentNode, o10)); + }, i: function(e21) { + i10 || (wa(r10), i10 = true); + }, o: function(e21) { + xa(r10), i10 = false; + }, d: function(e21) { + e21 && wi(o10), s10[n10].d(e21); + } }; + } + function Wa(e20) { + var t10, n10, r10, o10; + return { c: function() { + Ai(t10 = ji("button"), "class", n10 = si(e20[1].classCloseButton) + " svelte-n7cvum"), Ai(t10, "aria-label", "Close modal"), Ai(t10, "style", e20[10]), Ai(t10, "type", "button"), zi(t10, "close", !e20[0]); + }, m: function(n11, i10) { + ki(n11, t10, i10), r10 || (o10 = Oi(t10, "click", e20[18]), r10 = true); + }, p: function(e21, r11) { + 2 & r11[0] && n10 !== (n10 = si(e21[1].classCloseButton) + " svelte-n7cvum") && Ai(t10, "class", n10), 1024 & r11[0] && Ai(t10, "style", e21[10]), 3 & r11[0] && zi(t10, "close", !e21[0]); + }, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10), r10 = false, o10(); + } }; + } + function Ua(e20) { + var t10, n10, r10, o10 = e20[1].closeButton; + function i10(e21, t11) { + return { props: { onClose: e21[18] } }; + } + return o10 && (t10 = Li(o10, i10(e20))), { c: function() { + t10 && Pa(t10.$$.fragment), n10 = _i(); + }, m: function(e21, o11) { + t10 && Ta(t10, e21, o11), ki(e21, n10, o11), r10 = true; + }, p: function(e21, r11) { + if (2 & r11[0] && o10 !== (o10 = e21[1].closeButton)) { + if (t10) { + ba(); + var a10 = t10; + xa(a10.$$.fragment, 1, 0, function() { + Ra(a10, 1); + }), ka(); + } + o10 ? (Pa((t10 = Li(o10, i10(e21))).$$.fragment), wa(t10.$$.fragment, 1), Ta(t10, n10.parentNode, n10)) : t10 = null; + } + }, i: function(e21) { + r10 || (t10 && wa(t10.$$.fragment, e21), r10 = true); + }, o: function(e21) { + t10 && xa(t10.$$.fragment, e21), r10 = false; + }, d: function(e21) { + e21 && wi(n10), t10 && Ra(t10, e21); + } }; + } + function Ja(e20) { + var t10, n10, r10, o10, i10 = e20[2] && Va(e20), a10 = e20[49].default, s10 = ei(a10, e20, e20[48], null); + return { c: function() { + i10 && i10.c(), t10 = $i(), s10 && s10.c(); + }, m: function(a11, c10) { + i10 && i10.m(a11, c10), ki(a11, t10, c10), s10 && s10.m(a11, c10), n10 = true, r10 || (o10 = Oi(La, "keydown", e20[19]), r10 = true); + }, p: function(e21, r11) { + e21[2] ? i10 ? (i10.p(e21, r11), 4 & r11[0] && wa(i10, 1)) : ((i10 = Va(e21)).c(), wa(i10, 1), i10.m(t10.parentNode, t10)) : i10 && (ba(), xa(i10, 1, 1, function() { + i10 = null; + }), ka()), s10 && s10.p && (!n10 || 131072 & r11[1]) && ri(s10, a10, e21, e21[48], n10 ? ni(a10, e21[48], r11, null) : oi(e21[48]), null); + }, i: function(e21) { + n10 || (wa(i10), wa(s10, e21), n10 = true); + }, o: function(e21) { + xa(i10), xa(s10, e21), n10 = false; + }, d: function(e21) { + e21 && wi(t10), i10 && i10.d(e21), s10 && s10.d(e21), r10 = false, o10(); + } }; + } + function Ka(e20) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + return function(n10) { + return new e20(Ro(Ro({}, n10), {}, { props: Ro(Ro({}, t10), n10.props) })); + }; + } + function Ga(e20, t10, n10) { + var r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10, p10, m10, g10, y10 = t10.$$slots, b10 = void 0 === y10 ? {} : y10, k10 = t10.$$scope, w10 = Yi(), x10 = Xi, j10 = t10.isTabbable, S10 = void 0 === j10 ? function(e21) { + return e21.tabIndex >= 0 && !e21.hidden && !e21.disabled && "none" !== e21.style.display && "hidden" !== e21.type && Boolean(e21.offsetWidth || e21.offsetHeight || e21.getClientRects().length); + } : j10, C10 = t10.show, $10 = void 0 === C10 ? null : C10, _10 = t10.id, O10 = void 0 === _10 ? null : _10, M10 = t10.key, E10 = void 0 === M10 ? "simple-modal" : M10, A10 = t10.ariaLabel, P10 = void 0 === A10 ? null : A10, T8 = t10.ariaLabelledBy, R8 = void 0 === T8 ? null : T8, N8 = t10.closeButton, I10 = void 0 === N8 || N8, D10 = t10.closeOnEsc, q10 = void 0 === D10 || D10, z10 = t10.closeOnOuterClick, B10 = void 0 === z10 || z10, L10 = t10.styleBg, F10 = void 0 === L10 ? {} : L10, V10 = t10.styleWindowWrap, H10 = void 0 === V10 ? {} : V10, W10 = t10.styleWindow, U10 = void 0 === W10 ? {} : W10, J10 = t10.styleContent, K10 = void 0 === J10 ? {} : J10, G10 = t10.styleCloseButton, Q10 = void 0 === G10 ? {} : G10, Y10 = t10.classBg, X10 = void 0 === Y10 ? null : Y10, Z10 = t10.classWindowWrap, ee2 = void 0 === Z10 ? null : Z10, te2 = t10.classWindow, ne2 = void 0 === te2 ? null : te2, re2 = t10.classContent, oe2 = void 0 === re2 ? null : re2, ie2 = t10.classCloseButton, ae2 = void 0 === ie2 ? null : ie2, se2 = t10.unstyled, ce2 = void 0 !== se2 && se2, le2 = t10.setContext, ue2 = void 0 === le2 ? x10 : le2, fe2 = t10.transitionBg, de2 = void 0 === fe2 ? Ba : fe2, he2 = t10.transitionBgProps, ve2 = void 0 === he2 ? { duration: 250 } : he2, pe2 = t10.transitionWindow, me2 = void 0 === pe2 ? de2 : pe2, ge2 = t10.transitionWindowProps, ye2 = void 0 === ge2 ? ve2 : ge2, be2 = t10.disableFocusTrap, ke2 = void 0 !== be2 && be2, we2 = { id: O10, ariaLabel: P10, ariaLabelledBy: R8, closeButton: I10, closeOnEsc: q10, closeOnOuterClick: B10, styleBg: F10, styleWindowWrap: H10, styleWindow: U10, styleContent: K10, styleCloseButton: Q10, classBg: X10, classWindowWrap: ee2, classWindow: ne2, classContent: oe2, classCloseButton: ae2, transitionBg: de2, transitionBgProps: ve2, transitionWindow: me2, transitionWindowProps: ye2, disableFocusTrap: ke2, isTabbable: S10, unstyled: ce2 }, xe2 = Ro({}, we2), je2 = null, Se2 = function(e21) { + return e21 ? Object.keys(e21).reduce(function(t11, n11) { + return "".concat(t11, "; ").concat(function(e23) { + return e23.replace(/([a-zA-Z])(?=[A-Z])/g, "$1-").toLowerCase(); + }(n11), ": ").concat(e21[n11]); + }, "") : ""; + }, Ce2 = function(e21) { + return !!(e21 && e21.constructor && e21.call && e21.apply); + }, $e2 = function() { + }, _e2 = $e2, Oe2 = $e2, Me2 = $e2, Ee2 = $e2, Ae2 = function(e21) { + var t11 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, r11 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}; + n10(2, je2 = Ka(e21, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {})), n10(1, xe2 = Ro(Ro({}, we2), t11)), n10(6, s10 = Se2(Object.assign({}, { width: window.innerWidth, height: window.innerHeight }, xe2.styleBg))), n10(7, c10 = Se2(xe2.styleWindowWrap)), n10(8, l10 = Se2(xe2.styleWindow)), n10(9, u10 = Se2(xe2.styleContent)), n10(10, f10 = Se2(xe2.styleCloseButton)), n10(11, d10 = xe2.transitionBg), n10(12, h10 = xe2.transitionWindow), Te2(), n10(13, _e2 = function(e23) { + r11.onOpen && r11.onOpen(e23), w10("open"), w10("opening"); + }), n10(14, Oe2 = function(e23) { + r11.onClose && r11.onClose(e23), w10("close"), w10("closing"); + }), n10(15, Me2 = function(e23) { + r11.onOpened && r11.onOpened(e23), w10("opened"); + }), n10(16, Ee2 = function(e23) { + r11.onClosed && r11.onClosed(e23), w10("closed"); + }); + }, Pe2 = function() { + var e21 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + je2 && (n10(14, Oe2 = e21.onClose || Oe2), n10(16, Ee2 = e21.onClosed || Ee2), n10(2, je2 = null), Re2()); + }, Te2 = function() { + a10 = window.scrollY, v10 = document.body.style.position, p10 = document.body.style.overflow, m10 = document.body.style.width, document.body.style.position = "fixed", document.body.style.top = "-".concat(a10, "px"), document.body.style.overflow = "hidden", document.body.style.width = "100%"; + }, Re2 = function() { + document.body.style.position = v10 || "", document.body.style.top = "", document.body.style.overflow = p10 || "", document.body.style.width = m10 || "", window.scrollTo({ top: a10, left: 0, behavior: "instant" }); + }; + ue2(E10, { open: Ae2, close: Pe2 }); + var Ne2 = false; + return Qi(function() { + Ne2 && Pe2(); + }), Gi(function() { + n10(47, Ne2 = true); + }), e20.$$set = function(e21) { + "isTabbable" in e21 && n10(22, S10 = e21.isTabbable), "show" in e21 && n10(23, $10 = e21.show), "id" in e21 && n10(24, O10 = e21.id), "key" in e21 && n10(25, E10 = e21.key), "ariaLabel" in e21 && n10(26, P10 = e21.ariaLabel), "ariaLabelledBy" in e21 && n10(27, R8 = e21.ariaLabelledBy), "closeButton" in e21 && n10(28, I10 = e21.closeButton), "closeOnEsc" in e21 && n10(29, q10 = e21.closeOnEsc), "closeOnOuterClick" in e21 && n10(30, B10 = e21.closeOnOuterClick), "styleBg" in e21 && n10(31, F10 = e21.styleBg), "styleWindowWrap" in e21 && n10(32, H10 = e21.styleWindowWrap), "styleWindow" in e21 && n10(33, U10 = e21.styleWindow), "styleContent" in e21 && n10(34, K10 = e21.styleContent), "styleCloseButton" in e21 && n10(35, Q10 = e21.styleCloseButton), "classBg" in e21 && n10(36, X10 = e21.classBg), "classWindowWrap" in e21 && n10(37, ee2 = e21.classWindowWrap), "classWindow" in e21 && n10(38, ne2 = e21.classWindow), "classContent" in e21 && n10(39, oe2 = e21.classContent), "classCloseButton" in e21 && n10(40, ae2 = e21.classCloseButton), "unstyled" in e21 && n10(0, ce2 = e21.unstyled), "setContext" in e21 && n10(41, ue2 = e21.setContext), "transitionBg" in e21 && n10(42, de2 = e21.transitionBg), "transitionBgProps" in e21 && n10(43, ve2 = e21.transitionBgProps), "transitionWindow" in e21 && n10(44, me2 = e21.transitionWindow), "transitionWindowProps" in e21 && n10(45, ye2 = e21.transitionWindowProps), "disableFocusTrap" in e21 && n10(46, ke2 = e21.disableFocusTrap), "$$scope" in e21 && n10(48, k10 = e21.$$scope); + }, e20.$$.update = function() { + 8388608 & e20.$$.dirty[0] | 65536 & e20.$$.dirty[1] && Ne2 && (Ce2($10) ? Ae2($10) : Pe2()); + }, [ce2, xe2, je2, r10, o10, i10, s10, c10, l10, u10, f10, d10, h10, _e2, Oe2, Me2, Ee2, Ce2, Pe2, function(e21) { + if (xe2.closeOnEsc && je2 && "Escape" === e21.key && (e21.preventDefault(), Pe2()), je2 && "Tab" === e21.key && !xe2.disableFocusTrap) { + var t11 = i10.querySelectorAll("*"), n11 = Array.from(t11).filter(xe2.isTabbable).sort(function(e23, t12) { + return e23.tabIndex - t12.tabIndex; + }), r11 = n11.indexOf(document.activeElement); + -1 === r11 && e21.shiftKey && (r11 = 0), r11 += n11.length + (e21.shiftKey ? -1 : 1), n11[r11 %= n11.length].focus(), e21.preventDefault(); + } + }, function(e21) { + !xe2.closeOnOuterClick || e21.target !== r10 && e21.target !== o10 || (g10 = e21.target); + }, function(e21) { + xe2.closeOnOuterClick && e21.target === g10 && (e21.preventDefault(), Pe2()); + }, S10, $10, O10, E10, P10, R8, I10, q10, B10, F10, H10, U10, K10, Q10, X10, ee2, ne2, oe2, ae2, ue2, de2, ve2, me2, ye2, ke2, Ne2, k10, b10, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(5, i10 = e21); + }); + }, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(4, o10 = e21); + }); + }, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(3, r10 = e21); + }); + }]; + } + var Qa; + var Ya; + var Xa; + var Za; + var es; + var ts; + var ns; + var rs = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, Ga, Ja, Xo, { isTabbable: 22, show: 23, id: 24, key: 25, ariaLabel: 26, ariaLabelledBy: 27, closeButton: 28, closeOnEsc: 29, closeOnOuterClick: 30, styleBg: 31, styleWindowWrap: 32, styleWindow: 33, styleContent: 34, styleCloseButton: 35, classBg: 36, classWindowWrap: 37, classWindow: 38, classContent: 39, classCloseButton: 40, unstyled: 0, setContext: 41, transitionBg: 42, transitionBgProps: 43, transitionWindow: 44, transitionWindowProps: 45, disableFocusTrap: 46 }, Fa, [-1, -1, -1]), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + !function(e20) { + e20.text = "text", e20.tree = "tree", e20.table = "table"; + }(Qa || (Qa = {})), function(e20) { + e20.after = "after", e20.inside = "inside", e20.key = "key", e20.value = "value", e20.multi = "multi", e20.text = "text"; + }(Ya || (Ya = {})), function(e20) { + e20.after = "after", e20.key = "key", e20.value = "value", e20.inside = "inside"; + }(Xa || (Xa = {})), function(e20) { + e20.info = "info", e20.warning = "warning", e20.error = "error"; + }(Za || (Za = {})), function(e20) { + e20.key = "key", e20.value = "value"; + }(es || (es = {})), function(e20) { + e20.asc = "asc", e20.desc = "desc"; + }(ts || (ts = {})), function(e20) { + e20.no = "no", e20.self = "self", e20.nextInside = "nextInside"; + }(ns || (ns = {})); + var os = 50; + var is = 200; + var as = 400; + var ss = 1200; + var cs = 1e3; + var ls = 100; + var us = 100; + var fs = 2e4; + var ds = [{ start: 0, end: ls }]; + var hs = 104857600; + var vs = 1048576; + var ps = 10485760; + var ms = 10240; + var gs = { closeButton: false, classBg: "jse-modal-bg", classWindow: "jse-modal-window", classWindowWrap: "jse-modal-window-wrap", classContent: "jse-modal-container" }; + var ys = Ro(Ro({}, gs), {}, { classWindow: "jse-modal-window jse-modal-window-sort" }); + var bs = Ro(Ro({}, gs), {}, { classWindow: "jse-modal-window jse-modal-window-transform" }); + var ks = Ro(Ro({}, gs), {}, { classWindow: "jse-modal-window jse-modal-window-jsoneditor" }); + var ws = "Insert or paste contents, enter [ insert a new array, enter { to insert a new object, or start typing to insert a new value"; + var xs = "Open context menu (Click here, right click on the selection, or use the context menu button or Ctrl+Q)"; + var js = "hover-insert-inside"; + var Ss = "hover-insert-after"; + var Cs = "hover-collection"; + var $s = "valid"; + var _s = "repairable"; + var Os = 336; + var Ms = 260; + var Es = qo(qo({}, ts.asc, "ascending"), ts.desc, "descending"); + var As = 0; + function Ps() { + return ++As; + } + function Ts(e20) { + return Array.isArray(e20); + } + function Rs(e20) { + return null !== e20 && "object" === Ho(e20) && e20.constructor === Object; + } + function Ns(e20) { + return !(!e20 || "object" !== Ho(e20)) && "add" === e20.op; + } + function Is(e20) { + return !(!e20 || "object" !== Ho(e20)) && "remove" === e20.op; + } + function Ds(e20) { + return !(!e20 || "object" !== Ho(e20)) && "replace" === e20.op; + } + function qs(e20) { + return !(!e20 || "object" !== Ho(e20)) && "copy" === e20.op; + } + function zs(e20) { + return !(!e20 || "object" !== Ho(e20)) && "move" === e20.op; + } + function Bs(e20, t10) { + return e20 === t10; + } + function Ls(e20) { + return e20.slice(0, e20.length - 1); + } + function Fs(e20) { + return "object" === Ho(e20) && null !== e20; + } + function Vs(e20) { + if (Ts(e20)) { + var t10 = e20.slice(); + return Object.getOwnPropertySymbols(e20).forEach(function(n11) { + t10[n11] = e20[n11]; + }), t10; + } + if (Rs(e20)) { + var n10 = Ro({}, e20); + return Object.getOwnPropertySymbols(e20).forEach(function(t11) { + n10[t11] = e20[t11]; + }), n10; + } + return e20; + } + function Hs(e20, t10, n10) { + if (e20[t10] === n10) + return e20; + var r10 = Vs(e20); + return r10[t10] = n10, r10; + } + function Ws(e20, t10) { + for (var n10 = e20, r10 = 0; r10 < t10.length; ) + n10 = Rs(n10) ? n10[t10[r10]] : Ts(n10) ? n10[parseInt(t10[r10])] : void 0, r10++; + return n10; + } + function Us(e20, t10, n10) { + var r10 = arguments.length > 3 && void 0 !== arguments[3] && arguments[3]; + if (0 === t10.length) + return n10; + var o10 = t10[0], i10 = Us(e20 ? e20[o10] : void 0, t10.slice(1), n10, r10); + if (Rs(e20) || Ts(e20)) + return Hs(e20, o10, i10); + if (r10) { + var a10 = Js.test(o10) ? [] : {}; + return a10[o10] = i10, a10; + } + throw new Error("Path does not exist"); + } + var Js = /^\d+$/; + function Ks(e20, t10, n10) { + if (0 === t10.length) + return n10(e20); + if (!Fs(e20)) + throw new Error("Path doesn't exist"); + var r10 = t10[0]; + return Hs(e20, r10, Ks(e20[r10], t10.slice(1), n10)); + } + function Gs(e20, t10) { + if (0 === t10.length) + return e20; + if (!Fs(e20)) + throw new Error("Path does not exist"); + if (1 === t10.length) { + var n10 = t10[0]; + if (n10 in e20) { + var r10 = Vs(e20); + return Ts(r10) && r10.splice(parseInt(n10), 1), Rs(r10) && delete r10[n10], r10; + } + return e20; + } + var o10 = t10[0]; + return Hs(e20, o10, Gs(e20[o10], t10.slice(1))); + } + function Qs(e20, t10, n10) { + var r10 = t10.slice(0, t10.length - 1), o10 = t10[t10.length - 1]; + return Ks(e20, r10, function(e21) { + if (!Array.isArray(e21)) + throw new TypeError("Array expected at path " + JSON.stringify(r10)); + var t11 = Vs(e21); + return t11.splice(parseInt(o10), 0, n10), t11; + }); + } + function Ys(e20, t10) { + return void 0 !== e20 && (0 === t10.length || null !== e20 && Ys(e20[t10[0]], t10.slice(1))); + } + function Xs(e20) { + var t10 = e20.split("/"); + return t10.shift(), t10.map(function(e21) { + return e21.replace(/~1/g, "/").replace(/~0/g, "~"); + }); + } + function Zs(e20) { + return e20.map(ec).join(""); + } + function ec(e20) { + return "/" + String(e20).replace(/~/g, "~0").replace(/\//g, "~1"); + } + function tc(e20, t10) { + return e20 + ec(t10); + } + function nc(e20, t10) { + return e20.startsWith(t10) && (e20.length === t10.length || "/" === e20[t10.length]); + } + function rc(e20, t10, n10) { + for (var r10 = e20, o10 = 0; o10 < t10.length; o10++) { + fc(t10[o10]); + var i10 = t10[o10]; + if (n10 && n10.before) { + var a10 = n10.before(r10, i10); + if (void 0 !== a10) { + if (void 0 !== a10.document && (r10 = a10.document), void 0 !== a10.json) + throw new Error('Deprecation warning: returned object property ".json" has been renamed to ".document"'); + void 0 !== a10.operation && (i10 = a10.operation); + } + } + var s10 = r10, c10 = dc(r10, i10.path); + if ("add" === i10.op) + r10 = ac(r10, c10, i10.value); + else if ("remove" === i10.op) + r10 = ic(r10, c10); + else if ("replace" === i10.op) + r10 = oc(r10, c10, i10.value); + else if ("copy" === i10.op) + r10 = sc(r10, c10, hc(i10.from)); + else if ("move" === i10.op) + r10 = cc(r10, c10, hc(i10.from)); + else { + if ("test" !== i10.op) + throw new Error("Unknown JSONPatch operation " + JSON.stringify(i10)); + lc(r10, c10, i10.value); + } + if (n10 && n10.after) { + var l10 = n10.after(r10, i10, s10); + void 0 !== l10 && (r10 = l10); + } + } + return r10; + } + function oc(e20, t10, n10) { + return Us(e20, t10, n10); + } + function ic(e20, t10) { + return Gs(e20, t10); + } + function ac(e20, t10, n10) { + return uc(e20, t10) ? Qs(e20, t10, n10) : Us(e20, t10, n10); + } + function sc(e20, t10, n10) { + var r10 = Ws(e20, n10); + return uc(e20, t10) ? Qs(e20, t10, r10) : Us(e20, t10, Ws(e20, n10)); + } + function cc(e20, t10, n10) { + var r10 = Ws(e20, n10), o10 = Gs(e20, n10); + return uc(o10, t10) ? Qs(o10, t10, r10) : Us(o10, t10, r10); + } + function lc(e20, t10, n10) { + if (void 0 === n10) + throw new Error('Test failed: no value provided (path: "'.concat(Zs(t10), '")')); + if (!Ys(e20, t10)) + throw new Error('Test failed: path not found (path: "'.concat(Zs(t10), '")')); + var r10, o10, i10 = Ws(e20, t10); + if (r10 = i10, o10 = n10, JSON.stringify(r10) !== JSON.stringify(o10)) + throw new Error('Test failed, value differs (path: "'.concat(Zs(t10), '")')); + } + function uc(e20, t10) { + if (0 === t10.length) + return false; + var n10 = Ws(e20, Ls(t10)); + return Array.isArray(n10); + } + function fc(e20) { + if (!["add", "remove", "replace", "copy", "move", "test"].includes(e20.op)) + throw new Error("Unknown JSONPatch op " + JSON.stringify(e20.op)); + if ("string" != typeof e20.path) + throw new Error('Required property "path" missing or not a string in operation ' + JSON.stringify(e20)); + if (("copy" === e20.op || "move" === e20.op) && "string" != typeof e20.from) + throw new Error('Required property "from" missing or not a string in operation ' + JSON.stringify(e20)); + } + function dc(e20, t10) { + return function(e21, t11) { + if ("-" !== function(e23) { + return e23[e23.length - 1]; + }(t11)) + return t11; + var n10 = Ls(t11), r10 = Ws(e21, n10); + return n10.concat(r10.length); + }(e20, Xs(t10)); + } + function hc(e20) { + return Xs(e20); + } + function vc(e20, t10, n10) { + var r10 = []; + return rc(e20, t10, { before: function(e21, t11) { + var o10, i10, a10 = dc(e21, t11.path); + if ("add" === t11.op) + o10 = gc(e21, a10); + else if ("remove" === t11.op) + o10 = mc(e21, a10); + else if ("replace" === t11.op) + o10 = pc(e21, a10); + else if ("copy" === t11.op) + o10 = function(e23, t12) { + return gc(e23, t12); + }(e21, a10); + else if ("move" === t11.op) + o10 = function(e23, t12, n11) { + if (t12.length < n11.length && function(e24, t13) { + var n12 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : Bs; + if (e24.length < t13.length) + return false; + for (var r12 = 0; r12 < t13.length; r12++) + if (!n12(e24[r12], t13[r12])) + return false; + return true; + }(n11, t12)) + return [{ op: "replace", path: Zs(t12), value: e23 }]; + var r11 = { op: "move", from: Zs(t12), path: Zs(n11) }; + return !uc(e23, t12) && Ys(e23, t12) ? [r11].concat(Bo(mc(e23, t12))) : [r11]; + }(e21, a10, hc(t11.from)); + else { + if ("test" !== t11.op) + throw new Error("Unknown JSONPatch operation " + JSON.stringify(t11)); + o10 = []; + } + if (n10 && n10.before) { + var s10 = n10.before(e21, t11, o10); + if (s10 && s10.revertOperations && (o10 = s10.revertOperations), s10 && s10.document && (i10 = s10.document), s10 && s10.json) + throw new Error('Deprecation warning: returned object property ".json" has been renamed to ".document"'); + } + if (r10 = o10.concat(r10), void 0 !== i10) + return { document: i10 }; + } }), r10; + } + function pc(e20, t10) { + return [{ op: "replace", path: Zs(t10), value: Ws(e20, t10) }]; + } + function mc(e20, t10) { + return [{ op: "add", path: Zs(t10), value: Ws(e20, t10) }]; + } + function gc(e20, t10) { + return uc(e20, t10) || !Ys(e20, t10) ? [{ op: "remove", path: Zs(t10) }] : pc(e20, t10); + } + function yc(e20) { + return e20 && e20.__esModule && Object.prototype.hasOwnProperty.call(e20, "default") ? e20.default : e20; + } + var bc = {}; + var kc = { b: "\b", f: "\f", n: "\n", r: "\r", t: " ", '"': '"', "/": "/", "\\": "\\" }; + var wc = "a".charCodeAt(); + bc.parse = function(e20, t10, n10) { + var r10 = {}, o10 = 0, i10 = 0, a10 = 0, s10 = n10 && n10.bigint && "undefined" != typeof BigInt; + return { data: c10("", true), pointers: r10 }; + function c10(t11, n11) { + var r11; + l10(), m10(t11, "value"); + var o11 = d10(); + switch (o11) { + case "t": + f10("rue"), r11 = true; + break; + case "f": + f10("alse"), r11 = false; + break; + case "n": + f10("ull"), r11 = null; + break; + case '"': + r11 = u10(); + break; + case "[": + r11 = function(e21) { + l10(); + var t12 = [], n12 = 0; + if ("]" == d10()) + return t12; + h10(); + for (; ; ) { + var r12 = e21 + "/" + n12; + t12.push(c10(r12)), l10(); + var o12 = d10(); + if ("]" == o12) + break; + "," != o12 && k10(), l10(), n12++; + } + return t12; + }(t11); + break; + case "{": + r11 = function(e21) { + l10(); + var t12 = {}; + if ("}" == d10()) + return t12; + h10(); + for (; ; ) { + var n12 = y10(); + '"' != d10() && k10(); + var r12 = u10(), o12 = e21 + "/" + Tc(r12); + g10(o12, "key", n12), m10(o12, "keyEnd"), l10(), ":" != d10() && k10(), l10(), t12[r12] = c10(o12), l10(); + var i11 = d10(); + if ("}" == i11) + break; + "," != i11 && k10(), l10(); + } + return t12; + }(t11); + break; + default: + h10(), "-0123456789".indexOf(o11) >= 0 ? r11 = function() { + var t12 = "", n12 = true; + "-" == e20[a10] && (t12 += d10()); + t12 += "0" == e20[a10] ? d10() : p10(), "." == e20[a10] && (t12 += d10() + p10(), n12 = false); + "e" != e20[a10] && "E" != e20[a10] || (t12 += d10(), "+" != e20[a10] && "-" != e20[a10] || (t12 += d10()), t12 += p10(), n12 = false); + var r12 = +t12; + return s10 && n12 && (r12 > Number.MAX_SAFE_INTEGER || r12 < Number.MIN_SAFE_INTEGER) ? BigInt(t12) : r12; + }() : b10(); + } + return m10(t11, "valueEnd"), l10(), n11 && a10 < e20.length && b10(), r11; + } + function l10() { + e: + for (; a10 < e20.length; ) { + switch (e20[a10]) { + case " ": + i10++; + break; + case " ": + i10 += 4; + break; + case "\r": + i10 = 0; + break; + case "\n": + i10 = 0, o10++; + break; + default: + break e; + } + a10++; + } + } + function u10() { + for (var e21, t11 = ""; '"' != (e21 = d10()); ) + "\\" == e21 ? (e21 = d10()) in kc ? t11 += kc[e21] : "u" == e21 ? t11 += v10() : k10() : t11 += e21; + return t11; + } + function f10(e21) { + for (var t11 = 0; t11 < e21.length; t11++) + d10() !== e21[t11] && k10(); + } + function d10() { + w10(); + var t11 = e20[a10]; + return a10++, i10++, t11; + } + function h10() { + a10--, i10--; + } + function v10() { + for (var e21 = 4, t11 = 0; e21--; ) { + t11 <<= 4; + var n11 = d10().toLowerCase(); + n11 >= "a" && n11 <= "f" ? t11 += n11.charCodeAt() - wc + 10 : n11 >= "0" && n11 <= "9" ? t11 += +n11 : k10(); + } + return String.fromCharCode(t11); + } + function p10() { + for (var t11 = ""; e20[a10] >= "0" && e20[a10] <= "9"; ) + t11 += d10(); + if (t11.length) + return t11; + w10(), b10(); + } + function m10(e21, t11) { + g10(e21, t11, y10()); + } + function g10(e21, t11, n11) { + r10[e21] = r10[e21] || {}, r10[e21][t11] = n11; + } + function y10() { + return { line: o10, column: i10, pos: a10 }; + } + function b10() { + throw new SyntaxError("Unexpected token " + e20[a10] + " in JSON at position " + a10); + } + function k10() { + h10(), b10(); + } + function w10() { + if (a10 >= e20.length) + throw new SyntaxError("Unexpected end of JSON input"); + } + }, bc.stringify = function(e20, t10, n10) { + if (jc(e20)) { + var r10, o10, i10 = 0, a10 = "object" == Ho(n10) ? n10.space : n10; + switch (Ho(a10)) { + case "number": + var s10 = a10 > 10 ? 10 : a10 < 0 ? 0 : Math.floor(a10); + a10 = s10 && y10(s10, " "), r10 = s10, o10 = s10; + break; + case "string": + a10 = a10.slice(0, 10), r10 = 0, o10 = 0; + for (var c10 = 0; c10 < a10.length; c10++) { + switch (a10[c10]) { + case " ": + o10++; + break; + case " ": + o10 += 4; + break; + case "\r": + o10 = 0; + break; + case "\n": + o10 = 0, i10++; + break; + default: + throw new Error("whitespace characters not allowed in JSON"); + } + r10++; + } + break; + default: + a10 = void 0; + } + var l10 = "", u10 = {}, f10 = 0, d10 = 0, h10 = 0, v10 = n10 && n10.es6 && "function" == typeof Map; + return function e21(t11, n11, r11) { + switch (g10(r11, "value"), Ho(t11)) { + case "number": + case "bigint": + case "boolean": + p10("" + t11); + break; + case "string": + p10(Ec(t11)); + break; + case "object": + null === t11 ? p10("null") : "function" == typeof t11.toJSON ? p10(Ec(t11.toJSON())) : Array.isArray(t11) ? o11() : v10 ? t11.constructor.BYTES_PER_ELEMENT ? o11() : t11 instanceof Map ? s11() : t11 instanceof Set ? s11(true) : i11() : i11(); + } + function o11() { + if (t11.length) { + p10("["); + for (var o12 = n11 + 1, i12 = 0; i12 < t11.length; i12++) { + i12 && p10(","), m10(o12); + var a11 = jc(t11[i12]) ? t11[i12] : null; + e21(a11, o12, r11 + "/" + i12); + } + m10(n11), p10("]"); + } else + p10("[]"); + } + function i11() { + var o12 = Object.keys(t11); + if (o12.length) { + p10("{"); + for (var i12 = n11 + 1, s12 = 0; s12 < o12.length; s12++) { + var c11 = o12[s12], l11 = t11[c11]; + if (jc(l11)) { + s12 && p10(","); + var u11 = r11 + "/" + Tc(c11); + m10(i12), g10(u11, "key"), p10(Ec(c11)), g10(u11, "keyEnd"), p10(":"), a10 && p10(" "), e21(l11, i12, u11); + } + } + m10(n11), p10("}"); + } else + p10("{}"); + } + function s11(o12) { + if (t11.size) { + p10("{"); + for (var i12 = n11 + 1, s12 = true, c11 = t11.entries(), l11 = c11.next(); !l11.done; ) { + var u11 = l11.value, f11 = u11[0], d11 = !!o12 || u11[1]; + if (jc(d11)) { + s12 || p10(","), s12 = false; + var h11 = r11 + "/" + Tc(f11); + m10(i12), g10(h11, "key"), p10(Ec(f11)), g10(h11, "keyEnd"), p10(":"), a10 && p10(" "), e21(d11, i12, h11); + } + l11 = c11.next(); + } + m10(n11), p10("}"); + } else + p10("{}"); + } + g10(r11, "valueEnd"); + }(e20, 0, ""), { json: l10, pointers: u10 }; + } + function p10(e21) { + d10 += e21.length, h10 += e21.length, l10 += e21; + } + function m10(e21) { + if (a10) { + for (l10 += "\n" + y10(e21, a10), f10++, d10 = 0; e21--; ) + i10 ? (f10 += i10, d10 = o10) : d10 += o10, h10 += r10; + h10 += 1; + } + } + function g10(e21, t11) { + u10[e21] = u10[e21] || {}, u10[e21][t11] = { line: f10, column: d10, pos: h10 }; + } + function y10(e21, t11) { + return Array(e21 + 1).join(t11); + } + }; + var xc = ["number", "bigint", "boolean", "string", "object"]; + function jc(e20) { + return xc.indexOf(Ho(e20)) >= 0; + } + var Sc = /"|\\/g; + var Cc = /[\b]/g; + var $c = /\f/g; + var _c = /\n/g; + var Oc = /\r/g; + var Mc = /\t/g; + function Ec(e20) { + return '"' + (e20 = e20.replace(Sc, "\\$&").replace($c, "\\f").replace(Cc, "\\b").replace(_c, "\\n").replace(Oc, "\\r").replace(Mc, "\\t")) + '"'; + } + var Ac = /~/g; + var Pc = /\//g; + function Tc(e20) { + return e20.replace(Ac, "~0").replace(Pc, "~1"); + } + var Rc = function(e20) { + function t10(e21, n10) { + var r10; + return No(this, t10), (r10 = _o(this, t10, [e21 + " at position " + n10])).position = n10, r10; + } + return Ao(t10, $o(Error)), Do(t10); + }(); + var Nc = 92; + var Ic = 47; + var Dc = 42; + var qc = 123; + var zc = 125; + var Bc = 91; + var Lc = 93; + var Fc = 40; + var Vc = 41; + var Hc = 32; + var Wc = 10; + var Uc = 9; + var Jc = 13; + var Kc = 8; + var Gc = 12; + var Qc = 34; + var Yc = 43; + var Xc = 45; + var Zc = 39; + var el = 48; + var tl = 57; + var nl = 44; + var rl = 46; + var ol = 58; + var il = 59; + var al = 65; + var sl = 97; + var cl = 69; + var ll = 101; + var ul = 70; + var fl = 102; + var dl = 160; + var hl = 8192; + var vl = 8202; + var pl = 8239; + var ml = 8287; + var gl = 12288; + var yl = 8220; + var bl = 8221; + var kl = 8216; + var wl = 8217; + var xl = 96; + var jl = 180; + function Sl(e20) { + return e20 >= el && e20 <= tl || e20 >= al && e20 <= ul || e20 >= sl && e20 <= fl; + } + function Cl(e20) { + return e20 >= el && e20 <= tl; + } + function $l(e20) { + return e20 >= 32 && e20 <= 1114111; + } + function _l(e20) { + return Ol.test(e20) || Rl(e20.charCodeAt(0)); + } + var Ol = /^[,:[\]{}()\n+]$/; + function Ml(e20) { + return El.test(e20) || e20 && Rl(e20.charCodeAt(0)); + } + var El = /^[[{\w-]$/; + function Al(e20) { + return e20 === Wc || e20 === Jc || e20 === Uc || e20 === Kc || e20 === Gc; + } + function Pl(e20) { + return e20 === Hc || e20 === Wc || e20 === Uc || e20 === Jc; + } + function Tl(e20) { + return e20 === dl || e20 >= hl && e20 <= vl || e20 === pl || e20 === ml || e20 === gl; + } + function Rl(e20) { + return Nl(e20) || Dl(e20); + } + function Nl(e20) { + return e20 === Qc || e20 === yl || e20 === bl; + } + function Il(e20) { + return e20 === Qc; + } + function Dl(e20) { + return e20 === Zc || e20 === kl || e20 === wl || e20 === xl || e20 === jl; + } + function ql(e20) { + return e20 === Zc; + } + function zl(e20, t10) { + var n10 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], r10 = e20.lastIndexOf(t10); + return -1 !== r10 ? e20.substring(0, r10) + (n10 ? "" : e20.substring(r10 + 1)) : e20; + } + function Bl(e20, t10) { + var n10 = e20.length; + if (!Pl(e20.charCodeAt(n10 - 1))) + return e20 + t10; + for (; Pl(e20.charCodeAt(n10 - 1)); ) + n10--; + return e20.substring(0, n10) + t10 + e20.substring(n10); + } + function Ll(e20, t10, n10) { + return e20.substring(0, t10) + e20.substring(t10 + n10); + } + var Fl = { "\b": "\\b", "\f": "\\f", "\n": "\\n", "\r": "\\r", " ": "\\t" }; + var Vl = { '"': '"', "\\": "\\", "/": "/", b: "\b", f: "\f", n: "\n", r: "\r", t: " " }; + function Hl(e20) { + var t10 = 0, n10 = ""; + o10() || function() { + throw new Rc("Unexpected end of json string", e20.length); + }(); + var r10 = c10(nl); + for (r10 && i10(), Ml(e20[t10]) && function(e21) { + return /[,\n][ \t\r]*$/.test(e21); + }(n10) ? (r10 || (n10 = Bl(n10, ",")), function() { + var e21 = true, t11 = true; + for (; t11; ) { + if (e21) + e21 = false; + else + c10(nl) || (n10 = Bl(n10, ",")); + t11 = o10(); + } + t11 || (n10 = zl(n10, ",")); + n10 = "[\n".concat(n10, "\n]"); + }()) : r10 && (n10 = zl(n10, ",")); e20.charCodeAt(t10) === zc || e20.charCodeAt(t10) === Lc; ) + t10++, i10(); + if (t10 >= e20.length) + return n10; + function o10() { + i10(); + var r11 = function() { + if (e20.charCodeAt(t10) === qc) { + n10 += "{", t10++, i10(); + for (var r12 = true; t10 < e20.length && e20.charCodeAt(t10) !== zc; ) { + if (r12 ? (true, r12 = false) : (c10(nl) || (n10 = Bl(n10, ",")), i10()), !(u10() || d10())) { + e20.charCodeAt(t10) === zc || e20.charCodeAt(t10) === qc || e20.charCodeAt(t10) === Lc || e20.charCodeAt(t10) === Bc || void 0 === e20[t10] ? n10 = zl(n10, ",") : m10(); + break; + } + i10(); + var a11 = c10(ol), s11 = t10 >= e20.length; + a11 || (Ml(e20[t10]) || s11 ? n10 = Bl(n10, ":") : g10()), o10() || (a11 || s11 ? n10 += "null" : g10()); + } + return e20.charCodeAt(t10) === zc ? (n10 += "}", t10++) : n10 = Bl(n10, "}"), true; + } + return false; + }() || function() { + if (e20.charCodeAt(t10) === Bc) { + n10 += "[", t10++, i10(); + for (var r12 = true; t10 < e20.length && e20.charCodeAt(t10) !== Lc; ) { + if (r12) + r12 = false; + else + c10(nl) || (n10 = Bl(n10, ",")); + if (!o10()) { + n10 = zl(n10, ","); + break; + } + } + return e20.charCodeAt(t10) === Lc ? (n10 += "]", t10++) : n10 = Bl(n10, "]"), true; + } + return false; + }() || u10() || function() { + var r12 = t10; + if (e20.charCodeAt(t10) === Xc && (t10++, v10(r12))) + return true; + for (; Cl(e20.charCodeAt(t10)); ) + t10++; + if (e20.charCodeAt(t10) === rl) { + if (t10++, v10(r12)) + return true; + for (; Cl(e20.charCodeAt(t10)); ) + t10++; + } + if (e20.charCodeAt(t10) === ll || e20.charCodeAt(t10) === cl) { + if (t10++, e20.charCodeAt(t10) !== Xc && e20.charCodeAt(t10) !== Yc || t10++, v10(r12)) + return true; + for (; Cl(e20.charCodeAt(t10)); ) + t10++; + } + if (t10 > r12) { + var o11 = e20.slice(r12, t10), i11 = /^0\d/.test(o11); + return n10 += i11 ? '"'.concat(o11, '"') : o11, true; + } + return false; + }() || f10("true", "true") || f10("false", "false") || f10("null", "null") || f10("True", "true") || f10("False", "false") || f10("None", "null") || d10(); + return i10(), r11; + } + function i10() { + var e21 = t10, n11 = a10(); + do { + (n11 = s10()) && (n11 = a10()); + } while (n11); + return t10 > e21; + } + function a10() { + for (var r11, o11 = ""; (r11 = Pl(e20.charCodeAt(t10))) || Tl(e20.charCodeAt(t10)); ) + o11 += r11 ? e20[t10] : " ", t10++; + return o11.length > 0 && (n10 += o11, true); + } + function s10() { + if (e20.charCodeAt(t10) === Ic && e20.charCodeAt(t10 + 1) === Dc) { + for (; t10 < e20.length && !Wl(e20, t10); ) + t10++; + return t10 += 2, true; + } + if (e20.charCodeAt(t10) === Ic && e20.charCodeAt(t10 + 1) === Ic) { + for (; t10 < e20.length && e20.charCodeAt(t10) !== Wc; ) + t10++; + return true; + } + return false; + } + function c10(r11) { + return e20.charCodeAt(t10) === r11 && (n10 += e20[t10], t10++, true); + } + function l10() { + return function(n11) { + return e20.charCodeAt(t10) === n11 && (t10++, true); + }(Nc); + } + function u10() { + var r11 = arguments.length > 0 && void 0 !== arguments[0] && arguments[0], o11 = e20.charCodeAt(t10) === Nc; + if (o11 && (t10++, o11 = true), Rl(e20.charCodeAt(t10))) { + var a11 = Il(e20.charCodeAt(t10)) ? Il : ql(e20.charCodeAt(t10)) ? ql : Dl(e20.charCodeAt(t10)) ? Dl : Nl, s11 = t10, c11 = n10.length, f11 = '"'; + t10++; + for (var d11 = r11 ? function(t11) { + return _l(e20[t11]); + } : function(t11) { + return a11(e20.charCodeAt(t11)); + }; t10 < e20.length && !d11(t10); ) { + if (e20.charCodeAt(t10) === Nc) { + var h11 = e20.charAt(t10 + 1); + if (void 0 !== Vl[h11]) + f11 += e20.slice(t10, t10 + 2), t10 += 2; + else if ("u" === h11) { + for (var v11 = 2; v11 < 6 && Sl(e20.charCodeAt(t10 + v11)); ) + v11++; + 6 === v11 ? (f11 += e20.slice(t10, t10 + 6), t10 += 6) : t10 + v11 >= e20.length ? t10 = e20.length : y10(); + } else + f11 += h11, t10 += 2; + } else { + var m11 = e20.charAt(t10), g11 = e20.charCodeAt(t10); + g11 === Qc && e20.charCodeAt(t10 - 1) !== Nc ? (f11 += "\\" + m11, t10++) : Al(g11) ? (f11 += Fl[m11], t10++) : ($l(g11) || p10(m11), f11 += m11, t10++); + } + o11 && l10(); + } + var b10 = Rl(e20.charCodeAt(t10)); + b10 ? (f11 += '"', t10++) : f11 = Bl(f11, '"'), n10 += f11, i10(); + var k10 = t10 >= e20.length, w10 = _l(e20.charAt(t10)); + return !r11 && (b10 && !k10 && !w10 || !b10 && k10) ? (t10 = s11, n10 = n10.substring(0, c11), u10(true)) : (function() { + var r12 = false; + i10(); + for (; e20.charCodeAt(t10) === Yc; ) { + r12 = true, t10++, i10(); + var o12 = (n10 = zl(n10, '"', true)).length, a12 = u10(); + n10 = a12 ? Ll(n10, o12, 1) : Bl(n10, '"'); + } + }(), true); + } + return false; + } + function f10(r11, o11) { + return e20.slice(t10, t10 + r11.length) === r11 && (n10 += o11, t10 += r11.length, true); + } + function d10() { + for (var r11 = t10; t10 < e20.length && !_l(e20[t10]); ) + t10++; + if (t10 > r11) { + if (e20.charCodeAt(t10) === Fc) + return t10++, o10(), e20.charCodeAt(t10) === Vc && (t10++, e20.charCodeAt(t10) === il && t10++), true; + for (; Pl(e20.charCodeAt(t10 - 1)) && t10 > 0; ) + t10--; + var i11 = e20.slice(r11, t10); + return n10 += "undefined" === i11 ? "null" : JSON.stringify(i11), e20.charCodeAt(t10) === Qc && t10++, true; + } + } + function h10(n11) { + if (!Cl(e20.charCodeAt(t10))) { + var r11 = e20.slice(n11, t10); + throw new Rc("Invalid number '".concat(r11, "', expecting a digit ").concat(e20[t10] ? "but got '".concat(e20[t10], "'") : "but reached end of input"), t10); + } + } + function v10(r11) { + return t10 >= e20.length ? (n10 += e20.slice(r11, t10) + "0", true) : (h10(r11), false); + } + function p10(e21) { + throw new Rc("Invalid character " + JSON.stringify(e21), t10); + } + function m10() { + throw new Rc("Object key expected", t10); + } + function g10() { + throw new Rc("Colon expected", t10); + } + function y10() { + var n11 = e20.slice(t10, t10 + 6); + throw new Rc('Invalid unicode character "'.concat(n11, '"'), t10); + } + !function() { + throw new Rc("Unexpected character " + JSON.stringify(e20[t10]), t10); + }(); + } + function Wl(e20, t10) { + return "*" === e20[t10] && "/" === e20[t10 + 1]; + } + function Ul(e20) { + return parseInt(e20, 10); + } + function Jl(e20) { + return Kl.test(e20); + } + var Kl = /^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/; + function Gl(e20) { + return "object" === Ho(e20) && null !== e20 && "Object" === e20.constructor.name; + } + function Ql(e20) { + return "object" === Ho(e20) && null !== e20 && ("Object" === e20.constructor.name || "Array" === e20.constructor.name); + } + function Yl(e20) { + if ("number" == typeof e20) + return e20 > 9466848e5 && isFinite(e20) && Math.floor(e20) === e20 && !isNaN(new Date(e20).valueOf()); + if ("bigint" == typeof e20) + return Yl(Number(e20)); + try { + var t10 = e20 ? e20.valueOf() : e20; + if (t10 !== e20) + return Yl(t10); + } catch (e21) { + return false; + } + return false; + } + function Xl(e20) { + (Zl = Zl || window.document.createElement("div")).style.color = "", Zl.style.color = e20; + var t10 = Zl.style.color; + return "" !== t10 ? t10.replace(/\s+/g, "").toLowerCase() : null; + } + var Zl = null; + function eu(e20, t10) { + if ("number" == typeof e20 || "string" == typeof e20 || "boolean" == typeof e20 || void 0 === e20) + return Ho(e20); + if ("bigint" == typeof e20) + return "number"; + if (null === e20) + return "null"; + if (Array.isArray(e20)) + return "array"; + if (Gl(e20)) + return "object"; + var n10 = t10.stringify(e20); + return n10 && Jl(n10) ? "number" : "true" === n10 || "false" === n10 ? "boolean" : "null" === n10 ? "null" : "unknown"; + } + var tu = /^https?:\/\/\S+$/; + function nu(e20) { + return "string" == typeof e20 && tu.test(e20); + } + function ru(e20, t10) { + if ("" === e20) + return ""; + var n10 = e20.trim(); + return "null" === n10 ? null : "true" === n10 || "false" !== n10 && (Jl(n10) ? t10.parse(n10) : e20); + } + function ou(e20) { + return iu.test(e20); + } + var iu = /^-?[0-9]+$/; + var au = "object" == ("undefined" == typeof global ? "undefined" : Ho(global)) && global && global.Object === Object && global; + var su = "object" == ("undefined" == typeof self ? "undefined" : Ho(self)) && self && self.Object === Object && self; + var cu = au || su || Function("return this")(); + var lu = cu.Symbol; + var uu = Object.prototype; + var fu = uu.hasOwnProperty; + var du = uu.toString; + var hu = lu ? lu.toStringTag : void 0; + var vu = Object.prototype.toString; + var pu = "[object Null]"; + var mu = "[object Undefined]"; + var gu = lu ? lu.toStringTag : void 0; + function yu(e20) { + return null == e20 ? void 0 === e20 ? mu : pu : gu && gu in Object(e20) ? function(e21) { + var t10 = fu.call(e21, hu), n10 = e21[hu]; + try { + e21[hu] = void 0; + var r10 = true; + } catch (e23) { + } + var o10 = du.call(e21); + return r10 && (t10 ? e21[hu] = n10 : delete e21[hu]), o10; + }(e20) : function(e21) { + return vu.call(e21); + }(e20); + } + function bu(e20) { + return null != e20 && "object" == Ho(e20); + } + var ku = "[object Symbol]"; + function wu(e20) { + return "symbol" == Ho(e20) || bu(e20) && yu(e20) == ku; + } + var xu = NaN; + function ju(e20) { + return "number" == typeof e20 ? e20 : wu(e20) ? xu : +e20; + } + function Su(e20, t10) { + for (var n10 = -1, r10 = null == e20 ? 0 : e20.length, o10 = Array(r10); ++n10 < r10; ) + o10[n10] = t10(e20[n10], n10, e20); + return o10; + } + var Cu = Array.isArray; + var $u = 1 / 0; + var _u = lu ? lu.prototype : void 0; + var Ou = _u ? _u.toString : void 0; + function Mu(e20) { + if ("string" == typeof e20) + return e20; + if (Cu(e20)) + return Su(e20, Mu) + ""; + if (wu(e20)) + return Ou ? Ou.call(e20) : ""; + var t10 = e20 + ""; + return "0" == t10 && 1 / e20 == -$u ? "-0" : t10; + } + function Eu(e20, t10) { + return function(n10, r10) { + var o10; + if (void 0 === n10 && void 0 === r10) + return t10; + if (void 0 !== n10 && (o10 = n10), void 0 !== r10) { + if (void 0 === o10) + return r10; + "string" == typeof n10 || "string" == typeof r10 ? (n10 = Mu(n10), r10 = Mu(r10)) : (n10 = ju(n10), r10 = ju(r10)), o10 = e20(n10, r10); + } + return o10; + }; + } + var Au = Eu(function(e20, t10) { + return e20 + t10; + }, 0); + var Pu = /\s/; + function Tu(e20) { + for (var t10 = e20.length; t10-- && Pu.test(e20.charAt(t10)); ) + ; + return t10; + } + var Ru = /^\s+/; + function Nu(e20) { + return e20 ? e20.slice(0, Tu(e20) + 1).replace(Ru, "") : e20; + } + function Iu(e20) { + var t10 = Ho(e20); + return null != e20 && ("object" == t10 || "function" == t10); + } + var Du = NaN; + var qu = /^[-+]0x[0-9a-f]+$/i; + var zu = /^0b[01]+$/i; + var Bu = /^0o[0-7]+$/i; + var Lu = parseInt; + function Fu(e20) { + if ("number" == typeof e20) + return e20; + if (wu(e20)) + return Du; + if (Iu(e20)) { + var t10 = "function" == typeof e20.valueOf ? e20.valueOf() : e20; + e20 = Iu(t10) ? t10 + "" : t10; + } + if ("string" != typeof e20) + return 0 === e20 ? e20 : +e20; + e20 = Nu(e20); + var n10 = zu.test(e20); + return n10 || Bu.test(e20) ? Lu(e20.slice(2), n10 ? 2 : 8) : qu.test(e20) ? Du : +e20; + } + var Vu = 1 / 0; + var Hu = 17976931348623157e292; + function Wu(e20) { + return e20 ? (e20 = Fu(e20)) === Vu || e20 === -Vu ? (e20 < 0 ? -1 : 1) * Hu : e20 == e20 ? e20 : 0 : 0 === e20 ? e20 : 0; + } + function Uu(e20) { + var t10 = Wu(e20), n10 = t10 % 1; + return t10 == t10 ? n10 ? t10 - n10 : t10 : 0; + } + function Ju(e20, t10) { + if ("function" != typeof t10) + throw new TypeError("Expected a function"); + return e20 = Uu(e20), function() { + if (--e20 < 1) + return t10.apply(this, arguments); + }; + } + function Ku(e20) { + return e20; + } + var Gu = "[object AsyncFunction]"; + var Qu = "[object Function]"; + var Yu = "[object GeneratorFunction]"; + var Xu = "[object Proxy]"; + function Zu(e20) { + if (!Iu(e20)) + return false; + var t10 = yu(e20); + return t10 == Qu || t10 == Yu || t10 == Gu || t10 == Xu; + } + var ef; + var tf = cu["__core-js_shared__"]; + var nf = (ef = /[^.]+$/.exec(tf && tf.keys && tf.keys.IE_PROTO || "")) ? "Symbol(src)_1." + ef : ""; + var rf = Function.prototype.toString; + function of(e20) { + if (null != e20) { + try { + return rf.call(e20); + } catch (e21) { + } + try { + return e20 + ""; + } catch (e21) { + } + } + return ""; + } + var af = /^\[object .+?Constructor\]$/; + var sf = Function.prototype; + var cf = Object.prototype; + var lf = sf.toString; + var uf = cf.hasOwnProperty; + var ff = RegExp("^" + lf.call(uf).replace(/[\\^$.*+?()[\]{}|]/g, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"); + function df(e20) { + return !(!Iu(e20) || function(e21) { + return !!nf && nf in e21; + }(e20)) && (Zu(e20) ? ff : af).test(of(e20)); + } + function hf(e20, t10) { + var n10 = function(e21, t11) { + return null == e21 ? void 0 : e21[t11]; + }(e20, t10); + return df(n10) ? n10 : void 0; + } + var vf = hf(cu, "WeakMap"); + var pf = vf && new vf(); + var mf = pf ? function(e20, t10) { + return pf.set(e20, t10), e20; + } : Ku; + var gf = Object.create; + var yf = /* @__PURE__ */ function() { + function e20() { + } + return function(t10) { + if (!Iu(t10)) + return {}; + if (gf) + return gf(t10); + e20.prototype = t10; + var n10 = new e20(); + return e20.prototype = void 0, n10; + }; + }(); + function bf(e20) { + return function() { + var t10 = arguments; + switch (t10.length) { + case 0: + return new e20(); + case 1: + return new e20(t10[0]); + case 2: + return new e20(t10[0], t10[1]); + case 3: + return new e20(t10[0], t10[1], t10[2]); + case 4: + return new e20(t10[0], t10[1], t10[2], t10[3]); + case 5: + return new e20(t10[0], t10[1], t10[2], t10[3], t10[4]); + case 6: + return new e20(t10[0], t10[1], t10[2], t10[3], t10[4], t10[5]); + case 7: + return new e20(t10[0], t10[1], t10[2], t10[3], t10[4], t10[5], t10[6]); + } + var n10 = yf(e20.prototype), r10 = e20.apply(n10, t10); + return Iu(r10) ? r10 : n10; + }; + } + var kf = 1; + function wf(e20, t10, n10) { + switch (n10.length) { + case 0: + return e20.call(t10); + case 1: + return e20.call(t10, n10[0]); + case 2: + return e20.call(t10, n10[0], n10[1]); + case 3: + return e20.call(t10, n10[0], n10[1], n10[2]); + } + return e20.apply(t10, n10); + } + var xf = Math.max; + function jf(e20, t10, n10, r10) { + for (var o10 = -1, i10 = e20.length, a10 = n10.length, s10 = -1, c10 = t10.length, l10 = xf(i10 - a10, 0), u10 = Array(c10 + l10), f10 = !r10; ++s10 < c10; ) + u10[s10] = t10[s10]; + for (; ++o10 < a10; ) + (f10 || o10 < i10) && (u10[n10[o10]] = e20[o10]); + for (; l10--; ) + u10[s10++] = e20[o10++]; + return u10; + } + var Sf = Math.max; + function Cf(e20, t10, n10, r10) { + for (var o10 = -1, i10 = e20.length, a10 = -1, s10 = n10.length, c10 = -1, l10 = t10.length, u10 = Sf(i10 - s10, 0), f10 = Array(u10 + l10), d10 = !r10; ++o10 < u10; ) + f10[o10] = e20[o10]; + for (var h10 = o10; ++c10 < l10; ) + f10[h10 + c10] = t10[c10]; + for (; ++a10 < s10; ) + (d10 || o10 < i10) && (f10[h10 + n10[a10]] = e20[o10++]); + return f10; + } + function $f() { + } + var _f = 4294967295; + function Of(e20) { + this.__wrapped__ = e20, this.__actions__ = [], this.__dir__ = 1, this.__filtered__ = false, this.__iteratees__ = [], this.__takeCount__ = _f, this.__views__ = []; + } + function Mf() { + } + Of.prototype = yf($f.prototype), Of.prototype.constructor = Of; + var Ef = pf ? function(e20) { + return pf.get(e20); + } : Mf; + var Af = {}; + var Pf = Object.prototype.hasOwnProperty; + function Tf(e20) { + for (var t10 = e20.name + "", n10 = Af[t10], r10 = Pf.call(Af, t10) ? n10.length : 0; r10--; ) { + var o10 = n10[r10], i10 = o10.func; + if (null == i10 || i10 == e20) + return o10.name; + } + return t10; + } + function Rf(e20, t10) { + this.__wrapped__ = e20, this.__actions__ = [], this.__chain__ = !!t10, this.__index__ = 0, this.__values__ = void 0; + } + function Nf(e20, t10) { + var n10 = -1, r10 = e20.length; + for (t10 || (t10 = Array(r10)); ++n10 < r10; ) + t10[n10] = e20[n10]; + return t10; + } + function If(e20) { + if (e20 instanceof Of) + return e20.clone(); + var t10 = new Rf(e20.__wrapped__, e20.__chain__); + return t10.__actions__ = Nf(e20.__actions__), t10.__index__ = e20.__index__, t10.__values__ = e20.__values__, t10; + } + Rf.prototype = yf($f.prototype), Rf.prototype.constructor = Rf; + var Df = Object.prototype.hasOwnProperty; + function qf(e20) { + if (bu(e20) && !Cu(e20) && !(e20 instanceof Of)) { + if (e20 instanceof Rf) + return e20; + if (Df.call(e20, "__wrapped__")) + return If(e20); + } + return new Rf(e20); + } + function zf(e20) { + var t10 = Tf(e20), n10 = qf[t10]; + if ("function" != typeof n10 || !(t10 in Of.prototype)) + return false; + if (e20 === n10) + return true; + var r10 = Ef(n10); + return !!r10 && e20 === r10[0]; + } + qf.prototype = $f.prototype, qf.prototype.constructor = qf; + var Bf = Date.now; + function Lf(e20) { + var t10 = 0, n10 = 0; + return function() { + var r10 = Bf(), o10 = 16 - (r10 - n10); + if (n10 = r10, o10 > 0) { + if (++t10 >= 800) + return arguments[0]; + } else + t10 = 0; + return e20.apply(void 0, arguments); + }; + } + var Ff = Lf(mf); + var Vf = /\{\n\/\* \[wrapped with (.+)\] \*/; + var Hf = /,? & /; + var Wf = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/; + function Uf(e20) { + return function() { + return e20; + }; + } + var Jf = function() { + try { + var e20 = hf(Object, "defineProperty"); + return e20({}, "", {}), e20; + } catch (e21) { + } + }(); + var Kf = Jf ? function(e20, t10) { + return Jf(e20, "toString", { configurable: true, enumerable: false, value: Uf(t10), writable: true }); + } : Ku; + var Gf = Lf(Kf); + function Qf(e20, t10) { + for (var n10 = -1, r10 = null == e20 ? 0 : e20.length; ++n10 < r10 && false !== t10(e20[n10], n10, e20); ) + ; + return e20; + } + function Yf(e20, t10, n10, r10) { + for (var o10 = e20.length, i10 = n10 + (r10 ? 1 : -1); r10 ? i10-- : ++i10 < o10; ) + if (t10(e20[i10], i10, e20)) + return i10; + return -1; + } + function Xf(e20) { + return e20 != e20; + } + function Zf(e20, t10, n10) { + return t10 == t10 ? function(e21, t11, n11) { + for (var r10 = n11 - 1, o10 = e21.length; ++r10 < o10; ) + if (e21[r10] === t11) + return r10; + return -1; + }(e20, t10, n10) : Yf(e20, Xf, n10); + } + function ed(e20, t10) { + return !!(null == e20 ? 0 : e20.length) && Zf(e20, t10, 0) > -1; + } + var td = [["ary", 128], ["bind", 1], ["bindKey", 2], ["curry", 8], ["curryRight", 16], ["flip", 512], ["partial", 32], ["partialRight", 64], ["rearg", 256]]; + function nd(e20, t10, n10) { + var r10 = t10 + ""; + return Gf(e20, function(e21, t11) { + var n11 = t11.length; + if (!n11) + return e21; + var r11 = n11 - 1; + return t11[r11] = (n11 > 1 ? "& " : "") + t11[r11], t11 = t11.join(n11 > 2 ? ", " : " "), e21.replace(Wf, "{\n/* [wrapped with " + t11 + "] */\n"); + }(r10, function(e21, t11) { + return Qf(td, function(n11) { + var r11 = "_." + n11[0]; + t11 & n11[1] && !ed(e21, r11) && e21.push(r11); + }), e21.sort(); + }(function(e21) { + var t11 = e21.match(Vf); + return t11 ? t11[1].split(Hf) : []; + }(r10), n10))); + } + var rd = 1; + var od = 2; + var id = 4; + var ad = 8; + var sd = 32; + var cd = 64; + function ld(e20, t10, n10, r10, o10, i10, a10, s10, c10, l10) { + var u10 = t10 & ad; + t10 |= u10 ? sd : cd, (t10 &= ~(u10 ? cd : sd)) & id || (t10 &= ~(rd | od)); + var f10 = [e20, t10, o10, u10 ? i10 : void 0, u10 ? a10 : void 0, u10 ? void 0 : i10, u10 ? void 0 : a10, s10, c10, l10], d10 = n10.apply(void 0, f10); + return zf(e20) && Ff(d10, f10), d10.placeholder = r10, nd(d10, e20, t10); + } + function ud(e20) { + return e20.placeholder; + } + var fd = 9007199254740991; + var dd = /^(?:0|[1-9]\d*)$/; + function hd(e20, t10) { + var n10 = Ho(e20); + return !!(t10 = null == t10 ? fd : t10) && ("number" == n10 || "symbol" != n10 && dd.test(e20)) && e20 > -1 && e20 % 1 == 0 && e20 < t10; + } + var vd = Math.min; + var pd = "__lodash_placeholder__"; + function md(e20, t10) { + for (var n10 = -1, r10 = e20.length, o10 = 0, i10 = []; ++n10 < r10; ) { + var a10 = e20[n10]; + a10 !== t10 && a10 !== pd || (e20[n10] = pd, i10[o10++] = n10); + } + return i10; + } + var gd = 1; + var yd = 2; + var bd = 8; + var kd = 16; + var wd = 128; + var xd = 512; + function jd(e20, t10, n10, r10, o10, i10, a10, s10, c10, l10) { + var u10 = t10 & wd, f10 = t10 & gd, d10 = t10 & yd, h10 = t10 & (bd | kd), v10 = t10 & xd, p10 = d10 ? void 0 : bf(e20); + return function m10() { + for (var g10 = arguments.length, y10 = Array(g10), b10 = g10; b10--; ) + y10[b10] = arguments[b10]; + if (h10) + var k10 = ud(m10), w10 = function(e21, t11) { + for (var n11 = e21.length, r11 = 0; n11--; ) + e21[n11] === t11 && ++r11; + return r11; + }(y10, k10); + if (r10 && (y10 = jf(y10, r10, o10, h10)), i10 && (y10 = Cf(y10, i10, a10, h10)), g10 -= w10, h10 && g10 < l10) { + var x10 = md(y10, k10); + return ld(e20, t10, jd, m10.placeholder, n10, y10, x10, s10, c10, l10 - g10); + } + var j10 = f10 ? n10 : this, S10 = d10 ? j10[e20] : e20; + return g10 = y10.length, s10 ? y10 = function(e21, t11) { + for (var n11 = e21.length, r11 = vd(t11.length, n11), o11 = Nf(e21); r11--; ) { + var i11 = t11[r11]; + e21[r11] = hd(i11, n11) ? o11[i11] : void 0; + } + return e21; + }(y10, s10) : v10 && g10 > 1 && y10.reverse(), u10 && c10 < g10 && (y10.length = c10), this && this !== cu && this instanceof m10 && (S10 = p10 || bf(S10)), S10.apply(j10, y10); + }; + } + var Sd = 1; + var Cd = "__lodash_placeholder__"; + var $d = 1; + var _d = 2; + var Od = 4; + var Md = 8; + var Ed = 128; + var Ad = 256; + var Pd = Math.min; + var Td = "Expected a function"; + var Rd = 1; + var Nd = 2; + var Id = 8; + var Dd = 16; + var qd = 32; + var zd = 64; + var Bd = Math.max; + function Ld(e20, t10, n10, r10, o10, i10, a10, s10) { + var c10 = t10 & Nd; + if (!c10 && "function" != typeof e20) + throw new TypeError(Td); + var l10 = r10 ? r10.length : 0; + if (l10 || (t10 &= ~(qd | zd), r10 = o10 = void 0), a10 = void 0 === a10 ? a10 : Bd(Uu(a10), 0), s10 = void 0 === s10 ? s10 : Uu(s10), l10 -= o10 ? o10.length : 0, t10 & zd) { + var u10 = r10, f10 = o10; + r10 = o10 = void 0; + } + var d10 = c10 ? void 0 : Ef(e20), h10 = [e20, t10, n10, r10, o10, u10, f10, i10, a10, s10]; + if (d10 && function(e21, t11) { + var n11 = e21[1], r11 = t11[1], o11 = n11 | r11, i11 = o11 < ($d | _d | Ed), a11 = r11 == Ed && n11 == Md || r11 == Ed && n11 == Ad && e21[7].length <= t11[8] || r11 == (Ed | Ad) && t11[7].length <= t11[8] && n11 == Md; + if (!i11 && !a11) + return e21; + r11 & $d && (e21[2] = t11[2], o11 |= n11 & $d ? 0 : Od); + var s11 = t11[3]; + if (s11) { + var c11 = e21[3]; + e21[3] = c11 ? jf(c11, s11, t11[4]) : s11, e21[4] = c11 ? md(e21[3], Cd) : t11[4]; + } + (s11 = t11[5]) && (c11 = e21[5], e21[5] = c11 ? Cf(c11, s11, t11[6]) : s11, e21[6] = c11 ? md(e21[5], Cd) : t11[6]), (s11 = t11[7]) && (e21[7] = s11), r11 & Ed && (e21[8] = null == e21[8] ? t11[8] : Pd(e21[8], t11[8])), null == e21[9] && (e21[9] = t11[9]), e21[0] = t11[0], e21[1] = o11; + }(h10, d10), e20 = h10[0], t10 = h10[1], n10 = h10[2], r10 = h10[3], o10 = h10[4], !(s10 = h10[9] = void 0 === h10[9] ? c10 ? 0 : e20.length : Bd(h10[9] - l10, 0)) && t10 & (Id | Dd) && (t10 &= ~(Id | Dd)), t10 && t10 != Rd) + v10 = t10 == Id || t10 == Dd ? function(e21, t11, n11) { + var r11 = bf(e21); + return function o11() { + for (var i11 = arguments.length, a11 = Array(i11), s11 = i11, c11 = ud(o11); s11--; ) + a11[s11] = arguments[s11]; + var l11 = i11 < 3 && a11[0] !== c11 && a11[i11 - 1] !== c11 ? [] : md(a11, c11); + return (i11 -= l11.length) < n11 ? ld(e21, t11, jd, o11.placeholder, void 0, a11, l11, void 0, void 0, n11 - i11) : wf(this && this !== cu && this instanceof o11 ? r11 : e21, this, a11); + }; + }(e20, t10, s10) : t10 != qd && t10 != (Rd | qd) || o10.length ? jd.apply(void 0, h10) : function(e21, t11, n11, r11) { + var o11 = t11 & Sd, i11 = bf(e21); + return function t12() { + for (var a11 = -1, s11 = arguments.length, c11 = -1, l11 = r11.length, u11 = Array(l11 + s11), f11 = this && this !== cu && this instanceof t12 ? i11 : e21; ++c11 < l11; ) + u11[c11] = r11[c11]; + for (; s11--; ) + u11[c11++] = arguments[++a11]; + return wf(f11, o11 ? n11 : this, u11); + }; + }(e20, t10, n10, r10); + else + var v10 = function(e21, t11, n11) { + var r11 = t11 & kf, o11 = bf(e21); + return function t12() { + return (this && this !== cu && this instanceof t12 ? o11 : e21).apply(r11 ? n11 : this, arguments); + }; + }(e20, t10, n10); + return nd((d10 ? mf : Ff)(v10, h10), e20, t10); + } + var Fd = 128; + function Vd(e20, t10, n10) { + return t10 = n10 ? void 0 : t10, t10 = e20 && null == t10 ? e20.length : t10, Ld(e20, Fd, void 0, void 0, void 0, void 0, t10); + } + function Hd(e20, t10, n10) { + "__proto__" == t10 && Jf ? Jf(e20, t10, { configurable: true, enumerable: true, value: n10, writable: true }) : e20[t10] = n10; + } + function Wd(e20, t10) { + return e20 === t10 || e20 != e20 && t10 != t10; + } + var Ud = Object.prototype.hasOwnProperty; + function Jd(e20, t10, n10) { + var r10 = e20[t10]; + Ud.call(e20, t10) && Wd(r10, n10) && (void 0 !== n10 || t10 in e20) || Hd(e20, t10, n10); + } + function Kd(e20, t10, n10, r10) { + var o10 = !n10; + n10 || (n10 = {}); + for (var i10 = -1, a10 = t10.length; ++i10 < a10; ) { + var s10 = t10[i10], c10 = r10 ? r10(n10[s10], e20[s10], s10, n10, e20) : void 0; + void 0 === c10 && (c10 = e20[s10]), o10 ? Hd(n10, s10, c10) : Jd(n10, s10, c10); + } + return n10; + } + var Gd = Math.max; + function Qd(e20, t10, n10) { + return t10 = Gd(void 0 === t10 ? e20.length - 1 : t10, 0), function() { + for (var r10 = arguments, o10 = -1, i10 = Gd(r10.length - t10, 0), a10 = Array(i10); ++o10 < i10; ) + a10[o10] = r10[t10 + o10]; + o10 = -1; + for (var s10 = Array(t10 + 1); ++o10 < t10; ) + s10[o10] = r10[o10]; + return s10[t10] = n10(a10), wf(e20, this, s10); + }; + } + function Yd(e20, t10) { + return Gf(Qd(e20, t10, Ku), e20 + ""); + } + var Xd = 9007199254740991; + function Zd(e20) { + return "number" == typeof e20 && e20 > -1 && e20 % 1 == 0 && e20 <= Xd; + } + function eh(e20) { + return null != e20 && Zd(e20.length) && !Zu(e20); + } + function th(e20, t10, n10) { + if (!Iu(n10)) + return false; + var r10 = Ho(t10); + return !!("number" == r10 ? eh(n10) && hd(t10, n10.length) : "string" == r10 && t10 in n10) && Wd(n10[t10], e20); + } + function nh(e20) { + return Yd(function(t10, n10) { + var r10 = -1, o10 = n10.length, i10 = o10 > 1 ? n10[o10 - 1] : void 0, a10 = o10 > 2 ? n10[2] : void 0; + for (i10 = e20.length > 3 && "function" == typeof i10 ? (o10--, i10) : void 0, a10 && th(n10[0], n10[1], a10) && (i10 = o10 < 3 ? void 0 : i10, o10 = 1), t10 = Object(t10); ++r10 < o10; ) { + var s10 = n10[r10]; + s10 && e20(t10, s10, r10, i10); + } + return t10; + }); + } + var rh = Object.prototype; + function oh(e20) { + var t10 = e20 && e20.constructor; + return e20 === ("function" == typeof t10 && t10.prototype || rh); + } + function ih(e20, t10) { + for (var n10 = -1, r10 = Array(e20); ++n10 < e20; ) + r10[n10] = t10(n10); + return r10; + } + function ah(e20) { + return bu(e20) && "[object Arguments]" == yu(e20); + } + var sh = Object.prototype; + var ch = sh.hasOwnProperty; + var lh = sh.propertyIsEnumerable; + var uh = ah(/* @__PURE__ */ function() { + return arguments; + }()) ? ah : function(e20) { + return bu(e20) && ch.call(e20, "callee") && !lh.call(e20, "callee"); + }; + function fh() { + return false; + } + var dh = "object" == ("undefined" == typeof exports ? "undefined" : Ho(exports)) && exports && !exports.nodeType && exports; + var hh = dh && "object" == ("undefined" == typeof module ? "undefined" : Ho(module)) && module && !module.nodeType && module; + var vh = hh && hh.exports === dh ? cu.Buffer : void 0; + var ph = (vh ? vh.isBuffer : void 0) || fh; + var mh = {}; + function gh(e20) { + return function(t10) { + return e20(t10); + }; + } + mh["[object Float32Array]"] = mh["[object Float64Array]"] = mh["[object Int8Array]"] = mh["[object Int16Array]"] = mh["[object Int32Array]"] = mh["[object Uint8Array]"] = mh["[object Uint8ClampedArray]"] = mh["[object Uint16Array]"] = mh["[object Uint32Array]"] = true, mh["[object Arguments]"] = mh["[object Array]"] = mh["[object ArrayBuffer]"] = mh["[object Boolean]"] = mh["[object DataView]"] = mh["[object Date]"] = mh["[object Error]"] = mh["[object Function]"] = mh["[object Map]"] = mh["[object Number]"] = mh["[object Object]"] = mh["[object RegExp]"] = mh["[object Set]"] = mh["[object String]"] = mh["[object WeakMap]"] = false; + var yh = "object" == ("undefined" == typeof exports ? "undefined" : Ho(exports)) && exports && !exports.nodeType && exports; + var bh = yh && "object" == ("undefined" == typeof module ? "undefined" : Ho(module)) && module && !module.nodeType && module; + var kh = bh && bh.exports === yh && au.process; + var wh = function() { + try { + var e20 = bh && bh.require && bh.require("util").types; + return e20 || kh && kh.binding && kh.binding("util"); + } catch (e21) { + } + }(); + var xh = wh && wh.isTypedArray; + var jh = xh ? gh(xh) : function(e20) { + return bu(e20) && Zd(e20.length) && !!mh[yu(e20)]; + }; + var Sh = Object.prototype.hasOwnProperty; + function Ch(e20, t10) { + var n10 = Cu(e20), r10 = !n10 && uh(e20), o10 = !n10 && !r10 && ph(e20), i10 = !n10 && !r10 && !o10 && jh(e20), a10 = n10 || r10 || o10 || i10, s10 = a10 ? ih(e20.length, String) : [], c10 = s10.length; + for (var l10 in e20) + !t10 && !Sh.call(e20, l10) || a10 && ("length" == l10 || o10 && ("offset" == l10 || "parent" == l10) || i10 && ("buffer" == l10 || "byteLength" == l10 || "byteOffset" == l10) || hd(l10, c10)) || s10.push(l10); + return s10; + } + function $h(e20, t10) { + return function(n10) { + return e20(t10(n10)); + }; + } + var _h = $h(Object.keys, Object); + var Oh = Object.prototype.hasOwnProperty; + function Mh(e20) { + if (!oh(e20)) + return _h(e20); + var t10 = []; + for (var n10 in Object(e20)) + Oh.call(e20, n10) && "constructor" != n10 && t10.push(n10); + return t10; + } + function Eh(e20) { + return eh(e20) ? Ch(e20) : Mh(e20); + } + var Ah = Object.prototype.hasOwnProperty; + var Ph = nh(function(e20, t10) { + if (oh(t10) || eh(t10)) + Kd(t10, Eh(t10), e20); + else + for (var n10 in t10) + Ah.call(t10, n10) && Jd(e20, n10, t10[n10]); + }); + var Th = Ph; + var Rh = Object.prototype.hasOwnProperty; + function Nh(e20) { + if (!Iu(e20)) + return function(e21) { + var t11 = []; + if (null != e21) + for (var n11 in Object(e21)) + t11.push(n11); + return t11; + }(e20); + var t10 = oh(e20), n10 = []; + for (var r10 in e20) + ("constructor" != r10 || !t10 && Rh.call(e20, r10)) && n10.push(r10); + return n10; + } + function Ih(e20) { + return eh(e20) ? Ch(e20, true) : Nh(e20); + } + var Dh = nh(function(e20, t10) { + Kd(t10, Ih(t10), e20); + }); + var qh = Dh; + var zh = nh(function(e20, t10, n10, r10) { + Kd(t10, Ih(t10), e20, r10); + }); + var Bh = zh; + var Lh = nh(function(e20, t10, n10, r10) { + Kd(t10, Eh(t10), e20, r10); + }); + var Fh = Lh; + var Vh = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/; + var Hh = /^\w*$/; + function Wh(e20, t10) { + if (Cu(e20)) + return false; + var n10 = Ho(e20); + return !("number" != n10 && "symbol" != n10 && "boolean" != n10 && null != e20 && !wu(e20)) || (Hh.test(e20) || !Vh.test(e20) || null != t10 && e20 in Object(t10)); + } + var Uh = hf(Object, "create"); + var Jh = Object.prototype.hasOwnProperty; + var Kh = Object.prototype.hasOwnProperty; + function Gh(e20) { + var t10 = -1, n10 = null == e20 ? 0 : e20.length; + for (this.clear(); ++t10 < n10; ) { + var r10 = e20[t10]; + this.set(r10[0], r10[1]); + } + } + function Qh(e20, t10) { + for (var n10 = e20.length; n10--; ) + if (Wd(e20[n10][0], t10)) + return n10; + return -1; + } + Gh.prototype.clear = function() { + this.__data__ = Uh ? Uh(null) : {}, this.size = 0; + }, Gh.prototype.delete = function(e20) { + var t10 = this.has(e20) && delete this.__data__[e20]; + return this.size -= t10 ? 1 : 0, t10; + }, Gh.prototype.get = function(e20) { + var t10 = this.__data__; + if (Uh) { + var n10 = t10[e20]; + return "__lodash_hash_undefined__" === n10 ? void 0 : n10; + } + return Jh.call(t10, e20) ? t10[e20] : void 0; + }, Gh.prototype.has = function(e20) { + var t10 = this.__data__; + return Uh ? void 0 !== t10[e20] : Kh.call(t10, e20); + }, Gh.prototype.set = function(e20, t10) { + var n10 = this.__data__; + return this.size += this.has(e20) ? 0 : 1, n10[e20] = Uh && void 0 === t10 ? "__lodash_hash_undefined__" : t10, this; + }; + var Yh = Array.prototype.splice; + function Xh(e20) { + var t10 = -1, n10 = null == e20 ? 0 : e20.length; + for (this.clear(); ++t10 < n10; ) { + var r10 = e20[t10]; + this.set(r10[0], r10[1]); + } + } + Xh.prototype.clear = function() { + this.__data__ = [], this.size = 0; + }, Xh.prototype.delete = function(e20) { + var t10 = this.__data__, n10 = Qh(t10, e20); + return !(n10 < 0) && (n10 == t10.length - 1 ? t10.pop() : Yh.call(t10, n10, 1), --this.size, true); + }, Xh.prototype.get = function(e20) { + var t10 = this.__data__, n10 = Qh(t10, e20); + return n10 < 0 ? void 0 : t10[n10][1]; + }, Xh.prototype.has = function(e20) { + return Qh(this.__data__, e20) > -1; + }, Xh.prototype.set = function(e20, t10) { + var n10 = this.__data__, r10 = Qh(n10, e20); + return r10 < 0 ? (++this.size, n10.push([e20, t10])) : n10[r10][1] = t10, this; + }; + var Zh = hf(cu, "Map"); + function ev(e20, t10) { + var n10 = e20.__data__; + return function(e21) { + var t11 = Ho(e21); + return "string" == t11 || "number" == t11 || "symbol" == t11 || "boolean" == t11 ? "__proto__" !== e21 : null === e21; + }(t10) ? n10["string" == typeof t10 ? "string" : "hash"] : n10.map; + } + function tv(e20) { + var t10 = -1, n10 = null == e20 ? 0 : e20.length; + for (this.clear(); ++t10 < n10; ) { + var r10 = e20[t10]; + this.set(r10[0], r10[1]); + } + } + tv.prototype.clear = function() { + this.size = 0, this.__data__ = { hash: new Gh(), map: new (Zh || Xh)(), string: new Gh() }; + }, tv.prototype.delete = function(e20) { + var t10 = ev(this, e20).delete(e20); + return this.size -= t10 ? 1 : 0, t10; + }, tv.prototype.get = function(e20) { + return ev(this, e20).get(e20); + }, tv.prototype.has = function(e20) { + return ev(this, e20).has(e20); + }, tv.prototype.set = function(e20, t10) { + var n10 = ev(this, e20), r10 = n10.size; + return n10.set(e20, t10), this.size += n10.size == r10 ? 0 : 1, this; + }; + var nv = "Expected a function"; + function rv(e20, t10) { + if ("function" != typeof e20 || null != t10 && "function" != typeof t10) + throw new TypeError(nv); + var n10 = function n11() { + var r10 = arguments, o10 = t10 ? t10.apply(this, r10) : r10[0], i10 = n11.cache; + if (i10.has(o10)) + return i10.get(o10); + var a10 = e20.apply(this, r10); + return n11.cache = i10.set(o10, a10) || i10, a10; + }; + return n10.cache = new (rv.Cache || tv)(), n10; + } + rv.Cache = tv; + var ov = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + var iv = /\\(\\)?/g; + var av = function(e20) { + var t10 = rv(e20, function(e21) { + return 500 === n10.size && n10.clear(), e21; + }), n10 = t10.cache; + return t10; + }(function(e20) { + var t10 = []; + return 46 === e20.charCodeAt(0) && t10.push(""), e20.replace(ov, function(e21, n10, r10, o10) { + t10.push(r10 ? o10.replace(iv, "$1") : n10 || e21); + }), t10; + }); + function sv(e20) { + return null == e20 ? "" : Mu(e20); + } + function cv(e20, t10) { + return Cu(e20) ? e20 : Wh(e20, t10) ? [e20] : av(sv(e20)); + } + var lv = 1 / 0; + function uv(e20) { + if ("string" == typeof e20 || wu(e20)) + return e20; + var t10 = e20 + ""; + return "0" == t10 && 1 / e20 == -lv ? "-0" : t10; + } + function fv(e20, t10) { + for (var n10 = 0, r10 = (t10 = cv(t10, e20)).length; null != e20 && n10 < r10; ) + e20 = e20[uv(t10[n10++])]; + return n10 && n10 == r10 ? e20 : void 0; + } + function dv(e20, t10, n10) { + var r10 = null == e20 ? void 0 : fv(e20, t10); + return void 0 === r10 ? n10 : r10; + } + function hv(e20, t10) { + for (var n10 = -1, r10 = t10.length, o10 = Array(r10), i10 = null == e20; ++n10 < r10; ) + o10[n10] = i10 ? void 0 : dv(e20, t10[n10]); + return o10; + } + function vv(e20, t10) { + for (var n10 = -1, r10 = t10.length, o10 = e20.length; ++n10 < r10; ) + e20[o10 + n10] = t10[n10]; + return e20; + } + var pv = lu ? lu.isConcatSpreadable : void 0; + function mv(e20) { + return Cu(e20) || uh(e20) || !!(pv && e20 && e20[pv]); + } + function gv(e20, t10, n10, r10, o10) { + var i10 = -1, a10 = e20.length; + for (n10 || (n10 = mv), o10 || (o10 = []); ++i10 < a10; ) { + var s10 = e20[i10]; + t10 > 0 && n10(s10) ? t10 > 1 ? gv(s10, t10 - 1, n10, r10, o10) : vv(o10, s10) : r10 || (o10[o10.length] = s10); + } + return o10; + } + function yv(e20) { + return (null == e20 ? 0 : e20.length) ? gv(e20, 1) : []; + } + function bv(e20) { + return Gf(Qd(e20, void 0, yv), e20 + ""); + } + var kv = bv(hv); + var wv = $h(Object.getPrototypeOf, Object); + var xv = "[object Object]"; + var jv = Function.prototype; + var Sv = Object.prototype; + var Cv = jv.toString; + var $v = Sv.hasOwnProperty; + var _v = Cv.call(Object); + function Ov(e20) { + if (!bu(e20) || yu(e20) != xv) + return false; + var t10 = wv(e20); + if (null === t10) + return true; + var n10 = $v.call(t10, "constructor") && t10.constructor; + return "function" == typeof n10 && n10 instanceof n10 && Cv.call(n10) == _v; + } + var Mv = "[object DOMException]"; + var Ev = "[object Error]"; + function Av(e20) { + if (!bu(e20)) + return false; + var t10 = yu(e20); + return t10 == Ev || t10 == Mv || "string" == typeof e20.message && "string" == typeof e20.name && !Ov(e20); + } + var Pv = Yd(function(e20, t10) { + try { + return wf(e20, void 0, t10); + } catch (e21) { + return Av(e21) ? e21 : new Error(e21); + } + }); + var Tv = Pv; + var Rv = "Expected a function"; + function Nv(e20, t10) { + var n10; + if ("function" != typeof t10) + throw new TypeError(Rv); + return e20 = Uu(e20), function() { + return --e20 > 0 && (n10 = t10.apply(this, arguments)), e20 <= 1 && (t10 = void 0), n10; + }; + } + var Iv = Yd(function(e20, t10, n10) { + var r10 = 1; + if (n10.length) { + var o10 = md(n10, ud(Iv)); + r10 |= 32; + } + return Ld(e20, r10, t10, n10, o10); + }); + Iv.placeholder = {}; + var Dv = Iv; + var qv = bv(function(e20, t10) { + return Qf(t10, function(t11) { + t11 = uv(t11), Hd(e20, t11, Dv(e20[t11], e20)); + }), e20; + }); + var zv = qv; + var Bv = Yd(function(e20, t10, n10) { + var r10 = 3; + if (n10.length) { + var o10 = md(n10, ud(Bv)); + r10 |= 32; + } + return Ld(t10, r10, e20, n10, o10); + }); + Bv.placeholder = {}; + var Lv = Bv; + function Fv(e20, t10, n10) { + var r10 = -1, o10 = e20.length; + t10 < 0 && (t10 = -t10 > o10 ? 0 : o10 + t10), (n10 = n10 > o10 ? o10 : n10) < 0 && (n10 += o10), o10 = t10 > n10 ? 0 : n10 - t10 >>> 0, t10 >>>= 0; + for (var i10 = Array(o10); ++r10 < o10; ) + i10[r10] = e20[r10 + t10]; + return i10; + } + function Vv(e20, t10, n10) { + var r10 = e20.length; + return n10 = void 0 === n10 ? r10 : n10, !t10 && n10 >= r10 ? e20 : Fv(e20, t10, n10); + } + var Hv = RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"); + function Wv(e20) { + return Hv.test(e20); + } + var Uv = "\\ud800-\\udfff"; + var Jv = "[" + Uv + "]"; + var Kv = "[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]"; + var Gv = "\\ud83c[\\udffb-\\udfff]"; + var Qv = "[^" + Uv + "]"; + var Yv = "(?:\\ud83c[\\udde6-\\uddff]){2}"; + var Xv = "[\\ud800-\\udbff][\\udc00-\\udfff]"; + var Zv = "(?:" + Kv + "|" + Gv + ")?"; + var ep = "[\\ufe0e\\ufe0f]?"; + var tp = ep + Zv + ("(?:\\u200d(?:" + [Qv, Yv, Xv].join("|") + ")" + ep + Zv + ")*"); + var np = "(?:" + [Qv + Kv + "?", Kv, Yv, Xv, Jv].join("|") + ")"; + var rp = RegExp(Gv + "(?=" + Gv + ")|" + np + tp, "g"); + function op(e20) { + return Wv(e20) ? function(e21) { + return e21.match(rp) || []; + }(e20) : function(e21) { + return e21.split(""); + }(e20); + } + function ip(e20) { + return function(t10) { + var n10 = Wv(t10 = sv(t10)) ? op(t10) : void 0, r10 = n10 ? n10[0] : t10.charAt(0), o10 = n10 ? Vv(n10, 1).join("") : t10.slice(1); + return r10[e20]() + o10; + }; + } + var ap = ip("toUpperCase"); + function sp(e20) { + return ap(sv(e20).toLowerCase()); + } + function cp(e20, t10, n10, r10) { + var o10 = -1, i10 = null == e20 ? 0 : e20.length; + for (r10 && i10 && (n10 = e20[++o10]); ++o10 < i10; ) + n10 = t10(n10, e20[o10], o10, e20); + return n10; + } + function lp(e20) { + return function(t10) { + return null == e20 ? void 0 : e20[t10]; + }; + } + var up = lp({ "\xC0": "A", "\xC1": "A", "\xC2": "A", "\xC3": "A", "\xC4": "A", "\xC5": "A", "\xE0": "a", "\xE1": "a", "\xE2": "a", "\xE3": "a", "\xE4": "a", "\xE5": "a", "\xC7": "C", "\xE7": "c", "\xD0": "D", "\xF0": "d", "\xC8": "E", "\xC9": "E", "\xCA": "E", "\xCB": "E", "\xE8": "e", "\xE9": "e", "\xEA": "e", "\xEB": "e", "\xCC": "I", "\xCD": "I", "\xCE": "I", "\xCF": "I", "\xEC": "i", "\xED": "i", "\xEE": "i", "\xEF": "i", "\xD1": "N", "\xF1": "n", "\xD2": "O", "\xD3": "O", "\xD4": "O", "\xD5": "O", "\xD6": "O", "\xD8": "O", "\xF2": "o", "\xF3": "o", "\xF4": "o", "\xF5": "o", "\xF6": "o", "\xF8": "o", "\xD9": "U", "\xDA": "U", "\xDB": "U", "\xDC": "U", "\xF9": "u", "\xFA": "u", "\xFB": "u", "\xFC": "u", "\xDD": "Y", "\xFD": "y", "\xFF": "y", "\xC6": "Ae", "\xE6": "ae", "\xDE": "Th", "\xFE": "th", "\xDF": "ss", "\u0100": "A", "\u0102": "A", "\u0104": "A", "\u0101": "a", "\u0103": "a", "\u0105": "a", "\u0106": "C", "\u0108": "C", "\u010A": "C", "\u010C": "C", "\u0107": "c", "\u0109": "c", "\u010B": "c", "\u010D": "c", "\u010E": "D", "\u0110": "D", "\u010F": "d", "\u0111": "d", "\u0112": "E", "\u0114": "E", "\u0116": "E", "\u0118": "E", "\u011A": "E", "\u0113": "e", "\u0115": "e", "\u0117": "e", "\u0119": "e", "\u011B": "e", "\u011C": "G", "\u011E": "G", "\u0120": "G", "\u0122": "G", "\u011D": "g", "\u011F": "g", "\u0121": "g", "\u0123": "g", "\u0124": "H", "\u0126": "H", "\u0125": "h", "\u0127": "h", "\u0128": "I", "\u012A": "I", "\u012C": "I", "\u012E": "I", "\u0130": "I", "\u0129": "i", "\u012B": "i", "\u012D": "i", "\u012F": "i", "\u0131": "i", "\u0134": "J", "\u0135": "j", "\u0136": "K", "\u0137": "k", "\u0138": "k", "\u0139": "L", "\u013B": "L", "\u013D": "L", "\u013F": "L", "\u0141": "L", "\u013A": "l", "\u013C": "l", "\u013E": "l", "\u0140": "l", "\u0142": "l", "\u0143": "N", "\u0145": "N", "\u0147": "N", "\u014A": "N", "\u0144": "n", "\u0146": "n", "\u0148": "n", "\u014B": "n", "\u014C": "O", "\u014E": "O", "\u0150": "O", "\u014D": "o", "\u014F": "o", "\u0151": "o", "\u0154": "R", "\u0156": "R", "\u0158": "R", "\u0155": "r", "\u0157": "r", "\u0159": "r", "\u015A": "S", "\u015C": "S", "\u015E": "S", "\u0160": "S", "\u015B": "s", "\u015D": "s", "\u015F": "s", "\u0161": "s", "\u0162": "T", "\u0164": "T", "\u0166": "T", "\u0163": "t", "\u0165": "t", "\u0167": "t", "\u0168": "U", "\u016A": "U", "\u016C": "U", "\u016E": "U", "\u0170": "U", "\u0172": "U", "\u0169": "u", "\u016B": "u", "\u016D": "u", "\u016F": "u", "\u0171": "u", "\u0173": "u", "\u0174": "W", "\u0175": "w", "\u0176": "Y", "\u0177": "y", "\u0178": "Y", "\u0179": "Z", "\u017B": "Z", "\u017D": "Z", "\u017A": "z", "\u017C": "z", "\u017E": "z", "\u0132": "IJ", "\u0133": "ij", "\u0152": "Oe", "\u0153": "oe", "\u0149": "'n", "\u017F": "s" }); + var fp = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; + var dp = RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]", "g"); + function hp(e20) { + return (e20 = sv(e20)) && e20.replace(fp, up).replace(dp, ""); + } + var vp = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; + var pp = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; + var mp = "\\ud800-\\udfff"; + var gp = "\\u2700-\\u27bf"; + var yp = "a-z\\xdf-\\xf6\\xf8-\\xff"; + var bp = "A-Z\\xc0-\\xd6\\xd8-\\xde"; + var kp = "\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000"; + var wp = "[" + kp + "]"; + var xp = "\\d+"; + var jp = "[" + gp + "]"; + var Sp = "[" + yp + "]"; + var Cp = "[^" + mp + kp + xp + gp + yp + bp + "]"; + var $p = "(?:\\ud83c[\\udde6-\\uddff]){2}"; + var _p = "[\\ud800-\\udbff][\\udc00-\\udfff]"; + var Op = "[" + bp + "]"; + var Mp = "(?:" + Sp + "|" + Cp + ")"; + var Ep = "(?:" + Op + "|" + Cp + ")"; + var Ap = "(?:['\u2019](?:d|ll|m|re|s|t|ve))?"; + var Pp = "(?:['\u2019](?:D|LL|M|RE|S|T|VE))?"; + var Tp = "(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?"; + var Rp = "[\\ufe0e\\ufe0f]?"; + var Np = Rp + Tp + ("(?:\\u200d(?:" + ["[^" + mp + "]", $p, _p].join("|") + ")" + Rp + Tp + ")*"); + var Ip = "(?:" + [jp, $p, _p].join("|") + ")" + Np; + var Dp = RegExp([Op + "?" + Sp + "+" + Ap + "(?=" + [wp, Op, "$"].join("|") + ")", Ep + "+" + Pp + "(?=" + [wp, Op + Mp, "$"].join("|") + ")", Op + "?" + Mp + "+" + Ap, Op + "+" + Pp, "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", xp, Ip].join("|"), "g"); + function qp(e20, t10, n10) { + return e20 = sv(e20), void 0 === (t10 = n10 ? void 0 : t10) ? function(e21) { + return pp.test(e21); + }(e20) ? function(e21) { + return e21.match(Dp) || []; + }(e20) : function(e21) { + return e21.match(vp) || []; + }(e20) : e20.match(t10) || []; + } + var zp = RegExp("['\u2019]", "g"); + function Bp(e20) { + return function(t10) { + return cp(qp(hp(t10).replace(zp, "")), e20, ""); + }; + } + var Lp = Bp(function(e20, t10, n10) { + return t10 = t10.toLowerCase(), e20 + (n10 ? sp(t10) : t10); + }); + var Fp = Lp; + function Vp() { + if (!arguments.length) + return []; + var e20 = arguments[0]; + return Cu(e20) ? e20 : [e20]; + } + var Hp = cu.isFinite; + var Wp = Math.min; + function Up(e20) { + var t10 = Math[e20]; + return function(e21, n10) { + if (e21 = Fu(e21), (n10 = null == n10 ? 0 : Wp(Uu(n10), 292)) && Hp(e21)) { + var r10 = (sv(e21) + "e").split("e"); + return +((r10 = (sv(t10(r10[0] + "e" + (+r10[1] + n10))) + "e").split("e"))[0] + "e" + (+r10[1] - n10)); + } + return t10(e21); + }; + } + var Jp = Up("ceil"); + function Kp(e20) { + var t10 = qf(e20); + return t10.__chain__ = true, t10; + } + var Gp = Math.ceil; + var Qp = Math.max; + function Yp(e20, t10, n10) { + t10 = (n10 ? th(e20, t10, n10) : void 0 === t10) ? 1 : Qp(Uu(t10), 0); + var r10 = null == e20 ? 0 : e20.length; + if (!r10 || t10 < 1) + return []; + for (var o10 = 0, i10 = 0, a10 = Array(Gp(r10 / t10)); o10 < r10; ) + a10[i10++] = Fv(e20, o10, o10 += t10); + return a10; + } + function Xp(e20, t10, n10) { + return e20 == e20 && (void 0 !== n10 && (e20 = e20 <= n10 ? e20 : n10), void 0 !== t10 && (e20 = e20 >= t10 ? e20 : t10)), e20; + } + function Zp(e20, t10, n10) { + return void 0 === n10 && (n10 = t10, t10 = void 0), void 0 !== n10 && (n10 = (n10 = Fu(n10)) == n10 ? n10 : 0), void 0 !== t10 && (t10 = (t10 = Fu(t10)) == t10 ? t10 : 0), Xp(Fu(e20), t10, n10); + } + function em(e20) { + var t10 = this.__data__ = new Xh(e20); + this.size = t10.size; + } + function tm(e20, t10) { + return e20 && Kd(t10, Eh(t10), e20); + } + em.prototype.clear = function() { + this.__data__ = new Xh(), this.size = 0; + }, em.prototype.delete = function(e20) { + var t10 = this.__data__, n10 = t10.delete(e20); + return this.size = t10.size, n10; + }, em.prototype.get = function(e20) { + return this.__data__.get(e20); + }, em.prototype.has = function(e20) { + return this.__data__.has(e20); + }, em.prototype.set = function(e20, t10) { + var n10 = this.__data__; + if (n10 instanceof Xh) { + var r10 = n10.__data__; + if (!Zh || r10.length < 199) + return r10.push([e20, t10]), this.size = ++n10.size, this; + n10 = this.__data__ = new tv(r10); + } + return n10.set(e20, t10), this.size = n10.size, this; + }; + var nm = "object" == ("undefined" == typeof exports ? "undefined" : Ho(exports)) && exports && !exports.nodeType && exports; + var rm = nm && "object" == ("undefined" == typeof module ? "undefined" : Ho(module)) && module && !module.nodeType && module; + var om = rm && rm.exports === nm ? cu.Buffer : void 0; + var im = om ? om.allocUnsafe : void 0; + function am(e20, t10) { + if (t10) + return e20.slice(); + var n10 = e20.length, r10 = im ? im(n10) : new e20.constructor(n10); + return e20.copy(r10), r10; + } + function sm(e20, t10) { + for (var n10 = -1, r10 = null == e20 ? 0 : e20.length, o10 = 0, i10 = []; ++n10 < r10; ) { + var a10 = e20[n10]; + t10(a10, n10, e20) && (i10[o10++] = a10); + } + return i10; + } + function cm() { + return []; + } + var lm = Object.prototype.propertyIsEnumerable; + var um = Object.getOwnPropertySymbols; + var fm = um ? function(e20) { + return null == e20 ? [] : (e20 = Object(e20), sm(um(e20), function(t10) { + return lm.call(e20, t10); + })); + } : cm; + var dm = Object.getOwnPropertySymbols ? function(e20) { + for (var t10 = []; e20; ) + vv(t10, fm(e20)), e20 = wv(e20); + return t10; + } : cm; + function hm(e20, t10, n10) { + var r10 = t10(e20); + return Cu(e20) ? r10 : vv(r10, n10(e20)); + } + function vm(e20) { + return hm(e20, Eh, fm); + } + function pm(e20) { + return hm(e20, Ih, dm); + } + var mm = hf(cu, "DataView"); + var gm = hf(cu, "Promise"); + var ym = hf(cu, "Set"); + var bm = "[object Map]"; + var km = "[object Promise]"; + var wm = "[object Set]"; + var xm = "[object WeakMap]"; + var jm = "[object DataView]"; + var Sm = of(mm); + var Cm = of(Zh); + var $m = of(gm); + var _m = of(ym); + var Om = of(vf); + var Mm = yu; + (mm && Mm(new mm(new ArrayBuffer(1))) != jm || Zh && Mm(new Zh()) != bm || gm && Mm(gm.resolve()) != km || ym && Mm(new ym()) != wm || vf && Mm(new vf()) != xm) && (Mm = function(e20) { + var t10 = yu(e20), n10 = "[object Object]" == t10 ? e20.constructor : void 0, r10 = n10 ? of(n10) : ""; + if (r10) + switch (r10) { + case Sm: + return jm; + case Cm: + return bm; + case $m: + return km; + case _m: + return wm; + case Om: + return xm; + } + return t10; + }); + var Em = Mm; + var Am = Object.prototype.hasOwnProperty; + var Pm = cu.Uint8Array; + function Tm(e20) { + var t10 = new e20.constructor(e20.byteLength); + return new Pm(t10).set(new Pm(e20)), t10; + } + var Rm = /\w*$/; + var Nm = lu ? lu.prototype : void 0; + var Im = Nm ? Nm.valueOf : void 0; + function Dm(e20, t10) { + var n10 = t10 ? Tm(e20.buffer) : e20.buffer; + return new e20.constructor(n10, e20.byteOffset, e20.length); + } + var qm = "[object Boolean]"; + var zm = "[object Date]"; + var Bm = "[object Map]"; + var Lm = "[object Number]"; + var Fm = "[object RegExp]"; + var Vm = "[object Set]"; + var Hm = "[object String]"; + var Wm = "[object Symbol]"; + var Um = "[object ArrayBuffer]"; + var Jm = "[object DataView]"; + var Km = "[object Float32Array]"; + var Gm = "[object Float64Array]"; + var Qm = "[object Int8Array]"; + var Ym = "[object Int16Array]"; + var Xm = "[object Int32Array]"; + var Zm = "[object Uint8Array]"; + var eg = "[object Uint8ClampedArray]"; + var tg = "[object Uint16Array]"; + var ng = "[object Uint32Array]"; + function rg(e20, t10, n10) { + var r10, o10 = e20.constructor; + switch (t10) { + case Um: + return Tm(e20); + case qm: + case zm: + return new o10(+e20); + case Jm: + return function(e21, t11) { + var n11 = t11 ? Tm(e21.buffer) : e21.buffer; + return new e21.constructor(n11, e21.byteOffset, e21.byteLength); + }(e20, n10); + case Km: + case Gm: + case Qm: + case Ym: + case Xm: + case Zm: + case eg: + case tg: + case ng: + return Dm(e20, n10); + case Bm: + return new o10(); + case Lm: + case Hm: + return new o10(e20); + case Fm: + return function(e21) { + var t11 = new e21.constructor(e21.source, Rm.exec(e21)); + return t11.lastIndex = e21.lastIndex, t11; + }(e20); + case Vm: + return new o10(); + case Wm: + return r10 = e20, Im ? Object(Im.call(r10)) : {}; + } + } + function og(e20) { + return "function" != typeof e20.constructor || oh(e20) ? {} : yf(wv(e20)); + } + var ig = wh && wh.isMap; + var ag = ig ? gh(ig) : function(e20) { + return bu(e20) && "[object Map]" == Em(e20); + }; + var sg = wh && wh.isSet; + var cg = sg ? gh(sg) : function(e20) { + return bu(e20) && "[object Set]" == Em(e20); + }; + var lg = 1; + var ug = 2; + var fg = 4; + var dg = "[object Arguments]"; + var hg = "[object Function]"; + var vg = "[object GeneratorFunction]"; + var pg = "[object Object]"; + var mg = {}; + function gg(e20, t10, n10, r10, o10, i10) { + var a10, s10 = t10 & lg, c10 = t10 & ug, l10 = t10 & fg; + if (n10 && (a10 = o10 ? n10(e20, r10, o10, i10) : n10(e20)), void 0 !== a10) + return a10; + if (!Iu(e20)) + return e20; + var u10 = Cu(e20); + if (u10) { + if (a10 = function(e21) { + var t11 = e21.length, n11 = new e21.constructor(t11); + return t11 && "string" == typeof e21[0] && Am.call(e21, "index") && (n11.index = e21.index, n11.input = e21.input), n11; + }(e20), !s10) + return Nf(e20, a10); + } else { + var f10 = Em(e20), d10 = f10 == hg || f10 == vg; + if (ph(e20)) + return am(e20, s10); + if (f10 == pg || f10 == dg || d10 && !o10) { + if (a10 = c10 || d10 ? {} : og(e20), !s10) + return c10 ? function(e21, t11) { + return Kd(e21, dm(e21), t11); + }(e20, function(e21, t11) { + return e21 && Kd(t11, Ih(t11), e21); + }(a10, e20)) : function(e21, t11) { + return Kd(e21, fm(e21), t11); + }(e20, tm(a10, e20)); + } else { + if (!mg[f10]) + return o10 ? e20 : {}; + a10 = rg(e20, f10, s10); + } + } + i10 || (i10 = new em()); + var h10 = i10.get(e20); + if (h10) + return h10; + i10.set(e20, a10), cg(e20) ? e20.forEach(function(r11) { + a10.add(gg(r11, t10, n10, r11, e20, i10)); + }) : ag(e20) && e20.forEach(function(r11, o11) { + a10.set(o11, gg(r11, t10, n10, o11, e20, i10)); + }); + var v10 = u10 ? void 0 : (l10 ? c10 ? pm : vm : c10 ? Ih : Eh)(e20); + return Qf(v10 || e20, function(r11, o11) { + v10 && (r11 = e20[o11 = r11]), Jd(a10, o11, gg(r11, t10, n10, o11, e20, i10)); + }), a10; + } + mg[dg] = mg["[object Array]"] = mg["[object ArrayBuffer]"] = mg["[object DataView]"] = mg["[object Boolean]"] = mg["[object Date]"] = mg["[object Float32Array]"] = mg["[object Float64Array]"] = mg["[object Int8Array]"] = mg["[object Int16Array]"] = mg["[object Int32Array]"] = mg["[object Map]"] = mg["[object Number]"] = mg[pg] = mg["[object RegExp]"] = mg["[object Set]"] = mg["[object String]"] = mg["[object Symbol]"] = mg["[object Uint8Array]"] = mg["[object Uint8ClampedArray]"] = mg["[object Uint16Array]"] = mg["[object Uint32Array]"] = true, mg["[object Error]"] = mg[hg] = mg["[object WeakMap]"] = false; + function yg(e20) { + return gg(e20, 4); + } + function bg(e20) { + return gg(e20, 5); + } + var kg = 1; + var wg = 4; + function xg(e20, t10) { + return gg(e20, kg | wg, t10 = "function" == typeof t10 ? t10 : void 0); + } + function jg(e20, t10) { + return gg(e20, 4, t10 = "function" == typeof t10 ? t10 : void 0); + } + function Sg() { + return new Rf(this.value(), this.__chain__); + } + function Cg(e20) { + for (var t10 = -1, n10 = null == e20 ? 0 : e20.length, r10 = 0, o10 = []; ++t10 < n10; ) { + var i10 = e20[t10]; + i10 && (o10[r10++] = i10); + } + return o10; + } + function $g() { + var e20 = arguments.length; + if (!e20) + return []; + for (var t10 = Array(e20 - 1), n10 = arguments[0], r10 = e20; r10--; ) + t10[r10 - 1] = arguments[r10]; + return vv(Cu(n10) ? Nf(n10) : [n10], gv(t10, 1)); + } + function _g(e20) { + var t10 = -1, n10 = null == e20 ? 0 : e20.length; + for (this.__data__ = new tv(); ++t10 < n10; ) + this.add(e20[t10]); + } + function Og(e20, t10) { + for (var n10 = -1, r10 = null == e20 ? 0 : e20.length; ++n10 < r10; ) + if (t10(e20[n10], n10, e20)) + return true; + return false; + } + function Mg(e20, t10) { + return e20.has(t10); + } + _g.prototype.add = _g.prototype.push = function(e20) { + return this.__data__.set(e20, "__lodash_hash_undefined__"), this; + }, _g.prototype.has = function(e20) { + return this.__data__.has(e20); + }; + var Eg = 1; + var Ag = 2; + function Pg(e20, t10, n10, r10, o10, i10) { + var a10 = n10 & Eg, s10 = e20.length, c10 = t10.length; + if (s10 != c10 && !(a10 && c10 > s10)) + return false; + var l10 = i10.get(e20), u10 = i10.get(t10); + if (l10 && u10) + return l10 == t10 && u10 == e20; + var f10 = -1, d10 = true, h10 = n10 & Ag ? new _g() : void 0; + for (i10.set(e20, t10), i10.set(t10, e20); ++f10 < s10; ) { + var v10 = e20[f10], p10 = t10[f10]; + if (r10) + var m10 = a10 ? r10(p10, v10, f10, t10, e20, i10) : r10(v10, p10, f10, e20, t10, i10); + if (void 0 !== m10) { + if (m10) + continue; + d10 = false; + break; + } + if (h10) { + if (!Og(t10, function(e21, t11) { + if (!Mg(h10, t11) && (v10 === e21 || o10(v10, e21, n10, r10, i10))) + return h10.push(t11); + })) { + d10 = false; + break; + } + } else if (v10 !== p10 && !o10(v10, p10, n10, r10, i10)) { + d10 = false; + break; + } + } + return i10.delete(e20), i10.delete(t10), d10; + } + function Tg(e20) { + var t10 = -1, n10 = Array(e20.size); + return e20.forEach(function(e21, r10) { + n10[++t10] = [r10, e21]; + }), n10; + } + function Rg(e20) { + var t10 = -1, n10 = Array(e20.size); + return e20.forEach(function(e21) { + n10[++t10] = e21; + }), n10; + } + var Ng = 1; + var Ig = 2; + var Dg = "[object Boolean]"; + var qg = "[object Date]"; + var zg = "[object Error]"; + var Bg = "[object Map]"; + var Lg = "[object Number]"; + var Fg = "[object RegExp]"; + var Vg = "[object Set]"; + var Hg = "[object String]"; + var Wg = "[object Symbol]"; + var Ug = "[object ArrayBuffer]"; + var Jg = "[object DataView]"; + var Kg = lu ? lu.prototype : void 0; + var Gg = Kg ? Kg.valueOf : void 0; + var Qg = 1; + var Yg = Object.prototype.hasOwnProperty; + var Xg = 1; + var Zg = "[object Arguments]"; + var ey = "[object Array]"; + var ty = "[object Object]"; + var ny = Object.prototype.hasOwnProperty; + function ry(e20, t10, n10, r10, o10, i10) { + var a10 = Cu(e20), s10 = Cu(t10), c10 = a10 ? ey : Em(e20), l10 = s10 ? ey : Em(t10), u10 = (c10 = c10 == Zg ? ty : c10) == ty, f10 = (l10 = l10 == Zg ? ty : l10) == ty, d10 = c10 == l10; + if (d10 && ph(e20)) { + if (!ph(t10)) + return false; + a10 = true, u10 = false; + } + if (d10 && !u10) + return i10 || (i10 = new em()), a10 || jh(e20) ? Pg(e20, t10, n10, r10, o10, i10) : function(e21, t11, n11, r11, o11, i11, a11) { + switch (n11) { + case Jg: + if (e21.byteLength != t11.byteLength || e21.byteOffset != t11.byteOffset) + return false; + e21 = e21.buffer, t11 = t11.buffer; + case Ug: + return !(e21.byteLength != t11.byteLength || !i11(new Pm(e21), new Pm(t11))); + case Dg: + case qg: + case Lg: + return Wd(+e21, +t11); + case zg: + return e21.name == t11.name && e21.message == t11.message; + case Fg: + case Hg: + return e21 == t11 + ""; + case Bg: + var s11 = Tg; + case Vg: + var c11 = r11 & Ng; + if (s11 || (s11 = Rg), e21.size != t11.size && !c11) + return false; + var l11 = a11.get(e21); + if (l11) + return l11 == t11; + r11 |= Ig, a11.set(e21, t11); + var u11 = Pg(s11(e21), s11(t11), r11, o11, i11, a11); + return a11.delete(e21), u11; + case Wg: + if (Gg) + return Gg.call(e21) == Gg.call(t11); + } + return false; + }(e20, t10, c10, n10, r10, o10, i10); + if (!(n10 & Xg)) { + var h10 = u10 && ny.call(e20, "__wrapped__"), v10 = f10 && ny.call(t10, "__wrapped__"); + if (h10 || v10) { + var p10 = h10 ? e20.value() : e20, m10 = v10 ? t10.value() : t10; + return i10 || (i10 = new em()), o10(p10, m10, n10, r10, i10); + } + } + return !!d10 && (i10 || (i10 = new em()), function(e21, t11, n11, r11, o11, i11) { + var a11 = n11 & Qg, s11 = vm(e21), c11 = s11.length; + if (c11 != vm(t11).length && !a11) + return false; + for (var l11 = c11; l11--; ) { + var u11 = s11[l11]; + if (!(a11 ? u11 in t11 : Yg.call(t11, u11))) + return false; + } + var f11 = i11.get(e21), d11 = i11.get(t11); + if (f11 && d11) + return f11 == t11 && d11 == e21; + var h11 = true; + i11.set(e21, t11), i11.set(t11, e21); + for (var v11 = a11; ++l11 < c11; ) { + var p11 = e21[u11 = s11[l11]], m11 = t11[u11]; + if (r11) + var g10 = a11 ? r11(m11, p11, u11, t11, e21, i11) : r11(p11, m11, u11, e21, t11, i11); + if (!(void 0 === g10 ? p11 === m11 || o11(p11, m11, n11, r11, i11) : g10)) { + h11 = false; + break; + } + v11 || (v11 = "constructor" == u11); + } + if (h11 && !v11) { + var y10 = e21.constructor, b10 = t11.constructor; + y10 == b10 || !("constructor" in e21) || !("constructor" in t11) || "function" == typeof y10 && y10 instanceof y10 && "function" == typeof b10 && b10 instanceof b10 || (h11 = false); + } + return i11.delete(e21), i11.delete(t11), h11; + }(e20, t10, n10, r10, o10, i10)); + } + function oy(e20, t10, n10, r10, o10) { + return e20 === t10 || (null == e20 || null == t10 || !bu(e20) && !bu(t10) ? e20 != e20 && t10 != t10 : ry(e20, t10, n10, r10, oy, o10)); + } + var iy = 1; + var ay = 2; + function sy(e20, t10, n10, r10) { + var o10 = n10.length, i10 = o10, a10 = !r10; + if (null == e20) + return !i10; + for (e20 = Object(e20); o10--; ) { + var s10 = n10[o10]; + if (a10 && s10[2] ? s10[1] !== e20[s10[0]] : !(s10[0] in e20)) + return false; + } + for (; ++o10 < i10; ) { + var c10 = (s10 = n10[o10])[0], l10 = e20[c10], u10 = s10[1]; + if (a10 && s10[2]) { + if (void 0 === l10 && !(c10 in e20)) + return false; + } else { + var f10 = new em(); + if (r10) + var d10 = r10(l10, u10, c10, e20, t10, f10); + if (!(void 0 === d10 ? oy(u10, l10, iy | ay, r10, f10) : d10)) + return false; + } + } + return true; + } + function cy(e20) { + return e20 == e20 && !Iu(e20); + } + function ly(e20) { + for (var t10 = Eh(e20), n10 = t10.length; n10--; ) { + var r10 = t10[n10], o10 = e20[r10]; + t10[n10] = [r10, o10, cy(o10)]; + } + return t10; + } + function uy(e20, t10) { + return function(n10) { + return null != n10 && (n10[e20] === t10 && (void 0 !== t10 || e20 in Object(n10))); + }; + } + function fy(e20) { + var t10 = ly(e20); + return 1 == t10.length && t10[0][2] ? uy(t10[0][0], t10[0][1]) : function(n10) { + return n10 === e20 || sy(n10, e20, t10); + }; + } + function dy(e20, t10) { + return null != e20 && t10 in Object(e20); + } + function hy(e20, t10, n10) { + for (var r10 = -1, o10 = (t10 = cv(t10, e20)).length, i10 = false; ++r10 < o10; ) { + var a10 = uv(t10[r10]); + if (!(i10 = null != e20 && n10(e20, a10))) + break; + e20 = e20[a10]; + } + return i10 || ++r10 != o10 ? i10 : !!(o10 = null == e20 ? 0 : e20.length) && Zd(o10) && hd(a10, o10) && (Cu(e20) || uh(e20)); + } + function vy(e20, t10) { + return null != e20 && hy(e20, t10, dy); + } + var py = 1; + var my = 2; + function gy(e20, t10) { + return Wh(e20) && cy(t10) ? uy(uv(e20), t10) : function(n10) { + var r10 = dv(n10, e20); + return void 0 === r10 && r10 === t10 ? vy(n10, e20) : oy(t10, r10, py | my); + }; + } + function yy(e20) { + return function(t10) { + return null == t10 ? void 0 : t10[e20]; + }; + } + function by(e20) { + return Wh(e20) ? yy(uv(e20)) : /* @__PURE__ */ function(e21) { + return function(t10) { + return fv(t10, e21); + }; + }(e20); + } + function ky(e20) { + return "function" == typeof e20 ? e20 : null == e20 ? Ku : "object" == Ho(e20) ? Cu(e20) ? gy(e20[0], e20[1]) : fy(e20) : by(e20); + } + function wy(e20) { + var t10 = null == e20 ? 0 : e20.length, n10 = ky; + return e20 = t10 ? Su(e20, function(e21) { + if ("function" != typeof e21[1]) + throw new TypeError("Expected a function"); + return [n10(e21[0]), e21[1]]; + }) : [], Yd(function(n11) { + for (var r10 = -1; ++r10 < t10; ) { + var o10 = e20[r10]; + if (wf(o10[0], this, n11)) + return wf(o10[1], this, n11); + } + }); + } + function xy(e20, t10, n10) { + var r10 = n10.length; + if (null == e20) + return !r10; + for (e20 = Object(e20); r10--; ) { + var o10 = n10[r10], i10 = t10[o10], a10 = e20[o10]; + if (void 0 === a10 && !(o10 in e20) || !i10(a10)) + return false; + } + return true; + } + function jy(e20) { + return function(e21) { + var t10 = Eh(e21); + return function(n10) { + return xy(n10, e21, t10); + }; + }(gg(e20, 1)); + } + function Sy(e20, t10) { + return null == t10 || xy(e20, t10, Eh(t10)); + } + function Cy(e20, t10, n10, r10) { + for (var o10 = -1, i10 = null == e20 ? 0 : e20.length; ++o10 < i10; ) { + var a10 = e20[o10]; + t10(r10, a10, n10(a10), e20); + } + return r10; + } + function $y(e20) { + return function(t10, n10, r10) { + for (var o10 = -1, i10 = Object(t10), a10 = r10(t10), s10 = a10.length; s10--; ) { + var c10 = a10[e20 ? s10 : ++o10]; + if (false === n10(i10[c10], c10, i10)) + break; + } + return t10; + }; + } + var _y = $y(); + function Oy(e20, t10) { + return e20 && _y(e20, t10, Eh); + } + function My(e20, t10) { + return function(n10, r10) { + if (null == n10) + return n10; + if (!eh(n10)) + return e20(n10, r10); + for (var o10 = n10.length, i10 = t10 ? o10 : -1, a10 = Object(n10); (t10 ? i10-- : ++i10 < o10) && false !== r10(a10[i10], i10, a10); ) + ; + return n10; + }; + } + var Ey = My(Oy); + function Ay(e20, t10, n10, r10) { + return Ey(e20, function(e21, o10, i10) { + t10(r10, e21, n10(e21), i10); + }), r10; + } + function Py(e20, t10) { + return function(n10, r10) { + var o10 = Cu(n10) ? Cy : Ay, i10 = t10 ? t10() : {}; + return o10(n10, e20, ky(r10), i10); + }; + } + var Ty = Object.prototype.hasOwnProperty; + var Ry = Py(function(e20, t10, n10) { + Ty.call(e20, n10) ? ++e20[n10] : Hd(e20, n10, 1); + }); + var Ny = Ry; + function Iy(e20, t10) { + var n10 = yf(e20); + return null == t10 ? n10 : tm(n10, t10); + } + function Dy(e20, t10, n10) { + var r10 = Ld(e20, 8, void 0, void 0, void 0, void 0, void 0, t10 = n10 ? void 0 : t10); + return r10.placeholder = Dy.placeholder, r10; + } + Dy.placeholder = {}; + function qy(e20, t10, n10) { + var r10 = Ld(e20, 16, void 0, void 0, void 0, void 0, void 0, t10 = n10 ? void 0 : t10); + return r10.placeholder = qy.placeholder, r10; + } + qy.placeholder = {}; + var zy = function() { + return cu.Date.now(); + }; + var By = "Expected a function"; + var Ly = Math.max; + var Fy = Math.min; + function Vy(e20, t10, n10) { + var r10, o10, i10, a10, s10, c10, l10 = 0, u10 = false, f10 = false, d10 = true; + if ("function" != typeof e20) + throw new TypeError(By); + function h10(t11) { + var n11 = r10, i11 = o10; + return r10 = o10 = void 0, l10 = t11, a10 = e20.apply(i11, n11); + } + function v10(e21) { + var n11 = e21 - c10; + return void 0 === c10 || n11 >= t10 || n11 < 0 || f10 && e21 - l10 >= i10; + } + function p10() { + var e21 = zy(); + if (v10(e21)) + return m10(e21); + s10 = setTimeout(p10, function(e23) { + var n11 = t10 - (e23 - c10); + return f10 ? Fy(n11, i10 - (e23 - l10)) : n11; + }(e21)); + } + function m10(e21) { + return s10 = void 0, d10 && r10 ? h10(e21) : (r10 = o10 = void 0, a10); + } + function g10() { + var e21 = zy(), n11 = v10(e21); + if (r10 = arguments, o10 = this, c10 = e21, n11) { + if (void 0 === s10) + return function(e23) { + return l10 = e23, s10 = setTimeout(p10, t10), u10 ? h10(e23) : a10; + }(c10); + if (f10) + return clearTimeout(s10), s10 = setTimeout(p10, t10), h10(c10); + } + return void 0 === s10 && (s10 = setTimeout(p10, t10)), a10; + } + return t10 = Fu(t10) || 0, Iu(n10) && (u10 = !!n10.leading, i10 = (f10 = "maxWait" in n10) ? Ly(Fu(n10.maxWait) || 0, t10) : i10, d10 = "trailing" in n10 ? !!n10.trailing : d10), g10.cancel = function() { + void 0 !== s10 && clearTimeout(s10), l10 = 0, r10 = c10 = o10 = s10 = void 0; + }, g10.flush = function() { + return void 0 === s10 ? a10 : m10(zy()); + }, g10; + } + function Hy(e20, t10) { + return null == e20 || e20 != e20 ? t10 : e20; + } + var Wy = Object.prototype; + var Uy = Wy.hasOwnProperty; + var Jy = Yd(function(e20, t10) { + e20 = Object(e20); + var n10 = -1, r10 = t10.length, o10 = r10 > 2 ? t10[2] : void 0; + for (o10 && th(t10[0], t10[1], o10) && (r10 = 1); ++n10 < r10; ) + for (var i10 = t10[n10], a10 = Ih(i10), s10 = -1, c10 = a10.length; ++s10 < c10; ) { + var l10 = a10[s10], u10 = e20[l10]; + (void 0 === u10 || Wd(u10, Wy[l10]) && !Uy.call(e20, l10)) && (e20[l10] = i10[l10]); + } + return e20; + }); + var Ky = Jy; + function Gy(e20, t10, n10) { + (void 0 !== n10 && !Wd(e20[t10], n10) || void 0 === n10 && !(t10 in e20)) && Hd(e20, t10, n10); + } + function Qy(e20) { + return bu(e20) && eh(e20); + } + function Yy(e20, t10) { + if (("constructor" !== t10 || "function" != typeof e20[t10]) && "__proto__" != t10) + return e20[t10]; + } + function Xy(e20) { + return Kd(e20, Ih(e20)); + } + function Zy(e20, t10, n10, r10, o10) { + e20 !== t10 && _y(t10, function(i10, a10) { + if (o10 || (o10 = new em()), Iu(i10)) + !function(e21, t11, n11, r11, o11, i11, a11) { + var s11 = Yy(e21, n11), c10 = Yy(t11, n11), l10 = a11.get(c10); + if (l10) + Gy(e21, n11, l10); + else { + var u10 = i11 ? i11(s11, c10, n11 + "", e21, t11, a11) : void 0, f10 = void 0 === u10; + if (f10) { + var d10 = Cu(c10), h10 = !d10 && ph(c10), v10 = !d10 && !h10 && jh(c10); + u10 = c10, d10 || h10 || v10 ? Cu(s11) ? u10 = s11 : Qy(s11) ? u10 = Nf(s11) : h10 ? (f10 = false, u10 = am(c10, true)) : v10 ? (f10 = false, u10 = Dm(c10, true)) : u10 = [] : Ov(c10) || uh(c10) ? (u10 = s11, uh(s11) ? u10 = Xy(s11) : Iu(s11) && !Zu(s11) || (u10 = og(c10))) : f10 = false; + } + f10 && (a11.set(c10, u10), o11(u10, c10, r11, i11, a11), a11.delete(c10)), Gy(e21, n11, u10); + } + }(e20, t10, a10, n10, Zy, r10, o10); + else { + var s10 = r10 ? r10(Yy(e20, a10), i10, a10 + "", e20, t10, o10) : void 0; + void 0 === s10 && (s10 = i10), Gy(e20, a10, s10); + } + }, Ih); + } + function eb(e20, t10, n10, r10, o10, i10) { + return Iu(e20) && Iu(t10) && (i10.set(t10, e20), Zy(e20, t10, void 0, eb, i10), i10.delete(t10)), e20; + } + var tb = nh(function(e20, t10, n10, r10) { + Zy(e20, t10, n10, r10); + }); + var nb = tb; + var rb = Yd(function(e20) { + return e20.push(void 0, eb), wf(nb, void 0, e20); + }); + function ob(e20, t10, n10) { + if ("function" != typeof e20) + throw new TypeError("Expected a function"); + return setTimeout(function() { + e20.apply(void 0, n10); + }, t10); + } + var ib = Yd(function(e20, t10) { + return ob(e20, 1, t10); + }); + var ab = ib; + var sb = Yd(function(e20, t10, n10) { + return ob(e20, Fu(t10) || 0, n10); + }); + var cb = sb; + function lb(e20, t10, n10) { + for (var r10 = -1, o10 = null == e20 ? 0 : e20.length; ++r10 < o10; ) + if (n10(t10, e20[r10])) + return true; + return false; + } + var ub = 200; + function fb(e20, t10, n10, r10) { + var o10 = -1, i10 = ed, a10 = true, s10 = e20.length, c10 = [], l10 = t10.length; + if (!s10) + return c10; + n10 && (t10 = Su(t10, gh(n10))), r10 ? (i10 = lb, a10 = false) : t10.length >= ub && (i10 = Mg, a10 = false, t10 = new _g(t10)); + e: + for (; ++o10 < s10; ) { + var u10 = e20[o10], f10 = null == n10 ? u10 : n10(u10); + if (u10 = r10 || 0 !== u10 ? u10 : 0, a10 && f10 == f10) { + for (var d10 = l10; d10--; ) + if (t10[d10] === f10) + continue e; + c10.push(u10); + } else + i10(t10, f10, r10) || c10.push(u10); + } + return c10; + } + var db = Yd(function(e20, t10) { + return Qy(e20) ? fb(e20, gv(t10, 1, Qy, true)) : []; + }); + var hb = db; + function vb(e20) { + var t10 = null == e20 ? 0 : e20.length; + return t10 ? e20[t10 - 1] : void 0; + } + var pb = Yd(function(e20, t10) { + var n10 = vb(t10); + return Qy(n10) && (n10 = void 0), Qy(e20) ? fb(e20, gv(t10, 1, Qy, true), ky(n10)) : []; + }); + var mb = pb; + var gb = Yd(function(e20, t10) { + var n10 = vb(t10); + return Qy(n10) && (n10 = void 0), Qy(e20) ? fb(e20, gv(t10, 1, Qy, true), void 0, n10) : []; + }); + var yb = gb; + var bb = Eu(function(e20, t10) { + return e20 / t10; + }, 1); + function kb(e20, t10, n10) { + var r10 = null == e20 ? 0 : e20.length; + return r10 ? Fv(e20, (t10 = n10 || void 0 === t10 ? 1 : Uu(t10)) < 0 ? 0 : t10, r10) : []; + } + function wb(e20, t10, n10) { + var r10 = null == e20 ? 0 : e20.length; + return r10 ? Fv(e20, 0, (t10 = r10 - (t10 = n10 || void 0 === t10 ? 1 : Uu(t10))) < 0 ? 0 : t10) : []; + } + function xb(e20, t10, n10, r10) { + for (var o10 = e20.length, i10 = r10 ? o10 : -1; (r10 ? i10-- : ++i10 < o10) && t10(e20[i10], i10, e20); ) + ; + return n10 ? Fv(e20, r10 ? 0 : i10, r10 ? i10 + 1 : o10) : Fv(e20, r10 ? i10 + 1 : 0, r10 ? o10 : i10); + } + function jb(e20, t10) { + return e20 && e20.length ? xb(e20, ky(t10), true, true) : []; + } + function Sb(e20, t10) { + return e20 && e20.length ? xb(e20, ky(t10), true) : []; + } + function Cb(e20) { + return "function" == typeof e20 ? e20 : Ku; + } + function $b(e20, t10) { + return (Cu(e20) ? Qf : Ey)(e20, Cb(t10)); + } + function _b(e20, t10) { + for (var n10 = null == e20 ? 0 : e20.length; n10-- && false !== t10(e20[n10], n10, e20); ) + ; + return e20; + } + var Ob = $y(true); + function Mb(e20, t10) { + return e20 && Ob(e20, t10, Eh); + } + var Eb = My(Mb, true); + function Ab(e20, t10) { + return (Cu(e20) ? _b : Eb)(e20, Cb(t10)); + } + function Pb(e20, t10, n10) { + e20 = sv(e20), t10 = Mu(t10); + var r10 = e20.length, o10 = n10 = void 0 === n10 ? r10 : Xp(Uu(n10), 0, r10); + return (n10 -= t10.length) >= 0 && e20.slice(n10, o10) == t10; + } + function Tb(e20) { + return function(t10) { + var n10 = Em(t10); + return "[object Map]" == n10 ? Tg(t10) : "[object Set]" == n10 ? function(e21) { + var t11 = -1, n11 = Array(e21.size); + return e21.forEach(function(e23) { + n11[++t11] = [e23, e23]; + }), n11; + }(t10) : function(e21, t11) { + return Su(t11, function(t12) { + return [t12, e21[t12]]; + }); + }(t10, e20(t10)); + }; + } + var Rb = Tb(Eh); + var Nb = Tb(Ih); + var Ib = lp({ "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }); + var Db = /[&<>"']/g; + var qb = RegExp(Db.source); + function zb(e20) { + return (e20 = sv(e20)) && qb.test(e20) ? e20.replace(Db, Ib) : e20; + } + var Bb = /[\\^$.*+?()[\]{}|]/g; + var Lb = RegExp(Bb.source); + function Fb(e20) { + return (e20 = sv(e20)) && Lb.test(e20) ? e20.replace(Bb, "\\$&") : e20; + } + function Vb(e20, t10) { + for (var n10 = -1, r10 = null == e20 ? 0 : e20.length; ++n10 < r10; ) + if (!t10(e20[n10], n10, e20)) + return false; + return true; + } + function Hb(e20, t10) { + var n10 = true; + return Ey(e20, function(e21, r10, o10) { + return n10 = !!t10(e21, r10, o10); + }), n10; + } + function Wb(e20, t10, n10) { + var r10 = Cu(e20) ? Vb : Hb; + return n10 && th(e20, t10, n10) && (t10 = void 0), r10(e20, ky(t10)); + } + var Ub = 4294967295; + function Jb(e20) { + return e20 ? Xp(Uu(e20), 0, Ub) : 0; + } + function Kb(e20, t10, n10, r10) { + var o10 = null == e20 ? 0 : e20.length; + return o10 ? (n10 && "number" != typeof n10 && th(e20, t10, n10) && (n10 = 0, r10 = o10), function(e21, t11, n11, r11) { + var o11 = e21.length; + for ((n11 = Uu(n11)) < 0 && (n11 = -n11 > o11 ? 0 : o11 + n11), (r11 = void 0 === r11 || r11 > o11 ? o11 : Uu(r11)) < 0 && (r11 += o11), r11 = n11 > r11 ? 0 : Jb(r11); n11 < r11; ) + e21[n11++] = t11; + return e21; + }(e20, t10, n10, r10)) : []; + } + function Gb(e20, t10) { + var n10 = []; + return Ey(e20, function(e21, r10, o10) { + t10(e21, r10, o10) && n10.push(e21); + }), n10; + } + function Qb(e20, t10) { + return (Cu(e20) ? sm : Gb)(e20, ky(t10)); + } + function Yb(e20) { + return function(t10, n10, r10) { + var o10 = Object(t10); + if (!eh(t10)) { + var i10 = ky(n10); + t10 = Eh(t10), n10 = function(e21) { + return i10(o10[e21], e21, o10); + }; + } + var a10 = e20(t10, n10, r10); + return a10 > -1 ? o10[i10 ? t10[a10] : a10] : void 0; + }; + } + var Xb = Math.max; + function Zb(e20, t10, n10) { + var r10 = null == e20 ? 0 : e20.length; + if (!r10) + return -1; + var o10 = null == n10 ? 0 : Uu(n10); + return o10 < 0 && (o10 = Xb(r10 + o10, 0)), Yf(e20, ky(t10), o10); + } + var ek = Yb(Zb); + function tk(e20, t10, n10) { + var r10; + return n10(e20, function(e21, n11, o10) { + if (t10(e21, n11, o10)) + return r10 = n11, false; + }), r10; + } + function nk(e20, t10) { + return tk(e20, ky(t10), Oy); + } + var rk = Math.max; + var ok = Math.min; + function ik(e20, t10, n10) { + var r10 = null == e20 ? 0 : e20.length; + if (!r10) + return -1; + var o10 = r10 - 1; + return void 0 !== n10 && (o10 = Uu(n10), o10 = n10 < 0 ? rk(r10 + o10, 0) : ok(o10, r10 - 1)), Yf(e20, ky(t10), o10, true); + } + var ak = Yb(ik); + function sk(e20, t10) { + return tk(e20, ky(t10), Mb); + } + function ck(e20) { + return e20 && e20.length ? e20[0] : void 0; + } + function lk(e20, t10) { + var n10 = -1, r10 = eh(e20) ? Array(e20.length) : []; + return Ey(e20, function(e21, o10, i10) { + r10[++n10] = t10(e21, o10, i10); + }), r10; + } + function uk(e20, t10) { + return (Cu(e20) ? Su : lk)(e20, ky(t10)); + } + function fk(e20, t10) { + return gv(uk(e20, t10), 1); + } + function dk(e20, t10) { + return gv(uk(e20, t10), Infinity); + } + function hk(e20, t10, n10) { + return n10 = void 0 === n10 ? 1 : Uu(n10), gv(uk(e20, t10), n10); + } + function vk(e20) { + return (null == e20 ? 0 : e20.length) ? gv(e20, Infinity) : []; + } + function pk(e20, t10) { + return (null == e20 ? 0 : e20.length) ? gv(e20, t10 = void 0 === t10 ? 1 : Uu(t10)) : []; + } + function mk(e20) { + return Ld(e20, 512); + } + var gk = Up("floor"); + function yk(e20) { + return bv(function(t10) { + var n10 = t10.length, r10 = n10, o10 = Rf.prototype.thru; + for (e20 && t10.reverse(); r10--; ) { + var i10 = t10[r10]; + if ("function" != typeof i10) + throw new TypeError("Expected a function"); + if (o10 && !a10 && "wrapper" == Tf(i10)) + var a10 = new Rf([], true); + } + for (r10 = a10 ? r10 : n10; ++r10 < n10; ) { + var s10 = Tf(i10 = t10[r10]), c10 = "wrapper" == s10 ? Ef(i10) : void 0; + a10 = c10 && zf(c10[0]) && 424 == c10[1] && !c10[4].length && 1 == c10[9] ? a10[Tf(c10[0])].apply(a10, c10[3]) : 1 == i10.length && zf(i10) ? a10[s10]() : a10.thru(i10); + } + return function() { + var e21 = arguments, r11 = e21[0]; + if (a10 && 1 == e21.length && Cu(r11)) + return a10.plant(r11).value(); + for (var o11 = 0, i11 = n10 ? t10[o11].apply(this, e21) : r11; ++o11 < n10; ) + i11 = t10[o11].call(this, i11); + return i11; + }; + }); + } + var bk = yk(); + var kk = yk(true); + function wk(e20, t10) { + return null == e20 ? e20 : _y(e20, Cb(t10), Ih); + } + function xk(e20, t10) { + return null == e20 ? e20 : Ob(e20, Cb(t10), Ih); + } + function jk(e20, t10) { + return e20 && Oy(e20, Cb(t10)); + } + function Sk(e20, t10) { + return e20 && Mb(e20, Cb(t10)); + } + function Ck(e20) { + for (var t10 = -1, n10 = null == e20 ? 0 : e20.length, r10 = {}; ++t10 < n10; ) { + var o10 = e20[t10]; + r10[o10[0]] = o10[1]; + } + return r10; + } + function $k(e20, t10) { + return sm(t10, function(t11) { + return Zu(e20[t11]); + }); + } + function _k(e20) { + return null == e20 ? [] : $k(e20, Eh(e20)); + } + function Ok(e20) { + return null == e20 ? [] : $k(e20, Ih(e20)); + } + var Mk = Object.prototype.hasOwnProperty; + var Ek = Py(function(e20, t10, n10) { + Mk.call(e20, n10) ? e20[n10].push(t10) : Hd(e20, n10, [t10]); + }); + var Ak = Ek; + function Pk(e20, t10) { + return e20 > t10; + } + function Tk(e20) { + return function(t10, n10) { + return "string" == typeof t10 && "string" == typeof n10 || (t10 = Fu(t10), n10 = Fu(n10)), e20(t10, n10); + }; + } + var Rk = Tk(Pk); + var Nk = Tk(function(e20, t10) { + return e20 >= t10; + }); + var Ik = Object.prototype.hasOwnProperty; + function Dk(e20, t10) { + return null != e20 && Ik.call(e20, t10); + } + function qk(e20, t10) { + return null != e20 && hy(e20, t10, Dk); + } + var zk = Math.max; + var Bk = Math.min; + function Lk(e20, t10, n10) { + return t10 = Wu(t10), void 0 === n10 ? (n10 = t10, t10 = 0) : n10 = Wu(n10), function(e21, t11, n11) { + return e21 >= Bk(t11, n11) && e21 < zk(t11, n11); + }(e20 = Fu(e20), t10, n10); + } + var Fk = "[object String]"; + function Vk(e20) { + return "string" == typeof e20 || !Cu(e20) && bu(e20) && yu(e20) == Fk; + } + function Hk(e20, t10) { + return Su(t10, function(t11) { + return e20[t11]; + }); + } + function Wk(e20) { + return null == e20 ? [] : Hk(e20, Eh(e20)); + } + var Uk = Math.max; + function Jk(e20, t10, n10, r10) { + e20 = eh(e20) ? e20 : Wk(e20), n10 = n10 && !r10 ? Uu(n10) : 0; + var o10 = e20.length; + return n10 < 0 && (n10 = Uk(o10 + n10, 0)), Vk(e20) ? n10 <= o10 && e20.indexOf(t10, n10) > -1 : !!o10 && Zf(e20, t10, n10) > -1; + } + var Kk = Math.max; + function Gk(e20, t10, n10) { + var r10 = null == e20 ? 0 : e20.length; + if (!r10) + return -1; + var o10 = null == n10 ? 0 : Uu(n10); + return o10 < 0 && (o10 = Kk(r10 + o10, 0)), Zf(e20, t10, o10); + } + function Qk(e20) { + return (null == e20 ? 0 : e20.length) ? Fv(e20, 0, -1) : []; + } + var Yk = Math.min; + function Xk(e20, t10, n10) { + for (var r10 = n10 ? lb : ed, o10 = e20[0].length, i10 = e20.length, a10 = i10, s10 = Array(i10), c10 = 1 / 0, l10 = []; a10--; ) { + var u10 = e20[a10]; + a10 && t10 && (u10 = Su(u10, gh(t10))), c10 = Yk(u10.length, c10), s10[a10] = !n10 && (t10 || o10 >= 120 && u10.length >= 120) ? new _g(a10 && u10) : void 0; + } + u10 = e20[0]; + var f10 = -1, d10 = s10[0]; + e: + for (; ++f10 < o10 && l10.length < c10; ) { + var h10 = u10[f10], v10 = t10 ? t10(h10) : h10; + if (h10 = n10 || 0 !== h10 ? h10 : 0, !(d10 ? Mg(d10, v10) : r10(l10, v10, n10))) { + for (a10 = i10; --a10; ) { + var p10 = s10[a10]; + if (!(p10 ? Mg(p10, v10) : r10(e20[a10], v10, n10))) + continue e; + } + d10 && d10.push(v10), l10.push(h10); + } + } + return l10; + } + function Zk(e20) { + return Qy(e20) ? e20 : []; + } + var ew = Yd(function(e20) { + var t10 = Su(e20, Zk); + return t10.length && t10[0] === e20[0] ? Xk(t10) : []; + }); + var tw = Yd(function(e20) { + var t10 = vb(e20), n10 = Su(e20, Zk); + return t10 === vb(n10) ? t10 = void 0 : n10.pop(), n10.length && n10[0] === e20[0] ? Xk(n10, ky(t10)) : []; + }); + var nw = tw; + var rw = Yd(function(e20) { + var t10 = vb(e20), n10 = Su(e20, Zk); + return (t10 = "function" == typeof t10 ? t10 : void 0) && n10.pop(), n10.length && n10[0] === e20[0] ? Xk(n10, void 0, t10) : []; + }); + function ow(e20, t10) { + return function(n10, r10) { + return function(e21, t11, n11, r11) { + return Oy(e21, function(e23, o10, i10) { + t11(r11, n11(e23), o10, i10); + }), r11; + }(n10, e20, t10(r10), {}); + }; + } + var iw = Object.prototype.toString; + var aw = ow(function(e20, t10, n10) { + null != t10 && "function" != typeof t10.toString && (t10 = iw.call(t10)), e20[t10] = n10; + }, Uf(Ku)); + var sw = aw; + var cw = Object.prototype; + var lw = cw.hasOwnProperty; + var uw = cw.toString; + var fw = ow(function(e20, t10, n10) { + null != t10 && "function" != typeof t10.toString && (t10 = uw.call(t10)), lw.call(e20, t10) ? e20[t10].push(n10) : e20[t10] = [n10]; + }, ky); + var dw = fw; + function hw(e20, t10) { + return t10.length < 2 ? e20 : fv(e20, Fv(t10, 0, -1)); + } + function vw(e20, t10, n10) { + var r10 = null == (e20 = hw(e20, t10 = cv(t10, e20))) ? e20 : e20[uv(vb(t10))]; + return null == r10 ? void 0 : wf(r10, e20, n10); + } + var pw = Yd(vw); + var mw = Yd(function(e20, t10, n10) { + var r10 = -1, o10 = "function" == typeof t10, i10 = eh(e20) ? Array(e20.length) : []; + return Ey(e20, function(e21) { + i10[++r10] = o10 ? wf(t10, e21, n10) : vw(e21, t10, n10); + }), i10; + }); + var gw = mw; + var yw = wh && wh.isArrayBuffer; + var bw = yw ? gh(yw) : function(e20) { + return bu(e20) && "[object ArrayBuffer]" == yu(e20); + }; + function kw(e20) { + return true === e20 || false === e20 || bu(e20) && "[object Boolean]" == yu(e20); + } + var ww = wh && wh.isDate; + var xw = ww ? gh(ww) : function(e20) { + return bu(e20) && "[object Date]" == yu(e20); + }; + function jw(e20) { + return bu(e20) && 1 === e20.nodeType && !Ov(e20); + } + var Sw = "[object Map]"; + var Cw = "[object Set]"; + var $w = Object.prototype.hasOwnProperty; + function _w(e20) { + if (null == e20) + return true; + if (eh(e20) && (Cu(e20) || "string" == typeof e20 || "function" == typeof e20.splice || ph(e20) || jh(e20) || uh(e20))) + return !e20.length; + var t10 = Em(e20); + if (t10 == Sw || t10 == Cw) + return !e20.size; + if (oh(e20)) + return !Mh(e20).length; + for (var n10 in e20) + if ($w.call(e20, n10)) + return false; + return true; + } + function Ow(e20, t10) { + return oy(e20, t10); + } + function Mw(e20, t10, n10) { + var r10 = (n10 = "function" == typeof n10 ? n10 : void 0) ? n10(e20, t10) : void 0; + return void 0 === r10 ? oy(e20, t10, void 0, n10) : !!r10; + } + var Ew = cu.isFinite; + function Aw(e20) { + return "number" == typeof e20 && Ew(e20); + } + function Pw(e20) { + return "number" == typeof e20 && e20 == Uu(e20); + } + function Tw(e20, t10) { + return e20 === t10 || sy(e20, t10, ly(t10)); + } + function Rw(e20, t10, n10) { + return n10 = "function" == typeof n10 ? n10 : void 0, sy(e20, t10, ly(t10), n10); + } + var Nw = "[object Number]"; + function Iw(e20) { + return "number" == typeof e20 || bu(e20) && yu(e20) == Nw; + } + function Dw(e20) { + return Iw(e20) && e20 != +e20; + } + var qw = tf ? Zu : fh; + function zw(e20) { + if (qw(e20)) + throw new Error("Unsupported core-js use. Try https://npms.io/search?q=ponyfill."); + return df(e20); + } + function Bw(e20) { + return null == e20; + } + function Lw(e20) { + return null === e20; + } + var Fw = wh && wh.isRegExp; + var Vw = Fw ? gh(Fw) : function(e20) { + return bu(e20) && "[object RegExp]" == yu(e20); + }; + var Hw = 9007199254740991; + function Ww(e20) { + return Pw(e20) && e20 >= -9007199254740991 && e20 <= Hw; + } + function Uw(e20) { + return void 0 === e20; + } + function Jw(e20) { + return bu(e20) && "[object WeakMap]" == Em(e20); + } + function Kw(e20) { + return bu(e20) && "[object WeakSet]" == yu(e20); + } + function Gw(e20) { + return ky("function" == typeof e20 ? e20 : gg(e20, 1)); + } + var Qw = Array.prototype.join; + function Yw(e20, t10) { + return null == e20 ? "" : Qw.call(e20, t10); + } + var Xw = Bp(function(e20, t10, n10) { + return e20 + (n10 ? "-" : "") + t10.toLowerCase(); + }); + var Zw = Xw; + var ex = Py(function(e20, t10, n10) { + Hd(e20, n10, t10); + }); + var tx = ex; + var nx = Math.max; + var rx = Math.min; + function ox(e20, t10, n10) { + var r10 = null == e20 ? 0 : e20.length; + if (!r10) + return -1; + var o10 = r10; + return void 0 !== n10 && (o10 = (o10 = Uu(n10)) < 0 ? nx(r10 + o10, 0) : rx(o10, r10 - 1)), t10 == t10 ? function(e21, t11, n11) { + for (var r11 = n11 + 1; r11--; ) + if (e21[r11] === t11) + return r11; + return r11; + }(e20, t10, o10) : Yf(e20, Xf, o10, true); + } + var ix = Bp(function(e20, t10, n10) { + return e20 + (n10 ? " " : "") + t10.toLowerCase(); + }); + var ax = ix; + var sx = ip("toLowerCase"); + function cx(e20, t10) { + return e20 < t10; + } + var lx = Tk(cx); + var ux = Tk(function(e20, t10) { + return e20 <= t10; + }); + function fx(e20, t10) { + var n10 = {}; + return t10 = ky(t10), Oy(e20, function(e21, r10, o10) { + Hd(n10, t10(e21, r10, o10), e21); + }), n10; + } + function dx(e20, t10) { + var n10 = {}; + return t10 = ky(t10), Oy(e20, function(e21, r10, o10) { + Hd(n10, r10, t10(e21, r10, o10)); + }), n10; + } + function hx(e20) { + return fy(gg(e20, 1)); + } + function vx(e20, t10) { + return gy(e20, gg(t10, 1)); + } + function px(e20, t10, n10) { + for (var r10 = -1, o10 = e20.length; ++r10 < o10; ) { + var i10 = e20[r10], a10 = t10(i10); + if (null != a10 && (void 0 === s10 ? a10 == a10 && !wu(a10) : n10(a10, s10))) + var s10 = a10, c10 = i10; + } + return c10; + } + function mx(e20) { + return e20 && e20.length ? px(e20, Ku, Pk) : void 0; + } + function gx(e20, t10) { + return e20 && e20.length ? px(e20, ky(t10), Pk) : void 0; + } + function yx(e20, t10) { + for (var n10, r10 = -1, o10 = e20.length; ++r10 < o10; ) { + var i10 = t10(e20[r10]); + void 0 !== i10 && (n10 = void 0 === n10 ? i10 : n10 + i10); + } + return n10; + } + var bx = NaN; + function kx(e20, t10) { + var n10 = null == e20 ? 0 : e20.length; + return n10 ? yx(e20, t10) / n10 : bx; + } + function wx(e20) { + return kx(e20, Ku); + } + function xx(e20, t10) { + return kx(e20, ky(t10)); + } + var jx = nh(function(e20, t10, n10) { + Zy(e20, t10, n10); + }); + var Sx = jx; + var Cx = Yd(function(e20, t10) { + return function(n10) { + return vw(n10, e20, t10); + }; + }); + var $x = Cx; + var _x = Yd(function(e20, t10) { + return function(n10) { + return vw(e20, n10, t10); + }; + }); + var Ox = _x; + function Mx(e20) { + return e20 && e20.length ? px(e20, Ku, cx) : void 0; + } + function Ex(e20, t10) { + return e20 && e20.length ? px(e20, ky(t10), cx) : void 0; + } + function Ax(e20, t10, n10) { + var r10 = Eh(t10), o10 = $k(t10, r10), i10 = !(Iu(n10) && "chain" in n10 && !n10.chain), a10 = Zu(e20); + return Qf(o10, function(n11) { + var r11 = t10[n11]; + e20[n11] = r11, a10 && (e20.prototype[n11] = function() { + var t11 = this.__chain__; + if (i10 || t11) { + var n12 = e20(this.__wrapped__); + return (n12.__actions__ = Nf(this.__actions__)).push({ func: r11, args: arguments, thisArg: e20 }), n12.__chain__ = t11, n12; + } + return r11.apply(e20, vv([this.value()], arguments)); + }); + }), e20; + } + var Px = Eu(function(e20, t10) { + return e20 * t10; + }, 1); + var Tx = "Expected a function"; + function Rx(e20) { + if ("function" != typeof e20) + throw new TypeError(Tx); + return function() { + var t10 = arguments; + switch (t10.length) { + case 0: + return !e20.call(this); + case 1: + return !e20.call(this, t10[0]); + case 2: + return !e20.call(this, t10[0], t10[1]); + case 3: + return !e20.call(this, t10[0], t10[1], t10[2]); + } + return !e20.apply(this, t10); + }; + } + var Nx = "[object Map]"; + var Ix = "[object Set]"; + var Dx = lu ? lu.iterator : void 0; + function qx(e20) { + if (!e20) + return []; + if (eh(e20)) + return Vk(e20) ? op(e20) : Nf(e20); + if (Dx && e20[Dx]) + return function(e21) { + for (var t11, n10 = []; !(t11 = e21.next()).done; ) + n10.push(t11.value); + return n10; + }(e20[Dx]()); + var t10 = Em(e20); + return (t10 == Nx ? Tg : t10 == Ix ? Rg : Wk)(e20); + } + function zx() { + void 0 === this.__values__ && (this.__values__ = qx(this.value())); + var e20 = this.__index__ >= this.__values__.length; + return { done: e20, value: e20 ? void 0 : this.__values__[this.__index__++] }; + } + function Bx(e20, t10) { + var n10 = e20.length; + if (n10) + return hd(t10 += t10 < 0 ? n10 : 0, n10) ? e20[t10] : void 0; + } + function Lx(e20, t10) { + return e20 && e20.length ? Bx(e20, Uu(t10)) : void 0; + } + function Fx(e20) { + return e20 = Uu(e20), Yd(function(t10) { + return Bx(t10, e20); + }); + } + function Vx(e20, t10) { + return null == (e20 = hw(e20, t10 = cv(t10, e20))) || delete e20[uv(vb(t10))]; + } + function Hx(e20) { + return Ov(e20) ? void 0 : e20; + } + var Wx = bv(function(e20, t10) { + var n10 = {}; + if (null == e20) + return n10; + var r10 = false; + t10 = Su(t10, function(t11) { + return t11 = cv(t11, e20), r10 || (r10 = t11.length > 1), t11; + }), Kd(e20, pm(e20), n10), r10 && (n10 = gg(n10, 7, Hx)); + for (var o10 = t10.length; o10--; ) + Vx(n10, t10[o10]); + return n10; + }); + var Ux = Wx; + function Jx(e20, t10, n10, r10) { + if (!Iu(e20)) + return e20; + for (var o10 = -1, i10 = (t10 = cv(t10, e20)).length, a10 = i10 - 1, s10 = e20; null != s10 && ++o10 < i10; ) { + var c10 = uv(t10[o10]), l10 = n10; + if ("__proto__" === c10 || "constructor" === c10 || "prototype" === c10) + return e20; + if (o10 != a10) { + var u10 = s10[c10]; + void 0 === (l10 = r10 ? r10(u10, c10, s10) : void 0) && (l10 = Iu(u10) ? u10 : hd(t10[o10 + 1]) ? [] : {}); + } + Jd(s10, c10, l10), s10 = s10[c10]; + } + return e20; + } + function Kx(e20, t10, n10) { + for (var r10 = -1, o10 = t10.length, i10 = {}; ++r10 < o10; ) { + var a10 = t10[r10], s10 = fv(e20, a10); + n10(s10, a10) && Jx(i10, cv(a10, e20), s10); + } + return i10; + } + function Gx(e20, t10) { + if (null == e20) + return {}; + var n10 = Su(pm(e20), function(e21) { + return [e21]; + }); + return t10 = ky(t10), Kx(e20, n10, function(e21, n11) { + return t10(e21, n11[0]); + }); + } + function Qx(e20, t10) { + return Gx(e20, Rx(ky(t10))); + } + function Yx(e20) { + return Nv(2, e20); + } + function Xx(e20, t10) { + if (e20 !== t10) { + var n10 = void 0 !== e20, r10 = null === e20, o10 = e20 == e20, i10 = wu(e20), a10 = void 0 !== t10, s10 = null === t10, c10 = t10 == t10, l10 = wu(t10); + if (!s10 && !l10 && !i10 && e20 > t10 || i10 && a10 && c10 && !s10 && !l10 || r10 && a10 && c10 || !n10 && c10 || !o10) + return 1; + if (!r10 && !i10 && !l10 && e20 < t10 || l10 && n10 && o10 && !r10 && !i10 || s10 && n10 && o10 || !a10 && o10 || !c10) + return -1; + } + return 0; + } + function Zx(e20, t10, n10) { + t10 = t10.length ? Su(t10, function(e21) { + return Cu(e21) ? function(t11) { + return fv(t11, 1 === e21.length ? e21[0] : e21); + } : e21; + }) : [Ku]; + var r10 = -1; + t10 = Su(t10, gh(ky)); + var o10 = lk(e20, function(e21, n11, o11) { + var i10 = Su(t10, function(t11) { + return t11(e21); + }); + return { criteria: i10, index: ++r10, value: e21 }; + }); + return function(e21, t11) { + var n11 = e21.length; + for (e21.sort(t11); n11--; ) + e21[n11] = e21[n11].value; + return e21; + }(o10, function(e21, t11) { + return function(e23, t12, n11) { + for (var r11 = -1, o11 = e23.criteria, i10 = t12.criteria, a10 = o11.length, s10 = n11.length; ++r11 < a10; ) { + var c10 = Xx(o11[r11], i10[r11]); + if (c10) + return r11 >= s10 ? c10 : c10 * ("desc" == n11[r11] ? -1 : 1); + } + return e23.index - t12.index; + }(e21, t11, n10); + }); + } + function ej(e20, t10, n10, r10) { + return null == e20 ? [] : (Cu(t10) || (t10 = null == t10 ? [] : [t10]), Cu(n10 = r10 ? void 0 : n10) || (n10 = null == n10 ? [] : [n10]), Zx(e20, t10, n10)); + } + function tj(e20) { + return bv(function(t10) { + return t10 = Su(t10, gh(ky)), Yd(function(n10) { + var r10 = this; + return e20(t10, function(e21) { + return wf(e21, r10, n10); + }); + }); + }); + } + var nj = tj(Su); + var rj = Yd; + var oj = Math.min; + var ij = rj(function(e20, t10) { + var n10 = (t10 = 1 == t10.length && Cu(t10[0]) ? Su(t10[0], gh(ky)) : Su(gv(t10, 1), gh(ky))).length; + return Yd(function(r10) { + for (var o10 = -1, i10 = oj(r10.length, n10); ++o10 < i10; ) + r10[o10] = t10[o10].call(this, r10[o10]); + return wf(e20, this, r10); + }); + }); + var aj = ij; + var sj = tj(Vb); + var cj = tj(Og); + var lj = 9007199254740991; + var uj = Math.floor; + function fj(e20, t10) { + var n10 = ""; + if (!e20 || t10 < 1 || t10 > lj) + return n10; + do { + t10 % 2 && (n10 += e20), (t10 = uj(t10 / 2)) && (e20 += e20); + } while (t10); + return n10; + } + var dj = yy("length"); + var hj = "\\ud800-\\udfff"; + var vj = "[" + hj + "]"; + var pj = "[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]"; + var mj = "\\ud83c[\\udffb-\\udfff]"; + var gj = "[^" + hj + "]"; + var yj = "(?:\\ud83c[\\udde6-\\uddff]){2}"; + var bj = "[\\ud800-\\udbff][\\udc00-\\udfff]"; + var kj = "(?:" + pj + "|" + mj + ")?"; + var wj = "[\\ufe0e\\ufe0f]?"; + var xj = wj + kj + ("(?:\\u200d(?:" + [gj, yj, bj].join("|") + ")" + wj + kj + ")*"); + var jj = "(?:" + [gj + pj + "?", pj, yj, bj, vj].join("|") + ")"; + var Sj = RegExp(mj + "(?=" + mj + ")|" + jj + xj, "g"); + function Cj(e20) { + return Wv(e20) ? function(e21) { + for (var t10 = Sj.lastIndex = 0; Sj.test(e21); ) + ++t10; + return t10; + }(e20) : dj(e20); + } + var $j = Math.ceil; + function _j(e20, t10) { + var n10 = (t10 = void 0 === t10 ? " " : Mu(t10)).length; + if (n10 < 2) + return n10 ? fj(t10, e20) : t10; + var r10 = fj(t10, $j(e20 / Cj(t10))); + return Wv(t10) ? Vv(op(r10), 0, e20).join("") : r10.slice(0, e20); + } + var Oj = Math.ceil; + var Mj = Math.floor; + function Ej(e20, t10, n10) { + e20 = sv(e20); + var r10 = (t10 = Uu(t10)) ? Cj(e20) : 0; + if (!t10 || r10 >= t10) + return e20; + var o10 = (t10 - r10) / 2; + return _j(Mj(o10), n10) + e20 + _j(Oj(o10), n10); + } + function Aj(e20, t10, n10) { + e20 = sv(e20); + var r10 = (t10 = Uu(t10)) ? Cj(e20) : 0; + return t10 && r10 < t10 ? e20 + _j(t10 - r10, n10) : e20; + } + function Pj(e20, t10, n10) { + e20 = sv(e20); + var r10 = (t10 = Uu(t10)) ? Cj(e20) : 0; + return t10 && r10 < t10 ? _j(t10 - r10, n10) + e20 : e20; + } + var Tj = /^\s+/; + var Rj = cu.parseInt; + function Nj(e20, t10, n10) { + return n10 || null == t10 ? t10 = 0 : t10 && (t10 = +t10), Rj(sv(e20).replace(Tj, ""), t10 || 0); + } + var Ij = Yd(function(e20, t10) { + return Ld(e20, 32, void 0, t10, md(t10, ud(Ij))); + }); + Ij.placeholder = {}; + var Dj = Ij; + var qj = Yd(function(e20, t10) { + return Ld(e20, 64, void 0, t10, md(t10, ud(qj))); + }); + qj.placeholder = {}; + var zj = qj; + var Bj = Py(function(e20, t10, n10) { + e20[n10 ? 0 : 1].push(t10); + }, function() { + return [[], []]; + }); + var Lj = Bj; + var Fj = bv(function(e20, t10) { + return null == e20 ? {} : function(e21, t11) { + return Kx(e21, t11, function(t12, n10) { + return vy(e21, n10); + }); + }(e20, t10); + }); + var Vj = Fj; + function Hj(e20) { + for (var t10, n10 = this; n10 instanceof $f; ) { + var r10 = If(n10); + r10.__index__ = 0, r10.__values__ = void 0, t10 ? o10.__wrapped__ = r10 : t10 = r10; + var o10 = r10; + n10 = n10.__wrapped__; + } + return o10.__wrapped__ = e20, t10; + } + function Wj(e20) { + return function(t10) { + return null == e20 ? void 0 : fv(e20, t10); + }; + } + function Uj(e20, t10, n10, r10) { + for (var o10 = n10 - 1, i10 = e20.length; ++o10 < i10; ) + if (r10(e20[o10], t10)) + return o10; + return -1; + } + var Jj = Array.prototype.splice; + function Kj(e20, t10, n10, r10) { + var o10 = r10 ? Uj : Zf, i10 = -1, a10 = t10.length, s10 = e20; + for (e20 === t10 && (t10 = Nf(t10)), n10 && (s10 = Su(e20, gh(n10))); ++i10 < a10; ) + for (var c10 = 0, l10 = t10[i10], u10 = n10 ? n10(l10) : l10; (c10 = o10(s10, u10, c10, r10)) > -1; ) + s10 !== e20 && Jj.call(s10, c10, 1), Jj.call(e20, c10, 1); + return e20; + } + function Gj(e20, t10) { + return e20 && e20.length && t10 && t10.length ? Kj(e20, t10) : e20; + } + var Qj = Yd(Gj); + function Yj(e20, t10, n10) { + return e20 && e20.length && t10 && t10.length ? Kj(e20, t10, ky(n10)) : e20; + } + function Xj(e20, t10, n10) { + return e20 && e20.length && t10 && t10.length ? Kj(e20, t10, void 0, n10) : e20; + } + var Zj = Array.prototype.splice; + function eS(e20, t10) { + for (var n10 = e20 ? t10.length : 0, r10 = n10 - 1; n10--; ) { + var o10 = t10[n10]; + if (n10 == r10 || o10 !== i10) { + var i10 = o10; + hd(o10) ? Zj.call(e20, o10, 1) : Vx(e20, o10); + } + } + return e20; + } + var tS = bv(function(e20, t10) { + var n10 = null == e20 ? 0 : e20.length, r10 = hv(e20, t10); + return eS(e20, Su(t10, function(e21) { + return hd(e21, n10) ? +e21 : e21; + }).sort(Xx)), r10; + }); + var nS = tS; + var rS = Math.floor; + var oS = Math.random; + function iS(e20, t10) { + return e20 + rS(oS() * (t10 - e20 + 1)); + } + var aS = parseFloat; + var sS = Math.min; + var cS = Math.random; + function lS(e20, t10, n10) { + if (n10 && "boolean" != typeof n10 && th(e20, t10, n10) && (t10 = n10 = void 0), void 0 === n10 && ("boolean" == typeof t10 ? (n10 = t10, t10 = void 0) : "boolean" == typeof e20 && (n10 = e20, e20 = void 0)), void 0 === e20 && void 0 === t10 ? (e20 = 0, t10 = 1) : (e20 = Wu(e20), void 0 === t10 ? (t10 = e20, e20 = 0) : t10 = Wu(t10)), e20 > t10) { + var r10 = e20; + e20 = t10, t10 = r10; + } + if (n10 || e20 % 1 || t10 % 1) { + var o10 = cS(); + return sS(e20 + o10 * (t10 - e20 + aS("1e-" + ((o10 + "").length - 1))), t10); + } + return iS(e20, t10); + } + var uS = Math.ceil; + var fS = Math.max; + function dS(e20) { + return function(t10, n10, r10) { + return r10 && "number" != typeof r10 && th(t10, n10, r10) && (n10 = r10 = void 0), t10 = Wu(t10), void 0 === n10 ? (n10 = t10, t10 = 0) : n10 = Wu(n10), function(e21, t11, n11, r11) { + for (var o10 = -1, i10 = fS(uS((t11 - e21) / (n11 || 1)), 0), a10 = Array(i10); i10--; ) + a10[r11 ? i10 : ++o10] = e21, e21 += n11; + return a10; + }(t10, n10, r10 = void 0 === r10 ? t10 < n10 ? 1 : -1 : Wu(r10), e20); + }; + } + var hS = dS(); + var vS = dS(true); + var pS = bv(function(e20, t10) { + return Ld(e20, 256, void 0, void 0, void 0, t10); + }); + var mS = pS; + function gS(e20, t10, n10, r10, o10) { + return o10(e20, function(e21, o11, i10) { + n10 = r10 ? (r10 = false, e21) : t10(n10, e21, o11, i10); + }), n10; + } + function yS(e20, t10, n10) { + var r10 = Cu(e20) ? cp : gS, o10 = arguments.length < 3; + return r10(e20, ky(t10), n10, o10, Ey); + } + function bS(e20, t10, n10, r10) { + var o10 = null == e20 ? 0 : e20.length; + for (r10 && o10 && (n10 = e20[--o10]); o10--; ) + n10 = t10(n10, e20[o10], o10, e20); + return n10; + } + function kS(e20, t10, n10) { + var r10 = Cu(e20) ? bS : gS, o10 = arguments.length < 3; + return r10(e20, ky(t10), n10, o10, Eb); + } + function wS(e20, t10) { + return (Cu(e20) ? sm : Gb)(e20, Rx(ky(t10))); + } + function xS(e20, t10) { + var n10 = []; + if (!e20 || !e20.length) + return n10; + var r10 = -1, o10 = [], i10 = e20.length; + for (t10 = ky(t10); ++r10 < i10; ) { + var a10 = e20[r10]; + t10(a10, r10, e20) && (n10.push(a10), o10.push(r10)); + } + return eS(e20, o10), n10; + } + function jS(e20, t10, n10) { + return t10 = (n10 ? th(e20, t10, n10) : void 0 === t10) ? 1 : Uu(t10), fj(sv(e20), t10); + } + function SS() { + var e20 = arguments, t10 = sv(e20[0]); + return e20.length < 3 ? t10 : t10.replace(e20[1], e20[2]); + } + function CS(e20, t10) { + if ("function" != typeof e20) + throw new TypeError("Expected a function"); + return Yd(e20, t10 = void 0 === t10 ? t10 : Uu(t10)); + } + function $S(e20, t10, n10) { + var r10 = -1, o10 = (t10 = cv(t10, e20)).length; + for (o10 || (o10 = 1, e20 = void 0); ++r10 < o10; ) { + var i10 = null == e20 ? void 0 : e20[uv(t10[r10])]; + void 0 === i10 && (r10 = o10, i10 = n10), e20 = Zu(i10) ? i10.call(e20) : i10; + } + return e20; + } + var _S = Array.prototype.reverse; + function OS(e20) { + return null == e20 ? e20 : _S.call(e20); + } + var MS = Up("round"); + function ES(e20) { + var t10 = e20.length; + return t10 ? e20[iS(0, t10 - 1)] : void 0; + } + function AS(e20) { + return ES(Wk(e20)); + } + function PS(e20) { + return (Cu(e20) ? ES : AS)(e20); + } + function TS(e20, t10) { + var n10 = -1, r10 = e20.length, o10 = r10 - 1; + for (t10 = void 0 === t10 ? r10 : t10; ++n10 < t10; ) { + var i10 = iS(n10, o10), a10 = e20[i10]; + e20[i10] = e20[n10], e20[n10] = a10; + } + return e20.length = t10, e20; + } + function RS(e20, t10) { + return TS(Nf(e20), Xp(t10, 0, e20.length)); + } + function NS(e20, t10) { + var n10 = Wk(e20); + return TS(n10, Xp(t10, 0, n10.length)); + } + function IS(e20, t10, n10) { + return t10 = (n10 ? th(e20, t10, n10) : void 0 === t10) ? 1 : Uu(t10), (Cu(e20) ? RS : NS)(e20, t10); + } + function DS(e20, t10, n10) { + return null == e20 ? e20 : Jx(e20, t10, n10); + } + function qS(e20, t10, n10, r10) { + return r10 = "function" == typeof r10 ? r10 : void 0, null == e20 ? e20 : Jx(e20, t10, n10, r10); + } + function zS(e20) { + return TS(Nf(e20)); + } + function BS(e20) { + return TS(Wk(e20)); + } + function LS(e20) { + return (Cu(e20) ? zS : BS)(e20); + } + function FS(e20) { + if (null == e20) + return 0; + if (eh(e20)) + return Vk(e20) ? Cj(e20) : e20.length; + var t10 = Em(e20); + return "[object Map]" == t10 || "[object Set]" == t10 ? e20.size : Mh(e20).length; + } + function VS(e20, t10, n10) { + var r10 = null == e20 ? 0 : e20.length; + return r10 ? (n10 && "number" != typeof n10 && th(e20, t10, n10) ? (t10 = 0, n10 = r10) : (t10 = null == t10 ? 0 : Uu(t10), n10 = void 0 === n10 ? r10 : Uu(n10)), Fv(e20, t10, n10)) : []; + } + var HS = Bp(function(e20, t10, n10) { + return e20 + (n10 ? "_" : "") + t10.toLowerCase(); + }); + var WS = HS; + function US(e20, t10) { + var n10; + return Ey(e20, function(e21, r10, o10) { + return !(n10 = t10(e21, r10, o10)); + }), !!n10; + } + function JS(e20, t10, n10) { + var r10 = Cu(e20) ? Og : US; + return n10 && th(e20, t10, n10) && (t10 = void 0), r10(e20, ky(t10)); + } + var KS = Yd(function(e20, t10) { + if (null == e20) + return []; + var n10 = t10.length; + return n10 > 1 && th(e20, t10[0], t10[1]) ? t10 = [] : n10 > 2 && th(t10[0], t10[1], t10[2]) && (t10 = [t10[0]]), Zx(e20, gv(t10, 1), []); + }); + var GS = KS; + var QS = 4294967294; + var YS = Math.floor; + var XS = Math.min; + function ZS(e20, t10, n10, r10) { + var o10 = 0, i10 = null == e20 ? 0 : e20.length; + if (0 === i10) + return 0; + for (var a10 = (t10 = n10(t10)) != t10, s10 = null === t10, c10 = wu(t10), l10 = void 0 === t10; o10 < i10; ) { + var u10 = YS((o10 + i10) / 2), f10 = n10(e20[u10]), d10 = void 0 !== f10, h10 = null === f10, v10 = f10 == f10, p10 = wu(f10); + if (a10) + var m10 = r10 || v10; + else + m10 = l10 ? v10 && (r10 || d10) : s10 ? v10 && d10 && (r10 || !h10) : c10 ? v10 && d10 && !h10 && (r10 || !p10) : !h10 && !p10 && (r10 ? f10 <= t10 : f10 < t10); + m10 ? o10 = u10 + 1 : i10 = u10; + } + return XS(i10, QS); + } + var eC = 2147483647; + function tC(e20, t10, n10) { + var r10 = 0, o10 = null == e20 ? r10 : e20.length; + if ("number" == typeof t10 && t10 == t10 && o10 <= eC) { + for (; r10 < o10; ) { + var i10 = r10 + o10 >>> 1, a10 = e20[i10]; + null !== a10 && !wu(a10) && (n10 ? a10 <= t10 : a10 < t10) ? r10 = i10 + 1 : o10 = i10; + } + return o10; + } + return ZS(e20, t10, Ku, n10); + } + function nC(e20, t10) { + return tC(e20, t10); + } + function rC(e20, t10, n10) { + return ZS(e20, t10, ky(n10)); + } + function oC(e20, t10) { + var n10 = null == e20 ? 0 : e20.length; + if (n10) { + var r10 = tC(e20, t10); + if (r10 < n10 && Wd(e20[r10], t10)) + return r10; + } + return -1; + } + function iC(e20, t10) { + return tC(e20, t10, true); + } + function aC(e20, t10, n10) { + return ZS(e20, t10, ky(n10), true); + } + function sC(e20, t10) { + if (null == e20 ? 0 : e20.length) { + var n10 = tC(e20, t10, true) - 1; + if (Wd(e20[n10], t10)) + return n10; + } + return -1; + } + function cC(e20, t10) { + for (var n10 = -1, r10 = e20.length, o10 = 0, i10 = []; ++n10 < r10; ) { + var a10 = e20[n10], s10 = t10 ? t10(a10) : a10; + if (!n10 || !Wd(s10, c10)) { + var c10 = s10; + i10[o10++] = 0 === a10 ? 0 : a10; + } + } + return i10; + } + function lC(e20) { + return e20 && e20.length ? cC(e20) : []; + } + function uC(e20, t10) { + return e20 && e20.length ? cC(e20, ky(t10)) : []; + } + function fC(e20, t10, n10) { + return n10 && "number" != typeof n10 && th(e20, t10, n10) && (t10 = n10 = void 0), (n10 = void 0 === n10 ? 4294967295 : n10 >>> 0) ? (e20 = sv(e20)) && ("string" == typeof t10 || null != t10 && !Vw(t10)) && !(t10 = Mu(t10)) && Wv(e20) ? Vv(op(e20), 0, n10) : e20.split(t10, n10) : []; + } + var dC = Math.max; + function hC(e20, t10) { + if ("function" != typeof e20) + throw new TypeError("Expected a function"); + return t10 = null == t10 ? 0 : dC(Uu(t10), 0), Yd(function(n10) { + var r10 = n10[t10], o10 = Vv(n10, 0, t10); + return r10 && vv(o10, r10), wf(e20, this, o10); + }); + } + var vC = Bp(function(e20, t10, n10) { + return e20 + (n10 ? " " : "") + ap(t10); + }); + var pC = vC; + function mC(e20, t10, n10) { + return e20 = sv(e20), n10 = null == n10 ? 0 : Xp(Uu(n10), 0, e20.length), t10 = Mu(t10), e20.slice(n10, n10 + t10.length) == t10; + } + function gC() { + return {}; + } + function yC() { + return ""; + } + function bC() { + return true; + } + var kC = Eu(function(e20, t10) { + return e20 - t10; + }, 0); + function wC(e20) { + return e20 && e20.length ? yx(e20, Ku) : 0; + } + function xC(e20, t10) { + return e20 && e20.length ? yx(e20, ky(t10)) : 0; + } + function jC(e20) { + var t10 = null == e20 ? 0 : e20.length; + return t10 ? Fv(e20, 1, t10) : []; + } + function SC(e20, t10, n10) { + return e20 && e20.length ? Fv(e20, 0, (t10 = n10 || void 0 === t10 ? 1 : Uu(t10)) < 0 ? 0 : t10) : []; + } + function CC(e20, t10, n10) { + var r10 = null == e20 ? 0 : e20.length; + return r10 ? Fv(e20, (t10 = r10 - (t10 = n10 || void 0 === t10 ? 1 : Uu(t10))) < 0 ? 0 : t10, r10) : []; + } + function $C(e20, t10) { + return e20 && e20.length ? xb(e20, ky(t10), false, true) : []; + } + function _C(e20, t10) { + return e20 && e20.length ? xb(e20, ky(t10)) : []; + } + function OC(e20, t10) { + return t10(e20), e20; + } + var MC = Object.prototype; + var EC = MC.hasOwnProperty; + function AC(e20, t10, n10, r10) { + return void 0 === e20 || Wd(e20, MC[n10]) && !EC.call(r10, n10) ? t10 : e20; + } + var PC = { "\\": "\\", "'": "'", "\n": "n", "\r": "r", "\u2028": "u2028", "\u2029": "u2029" }; + function TC(e20) { + return "\\" + PC[e20]; + } + var RC = /<%=([\s\S]+?)%>/g; + var NC = { escape: /<%-([\s\S]+?)%>/g, evaluate: /<%([\s\S]+?)%>/g, interpolate: RC, variable: "", imports: { _: { escape: zb } } }; + var IC = /\b__p \+= '';/g; + var DC = /\b(__p \+=) '' \+/g; + var qC = /(__e\(.*?\)|\b__t\)) \+\n'';/g; + var zC = /[()=,{}\[\]\/\s]/; + var BC = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g; + var LC = /($^)/; + var FC = /['\n\r\u2028\u2029\\]/g; + var VC = Object.prototype.hasOwnProperty; + function HC(e20, t10, n10) { + var r10 = NC.imports._.templateSettings || NC; + n10 && th(e20, t10, n10) && (t10 = void 0), e20 = sv(e20), t10 = Bh({}, t10, r10, AC); + var o10, i10, a10 = Bh({}, t10.imports, r10.imports, AC), s10 = Eh(a10), c10 = Hk(a10, s10), l10 = 0, u10 = t10.interpolate || LC, f10 = "__p += '", d10 = RegExp((t10.escape || LC).source + "|" + u10.source + "|" + (u10 === RC ? BC : LC).source + "|" + (t10.evaluate || LC).source + "|$", "g"), h10 = VC.call(t10, "sourceURL") ? "//# sourceURL=" + (t10.sourceURL + "").replace(/\s/g, " ") + "\n" : ""; + e20.replace(d10, function(t11, n11, r11, a11, s11, c11) { + return r11 || (r11 = a11), f10 += e20.slice(l10, c11).replace(FC, TC), n11 && (o10 = true, f10 += "' +\n__e(" + n11 + ") +\n'"), s11 && (i10 = true, f10 += "';\n" + s11 + ";\n__p += '"), r11 && (f10 += "' +\n((__t = (" + r11 + ")) == null ? '' : __t) +\n'"), l10 = c11 + t11.length, t11; + }), f10 += "';\n"; + var v10 = VC.call(t10, "variable") && t10.variable; + if (v10) { + if (zC.test(v10)) + throw new Error("Invalid `variable` option passed into `_.template`"); + } else + f10 = "with (obj) {\n" + f10 + "\n}\n"; + f10 = (i10 ? f10.replace(IC, "") : f10).replace(DC, "$1").replace(qC, "$1;"), f10 = "function(" + (v10 || "obj") + ") {\n" + (v10 ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (o10 ? ", __e = _.escape" : "") + (i10 ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + f10 + "return __p\n}"; + var p10 = Tv(function() { + return Function(s10, h10 + "return " + f10).apply(void 0, c10); + }); + if (p10.source = f10, Av(p10)) + throw p10; + return p10; + } + var WC = "Expected a function"; + function UC(e20, t10, n10) { + var r10 = true, o10 = true; + if ("function" != typeof e20) + throw new TypeError(WC); + return Iu(n10) && (r10 = "leading" in n10 ? !!n10.leading : r10, o10 = "trailing" in n10 ? !!n10.trailing : o10), Vy(e20, t10, { leading: r10, maxWait: t10, trailing: o10 }); + } + function JC(e20, t10) { + return t10(e20); + } + var KC = 9007199254740991; + var GC = 4294967295; + var QC = Math.min; + function YC(e20, t10) { + if ((e20 = Uu(e20)) < 1 || e20 > KC) + return []; + var n10 = GC, r10 = QC(e20, GC); + t10 = Cb(t10), e20 -= GC; + for (var o10 = ih(r10, t10); ++n10 < e20; ) + t10(n10); + return o10; + } + function XC() { + return this; + } + function ZC(e20, t10) { + var n10 = e20; + return n10 instanceof Of && (n10 = n10.value()), cp(t10, function(e21, t11) { + return t11.func.apply(t11.thisArg, vv([e21], t11.args)); + }, n10); + } + function e$() { + return ZC(this.__wrapped__, this.__actions__); + } + function t$(e20) { + return sv(e20).toLowerCase(); + } + function n$(e20) { + return Cu(e20) ? Su(e20, uv) : wu(e20) ? [e20] : Nf(av(sv(e20))); + } + var r$ = 9007199254740991; + function o$(e20) { + return e20 ? Xp(Uu(e20), -9007199254740991, r$) : 0 === e20 ? e20 : 0; + } + function i$(e20) { + return sv(e20).toUpperCase(); + } + function a$(e20, t10, n10) { + var r10 = Cu(e20), o10 = r10 || ph(e20) || jh(e20); + if (t10 = ky(t10), null == n10) { + var i10 = e20 && e20.constructor; + n10 = o10 ? r10 ? new i10() : [] : Iu(e20) && Zu(i10) ? yf(wv(e20)) : {}; + } + return (o10 ? Qf : Oy)(e20, function(e21, r11, o11) { + return t10(n10, e21, r11, o11); + }), n10; + } + function s$(e20, t10) { + for (var n10 = e20.length; n10-- && Zf(t10, e20[n10], 0) > -1; ) + ; + return n10; + } + function c$(e20, t10) { + for (var n10 = -1, r10 = e20.length; ++n10 < r10 && Zf(t10, e20[n10], 0) > -1; ) + ; + return n10; + } + function l$(e20, t10, n10) { + if ((e20 = sv(e20)) && (n10 || void 0 === t10)) + return Nu(e20); + if (!e20 || !(t10 = Mu(t10))) + return e20; + var r10 = op(e20), o10 = op(t10); + return Vv(r10, c$(r10, o10), s$(r10, o10) + 1).join(""); + } + function u$(e20, t10, n10) { + if ((e20 = sv(e20)) && (n10 || void 0 === t10)) + return e20.slice(0, Tu(e20) + 1); + if (!e20 || !(t10 = Mu(t10))) + return e20; + var r10 = op(e20); + return Vv(r10, 0, s$(r10, op(t10)) + 1).join(""); + } + var f$ = /^\s+/; + function d$(e20, t10, n10) { + if ((e20 = sv(e20)) && (n10 || void 0 === t10)) + return e20.replace(f$, ""); + if (!e20 || !(t10 = Mu(t10))) + return e20; + var r10 = op(e20); + return Vv(r10, c$(r10, op(t10))).join(""); + } + var h$ = /\w*$/; + function v$(e20, t10) { + var n10 = 30, r10 = "..."; + if (Iu(t10)) { + var o10 = "separator" in t10 ? t10.separator : o10; + n10 = "length" in t10 ? Uu(t10.length) : n10, r10 = "omission" in t10 ? Mu(t10.omission) : r10; + } + var i10 = (e20 = sv(e20)).length; + if (Wv(e20)) { + var a10 = op(e20); + i10 = a10.length; + } + if (n10 >= i10) + return e20; + var s10 = n10 - Cj(r10); + if (s10 < 1) + return r10; + var c10 = a10 ? Vv(a10, 0, s10).join("") : e20.slice(0, s10); + if (void 0 === o10) + return c10 + r10; + if (a10 && (s10 += c10.length - s10), Vw(o10)) { + if (e20.slice(s10).search(o10)) { + var l10, u10 = c10; + for (o10.global || (o10 = RegExp(o10.source, sv(h$.exec(o10)) + "g")), o10.lastIndex = 0; l10 = o10.exec(u10); ) + var f10 = l10.index; + c10 = c10.slice(0, void 0 === f10 ? s10 : f10); + } + } else if (e20.indexOf(Mu(o10), s10) != s10) { + var d10 = c10.lastIndexOf(o10); + d10 > -1 && (c10 = c10.slice(0, d10)); + } + return c10 + r10; + } + function p$(e20) { + return Vd(e20, 1); + } + var m$ = lp({ "&": "&", "<": "<", ">": ">", """: '"', "'": "'" }); + var g$ = /&(?:amp|lt|gt|quot|#39);/g; + var y$ = RegExp(g$.source); + function b$(e20) { + return (e20 = sv(e20)) && y$.test(e20) ? e20.replace(g$, m$) : e20; + } + var k$ = ym && 1 / Rg(new ym([, -0]))[1] == 1 / 0 ? function(e20) { + return new ym(e20); + } : Mf; + var w$ = 200; + function x$(e20, t10, n10) { + var r10 = -1, o10 = ed, i10 = e20.length, a10 = true, s10 = [], c10 = s10; + if (n10) + a10 = false, o10 = lb; + else if (i10 >= w$) { + var l10 = t10 ? null : k$(e20); + if (l10) + return Rg(l10); + a10 = false, o10 = Mg, c10 = new _g(); + } else + c10 = t10 ? [] : s10; + e: + for (; ++r10 < i10; ) { + var u10 = e20[r10], f10 = t10 ? t10(u10) : u10; + if (u10 = n10 || 0 !== u10 ? u10 : 0, a10 && f10 == f10) { + for (var d10 = c10.length; d10--; ) + if (c10[d10] === f10) + continue e; + t10 && c10.push(f10), s10.push(u10); + } else + o10(c10, f10, n10) || (c10 !== s10 && c10.push(f10), s10.push(u10)); + } + return s10; + } + var j$ = Yd(function(e20) { + return x$(gv(e20, 1, Qy, true)); + }); + var S$ = Yd(function(e20) { + var t10 = vb(e20); + return Qy(t10) && (t10 = void 0), x$(gv(e20, 1, Qy, true), ky(t10)); + }); + var C$ = S$; + var $$ = Yd(function(e20) { + var t10 = vb(e20); + return t10 = "function" == typeof t10 ? t10 : void 0, x$(gv(e20, 1, Qy, true), void 0, t10); + }); + function _$(e20) { + return e20 && e20.length ? x$(e20) : []; + } + function O$(e20, t10) { + return e20 && e20.length ? x$(e20, ky(t10)) : []; + } + function M$(e20, t10) { + return t10 = "function" == typeof t10 ? t10 : void 0, e20 && e20.length ? x$(e20, void 0, t10) : []; + } + var E$ = 0; + function A$(e20) { + var t10 = ++E$; + return sv(e20) + t10; + } + function P$(e20, t10) { + return null == e20 || Vx(e20, t10); + } + var T$ = Math.max; + function R$(e20) { + if (!e20 || !e20.length) + return []; + var t10 = 0; + return e20 = sm(e20, function(e21) { + if (Qy(e21)) + return t10 = T$(e21.length, t10), true; + }), ih(t10, function(t11) { + return Su(e20, yy(t11)); + }); + } + function N$(e20, t10) { + if (!e20 || !e20.length) + return []; + var n10 = R$(e20); + return null == t10 ? n10 : Su(n10, function(e21) { + return wf(t10, void 0, e21); + }); + } + function I$(e20, t10, n10, r10) { + return Jx(e20, t10, n10(fv(e20, t10)), r10); + } + function D$(e20, t10, n10) { + return null == e20 ? e20 : I$(e20, t10, Cb(n10)); + } + function q$(e20, t10, n10, r10) { + return r10 = "function" == typeof r10 ? r10 : void 0, null == e20 ? e20 : I$(e20, t10, Cb(n10), r10); + } + var z$ = Bp(function(e20, t10, n10) { + return e20 + (n10 ? " " : "") + t10.toUpperCase(); + }); + var B$ = z$; + function L$(e20) { + return null == e20 ? [] : Hk(e20, Ih(e20)); + } + var F$ = Yd(function(e20, t10) { + return Qy(e20) ? fb(e20, t10) : []; + }); + var V$ = F$; + function H$(e20, t10) { + return Dj(Cb(t10), e20); + } + var W$ = bv(function(e20) { + var t10 = e20.length, n10 = t10 ? e20[0] : 0, r10 = this.__wrapped__, o10 = function(t11) { + return hv(t11, e20); + }; + return !(t10 > 1 || this.__actions__.length) && r10 instanceof Of && hd(n10) ? ((r10 = r10.slice(n10, +n10 + (t10 ? 1 : 0))).__actions__.push({ func: JC, args: [o10], thisArg: void 0 }), new Rf(r10, this.__chain__).thru(function(e21) { + return t10 && !e21.length && e21.push(void 0), e21; + })) : this.thru(o10); + }); + var U$ = W$; + function J$() { + return Kp(this); + } + function K$() { + var e20 = this.__wrapped__; + if (e20 instanceof Of) { + var t10 = e20; + return this.__actions__.length && (t10 = new Of(this)), (t10 = t10.reverse()).__actions__.push({ func: JC, args: [OS], thisArg: void 0 }), new Rf(t10, this.__chain__); + } + return this.thru(OS); + } + function G$(e20, t10, n10) { + var r10 = e20.length; + if (r10 < 2) + return r10 ? x$(e20[0]) : []; + for (var o10 = -1, i10 = Array(r10); ++o10 < r10; ) + for (var a10 = e20[o10], s10 = -1; ++s10 < r10; ) + s10 != o10 && (i10[o10] = fb(i10[o10] || a10, e20[s10], t10, n10)); + return x$(gv(i10, 1), t10, n10); + } + var Q$ = Yd(function(e20) { + return G$(sm(e20, Qy)); + }); + var Y$ = Yd(function(e20) { + var t10 = vb(e20); + return Qy(t10) && (t10 = void 0), G$(sm(e20, Qy), ky(t10)); + }); + var X$ = Y$; + var Z$ = Yd(function(e20) { + var t10 = vb(e20); + return t10 = "function" == typeof t10 ? t10 : void 0, G$(sm(e20, Qy), void 0, t10); + }); + var e_ = Yd(R$); + function t_(e20, t10, n10) { + for (var r10 = -1, o10 = e20.length, i10 = t10.length, a10 = {}; ++r10 < o10; ) { + var s10 = r10 < i10 ? t10[r10] : void 0; + n10(a10, e20[r10], s10); + } + return a10; + } + function n_(e20, t10) { + return t_(e20 || [], t10 || [], Jd); + } + function r_(e20, t10) { + return t_(e20 || [], t10 || [], Jx); + } + var o_ = Yd(function(e20) { + var t10 = e20.length, n10 = t10 > 1 ? e20[t10 - 1] : void 0; + return n10 = "function" == typeof n10 ? (e20.pop(), n10) : void 0, N$(e20, n10); + }); + var i_ = o_; + var a_ = { chunk: Yp, compact: Cg, concat: $g, difference: hb, differenceBy: mb, differenceWith: yb, drop: kb, dropRight: wb, dropRightWhile: jb, dropWhile: Sb, fill: Kb, findIndex: Zb, findLastIndex: ik, first: ck, flatten: yv, flattenDeep: vk, flattenDepth: pk, fromPairs: Ck, head: ck, indexOf: Gk, initial: Qk, intersection: ew, intersectionBy: nw, intersectionWith: rw, join: Yw, last: vb, lastIndexOf: ox, nth: Lx, pull: Qj, pullAll: Gj, pullAllBy: Yj, pullAllWith: Xj, pullAt: nS, remove: xS, reverse: OS, slice: VS, sortedIndex: nC, sortedIndexBy: rC, sortedIndexOf: oC, sortedLastIndex: iC, sortedLastIndexBy: aC, sortedLastIndexOf: sC, sortedUniq: lC, sortedUniqBy: uC, tail: jC, take: SC, takeRight: CC, takeRightWhile: $C, takeWhile: _C, union: j$, unionBy: C$, unionWith: $$, uniq: _$, uniqBy: O$, uniqWith: M$, unzip: R$, unzipWith: N$, without: V$, xor: Q$, xorBy: X$, xorWith: Z$, zip: e_, zipObject: n_, zipObjectDeep: r_, zipWith: i_ }; + var s_ = { countBy: Ny, each: $b, eachRight: Ab, every: Wb, filter: Qb, find: ek, findLast: ak, flatMap: fk, flatMapDeep: dk, flatMapDepth: hk, forEach: $b, forEachRight: Ab, groupBy: Ak, includes: Jk, invokeMap: gw, keyBy: tx, map: uk, orderBy: ej, partition: Lj, reduce: yS, reduceRight: kS, reject: wS, sample: PS, sampleSize: IS, shuffle: LS, size: FS, some: JS, sortBy: GS }; + var c_ = { now: zy }; + var l_ = { after: Ju, ary: Vd, before: Nv, bind: Dv, bindKey: Lv, curry: Dy, curryRight: qy, debounce: Vy, defer: ab, delay: cb, flip: mk, memoize: rv, negate: Rx, once: Yx, overArgs: aj, partial: Dj, partialRight: zj, rearg: mS, rest: CS, spread: hC, throttle: UC, unary: p$, wrap: H$ }; + var u_ = { castArray: Vp, clone: yg, cloneDeep: bg, cloneDeepWith: xg, cloneWith: jg, conformsTo: Sy, eq: Wd, gt: Rk, gte: Nk, isArguments: uh, isArray: Cu, isArrayBuffer: bw, isArrayLike: eh, isArrayLikeObject: Qy, isBoolean: kw, isBuffer: ph, isDate: xw, isElement: jw, isEmpty: _w, isEqual: Ow, isEqualWith: Mw, isError: Av, isFinite: Aw, isFunction: Zu, isInteger: Pw, isLength: Zd, isMap: ag, isMatch: Tw, isMatchWith: Rw, isNaN: Dw, isNative: zw, isNil: Bw, isNull: Lw, isNumber: Iw, isObject: Iu, isObjectLike: bu, isPlainObject: Ov, isRegExp: Vw, isSafeInteger: Ww, isSet: cg, isString: Vk, isSymbol: wu, isTypedArray: jh, isUndefined: Uw, isWeakMap: Jw, isWeakSet: Kw, lt: lx, lte: ux, toArray: qx, toFinite: Wu, toInteger: Uu, toLength: Jb, toNumber: Fu, toPlainObject: Xy, toSafeInteger: o$, toString: sv }; + var f_ = { add: Au, ceil: Jp, divide: bb, floor: gk, max: mx, maxBy: gx, mean: wx, meanBy: xx, min: Mx, minBy: Ex, multiply: Px, round: MS, subtract: kC, sum: wC, sumBy: xC }; + var d_ = Zp; + var h_ = Lk; + var v_ = lS; + var p_ = { assign: Th, assignIn: qh, assignInWith: Bh, assignWith: Fh, at: kv, create: Iy, defaults: Ky, defaultsDeep: rb, entries: Rb, entriesIn: Nb, extend: qh, extendWith: Bh, findKey: nk, findLastKey: sk, forIn: wk, forInRight: xk, forOwn: jk, forOwnRight: Sk, functions: _k, functionsIn: Ok, get: dv, has: qk, hasIn: vy, invert: sw, invertBy: dw, invoke: pw, keys: Eh, keysIn: Ih, mapKeys: fx, mapValues: dx, merge: Sx, mergeWith: nb, omit: Ux, omitBy: Qx, pick: Vj, pickBy: Gx, result: $S, set: DS, setWith: qS, toPairs: Rb, toPairsIn: Nb, transform: a$, unset: P$, update: D$, updateWith: q$, values: Wk, valuesIn: L$ }; + var m_ = { at: U$, chain: Kp, commit: Sg, lodash: qf, next: zx, plant: Hj, reverse: K$, tap: OC, thru: JC, toIterator: XC, toJSON: e$, value: e$, valueOf: e$, wrapperChain: J$ }; + var g_ = { camelCase: Fp, capitalize: sp, deburr: hp, endsWith: Pb, escape: zb, escapeRegExp: Fb, kebabCase: Zw, lowerCase: ax, lowerFirst: sx, pad: Ej, padEnd: Aj, padStart: Pj, parseInt: Nj, repeat: jS, replace: SS, snakeCase: WS, split: fC, startCase: pC, startsWith: mC, template: HC, templateSettings: NC, toLower: t$, toUpper: i$, trim: l$, trimEnd: u$, trimStart: d$, truncate: v$, unescape: b$, upperCase: B$, upperFirst: ap, words: qp }; + var y_ = { attempt: Tv, bindAll: zv, cond: wy, conforms: jy, constant: Uf, defaultTo: Hy, flow: bk, flowRight: kk, identity: Ku, iteratee: Gw, matches: hx, matchesProperty: vx, method: $x, methodOf: Ox, mixin: Ax, noop: Mf, nthArg: Fx, over: nj, overEvery: sj, overSome: cj, property: by, propertyOf: Wj, range: hS, rangeRight: vS, stubArray: cm, stubFalse: fh, stubObject: gC, stubString: yC, stubTrue: bC, times: YC, toPath: n$, uniqueId: A$ }; + var b_ = Math.max; + var k_ = Math.min; + var w_ = Math.min; + var x_; + var j_ = 4294967295; + var S_ = Array.prototype; + var C_ = Object.prototype.hasOwnProperty; + var $_ = lu ? lu.iterator : void 0; + var __ = Math.max; + var O_ = Math.min; + var M_ = /* @__PURE__ */ function(e20) { + return function(t10, n10, r10) { + if (null == r10) { + var o10 = Iu(n10), i10 = o10 && Eh(n10), a10 = i10 && i10.length && $k(n10, i10); + (a10 ? a10.length : o10) || (r10 = n10, n10 = t10, t10 = this); + } + return e20(t10, n10, r10); + }; + }(Ax); + qf.after = l_.after, qf.ary = l_.ary, qf.assign = p_.assign, qf.assignIn = p_.assignIn, qf.assignInWith = p_.assignInWith, qf.assignWith = p_.assignWith, qf.at = p_.at, qf.before = l_.before, qf.bind = l_.bind, qf.bindAll = y_.bindAll, qf.bindKey = l_.bindKey, qf.castArray = u_.castArray, qf.chain = m_.chain, qf.chunk = a_.chunk, qf.compact = a_.compact, qf.concat = a_.concat, qf.cond = y_.cond, qf.conforms = y_.conforms, qf.constant = y_.constant, qf.countBy = s_.countBy, qf.create = p_.create, qf.curry = l_.curry, qf.curryRight = l_.curryRight, qf.debounce = l_.debounce, qf.defaults = p_.defaults, qf.defaultsDeep = p_.defaultsDeep, qf.defer = l_.defer, qf.delay = l_.delay, qf.difference = a_.difference, qf.differenceBy = a_.differenceBy, qf.differenceWith = a_.differenceWith, qf.drop = a_.drop, qf.dropRight = a_.dropRight, qf.dropRightWhile = a_.dropRightWhile, qf.dropWhile = a_.dropWhile, qf.fill = a_.fill, qf.filter = s_.filter, qf.flatMap = s_.flatMap, qf.flatMapDeep = s_.flatMapDeep, qf.flatMapDepth = s_.flatMapDepth, qf.flatten = a_.flatten, qf.flattenDeep = a_.flattenDeep, qf.flattenDepth = a_.flattenDepth, qf.flip = l_.flip, qf.flow = y_.flow, qf.flowRight = y_.flowRight, qf.fromPairs = a_.fromPairs, qf.functions = p_.functions, qf.functionsIn = p_.functionsIn, qf.groupBy = s_.groupBy, qf.initial = a_.initial, qf.intersection = a_.intersection, qf.intersectionBy = a_.intersectionBy, qf.intersectionWith = a_.intersectionWith, qf.invert = p_.invert, qf.invertBy = p_.invertBy, qf.invokeMap = s_.invokeMap, qf.iteratee = y_.iteratee, qf.keyBy = s_.keyBy, qf.keys = Eh, qf.keysIn = p_.keysIn, qf.map = s_.map, qf.mapKeys = p_.mapKeys, qf.mapValues = p_.mapValues, qf.matches = y_.matches, qf.matchesProperty = y_.matchesProperty, qf.memoize = l_.memoize, qf.merge = p_.merge, qf.mergeWith = p_.mergeWith, qf.method = y_.method, qf.methodOf = y_.methodOf, qf.mixin = M_, qf.negate = Rx, qf.nthArg = y_.nthArg, qf.omit = p_.omit, qf.omitBy = p_.omitBy, qf.once = l_.once, qf.orderBy = s_.orderBy, qf.over = y_.over, qf.overArgs = l_.overArgs, qf.overEvery = y_.overEvery, qf.overSome = y_.overSome, qf.partial = l_.partial, qf.partialRight = l_.partialRight, qf.partition = s_.partition, qf.pick = p_.pick, qf.pickBy = p_.pickBy, qf.property = y_.property, qf.propertyOf = y_.propertyOf, qf.pull = a_.pull, qf.pullAll = a_.pullAll, qf.pullAllBy = a_.pullAllBy, qf.pullAllWith = a_.pullAllWith, qf.pullAt = a_.pullAt, qf.range = y_.range, qf.rangeRight = y_.rangeRight, qf.rearg = l_.rearg, qf.reject = s_.reject, qf.remove = a_.remove, qf.rest = l_.rest, qf.reverse = a_.reverse, qf.sampleSize = s_.sampleSize, qf.set = p_.set, qf.setWith = p_.setWith, qf.shuffle = s_.shuffle, qf.slice = a_.slice, qf.sortBy = s_.sortBy, qf.sortedUniq = a_.sortedUniq, qf.sortedUniqBy = a_.sortedUniqBy, qf.split = g_.split, qf.spread = l_.spread, qf.tail = a_.tail, qf.take = a_.take, qf.takeRight = a_.takeRight, qf.takeRightWhile = a_.takeRightWhile, qf.takeWhile = a_.takeWhile, qf.tap = m_.tap, qf.throttle = l_.throttle, qf.thru = JC, qf.toArray = u_.toArray, qf.toPairs = p_.toPairs, qf.toPairsIn = p_.toPairsIn, qf.toPath = y_.toPath, qf.toPlainObject = u_.toPlainObject, qf.transform = p_.transform, qf.unary = l_.unary, qf.union = a_.union, qf.unionBy = a_.unionBy, qf.unionWith = a_.unionWith, qf.uniq = a_.uniq, qf.uniqBy = a_.uniqBy, qf.uniqWith = a_.uniqWith, qf.unset = p_.unset, qf.unzip = a_.unzip, qf.unzipWith = a_.unzipWith, qf.update = p_.update, qf.updateWith = p_.updateWith, qf.values = p_.values, qf.valuesIn = p_.valuesIn, qf.without = a_.without, qf.words = g_.words, qf.wrap = l_.wrap, qf.xor = a_.xor, qf.xorBy = a_.xorBy, qf.xorWith = a_.xorWith, qf.zip = a_.zip, qf.zipObject = a_.zipObject, qf.zipObjectDeep = a_.zipObjectDeep, qf.zipWith = a_.zipWith, qf.entries = p_.toPairs, qf.entriesIn = p_.toPairsIn, qf.extend = p_.assignIn, qf.extendWith = p_.assignInWith, M_(qf, qf), qf.add = f_.add, qf.attempt = y_.attempt, qf.camelCase = g_.camelCase, qf.capitalize = g_.capitalize, qf.ceil = f_.ceil, qf.clamp = d_, qf.clone = u_.clone, qf.cloneDeep = u_.cloneDeep, qf.cloneDeepWith = u_.cloneDeepWith, qf.cloneWith = u_.cloneWith, qf.conformsTo = u_.conformsTo, qf.deburr = g_.deburr, qf.defaultTo = y_.defaultTo, qf.divide = f_.divide, qf.endsWith = g_.endsWith, qf.eq = u_.eq, qf.escape = g_.escape, qf.escapeRegExp = g_.escapeRegExp, qf.every = s_.every, qf.find = s_.find, qf.findIndex = a_.findIndex, qf.findKey = p_.findKey, qf.findLast = s_.findLast, qf.findLastIndex = a_.findLastIndex, qf.findLastKey = p_.findLastKey, qf.floor = f_.floor, qf.forEach = s_.forEach, qf.forEachRight = s_.forEachRight, qf.forIn = p_.forIn, qf.forInRight = p_.forInRight, qf.forOwn = p_.forOwn, qf.forOwnRight = p_.forOwnRight, qf.get = p_.get, qf.gt = u_.gt, qf.gte = u_.gte, qf.has = p_.has, qf.hasIn = p_.hasIn, qf.head = a_.head, qf.identity = Ku, qf.includes = s_.includes, qf.indexOf = a_.indexOf, qf.inRange = h_, qf.invoke = p_.invoke, qf.isArguments = u_.isArguments, qf.isArray = Cu, qf.isArrayBuffer = u_.isArrayBuffer, qf.isArrayLike = u_.isArrayLike, qf.isArrayLikeObject = u_.isArrayLikeObject, qf.isBoolean = u_.isBoolean, qf.isBuffer = u_.isBuffer, qf.isDate = u_.isDate, qf.isElement = u_.isElement, qf.isEmpty = u_.isEmpty, qf.isEqual = u_.isEqual, qf.isEqualWith = u_.isEqualWith, qf.isError = u_.isError, qf.isFinite = u_.isFinite, qf.isFunction = u_.isFunction, qf.isInteger = u_.isInteger, qf.isLength = u_.isLength, qf.isMap = u_.isMap, qf.isMatch = u_.isMatch, qf.isMatchWith = u_.isMatchWith, qf.isNaN = u_.isNaN, qf.isNative = u_.isNative, qf.isNil = u_.isNil, qf.isNull = u_.isNull, qf.isNumber = u_.isNumber, qf.isObject = Iu, qf.isObjectLike = u_.isObjectLike, qf.isPlainObject = u_.isPlainObject, qf.isRegExp = u_.isRegExp, qf.isSafeInteger = u_.isSafeInteger, qf.isSet = u_.isSet, qf.isString = u_.isString, qf.isSymbol = u_.isSymbol, qf.isTypedArray = u_.isTypedArray, qf.isUndefined = u_.isUndefined, qf.isWeakMap = u_.isWeakMap, qf.isWeakSet = u_.isWeakSet, qf.join = a_.join, qf.kebabCase = g_.kebabCase, qf.last = vb, qf.lastIndexOf = a_.lastIndexOf, qf.lowerCase = g_.lowerCase, qf.lowerFirst = g_.lowerFirst, qf.lt = u_.lt, qf.lte = u_.lte, qf.max = f_.max, qf.maxBy = f_.maxBy, qf.mean = f_.mean, qf.meanBy = f_.meanBy, qf.min = f_.min, qf.minBy = f_.minBy, qf.stubArray = y_.stubArray, qf.stubFalse = y_.stubFalse, qf.stubObject = y_.stubObject, qf.stubString = y_.stubString, qf.stubTrue = y_.stubTrue, qf.multiply = f_.multiply, qf.nth = a_.nth, qf.noop = y_.noop, qf.now = c_.now, qf.pad = g_.pad, qf.padEnd = g_.padEnd, qf.padStart = g_.padStart, qf.parseInt = g_.parseInt, qf.random = v_, qf.reduce = s_.reduce, qf.reduceRight = s_.reduceRight, qf.repeat = g_.repeat, qf.replace = g_.replace, qf.result = p_.result, qf.round = f_.round, qf.sample = s_.sample, qf.size = s_.size, qf.snakeCase = g_.snakeCase, qf.some = s_.some, qf.sortedIndex = a_.sortedIndex, qf.sortedIndexBy = a_.sortedIndexBy, qf.sortedIndexOf = a_.sortedIndexOf, qf.sortedLastIndex = a_.sortedLastIndex, qf.sortedLastIndexBy = a_.sortedLastIndexBy, qf.sortedLastIndexOf = a_.sortedLastIndexOf, qf.startCase = g_.startCase, qf.startsWith = g_.startsWith, qf.subtract = f_.subtract, qf.sum = f_.sum, qf.sumBy = f_.sumBy, qf.template = g_.template, qf.times = y_.times, qf.toFinite = u_.toFinite, qf.toInteger = Uu, qf.toLength = u_.toLength, qf.toLower = g_.toLower, qf.toNumber = u_.toNumber, qf.toSafeInteger = u_.toSafeInteger, qf.toString = u_.toString, qf.toUpper = g_.toUpper, qf.trim = g_.trim, qf.trimEnd = g_.trimEnd, qf.trimStart = g_.trimStart, qf.truncate = g_.truncate, qf.unescape = g_.unescape, qf.uniqueId = y_.uniqueId, qf.upperCase = g_.upperCase, qf.upperFirst = g_.upperFirst, qf.each = s_.forEach, qf.eachRight = s_.forEachRight, qf.first = a_.head, M_(qf, (x_ = {}, Oy(qf, function(e20, t10) { + C_.call(qf.prototype, t10) || (x_[t10] = e20); + }), x_), { chain: false }), qf.VERSION = "4.17.21", (qf.templateSettings = g_.templateSettings).imports._ = qf, Qf(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(e20) { + qf[e20].placeholder = qf; + }), Qf(["drop", "take"], function(e20, t10) { + Of.prototype[e20] = function(n10) { + n10 = void 0 === n10 ? 1 : __(Uu(n10), 0); + var r10 = this.__filtered__ && !t10 ? new Of(this) : this.clone(); + return r10.__filtered__ ? r10.__takeCount__ = O_(n10, r10.__takeCount__) : r10.__views__.push({ size: O_(n10, j_), type: e20 + (r10.__dir__ < 0 ? "Right" : "") }), r10; + }, Of.prototype[e20 + "Right"] = function(t11) { + return this.reverse()[e20](t11).reverse(); + }; + }), Qf(["filter", "map", "takeWhile"], function(e20, t10) { + var n10 = t10 + 1, r10 = 1 == n10 || 3 == n10; + Of.prototype[e20] = function(e21) { + var t11 = this.clone(); + return t11.__iteratees__.push({ iteratee: ky(e21), type: n10 }), t11.__filtered__ = t11.__filtered__ || r10, t11; + }; + }), Qf(["head", "last"], function(e20, t10) { + var n10 = "take" + (t10 ? "Right" : ""); + Of.prototype[e20] = function() { + return this[n10](1).value()[0]; + }; + }), Qf(["initial", "tail"], function(e20, t10) { + var n10 = "drop" + (t10 ? "" : "Right"); + Of.prototype[e20] = function() { + return this.__filtered__ ? new Of(this) : this[n10](1); + }; + }), Of.prototype.compact = function() { + return this.filter(Ku); + }, Of.prototype.find = function(e20) { + return this.filter(e20).head(); + }, Of.prototype.findLast = function(e20) { + return this.reverse().find(e20); + }, Of.prototype.invokeMap = Yd(function(e20, t10) { + return "function" == typeof e20 ? new Of(this) : this.map(function(n10) { + return vw(n10, e20, t10); + }); + }), Of.prototype.reject = function(e20) { + return this.filter(Rx(ky(e20))); + }, Of.prototype.slice = function(e20, t10) { + e20 = Uu(e20); + var n10 = this; + return n10.__filtered__ && (e20 > 0 || t10 < 0) ? new Of(n10) : (e20 < 0 ? n10 = n10.takeRight(-e20) : e20 && (n10 = n10.drop(e20)), void 0 !== t10 && (n10 = (t10 = Uu(t10)) < 0 ? n10.dropRight(-t10) : n10.take(t10 - e20)), n10); + }, Of.prototype.takeRightWhile = function(e20) { + return this.reverse().takeWhile(e20).reverse(); + }, Of.prototype.toArray = function() { + return this.take(j_); + }, Oy(Of.prototype, function(e20, t10) { + var n10 = /^(?:filter|find|map|reject)|While$/.test(t10), r10 = /^(?:head|last)$/.test(t10), o10 = qf[r10 ? "take" + ("last" == t10 ? "Right" : "") : t10], i10 = r10 || /^find/.test(t10); + o10 && (qf.prototype[t10] = function() { + var t11 = this.__wrapped__, a10 = r10 ? [1] : arguments, s10 = t11 instanceof Of, c10 = a10[0], l10 = s10 || Cu(t11), u10 = function(e21) { + var t12 = o10.apply(qf, vv([e21], a10)); + return r10 && f10 ? t12[0] : t12; + }; + l10 && n10 && "function" == typeof c10 && 1 != c10.length && (s10 = l10 = false); + var f10 = this.__chain__, d10 = !!this.__actions__.length, h10 = i10 && !f10, v10 = s10 && !d10; + if (!i10 && l10) { + t11 = v10 ? t11 : new Of(this); + var p10 = e20.apply(t11, a10); + return p10.__actions__.push({ func: JC, args: [u10], thisArg: void 0 }), new Rf(p10, f10); + } + return h10 && v10 ? e20.apply(this, a10) : (p10 = this.thru(u10), h10 ? r10 ? p10.value()[0] : p10.value() : p10); + }); + }), Qf(["pop", "push", "shift", "sort", "splice", "unshift"], function(e20) { + var t10 = S_[e20], n10 = /^(?:push|sort|unshift)$/.test(e20) ? "tap" : "thru", r10 = /^(?:pop|shift)$/.test(e20); + qf.prototype[e20] = function() { + var e21 = arguments; + if (r10 && !this.__chain__) { + var o10 = this.value(); + return t10.apply(Cu(o10) ? o10 : [], e21); + } + return this[n10](function(n11) { + return t10.apply(Cu(n11) ? n11 : [], e21); + }); + }; + }), Oy(Of.prototype, function(e20, t10) { + var n10 = qf[t10]; + if (n10) { + var r10 = n10.name + ""; + C_.call(Af, r10) || (Af[r10] = []), Af[r10].push({ name: t10, func: n10 }); + } + }), Af[jd(void 0, 2).name] = [{ name: "wrapper", func: void 0 }], Of.prototype.clone = function() { + var e20 = new Of(this.__wrapped__); + return e20.__actions__ = Nf(this.__actions__), e20.__dir__ = this.__dir__, e20.__filtered__ = this.__filtered__, e20.__iteratees__ = Nf(this.__iteratees__), e20.__takeCount__ = this.__takeCount__, e20.__views__ = Nf(this.__views__), e20; + }, Of.prototype.reverse = function() { + if (this.__filtered__) { + var e20 = new Of(this); + e20.__dir__ = -1, e20.__filtered__ = true; + } else + (e20 = this.clone()).__dir__ *= -1; + return e20; + }, Of.prototype.value = function() { + var e20 = this.__wrapped__.value(), t10 = this.__dir__, n10 = Cu(e20), r10 = t10 < 0, o10 = n10 ? e20.length : 0, i10 = function(e21, t11, n11) { + for (var r11 = -1, o11 = n11.length; ++r11 < o11; ) { + var i11 = n11[r11], a11 = i11.size; + switch (i11.type) { + case "drop": + e21 += a11; + break; + case "dropRight": + t11 -= a11; + break; + case "take": + t11 = k_(t11, e21 + a11); + break; + case "takeRight": + e21 = b_(e21, t11 - a11); + } + } + return { start: e21, end: t11 }; + }(0, o10, this.__views__), a10 = i10.start, s10 = i10.end, c10 = s10 - a10, l10 = r10 ? s10 : a10 - 1, u10 = this.__iteratees__, f10 = u10.length, d10 = 0, h10 = w_(c10, this.__takeCount__); + if (!n10 || !r10 && o10 == c10 && h10 == c10) + return ZC(e20, this.__actions__); + var v10 = []; + e: + for (; c10-- && d10 < h10; ) { + for (var p10 = -1, m10 = e20[l10 += t10]; ++p10 < f10; ) { + var g10 = u10[p10], y10 = g10.iteratee, b10 = g10.type, k10 = y10(m10); + if (2 == b10) + m10 = k10; + else if (!k10) { + if (1 == b10) + continue e; + break e; + } + } + v10[d10++] = m10; + } + return v10; + }, qf.prototype.at = m_.at, qf.prototype.chain = m_.wrapperChain, qf.prototype.commit = m_.commit, qf.prototype.next = m_.next, qf.prototype.plant = m_.plant, qf.prototype.reverse = m_.reverse, qf.prototype.toJSON = qf.prototype.valueOf = qf.prototype.value = m_.value, qf.prototype.first = qf.prototype.head, $_ && (qf.prototype[$_] = m_.toIterator); + var E_ = Object.freeze({ __proto__: null, add: Au, after: Ju, ary: Vd, assign: Th, assignIn: qh, assignInWith: Bh, assignWith: Fh, at: kv, attempt: Tv, before: Nv, bind: Dv, bindAll: zv, bindKey: Lv, camelCase: Fp, capitalize: sp, castArray: Vp, ceil: Jp, chain: Kp, chunk: Yp, clamp: Zp, clone: yg, cloneDeep: bg, cloneDeepWith: xg, cloneWith: jg, commit: Sg, compact: Cg, concat: $g, cond: wy, conforms: jy, conformsTo: Sy, constant: Uf, countBy: Ny, create: Iy, curry: Dy, curryRight: qy, debounce: Vy, deburr: hp, default: qf, defaultTo: Hy, defaults: Ky, defaultsDeep: rb, defer: ab, delay: cb, difference: hb, differenceBy: mb, differenceWith: yb, divide: bb, drop: kb, dropRight: wb, dropRightWhile: jb, dropWhile: Sb, each: $b, eachRight: Ab, endsWith: Pb, entries: Rb, entriesIn: Nb, eq: Wd, escape: zb, escapeRegExp: Fb, every: Wb, extend: qh, extendWith: Bh, fill: Kb, filter: Qb, find: ek, findIndex: Zb, findKey: nk, findLast: ak, findLastIndex: ik, findLastKey: sk, first: ck, flatMap: fk, flatMapDeep: dk, flatMapDepth: hk, flatten: yv, flattenDeep: vk, flattenDepth: pk, flip: mk, floor: gk, flow: bk, flowRight: kk, forEach: $b, forEachRight: Ab, forIn: wk, forInRight: xk, forOwn: jk, forOwnRight: Sk, fromPairs: Ck, functions: _k, functionsIn: Ok, get: dv, groupBy: Ak, gt: Rk, gte: Nk, has: qk, hasIn: vy, head: ck, identity: Ku, inRange: Lk, includes: Jk, indexOf: Gk, initial: Qk, intersection: ew, intersectionBy: nw, intersectionWith: rw, invert: sw, invertBy: dw, invoke: pw, invokeMap: gw, isArguments: uh, isArray: Cu, isArrayBuffer: bw, isArrayLike: eh, isArrayLikeObject: Qy, isBoolean: kw, isBuffer: ph, isDate: xw, isElement: jw, isEmpty: _w, isEqual: Ow, isEqualWith: Mw, isError: Av, isFinite: Aw, isFunction: Zu, isInteger: Pw, isLength: Zd, isMap: ag, isMatch: Tw, isMatchWith: Rw, isNaN: Dw, isNative: zw, isNil: Bw, isNull: Lw, isNumber: Iw, isObject: Iu, isObjectLike: bu, isPlainObject: Ov, isRegExp: Vw, isSafeInteger: Ww, isSet: cg, isString: Vk, isSymbol: wu, isTypedArray: jh, isUndefined: Uw, isWeakMap: Jw, isWeakSet: Kw, iteratee: Gw, join: Yw, kebabCase: Zw, keyBy: tx, keys: Eh, keysIn: Ih, last: vb, lastIndexOf: ox, lodash: qf, lowerCase: ax, lowerFirst: sx, lt: lx, lte: ux, map: uk, mapKeys: fx, mapValues: dx, matches: hx, matchesProperty: vx, max: mx, maxBy: gx, mean: wx, meanBy: xx, memoize: rv, merge: Sx, mergeWith: nb, method: $x, methodOf: Ox, min: Mx, minBy: Ex, mixin: Ax, multiply: Px, negate: Rx, next: zx, noop: Mf, now: zy, nth: Lx, nthArg: Fx, omit: Ux, omitBy: Qx, once: Yx, orderBy: ej, over: nj, overArgs: aj, overEvery: sj, overSome: cj, pad: Ej, padEnd: Aj, padStart: Pj, parseInt: Nj, partial: Dj, partialRight: zj, partition: Lj, pick: Vj, pickBy: Gx, plant: Hj, property: by, propertyOf: Wj, pull: Qj, pullAll: Gj, pullAllBy: Yj, pullAllWith: Xj, pullAt: nS, random: lS, range: hS, rangeRight: vS, rearg: mS, reduce: yS, reduceRight: kS, reject: wS, remove: xS, repeat: jS, replace: SS, rest: CS, result: $S, reverse: OS, round: MS, sample: PS, sampleSize: IS, set: DS, setWith: qS, shuffle: LS, size: FS, slice: VS, snakeCase: WS, some: JS, sortBy: GS, sortedIndex: nC, sortedIndexBy: rC, sortedIndexOf: oC, sortedLastIndex: iC, sortedLastIndexBy: aC, sortedLastIndexOf: sC, sortedUniq: lC, sortedUniqBy: uC, split: fC, spread: hC, startCase: pC, startsWith: mC, stubArray: cm, stubFalse: fh, stubObject: gC, stubString: yC, stubTrue: bC, subtract: kC, sum: wC, sumBy: xC, tail: jC, take: SC, takeRight: CC, takeRightWhile: $C, takeWhile: _C, tap: OC, template: HC, templateSettings: NC, throttle: UC, thru: JC, times: YC, toArray: qx, toFinite: Wu, toInteger: Uu, toIterator: XC, toJSON: e$, toLength: Jb, toLower: t$, toNumber: Fu, toPairs: Rb, toPairsIn: Nb, toPath: n$, toPlainObject: Xy, toSafeInteger: o$, toString: sv, toUpper: i$, transform: a$, trim: l$, trimEnd: u$, trimStart: d$, truncate: v$, unary: p$, unescape: b$, union: j$, unionBy: C$, unionWith: $$, uniq: _$, uniqBy: O$, uniqWith: M$, uniqueId: A$, unset: P$, unzip: R$, unzipWith: N$, update: D$, updateWith: q$, upperCase: B$, upperFirst: ap, value: e$, valueOf: e$, values: Wk, valuesIn: L$, without: V$, words: qp, wrap: H$, wrapperAt: U$, wrapperChain: J$, wrapperCommit: Sg, wrapperLodash: qf, wrapperNext: zx, wrapperPlant: Hj, wrapperReverse: K$, wrapperToIterator: XC, wrapperValue: e$, xor: Q$, xorBy: X$, xorWith: Z$, zip: e_, zipObject: n_, zipObjectDeep: r_, zipWith: i_ }); + var A_ = 1e4; + var P_ = []; + function T_(e20) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], n10 = {}; + if (!Array.isArray(e20)) + throw new TypeError("Array expected"); + function r10(e21, o11) { + (!Array.isArray(e21) && !Gl(e21) || t10 && o11.length > 0) && (n10[Zs(o11)] = true), Gl(e21) && Object.keys(e21).forEach(function(t11) { + r10(e21[t11], o11.concat(t11)); + }); + } + for (var o10 = Math.min(e20.length, A_), i10 = 0; i10 < o10; i10++) { + r10(e20[i10], P_); + } + return Object.keys(n10).sort().map(Xs); + } + function R_(e20, t10, n10) { + if (!(t10 <= e20)) + for (var r10 = e20; r10 < t10; r10++) + n10(r10); + } + function N_(e20, t10) { + return e20.length > t10 ? e20.slice(0, t10) : e20; + } + function I_(e20) { + return Ro({}, e20); + } + function D_(e20) { + return Object.values(e20); + } + function q_(e20, t10, n10, r10) { + var o10 = e20.slice(0), i10 = o10.splice(t10, n10); + return o10.splice.apply(o10, [t10 + r10, 0].concat(Bo(i10))), o10; + } + function z_(e20, t10) { + try { + return t10.parse(e20); + } catch (n10) { + return t10.parse(Hl(e20)); + } + } + function B_(e20, t10) { + try { + return z_(e20, t10); + } catch (e21) { + return; + } + } + function L_(e20, t10) { + e20 = e20.replace(V_, ""); + try { + return t10(e20); + } catch (e21) { + } + try { + return t10("[" + e20 + "]"); + } catch (e21) { + } + try { + return t10("{" + e20 + "}"); + } catch (e21) { + } + throw new Error("Failed to parse partial JSON"); + } + function F_(e20) { + e20 = e20.replace(V_, ""); + try { + return Hl(e20); + } catch (e21) { + } + try { + var t10 = Hl("[" + e20 + "]"); + return t10.substring(1, t10.length - 1); + } catch (e21) { + } + try { + var n10 = Hl("{" + e20 + "}"); + return n10.substring(1, n10.length - 1); + } catch (e21) { + } + throw new Error("Failed to repair partial JSON"); + } + var V_ = /,\s*$/; + function H_(e20, t10) { + var n10 = eO.exec(t10); + if (n10) { + var r10 = Ul(n10[2]), o10 = function(e21, t11) { + for (var n11 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, r11 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : e21.length, o11 = 0, i11 = n11; i11 < r11; i11++) + e21.charAt(i11) === t11 && o11++; + return o11; + }(e20, "\n", 0, r10), i10 = r10 - e20.lastIndexOf("\n", r10) - 1; + return { position: r10, line: o10, column: i10, message: t10.replace(eO, function() { + return "line ".concat(o10 + 1, " column ").concat(i10 + 1); + }) }; + } + var a10 = tO.exec(t10), s10 = a10 ? Ul(a10[1]) : null, c10 = null !== s10 ? s10 - 1 : null, l10 = nO.exec(t10), u10 = l10 ? Ul(l10[1]) : null, f10 = null !== u10 ? u10 - 1 : null, d10 = null !== c10 && null !== f10 ? function(e21, t11, n11) { + var r11 = e21.indexOf("\n"), o11 = 1; + for (; o11 < t11 && -1 !== r11; ) + r11 = e21.indexOf("\n", r11 + 1), o11++; + return -1 !== r11 ? r11 + n11 + 1 : null; + }(e20, c10, f10) : null; + return { position: d10, line: c10, column: f10, message: t10.replace(/^JSON.parse: /, "").replace(/ of the JSON data$/, "") }; + } + function W_(e20) { + return Gl(e20) ? void 0 !== e20.json ? void 0 !== e20.text ? 'Content must contain either a property "json" or a property "text" but not both' : null : void 0 === e20.text ? 'Content must contain either a property "json" or a property "text"' : "string" != typeof e20.text ? 'Content "text" property must be a string containing a JSON document. Did you mean to use the "json" property instead?' : null : "Content must be an object"; + } + function J_(e20) { + return Gl(e20) && "string" == typeof e20.text; + } + function K_(e20) { + return Gl(e20) && void 0 !== e20.json; + } + function G_(e20) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : void 0, n10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : JSON; + return J_(e20) ? e20 : { text: n10.stringify(e20.json, null, t10) }; + } + function Q_(e20) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : JSON; + return K_(e20) ? e20 : { json: t10.parse(e20.text) }; + } + function Y_(e20, t10, n10) { + return G_(e20, t10, n10).text; + } + function X_(e20, t10) { + return Z_(e20, t10) > t10; + } + function Z_(e20) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1 / 0; + if (J_(e20)) + return e20.text.length; + var n10 = e20.json, r10 = 0; + return function e21(n11) { + if (Array.isArray(n11)) { + if ((r10 += n11.length - 1 + 2) > t10) + return r10; + for (var o10 = 0; o10 < n11.length; o10++) { + if (e21(n11[o10]), r10 > t10) + return r10; + } + } else if (Gl(n11)) { + var i10 = Object.keys(n11); + r10 += 2 + i10.length + (i10.length - 1); + for (var a10 = 0; a10 < i10.length; a10++) { + var s10 = i10[a10], c10 = n11[s10]; + r10 += s10.length + 2, e21(c10); + } + } else + r10 += "string" == typeof n11 ? n11.length + 2 : String(n11).length; + }(n10), r10; + } + var eO = /(position|char) (\d+)/; + var tO = /line (\d+)/; + var nO = /column (\d+)/; + function rO(e20, t10) { + return e20.parse === t10.parse && e20.stringify === t10.stringify; + } + function oO(e20) { + return iO.test(e20) && e20.length > 2; + } + var iO = /^[[{]\S/; + function aO(e20) { + var t10 = e20.escapeControlCharacters, n10 = e20.escapeUnicodeCharacters; + return t10 ? n10 ? sO : cO : n10 ? lO : uO; + } + var sO = { escapeValue: function(e20) { + return fO(pO(String(e20))); + }, unescapeValue: function(e20) { + return mO(dO(e20)); + } }; + var cO = { escapeValue: function(e20) { + return pO(String(e20)); + }, unescapeValue: function(e20) { + return mO(e20); + } }; + var lO = { escapeValue: function(e20) { + return fO(String(e20)); + }, unescapeValue: function(e20) { + return dO(e20); + } }; + var uO = { escapeValue: function(e20) { + return String(e20); + }, unescapeValue: function(e20) { + return e20; + } }; + function fO(e20) { + return e20.replace(/[^\x20-\x7F]/g, function(e21) { + var t10; + return "\b" === e21 || "\f" === e21 || "\n" === e21 || "\r" === e21 || " " === e21 ? e21 : "\\u" + ("000" + (null === (t10 = e21.codePointAt(0)) || void 0 === t10 ? void 0 : t10.toString(16))).slice(-4); + }); + } + function dO(e20) { + return e20.replace(/\\u[a-fA-F0-9]{4}/g, function(e21) { + try { + var t10 = JSON.parse('"' + e21 + '"'); + return hO[t10] || t10; + } catch (t11) { + return e21; + } + }); + } + var hO = { '"': '\\"', "\\": "\\\\", "\b": "\\b", "\f": "\\f", "\n": "\\n", "\r": "\\r", " ": "\\t" }; + var vO = { '\\"': '"', "\\\\": "\\", "\\/": "/", "\\b": "\b", "\\f": "\f", "\\n": "\n", "\\r": "\r", "\\t": " " }; + function pO(e20) { + return e20.replace(/["\b\f\n\r\t\\]/g, function(e21) { + return hO[e21] || e21; + }); + } + function mO(e20) { + return e20.replace(/\\["bfnrt\\]/g, function(e21) { + return vO[e21] || e21; + }); + } + function gO(e20) { + return "string" != typeof e20 ? String(e20) : e20.endsWith("\n") ? e20 + "\n" : e20; + } + function yO(e20, t10) { + return kO(e20, function(e21) { + return e21.nodeName.toUpperCase() === t10.toUpperCase(); + }); + } + function bO(e20, t10, n10) { + return kO(e20, function(e21) { + return function(e23, t11, n11) { + return "function" == typeof e23.getAttribute && e23.getAttribute(t11) === n11; + }(e21, t10, n10); + }); + } + function kO(e20, t10) { + return !!wO(e20, t10); + } + function wO(e20, t10) { + for (var n10 = e20; n10 && !t10(n10); ) + n10 = n10.parentNode; + return n10 || void 0; + } + function xO(e20) { + if (null != e20.firstChild) { + var t10 = document.createRange(), n10 = window.getSelection(); + t10.setStart(e20, 1), t10.collapse(true), null == n10 || n10.removeAllRanges(), null == n10 || n10.addRange(t10); + } else + e20.focus(); + } + function jO(e20, t10, n10, r10) { + var o10 = SO(e20); + if (o10) { + var i10 = o10.document.activeElement ? o10.document.activeElement : null; + i10 && i10.isContentEditable && (i10.textContent = n10 ? t10 : i10.textContent + t10, xO(i10), r10 && r10(i10)); + } + } + function SO(e20) { + return e20 && e20.ownerDocument ? e20.ownerDocument.defaultView : null; + } + function CO(e20) { + var t10 = SO(e20), n10 = null == t10 ? void 0 : t10.document.activeElement; + return !!n10 && kO(n10, function(t11) { + return t11 === e20; + }); + } + function $O(e20, t10) { + return wO(e20, function(e21) { + return e21.nodeName === t10; + }); + } + function _O(e20) { + return bO(e20, "data-type", "selectable-key") ? Ya.key : bO(e20, "data-type", "selectable-value") ? Ya.value : bO(e20, "data-type", "insert-selection-area-inside") ? Ya.inside : bO(e20, "data-type", "insert-selection-area-after") ? Ya.after : Ya.multi; + } + function OO(e20) { + return encodeURIComponent(Zs(e20)); + } + function MO(e20) { + var t10 = wO(e20, function(e21) { + return !(null == e21 || !e21.hasAttribute) && e21.hasAttribute("data-path"); + }), n10 = null == t10 ? void 0 : t10.getAttribute("data-path"); + return n10 ? Xs(decodeURIComponent(n10)) : null; + } + function EO(e20) { + var t10 = e20.allElements, n10 = e20.currentElement, r10 = e20.direction, o10 = e20.hasPrio, i10 = void 0 === o10 ? function() { + return true; + } : o10, a10 = e20.margin, s10 = void 0 === a10 ? 10 : a10, c10 = uk(t10.filter(function(e21) { + var t11 = e21.getBoundingClientRect(); + return t11.width > 0 && t11.height > 0; + }), u10), l10 = u10(n10); + function u10(e21) { + var t11 = e21.getBoundingClientRect(); + return { x: t11.left + t11.width / 2, y: t11.top + t11.height / 2, rect: t11, element: e21 }; + } + function f10(e21, t11) { + var n11 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1, r11 = e21.x - t11.x, o11 = (e21.y - t11.y) * n11; + return Math.sqrt(r11 * r11 + o11 * o11); + } + var d10 = function(e21) { + return f10(e21, l10); + }; + if ("Left" === r10 || "Right" === r10) { + var h10 = "Left" === r10 ? c10.filter(function(e21) { + return t11 = l10, e21.rect.left + s10 < t11.rect.left; + var t11; + }) : c10.filter(function(e21) { + return t11 = l10, e21.rect.right > t11.rect.right + s10; + var t11; + }), v10 = Ex(h10.filter(function(e21) { + return t11 = e21, n11 = l10, Math.abs(t11.y - n11.y) < s10; + var t11, n11; + }), d10) || Ex(h10, function(e21) { + return f10(e21, l10, 10); + }); + return null == v10 ? void 0 : v10.element; + } + if ("Up" === r10 || "Down" === r10) { + var p10 = "Up" === r10 ? c10.filter(function(e21) { + return t11 = l10, e21.y + s10 < t11.y; + var t11; + }) : c10.filter(function(e21) { + return t11 = l10, e21.y > t11.y + s10; + var t11; + }), m10 = Ex(p10.filter(function(e21) { + return i10(e21.element); + }), d10) || Ex(p10, d10); + return null == m10 ? void 0 : m10.element; + } + } + function AO(e20) { + return !!e20 && "DIV" === e20.nodeName && "function" == typeof e20.refresh && "function" == typeof e20.cancel; + } + function PO(e20) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "+", n10 = []; + e20.ctrlKey && n10.push("Ctrl"), e20.metaKey && n10.push("Ctrl"), e20.altKey && n10.push("Alt"), e20.shiftKey && n10.push("Shift"); + var r10 = 1 === e20.key.length ? e20.key.toUpperCase() : e20.key; + return r10 in TO || n10.push(r10), n10.join(t10); + } + var TO = { Ctrl: true, Command: true, Control: true, Alt: true, Option: true, Shift: true }; + var RO = vi.window; + function NO(e20) { + mi(e20, "svelte-1r8q3m8", ".jse-absolute-popup.svelte-1r8q3m8.svelte-1r8q3m8{position:relative;left:0;top:0;width:0;height:0;z-index:1001}.jse-absolute-popup.svelte-1r8q3m8 .jse-hidden-input.svelte-1r8q3m8{position:fixed;left:0;top:0;width:0;height:0;padding:0;margin:0;border:none;outline:none;overflow:hidden}.jse-absolute-popup.svelte-1r8q3m8 .jse-absolute-popup-content.svelte-1r8q3m8{position:absolute}"); + } + function IO(e20) { + var t10, n10, r10, o10, i10, a10, s10 = [e20[0].props], c10 = e20[0].component; + function l10(e21, t11) { + var n11 = {}; + if (void 0 !== t11 && 1 & t11) + n11 = Ma(s10, [Ea(e21[0].props)]); + else + for (var r11 = 0; r11 < s10.length; r11 += 1) + n11 = Jo(n11, s10[r11]); + return { props: n11 }; + } + return c10 && (o10 = Li(c10, l10(e20))), { c: function() { + t10 = ji("div"), n10 = ji("input"), r10 = $i(), o10 && Pa(o10.$$.fragment), Ai(n10, "type", "text"), n10.readOnly = true, Ai(n10, "tabindex", "-1"), Ai(n10, "class", "jse-hidden-input svelte-1r8q3m8"), Ai(t10, "class", "jse-absolute-popup-content svelte-1r8q3m8"), Ai(t10, "style", i10 = zO(e20[1], e20[0].options)); + }, m: function(i11, s11) { + ki(i11, t10, s11), pi(t10, n10), e20[7](n10), pi(t10, r10), o10 && Ta(o10, t10, null), a10 = true; + }, p: function(e21, n11) { + if (1 & n11 && c10 !== (c10 = e21[0].component)) { + if (o10) { + ba(); + var r11 = o10; + xa(r11.$$.fragment, 1, 0, function() { + Ra(r11, 1); + }), ka(); + } + c10 ? (Pa((o10 = Li(c10, l10(e21, n11))).$$.fragment), wa(o10.$$.fragment, 1), Ta(o10, t10, null)) : o10 = null; + } else if (c10) { + var u10 = 1 & n11 ? Ma(s10, [Ea(e21[0].props)]) : {}; + o10.$set(u10); + } + (!a10 || 3 & n11 && i10 !== (i10 = zO(e21[1], e21[0].options))) && Ai(t10, "style", i10); + }, i: function(e21) { + a10 || (o10 && wa(o10.$$.fragment, e21), a10 = true); + }, o: function(e21) { + o10 && xa(o10.$$.fragment, e21), a10 = false; + }, d: function(n11) { + n11 && wi(t10), e20[7](null), o10 && Ra(o10); + } }; + } + function DO(e20) { + var t10, n10, r10, o10, i10 = e20[1] && IO(e20); + return { c: function() { + t10 = ji("div"), i10 && i10.c(), Ai(t10, "role", "none"), Ai(t10, "class", "jse-absolute-popup svelte-1r8q3m8"); + }, m: function(a10, s10) { + ki(a10, t10, s10), i10 && i10.m(t10, null), e20[8](t10), n10 = true, r10 || (o10 = [Oi(RO, "mousedown", e20[3], true), Oi(RO, "keydown", e20[4], true), Oi(RO, "wheel", e20[5], true), Oi(t10, "mousedown", qO), Oi(t10, "keydown", e20[4])], r10 = true); + }, p: function(e21, n11) { + var r11 = jo(n11, 1)[0]; + e21[1] ? i10 ? (i10.p(e21, r11), 2 & r11 && wa(i10, 1)) : ((i10 = IO(e21)).c(), wa(i10, 1), i10.m(t10, null)) : i10 && (ba(), xa(i10, 1, 1, function() { + i10 = null; + }), ka()); + }, i: function(e21) { + n10 || (wa(i10), n10 = true); + }, o: function(e21) { + xa(i10), n10 = false; + }, d: function(n11) { + n11 && wi(t10), i10 && i10.d(), e20[8](null), r10 = false, Qo(o10); + } }; + } + function qO(e20) { + e20.stopPropagation(); + } + function zO(e20, t10) { + var n10 = e20.getBoundingClientRect(), r10 = function() { + if (t10.anchor) { + var e21 = t10.anchor, n11 = t10.width, r11 = void 0 === n11 ? 0 : n11, o11 = t10.height, i11 = void 0 === o11 ? 0 : o11, a11 = t10.offsetTop, s11 = void 0 === a11 ? 0 : a11, c10 = t10.offsetLeft, l10 = void 0 === c10 ? 0 : c10, u10 = t10.position, f10 = e21.getBoundingClientRect(), d10 = f10.left, h10 = f10.top, v10 = f10.bottom, p10 = f10.right, m10 = "top" === u10 || h10 + i11 > window.innerHeight && h10 > i11, g10 = "left" === u10 || d10 + r11 > window.innerWidth && d10 > r11; + return { left: g10 ? p10 - l10 : d10 + l10, top: m10 ? h10 - s11 : v10 + s11, positionAbove: m10, positionLeft: g10 }; + } + if ("number" == typeof t10.left && "number" == typeof t10.top) { + var y10 = t10.left, b10 = t10.top, k10 = t10.width, w10 = void 0 === k10 ? 0 : k10, x10 = t10.height, j10 = void 0 === x10 ? 0 : x10; + return { left: y10, top: b10, positionAbove: b10 + j10 > window.innerHeight && b10 > j10, positionLeft: y10 + w10 > window.innerWidth && y10 > w10 }; + } + throw new Error('Invalid config: pass either "left" and "top", or pass "anchor"'); + }(), o10 = r10.left, i10 = r10.top, a10 = r10.positionAbove, s10 = r10.positionLeft; + return (a10 ? "bottom: ".concat(n10.top - i10, "px;") : "top: ".concat(i10 - n10.top, "px;")) + (s10 ? "right: ".concat(n10.left - o10, "px;") : "left: ".concat(o10 - n10.left, "px;")); + } + function BO(e20, t10, n10) { + var r10, o10, i10 = t10.popup, a10 = t10.closeAbsolutePopup; + function s10(e21) { + i10.options && i10.options.closeOnOuterClick && !kO(e21.target, function(e23) { + return e23 === r10; + }) && a10(i10.id); + } + return Gi(function() { + o10 && o10.focus(); + }), e20.$$set = function(e21) { + "popup" in e21 && n10(0, i10 = e21.popup), "closeAbsolutePopup" in e21 && n10(6, a10 = e21.closeAbsolutePopup); + }, [i10, r10, o10, function(e21) { + s10(e21); + }, function(e21) { + "Escape" === PO(e21) && a10(i10.id); + }, function(e21) { + s10(e21); + }, a10, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(2, o10 = e21); + }); + }, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(1, r10 = e21); + }); + }]; + } + var LO = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, BO, DO, Xo, { popup: 0, closeAbsolutePopup: 6 }, NO), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function FO(e20, t10, n10) { + var r10 = e20.slice(); + return r10[6] = t10[n10], r10; + } + function VO(e20) { + var t10, n10; + return t10 = new LO({ props: { popup: e20[6], closeAbsolutePopup: e20[1] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 1 & n11 && (r10.popup = e21[6]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function HO(e20) { + for (var t10, n10, r10 = Ca(e20[0]), o10 = [], i10 = 0; i10 < r10.length; i10 += 1) + o10[i10] = VO(FO(e20, r10, i10)); + var a10 = function(e21) { + return xa(o10[e21], 1, 1, function() { + o10[e21] = null; + }); + }, s10 = e20[3].default, c10 = ei(s10, e20, e20[2], null); + return { c: function() { + for (var e21 = 0; e21 < o10.length; e21 += 1) + o10[e21].c(); + t10 = $i(), c10 && c10.c(); + }, m: function(e21, r11) { + for (var i11 = 0; i11 < o10.length; i11 += 1) + o10[i11] && o10[i11].m(e21, r11); + ki(e21, t10, r11), c10 && c10.m(e21, r11), n10 = true; + }, p: function(e21, i11) { + var l10 = jo(i11, 1)[0]; + if (3 & l10) { + var u10; + for (r10 = Ca(e21[0]), u10 = 0; u10 < r10.length; u10 += 1) { + var f10 = FO(e21, r10, u10); + o10[u10] ? (o10[u10].p(f10, l10), wa(o10[u10], 1)) : (o10[u10] = VO(f10), o10[u10].c(), wa(o10[u10], 1), o10[u10].m(t10.parentNode, t10)); + } + for (ba(), u10 = r10.length; u10 < o10.length; u10 += 1) + a10(u10); + ka(); + } + c10 && c10.p && (!n10 || 4 & l10) && ri(c10, s10, e21, e21[2], n10 ? ni(s10, e21[2], l10, null) : oi(e21[2]), null); + }, i: function(e21) { + if (!n10) { + for (var t11 = 0; t11 < r10.length; t11 += 1) + wa(o10[t11]); + wa(c10, e21), n10 = true; + } + }, o: function(e21) { + o10 = o10.filter(Boolean); + for (var t11 = 0; t11 < o10.length; t11 += 1) + xa(o10[t11]); + xa(c10, e21), n10 = false; + }, d: function(e21) { + e21 && wi(t10), xi(o10, e21), c10 && c10.d(e21); + } }; + } + function WO(e20, t10, n10) { + var r10 = t10.$$slots, o10 = void 0 === r10 ? {} : r10, i10 = t10.$$scope, a10 = Da("jsoneditor:AbsolutePopup"), s10 = []; + function c10(e21) { + var t11 = s10.findIndex(function(t12) { + return t12.id === e21; + }); + if (-1 !== t11) { + var r11 = s10[t11]; + r11.options.onClose && r11.options.onClose(), n10(0, s10 = s10.filter(function(t12) { + return t12.id !== e21; + })); + } + } + return Xi("absolute-popup", { openAbsolutePopup: function(e21, t11, r11) { + a10("open...", t11, r11); + var o11 = { id: Ps(), component: e21, props: t11 || {}, options: r11 || {} }; + return n10(0, s10 = [].concat(Bo(s10), [o11])), o11.id; + }, closeAbsolutePopup: c10 }), e20.$$set = function(e21) { + "$$scope" in e21 && n10(2, i10 = e21.$$scope); + }, e20.$$.update = function() { + 1 & e20.$$.dirty && a10("popups", s10); + }, [s10, c10, i10, o10]; + } + var UO = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, WO, HO, Zo, {}), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function JO(e20) { + return e20.map(function(e21, t10) { + return ZO.test(e21) ? "[" + e21 + "]" : /[.[\]]/.test(e21) || "" === e21 ? '["' + (e21.replace(/"/g, '\\"') + '"]') : (t10 > 0 ? "." : "") + e21; + }).join(""); + } + function KO(e20) { + for (var t10 = [], n10 = 0; n10 < e20.length; ) + "." === e20[n10] && n10++, "[" === e20[n10] ? (n10++, '"' === e20[n10] ? (n10++, t10.push(r10(function(e21) { + return '"' === e21; + }, true)), o10('"')) : t10.push(r10(function(e21) { + return "]" === e21; + })), o10("]")) : t10.push(r10(function(e21) { + return "." === e21 || "[" === e21; + })); + function r10(t11) { + for (var r11 = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], o11 = ""; n10 < e20.length && !t11(e20[n10]); ) + r11 && "\\" === e20[n10] && '"' === e20[n10 + 1] ? (o11 += '"', n10 += 2) : (o11 += e20[n10], n10++); + return o11; + } + function o10(t11) { + if (e20[n10] !== t11) + throw new SyntaxError("Invalid JSON path: ".concat(t11, " expected at position ").concat(n10)); + n10++; + } + return t10; + } + function GO(e20) { + return { value: e20, label: _w(e20) ? "(item root)" : JO(e20) }; + } + function YO(e20) { + return e20.map(function(e21) { + return ZO.test(e21) ? "?.[".concat(e21, "]") : XO.test(e21) ? "?.".concat(e21) : "?.[".concat(JSON.stringify(e21), "]"); + }).join(""); + } + var XO = /^[a-zA-Z$_][a-zA-Z$_\d]*$/; + var ZO = /^\d+$/; + function eM(e20, t10) { + for (var n10 = new Set(t10), r10 = e20.replace(/ \(copy( \d+)?\)$/, ""), o10 = e20, i10 = 1; n10.has(o10); ) { + var a10 = "copy" + (i10 > 1 ? " " + i10 : ""); + o10 = "".concat(r10, " (").concat(a10, ")"), i10++; + } + return o10; + } + function tM(e20, t10) { + var n10 = t10 - 3; + return e20.length > t10 ? e20.substring(0, n10) + "..." : e20; + } + function nM(e20) { + if ("" === e20) + return ""; + var t10 = e20.toLowerCase(); + if ("null" === t10) + return null; + if ("true" === t10) + return true; + if ("false" === t10) + return false; + if ("undefined" !== t10) { + var n10 = Number(e20), r10 = parseFloat(e20); + return isNaN(n10) || isNaN(r10) ? e20 : n10; + } + } + var rM = { id: "javascript", name: "JavaScript", description: "\n

\n Enter a JavaScript function to filter, sort, or transform the data.\n

\n", createQuery: function(e20, t10) { + var n10 = t10.filter, r10 = t10.sort, o10 = t10.projection, i10 = [" return data\n"]; + if (n10 && n10.path && n10.relation && n10.value) { + var a10 = "item => item".concat(YO(n10.path)), s10 = nM(n10.value), c10 = "string" == typeof s10 ? "'".concat(n10.value, "'") : ou(n10.value) && !Number.isSafeInteger(s10) ? "".concat(n10.value, "n") : n10.value; + i10.push(" .filter(".concat(a10, " ").concat(n10.relation, " ").concat(c10, ")\n")); + } + r10 && r10.path && r10.direction && ("desc" === r10.direction ? i10.push(" .slice()\n .sort((a, b) => {\n // sort descending\n" + " const valueA = a".concat(YO(r10.path), "\n") + " const valueB = b".concat(YO(r10.path), "\n") + " return valueA > valueB ? -1 : valueA < valueB ? 1 : 0\n })\n") : i10.push(" .slice()\n .sort((a, b) => {\n // sort ascending\n" + " const valueA = a".concat(YO(r10.path), "\n") + " const valueB = b".concat(YO(r10.path), "\n") + " return valueA > valueB ? 1 : valueA < valueB ? -1 : 0\n })\n")); + if (o10 && o10.paths) + if (o10.paths.length > 1) { + var l10 = o10.paths.map(function(e21) { + var t11 = e21[e21.length - 1] || "item", n11 = "item".concat(YO(e21)); + return " ".concat(JSON.stringify(t11), ": ").concat(n11); + }); + i10.push(" .map(item => ({\n".concat(l10.join(",\n"), "})\n )\n")); + } else { + var u10 = "item".concat(YO(o10.paths[0])); + i10.push(" .map(item => ".concat(u10, ")\n")); + } + return "function query (data) {\n".concat(i10.join(""), "}"); + }, executeQuery: function(e20, t10) { + var n10 = new Function('"use strict";\n\n' + t10 + ` + +if (typeof query !== "function") { + throw new Error("Cannot execute query: expecting a function named 'query' but is undefined") +} + +return query; +`)()(e20); + return void 0 !== n10 ? n10 : null; + } }; + var oM = { prefix: "far", iconName: "lightbulb", icon: [384, 512, [128161], "f0eb", "M297.2 248.9C311.6 228.3 320 203.2 320 176c0-70.7-57.3-128-128-128S64 105.3 64 176c0 27.2 8.4 52.3 22.8 72.9c3.7 5.3 8.1 11.3 12.8 17.7l0 0c12.9 17.7 28.3 38.9 39.8 59.8c10.4 19 15.7 38.8 18.3 57.5H109c-2.2-12-5.9-23.7-11.8-34.5c-9.9-18-22.2-34.9-34.5-51.8l0 0 0 0c-5.2-7.1-10.4-14.2-15.4-21.4C27.6 247.9 16 213.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176c0 37.3-11.6 71.9-31.4 100.3c-5 7.2-10.2 14.3-15.4 21.4l0 0 0 0c-12.3 16.8-24.6 33.7-34.5 51.8c-5.9 10.8-9.6 22.5-11.8 34.5H226.4c2.6-18.7 7.9-38.6 18.3-57.5c11.5-20.9 26.9-42.1 39.8-59.8l0 0 0 0 0 0c4.7-6.4 9-12.4 12.7-17.7zM192 128c-26.5 0-48 21.5-48 48c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16s-7.2 16-16 16zm0 384c-44.2 0-80-35.8-80-80V416H272v16c0 44.2-35.8 80-80 80z"] }; + var iM = { prefix: "far", iconName: "square-check", icon: [448, 512, [9745, 9989, 61510, "check-square"], "f14a", "M64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16V96c0-8.8-7.2-16-16-16H64zM0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"] }; + var aM = { prefix: "far", iconName: "square", icon: [448, 512, [9632, 9723, 9724, 61590], "f0c8", "M384 80c8.8 0 16 7.2 16 16V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V96c0-8.8 7.2-16 16-16H384zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"] }; + var sM = { prefix: "far", iconName: "clock", icon: [512, 512, [128339, "clock-four"], "f017", "M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"] }; + function cM(e20) { + var t10; + return { c: function() { + t10 = Si("g"); + }, m: function(n10, r10) { + ki(n10, t10, r10), t10.innerHTML = e20[0]; + }, p: function(e21, n10) { + 1 & jo(n10, 1)[0] && (t10.innerHTML = e21[0]); + }, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function lM(e20, t10, n10) { + var r10 = 870711; + var o10 = "", i10 = t10.data; + function a10(e21) { + if (!e21 || !e21.raw) + return ""; + var t11 = e21.raw, n11 = {}; + return t11 = t11.replace(/\s(?:xml:)?id=["']?([^"')\s]+)/g, function(e23, t12) { + var o11 = "fa-".concat((r10 += 1).toString(16)); + return n11[t12] = o11, ' id="'.concat(o11, '"'); + }), t11 = t11.replace(/#(?:([^'")\s]+)|xpointer\(id\((['"]?)([^')]+)\2\)\))/g, function(e23, t12, r11, o11) { + var i11 = t12 || o11; + return i11 && n11[i11] ? "#".concat(n11[i11]) : e23; + }), t11; + } + return e20.$$set = function(e21) { + "data" in e21 && n10(1, i10 = e21.data); + }, e20.$$.update = function() { + 2 & e20.$$.dirty && n10(0, o10 = a10(i10)); + }, [o10, i10]; + } + var uM = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, lM, cM, Xo, { data: 1 }), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function fM(e20) { + mi(e20, "svelte-1mc5hvj", ".fa-icon.svelte-1mc5hvj{display:inline-block;fill:currentColor}.fa-flip-horizontal.svelte-1mc5hvj{transform:scale(-1, 1)}.fa-flip-vertical.svelte-1mc5hvj{transform:scale(1, -1)}.fa-spin.svelte-1mc5hvj{animation:svelte-1mc5hvj-fa-spin 1s 0s infinite linear}.fa-inverse.svelte-1mc5hvj{color:#fff}.fa-pulse.svelte-1mc5hvj{animation:svelte-1mc5hvj-fa-spin 1s infinite steps(8)}@keyframes svelte-1mc5hvj-fa-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}"); + } + function dM(e20) { + for (var t10, n10, r10, o10, i10 = e20[12].default, a10 = ei(i10, e20, e20[11], null), s10 = [{ version: "1.1" }, { class: n10 = "fa-icon " + e20[0] }, { width: e20[1] }, { height: e20[2] }, { "aria-label": e20[9] }, { role: r10 = e20[9] ? "img" : "presentation" }, { viewBox: e20[3] }, { style: e20[8] }, e20[10]], c10 = {}, l10 = 0; l10 < s10.length; l10 += 1) + c10 = Jo(c10, s10[l10]); + return { c: function() { + t10 = Si("svg"), a10 && a10.c(), Ri(t10, c10), zi(t10, "fa-spin", e20[4]), zi(t10, "fa-pulse", e20[6]), zi(t10, "fa-inverse", e20[5]), zi(t10, "fa-flip-horizontal", "horizontal" === e20[7]), zi(t10, "fa-flip-vertical", "vertical" === e20[7]), zi(t10, "svelte-1mc5hvj", true); + }, m: function(e21, n11) { + ki(e21, t10, n11), a10 && a10.m(t10, null), o10 = true; + }, p: function(e21, l11) { + var u10 = jo(l11, 1)[0]; + a10 && a10.p && (!o10 || 2048 & u10) && ri(a10, i10, e21, e21[11], o10 ? ni(i10, e21[11], u10, null) : oi(e21[11]), null), Ri(t10, c10 = Ma(s10, [{ version: "1.1" }, (!o10 || 1 & u10 && n10 !== (n10 = "fa-icon " + e21[0])) && { class: n10 }, (!o10 || 2 & u10) && { width: e21[1] }, (!o10 || 4 & u10) && { height: e21[2] }, (!o10 || 512 & u10) && { "aria-label": e21[9] }, (!o10 || 512 & u10 && r10 !== (r10 = e21[9] ? "img" : "presentation")) && { role: r10 }, (!o10 || 8 & u10) && { viewBox: e21[3] }, (!o10 || 256 & u10) && { style: e21[8] }, 1024 & u10 && e21[10]])), zi(t10, "fa-spin", e21[4]), zi(t10, "fa-pulse", e21[6]), zi(t10, "fa-inverse", e21[5]), zi(t10, "fa-flip-horizontal", "horizontal" === e21[7]), zi(t10, "fa-flip-vertical", "vertical" === e21[7]), zi(t10, "svelte-1mc5hvj", true); + }, i: function(e21) { + o10 || (wa(a10, e21), o10 = true); + }, o: function(e21) { + xa(a10, e21), o10 = false; + }, d: function(e21) { + e21 && wi(t10), a10 && a10.d(e21); + } }; + } + function hM(e20, t10, n10) { + var r10 = ["class", "width", "height", "box", "spin", "inverse", "pulse", "flip", "style", "label"], o10 = ai(t10, r10), i10 = t10, a10 = i10.$$slots, s10 = void 0 === a10 ? {} : a10, c10 = i10.$$scope, l10 = t10.class, u10 = void 0 === l10 ? "" : l10, f10 = t10.width, d10 = t10.height, h10 = t10.box, v10 = void 0 === h10 ? "0 0 0 0" : h10, p10 = t10.spin, m10 = void 0 !== p10 && p10, g10 = t10.inverse, y10 = void 0 !== g10 && g10, b10 = t10.pulse, k10 = void 0 !== b10 && b10, w10 = t10.flip, x10 = void 0 === w10 ? "none" : w10, j10 = t10.style, S10 = void 0 === j10 ? "" : j10, C10 = t10.label, $10 = void 0 === C10 ? "" : C10; + return e20.$$set = function(e21) { + t10 = Jo(Jo({}, t10), ii(e21)), n10(10, o10 = ai(t10, r10)), "class" in e21 && n10(0, u10 = e21.class), "width" in e21 && n10(1, f10 = e21.width), "height" in e21 && n10(2, d10 = e21.height), "box" in e21 && n10(3, v10 = e21.box), "spin" in e21 && n10(4, m10 = e21.spin), "inverse" in e21 && n10(5, y10 = e21.inverse), "pulse" in e21 && n10(6, k10 = e21.pulse), "flip" in e21 && n10(7, x10 = e21.flip), "style" in e21 && n10(8, S10 = e21.style), "label" in e21 && n10(9, $10 = e21.label), "$$scope" in e21 && n10(11, c10 = e21.$$scope); + }, [u10, f10, d10, v10, m10, y10, k10, x10, S10, $10, o10, c10, s10]; + } + var vM = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, hM, dM, Xo, { class: 0, width: 1, height: 2, box: 3, spin: 4, inverse: 5, pulse: 6, flip: 7, style: 8, label: 9 }, fM), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function pM(e20, t10, n10) { + var r10 = e20.slice(); + return r10[24] = t10[n10], r10; + } + function mM(e20, t10, n10) { + var r10 = e20.slice(); + return r10[27] = t10[n10], r10; + } + function gM(e20) { + for (var t10, n10 = [e20[27]], r10 = {}, o10 = 0; o10 < n10.length; o10 += 1) + r10 = Jo(r10, n10[o10]); + return { c: function() { + Ri(t10 = Si("path"), r10); + }, m: function(e21, n11) { + ki(e21, t10, n11); + }, p: function(e21, o11) { + Ri(t10, r10 = Ma(n10, [64 & o11 && e21[27]])); + }, d: function(e21) { + e21 && wi(t10); + } }; + } + function yM(e20) { + for (var t10, n10 = [e20[24]], r10 = {}, o10 = 0; o10 < n10.length; o10 += 1) + r10 = Jo(r10, n10[o10]); + return { c: function() { + Ri(t10 = Si("polygon"), r10); + }, m: function(e21, n11) { + ki(e21, t10, n11); + }, p: function(e21, o11) { + Ri(t10, r10 = Ma(n10, [64 & o11 && e21[24]])); + }, d: function(e21) { + e21 && wi(t10); + } }; + } + function bM(e20) { + var t10, n10, r10; + function o10(t11) { + e20[16](t11); + } + var i10 = {}; + return void 0 !== e20[6] && (i10.data = e20[6]), t10 = new uM({ props: i10 }), na.push(function() { + return Aa(t10, "data", o10); + }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, n11) { + Ta(t10, e21, n11), r10 = true; + }, p: function(e21, r11) { + var o11 = {}; + !n10 && 64 & r11 && (n10 = true, o11.data = e21[6], ua(function() { + return n10 = false; + })), t10.$set(o11); + }, i: function(e21) { + r10 || (wa(t10.$$.fragment, e21), r10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), r10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function kM(e20) { + var t10, n10 = e20[15].default, r10 = ei(n10, e20, e20[17], null), o10 = r10 || function(e21) { + for (var t11, n11, r11, o11, i10, a10, s10, c10 = Ca((null === (t11 = e21[6]) || void 0 === t11 ? void 0 : t11.paths) || []), l10 = [], u10 = 0; u10 < c10.length; u10 += 1) + l10[u10] = gM(mM(e21, c10, u10)); + for (var f10 = Ca((null === (n11 = e21[6]) || void 0 === n11 ? void 0 : n11.polygons) || []), d10 = [], h10 = 0; h10 < f10.length; h10 += 1) + d10[h10] = yM(pM(e21, f10, h10)); + var v10 = (null === (r11 = e21[6]) || void 0 === r11 ? void 0 : r11.raw) && bM(e21); + return { c: function() { + for (var e23 = 0; e23 < l10.length; e23 += 1) + l10[e23].c(); + o11 = $i(); + for (var t12 = 0; t12 < d10.length; t12 += 1) + d10[t12].c(); + i10 = $i(), v10 && v10.c(), a10 = _i(); + }, m: function(e23, t12) { + for (var n12 = 0; n12 < l10.length; n12 += 1) + l10[n12] && l10[n12].m(e23, t12); + ki(e23, o11, t12); + for (var r12 = 0; r12 < d10.length; r12 += 1) + d10[r12] && d10[r12].m(e23, t12); + ki(e23, i10, t12), v10 && v10.m(e23, t12), ki(e23, a10, t12), s10 = true; + }, p: function(e23, t12) { + var n12; + if (64 & t12) { + var r12, s11; + for (c10 = Ca((null === (r12 = e23[6]) || void 0 === r12 ? void 0 : r12.paths) || []), s11 = 0; s11 < c10.length; s11 += 1) { + var u11 = mM(e23, c10, s11); + l10[s11] ? l10[s11].p(u11, t12) : (l10[s11] = gM(u11), l10[s11].c(), l10[s11].m(o11.parentNode, o11)); + } + for (; s11 < l10.length; s11 += 1) + l10[s11].d(1); + l10.length = c10.length; + } + if (64 & t12) { + var h11, p10; + for (f10 = Ca((null === (h11 = e23[6]) || void 0 === h11 ? void 0 : h11.polygons) || []), p10 = 0; p10 < f10.length; p10 += 1) { + var m10 = pM(e23, f10, p10); + d10[p10] ? d10[p10].p(m10, t12) : (d10[p10] = yM(m10), d10[p10].c(), d10[p10].m(i10.parentNode, i10)); + } + for (; p10 < d10.length; p10 += 1) + d10[p10].d(1); + d10.length = f10.length; + } + null !== (n12 = e23[6]) && void 0 !== n12 && n12.raw ? v10 ? (v10.p(e23, t12), 64 & t12 && wa(v10, 1)) : ((v10 = bM(e23)).c(), wa(v10, 1), v10.m(a10.parentNode, a10)) : v10 && (ba(), xa(v10, 1, 1, function() { + v10 = null; + }), ka()); + }, i: function(e23) { + s10 || (wa(v10), s10 = true); + }, o: function(e23) { + xa(v10), s10 = false; + }, d: function(e23) { + e23 && (wi(o11), wi(i10), wi(a10)), xi(l10, e23), xi(d10, e23), v10 && v10.d(e23); + } }; + }(e20); + return { c: function() { + o10 && o10.c(); + }, m: function(e21, n11) { + o10 && o10.m(e21, n11), t10 = true; + }, p: function(e21, i10) { + r10 ? r10.p && (!t10 || 131072 & i10) && ri(r10, n10, e21, e21[17], t10 ? ni(n10, e21[17], i10, null) : oi(e21[17]), null) : o10 && o10.p && (!t10 || 64 & i10) && o10.p(e21, t10 ? i10 : -1); + }, i: function(e21) { + t10 || (wa(o10, e21), t10 = true); + }, o: function(e21) { + xa(o10, e21), t10 = false; + }, d: function(e21) { + o10 && o10.d(e21); + } }; + } + function wM(e20) { + for (var t10, n10, r10 = [{ label: e20[5] }, { width: e20[7] }, { height: e20[8] }, { box: e20[10] }, { style: e20[9] }, { spin: e20[1] }, { flip: e20[4] }, { inverse: e20[2] }, { pulse: e20[3] }, { class: e20[0] }, e20[11]], o10 = { $$slots: { default: [kM] }, $$scope: { ctx: e20 } }, i10 = 0; i10 < r10.length; i10 += 1) + o10 = Jo(o10, r10[i10]); + return t10 = new vM({ props: o10 }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r11) { + Ta(t10, e21, r11), n10 = true; + }, p: function(e21, n11) { + var o11 = jo(n11, 1)[0], i11 = 4031 & o11 ? Ma(r10, [32 & o11 && { label: e21[5] }, 128 & o11 && { width: e21[7] }, 256 & o11 && { height: e21[8] }, 1024 & o11 && { box: e21[10] }, 512 & o11 && { style: e21[9] }, 2 & o11 && { spin: e21[1] }, 16 & o11 && { flip: e21[4] }, 4 & o11 && { inverse: e21[2] }, 8 & o11 && { pulse: e21[3] }, 1 & o11 && { class: e21[0] }, 2048 & o11 && Ea(e21[11])]) : {}; + 131136 & o11 && (i11.$$scope = { dirty: o11, ctx: e21 }), t10.$set(i11); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function xM(e20, t10, n10) { + var r10, o10, i10, a10 = ["class", "data", "scale", "spin", "inverse", "pulse", "flip", "label", "style"], s10 = ai(t10, a10), c10 = t10, l10 = c10.$$slots, u10 = void 0 === l10 ? {} : l10, f10 = c10.$$scope, d10 = t10.class, h10 = void 0 === d10 ? "" : d10, v10 = t10.data, p10 = t10.scale, m10 = void 0 === p10 ? 1 : p10, g10 = t10.spin, y10 = void 0 !== g10 && g10, b10 = t10.inverse, k10 = void 0 !== b10 && b10, w10 = t10.pulse, x10 = void 0 !== w10 && w10, j10 = t10.flip, S10 = void 0 === j10 ? void 0 : j10, C10 = t10.label, $10 = void 0 === C10 ? "" : C10, _10 = t10.style, O10 = void 0 === _10 ? "" : _10, M10 = 10, E10 = 10; + function A10() { + var e21 = 1; + return void 0 !== m10 && (e21 = Number(m10)), isNaN(e21) || e21 <= 0 ? (console.warn('Invalid prop: prop "scale" should be a number over 0.'), 1) : 1 * e21; + } + function P10() { + return r10 ? Math.max(r10.width, r10.height) / 16 : 1; + } + return e20.$$set = function(e21) { + t10 = Jo(Jo({}, t10), ii(e21)), n10(11, s10 = ai(t10, a10)), "class" in e21 && n10(0, h10 = e21.class), "data" in e21 && n10(12, v10 = e21.data), "scale" in e21 && n10(13, m10 = e21.scale), "spin" in e21 && n10(1, y10 = e21.spin), "inverse" in e21 && n10(2, k10 = e21.inverse), "pulse" in e21 && n10(3, x10 = e21.pulse), "flip" in e21 && n10(4, S10 = e21.flip), "label" in e21 && n10(5, $10 = e21.label), "style" in e21 && n10(14, O10 = e21.style), "$$scope" in e21 && n10(17, f10 = e21.$$scope); + }, e20.$$.update = function() { + 28672 & e20.$$.dirty && (n10(6, r10 = function(e21) { + var t11; + if (e21) { + if (!("definition" in e21)) { + if ("iconName" in e21 && "icon" in e21) { + e21.iconName; + var n11 = jo(e21.icon, 5), r11 = n11[0], o11 = n11[1], i11 = n11[4]; + t11 = { width: r11, height: o11, paths: (Array.isArray(i11) ? i11 : [i11]).map(function(e23) { + return { d: e23 }; + }) }; + } else + t11 = e21[Object.keys(e21)[0]]; + return t11; + } + console.error("`import faIconName from '@fortawesome/package-name/faIconName` not supported - Please use `import { faIconName } from '@fortawesome/package-name/faIconName'` instead"); + } + }(v10)), n10(7, M10 = r10 ? r10.width / P10() * A10() : 0), n10(8, E10 = r10 ? r10.height / P10() * A10() : 0), n10(9, o10 = function() { + var e21 = ""; + null !== O10 && (e21 += O10); + var t11 = A10(); + return 1 === t11 ? 0 === e21.length ? "" : e21 : ("" === e21 || e21.endsWith(";") || (e21 += "; "), "".concat(e21, "font-size: ").concat(t11, "em")); + }()), n10(10, i10 = r10 ? "0 0 ".concat(r10.width, " ").concat(r10.height) : "0 0 ".concat(M10, " ").concat(E10))); + }, [h10, y10, k10, x10, S10, $10, r10, M10, E10, o10, i10, s10, v10, m10, O10, u10, function(e21) { + n10(6, r10 = e21), n10(12, v10), n10(14, O10), n10(13, m10); + }, f10]; + } + var jM = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, xM, wM, Xo, { class: 0, data: 12, scale: 13, spin: 1, inverse: 2, pulse: 3, flip: 4, label: 5, style: 14 }), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function SM(e20) { + mi(e20, "svelte-68vtq4", ".jse-boolean-toggle.svelte-68vtq4{padding:0;margin:1px 0 0;vertical-align:top;display:inline-flex;color:var(--jse-value-color-boolean, #ff8c00)}.jse-boolean-toggle.svelte-68vtq4:not(.jse-readonly){cursor:pointer}"); + } + function CM(e20) { + var t10, n10, r10, o10, i10, a10, s10; + return n10 = new jM({ props: { data: true === e20[0] ? iM : aM } }), { c: function() { + t10 = ji("div"), Pa(n10.$$.fragment), Ai(t10, "role", "checkbox"), Ai(t10, "tabindex", "-1"), Ai(t10, "aria-checked", r10 = true === e20[0]), Ai(t10, "class", "jse-boolean-toggle svelte-68vtq4"), Ai(t10, "title", o10 = e20[1] ? "Boolean value ".concat(e20[0]) : "Click to toggle this boolean value"), zi(t10, "jse-readonly", e20[1]); + }, m: function(r11, o11) { + ki(r11, t10, o11), Ta(n10, t10, null), i10 = true, a10 || (s10 = Oi(t10, "mousedown", e20[2]), a10 = true); + }, p: function(e21, a11) { + var s11 = jo(a11, 1)[0], c10 = {}; + 1 & s11 && (c10.data = true === e21[0] ? iM : aM), n10.$set(c10), (!i10 || 1 & s11 && r10 !== (r10 = true === e21[0])) && Ai(t10, "aria-checked", r10), (!i10 || 3 & s11 && o10 !== (o10 = e21[1] ? "Boolean value ".concat(e21[0]) : "Click to toggle this boolean value")) && Ai(t10, "title", o10), (!i10 || 2 & s11) && zi(t10, "jse-readonly", e21[1]); + }, i: function(e21) { + i10 || (wa(n10.$$.fragment, e21), i10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), i10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(n10), a10 = false, s10(); + } }; + } + function $M(e20, t10, n10) { + var r10 = t10.path, o10 = t10.value, i10 = t10.readOnly, a10 = t10.onPatch, s10 = t10.focus; + return e20.$$set = function(e21) { + "path" in e21 && n10(3, r10 = e21.path), "value" in e21 && n10(0, o10 = e21.value), "readOnly" in e21 && n10(1, i10 = e21.readOnly), "onPatch" in e21 && n10(4, a10 = e21.onPatch), "focus" in e21 && n10(5, s10 = e21.focus); + }, [o10, i10, function(e21) { + e21.stopPropagation(), i10 || (a10([{ op: "replace", path: Zs(r10), value: !o10 }]), s10()); + }, r10, a10, s10]; + } + var _M = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, $M, CM, Zo, { path: 3, value: 0, readOnly: 1, onPatch: 4, focus: 5 }, SM), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function OM(e20) { + mi(e20, "svelte-1f4ayrt", ".jse-color-picker-popup.svelte-1f4ayrt .picker_wrapper.popup,.jse-color-picker-popup.svelte-1f4ayrt .picker_wrapper.popup .picker_arrow::before,.jse-color-picker-popup.svelte-1f4ayrt .picker_wrapper.popup .picker_arrow::after{background:var(--jse-color-picker-background, var(--jse-panel-background, #ebebeb));line-height:normal}.jse-color-picker-popup.svelte-1f4ayrt .picker_slider,.jse-color-picker-popup.svelte-1f4ayrt .picker_sl,.jse-color-picker-popup.svelte-1f4ayrt .picker_editor input,.jse-color-picker-popup.svelte-1f4ayrt .picker_sample,.jse-color-picker-popup.svelte-1f4ayrt .picker_done button{box-shadow:var(--jse-color-picker-border-box-shadow, #cbcbcb 0 0 0 1px)}.jse-color-picker-popup.svelte-1f4ayrt .picker_editor input{background:var(--jse-background-color, #fff);color:var(--jse-text-color, #4d4d4d)}.jse-color-picker-popup.svelte-1f4ayrt .picker_done button{background:var(--jse-button-background, #e0e0e0);color:var(--jse-button-color, var(--jse-text-color, #4d4d4d))}.jse-color-picker-popup.svelte-1f4ayrt .picker_done button:hover{background:var(--jse-button-background-highlight, #e7e7e7)}"); + } + function MM(e20) { + var t10; + return { c: function() { + Ai(t10 = ji("div"), "class", "jse-color-picker-popup svelte-1f4ayrt"); + }, m: function(n10, r10) { + ki(n10, t10, r10), e20[4](t10); + }, p: Wo, i: Wo, o: Wo, d: function(n10) { + n10 && wi(t10), e20[4](null); + } }; + } + function EM(e20, t10, n10) { + var r10, o10 = t10.color, i10 = t10.onChange, a10 = t10.showOnTop, s10 = function() { + }; + return Gi(xo(ko().mark(function e21() { + var t11, n11, c10; + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + return e23.next = 2, Promise.resolve().then(function() { + return ote; + }); + case 2: + if (e23.t1 = t11 = e23.sent, e23.t0 = null === e23.t1, e23.t0) { + e23.next = 6; + break; + } + e23.t0 = void 0 === t11; + case 6: + if (!e23.t0) { + e23.next = 10; + break; + } + e23.t2 = void 0, e23.next = 11; + break; + case 10: + e23.t2 = t11.default; + case 11: + n11 = e23.t2, c10 = new n11({ parent: r10, color: o10, popup: a10 ? "top" : "bottom", onDone: function(e24) { + var t12 = 1 === e24.rgba[3] ? e24.hex.substring(0, 7) : e24.hex; + i10(t12); + } }), c10.show(), s10 = function() { + c10.destroy(); + }; + case 15: + case "end": + return e23.stop(); + } + }, e21); + }))), Qi(function() { + s10(); + }), e20.$$set = function(e21) { + "color" in e21 && n10(1, o10 = e21.color), "onChange" in e21 && n10(2, i10 = e21.onChange), "showOnTop" in e21 && n10(3, a10 = e21.showOnTop); + }, [r10, o10, i10, a10, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(0, r10 = e21); + }); + }]; + } + var AM = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, EM, MM, Xo, { color: 1, onChange: 2, showOnTop: 3 }, OM), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function PM(e20) { + mi(e20, "svelte-1zzxwe", ".jse-color-picker-button.svelte-1zzxwe{font-size:var(--jse-font-size-mono, 14px);width:var(--jse-color-picker-button-size, 1em);height:var(--jse-color-picker-button-size, 1em);box-sizing:border-box;padding:0;margin:2px 0 0;display:inline-flex;vertical-align:top;border:1px solid var(--jse-text-color, #4d4d4d);border-radius:2px;background:inherit;outline:none}.jse-color-picker-button.svelte-1zzxwe:not(.jse-readonly){cursor:pointer}"); + } + function TM(e20) { + var t10, n10, r10, o10; + return { c: function() { + Ai(t10 = ji("button"), "type", "button"), Ai(t10, "class", "jse-color-picker-button svelte-1zzxwe"), Di(t10, "background", e20[2]), Ai(t10, "title", n10 = e20[1] ? "Color ".concat(e20[0]) : "Click to open a color picker"), zi(t10, "jse-readonly", e20[1]); + }, m: function(n11, i10) { + ki(n11, t10, i10), r10 || (o10 = Oi(t10, "click", e20[3]), r10 = true); + }, p: function(e21, r11) { + var o11 = jo(r11, 1)[0]; + 4 & o11 && Di(t10, "background", e21[2]), 3 & o11 && n10 !== (n10 = e21[1] ? "Color ".concat(e21[0]) : "Click to open a color picker") && Ai(t10, "title", n10), 2 & o11 && zi(t10, "jse-readonly", e21[1]); + }, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10), r10 = false, o10(); + } }; + } + function RM(e20, t10, n10) { + var r10, o10 = Zi("absolute-popup").openAbsolutePopup, i10 = t10.path, a10 = t10.value, s10 = t10.readOnly, c10 = t10.onPatch, l10 = t10.focus; + function u10(e21) { + c10([{ op: "replace", path: Zs(i10), value: e21 }]), f10(); + } + function f10() { + l10(); + } + return e20.$$set = function(e21) { + "path" in e21 && n10(4, i10 = e21.path), "value" in e21 && n10(0, a10 = e21.value), "readOnly" in e21 && n10(1, s10 = e21.readOnly), "onPatch" in e21 && n10(5, c10 = e21.onPatch), "focus" in e21 && n10(6, l10 = e21.focus); + }, e20.$$.update = function() { + 1 & e20.$$.dirty && n10(2, r10 = Xl(a10)); + }, [a10, s10, r10, function(e21) { + var t11, n11; + if (!s10) { + var r11 = e21.target, i11 = r11.getBoundingClientRect().top, c11 = null !== (t11 = null === (n11 = SO(r11)) || void 0 === n11 ? void 0 : n11.innerHeight) && void 0 !== t11 ? t11 : 0; + o10(AM, { color: a10, onChange: u10, showOnTop: c11 - i11 < 300 && i11 > 300 }, { anchor: r11, closeOnOuterClick: true, onClose: f10, offsetTop: 18, offsetLeft: -8, height: 300 }); + } + }, i10, c10, l10]; + } + var NM = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, RM, TM, Zo, { path: 4, value: 0, readOnly: 1, onPatch: 5, focus: 6 }, PM), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function IM(e20) { + for (var t10 = GS(e20, function(e21) { + return e21.start; + }), n10 = [t10[0]], r10 = 0; r10 < t10.length; r10++) { + var o10 = n10.length - 1, i10 = n10[o10], a10 = t10[r10]; + a10.start <= i10.end ? n10[o10] = { start: Math.min(i10.start, a10.start), end: Math.max(i10.end, a10.end) } : n10.push(a10); + } + return n10; + } + function DM(e20, t10) { + return e20.some(function(e21) { + return t10 >= e21.start && t10 < e21.end; + }); + } + function qM(e20) { + return zM(e20) + ls; + } + function zM(e20) { + return Math.floor(e20 / ls) * ls; + } + function BM(e20) { + var t10 = { expandedMap: {}, enforceStringMap: {}, visibleSectionsMap: {}, selection: null, sortedColumn: null }; + return null != e20 && e20.select && void 0 !== e20.json && (t10 = Ro(Ro({}, t10), {}, { selection: e20.select(e20.json, t10) })), null != e20 && e20.expand && (t10 = HM(e20.json, t10, [], e20.expand)), t10; + } + function LM(e20, t10) { + return e20.visibleSectionsMap[t10] || ds; + } + function FM(e20, t10, n10) { + t10.forEach(function(t11) { + var r10 = t11.start, o10 = t11.end; + R_(r10, Math.min(e20.length, o10), n10); + }); + } + function VM(e20, t10, n10) { + for (var r10 = Ro({}, t10.expandedMap), o10 = Ro({}, t10.visibleSectionsMap), i10 = 0; i10 < n10.length; i10++) { + var a10 = n10.slice(0, i10), s10 = Zs(a10), c10 = Ws(e20, a10); + if (Ql(c10) && (r10[s10] = true), Array.isArray(c10) && i10 < n10.length) { + var l10 = o10[s10] || ds, u10 = Ul(n10[i10]); + if (!DM(l10, u10)) { + var f10 = zM(u10), d10 = { start: f10, end: qM(f10) }; + o10[s10] = IM(l10.concat(d10)); + } + } + } + return Ro(Ro({}, t10), {}, { expandedMap: r10, visibleSectionsMap: o10 }); + } + function HM(e20, t10, n10, r10) { + var o10 = Ro({}, t10.expandedMap); + var i10 = n10.slice(), a10 = void 0 !== e20 ? Ws(e20, n10) : e20; + return void 0 !== a10 && function e21(n11) { + var a11 = i10.length; + if (Array.isArray(n11)) { + if (r10(i10)) { + var s10 = Zs(i10); + if (o10[s10] = true, n11.length > 0) { + var c10 = LM(t10, s10); + FM(n11, c10, function(t11) { + i10[a11] = String(t11), e21(n11[t11]); + }), i10.pop(); + } + } + } else if (Gl(n11) && r10(i10)) { + o10[Zs(i10)] = true; + var l10 = Object.keys(n11); + if (l10.length > 0) { + var u10, f10 = bo(l10); + try { + for (f10.s(); !(u10 = f10.n()).done; ) { + var d10 = u10.value; + i10[a11] = d10, e21(n11[d10]); + } + } catch (e23) { + f10.e(e23); + } finally { + f10.f(); + } + i10.pop(); + } + } + }(a10), Ro(Ro({}, t10), {}, { expandedMap: o10 }); + } + function WM(e20, t10) { + var n10 = QM(e20.expandedMap, t10), r10 = QM(e20.enforceStringMap, t10), o10 = QM(e20.visibleSectionsMap, t10); + return Ro(Ro({}, e20), {}, { expandedMap: n10, enforceStringMap: r10, visibleSectionsMap: o10 }); + } + function UM(e20, t10, n10) { + if (n10) { + var r10 = Ro({}, e20.enforceStringMap); + return r10[t10] = n10, Ro(Ro({}, e20), {}, { enforceStringMap: r10 }); + } + if ("boolean" == typeof e20.enforceStringMap[t10]) { + var o10 = Ro({}, e20.enforceStringMap); + return delete o10[t10], Ro(Ro({}, e20), {}, { enforceStringMap: o10 }); + } + return e20; + } + function JM(e20, t10, n10) { + var r10 = rc(e20, n10), o10 = n10.reduce(function(e21, t11) { + return Ns(t11) ? KM(r10, e21, t11) : Is(t11) ? GM(r10, e21, t11) : Ds(t11) ? function(e23, t12, n11) { + var r11 = n11.path, o11 = tE(e23, t12.expandedMap), i10 = tE(e23, t12.enforceStringMap), a10 = tE(e23, t12.visibleSectionsMap); + Rs(n11.value) || Ts(n11.value) || delete o11[r11]; + Ts(n11.value) || delete a10[r11]; + (Rs(n11.value) || Ts(n11.value)) && delete i10[r11]; + return Ro(Ro({}, t12), {}, { expandedMap: o11, enforceStringMap: i10, visibleSectionsMap: a10 }); + }(r10, e21, t11) : qs(t11) || zs(t11) ? function(e23, t12, n11) { + if (zs(n11) && n11.from === n11.path) + return t12; + var r11 = function(e24) { + return n11.path + e24.substring(n11.from.length); + }, o11 = ZM(YM(t12.expandedMap, n11.from), r11), i10 = ZM(YM(t12.enforceStringMap, n11.from), r11), a10 = ZM(YM(t12.visibleSectionsMap, n11.from), r11), s10 = t12; + zs(n11) && (s10 = GM(e23, s10, { op: "remove", path: n11.from })); + s10 = KM(e23, s10, { op: "add", path: n11.path, value: null }); + var c10 = XM(s10.expandedMap, o11), l10 = XM(s10.enforceStringMap, i10), u10 = XM(s10.visibleSectionsMap, a10); + return Ro(Ro({}, t12), {}, { expandedMap: c10, enforceStringMap: l10, visibleSectionsMap: u10 }); + }(r10, e21, t11) : e21; + }, t10); + return { json: r10, documentState: o10 }; + } + function KM(e20, t10, n10) { + var r10 = dc(e20, n10.path), o10 = Qk(r10), i10 = Zs(o10); + if (Ts(Ws(e20, o10))) { + var a10 = Ul(vb(r10)), s10 = eE(t10.expandedMap, o10, a10, 1), c10 = eE(t10.enforceStringMap, o10, a10, 1), l10 = eE(t10.visibleSectionsMap, o10, a10, 1); + return l10 = nE(l10, i10, function(e21) { + return rE(e21, a10, 1); + }), Ro(Ro({}, t10), {}, { expandedMap: s10, enforceStringMap: c10, visibleSectionsMap: l10 }); + } + return t10; + } + function GM(e20, t10, n10) { + var r10 = dc(e20, n10.path), o10 = Qk(r10), i10 = Zs(o10), a10 = Ws(e20, o10), s10 = t10.expandedMap, c10 = t10.enforceStringMap, l10 = t10.visibleSectionsMap; + if (s10 = QM(s10, r10), c10 = QM(c10, r10), l10 = QM(l10, r10), Ts(a10)) { + var u10 = Ul(vb(r10)); + s10 = eE(s10, o10, u10, -1), c10 = eE(c10, o10, u10, -1), l10 = nE(l10 = eE(l10, o10, u10, -1), i10, function(e21) { + return rE(e21, u10, -1); + }); + } + return Ro(Ro({}, t10), {}, { expandedMap: s10, enforceStringMap: c10, visibleSectionsMap: l10 }); + } + function QM(e20, t10) { + var n10 = {}, r10 = Zs(t10); + return Object.keys(e20).forEach(function(t11) { + nc(t11, r10) || (n10[t11] = e20[t11]); + }), n10; + } + function YM(e20, t10) { + var n10 = {}; + return Object.keys(e20).forEach(function(r10) { + nc(r10, t10) && (n10[r10] = e20[r10]); + }), n10; + } + function XM(e20, t10) { + return Ro(Ro({}, e20), t10); + } + function ZM(e20, t10) { + var n10 = {}; + return Object.keys(e20).forEach(function(r10) { + var o10 = t10(r10); + n10[o10] = e20[r10]; + }), n10; + } + function eE(e20, t10, n10, r10) { + for (var o10 = t10.length, i10 = Zs(t10), a10 = [], s10 = 0, c10 = Object.keys(e20); s10 < c10.length; s10++) { + var l10 = c10[s10]; + if (nc(l10, i10)) { + var u10 = Xs(l10), f10 = Ul(u10[o10]); + f10 >= n10 && (u10[o10] = String(f10 + r10), a10.push({ oldPointer: l10, newPointer: Zs(u10), value: e20[l10] })); + } + } + if (0 === a10.length) + return e20; + var d10 = Ro({}, e20); + return a10.forEach(function(e21) { + delete d10[e21.oldPointer]; + }), a10.forEach(function(e21) { + d10[e21.newPointer] = e21.value; + }), d10; + } + function tE(e20, t10) { + var n10 = {}; + return Object.keys(t10).filter(function(t11) { + return Ys(e20, dc(e20, t11)); + }).forEach(function(e21) { + n10[e21] = t10[e21]; + }), n10; + } + function nE(e20, t10, n10) { + var r10 = e20[t10]; + if (t10 in e20) { + var o10 = n10(r10); + if (!Ow(r10, o10)) { + var i10 = Ro({}, e20); + return void 0 === o10 ? delete i10[t10] : i10[t10] = o10, i10; + } + } + return e20; + } + function rE(e20, t10, n10) { + return function(e21) { + var t11 = e21.slice(0), n11 = 1; + for (; n11 < t11.length; ) + t11[n11 - 1].end === t11[n11].start && (t11[n11 - 1] = { start: t11[n11 - 1].start, end: t11[n11].end }, t11.splice(n11)), n11++; + return t11; + }(e20.map(function(e21) { + return { start: e21.start > t10 ? e21.start + n10 : e21.start, end: e21.end > t10 ? e21.end + n10 : e21.end }; + })); + } + function oE(e20, t10, n10, r10) { + var o10 = t10 ? t10[n10] : void 0; + return "boolean" == typeof o10 ? o10 : function(e21, t11) { + return "string" == typeof e21 && "string" != typeof ru(e21, t11); + }(e20, r10); + } + function iE(e20, t10) { + var n10 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], r10 = e20.indexOf(t10); + return -1 !== r10 ? n10 ? e20.slice(r10) : e20.slice(r10 + 1) : []; + } + function aE(e20, t10) { + var n10 = []; + return function e21(r10, o10) { + n10.push(o10); + var i10 = Zs(o10); + if (r10 && true === t10.expandedMap[i10]) { + if (Ts(r10)) { + var a10 = LM(t10, i10); + FM(r10, a10, function(t11) { + e21(r10[t11], o10.concat(String(t11))); + }); + } + Rs(r10) && Object.keys(r10).forEach(function(t11) { + e21(r10[t11], o10.concat(t11)); + }); + } + }(e20, []), n10; + } + function sE(e20, t10) { + var n10 = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2], r10 = []; + return function e21(o10, i10) { + r10.push({ path: i10, type: Xa.value }); + var a10 = Zs(i10); + if (o10 && true === t10.expandedMap[a10]) { + if (n10 && r10.push({ path: i10, type: Xa.inside }), Ts(o10)) { + var s10 = LM(t10, a10); + FM(o10, s10, function(t11) { + var a11 = i10.concat(String(t11)); + e21(o10[t11], a11), n10 && r10.push({ path: a11, type: Xa.after }); + }); + } + if (Rs(o10)) + Object.keys(o10).forEach(function(t11) { + var a11 = i10.concat(t11); + r10.push({ path: a11, type: Xa.key }), e21(o10[t11], a11), n10 && r10.push({ path: a11, type: Xa.after }); + }); + } + }(e20, []), r10; + } + function cE(e20, t10, n10) { + var r10 = aE(e20, t10), o10 = r10.map(Zs).indexOf(Zs(n10)); + return -1 !== o10 && o10 < r10.length - 1 ? r10[o10 + 1] : null; + } + function lE(e20, t10, n10) { + var r10 = Ws(e20, n10); + return void 0 === r10 ? t10 : HM(e20, t10, n10, !X_({ json: r10 }, ms) ? fE : uE); + } + function uE(e20) { + return 0 === e20.length || 1 === e20.length && "0" === e20[0]; + } + function fE() { + return true; + } + function dE(e20) { + return e20 && e20.type === Ya.after || false; + } + function hE(e20) { + return e20 && e20.type === Ya.inside || false; + } + function vE(e20) { + return e20 && e20.type === Ya.key || false; + } + function pE(e20) { + return e20 && e20.type === Ya.value || false; + } + function mE(e20) { + return e20 && e20.type === Ya.multi || false; + } + function gE(e20) { + return mE(e20) && Ow(e20.focusPath, e20.anchorPath); + } + function yE(e20) { + return mE(e20) || dE(e20) || hE(e20) || vE(e20) || pE(e20); + } + function bE(e20) { + return e20 && e20.type === Ya.text || false; + } + function kE(e20, t10) { + var n10 = []; + return function(e21, t11, n11) { + if (!t11) + return; + var r10 = KE(t11), o10 = JE(t11); + if (Ow(r10, o10)) + return n11(r10); + if (void 0 === e21) + return; + var i10 = OE(r10, o10); + if (r10.length === i10.length || o10.length === i10.length) + return n11(i10); + var a10 = DE(r10, o10), s10 = xE(e21, a10), c10 = jE(e21, a10), l10 = UE(e21, a10, s10), u10 = UE(e21, a10, c10); + if (-1 === l10 || -1 === u10) + return; + var f10 = Ws(e21, i10); + if (Rs(f10)) { + for (var d10 = Object.keys(f10), h10 = l10; h10 <= u10; h10++) { + var v10 = n11(i10.concat(d10[h10])); + if (void 0 !== v10) + return v10; + } + return; + } + if (Ts(f10)) { + for (var p10 = l10; p10 <= u10; p10++) { + var m10 = n11(i10.concat(String(p10))); + if (void 0 !== m10) + return m10; + } + return; + } + throw new Error("Failed to create selection"); + }(e20, t10, function(e21) { + n10.push(e21); + }), n10; + } + function wE(e20) { + return hE(e20) ? e20.path : Qk(JE(e20)); + } + function xE(e20, t10) { + if (!mE(t10)) + return t10.path; + var n10 = UE(e20, t10, t10.anchorPath); + return UE(e20, t10, t10.focusPath) < n10 ? t10.focusPath : t10.anchorPath; + } + function jE(e20, t10) { + if (!mE(t10)) + return t10.path; + var n10 = UE(e20, t10, t10.anchorPath); + return UE(e20, t10, t10.focusPath) > n10 ? t10.focusPath : t10.anchorPath; + } + function SE(e20, t10) { + var n10 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], r10 = t10.selection; + if (!r10) + return null; + var o10 = n10 ? JE(r10) : xE(e20, r10), i10 = function(e21, t11, n11) { + var r11 = aE(e21, t11), o11 = r11.map(Zs), i11 = Zs(n11), a11 = o11.indexOf(i11); + return -1 !== a11 && a11 > 0 ? r11[a11 - 1] : null; + }(e20, t10, o10); + if (n10) + return hE(r10) || dE(r10) ? null !== i10 ? DE(o10, o10) : null : null !== i10 ? DE(KE(r10), i10) : null; + if (dE(r10)) + return RE(o10, false); + if (hE(r10)) + return RE(o10, false); + if (vE(r10)) { + if (null == i10 || 0 === i10.length) + return null; + var a10 = Ws(e20, Qk(i10)); + return Array.isArray(a10) || _w(i10) ? RE(i10, false) : TE(i10, false); + } + return pE(r10), null !== i10 ? RE(i10, false) : null; + } + function CE(e20, t10, n10) { + var r10 = t10.selection; + if (!r10) + return { caret: null, previous: null, next: null }; + var o10 = sE(e20, t10, n10), i10 = o10.findIndex(function(e21) { + return Ow(e21.path, JE(r10)) && String(e21.type) === String(r10.type); + }); + return { caret: -1 !== i10 ? o10[i10] : null, previous: -1 !== i10 && i10 > 0 ? o10[i10 - 1] : null, next: -1 !== i10 && i10 < o10.length - 1 ? o10[i10 + 1] : null }; + } + function $E(e20, t10) { + for (var n10 = aE(e20, t10), r10 = 0; r10 < n10.length - 1 && n10[r10 + 1].length > n10[r10].length; ) + r10++; + var o10 = n10[r10]; + return void 0 === o10 || 0 === o10.length || Array.isArray(Ws(e20, Qk(o10))) ? RE(o10, false) : TE(o10, false); + } + function _E(e20, t10) { + if (1 === t10.length) { + var n10 = ck(t10); + if ("replace" === n10.op) + return RE(dc(e20, n10.path), false); + } + if (!_w(t10) && t10.every(function(e21) { + return "move" === e21.op; + })) { + var r10 = ck(t10), o10 = t10.slice(1); + if ((qs(r10) || zs(r10)) && r10.from !== r10.path && o10.every(function(e21) { + return (qs(e21) || zs(e21)) && e21.from === e21.path; + })) + return TE(dc(e20, r10.path), false); + } + var i10 = t10.filter(function(e21) { + return "test" !== e21.op && "remove" !== e21.op && ("move" !== e21.op || e21.from !== e21.path) && "string" == typeof e21.path; + }).map(function(t11) { + return dc(e20, t11.path); + }); + return _w(i10) ? null : { type: Ya.multi, anchorPath: ck(i10), focusPath: vb(i10) }; + } + function OE(e20, t10) { + for (var n10 = 0; n10 < e20.length && n10 < t10.length && e20[n10] === t10[n10]; ) + n10++; + return e20.slice(0, n10); + } + function ME(e20) { + return vE(e20) || pE(e20) || gE(e20); + } + function EE(e20, t10) { + return ME(t10) && Ql(Ws(e20, JE(t10))) ? JE(t10) : Qk(JE(t10)); + } + function AE(e20, t10) { + if (e20.length < t10.length) + return false; + for (var n10 = 0; n10 < t10.length; n10++) + if (e20[n10] !== t10[n10]) + return false; + return true; + } + function PE(e20) { + var t10 = e20.selection; + return (vE(t10) || pE(t10)) && t10.edit ? Ro(Ro({}, e20), {}, { selection: Ro(Ro({}, t10), {}, { edit: false }) }) : e20; + } + function TE(e20, t10) { + return { type: Ya.key, path: e20, edit: t10 }; + } + function RE(e20, t10) { + return { type: Ya.value, path: e20, edit: t10 }; + } + function NE(e20) { + return { type: Ya.inside, path: e20 }; + } + function IE(e20) { + return { type: Ya.after, path: e20 }; + } + function DE(e20, t10) { + var n10 = OE(e20, t10), r10 = e20.length > n10.length && t10.length > n10.length; + return { type: Ya.multi, anchorPath: r10 ? n10.concat(e20[n10.length]) : n10, focusPath: r10 ? n10.concat(t10[n10.length]) : n10 }; + } + function qE(e20, t10, n10, r10) { + if (vE(t10)) + return String(vb(t10.path)); + if (pE(t10)) { + var o10, i10 = Ws(e20, t10.path); + return "string" == typeof i10 ? i10 : null !== (o10 = r10.stringify(i10, null, n10)) && void 0 !== o10 ? o10 : null; + } + if (mE(t10)) { + var a10; + if (_w(t10.focusPath)) + return null !== (a10 = r10.stringify(e20, null, n10)) && void 0 !== a10 ? a10 : null; + var s10 = wE(t10), c10 = Ws(e20, s10); + if (Array.isArray(c10)) { + if (gE(t10)) { + var l10, u10 = Ws(e20, t10.focusPath); + return null !== (l10 = r10.stringify(u10, null, n10)) && void 0 !== l10 ? l10 : null; + } + return kE(e20, t10).map(function(t11) { + var o11 = Ws(e20, t11); + return "".concat(r10.stringify(o11, null, n10), ","); + }).join("\n"); + } + return kE(e20, t10).map(function(t11) { + var o11 = vb(t11), i11 = Ws(e20, t11); + return "".concat(r10.stringify(o11), ": ").concat(r10.stringify(i11, null, n10), ","); + }).join("\n"); + } + return null; + } + function zE(e20) { + return (vE(e20) || pE(e20)) && true === e20.edit; + } + function BE(e20) { + return vE(e20) || pE(e20) || mE(e20); + } + function LE(e20) { + return vE(e20) || pE(e20) || gE(e20); + } + function FE(e20) { + switch (e20.type) { + case Xa.key: + return TE(e20.path, false); + case Xa.value: + return RE(e20.path, false); + case Xa.after: + return IE(e20.path); + case Xa.inside: + return NE(e20.path); + } + } + function VE(e20, t10, n10) { + switch (t10) { + case Ya.key: + return TE(n10, false); + case Ya.value: + return RE(n10, false); + case Ya.after: + return IE(n10); + case Ya.inside: + return NE(n10); + case Ya.multi: + case Ya.text: + return DE(n10, n10); + } + } + function HE(e20, t10, n10) { + return t10 && (WE(e20, t10, n10) || AE(mE(t10) ? Qk(t10.focusPath) : t10.path, n10)) ? t10 : null; + } + function WE(e20, t10, n10) { + if (void 0 === e20 || !t10) + return false; + if (vE(t10) || hE(t10) || dE(t10)) + return Ow(t10.path, n10); + if (pE(t10)) + return AE(n10, t10.path); + if (mE(t10)) { + var r10 = xE(e20, t10), o10 = jE(e20, t10), i10 = Qk(t10.focusPath); + if (!AE(n10, i10) || n10.length <= i10.length) + return false; + var a10 = UE(e20, t10, r10), s10 = UE(e20, t10, o10), c10 = UE(e20, t10, n10); + return -1 !== c10 && c10 >= a10 && c10 <= s10; + } + return false; + } + function UE(e20, t10, n10) { + var r10 = Qk(t10.focusPath); + if (!AE(n10, r10) || n10.length <= r10.length) + return -1; + var o10 = n10[r10.length], i10 = Ws(e20, r10); + if (Rs(i10)) + return Object.keys(i10).indexOf(o10); + if (Ts(i10)) { + var a10 = Ul(o10); + if (a10 < i10.length) + return a10; + } + return -1; + } + function JE(e20) { + return mE(e20) ? e20.focusPath : e20.path; + } + function KE(e20) { + return mE(e20) ? e20.anchorPath : e20.path; + } + function GE() { + for (var e20 = [], t10 = arguments.length, n10 = new Array(t10), r10 = 0; r10 < t10; r10++) + n10[r10] = arguments[r10]; + for (var o10 = 0, i10 = n10; o10 < i10.length; o10++) { + var a10 = i10[o10]; + if ("string" == typeof a10 && e20.push(a10), a10 && "object" === Ho(a10)) + for (var s10 in a10) + Object.hasOwnProperty.call(a10, s10) && a10[s10] && e20.push(s10); + } + return e20.join(" "); + } + function QE(e20, t10) { + return GE("jse-value", "jse-" + eu(e20, t10), { "jse-url": nu(e20), "jse-empty": "string" == typeof e20 && 0 === e20.length }); + } + function YE(e20) { + mi(e20, "svelte-zwlnit", ".jse-value.jse-string.svelte-zwlnit{color:var(--jse-value-color-string, #008000)}.jse-value.jse-object.svelte-zwlnit,.jse-value.jse-array.svelte-zwlnit{min-width:16px;color:var(--jse-delimiter-color, rgba(0, 0, 0, 0.38))}.jse-value.jse-number.svelte-zwlnit{color:var(--jse-value-color-number, #ee422e)}.jse-value.jse-boolean.svelte-zwlnit{color:var(--jse-value-color-boolean, #ff8c00)}.jse-value.jse-null.svelte-zwlnit{color:var(--jse-value-color-null, #004ed0)}.jse-value.jse-invalid.svelte-zwlnit{color:var(--jse-text-color, #4d4d4d)}.jse-value.jse-url.svelte-zwlnit{color:var(--jse-value-color-url, #008000);text-decoration:underline}div.jse-editable-div.svelte-zwlnit{min-width:2em;padding:0 5px;box-sizing:border-box;outline:none;border-radius:1px;vertical-align:top;cursor:text !important;word-break:normal;white-space:pre-wrap;overflow-wrap:anywhere}div.jse-editable-div.jse-short-text.svelte-zwlnit{overflow-wrap:normal}div.jse-editable-div[contenteditable=true].svelte-zwlnit{outline:var(--jse-edit-outline, 2px solid #656565);background:inherit !important;position:relative;border-radius:0;z-index:3}div.jse-editable-div.jse-empty.svelte-zwlnit:not(:focus){outline:1px dotted var(--jse-tag-background, rgba(0, 0, 0, 0.2));-moz-outline-radius:2px}div.jse-editable-div.jse-empty.svelte-zwlnit::after{pointer-events:none;color:var(--jse-tag-background, rgba(0, 0, 0, 0.2))}"); + } + function XE(e20) { + var t10, n10, r10, o10; + return { c: function() { + Ai(t10 = ji("div"), "role", "textbox"), Ai(t10, "tabindex", "0"), Ai(t10, "class", n10 = si(GE("jse-editable-div", e20[2], { "jse-short-text": e20[0] })) + " svelte-zwlnit"), Ai(t10, "contenteditable", "true"), Ai(t10, "spellcheck", "false"); + }, m: function(n11, i10) { + ki(n11, t10, i10), e20[13](t10), r10 || (o10 = [Oi(t10, "input", e20[3]), Oi(t10, "keydown", e20[4]), Oi(t10, "paste", e20[5]), Oi(t10, "blur", e20[6])], r10 = true); + }, p: function(e21, r11) { + 5 & jo(r11, 1)[0] && n10 !== (n10 = si(GE("jse-editable-div", e21[2], { "jse-short-text": e21[0] })) + " svelte-zwlnit") && Ai(t10, "class", n10); + }, i: Wo, o: Wo, d: function(n11) { + n11 && wi(t10), e20[13](null), r10 = false, Qo(o10); + } }; + } + function ZE(e20, t10, n10) { + var r10, o10, i10 = Da("jsoneditor:EditableDiv"), a10 = t10.value, s10 = t10.shortText, c10 = void 0 !== s10 && s10, l10 = t10.onChange, u10 = t10.onCancel, f10 = t10.onFind, d10 = t10.onPaste, h10 = void 0 === d10 ? Mf : d10, v10 = t10.onValueClass, p10 = void 0 === v10 ? function() { + return ""; + } : v10, m10 = false; + function g10() { + return r10 ? function(e21) { + return e21.replace(/\n$/, ""); + }(r10.innerText) : ""; + } + function y10(e21) { + r10 && n10(1, r10.innerText = gO(e21), r10); + } + function b10() { + var e21 = g10(); + "" === e21 && y10(""), n10(2, o10 = p10(e21)); + } + function k10() { + m10 = true, u10(); + } + return Gi(function() { + i10("onMount", { value: a10 }), y10(a10), r10 && (xO(r10), n10(1, r10.refresh = b10, r10), n10(1, r10.cancel = k10, r10)); + }), Qi(function() { + var e21 = g10(); + i10("onDestroy", { closed: m10, value: a10, newValue: e21 }), m10 || e21 === a10 || l10(e21, ns.no); + }), e20.$$set = function(e21) { + "value" in e21 && n10(7, a10 = e21.value), "shortText" in e21 && n10(0, c10 = e21.shortText), "onChange" in e21 && n10(8, l10 = e21.onChange), "onCancel" in e21 && n10(9, u10 = e21.onCancel), "onFind" in e21 && n10(10, f10 = e21.onFind), "onPaste" in e21 && n10(11, h10 = e21.onPaste), "onValueClass" in e21 && n10(12, p10 = e21.onValueClass); + }, e20.$$.update = function() { + 4224 & e20.$$.dirty && n10(2, o10 = p10(a10)); + }, [c10, r10, o10, b10, function(e21) { + e21.stopPropagation(); + var t11 = PO(e21); + if ("Escape" === t11 && k10(), "Enter" === t11 || "Tab" === t11) { + m10 = true; + var n11 = g10(); + l10(n11, ns.nextInside); + } + "Ctrl+F" === t11 && (e21.preventDefault(), f10(false)), "Ctrl+H" === t11 && (e21.preventDefault(), f10(true)); + }, function(e21) { + if (e21.stopPropagation(), h10 && e21.clipboardData) { + var t11 = e21.clipboardData.getData("text/plain"); + h10(t11); + } + }, function() { + var e21 = document.hasFocus(), t11 = g10(); + i10("handleBlur", { hasFocus: e21, closed: m10, value: a10, newValue: t11 }), document.hasFocus() && !m10 && (m10 = true, t11 !== a10 && l10(t11, ns.self)); + }, a10, l10, u10, f10, h10, p10, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(1, r10 = e21); + }); + }]; + } + var eA = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, ZE, XE, Zo, { value: 7, shortText: 0, onChange: 8, onCancel: 9, onFind: 10, onPaste: 11, onValueClass: 12 }, YE), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function tA(e20) { + var t10, n10; + return t10 = new eA({ props: { value: e20[1].escapeValue(e20[0]), onChange: e20[3], onCancel: e20[4], onPaste: e20[5], onFind: e20[2], onValueClass: e20[6] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = jo(n11, 1)[0], o10 = {}; + 3 & r10 && (o10.value = e21[1].escapeValue(e21[0])), 4 & r10 && (o10.onFind = e21[2]), t10.$set(o10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function nA(e20, t10, n10) { + var r10 = t10.path, o10 = t10.value, i10 = t10.parser, a10 = t10.normalization, s10 = t10.enforceString, c10 = t10.onPatch, l10 = t10.onPasteJson, u10 = t10.onSelect, f10 = t10.onFind, d10 = t10.focus, h10 = t10.findNextInside; + function v10(e21) { + return s10 ? e21 : ru(e21, i10); + } + return e20.$$set = function(e21) { + "path" in e21 && n10(7, r10 = e21.path), "value" in e21 && n10(0, o10 = e21.value), "parser" in e21 && n10(8, i10 = e21.parser), "normalization" in e21 && n10(1, a10 = e21.normalization), "enforceString" in e21 && n10(9, s10 = e21.enforceString), "onPatch" in e21 && n10(10, c10 = e21.onPatch), "onPasteJson" in e21 && n10(11, l10 = e21.onPasteJson), "onSelect" in e21 && n10(12, u10 = e21.onSelect), "onFind" in e21 && n10(2, f10 = e21.onFind), "focus" in e21 && n10(13, d10 = e21.focus), "findNextInside" in e21 && n10(14, h10 = e21.findNextInside); + }, [o10, a10, f10, function(e21, t11) { + c10([{ op: "replace", path: Zs(r10), value: v10(a10.unescapeValue(e21)) }], function(e23, n11) { + if (!n11.selection || Ow(r10, JE(n11.selection))) { + var o11 = t11 === ns.nextInside ? h10(r10) : RE(r10, false); + return { state: Ro(Ro({}, n11), {}, { selection: o11 }) }; + } + }), d10(); + }, function() { + u10(RE(r10, false)), d10(); + }, function(e21) { + try { + var t11 = i10.parse(e21); + Ql(t11) && l10({ path: r10, contents: t11 }); + } catch (e23) { + } + }, function(e21) { + return QE(v10(a10.unescapeValue(e21)), i10); + }, r10, i10, s10, c10, l10, u10, d10, h10]; + } + var rA = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, nA, tA, Zo, { path: 7, value: 0, parser: 8, normalization: 1, enforceString: 9, onPatch: 10, onPasteJson: 11, onSelect: 12, onFind: 2, focus: 13, findNextInside: 14 }), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function oA(e20, t10, n10) { + var r10 = Qk(t10), o10 = Ws(e20, r10); + if (Ts(o10)) { + var i10 = Ul(vb(t10)); + return n10.map(function(e21, t11) { + return { op: "add", path: Zs(r10.concat(String(i10 + t11))), value: e21.value }; + }); + } + if (Rs(o10)) { + var a10 = vb(t10), s10 = Object.keys(o10), c10 = void 0 !== a10 ? iE(s10, a10, true) : []; + return [].concat(Bo(n10.map(function(e21) { + var t11 = eM(e21.key, s10); + return { op: "add", path: Zs(r10.concat(t11)), value: e21.value }; + })), Bo(c10.map(function(e21) { + return uA(r10, e21); + }))); + } + throw new Error("Cannot create insert operations: parent must be an Object or Array"); + } + function iA(e20, t10, n10) { + var r10 = Ws(e20, t10); + if (Array.isArray(r10)) { + var o10 = r10.length; + return n10.map(function(e21, n11) { + return { op: "add", path: Zs(t10.concat(String(o10 + n11))), value: e21.value }; + }); + } + return n10.map(function(e21) { + var n11 = eM(e21.key, Object.keys(r10)); + return { op: "add", path: Zs(t10.concat(n11)), value: e21.value }; + }); + } + function aA(e20, t10, n10, r10) { + var o10 = eM(r10, t10.filter(function(e21) { + return e21 !== n10; + })), i10 = iE(t10, n10, false); + return [{ op: "move", from: Zs(e20.concat(n10)), path: Zs(e20.concat(o10)) }].concat(Bo(i10.map(function(t11) { + return uA(e20, t11); + }))); + } + function sA(e20, t10) { + var n10 = vb(t10); + if (_w(n10)) + throw new Error("Cannot duplicate root object"); + var r10 = Qk(n10), o10 = vb(n10), i10 = Ws(e20, r10); + if (Ts(i10)) { + var a10 = vb(t10), s10 = a10 ? Ul(vb(a10)) + 1 : 0; + return Bo(t10.map(function(e21, t11) { + return { op: "copy", from: Zs(e21), path: Zs(r10.concat(String(t11 + s10))) }; + })); + } + if (Rs(i10)) { + var c10 = Object.keys(i10), l10 = void 0 !== o10 ? iE(c10, o10, false) : []; + return [].concat(Bo(t10.map(function(e21) { + var t11 = eM(vb(e21), c10); + return { op: "copy", from: Zs(e21), path: Zs(r10.concat(t11)) }; + })), Bo(l10.map(function(e21) { + return uA(r10, e21); + }))); + } + throw new Error("Cannot create duplicate operations: parent must be an Object or Array"); + } + function cA(e20, t10, n10, r10) { + if (vE(t10)) { + var o10 = B_(n10, r10), i10 = Qk(t10.path), a10 = Ws(e20, i10); + return aA(i10, Object.keys(a10), vb(t10.path), "string" == typeof o10 ? o10 : n10); + } + if (pE(t10) || mE(t10) && _w(t10.focusPath)) + try { + return [{ op: "replace", path: Zs(JE(t10)), value: L_(n10, function(e21) { + return z_(e21, r10); + }) }]; + } catch (e21) { + return [{ op: "replace", path: Zs(JE(t10)), value: n10 }]; + } + if (mE(t10)) { + var s10 = fA(n10, r10); + return function(e21, t11, n11) { + var r11 = Qk(ck(t11)), o11 = Ws(e21, r11); + if (Ts(o11)) { + var i11 = ck(t11), a11 = i11 ? Ul(vb(i11)) : 0; + return [].concat(Bo(lA(t11)), Bo(n11.map(function(e23, t12) { + return { op: "add", path: Zs(r11.concat(String(t12 + a11))), value: e23.value }; + }))); + } + if (Rs(o11)) { + var s11 = vb(t11), c11 = Qk(s11), l11 = vb(s11), u11 = Object.keys(o11), f11 = void 0 !== l11 ? iE(u11, l11, false) : [], d11 = new Set(t11.map(function(e23) { + return vb(e23); + })), h11 = u11.filter(function(e23) { + return !d11.has(e23); + }); + return [].concat(Bo(lA(t11)), Bo(n11.map(function(e23) { + var t12 = eM(e23.key, h11); + return { op: "add", path: Zs(c11.concat(t12)), value: e23.value }; + })), Bo(f11.map(function(e23) { + return uA(c11, e23); + }))); + } + throw new Error("Cannot create replace operations: parent must be an Object or Array"); + }(e20, kE(e20, t10), s10); + } + if (dE(t10)) { + var c10 = fA(n10, r10), l10 = t10.path, u10 = Qk(l10), f10 = Ws(e20, u10); + if (Ts(f10)) { + var d10 = Ul(vb(l10)); + return oA(e20, u10.concat(String(d10 + 1)), c10); + } + if (Rs(f10)) { + var h10 = String(vb(l10)), v10 = Object.keys(f10); + if (_w(v10) || vb(v10) === h10) + return iA(e20, u10, c10); + var p10 = v10.indexOf(h10), m10 = v10[p10 + 1]; + return oA(e20, u10.concat(m10), c10); + } + throw new Error("Cannot create insert operations: parent must be an Object or Array"); + } + if (hE(t10)) { + var g10 = fA(n10, r10), y10 = t10.path, b10 = Ws(e20, y10); + if (Ts(b10)) + return oA(e20, y10.concat("0"), g10); + if (Rs(b10)) { + var k10 = Object.keys(b10); + if (_w(k10)) + return iA(e20, y10, g10); + var w10 = ck(k10); + return oA(e20, y10.concat(w10), g10); + } + throw new Error("Cannot create insert operations: parent must be an Object or Array"); + } + throw new Error("Cannot insert: unsupported type of selection " + JSON.stringify(t10)); + } + function lA(e20) { + return e20.map(function(e21) { + return { op: "remove", path: Zs(e21) }; + }).reverse(); + } + function uA(e20, t10) { + return { op: "move", from: Zs(e20.concat(t10)), path: Zs(e20.concat(t10)) }; + } + function fA(e20, t10) { + var n10 = /^\s*{/.test(e20), r10 = /^\s*\[/.test(e20), o10 = B_(e20, t10), i10 = void 0 !== o10 ? o10 : L_(e20, function(e21) { + return z_(e21, t10); + }); + return n10 && Gl(i10) || r10 && Array.isArray(i10) ? [{ key: "New item", value: i10 }] : Array.isArray(i10) ? i10.map(function(e21, t11) { + return { key: "New item " + t11, value: e21 }; + }) : Gl(i10) ? Object.keys(i10).map(function(e21) { + return { key: e21, value: i10[e21] }; + }) : [{ key: "New item", value: i10 }]; + } + function dA(e20, t10) { + if (vE(t10)) { + var n10 = Qk(t10.path), r10 = Ws(e20, n10), o10 = aA(n10, Object.keys(r10), vb(t10.path), ""); + return { operations: o10, newSelection: _E(e20, o10) }; + } + if (pE(t10)) + return { operations: [{ op: "replace", path: Zs(t10.path), value: "" }], newSelection: t10 }; + if (mE(t10)) { + var i10 = kE(e20, t10), a10 = lA(i10), s10 = vb(i10); + if (_w(s10)) { + return { operations: [{ op: "replace", path: "", value: "" }], newSelection: RE([], false) }; + } + var c10 = Qk(s10), l10 = Ws(e20, c10); + if (Ts(l10)) { + var u10 = Ul(vb(ck(i10))); + return { operations: a10, newSelection: 0 === u10 ? NE(c10) : IE(c10.concat(String(u10 - 1))) }; + } + if (Rs(l10)) { + var f10 = Object.keys(l10), d10 = vb(ck(i10)), h10 = f10.indexOf(d10), v10 = f10[h10 - 1]; + return { operations: a10, newSelection: 0 === h10 ? NE(c10) : IE(c10.concat(v10)) }; + } + throw new Error("Cannot create remove operations: parent must be an Object or Array"); + } + throw new Error("Cannot remove: unsupported type of selection " + JSON.stringify(t10)); + } + function hA(e20, t10) { + return vc(e20, t10, { before: function(e21, t11, n10) { + if (Is(t11)) { + var r10 = Xs(t11.path); + return { revertOperations: [].concat(Bo(n10), Bo(vA(e21, r10))) }; + } + if (zs(t11)) { + var o10 = Xs(t11.from); + return { revertOperations: [].concat(Bo(n10), Bo(vA(e21, o10))) }; + } + return { document: e21 }; + } }); + } + function vA(e20, t10) { + var n10 = Qk(t10), r10 = vb(t10), o10 = Ws(e20, n10); + return Rs(o10) ? iE(Object.keys(o10), r10, false).map(function(e21) { + return uA(n10, e21); + }) : []; + } + function pA(e20) { + var t10 = e20.activeIndex < e20.items.length - 1 ? e20.activeIndex + 1 : e20.items.length > 0 ? 0 : -1, n10 = e20.items[t10], r10 = e20.items.map(function(e21, n11) { + return Ro(Ro({}, e21), {}, { active: n11 === t10 }); + }); + return Ro(Ro({}, e20), {}, { items: r10, itemsMap: Ak(r10, function(e21) { + return Zs(e21.path); + }), activeItem: n10, activeIndex: t10 }); + } + function mA(e20) { + var t10 = e20.activeIndex > 0 ? e20.activeIndex - 1 : e20.items.length - 1, n10 = e20.items[t10], r10 = e20.items.map(function(e21, n11) { + return Ro(Ro({}, e21), {}, { active: n11 === t10 }); + }); + return Ro(Ro({}, e20), {}, { items: r10, itemsMap: Ak(r10, function(e21) { + return Zs(e21.path); + }), activeItem: n10, activeIndex: t10 }); + } + function gA(e20, t10) { + var n10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1 / 0, r10 = [], o10 = []; + function i10(e21) { + r10.length < n10 && r10.push(e21); + } + "string" == typeof e20 && "" !== e20 && function e21(t11, a10) { + if (Ts(a10)) { + var s10 = o10.length; + o10.push("0"); + for (var c10 = 0; c10 < a10.length; c10++) + if (o10[s10] = String(c10), e21(t11, a10[c10]), r10.length >= n10) + return; + o10.pop(); + } else if (Rs(a10)) { + var l10 = Object.keys(a10), u10 = o10.length; + o10.push(""); + for (var f10 = 0, d10 = l10; f10 < d10.length; f10++) { + var h10 = d10[f10]; + if (o10[u10] = h10, yA(h10, t11, o10, es.key, i10), e21(t11, a10[h10]), r10.length >= n10) + return; + } + o10.pop(); + } else + yA(String(a10), t11, o10, es.value, i10); + }(e20.toLowerCase(), t10); + return r10; + } + function yA(e20, t10, n10, r10, o10) { + var i10 = e20.toLowerCase(), a10 = 0, s10 = -1, c10 = -1; + do { + -1 !== (c10 = i10.indexOf(t10, s10)) && (s10 = c10 + t10.length, o10({ path: n10.slice(0), field: r10, fieldIndex: a10, start: c10, end: s10 }), a10++); + } while (-1 !== c10); + } + function bA(e20, t10, n10, r10) { + return e20.substring(0, n10) + t10 + e20.substring(r10); + } + function kA(e20, t10, n10) { + var r10 = e20; + return Ab(n10, function(e21) { + r10 = bA(r10, t10, e21.start, e21.end); + }), r10; + } + function wA(e20, t10, n10, r10, o10) { + var i10 = r10.field, a10 = r10.path, s10 = r10.start, c10 = r10.end; + if (i10 === es.key) { + var l10 = Qk(a10), u10 = Ws(e20, l10), f10 = vb(a10), d10 = aA(l10, Object.keys(u10), f10, bA(f10, n10, s10, c10)); + return { newSelection: _E(e20, d10), operations: d10 }; + } + if (i10 === es.value) { + var h10 = Ws(e20, a10); + if (void 0 === h10) + throw new Error("Cannot replace: path not found ".concat(Zs(a10))); + var v10 = "string" == typeof h10 ? h10 : String(h10), p10 = Zs(a10), m10 = oE(h10, t10.enforceStringMap, p10, o10), g10 = bA(v10, n10, s10, c10), y10 = [{ op: "replace", path: Zs(a10), value: m10 ? g10 : ru(g10, o10) }]; + return { newSelection: _E(e20, y10), operations: y10 }; + } + throw new Error("Cannot replace: unknown type of search result field ".concat(i10)); + } + function xA(e20, t10, n10, r10, o10) { + for (var i10 = gA(n10, e20, 1 / 0), a10 = [], s10 = 0; s10 < i10.length; s10++) { + var c10 = i10[s10 - 1], l10 = i10[s10]; + 0 !== s10 && l10.field === c10.field && Ow(l10.path, c10.path) ? vb(a10).items.push(l10) : a10.push({ path: l10.path, field: l10.field, items: [l10] }); + } + a10.sort(function(e21, t11) { + return e21.field !== t11.field ? e21.field === es.key ? 1 : -1 : t11.path.length - e21.path.length; + }); + var u10 = [], f10 = null; + return a10.forEach(function(n11) { + var i11 = n11.field, a11 = n11.path, s11 = n11.items; + if (i11 === es.key) { + var c11 = Qk(a11), l11 = Ws(e20, c11), d10 = vb(a11), h10 = aA(c11, Object.keys(l11), d10, kA(d10, r10, s11)); + u10 = u10.concat(h10), f10 = _E(e20, h10); + } else { + if (i11 !== es.value) + throw new Error("Cannot replace: unknown type of search result field ".concat(i11)); + var v10 = Ws(e20, a11); + if (void 0 === v10) + throw new Error("Cannot replace: path not found ".concat(Zs(a11))); + var p10 = "string" == typeof v10 ? v10 : String(v10), m10 = Zs(a11), g10 = oE(v10, t10.enforceStringMap, m10, o10), y10 = kA(p10, r10, s11), b10 = [{ op: "replace", path: Zs(a11), value: g10 ? y10 : ru(y10, o10) }]; + u10 = u10.concat(b10), f10 = _E(e20, b10); + } + }), { operations: u10, newSelection: f10 }; + } + function jA(e20) { + return e20.path.concat(e20.field, String(e20.fieldIndex)); + } + function SA(e20, t10) { + var n10, r10 = null == e20 || null === (n10 = e20[t10]) || void 0 === n10 ? void 0 : n10.filter(function(e21) { + return e21.field === es.key; + }); + if (r10 && 0 !== r10.length) + return r10; + } + function CA(e20, t10) { + var n10, r10 = null == e20 || null === (n10 = e20[t10]) || void 0 === n10 ? void 0 : n10.filter(function(e21) { + return e21.field === es.value; + }); + if (r10 && 0 !== r10.length) + return r10; + } + function $A(e20) { + mi(e20, "svelte-1n1l5ny", ".jse-highlight.svelte-1n1l5ny{background-color:var(--jse-search-match-color, #ffe665);outline:var(--jse-search-match-outline, 1px solid #ffd700)}.jse-highlight.jse-active.svelte-1n1l5ny{background-color:var(--jse-search-match-active-color, #ffd700);outline:var(--jse-search-match-active-outline, 1px solid #e1be00)}"); + } + function _A(e20, t10, n10) { + var r10 = e20.slice(); + return r10[3] = t10[n10], r10; + } + function OA(e20) { + var t10, n10, r10 = gO(e20[3].text) + ""; + return { c: function() { + t10 = ji("span"), n10 = Ci(r10), Ai(t10, "class", "jse-highlight svelte-1n1l5ny"), zi(t10, "jse-active", e20[3].active); + }, m: function(e21, r11) { + ki(e21, t10, r11), pi(t10, n10); + }, p: function(e21, o10) { + 1 & o10 && r10 !== (r10 = gO(e21[3].text) + "") && Ni(n10, r10), 1 & o10 && zi(t10, "jse-active", e21[3].active); + }, d: function(e21) { + e21 && wi(t10); + } }; + } + function MA(e20) { + var t10, n10 = e20[3].text + ""; + return { c: function() { + t10 = Ci(n10); + }, m: function(e21, n11) { + ki(e21, t10, n11); + }, p: function(e21, r10) { + 1 & r10 && n10 !== (n10 = e21[3].text + "") && Ni(t10, n10); + }, d: function(e21) { + e21 && wi(t10); + } }; + } + function EA(e20) { + var t10; + function n10(e21, t11) { + return "normal" === e21[3].type ? MA : OA; + } + var r10 = n10(e20), o10 = r10(e20); + return { c: function() { + o10.c(), t10 = _i(); + }, m: function(e21, n11) { + o10.m(e21, n11), ki(e21, t10, n11); + }, p: function(e21, i10) { + r10 === (r10 = n10(e21)) && o10 ? o10.p(e21, i10) : (o10.d(1), (o10 = r10(e21)) && (o10.c(), o10.m(t10.parentNode, t10))); + }, d: function(e21) { + e21 && wi(t10), o10.d(e21); + } }; + } + function AA(e20) { + for (var t10, n10 = Ca(e20[0]), r10 = [], o10 = 0; o10 < n10.length; o10 += 1) + r10[o10] = EA(_A(e20, n10, o10)); + return { c: function() { + for (var e21 = 0; e21 < r10.length; e21 += 1) + r10[e21].c(); + t10 = _i(); + }, m: function(e21, n11) { + for (var o11 = 0; o11 < r10.length; o11 += 1) + r10[o11] && r10[o11].m(e21, n11); + ki(e21, t10, n11); + }, p: function(e21, o11) { + var i10 = jo(o11, 1)[0]; + if (1 & i10) { + var a10; + for (n10 = Ca(e21[0]), a10 = 0; a10 < n10.length; a10 += 1) { + var s10 = _A(e21, n10, a10); + r10[a10] ? r10[a10].p(s10, i10) : (r10[a10] = EA(s10), r10[a10].c(), r10[a10].m(t10.parentNode, t10)); + } + for (; a10 < r10.length; a10 += 1) + r10[a10].d(1); + r10.length = n10.length; + } + }, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10), xi(r10, e21); + } }; + } + function PA(e20, t10, n10) { + var r10, o10 = t10.text, i10 = t10.searchResultItems; + return e20.$$set = function(e21) { + "text" in e21 && n10(1, o10 = e21.text), "searchResultItems" in e21 && n10(2, i10 = e21.searchResultItems); + }, e20.$$.update = function() { + 6 & e20.$$.dirty && n10(0, r10 = function(e21, t11) { + var n11, r11 = [], o11 = 0, i11 = bo(t11); + try { + for (i11.s(); !(n11 = i11.n()).done; ) { + var a10 = n11.value, s10 = e21.slice(o11, a10.start); + "" !== s10 && r11.push({ type: "normal", text: s10, active: false }); + var c10 = e21.slice(a10.start, a10.end); + r11.push({ type: "highlight", text: c10, active: a10.active }), o11 = a10.end; + } + } catch (e23) { + i11.e(e23); + } finally { + i11.f(); + } + var l10 = vb(t11); + return l10 && l10.end < e21.length && r11.push({ type: "normal", text: e21.slice(l10.end), active: false }), r11; + }(String(o10), i10)); + }, [r10, o10, i10]; + } + var TA = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, PA, AA, Xo, { text: 1, searchResultItems: 2 }, $A), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function RA(e20) { + mi(e20, "svelte-1v88515", '.jse-value.jse-string.svelte-1v88515{color:var(--jse-value-color-string, #008000)}.jse-value.jse-object.svelte-1v88515,.jse-value.jse-array.svelte-1v88515{min-width:16px;color:var(--jse-delimiter-color, rgba(0, 0, 0, 0.38))}.jse-value.jse-number.svelte-1v88515{color:var(--jse-value-color-number, #ee422e)}.jse-value.jse-boolean.svelte-1v88515{color:var(--jse-value-color-boolean, #ff8c00)}.jse-value.jse-null.svelte-1v88515{color:var(--jse-value-color-null, #004ed0)}.jse-value.jse-invalid.svelte-1v88515{color:var(--jse-text-color, #4d4d4d)}.jse-value.jse-url.svelte-1v88515{color:var(--jse-value-color-url, #008000);text-decoration:underline}.jse-value.svelte-1v88515{min-width:2em;padding:0 5px;box-sizing:border-box;outline:none;border-radius:1px;vertical-align:top;cursor:var(--jse-contents-cursor, pointer);word-break:normal;overflow-wrap:anywhere;white-space:pre-wrap}.jse-value.svelte-1v88515:hover{background:var(--jse-hover-background-color, rgba(0, 0, 0, 0.06))}.jse-value.jse-empty.svelte-1v88515{min-width:4em;outline:1px dotted var(--jse-tag-background, rgba(0, 0, 0, 0.2));-moz-outline-radius:2px}.jse-value.jse-empty.svelte-1v88515::after{pointer-events:none;color:var(--jse-tag-background, rgba(0, 0, 0, 0.2));content:"value"}'); + } + function NA(e20) { + var t10, n10 = gO(e20[1].escapeValue(e20[0])) + ""; + return { c: function() { + t10 = Ci(n10); + }, m: function(e21, n11) { + ki(e21, t10, n11); + }, p: function(e21, r10) { + 3 & r10 && n10 !== (n10 = gO(e21[1].escapeValue(e21[0])) + "") && Ni(t10, n10); + }, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function IA(e20) { + var t10, n10; + return t10 = new TA({ props: { text: e20[1].escapeValue(e20[0]), searchResultItems: e20[3] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 3 & n11 && (r10.text = e21[1].escapeValue(e21[0])), 8 & n11 && (r10.searchResultItems = e21[3]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function DA(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10 = [IA, NA], u10 = []; + function f10(e21, t11) { + return e21[3] ? 0 : 1; + } + return n10 = f10(e20), r10 = u10[n10] = l10[n10](e20), { c: function() { + t10 = ji("div"), r10.c(), Ai(t10, "role", "button"), Ai(t10, "tabindex", "-1"), Ai(t10, "data-type", "selectable-value"), Ai(t10, "class", o10 = si(QE(e20[0], e20[2])) + " svelte-1v88515"), Ai(t10, "title", i10 = e20[4] ? "Ctrl+Click or Ctrl+Enter to open url in new window" : null); + }, m: function(r11, o11) { + ki(r11, t10, o11), u10[n10].m(t10, null), a10 = true, s10 || (c10 = [Oi(t10, "click", e20[5]), Oi(t10, "dblclick", e20[6])], s10 = true); + }, p: function(e21, s11) { + var c11 = jo(s11, 1)[0], d10 = n10; + (n10 = f10(e21)) === d10 ? u10[n10].p(e21, c11) : (ba(), xa(u10[d10], 1, 1, function() { + u10[d10] = null; + }), ka(), (r10 = u10[n10]) ? r10.p(e21, c11) : (r10 = u10[n10] = l10[n10](e21)).c(), wa(r10, 1), r10.m(t10, null)), (!a10 || 5 & c11 && o10 !== (o10 = si(QE(e21[0], e21[2])) + " svelte-1v88515")) && Ai(t10, "class", o10), (!a10 || 16 & c11 && i10 !== (i10 = e21[4] ? "Ctrl+Click or Ctrl+Enter to open url in new window" : null)) && Ai(t10, "title", i10); + }, i: function(e21) { + a10 || (wa(r10), a10 = true); + }, o: function(e21) { + xa(r10), a10 = false; + }, d: function(e21) { + e21 && wi(t10), u10[n10].d(), s10 = false, Qo(c10); + } }; + } + function qA(e20, t10, n10) { + var r10, o10 = t10.path, i10 = t10.value, a10 = t10.readOnly, s10 = t10.normalization, c10 = t10.parser, l10 = t10.onSelect, u10 = t10.searchResultItems; + return e20.$$set = function(e21) { + "path" in e21 && n10(7, o10 = e21.path), "value" in e21 && n10(0, i10 = e21.value), "readOnly" in e21 && n10(8, a10 = e21.readOnly), "normalization" in e21 && n10(1, s10 = e21.normalization), "parser" in e21 && n10(2, c10 = e21.parser), "onSelect" in e21 && n10(9, l10 = e21.onSelect), "searchResultItems" in e21 && n10(3, u10 = e21.searchResultItems); + }, e20.$$.update = function() { + 1 & e20.$$.dirty && n10(4, r10 = nu(i10)); + }, [i10, s10, c10, u10, r10, function(e21) { + "string" == typeof i10 && r10 && e21.ctrlKey && (e21.preventDefault(), e21.stopPropagation(), window.open(i10, "_blank")); + }, function(e21) { + a10 || (e21.preventDefault(), l10(RE(o10, true))); + }, o10, a10, l10]; + } + var zA = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, qA, DA, Zo, { path: 7, value: 0, readOnly: 8, normalization: 1, parser: 2, onSelect: 9, searchResultItems: 3 }, RA), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function BA(e20) { + mi(e20, "svelte-1sftg37", '.jse-tooltip.svelte-1sftg37{font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);line-height:normal;padding:calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px);border-radius:3px;background:var(--jse-context-menu-background, #656565);color:var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff));white-space:nowrap;box-shadow:var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24))}'); + } + function LA(e20) { + var t10, n10; + return { c: function() { + t10 = ji("div"), n10 = Ci(e20[0]), Ai(t10, "class", "jse-tooltip svelte-1sftg37"); + }, m: function(e21, r10) { + ki(e21, t10, r10), pi(t10, n10); + }, p: function(e21, t11) { + 1 & jo(t11, 1)[0] && Ni(n10, e21[0]); + }, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function FA(e20, t10, n10) { + var r10 = t10.text; + return e20.$$set = function(e21) { + "text" in e21 && n10(0, r10 = e21.text); + }, [r10]; + } + var VA = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, FA, LA, Xo, { text: 0 }, BA), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function HA(e20, t10) { + var n10, r10 = t10.text, o10 = t10.openAbsolutePopup, i10 = t10.closeAbsolutePopup; + function a10() { + n10 = o10(VA, { text: r10 }, { position: "top", width: 10 * r10.length, offsetTop: 3, anchor: e20, closeOnOuterClick: true }); + } + function s10() { + i10(n10); + } + return e20.addEventListener("mouseenter", a10), e20.addEventListener("mouseleave", s10), { destroy: function() { + e20.removeEventListener("mouseenter", a10), e20.removeEventListener("mouseleave", s10); + } }; + } + function WA(e20) { + mi(e20, "svelte-1sqrs1u", ".jse-timestamp.svelte-1sqrs1u{padding:0;margin:0;vertical-align:middle;display:inline-flex;color:var(--jse-value-color-number, #ee422e)}"); + } + function UA(e20) { + var t10, n10, r10, o10, i10, a10; + return n10 = new jM({ props: { data: sM } }), { c: function() { + t10 = ji("div"), Pa(n10.$$.fragment), Ai(t10, "class", "jse-timestamp svelte-1sqrs1u"); + }, m: function(s10, c10) { + ki(s10, t10, c10), Ta(n10, t10, null), o10 = true, i10 || (a10 = ci(r10 = HA.call(null, t10, Ro({ text: e20[0] }, e20[1]))), i10 = true); + }, p: function(e21, t11) { + var n11 = jo(t11, 1)[0]; + r10 && Yo(r10.update) && 1 & n11 && r10.update.call(null, Ro({ text: e21[0] }, e21[1])); + }, i: function(e21) { + o10 || (wa(n10.$$.fragment, e21), o10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), o10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(n10), i10 = false, a10(); + } }; + } + function JA(e20, t10, n10) { + var r10, o10 = Zi("absolute-popup"), i10 = t10.value; + return e20.$$set = function(e21) { + "value" in e21 && n10(2, i10 = e21.value); + }, e20.$$.update = function() { + 4 & e20.$$.dirty && n10(0, r10 = "Time: ".concat(new Date(i10).toString())); + }, [r10, o10, i10]; + } + var KA = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, JA, UA, Zo, { value: 2 }, WA), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function GA(e20) { + var t10 = e20.path, n10 = e20.value, r10 = e20.readOnly, o10 = e20.enforceString, i10 = e20.searchResultItems, a10 = e20.isEditing, s10 = e20.parser, c10 = e20.normalization, l10 = e20.onPatch, u10 = e20.onPasteJson, f10 = e20.onSelect, d10 = e20.onFind, h10 = e20.findNextInside, v10 = e20.focus, p10 = []; + return !a10 && /* @__PURE__ */ function(e21) { + return true === e21 || false === e21; + }(n10) && p10.push({ component: _M, props: { path: t10, value: n10, readOnly: r10, onPatch: l10, focus: v10 } }), !a10 && function(e21) { + return "string" == typeof e21 && e21.length < 99 && !!Xl(e21); + }(n10) && p10.push({ component: NM, props: { path: t10, value: n10, readOnly: r10, onPatch: l10, focus: v10 } }), a10 && p10.push({ component: rA, props: { path: t10, value: n10, enforceString: o10, parser: s10, normalization: c10, onPatch: l10, onPasteJson: u10, onSelect: f10, onFind: d10, findNextInside: h10, focus: v10 } }), a10 || p10.push({ component: zA, props: { path: t10, value: n10, readOnly: r10, parser: s10, normalization: c10, searchResultItems: i10, onSelect: f10 } }), !a10 && Yl(n10) && p10.push({ component: KA, props: { value: n10 } }), p10; + } + var QA = { prefix: "fas", iconName: "trash-can", icon: [448, 512, [61460, "trash-alt"], "f2ed", "M135.2 17.7C140.6 6.8 151.7 0 163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm96 64c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16z"] }; + var YA = { prefix: "fas", iconName: "caret-right", icon: [256, 512, [], "f0da", "M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z"] }; + var XA = { prefix: "fas", iconName: "paste", icon: [512, 512, ["file-clipboard"], "f0ea", "M160 0c-23.7 0-44.4 12.9-55.4 32H48C21.5 32 0 53.5 0 80V400c0 26.5 21.5 48 48 48H192V176c0-44.2 35.8-80 80-80h48V80c0-26.5-21.5-48-48-48H215.4C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48V448v16c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V243.9c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1H320 272zM160 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"] }; + var ZA = { prefix: "fas", iconName: "circle-notch", icon: [512, 512, [], "f1ce", "M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z"] }; + var eP = { prefix: "fas", iconName: "scissors", icon: [512, 512, [9984, 9986, 9988, "cut"], "f0c4", "M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"] }; + var tP = { prefix: "fas", iconName: "square-caret-down", icon: [448, 512, ["caret-square-down"], "f150", "M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z"] }; + var nP = { prefix: "fas", iconName: "caret-left", icon: [256, 512, [], "f0d9", "M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z"] }; + var rP = { prefix: "fas", iconName: "pen-to-square", icon: [512, 512, ["edit"], "f044", "M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160V416c0 53 43 96 96 96H352c53 0 96-43 96-96V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H96z"] }; + var oP = { prefix: "fas", iconName: "chevron-up", icon: [512, 512, [], "f077", "M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z"] }; + var iP = { prefix: "fas", iconName: "angle-right", icon: [320, 512, [8250], "f105", "M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"] }; + var aP = { prefix: "fas", iconName: "square-caret-up", icon: [448, 512, ["caret-square-up"], "f151", "M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4H120c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z"] }; + var sP = { prefix: "fas", iconName: "caret-up", icon: [320, 512, [], "f0d8", "M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H288c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"] }; + var cP = { prefix: "fas", iconName: "filter", icon: [512, 512, [], "f0b0", "M3.9 54.9C10.5 40.9 24.5 32 40 32H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9V448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6V320.9L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z"] }; + var lP = { prefix: "fas", iconName: "code", icon: [640, 512, [], "f121", "M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z"] }; + var uP = { prefix: "fas", iconName: "wrench", icon: [512, 512, [128295], "f0ad", "M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7H336c-8.8 0-16-7.2-16-16V118.6c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"] }; + var fP = { prefix: "fas", iconName: "eye", icon: [576, 512, [128065], "f06e", "M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z"] }; + var dP = { prefix: "fas", iconName: "pen", icon: [512, 512, [128394], "f304", "M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z"] }; + var hP = { prefix: "fas", iconName: "arrow-rotate-right", icon: [512, 512, [8635, "arrow-right-rotate", "arrow-rotate-forward", "redo"], "f01e", "M386.3 160H336c-17.7 0-32 14.3-32 32s14.3 32 32 32H464c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z"] }; + var vP = { prefix: "fas", iconName: "arrow-rotate-left", icon: [512, 512, [8634, "arrow-left-rotate", "arrow-rotate-back", "arrow-rotate-backward", "undo"], "f0e2", "M125.7 160H176c17.7 0 32 14.3 32 32s-14.3 32-32 32H48c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32s32 14.3 32 32v51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z"] }; + var pP = { prefix: "fas", iconName: "crop-simple", icon: [512, 512, ["crop-alt"], "f565", "M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32V64H32C14.3 64 0 78.3 0 96s14.3 32 32 32H64V384c0 35.3 28.7 64 64 64H352V384H128V32zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H448l0-256c0-35.3-28.7-64-64-64L160 64v64l224 0 0 352z"] }; + var mP = { prefix: "fas", iconName: "gear", icon: [512, 512, [9881, "cog"], "f013", "M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"] }; + var gP = { prefix: "fas", iconName: "caret-down", icon: [320, 512, [], "f0d7", "M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"] }; + var yP = { prefix: "fas", iconName: "ellipsis-vertical", icon: [128, 512, ["ellipsis-v"], "f142", "M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z"] }; + var bP = { prefix: "fas", iconName: "arrow-right-arrow-left", icon: [448, 512, [8644, "exchange"], "f0ec", "M438.6 150.6c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 96 32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l306.7 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96zm-333.3 352c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 416 416 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96z"] }; + var kP = { prefix: "fas", iconName: "arrow-down-short-wide", icon: [576, 512, ["sort-amount-desc", "sort-amount-down-alt"], "f884", "M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32z"] }; + var wP = { prefix: "fas", iconName: "angle-down", icon: [448, 512, [8964], "f107", "M201.4 342.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 274.7 86.6 137.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"] }; + var xP = { prefix: "fas", iconName: "arrow-down", icon: [384, 512, [8595], "f063", "M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"] }; + var jP = { prefix: "fas", iconName: "magnifying-glass", icon: [512, 512, [128269, "search"], "f002", "M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"] }; + var SP = { prefix: "fas", iconName: "chevron-down", icon: [512, 512, [], "f078", "M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"] }; + var CP = { prefix: "fas", iconName: "copy", icon: [448, 512, [], "f0c5", "M208 0H332.1c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9V336c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V48c0-26.5 21.5-48 48-48zM48 128h80v64H64V448H256V416h64v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48z"] }; + var $P = { prefix: "fas", iconName: "plus", icon: [448, 512, [10133, 61543, "add"], "2b", "M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z"] }; + var _P = { prefix: "fas", iconName: "xmark", icon: [384, 512, [128473, 10005, 10006, 10060, 215, "close", "multiply", "remove", "times"], "f00d", "M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"] }; + var OP = _P; + var MP = _P; + var EP = { prefix: "fas", iconName: "rotate", icon: [512, 512, [128260, "sync-alt"], "f2f1", "M142.9 142.9c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5c0 0 0 0 0 0H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5c7.7-21.8 20.2-42.3 37.8-59.8zM16 312v7.6 .7V440c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l41.6-41.6c87.6 86.5 228.7 86.2 315.8-1c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.2 62.2-162.7 62.5-225.3 1L185 329c6.9-6.9 8.9-17.2 5.2-26.2s-12.5-14.8-22.2-14.8H48.4h-.7H40c-13.3 0-24 10.7-24 24z"] }; + var AP = { prefix: "fas", iconName: "clone", icon: [512, 512, [], "f24d", "M288 448H64V224h64V160H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H288c35.3 0 64-28.7 64-64V384H288v64zm-64-96H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H224c-35.3 0-64 28.7-64 64V288c0 35.3 28.7 64 64 64z"] }; + var PP = { prefix: "fas", iconName: "check", icon: [448, 512, [10003, 10004], "f00c", "M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"] }; + var TP = { prefix: "fas", iconName: "triangle-exclamation", icon: [512, 512, [9888, "exclamation-triangle", "warning"], "f071", "M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"] }; + var RP = {}; + var NP = { showWizard: true, showOriginal: true }; + var IP = Math.min; + var DP = Math.max; + var qP = Math.round; + var zP = Math.floor; + var BP = function(e20) { + return { x: e20, y: e20 }; + }; + var LP = { left: "right", right: "left", bottom: "top", top: "bottom" }; + var FP = { start: "end", end: "start" }; + function VP(e20, t10, n10) { + return DP(e20, IP(t10, n10)); + } + function HP(e20, t10) { + return "function" == typeof e20 ? e20(t10) : e20; + } + function WP(e20) { + return e20.split("-")[0]; + } + function UP(e20) { + return e20.split("-")[1]; + } + function JP(e20) { + return "x" === e20 ? "y" : "x"; + } + function KP(e20) { + return "y" === e20 ? "height" : "width"; + } + function GP(e20) { + return ["top", "bottom"].includes(WP(e20)) ? "y" : "x"; + } + function QP(e20) { + return JP(GP(e20)); + } + function YP(e20, t10, n10) { + void 0 === n10 && (n10 = false); + var r10 = UP(e20), o10 = QP(e20), i10 = KP(o10), a10 = "x" === o10 ? r10 === (n10 ? "end" : "start") ? "right" : "left" : "start" === r10 ? "bottom" : "top"; + return t10.reference[i10] > t10.floating[i10] && (a10 = tT(a10)), [a10, tT(a10)]; + } + function XP(e20) { + var t10 = tT(e20); + return [ZP(e20), t10, ZP(t10)]; + } + function ZP(e20) { + return e20.replace(/start|end/g, function(e21) { + return FP[e21]; + }); + } + function eT(e20, t10, n10, r10) { + var o10 = UP(e20), i10 = function(e21, t11, n11) { + var r11 = ["left", "right"], o11 = ["right", "left"]; + switch (e21) { + case "top": + case "bottom": + return n11 ? t11 ? o11 : r11 : t11 ? r11 : o11; + case "left": + case "right": + return t11 ? ["top", "bottom"] : ["bottom", "top"]; + default: + return []; + } + }(WP(e20), "start" === n10, r10); + return o10 && (i10 = i10.map(function(e21) { + return e21 + "-" + o10; + }), t10 && (i10 = i10.concat(i10.map(ZP)))), i10; + } + function tT(e20) { + return e20.replace(/left|right|bottom|top/g, function(e21) { + return LP[e21]; + }); + } + function nT(e20) { + return "number" != typeof e20 ? function(e21) { + return Ro({ top: 0, right: 0, bottom: 0, left: 0 }, e21); + }(e20) : { top: e20, right: e20, bottom: e20, left: e20 }; + } + function rT(e20) { + return Ro(Ro({}, e20), {}, { top: e20.y, left: e20.x, right: e20.x + e20.width, bottom: e20.y + e20.height }); + } + function oT(e20, t10, n10) { + var r10, o10 = e20.reference, i10 = e20.floating, a10 = GP(t10), s10 = QP(t10), c10 = KP(s10), l10 = WP(t10), u10 = "y" === a10, f10 = o10.x + o10.width / 2 - i10.width / 2, d10 = o10.y + o10.height / 2 - i10.height / 2, h10 = o10[c10] / 2 - i10[c10] / 2; + switch (l10) { + case "top": + r10 = { x: f10, y: o10.y - i10.height }; + break; + case "bottom": + r10 = { x: f10, y: o10.y + o10.height }; + break; + case "right": + r10 = { x: o10.x + o10.width, y: d10 }; + break; + case "left": + r10 = { x: o10.x - i10.width, y: d10 }; + break; + default: + r10 = { x: o10.x, y: o10.y }; + } + switch (UP(t10)) { + case "start": + r10[s10] -= h10 * (n10 && u10 ? -1 : 1); + break; + case "end": + r10[s10] += h10 * (n10 && u10 ? -1 : 1); + } + return r10; + } + var iT = function() { + var e20 = xo(ko().mark(function e21(t10, n10, r10) { + var o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10, p10, m10, g10, y10, b10, k10, w10, x10, j10, S10, C10, $10, _10, O10, M10; + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + return o10 = r10.placement, i10 = void 0 === o10 ? "bottom" : o10, a10 = r10.strategy, s10 = void 0 === a10 ? "absolute" : a10, c10 = r10.middleware, l10 = void 0 === c10 ? [] : c10, u10 = r10.platform, f10 = l10.filter(Boolean), e23.next = 4, null == u10.isRTL ? void 0 : u10.isRTL(n10); + case 4: + return d10 = e23.sent, e23.next = 7, u10.getElementRects({ reference: t10, floating: n10, strategy: s10 }); + case 7: + h10 = e23.sent, v10 = oT(h10, i10, d10), p10 = v10.x, m10 = v10.y, g10 = i10, y10 = {}, b10 = 0, k10 = 0; + case 13: + if (!(k10 < f10.length)) { + e23.next = 46; + break; + } + return w10 = f10[k10], x10 = w10.name, j10 = w10.fn, e23.next = 17, j10({ x: p10, y: m10, initialPlacement: i10, placement: g10, strategy: s10, middlewareData: y10, rects: h10, platform: u10, elements: { reference: t10, floating: n10 } }); + case 17: + if (S10 = e23.sent, C10 = S10.x, $10 = S10.y, _10 = S10.data, O10 = S10.reset, p10 = null != C10 ? C10 : p10, m10 = null != $10 ? $10 : m10, y10 = Ro(Ro({}, y10), {}, qo({}, x10, Ro(Ro({}, y10[x10]), _10))), !(O10 && b10 <= 50)) { + e23.next = 43; + break; + } + if (b10++, "object" !== Ho(O10)) { + e23.next = 41; + break; + } + if (O10.placement && (g10 = O10.placement), !O10.rects) { + e23.next = 38; + break; + } + if (true !== O10.rects) { + e23.next = 36; + break; + } + return e23.next = 33, u10.getElementRects({ reference: t10, floating: n10, strategy: s10 }); + case 33: + e23.t0 = e23.sent, e23.next = 37; + break; + case 36: + e23.t0 = O10.rects; + case 37: + h10 = e23.t0; + case 38: + M10 = oT(h10, g10, d10), p10 = M10.x, m10 = M10.y; + case 41: + return k10 = -1, e23.abrupt("continue", 43); + case 43: + k10++, e23.next = 13; + break; + case 46: + return e23.abrupt("return", { x: p10, y: m10, placement: g10, strategy: s10, middlewareData: y10 }); + case 47: + case "end": + return e23.stop(); + } + }, e21); + })); + return function(t10, n10, r10) { + return e20.apply(this, arguments); + }; + }(); + function aT(e20, t10) { + return sT.apply(this, arguments); + } + function sT() { + return sT = xo(ko().mark(function e20(t10, n10) { + var r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10, p10, m10, g10, y10, b10, k10, w10, x10, j10, S10, C10, $10, _10; + return ko().wrap(function(e21) { + for (; ; ) + switch (e21.prev = e21.next) { + case 0: + return void 0 === n10 && (n10 = {}), o10 = t10.x, i10 = t10.y, a10 = t10.platform, s10 = t10.rects, c10 = t10.elements, l10 = t10.strategy, u10 = HP(n10, t10), f10 = u10.boundary, d10 = void 0 === f10 ? "clippingAncestors" : f10, h10 = u10.rootBoundary, v10 = void 0 === h10 ? "viewport" : h10, p10 = u10.elementContext, m10 = void 0 === p10 ? "floating" : p10, g10 = u10.altBoundary, y10 = void 0 !== g10 && g10, b10 = u10.padding, k10 = nT(void 0 === b10 ? 0 : b10), w10 = "floating" === m10 ? "reference" : "floating", x10 = c10[y10 ? w10 : m10], e21.t0 = rT, e21.t1 = a10, e21.next = 10, null == a10.isElement ? void 0 : a10.isElement(x10); + case 10: + if (e21.t2 = r10 = e21.sent, null == e21.t2) { + e21.next = 15; + break; + } + e21.t3 = r10, e21.next = 16; + break; + case 15: + e21.t3 = true; + case 16: + if (!e21.t3) { + e21.next = 20; + break; + } + e21.t4 = x10, e21.next = 26; + break; + case 20: + if (e21.t5 = x10.contextElement, e21.t5) { + e21.next = 25; + break; + } + return e21.next = 24, null == a10.getDocumentElement ? void 0 : a10.getDocumentElement(c10.floating); + case 24: + e21.t5 = e21.sent; + case 25: + e21.t4 = e21.t5; + case 26: + return e21.t6 = e21.t4, e21.t7 = d10, e21.t8 = v10, e21.t9 = l10, e21.t10 = { element: e21.t6, boundary: e21.t7, rootBoundary: e21.t8, strategy: e21.t9 }, e21.next = 33, e21.t1.getClippingRect.call(e21.t1, e21.t10); + case 33: + return e21.t11 = e21.sent, j10 = (0, e21.t0)(e21.t11), S10 = "floating" === m10 ? Ro(Ro({}, s10.floating), {}, { x: o10, y: i10 }) : s10.reference, e21.next = 38, null == a10.getOffsetParent ? void 0 : a10.getOffsetParent(c10.floating); + case 38: + return C10 = e21.sent, e21.next = 41, null == a10.isElement ? void 0 : a10.isElement(C10); + case 41: + if (!e21.sent) { + e21.next = 50; + break; + } + return e21.next = 44, null == a10.getScale ? void 0 : a10.getScale(C10); + case 44: + if (e21.t13 = e21.sent, e21.t13) { + e21.next = 47; + break; + } + e21.t13 = { x: 1, y: 1 }; + case 47: + e21.t12 = e21.t13, e21.next = 51; + break; + case 50: + e21.t12 = { x: 1, y: 1 }; + case 51: + if ($10 = e21.t12, e21.t14 = rT, !a10.convertOffsetParentRelativeRectToViewportRelativeRect) { + e21.next = 59; + break; + } + return e21.next = 56, a10.convertOffsetParentRelativeRectToViewportRelativeRect({ rect: S10, offsetParent: C10, strategy: l10 }); + case 56: + e21.t15 = e21.sent, e21.next = 60; + break; + case 59: + e21.t15 = S10; + case 60: + return e21.t16 = e21.t15, _10 = (0, e21.t14)(e21.t16), e21.abrupt("return", { top: (j10.top - _10.top + k10.top) / $10.y, bottom: (_10.bottom - j10.bottom + k10.bottom) / $10.y, left: (j10.left - _10.left + k10.left) / $10.x, right: (_10.right - j10.right + k10.right) / $10.x }); + case 63: + case "end": + return e21.stop(); + } + }, e20); + })), sT.apply(this, arguments); + } + function cT(e20, t10) { + return lT.apply(this, arguments); + } + function lT() { + return lT = xo(ko().mark(function e20(t10, n10) { + var r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10, p10, m10; + return ko().wrap(function(e21) { + for (; ; ) + switch (e21.prev = e21.next) { + case 0: + return r10 = t10.placement, o10 = t10.platform, i10 = t10.elements, e21.next = 3, null == o10.isRTL ? void 0 : o10.isRTL(i10.floating); + case 3: + return a10 = e21.sent, s10 = WP(r10), c10 = UP(r10), l10 = "y" === GP(r10), u10 = ["left", "top"].includes(s10) ? -1 : 1, f10 = a10 && l10 ? -1 : 1, d10 = HP(n10, t10), h10 = "number" == typeof d10 ? { mainAxis: d10, crossAxis: 0, alignmentAxis: null } : Ro({ mainAxis: 0, crossAxis: 0, alignmentAxis: null }, d10), v10 = h10.mainAxis, p10 = h10.crossAxis, m10 = h10.alignmentAxis, c10 && "number" == typeof m10 && (p10 = "end" === c10 ? -1 * m10 : m10), e21.abrupt("return", l10 ? { x: p10 * f10, y: v10 * u10 } : { x: v10 * u10, y: p10 * f10 }); + case 13: + case "end": + return e21.stop(); + } + }, e20); + })), lT.apply(this, arguments); + } + function uT(e20) { + return hT(e20) ? (e20.nodeName || "").toLowerCase() : "#document"; + } + function fT(e20) { + var t10; + return (null == e20 || null == (t10 = e20.ownerDocument) ? void 0 : t10.defaultView) || window; + } + function dT(e20) { + var t10; + return null == (t10 = (hT(e20) ? e20.ownerDocument : e20.document) || window.document) ? void 0 : t10.documentElement; + } + function hT(e20) { + return e20 instanceof Node || e20 instanceof fT(e20).Node; + } + function vT(e20) { + return e20 instanceof Element || e20 instanceof fT(e20).Element; + } + function pT(e20) { + return e20 instanceof HTMLElement || e20 instanceof fT(e20).HTMLElement; + } + function mT(e20) { + return "undefined" != typeof ShadowRoot && (e20 instanceof ShadowRoot || e20 instanceof fT(e20).ShadowRoot); + } + function gT(e20) { + var t10 = xT(e20), n10 = t10.overflow, r10 = t10.overflowX, o10 = t10.overflowY, i10 = t10.display; + return /auto|scroll|overlay|hidden|clip/.test(n10 + o10 + r10) && !["inline", "contents"].includes(i10); + } + function yT(e20) { + return ["table", "td", "th"].includes(uT(e20)); + } + function bT(e20) { + var t10 = kT(), n10 = xT(e20); + return "none" !== n10.transform || "none" !== n10.perspective || !!n10.containerType && "normal" !== n10.containerType || !t10 && !!n10.backdropFilter && "none" !== n10.backdropFilter || !t10 && !!n10.filter && "none" !== n10.filter || ["transform", "perspective", "filter"].some(function(e21) { + return (n10.willChange || "").includes(e21); + }) || ["paint", "layout", "strict", "content"].some(function(e21) { + return (n10.contain || "").includes(e21); + }); + } + function kT() { + return !("undefined" == typeof CSS || !CSS.supports) && CSS.supports("-webkit-backdrop-filter", "none"); + } + function wT(e20) { + return ["html", "body", "#document"].includes(uT(e20)); + } + function xT(e20) { + return fT(e20).getComputedStyle(e20); + } + function jT(e20) { + return vT(e20) ? { scrollLeft: e20.scrollLeft, scrollTop: e20.scrollTop } : { scrollLeft: e20.pageXOffset, scrollTop: e20.pageYOffset }; + } + function ST(e20) { + if ("html" === uT(e20)) + return e20; + var t10 = e20.assignedSlot || e20.parentNode || mT(e20) && e20.host || dT(e20); + return mT(t10) ? t10.host : t10; + } + function CT(e20) { + var t10 = ST(e20); + return wT(t10) ? e20.ownerDocument ? e20.ownerDocument.body : e20.body : pT(t10) && gT(t10) ? t10 : CT(t10); + } + function $T(e20, t10, n10) { + var r10; + void 0 === t10 && (t10 = []), void 0 === n10 && (n10 = true); + var o10 = CT(e20), i10 = o10 === (null == (r10 = e20.ownerDocument) ? void 0 : r10.body), a10 = fT(o10); + return i10 ? t10.concat(a10, a10.visualViewport || [], gT(o10) ? o10 : [], a10.frameElement && n10 ? $T(a10.frameElement) : []) : t10.concat(o10, $T(o10, [], n10)); + } + function _T(e20) { + var t10 = xT(e20), n10 = parseFloat(t10.width) || 0, r10 = parseFloat(t10.height) || 0, o10 = pT(e20), i10 = o10 ? e20.offsetWidth : n10, a10 = o10 ? e20.offsetHeight : r10, s10 = qP(n10) !== i10 || qP(r10) !== a10; + return s10 && (n10 = i10, r10 = a10), { width: n10, height: r10, $: s10 }; + } + function OT(e20) { + return vT(e20) ? e20 : e20.contextElement; + } + function MT(e20) { + var t10 = OT(e20); + if (!pT(t10)) + return BP(1); + var n10 = t10.getBoundingClientRect(), r10 = _T(t10), o10 = r10.width, i10 = r10.height, a10 = r10.$, s10 = (a10 ? qP(n10.width) : n10.width) / o10, c10 = (a10 ? qP(n10.height) : n10.height) / i10; + return s10 && Number.isFinite(s10) || (s10 = 1), c10 && Number.isFinite(c10) || (c10 = 1), { x: s10, y: c10 }; + } + var ET = BP(0); + function AT(e20) { + var t10 = fT(e20); + return kT() && t10.visualViewport ? { x: t10.visualViewport.offsetLeft, y: t10.visualViewport.offsetTop } : ET; + } + function PT(e20, t10, n10, r10) { + void 0 === t10 && (t10 = false), void 0 === n10 && (n10 = false); + var o10 = e20.getBoundingClientRect(), i10 = OT(e20), a10 = BP(1); + t10 && (r10 ? vT(r10) && (a10 = MT(r10)) : a10 = MT(e20)); + var s10 = function(e21, t11, n11) { + return void 0 === t11 && (t11 = false), !(!n11 || t11 && n11 !== fT(e21)) && t11; + }(i10, n10, r10) ? AT(i10) : BP(0), c10 = (o10.left + s10.x) / a10.x, l10 = (o10.top + s10.y) / a10.y, u10 = o10.width / a10.x, f10 = o10.height / a10.y; + if (i10) + for (var d10 = fT(i10), h10 = r10 && vT(r10) ? fT(r10) : r10, v10 = d10.frameElement; v10 && r10 && h10 !== d10; ) { + var p10 = MT(v10), m10 = v10.getBoundingClientRect(), g10 = xT(v10), y10 = m10.left + (v10.clientLeft + parseFloat(g10.paddingLeft)) * p10.x, b10 = m10.top + (v10.clientTop + parseFloat(g10.paddingTop)) * p10.y; + c10 *= p10.x, l10 *= p10.y, u10 *= p10.x, f10 *= p10.y, c10 += y10, l10 += b10, v10 = fT(v10).frameElement; + } + return rT({ width: u10, height: f10, x: c10, y: l10 }); + } + function TT(e20) { + return PT(dT(e20)).left + jT(e20).scrollLeft; + } + function RT(e20, t10, n10) { + var r10; + if ("viewport" === t10) + r10 = function(e21, t11) { + var n11 = fT(e21), r11 = dT(e21), o11 = n11.visualViewport, i10 = r11.clientWidth, a10 = r11.clientHeight, s10 = 0, c10 = 0; + if (o11) { + i10 = o11.width, a10 = o11.height; + var l10 = kT(); + (!l10 || l10 && "fixed" === t11) && (s10 = o11.offsetLeft, c10 = o11.offsetTop); + } + return { width: i10, height: a10, x: s10, y: c10 }; + }(e20, n10); + else if ("document" === t10) + r10 = function(e21) { + var t11 = dT(e21), n11 = jT(e21), r11 = e21.ownerDocument.body, o11 = DP(t11.scrollWidth, t11.clientWidth, r11.scrollWidth, r11.clientWidth), i10 = DP(t11.scrollHeight, t11.clientHeight, r11.scrollHeight, r11.clientHeight), a10 = -n11.scrollLeft + TT(e21), s10 = -n11.scrollTop; + return "rtl" === xT(r11).direction && (a10 += DP(t11.clientWidth, r11.clientWidth) - o11), { width: o11, height: i10, x: a10, y: s10 }; + }(dT(e20)); + else if (vT(t10)) + r10 = function(e21, t11) { + var n11 = PT(e21, true, "fixed" === t11), r11 = n11.top + e21.clientTop, o11 = n11.left + e21.clientLeft, i10 = pT(e21) ? MT(e21) : BP(1); + return { width: e21.clientWidth * i10.x, height: e21.clientHeight * i10.y, x: o11 * i10.x, y: r11 * i10.y }; + }(t10, n10); + else { + var o10 = AT(e20); + r10 = Ro(Ro({}, t10), {}, { x: t10.x - o10.x, y: t10.y - o10.y }); + } + return rT(r10); + } + function NT(e20, t10) { + var n10 = ST(e20); + return !(n10 === t10 || !vT(n10) || wT(n10)) && ("fixed" === xT(n10).position || NT(n10, t10)); + } + function IT(e20, t10, n10) { + var r10 = pT(t10), o10 = dT(t10), i10 = "fixed" === n10, a10 = PT(e20, true, i10, t10), s10 = { scrollLeft: 0, scrollTop: 0 }, c10 = BP(0); + if (r10 || !r10 && !i10) + if (("body" !== uT(t10) || gT(o10)) && (s10 = jT(t10)), r10) { + var l10 = PT(t10, true, i10, t10); + c10.x = l10.x + t10.clientLeft, c10.y = l10.y + t10.clientTop; + } else + o10 && (c10.x = TT(o10)); + return { x: a10.left + s10.scrollLeft - c10.x, y: a10.top + s10.scrollTop - c10.y, width: a10.width, height: a10.height }; + } + function DT(e20, t10) { + return pT(e20) && "fixed" !== xT(e20).position ? t10 ? t10(e20) : e20.offsetParent : null; + } + function qT(e20, t10) { + var n10 = fT(e20); + if (!pT(e20)) + return n10; + for (var r10 = DT(e20, t10); r10 && yT(r10) && "static" === xT(r10).position; ) + r10 = DT(r10, t10); + return r10 && ("html" === uT(r10) || "body" === uT(r10) && "static" === xT(r10).position && !bT(r10)) ? n10 : r10 || function(e21) { + for (var t11 = ST(e21); pT(t11) && !wT(t11); ) { + if (bT(t11)) + return t11; + t11 = ST(t11); + } + return null; + }(e20) || n10; + } + var zT = { convertOffsetParentRelativeRectToViewportRelativeRect: function(e20) { + var t10 = e20.rect, n10 = e20.offsetParent, r10 = e20.strategy, o10 = pT(n10), i10 = dT(n10); + if (n10 === i10) + return t10; + var a10 = { scrollLeft: 0, scrollTop: 0 }, s10 = BP(1), c10 = BP(0); + if ((o10 || !o10 && "fixed" !== r10) && (("body" !== uT(n10) || gT(i10)) && (a10 = jT(n10)), pT(n10))) { + var l10 = PT(n10); + s10 = MT(n10), c10.x = l10.x + n10.clientLeft, c10.y = l10.y + n10.clientTop; + } + return { width: t10.width * s10.x, height: t10.height * s10.y, x: t10.x * s10.x - a10.scrollLeft * s10.x + c10.x, y: t10.y * s10.y - a10.scrollTop * s10.y + c10.y }; + }, getDocumentElement: dT, getClippingRect: function(e20) { + var t10 = e20.element, n10 = e20.boundary, r10 = e20.rootBoundary, o10 = e20.strategy, i10 = "clippingAncestors" === n10 ? function(e21, t11) { + var n11 = t11.get(e21); + if (n11) + return n11; + for (var r11 = $T(e21, [], false).filter(function(e23) { + return vT(e23) && "body" !== uT(e23); + }), o11 = null, i11 = "fixed" === xT(e21).position, a11 = i11 ? ST(e21) : e21; vT(a11) && !wT(a11); ) { + var s11 = xT(a11), c11 = bT(a11); + c11 || "fixed" !== s11.position || (o11 = null), (i11 ? !c11 && !o11 : !c11 && "static" === s11.position && o11 && ["absolute", "fixed"].includes(o11.position) || gT(a11) && !c11 && NT(e21, a11)) ? r11 = r11.filter(function(e23) { + return e23 !== a11; + }) : o11 = s11, a11 = ST(a11); + } + return t11.set(e21, r11), r11; + }(t10, this._c) : [].concat(n10), a10 = [].concat(Bo(i10), [r10]), s10 = a10[0], c10 = a10.reduce(function(e21, n11) { + var r11 = RT(t10, n11, o10); + return e21.top = DP(r11.top, e21.top), e21.right = IP(r11.right, e21.right), e21.bottom = IP(r11.bottom, e21.bottom), e21.left = DP(r11.left, e21.left), e21; + }, RT(t10, s10, o10)); + return { width: c10.right - c10.left, height: c10.bottom - c10.top, x: c10.left, y: c10.top }; + }, getOffsetParent: qT, getElementRects: function() { + var e20 = xo(ko().mark(function e21(t10) { + var n10, r10, o10, i10, a10; + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + return n10 = t10.reference, r10 = t10.floating, o10 = t10.strategy, i10 = this.getOffsetParent || qT, a10 = this.getDimensions, e23.t0 = IT, e23.t1 = n10, e23.next = 7, i10(r10); + case 7: + return e23.t2 = e23.sent, e23.t3 = o10, e23.t4 = (0, e23.t0)(e23.t1, e23.t2, e23.t3), e23.t5 = Ro, e23.t6 = { x: 0, y: 0 }, e23.next = 14, a10(r10); + case 14: + return e23.t7 = e23.sent, e23.t8 = (0, e23.t5)(e23.t6, e23.t7), e23.abrupt("return", { reference: e23.t4, floating: e23.t8 }); + case 17: + case "end": + return e23.stop(); + } + }, e21, this); + })); + return function(t10) { + return e20.apply(this, arguments); + }; + }(), getClientRects: function(e20) { + return Array.from(e20.getClientRects()); + }, getDimensions: function(e20) { + var t10 = _T(e20); + return { width: t10.width, height: t10.height }; + }, getScale: MT, isElement: vT, isRTL: function(e20) { + return "rtl" === xT(e20).direction; + } }; + function BT(e20, t10, n10, r10) { + void 0 === r10 && (r10 = {}); + var o10 = r10, i10 = o10.ancestorScroll, a10 = void 0 === i10 || i10, s10 = o10.ancestorResize, c10 = void 0 === s10 || s10, l10 = o10.elementResize, u10 = void 0 === l10 ? "function" == typeof ResizeObserver : l10, f10 = o10.layoutShift, d10 = void 0 === f10 ? "function" == typeof IntersectionObserver : f10, h10 = o10.animationFrame, v10 = void 0 !== h10 && h10, p10 = OT(e20), m10 = a10 || c10 ? [].concat(Bo(p10 ? $T(p10) : []), Bo($T(t10))) : []; + m10.forEach(function(e21) { + a10 && e21.addEventListener("scroll", n10, { passive: true }), c10 && e21.addEventListener("resize", n10); + }); + var g10, y10 = p10 && d10 ? function(e21, t11) { + var n11, r11 = null, o11 = dT(e21); + function i11() { + clearTimeout(n11), r11 && r11.disconnect(), r11 = null; + } + return function a11(s11, c11) { + void 0 === s11 && (s11 = false), void 0 === c11 && (c11 = 1), i11(); + var l11 = e21.getBoundingClientRect(), u11 = l11.left, f11 = l11.top, d11 = l11.width, h11 = l11.height; + if (s11 || t11(), d11 && h11) { + var v11 = { rootMargin: -zP(f11) + "px " + -zP(o11.clientWidth - (u11 + d11)) + "px " + -zP(o11.clientHeight - (f11 + h11)) + "px " + -zP(u11) + "px", threshold: DP(0, IP(1, c11)) || 1 }, p11 = true; + try { + r11 = new IntersectionObserver(m11, Ro(Ro({}, v11), {}, { root: o11.ownerDocument })); + } catch (e23) { + r11 = new IntersectionObserver(m11, v11); + } + r11.observe(e21); + } + function m11(e23) { + var t12 = e23[0].intersectionRatio; + if (t12 !== c11) { + if (!p11) + return a11(); + t12 ? a11(false, t12) : n11 = setTimeout(function() { + a11(false, 1e-7); + }, 100); + } + p11 = false; + } + }(true), i11; + }(p10, n10) : null, b10 = -1, k10 = null; + u10 && (k10 = new ResizeObserver(function(e21) { + var r11 = jo(e21, 1)[0]; + r11 && r11.target === p10 && k10 && (k10.unobserve(t10), cancelAnimationFrame(b10), b10 = requestAnimationFrame(function() { + k10 && k10.observe(t10); + })), n10(); + }), p10 && !v10 && k10.observe(p10), k10.observe(t10)); + var w10 = v10 ? PT(e20) : null; + return v10 && function t11() { + var r11 = PT(e20); + !w10 || r11.x === w10.x && r11.y === w10.y && r11.width === w10.width && r11.height === w10.height || n10(); + w10 = r11, g10 = requestAnimationFrame(t11); + }(), n10(), function() { + m10.forEach(function(e21) { + a10 && e21.removeEventListener("scroll", n10), c10 && e21.removeEventListener("resize", n10); + }), y10 && y10(), k10 && k10.disconnect(), k10 = null, v10 && cancelAnimationFrame(g10); + }; + } + var LT = function(e20) { + return void 0 === e20 && (e20 = {}), { name: "shift", options: e20, fn: function(t10) { + return xo(ko().mark(function n10() { + var r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10, p10, m10, g10, y10, b10, k10, w10, x10, j10, S10, C10, $10; + return ko().wrap(function(n11) { + for (; ; ) + switch (n11.prev = n11.next) { + case 0: + return r10 = t10.x, o10 = t10.y, i10 = t10.placement, a10 = HP(e20, t10), s10 = a10.mainAxis, c10 = void 0 === s10 || s10, l10 = a10.crossAxis, u10 = void 0 !== l10 && l10, f10 = a10.limiter, d10 = void 0 === f10 ? { fn: function(e21) { + return { x: e21.x, y: e21.y }; + } } : f10, h10 = yo(a10, po), v10 = { x: r10, y: o10 }, n11.next = 5, aT(t10, h10); + case 5: + return p10 = n11.sent, m10 = GP(WP(i10)), g10 = JP(m10), y10 = v10[g10], b10 = v10[m10], c10 && (k10 = "y" === g10 ? "bottom" : "right", w10 = y10 + p10["y" === g10 ? "top" : "left"], x10 = y10 - p10[k10], y10 = VP(w10, y10, x10)), u10 && (j10 = "y" === m10 ? "bottom" : "right", S10 = b10 + p10["y" === m10 ? "top" : "left"], C10 = b10 - p10[j10], b10 = VP(S10, b10, C10)), $10 = d10.fn(Ro(Ro({}, t10), {}, qo(qo({}, g10, y10), m10, b10))), n11.abrupt("return", Ro(Ro({}, $10), {}, { data: { x: $10.x - r10, y: $10.y - o10 } })); + case 14: + case "end": + return n11.stop(); + } + }, n10); + }))(); + } }; + }; + var FT = function(e20) { + return void 0 === e20 && (e20 = {}), { name: "flip", options: e20, fn: function(t10) { + return xo(ko().mark(function n10() { + var r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10, p10, m10, g10, y10, b10, k10, w10, x10, j10, S10, C10, $10, _10, O10, M10, E10, A10, P10, T8, R8, N8, I10, D10, q10, z10; + return ko().wrap(function(n11) { + for (; ; ) + switch (n11.prev = n11.next) { + case 0: + if (i10 = t10.placement, a10 = t10.middlewareData, s10 = t10.rects, c10 = t10.initialPlacement, l10 = t10.platform, u10 = t10.elements, f10 = HP(e20, t10), d10 = f10.mainAxis, h10 = void 0 === d10 || d10, v10 = f10.crossAxis, p10 = void 0 === v10 || v10, m10 = f10.fallbackPlacements, g10 = f10.fallbackStrategy, y10 = void 0 === g10 ? "bestFit" : g10, b10 = f10.fallbackAxisSideDirection, k10 = void 0 === b10 ? "none" : b10, w10 = f10.flipAlignment, x10 = void 0 === w10 || w10, j10 = yo(f10, vo), null == (r10 = a10.arrow) || !r10.alignmentOffset) { + n11.next = 4; + break; + } + return n11.abrupt("return", {}); + case 4: + return S10 = WP(i10), C10 = WP(c10) === c10, n11.next = 8, null == l10.isRTL ? void 0 : l10.isRTL(u10.floating); + case 8: + return $10 = n11.sent, _10 = m10 || (C10 || !x10 ? [tT(c10)] : XP(c10)), m10 || "none" === k10 || _10.push.apply(_10, Bo(eT(c10, x10, k10, $10))), O10 = [c10].concat(Bo(_10)), n11.next = 14, aT(t10, j10); + case 14: + if (M10 = n11.sent, E10 = [], A10 = (null == (o10 = a10.flip) ? void 0 : o10.overflows) || [], h10 && E10.push(M10[S10]), p10 && (P10 = YP(i10, s10, $10), E10.push(M10[P10[0]], M10[P10[1]])), A10 = [].concat(Bo(A10), [{ placement: i10, overflows: E10 }]), E10.every(function(e21) { + return e21 <= 0; + })) { + n11.next = 37; + break; + } + if (N8 = ((null == (T8 = a10.flip) ? void 0 : T8.index) || 0) + 1, !(I10 = O10[N8])) { + n11.next = 25; + break; + } + return n11.abrupt("return", { data: { index: N8, overflows: A10 }, reset: { placement: I10 } }); + case 25: + if (D10 = null == (R8 = A10.filter(function(e21) { + return e21.overflows[0] <= 0; + }).sort(function(e21, t11) { + return e21.overflows[1] - t11.overflows[1]; + })[0]) ? void 0 : R8.placement) { + n11.next = 35; + break; + } + n11.t0 = y10, n11.next = "bestFit" === n11.t0 ? 30 : "initialPlacement" === n11.t0 ? 33 : 35; + break; + case 30: + return z10 = null == (q10 = A10.map(function(e21) { + return [e21.placement, e21.overflows.filter(function(e23) { + return e23 > 0; + }).reduce(function(e23, t11) { + return e23 + t11; + }, 0)]; + }).sort(function(e21, t11) { + return e21[1] - t11[1]; + })[0]) ? void 0 : q10[0], z10 && (D10 = z10), n11.abrupt("break", 35); + case 33: + return D10 = c10, n11.abrupt("break", 35); + case 35: + if (i10 === D10) { + n11.next = 37; + break; + } + return n11.abrupt("return", { reset: { placement: D10 } }); + case 37: + return n11.abrupt("return", {}); + case 38: + case "end": + return n11.stop(); + } + }, n10); + }))(); + } }; + }; + var VT = function(e20, t10, n10) { + var r10 = /* @__PURE__ */ new Map(), o10 = Ro({ platform: zT }, n10), i10 = Ro(Ro({}, o10.platform), {}, { _c: r10 }); + return iT(e20, t10, Ro(Ro({}, o10), {}, { platform: i10 })); + }; + function HT(e20) { + var t10 = e20.loadOptions, n10 = e20.filterText, r10 = e20.items, o10 = e20.multiple, i10 = e20.value, a10 = e20.itemId, s10 = e20.groupBy, c10 = e20.filterSelectedItems, l10 = e20.itemFilter, u10 = e20.convertStringItemsToObjects, f10 = e20.filterGroupedItems, d10 = e20.label; + if (r10 && t10) + return r10; + if (!r10) + return []; + r10 && r10.length > 0 && "object" !== Ho(r10[0]) && (r10 = u10(r10)); + var h10 = r10.filter(function(e21) { + var t11 = l10(e21[d10], n10, e21); + return t11 && o10 && null != i10 && i10.length && (t11 = !i10.some(function(t12) { + return !!c10 && t12[a10] === e21[a10]; + })), t11; + }); + return s10 && (h10 = f10(h10)), h10; + } + function WT(e20) { + return UT.apply(this, arguments); + } + function UT() { + return UT = xo(ko().mark(function e20(t10) { + var n10, r10, o10, i10, a10; + return ko().wrap(function(e21) { + for (; ; ) + switch (e21.prev = e21.next) { + case 0: + return n10 = t10.dispatch, r10 = t10.loadOptions, o10 = t10.convertStringItemsToObjects, i10 = t10.filterText, e21.next = 3, r10(i10).catch(function(e23) { + console.warn("svelte-select loadOptions error :>> ", e23), n10("error", { type: "loadOptions", details: e23 }); + }); + case 3: + if (!(a10 = e21.sent) || a10.cancelled) { + e21.next = 7; + break; + } + return a10 ? (a10 && a10.length > 0 && "object" !== Ho(a10[0]) && (a10 = o10(a10)), n10("loaded", { items: a10 })) : a10 = [], e21.abrupt("return", { filteredItems: a10, loading: false, focused: true, listOpen: true }); + case 7: + case "end": + return e21.stop(); + } + }, e20); + })), UT.apply(this, arguments); + } + function JT(e20) { + mi(e20, "svelte-qbd276", "svg.svelte-qbd276{width:var(--chevron-icon-width, 20px);height:var(--chevron-icon-width, 20px);color:var(--chevron-icon-colour, currentColor)}"); + } + function KT(e20) { + var t10, n10; + return { c: function() { + t10 = Si("svg"), Ai(n10 = Si("path"), "fill", "currentColor"), Ai(n10, "d", "M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747\n 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0\n 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502\n 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0\n 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"), Ai(t10, "width", "100%"), Ai(t10, "height", "100%"), Ai(t10, "viewBox", "0 0 20 20"), Ai(t10, "focusable", "false"), Ai(t10, "aria-hidden", "true"), Ai(t10, "class", "svelte-qbd276"); + }, m: function(e21, r10) { + ki(e21, t10, r10), pi(t10, n10); + }, p: Wo, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + var GT = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, null, KT, Xo, {}, JT), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function QT(e20) { + mi(e20, "svelte-whdbu1", "svg.svelte-whdbu1{width:var(--clear-icon-width, 20px);height:var(--clear-icon-width, 20px);color:var(--clear-icon-color, currentColor)}"); + } + function YT(e20) { + var t10, n10; + return { c: function() { + t10 = Si("svg"), Ai(n10 = Si("path"), "fill", "currentColor"), Ai(n10, "d", "M34.923,37.251L24,26.328L13.077,37.251L9.436,33.61l10.923-10.923L9.436,11.765l3.641-3.641L24,19.047L34.923,8.124\n l3.641,3.641L27.641,22.688L38.564,33.61L34.923,37.251z"), Ai(t10, "width", "100%"), Ai(t10, "height", "100%"), Ai(t10, "viewBox", "-2 -2 50 50"), Ai(t10, "focusable", "false"), Ai(t10, "aria-hidden", "true"), Ai(t10, "role", "presentation"), Ai(t10, "class", "svelte-whdbu1"); + }, m: function(e21, r10) { + ki(e21, t10, r10), pi(t10, n10); + }, p: Wo, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + var XT = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, null, YT, Xo, {}, QT), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function ZT(e20) { + mi(e20, "svelte-1p3nqvd", ".loading.svelte-1p3nqvd{width:var(--spinner-width, 20px);height:var(--spinner-height, 20px);color:var(--spinner-color, var(--icons-color));animation:svelte-1p3nqvd-rotate 0.75s linear infinite;transform-origin:center center;transform:none}.circle_path.svelte-1p3nqvd{stroke-dasharray:90;stroke-linecap:round}@keyframes svelte-1p3nqvd-rotate{100%{transform:rotate(360deg)}}"); + } + function eR(e20) { + var t10, n10; + return { c: function() { + t10 = Si("svg"), Ai(n10 = Si("circle"), "class", "circle_path svelte-1p3nqvd"), Ai(n10, "cx", "50"), Ai(n10, "cy", "50"), Ai(n10, "r", "20"), Ai(n10, "fill", "none"), Ai(n10, "stroke", "currentColor"), Ai(n10, "stroke-width", "5"), Ai(n10, "stroke-miterlimit", "10"), Ai(t10, "class", "loading svelte-1p3nqvd"), Ai(t10, "viewBox", "25 25 50 50"); + }, m: function(e21, r10) { + ki(e21, t10, r10), pi(t10, n10); + }, p: Wo, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + var tR = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, null, eR, Xo, {}, ZT), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function nR(e20) { + mi(e20, "svelte-82qwg8", ".svelte-select.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{--borderRadius:var(--border-radius);--clearSelectColor:var(--clear-select-color);--clearSelectWidth:var(--clear-select-width);--disabledBackground:var(--disabled-background);--disabledBorderColor:var(--disabled-border-color);--disabledColor:var(--disabled-color);--disabledPlaceholderColor:var(--disabled-placeholder-color);--disabledPlaceholderOpacity:var(--disabled-placeholder-opacity);--errorBackground:var(--error-background);--errorBorder:var(--error-border);--groupItemPaddingLeft:var(--group-item-padding-left);--groupTitleColor:var(--group-title-color);--groupTitleFontSize:var(--group-title-font-size);--groupTitleFontWeight:var(--group-title-font-weight);--groupTitlePadding:var(--group-title-padding);--groupTitleTextTransform:var(--group-title-text-transform);--groupTitleBorderColor:var(--group-title-border-color);--groupTitleBorderWidth:var(--group-title-border-width);--groupTitleBorderStyle:var(--group-title-border-style);--indicatorColor:var(--chevron-color);--indicatorHeight:var(--chevron-height);--indicatorWidth:var(--chevron-width);--inputColor:var(--input-color);--inputLeft:var(--input-left);--inputLetterSpacing:var(--input-letter-spacing);--inputMargin:var(--input-margin);--inputPadding:var(--input-padding);--itemActiveBackground:var(--item-active-background);--itemColor:var(--item-color);--itemFirstBorderRadius:var(--item-first-border-radius);--itemHoverBG:var(--item-hover-bg);--itemHoverColor:var(--item-hover-color);--itemIsActiveBG:var(--item-is-active-bg);--itemIsActiveColor:var(--item-is-active-color);--itemIsNotSelectableColor:var(--item-is-not-selectable-color);--itemPadding:var(--item-padding);--listBackground:var(--list-background);--listBorder:var(--list-border);--listBorderRadius:var(--list-border-radius);--listEmptyColor:var(--list-empty-color);--listEmptyPadding:var(--list-empty-padding);--listEmptyTextAlign:var(--list-empty-text-align);--listMaxHeight:var(--list-max-height);--listPosition:var(--list-position);--listShadow:var(--list-shadow);--listZIndex:var(--list-z-index);--multiItemBG:var(--multi-item-bg);--multiItemBorderRadius:var(--multi-item-border-radius);--multiItemDisabledHoverBg:var(--multi-item-disabled-hover-bg);--multiItemDisabledHoverColor:var(--multi-item-disabled-hover-color);--multiItemHeight:var(--multi-item-height);--multiItemMargin:var(--multi-item-margin);--multiItemPadding:var(--multi-item-padding);--multiSelectInputMargin:var(--multi-select-input-margin);--multiSelectInputPadding:var(--multi-select-input-padding);--multiSelectPadding:var(--multi-select-padding);--placeholderColor:var(--placeholder-color);--placeholderOpacity:var(--placeholder-opacity);--selectedItemPadding:var(--selected-item-padding);--spinnerColor:var(--spinner-color);--spinnerHeight:var(--spinner-height);--spinnerWidth:var(--spinner-width);--internal-padding:0 0 0 16px;border:var(--border, 1px solid #d8dbdf);border-radius:var(--border-radius, 6px);min-height:var(--height, 42px);position:relative;display:flex;align-items:stretch;padding:var(--padding, var(--internal-padding));background:var(--background, #fff);margin:var(--margin, 0);width:var(--width, 100%);font-size:var(--font-size, 16px);max-height:var(--max-height)}.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{box-sizing:var(--box-sizing, border-box)}.svelte-select.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8:hover{border:var(--border-hover, 1px solid #b2b8bf)}.value-container.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{display:flex;flex:1 1 0%;flex-wrap:wrap;align-items:center;gap:5px 10px;padding:var(--value-container-padding, 5px 0);position:relative;overflow:var(--value-container-overflow, hidden);align-self:stretch}.prepend.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8,.indicators.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{display:flex;flex-shrink:0;align-items:center}.indicators.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{position:var(--indicators-position);top:var(--indicators-top);right:var(--indicators-right);bottom:var(--indicators-bottom)}input.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{position:absolute;cursor:default;border:none;color:var(--input-color, var(--item-color));padding:var(--input-padding, 0);letter-spacing:var(--input-letter-spacing, inherit);margin:var(--input-margin, 0);min-width:10px;top:0;right:0;bottom:0;left:0;background:transparent;font-size:var(--font-size, 16px)}.svelte-82qwg8:not(.multi)>.value-container.svelte-82qwg8>input.svelte-82qwg8{width:100%;height:100%}input.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8::placeholder{color:var(--placeholder-color, #78848f);opacity:var(--placeholder-opacity, 1)}input.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8:focus{outline:none}.svelte-select.focused.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{border:var(--border-focused, 1px solid #006fe8);border-radius:var(--border-radius-focused, var(--border-radius, 6px))}.disabled.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{background:var(--disabled-background, #ebedef);border-color:var(--disabled-border-color, #ebedef);color:var(--disabled-color, #c1c6cc)}.disabled.svelte-82qwg8 input.svelte-82qwg8.svelte-82qwg8::placeholder{color:var(--disabled-placeholder-color, #c1c6cc);opacity:var(--disabled-placeholder-opacity, 1)}.selected-item.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{position:relative;overflow:var(--selected-item-overflow, hidden);padding:var(--selected-item-padding, 0 20px 0 0);text-overflow:ellipsis;white-space:nowrap;color:var(--selected-item-color, inherit);font-size:var(--font-size, 16px)}.multi.svelte-82qwg8 .selected-item.svelte-82qwg8.svelte-82qwg8{position:absolute;line-height:var(--height, 42px);height:var(--height, 42px)}.selected-item.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8:focus{outline:none}.hide-selected-item.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{opacity:0}.icon.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{display:flex;align-items:center;justify-content:center}.clear-select.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{all:unset;display:flex;align-items:center;justify-content:center;width:var(--clear-select-width, 40px);height:var(--clear-select-height, 100%);color:var(--clear-select-color, var(--icons-color));margin:var(--clear-select-margin, 0);pointer-events:all;flex-shrink:0}.clear-select.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8:focus{outline:var(--clear-select-focus-outline, 1px solid #006fe8)}.loading.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{width:var(--loading-width, 40px);height:var(--loading-height);color:var(--loading-color, var(--icons-color));margin:var(--loading--margin, 0);flex-shrink:0}.chevron.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{width:var(--chevron-width, 40px);height:var(--chevron-height, 40px);background:var(--chevron-background, transparent);pointer-events:var(--chevron-pointer-events, none);color:var(--chevron-color, var(--icons-color));border:var(--chevron-border, 0 0 0 1px solid #d8dbdf);flex-shrink:0}.multi.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{padding:var(--multi-select-padding, var(--internal-padding))}.multi.svelte-82qwg8 input.svelte-82qwg8.svelte-82qwg8{padding:var(--multi-select-input-padding, 0);position:relative;margin:var(--multi-select-input-margin, 5px 0);flex:1 1 40px}.svelte-select.error.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{border:var(--error-border, 1px solid #ff2d55);background:var(--error-background, #fff)}.a11y-text.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{z-index:9999;border:0px;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0px;white-space:nowrap}.multi-item.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{background:var(--multi-item-bg, #ebedef);margin:var(--multi-item-margin, 0);outline:var(--multi-item-outline, 1px solid #ddd);border-radius:var(--multi-item-border-radius, 4px);height:var(--multi-item-height, 25px);line-height:var(--multi-item-height, 25px);display:flex;cursor:default;padding:var(--multi-item-padding, 0 5px);overflow:hidden;gap:var(--multi-item-gap, 4px);outline-offset:-1px;max-width:var(--multi-max-width, none);color:var(--multi-item-color, var(--item-color))}.multi-item.disabled.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8:hover{background:var(--multi-item-disabled-hover-bg, #ebedef);color:var(--multi-item-disabled-hover-color, #c1c6cc)}.multi-item-text.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multi-item-clear.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{display:flex;align-items:center;justify-content:center;--clear-icon-color:var(--multi-item-clear-icon-color, #000)}.multi-item.active.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{outline:var(--multi-item-active-outline, 1px solid #006fe8)}.svelte-select-list.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{box-shadow:var(--list-shadow, 0 2px 3px 0 rgba(44, 62, 80, 0.24));border-radius:var(--list-border-radius, 4px);max-height:var(--list-max-height, 252px);overflow-y:auto;background:var(--list-background, #fff);position:var(--list-position, absolute);z-index:var(--list-z-index, 2);border:var(--list-border)}.prefloat.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{opacity:0;pointer-events:none}.list-group-title.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{color:var(--group-title-color, #8f8f8f);cursor:default;font-size:var(--group-title-font-size, 16px);font-weight:var(--group-title-font-weight, 600);height:var(--height, 42px);line-height:var(--height, 42px);padding:var(--group-title-padding, 0 20px);text-overflow:ellipsis;overflow-x:hidden;white-space:nowrap;text-transform:var(--group-title-text-transform, uppercase);border-width:var(--group-title-border-width, medium);border-style:var(--group-title-border-style, none);border-color:var(--group-title-border-color, color)}.empty.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{text-align:var(--list-empty-text-align, center);padding:var(--list-empty-padding, 20px 0);color:var(--list-empty-color, #78848f)}.item.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{cursor:default;height:var(--item-height, var(--height, 42px));line-height:var(--item-line-height, var(--height, 42px));padding:var(--item-padding, 0 20px);color:var(--item-color, inherit);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;transition:var(--item-transition, all 0.2s);align-items:center;width:100%}.item.group-item.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{padding-left:var(--group-item-padding-left, 40px)}.item.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8:active{background:var(--item-active-background, #b9daff)}.item.active.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{background:var(--item-is-active-bg, #007aff);color:var(--item-is-active-color, #fff)}.item.first.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{border-radius:var(--item-first-border-radius, 4px 4px 0 0)}.item.hover.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8:not(.active){background:var(--item-hover-bg, #e7f2ff);color:var(--item-hover-color, inherit)}.item.not-selectable.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8,.item.hover.item.not-selectable.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8,.item.active.item.not-selectable.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8,.item.not-selectable.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8:active{color:var(--item-is-not-selectable-color, #999);background:transparent}.required.svelte-82qwg8.svelte-82qwg8.svelte-82qwg8{opacity:0;z-index:-1;position:absolute;top:0;left:0;bottom:0;right:0}"); + } + var rR = function(e20) { + return { value: 8 & e20[0] }; + }; + var oR = function(e20) { + return { value: e20[3] }; + }; + var iR = function(e20) { + return { value: 8 & e20[0] }; + }; + var aR = function(e20) { + return { value: e20[3] }; + }; + var sR = function(e20) { + return { listOpen: 64 & e20[0] }; + }; + var cR = function(e20) { + return { listOpen: e20[6] }; + }; + var lR = function(e20) { + return {}; + }; + var uR = function(e20) { + return {}; + }; + var fR = function(e20) { + return {}; + }; + var dR = function(e20) { + return {}; + }; + var hR = function(e20) { + return { selection: 8 & e20[0] }; + }; + var vR = function(e20) { + return { selection: e20[3] }; + }; + function pR(e20, t10, n10) { + var r10 = e20.slice(); + return r10[126] = t10[n10], r10[128] = n10, r10; + } + var mR = function(e20) { + return {}; + }; + var gR = function(e20) { + return {}; + }; + var yR = function(e20) { + return { selection: 8 & e20[0] }; + }; + var bR = function(e20) { + return { selection: e20[126], index: e20[128] }; + }; + var kR = function(e20) { + return {}; + }; + var wR = function(e20) { + return {}; + }; + var xR = function(e20) { + return {}; + }; + var jR = function(e20) { + return {}; + }; + var SR = function(e20) { + return {}; + }; + var CR = function(e20) { + return {}; + }; + function $R(e20, t10, n10) { + var r10 = e20.slice(); + return r10[126] = t10[n10], r10[128] = n10, r10; + } + var _R = function(e20) { + return { item: 16777216 & e20[0] }; + }; + var OR = function(e20) { + return { item: e20[126], index: e20[128] }; + }; + var MR = function(e20) { + return { filteredItems: 16777216 & e20[0] }; + }; + var ER = function(e20) { + return { filteredItems: e20[24] }; + }; + var AR = function(e20) { + return {}; + }; + var PR = function(e20) { + return {}; + }; + function TR(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10 = e20[50]["list-prepend"] && RR(e20), u10 = [DR, IR, NR], f10 = []; + function d10(e21, t11) { + return e21[50].list ? 0 : e21[24].length > 0 ? 1 : e21[19] ? -1 : 2; + } + ~(r10 = d10(e20)) && (o10 = f10[r10] = u10[r10](e20)); + var h10 = e20[50]["list-append"] && zR(e20); + return { c: function() { + t10 = ji("div"), l10 && l10.c(), n10 = $i(), o10 && o10.c(), i10 = $i(), h10 && h10.c(), Ai(t10, "class", "svelte-select-list svelte-82qwg8"), Ai(t10, "role", "none"), zi(t10, "prefloat", e20[28]); + }, m: function(o11, u11) { + ki(o11, t10, u11), l10 && l10.m(t10, null), pi(t10, n10), ~r10 && f10[r10].m(t10, null), pi(t10, i10), h10 && h10.m(t10, null), e20[91](t10), a10 = true, s10 || (c10 = [ci(e20[49].call(null, t10)), Oi(t10, "scroll", e20[41]), Oi(t10, "pointerup", Ei(Mi(e20[85]))), Oi(t10, "mousedown", Ei(Mi(e20[86])))], s10 = true); + }, p: function(e21, s11) { + e21[50]["list-prepend"] ? l10 ? (l10.p(e21, s11), 524288 & s11[1] && wa(l10, 1)) : ((l10 = RR(e21)).c(), wa(l10, 1), l10.m(t10, n10)) : l10 && (ba(), xa(l10, 1, 1, function() { + l10 = null; + }), ka()); + var c11 = r10; + (r10 = d10(e21)) === c11 ? ~r10 && f10[r10].p(e21, s11) : (o10 && (ba(), xa(f10[c11], 1, 1, function() { + f10[c11] = null; + }), ka()), ~r10 ? ((o10 = f10[r10]) ? o10.p(e21, s11) : (o10 = f10[r10] = u10[r10](e21)).c(), wa(o10, 1), o10.m(t10, i10)) : o10 = null), e21[50]["list-append"] ? h10 ? (h10.p(e21, s11), 524288 & s11[1] && wa(h10, 1)) : ((h10 = zR(e21)).c(), wa(h10, 1), h10.m(t10, null)) : h10 && (ba(), xa(h10, 1, 1, function() { + h10 = null; + }), ka()), (!a10 || 268435456 & s11[0]) && zi(t10, "prefloat", e21[28]); + }, i: function(e21) { + a10 || (wa(l10), wa(o10), wa(h10), a10 = true); + }, o: function(e21) { + xa(l10), xa(o10), xa(h10), a10 = false; + }, d: function(n11) { + n11 && wi(t10), l10 && l10.d(), ~r10 && f10[r10].d(), h10 && h10.d(), e20[91](null), s10 = false, Qo(c10); + } }; + } + function RR(e20) { + var t10, n10 = e20[83]["list-prepend"], r10 = ei(n10, e20, e20[82], PR); + return { c: function() { + r10 && r10.c(); + }, m: function(e21, n11) { + r10 && r10.m(e21, n11), t10 = true; + }, p: function(e21, o10) { + r10 && r10.p && (!t10 || 1048576 & o10[2]) && ri(r10, n10, e21, e21[82], t10 ? ni(n10, e21[82], o10, AR) : oi(e21[82]), PR); + }, i: function(e21) { + t10 || (wa(r10, e21), t10 = true); + }, o: function(e21) { + xa(r10, e21), t10 = false; + }, d: function(e21) { + r10 && r10.d(e21); + } }; + } + function NR(e20) { + var t10, n10, r10 = e20[83].empty, o10 = ei(r10, e20, e20[82], CR), i10 = o10 || { c: function() { + (n10 = ji("div")).textContent = "No options", Ai(n10, "class", "empty svelte-82qwg8"); + }, m: function(e21, t11) { + ki(e21, n10, t11); + }, p: Wo, d: function(e21) { + e21 && wi(n10); + } }; + return { c: function() { + i10 && i10.c(); + }, m: function(e21, n11) { + i10 && i10.m(e21, n11), t10 = true; + }, p: function(e21, n11) { + o10 && o10.p && (!t10 || 1048576 & n11[2]) && ri(o10, r10, e21, e21[82], t10 ? ni(r10, e21[82], n11, SR) : oi(e21[82]), CR); + }, i: function(e21) { + t10 || (wa(i10, e21), t10 = true); + }, o: function(e21) { + xa(i10, e21), t10 = false; + }, d: function(e21) { + i10 && i10.d(e21); + } }; + } + function IR(e20) { + for (var t10, n10, r10 = Ca(e20[24]), o10 = [], i10 = 0; i10 < r10.length; i10 += 1) + o10[i10] = qR($R(e20, r10, i10)); + var a10 = function(e21) { + return xa(o10[e21], 1, 1, function() { + o10[e21] = null; + }); + }; + return { c: function() { + for (var e21 = 0; e21 < o10.length; e21 += 1) + o10[e21].c(); + t10 = _i(); + }, m: function(e21, r11) { + for (var i11 = 0; i11 < o10.length; i11 += 1) + o10[i11] && o10[i11].m(e21, r11); + ki(e21, t10, r11), n10 = true; + }, p: function(e21, n11) { + if (1627402376 & n11[0] | 28672 & n11[1] | 1048576 & n11[2]) { + var i11; + for (r10 = Ca(e21[24]), i11 = 0; i11 < r10.length; i11 += 1) { + var s10 = $R(e21, r10, i11); + o10[i11] ? (o10[i11].p(s10, n11), wa(o10[i11], 1)) : (o10[i11] = qR(s10), o10[i11].c(), wa(o10[i11], 1), o10[i11].m(t10.parentNode, t10)); + } + for (ba(), i11 = r10.length; i11 < o10.length; i11 += 1) + a10(i11); + ka(); + } + }, i: function(e21) { + if (!n10) { + for (var t11 = 0; t11 < r10.length; t11 += 1) + wa(o10[t11]); + n10 = true; + } + }, o: function(e21) { + o10 = o10.filter(Boolean); + for (var t11 = 0; t11 < o10.length; t11 += 1) + xa(o10[t11]); + n10 = false; + }, d: function(e21) { + e21 && wi(t10), xi(o10, e21); + } }; + } + function DR(e20) { + var t10, n10 = e20[83].list, r10 = ei(n10, e20, e20[82], ER); + return { c: function() { + r10 && r10.c(); + }, m: function(e21, n11) { + r10 && r10.m(e21, n11), t10 = true; + }, p: function(e21, o10) { + r10 && r10.p && (!t10 || 16777216 & o10[0] | 1048576 & o10[2]) && ri(r10, n10, e21, e21[82], t10 ? ni(n10, e21[82], o10, MR) : oi(e21[82]), ER); + }, i: function(e21) { + t10 || (wa(r10, e21), t10 = true); + }, o: function(e21) { + xa(r10, e21), t10 = false; + }, d: function(e21) { + r10 && r10.d(e21); + } }; + } + function qR(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10 = e20[83].item, u10 = ei(l10, e20, e20[82], OR), f10 = u10 || function(e21) { + var t11, n11, r11 = (null === (t11 = e21[126]) || void 0 === t11 ? void 0 : t11[e21[12]]) + ""; + return { c: function() { + n11 = Ci(r11); + }, m: function(e23, t12) { + ki(e23, n11, t12); + }, p: function(e23, t12) { + var o11; + 16781312 & t12[0] && r11 !== (r11 = (null === (o11 = e23[126]) || void 0 === o11 ? void 0 : o11[e23[12]]) + "") && Ni(n11, r11); + }, d: function(e23) { + e23 && wi(n11); + } }; + }(e20); + function d10() { + return e20[88](e20[128]); + } + function h10() { + return e20[89](e20[128]); + } + function v10() { + return e20[90](e20[126], e20[128]); + } + return { c: function() { + var r11; + t10 = ji("div"), n10 = ji("div"), f10 && f10.c(), i10 = $i(), Ai(n10, "class", "item svelte-82qwg8"), zi(n10, "list-group-title", e20[126].groupHeader), zi(n10, "active", e20[45](e20[126], e20[3], e20[13])), zi(n10, "first", 0 === e20[128]), zi(n10, "hover", e20[7] === e20[128]), zi(n10, "group-item", e20[126].groupItem), zi(n10, "not-selectable", false === (null === (r11 = e20[126]) || void 0 === r11 ? void 0 : r11.selectable)), Ai(t10, "class", "list-item svelte-82qwg8"), Ai(t10, "tabindex", "-1"), Ai(t10, "role", "none"); + }, m: function(l11, u11) { + ki(l11, t10, u11), pi(t10, n10), f10 && f10.m(n10, null), pi(t10, i10), a10 = true, s10 || (c10 = [ci(r10 = e20[46].call(null, n10, { scroll: e20[45](e20[126], e20[3], e20[13]), listDom: e20[30] })), ci(o10 = e20[47].call(null, n10, { scroll: e20[29] === e20[128], listDom: e20[30] })), Oi(t10, "mouseover", d10), Oi(t10, "focus", h10), Oi(t10, "click", Ei(v10)), Oi(t10, "keydown", Ei(Mi(e20[87])))], s10 = true); + }, p: function(t11, i11) { + var s11; + (e20 = t11, u10 ? u10.p && (!a10 || 16777216 & i11[0] | 1048576 & i11[2]) && ri(u10, l10, e20, e20[82], a10 ? ni(l10, e20[82], i11, _R) : oi(e20[82]), OR) : f10 && f10.p && (!a10 || 16781312 & i11[0]) && f10.p(e20, a10 ? i11 : [-1, -1, -1, -1, -1]), r10 && Yo(r10.update) && 1090527240 & i11[0] && r10.update.call(null, { scroll: e20[45](e20[126], e20[3], e20[13]), listDom: e20[30] }), o10 && Yo(o10.update) && 1610612736 & i11[0] && o10.update.call(null, { scroll: e20[29] === e20[128], listDom: e20[30] }), (!a10 || 16777216 & i11[0]) && zi(n10, "list-group-title", e20[126].groupHeader), (!a10 || 16785416 & i11[0] | 16384 & i11[1]) && zi(n10, "active", e20[45](e20[126], e20[3], e20[13])), (!a10 || 128 & i11[0]) && zi(n10, "hover", e20[7] === e20[128]), (!a10 || 16777216 & i11[0]) && zi(n10, "group-item", e20[126].groupItem), !a10 || 16777216 & i11[0]) && zi(n10, "not-selectable", false === (null === (s11 = e20[126]) || void 0 === s11 ? void 0 : s11.selectable)); + }, i: function(e21) { + a10 || (wa(f10, e21), a10 = true); + }, o: function(e21) { + xa(f10, e21), a10 = false; + }, d: function(e21) { + e21 && wi(t10), f10 && f10.d(e21), s10 = false, Qo(c10); + } }; + } + function zR(e20) { + var t10, n10 = e20[83]["list-append"], r10 = ei(n10, e20, e20[82], jR); + return { c: function() { + r10 && r10.c(); + }, m: function(e21, n11) { + r10 && r10.m(e21, n11), t10 = true; + }, p: function(e21, o10) { + r10 && r10.p && (!t10 || 1048576 & o10[2]) && ri(r10, n10, e21, e21[82], t10 ? ni(n10, e21[82], o10, xR) : oi(e21[82]), jR); + }, i: function(e21) { + t10 || (wa(r10, e21), t10 = true); + }, o: function(e21) { + xa(r10, e21), t10 = false; + }, d: function(e21) { + r10 && r10.d(e21); + } }; + } + function BR(e20) { + var t10, n10, r10, o10, i10; + return { c: function() { + t10 = ji("span"), n10 = Ci(e20[32]), r10 = $i(), o10 = ji("span"), i10 = Ci(e20[31]), Ai(t10, "id", "aria-selection"), Ai(t10, "class", "svelte-82qwg8"), Ai(o10, "id", "aria-context"), Ai(o10, "class", "svelte-82qwg8"); + }, m: function(e21, a10) { + ki(e21, t10, a10), pi(t10, n10), ki(e21, r10, a10), ki(e21, o10, a10), pi(o10, i10); + }, p: function(e21, t11) { + 2 & t11[1] && Ni(n10, e21[32]), 1 & t11[1] && Ni(i10, e21[31]); + }, d: function(e21) { + e21 && (wi(t10), wi(r10), wi(o10)); + } }; + } + function LR(e20) { + var t10, n10, r10, o10, i10 = [VR, FR], a10 = []; + function s10(e21, t11) { + return e21[9] ? 0 : 1; + } + return t10 = s10(e20), n10 = a10[t10] = i10[t10](e20), { c: function() { + n10.c(), r10 = _i(); + }, m: function(e21, n11) { + a10[t10].m(e21, n11), ki(e21, r10, n11), o10 = true; + }, p: function(e21, o11) { + var c10 = t10; + (t10 = s10(e21)) === c10 ? a10[t10].p(e21, o11) : (ba(), xa(a10[c10], 1, 1, function() { + a10[c10] = null; + }), ka(), (n10 = a10[t10]) ? n10.p(e21, o11) : (n10 = a10[t10] = i10[t10](e21)).c(), wa(n10, 1), n10.m(r10.parentNode, r10)); + }, i: function(e21) { + o10 || (wa(n10), o10 = true); + }, o: function(e21) { + xa(n10), o10 = false; + }, d: function(e21) { + e21 && wi(r10), a10[t10].d(e21); + } }; + } + function FR(e20) { + var t10, n10, r10 = e20[83].selection, o10 = ei(r10, e20, e20[82], vR), i10 = o10 || function(e21) { + var t11, n11 = e21[3][e21[12]] + ""; + return { c: function() { + t11 = Ci(n11); + }, m: function(e23, n12) { + ki(e23, t11, n12); + }, p: function(e23, r11) { + 4104 & r11[0] && n11 !== (n11 = e23[3][e23[12]] + "") && Ni(t11, n11); + }, d: function(e23) { + e23 && wi(t11); + } }; + }(e20); + return { c: function() { + t10 = ji("div"), i10 && i10.c(), Ai(t10, "class", "selected-item svelte-82qwg8"), zi(t10, "hide-selected-item", e20[35]); + }, m: function(e21, r11) { + ki(e21, t10, r11), i10 && i10.m(t10, null), n10 = true; + }, p: function(e21, a10) { + o10 ? o10.p && (!n10 || 8 & a10[0] | 1048576 & a10[2]) && ri(o10, r10, e21, e21[82], n10 ? ni(r10, e21[82], a10, hR) : oi(e21[82]), vR) : i10 && i10.p && (!n10 || 4104 & a10[0]) && i10.p(e21, n10 ? a10 : [-1, -1, -1, -1, -1]), (!n10 || 16 & a10[1]) && zi(t10, "hide-selected-item", e21[35]); + }, i: function(e21) { + n10 || (wa(i10, e21), n10 = true); + }, o: function(e21) { + xa(i10, e21), n10 = false; + }, d: function(e21) { + e21 && wi(t10), i10 && i10.d(e21); + } }; + } + function VR(e20) { + for (var t10, n10, r10 = Ca(e20[3]), o10 = [], i10 = 0; i10 < r10.length; i10 += 1) + o10[i10] = WR(pR(e20, r10, i10)); + var a10 = function(e21) { + return xa(o10[e21], 1, 1, function() { + o10[e21] = null; + }); + }; + return { c: function() { + for (var e21 = 0; e21 < o10.length; e21 += 1) + o10[e21].c(); + t10 = _i(); + }, m: function(e21, r11) { + for (var i11 = 0; i11 < o10.length; i11 += 1) + o10[i11] && o10[i11].m(e21, r11); + ki(e21, t10, r11), n10 = true; + }, p: function(e21, n11) { + if (67116040 & n11[0] | 32 & n11[1] | 1048576 & n11[2]) { + var i11; + for (r10 = Ca(e21[3]), i11 = 0; i11 < r10.length; i11 += 1) { + var s10 = pR(e21, r10, i11); + o10[i11] ? (o10[i11].p(s10, n11), wa(o10[i11], 1)) : (o10[i11] = WR(s10), o10[i11].c(), wa(o10[i11], 1), o10[i11].m(t10.parentNode, t10)); + } + for (ba(), i11 = r10.length; i11 < o10.length; i11 += 1) + a10(i11); + ka(); + } + }, i: function(e21) { + if (!n10) { + for (var t11 = 0; t11 < r10.length; t11 += 1) + wa(o10[t11]); + n10 = true; + } + }, o: function(e21) { + o10 = o10.filter(Boolean); + for (var t11 = 0; t11 < o10.length; t11 += 1) + xa(o10[t11]); + n10 = false; + }, d: function(e21) { + e21 && wi(t10), xi(o10, e21); + } }; + } + function HR(e20) { + var t10, n10, r10, o10, i10 = e20[83]["multi-clear-icon"], a10 = ei(i10, e20, e20[82], gR), s10 = a10 || function(e21) { + var t11, n11; + return t11 = new XT({}), { c: function() { + Pa(t11.$$.fragment); + }, m: function(e23, r11) { + Ta(t11, e23, r11), n11 = true; + }, i: function(e23) { + n11 || (wa(t11.$$.fragment, e23), n11 = true); + }, o: function(e23) { + xa(t11.$$.fragment, e23), n11 = false; + }, d: function(e23) { + Ra(t11, e23); + } }; + }(); + function c10() { + return e20[92](e20[128]); + } + return { c: function() { + t10 = ji("div"), s10 && s10.c(), Ai(t10, "class", "multi-item-clear svelte-82qwg8"); + }, m: function(e21, i11) { + ki(e21, t10, i11), s10 && s10.m(t10, null), n10 = true, r10 || (o10 = Oi(t10, "pointerup", Ei(Mi(c10))), r10 = true); + }, p: function(t11, r11) { + e20 = t11, a10 && a10.p && (!n10 || 1048576 & r11[2]) && ri(a10, i10, e20, e20[82], n10 ? ni(i10, e20[82], r11, mR) : oi(e20[82]), gR); + }, i: function(e21) { + n10 || (wa(s10, e21), n10 = true); + }, o: function(e21) { + xa(s10, e21), n10 = false; + }, d: function(e21) { + e21 && wi(t10), s10 && s10.d(e21), r10 = false, o10(); + } }; + } + function WR(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10 = e20[83].selection, l10 = ei(c10, e20, e20[82], bR), u10 = l10 || function(e21) { + var t11, n11 = e21[126][e21[12]] + ""; + return { c: function() { + t11 = Ci(n11); + }, m: function(e23, n12) { + ki(e23, t11, n12); + }, p: function(e23, r11) { + 4104 & r11[0] && n11 !== (n11 = e23[126][e23[12]] + "") && Ni(t11, n11); + }, d: function(e23) { + e23 && wi(t11); + } }; + }(e20), f10 = !e20[11] && !e20[10] && XT && HR(e20); + function d10() { + return e20[93](e20[128]); + } + return { c: function() { + t10 = ji("div"), n10 = ji("span"), u10 && u10.c(), r10 = $i(), f10 && f10.c(), o10 = $i(), Ai(n10, "class", "multi-item-text svelte-82qwg8"), Ai(t10, "class", "multi-item svelte-82qwg8"), Ai(t10, "role", "none"), zi(t10, "active", e20[26] === e20[128]), zi(t10, "disabled", e20[11]); + }, m: function(c11, l11) { + ki(c11, t10, l11), pi(t10, n10), u10 && u10.m(n10, null), pi(t10, r10), f10 && f10.m(t10, null), pi(t10, o10), i10 = true, a10 || (s10 = [Oi(t10, "click", Mi(d10)), Oi(t10, "keydown", Ei(Mi(e20[84])))], a10 = true); + }, p: function(n11, r11) { + e20 = n11, l10 ? l10.p && (!i10 || 8 & r11[0] | 1048576 & r11[2]) && ri(l10, c10, e20, e20[82], i10 ? ni(c10, e20[82], r11, yR) : oi(e20[82]), bR) : u10 && u10.p && (!i10 || 4104 & r11[0]) && u10.p(e20, i10 ? r11 : [-1, -1, -1, -1, -1]), e20[11] || e20[10] || !XT ? f10 && (ba(), xa(f10, 1, 1, function() { + f10 = null; + }), ka()) : f10 ? (f10.p(e20, r11), 3072 & r11[0] && wa(f10, 1)) : ((f10 = HR(e20)).c(), wa(f10, 1), f10.m(t10, o10)), (!i10 || 67108864 & r11[0]) && zi(t10, "active", e20[26] === e20[128]), (!i10 || 2048 & r11[0]) && zi(t10, "disabled", e20[11]); + }, i: function(e21) { + i10 || (wa(u10, e21), wa(f10), i10 = true); + }, o: function(e21) { + xa(u10, e21), xa(f10), i10 = false; + }, d: function(e21) { + e21 && wi(t10), u10 && u10.d(e21), f10 && f10.d(), a10 = false, Qo(s10); + } }; + } + function UR(e20) { + var t10, n10, r10 = e20[83]["loading-icon"], o10 = ei(r10, e20, e20[82], dR), i10 = o10 || function(e21) { + var t11, n11; + return t11 = new tR({}), { c: function() { + Pa(t11.$$.fragment); + }, m: function(e23, r11) { + Ta(t11, e23, r11), n11 = true; + }, i: function(e23) { + n11 || (wa(t11.$$.fragment, e23), n11 = true); + }, o: function(e23) { + xa(t11.$$.fragment, e23), n11 = false; + }, d: function(e23) { + Ra(t11, e23); + } }; + }(); + return { c: function() { + t10 = ji("div"), i10 && i10.c(), Ai(t10, "class", "icon loading svelte-82qwg8"), Ai(t10, "aria-hidden", "true"); + }, m: function(e21, r11) { + ki(e21, t10, r11), i10 && i10.m(t10, null), n10 = true; + }, p: function(e21, t11) { + o10 && o10.p && (!n10 || 1048576 & t11[2]) && ri(o10, r10, e21, e21[82], n10 ? ni(r10, e21[82], t11, fR) : oi(e21[82]), dR); + }, i: function(e21) { + n10 || (wa(i10, e21), n10 = true); + }, o: function(e21) { + xa(i10, e21), n10 = false; + }, d: function(e21) { + e21 && wi(t10), i10 && i10.d(e21); + } }; + } + function JR(e20) { + var t10, n10, r10, o10, i10 = e20[83]["clear-icon"], a10 = ei(i10, e20, e20[82], uR), s10 = a10 || function(e21) { + var t11, n11; + return t11 = new XT({}), { c: function() { + Pa(t11.$$.fragment); + }, m: function(e23, r11) { + Ta(t11, e23, r11), n11 = true; + }, i: function(e23) { + n11 || (wa(t11.$$.fragment, e23), n11 = true); + }, o: function(e23) { + xa(t11.$$.fragment, e23), n11 = false; + }, d: function(e23) { + Ra(t11, e23); + } }; + }(); + return { c: function() { + t10 = ji("button"), s10 && s10.c(), Ai(t10, "type", "button"), Ai(t10, "class", "icon clear-select svelte-82qwg8"); + }, m: function(i11, a11) { + ki(i11, t10, a11), s10 && s10.m(t10, null), n10 = true, r10 || (o10 = Oi(t10, "click", e20[22]), r10 = true); + }, p: function(e21, t11) { + a10 && a10.p && (!n10 || 1048576 & t11[2]) && ri(a10, i10, e21, e21[82], n10 ? ni(i10, e21[82], t11, lR) : oi(e21[82]), uR); + }, i: function(e21) { + n10 || (wa(s10, e21), n10 = true); + }, o: function(e21) { + xa(s10, e21), n10 = false; + }, d: function(e21) { + e21 && wi(t10), s10 && s10.d(e21), r10 = false, o10(); + } }; + } + function KR(e20) { + var t10, n10, r10 = e20[83]["chevron-icon"], o10 = ei(r10, e20, e20[82], cR), i10 = o10 || function(e21) { + var t11, n11; + return t11 = new GT({}), { c: function() { + Pa(t11.$$.fragment); + }, m: function(e23, r11) { + Ta(t11, e23, r11), n11 = true; + }, i: function(e23) { + n11 || (wa(t11.$$.fragment, e23), n11 = true); + }, o: function(e23) { + xa(t11.$$.fragment, e23), n11 = false; + }, d: function(e23) { + Ra(t11, e23); + } }; + }(); + return { c: function() { + t10 = ji("div"), i10 && i10.c(), Ai(t10, "class", "icon chevron svelte-82qwg8"), Ai(t10, "aria-hidden", "true"); + }, m: function(e21, r11) { + ki(e21, t10, r11), i10 && i10.m(t10, null), n10 = true; + }, p: function(e21, t11) { + o10 && o10.p && (!n10 || 64 & t11[0] | 1048576 & t11[2]) && ri(o10, r10, e21, e21[82], n10 ? ni(r10, e21[82], t11, sR) : oi(e21[82]), cR); + }, i: function(e21) { + n10 || (wa(i10, e21), n10 = true); + }, o: function(e21) { + xa(i10, e21), n10 = false; + }, d: function(e21) { + e21 && wi(t10), i10 && i10.d(e21); + } }; + } + function GR(e20) { + var t10, n10, r10 = e20[83].required, o10 = ei(r10, e20, e20[82], oR), i10 = o10 || { c: function() { + Ai(n10 = ji("select"), "class", "required svelte-82qwg8"), n10.required = true, Ai(n10, "tabindex", "-1"), Ai(n10, "aria-hidden", "true"); + }, m: function(e21, t11) { + ki(e21, n10, t11); + }, p: Wo, d: function(e21) { + e21 && wi(n10); + } }; + return { c: function() { + i10 && i10.c(); + }, m: function(e21, n11) { + i10 && i10.m(e21, n11), t10 = true; + }, p: function(e21, n11) { + o10 && o10.p && (!t10 || 8 & n11[0] | 1048576 & n11[2]) && ri(o10, r10, e21, e21[82], t10 ? ni(r10, e21[82], n11, rR) : oi(e21[82]), oR); + }, i: function(e21) { + t10 || (wa(i10, e21), t10 = true); + }, o: function(e21) { + xa(i10, e21), t10 = false; + }, d: function(e21) { + i10 && i10.d(e21); + } }; + } + function QR(e20) { + for (var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10, p10, m10, g10, y10, b10, k10, w10 = e20[6] && TR(e20), x10 = e20[2] && BR(e20), j10 = e20[83].prepend, S10 = ei(j10, e20, e20[82], wR), C10 = e20[25] && LR(e20), $10 = [{ readOnly: u10 = !e20[17] }, e20[27], { placeholder: e20[33] }, { style: e20[18] }, { disabled: e20[11] }], _10 = {}, O10 = 0; O10 < $10.length; O10 += 1) + _10 = Jo(_10, $10[O10]); + var M10 = e20[5] && UR(e20), E10 = e20[34] && JR(e20), A10 = e20[20] && KR(e20), P10 = e20[83]["input-hidden"], T8 = ei(P10, e20, e20[82], aR), R8 = T8 || /* @__PURE__ */ function(e21) { + var t11, n11; + return { c: function() { + Ai(t11 = ji("input"), "name", e21[8]), Ai(t11, "type", "hidden"), t11.value = n11 = e21[3] ? JSON.stringify(e21[3]) : null, Ai(t11, "class", "svelte-82qwg8"); + }, m: function(e23, n12) { + ki(e23, t11, n12); + }, p: function(e23, r11) { + 256 & r11[0] && Ai(t11, "name", e23[8]), 8 & r11[0] && n11 !== (n11 = e23[3] ? JSON.stringify(e23[3]) : null) && (t11.value = n11); + }, d: function(e23) { + e23 && wi(t11); + } }; + }(e20), N8 = e20[16] && (!e20[3] || 0 === e20[3].length) && GR(e20); + return { c: function() { + t10 = ji("div"), w10 && w10.c(), n10 = $i(), r10 = ji("span"), x10 && x10.c(), o10 = $i(), i10 = ji("div"), S10 && S10.c(), a10 = $i(), s10 = ji("div"), C10 && C10.c(), c10 = $i(), l10 = ji("input"), f10 = $i(), d10 = ji("div"), M10 && M10.c(), h10 = $i(), E10 && E10.c(), v10 = $i(), A10 && A10.c(), p10 = $i(), R8 && R8.c(), m10 = $i(), N8 && N8.c(), Ai(r10, "aria-live", "polite"), Ai(r10, "aria-atomic", "false"), Ai(r10, "aria-relevant", "additions text"), Ai(r10, "class", "a11y-text svelte-82qwg8"), Ai(i10, "class", "prepend svelte-82qwg8"), Ti(l10, _10), zi(l10, "svelte-82qwg8", true), Ai(s10, "class", "value-container svelte-82qwg8"), Ai(d10, "class", "indicators svelte-82qwg8"), Ai(t10, "class", g10 = "svelte-select " + e20[21] + " svelte-82qwg8"), Ai(t10, "style", e20[14]), Ai(t10, "role", "none"), zi(t10, "multi", e20[9]), zi(t10, "disabled", e20[11]), zi(t10, "focused", e20[2]), zi(t10, "list-open", e20[6]), zi(t10, "show-chevron", e20[20]), zi(t10, "error", e20[15]); + }, m: function(u11, g11) { + ki(u11, t10, g11), w10 && w10.m(t10, null), pi(t10, n10), pi(t10, r10), x10 && x10.m(r10, null), pi(t10, o10), pi(t10, i10), S10 && S10.m(i10, null), pi(t10, a10), pi(t10, s10), C10 && C10.m(s10, null), pi(s10, c10), pi(s10, l10), l10.autofocus && l10.focus(), e20[94](l10), Ii(l10, e20[4]), pi(t10, f10), pi(t10, d10), M10 && M10.m(d10, null), pi(d10, h10), E10 && E10.m(d10, null), pi(d10, v10), A10 && A10.m(d10, null), pi(t10, p10), R8 && R8.m(t10, null), pi(t10, m10), N8 && N8.m(t10, null), e20[96](t10), y10 = true, b10 || (k10 = [Oi(window, "click", e20[42]), Oi(window, "keydown", e20[37]), Oi(l10, "keydown", e20[37]), Oi(l10, "blur", e20[39]), Oi(l10, "focus", e20[38]), Oi(l10, "input", e20[95]), Oi(t10, "pointerup", Mi(e20[40])), ci(e20[48].call(null, t10))], b10 = true); + }, p: function(e21, o11) { + e21[6] ? w10 ? (w10.p(e21, o11), 64 & o11[0] && wa(w10, 1)) : ((w10 = TR(e21)).c(), wa(w10, 1), w10.m(t10, n10)) : w10 && (ba(), xa(w10, 1, 1, function() { + w10 = null; + }), ka()), e21[2] ? x10 ? x10.p(e21, o11) : ((x10 = BR(e21)).c(), x10.m(r10, null)) : x10 && (x10.d(1), x10 = null), S10 && S10.p && (!y10 || 1048576 & o11[2]) && ri(S10, j10, e21, e21[82], y10 ? ni(j10, e21[82], o11, kR) : oi(e21[82]), wR), e21[25] ? C10 ? (C10.p(e21, o11), 33554432 & o11[0] && wa(C10, 1)) : ((C10 = LR(e21)).c(), wa(C10, 1), C10.m(s10, c10)) : C10 && (ba(), xa(C10, 1, 1, function() { + C10 = null; + }), ka()), Ti(l10, _10 = Ma($10, [(!y10 || 131072 & o11[0] && u10 !== (u10 = !e21[17])) && { readOnly: u10 }, 134217728 & o11[0] && e21[27], (!y10 || 4 & o11[1]) && { placeholder: e21[33] }, (!y10 || 262144 & o11[0]) && { style: e21[18] }, (!y10 || 2048 & o11[0]) && { disabled: e21[11] }])), 16 & o11[0] && l10.value !== e21[4] && Ii(l10, e21[4]), zi(l10, "svelte-82qwg8", true), e21[5] ? M10 ? (M10.p(e21, o11), 32 & o11[0] && wa(M10, 1)) : ((M10 = UR(e21)).c(), wa(M10, 1), M10.m(d10, h10)) : M10 && (ba(), xa(M10, 1, 1, function() { + M10 = null; + }), ka()), e21[34] ? E10 ? (E10.p(e21, o11), 8 & o11[1] && wa(E10, 1)) : ((E10 = JR(e21)).c(), wa(E10, 1), E10.m(d10, v10)) : E10 && (ba(), xa(E10, 1, 1, function() { + E10 = null; + }), ka()), e21[20] ? A10 ? (A10.p(e21, o11), 1048576 & o11[0] && wa(A10, 1)) : ((A10 = KR(e21)).c(), wa(A10, 1), A10.m(d10, null)) : A10 && (ba(), xa(A10, 1, 1, function() { + A10 = null; + }), ka()), T8 ? T8.p && (!y10 || 8 & o11[0] | 1048576 & o11[2]) && ri(T8, P10, e21, e21[82], y10 ? ni(P10, e21[82], o11, iR) : oi(e21[82]), aR) : R8 && R8.p && (!y10 || 264 & o11[0]) && R8.p(e21, y10 ? o11 : [-1, -1, -1, -1, -1]), !e21[16] || e21[3] && 0 !== e21[3].length ? N8 && (ba(), xa(N8, 1, 1, function() { + N8 = null; + }), ka()) : N8 ? (N8.p(e21, o11), 65544 & o11[0] && wa(N8, 1)) : ((N8 = GR(e21)).c(), wa(N8, 1), N8.m(t10, null)), (!y10 || 2097152 & o11[0] && g10 !== (g10 = "svelte-select " + e21[21] + " svelte-82qwg8")) && Ai(t10, "class", g10), (!y10 || 16384 & o11[0]) && Ai(t10, "style", e21[14]), (!y10 || 2097664 & o11[0]) && zi(t10, "multi", e21[9]), (!y10 || 2099200 & o11[0]) && zi(t10, "disabled", e21[11]), (!y10 || 2097156 & o11[0]) && zi(t10, "focused", e21[2]), (!y10 || 2097216 & o11[0]) && zi(t10, "list-open", e21[6]), (!y10 || 3145728 & o11[0]) && zi(t10, "show-chevron", e21[20]), (!y10 || 2129920 & o11[0]) && zi(t10, "error", e21[15]); + }, i: function(e21) { + y10 || (wa(w10), wa(S10, e21), wa(C10), wa(M10), wa(E10), wa(A10), wa(R8, e21), wa(N8), y10 = true); + }, o: function(e21) { + xa(w10), xa(S10, e21), xa(C10), xa(M10), xa(E10), xa(A10), xa(R8, e21), xa(N8), y10 = false; + }, d: function(n11) { + n11 && wi(t10), w10 && w10.d(), x10 && x10.d(), S10 && S10.d(n11), C10 && C10.d(), e20[94](null), M10 && M10.d(), E10 && E10.d(), A10 && A10.d(), R8 && R8.d(n11), N8 && N8.d(), e20[96](null), b10 = false, Qo(k10); + } }; + } + function YR(e20) { + return e20.map(function(e21, t10) { + return { index: t10, value: e21, label: "".concat(e21) }; + }); + } + function XR(e20, t10, n10) { + var r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10, p10, m10, g10, y10, b10 = t10.$$slots, k10 = void 0 === b10 ? {} : b10, w10 = t10.$$scope, x10 = function(e21) { + var t11 = {}; + for (var n11 in e21) + t11[n11] = true; + return t11; + }(k10), j10 = Yi(), S10 = t10.justValue, C10 = void 0 === S10 ? null : S10, $10 = t10.filter, _10 = void 0 === $10 ? HT : $10, O10 = t10.getItems, M10 = void 0 === O10 ? WT : O10, E10 = t10.id, A10 = void 0 === E10 ? null : E10, P10 = t10.name, T8 = void 0 === P10 ? null : P10, R8 = t10.container, N8 = void 0 === R8 ? void 0 : R8, I10 = t10.input, D10 = void 0 === I10 ? void 0 : I10, q10 = t10.multiple, z10 = void 0 !== q10 && q10, B10 = t10.multiFullItemClearable, L10 = void 0 !== B10 && B10, F10 = t10.disabled, V10 = void 0 !== F10 && F10, H10 = t10.focused, W10 = void 0 !== H10 && H10, U10 = t10.value, J10 = void 0 === U10 ? null : U10, K10 = t10.filterText, G10 = void 0 === K10 ? "" : K10, Q10 = t10.placeholder, Y10 = void 0 === Q10 ? "Please select" : Q10, X10 = t10.placeholderAlwaysShow, Z10 = void 0 !== X10 && X10, ee2 = t10.items, te2 = void 0 === ee2 ? null : ee2, ne2 = t10.label, re2 = void 0 === ne2 ? "label" : ne2, oe2 = t10.itemFilter, ie2 = void 0 === oe2 ? function(e21, t11, n11) { + return "".concat(e21).toLowerCase().includes(t11.toLowerCase()); + } : oe2, ae2 = t10.groupBy, se2 = void 0 === ae2 ? void 0 : ae2, ce2 = t10.groupFilter, le2 = void 0 === ce2 ? function(e21) { + return e21; + } : ce2, ue2 = t10.groupHeaderSelectable, fe2 = void 0 !== ue2 && ue2, de2 = t10.itemId, he2 = void 0 === de2 ? "value" : de2, ve2 = t10.loadOptions, pe2 = void 0 === ve2 ? void 0 : ve2, me2 = t10.containerStyles, ge2 = void 0 === me2 ? "" : me2, ye2 = t10.hasError, be2 = void 0 !== ye2 && ye2, ke2 = t10.filterSelectedItems, we2 = void 0 === ke2 || ke2, xe2 = t10.required, je2 = void 0 !== xe2 && xe2, Se2 = t10.closeListOnChange, Ce2 = void 0 === Se2 || Se2, $e2 = t10.clearFilterTextOnBlur, _e2 = void 0 === $e2 || $e2, Oe2 = t10.createGroupHeaderItem, Me2 = void 0 === Oe2 ? function(e21, t11) { + return qo({ value: e21 }, re2, e21); + } : Oe2, Ee2 = t10.searchable, Ae2 = void 0 === Ee2 || Ee2, Pe2 = t10.inputStyles, Te2 = void 0 === Pe2 ? "" : Pe2, Re2 = t10.clearable, Ne2 = void 0 === Re2 || Re2, Ie2 = t10.loading, De2 = void 0 !== Ie2 && Ie2, qe2 = t10.listOpen, ze2 = void 0 !== qe2 && qe2, Be2 = t10.debounce, Le2 = void 0 === Be2 ? function(e21) { + var t11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1; + clearTimeout(d10), d10 = setTimeout(e21, t11); + } : Be2, Fe2 = t10.debounceWait, Ve2 = void 0 === Fe2 ? 300 : Fe2, He2 = t10.hideEmptyState, We2 = void 0 !== He2 && He2, Ue2 = t10.inputAttributes, Je2 = void 0 === Ue2 ? {} : Ue2, Ke2 = t10.listAutoWidth, Ge2 = void 0 === Ke2 || Ke2, Qe2 = t10.showChevron, Ye2 = void 0 !== Qe2 && Qe2, Xe2 = t10.listOffset, Ze2 = void 0 === Xe2 ? 5 : Xe2, et2 = t10.hoverItemIndex, tt2 = void 0 === et2 ? 0 : et2, nt2 = t10.floatingConfig, rt2 = void 0 === nt2 ? {} : nt2, ot2 = t10.class, it2 = void 0 === ot2 ? "" : ot2; + function at2(e21) { + var t11 = [], n11 = {}; + e21.forEach(function(e23) { + var r12 = se2(e23); + t11.includes(r12) || (t11.push(r12), n11[r12] = [], r12 && n11[r12].push(Object.assign(Me2(r12, e23), { id: r12, groupHeader: true, selectable: fe2 }))), n11[r12].push(Object.assign({ groupItem: !!r12 }, e23)); + }); + var r11 = []; + return le2(t11).forEach(function(e23) { + n11[e23] && r11.push.apply(r11, Bo(n11[e23])); + }), r11; + } + function st2() { + var e21 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, t11 = arguments.length > 1 ? arguments[1] : void 0; + n10(7, tt2 = e21 < 0 ? 0 : e21), !t11 && se2 && l10[tt2] && !l10[tt2].selectable && Mt2(1); + } + function ct2() { + var e21 = true; + if (J10) { + var t11 = [], r11 = []; + J10.forEach(function(n11) { + t11.includes(n11[he2]) ? e21 = false : (t11.push(n11[he2]), r11.push(n11)); + }), e21 || n10(3, J10 = r11); + } + return e21; + } + function lt2(e21) { + var t11 = e21 ? e21[he2] : J10[he2]; + return te2.find(function(e23) { + return e23[he2] === t11; + }); + } + function ut2(e21) { + return ft2.apply(this, arguments); + } + function ft2() { + return ft2 = xo(ko().mark(function e21(t11) { + var r11; + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + r11 = J10[t11], 1 === J10.length ? n10(3, J10 = void 0) : n10(3, J10 = J10.filter(function(e24) { + return e24 !== r11; + })), j10("clear", r11); + case 3: + case "end": + return e23.stop(); + } + }, e21); + })), ft2.apply(this, arguments); + } + function dt2(e21) { + var t11, r11; + W10 && D10 === (null === (t11 = document) || void 0 === t11 ? void 0 : t11.activeElement) || (e21 && j10("focus", e21), null === (r11 = D10) || void 0 === r11 || r11.focus(), n10(2, W10 = true)); + } + function ht2(e21) { + return vt2.apply(this, arguments); + } + function vt2() { + return (vt2 = xo(ko().mark(function e21(t11) { + var r11; + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + if (!Ct2) { + e23.next = 2; + break; + } + return e23.abrupt("return"); + case 2: + (ze2 || W10) && (j10("blur", t11), pt2(), n10(2, W10 = false), n10(26, h10 = void 0), null === (r11 = D10) || void 0 === r11 || r11.blur()); + case 3: + case "end": + return e23.stop(); + } + }, e21); + }))).apply(this, arguments); + } + function pt2() { + _e2 && n10(4, G10 = ""), n10(6, ze2 = false); + } + y10 = xo(ko().mark(function e21() { + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + n10(78, v10 = J10), n10(79, p10 = G10), n10(80, m10 = z10); + case 3: + case "end": + return e23.stop(); + } + }, e21); + })), Ki().$$.before_update.push(y10), Gi(function() { + ze2 && n10(2, W10 = true), W10 && D10 && D10.focus(); + }); + var mt2 = t10.ariaValues, gt2 = void 0 === mt2 ? function(e21) { + return "Option ".concat(e21, ", selected."); + } : mt2, yt2 = t10.ariaListOpen, bt2 = void 0 === yt2 ? function(e21, t11) { + return "You are currently focused on option ".concat(e21, ". There are ").concat(t11, " results available."); + } : yt2, kt2 = t10.ariaFocused, wt2 = void 0 === kt2 ? function() { + return "Select is focused, type to refine list, press down to open the menu."; + } : kt2; + var xt2, jt2 = null; + function St2() { + clearTimeout(xt2), xt2 = setTimeout(function() { + Ct2 = false; + }, 100); + } + Qi(function() { + var e21; + null === (e21 = jt2) || void 0 === e21 || e21.remove(); + }); + var Ct2 = false; + function $t2(e21) { + e21 && false !== e21.selectable && function(e23) { + if (e23) { + n10(4, G10 = ""); + var t11 = Object.assign({}, e23); + if (t11.groupHeader && !t11.selectable) + return; + n10(3, J10 = z10 ? J10 ? J10.concat([t11]) : [t11] : n10(3, J10 = t11)), setTimeout(function() { + Ce2 && pt2(), n10(26, h10 = void 0), j10("change", J10), j10("select", e23); + }); + } + }(e21); + } + function _t2(e21) { + Ct2 || n10(7, tt2 = e21); + } + function Ot2(e21) { + var t11 = e21.item, r11 = e21.i; + if (false !== (null == t11 ? void 0 : t11.selectable)) + return J10 && !z10 && J10[he2] === t11[he2] ? pt2() : void (function(e23) { + return e23.groupHeader && e23.selectable || e23.selectable || !e23.hasOwnProperty("selectable"); + }(t11) && (n10(7, tt2 = r11), $t2(t11))); + } + function Mt2(e21) { + if (0 === l10.filter(function(e23) { + return !Object.hasOwn(e23, "selectable") || true === e23.selectable; + }).length) + return n10(7, tt2 = 0); + e21 > 0 && tt2 === l10.length - 1 ? n10(7, tt2 = 0) : n10(7, e21 < 0 && 0 === tt2 ? tt2 = l10.length - 1 : tt2 += e21); + var t11 = l10[tt2]; + t11 && false === t11.selectable && (1 !== e21 && -1 !== e21 || Mt2(e21)); + } + var Et2 = Pt2, At2 = Pt2; + function Pt2(e21) { + return { update: function(t11) { + t11.scroll && (St2(), e21.scrollIntoView({ behavior: "auto", block: "nearest" })); + } }; + } + var Tt2, Rt2 = { strategy: "absolute", placement: "bottom-start", middleware: [(Tt2 = Ze2, void 0 === Tt2 && (Tt2 = 0), { name: "offset", options: Tt2, fn: function(e21) { + return xo(ko().mark(function t11() { + var n11, r11, o11, i11, a11, s11, c11; + return ko().wrap(function(t12) { + for (; ; ) + switch (t12.prev = t12.next) { + case 0: + return o11 = e21.x, i11 = e21.y, a11 = e21.placement, s11 = e21.middlewareData, t12.next = 3, cT(e21, Tt2); + case 3: + if (c11 = t12.sent, a11 !== (null == (n11 = s11.offset) ? void 0 : n11.placement) || null == (r11 = s11.arrow) || !r11.alignmentOffset) { + t12.next = 6; + break; + } + return t12.abrupt("return", {}); + case 6: + return t12.abrupt("return", { x: o11 + c11.x, y: i11 + c11.y, data: Ro(Ro({}, c11), {}, { placement: a11 }) }); + case 7: + case "end": + return t12.stop(); + } + }, t11); + }))(); + } }), FT(), LT()], autoUpdate: false }, Nt2 = /* @__PURE__ */ function(e21) { + var t11, n11, r11 = { autoUpdate: true }, o11 = e21, i11 = function(t12) { + return Ro(Ro(Ro({}, r11), e21 || {}), t12 || {}); + }, a11 = function(e23) { + t11 && n11 && (o11 = i11(e23), VT(t11, n11, o11).then(function(e24) { + var t12; + Object.assign(n11.style, { position: e24.strategy, left: "".concat(e24.x, "px"), top: "".concat(e24.y, "px") }), (null === (t12 = o11) || void 0 === t12 ? void 0 : t12.onComputed) && o11.onComputed(e24); + })); + }, s11 = function(e23) { + Qi(e23.subscribe(function(e24) { + void 0 === t11 ? (t11 = e24, a11()) : (Object.assign(t11, e24), a11()); + })); + }; + return [function(e23) { + if ("subscribe" in e23) + return s11(e23), {}; + t11 = e23, a11(); + }, function(e23, r12) { + var s12; + n11 = e23, o11 = i11(r12), setTimeout(function() { + return a11(r12); + }, 0), a11(r12); + var c11 = function() { + s12 && (s12(), s12 = void 0); + }, l11 = function() { + var e24 = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : o11 || {}).autoUpdate; + c11(), false !== e24 && ca().then(function() { + return BT(t11, n11, function() { + return a11(o11); + }, true === e24 ? {} : e24); + }); + }; + return s12 = l11(), { update: function(e24) { + a11(e24), s12 = l11(e24); + }, destroy: function() { + c11(); + } }; + }, a11]; + }(Rt2), It2 = jo(Nt2, 3), Dt2 = It2[0], qt2 = It2[1], zt2 = It2[2], Bt2 = true; + return e20.$$set = function(e21) { + "justValue" in e21 && n10(52, C10 = e21.justValue), "filter" in e21 && n10(53, _10 = e21.filter), "getItems" in e21 && n10(54, M10 = e21.getItems), "id" in e21 && n10(55, A10 = e21.id), "name" in e21 && n10(8, T8 = e21.name), "container" in e21 && n10(0, N8 = e21.container), "input" in e21 && n10(1, D10 = e21.input), "multiple" in e21 && n10(9, z10 = e21.multiple), "multiFullItemClearable" in e21 && n10(10, L10 = e21.multiFullItemClearable), "disabled" in e21 && n10(11, V10 = e21.disabled), "focused" in e21 && n10(2, W10 = e21.focused), "value" in e21 && n10(3, J10 = e21.value), "filterText" in e21 && n10(4, G10 = e21.filterText), "placeholder" in e21 && n10(56, Y10 = e21.placeholder), "placeholderAlwaysShow" in e21 && n10(57, Z10 = e21.placeholderAlwaysShow), "items" in e21 && n10(51, te2 = e21.items), "label" in e21 && n10(12, re2 = e21.label), "itemFilter" in e21 && n10(58, ie2 = e21.itemFilter), "groupBy" in e21 && n10(59, se2 = e21.groupBy), "groupFilter" in e21 && n10(60, le2 = e21.groupFilter), "groupHeaderSelectable" in e21 && n10(61, fe2 = e21.groupHeaderSelectable), "itemId" in e21 && n10(13, he2 = e21.itemId), "loadOptions" in e21 && n10(62, pe2 = e21.loadOptions), "containerStyles" in e21 && n10(14, ge2 = e21.containerStyles), "hasError" in e21 && n10(15, be2 = e21.hasError), "filterSelectedItems" in e21 && n10(63, we2 = e21.filterSelectedItems), "required" in e21 && n10(16, je2 = e21.required), "closeListOnChange" in e21 && n10(64, Ce2 = e21.closeListOnChange), "clearFilterTextOnBlur" in e21 && n10(65, _e2 = e21.clearFilterTextOnBlur), "createGroupHeaderItem" in e21 && n10(66, Me2 = e21.createGroupHeaderItem), "searchable" in e21 && n10(17, Ae2 = e21.searchable), "inputStyles" in e21 && n10(18, Te2 = e21.inputStyles), "clearable" in e21 && n10(68, Ne2 = e21.clearable), "loading" in e21 && n10(5, De2 = e21.loading), "listOpen" in e21 && n10(6, ze2 = e21.listOpen), "debounce" in e21 && n10(69, Le2 = e21.debounce), "debounceWait" in e21 && n10(70, Ve2 = e21.debounceWait), "hideEmptyState" in e21 && n10(19, We2 = e21.hideEmptyState), "inputAttributes" in e21 && n10(71, Je2 = e21.inputAttributes), "listAutoWidth" in e21 && n10(72, Ge2 = e21.listAutoWidth), "showChevron" in e21 && n10(20, Ye2 = e21.showChevron), "listOffset" in e21 && n10(73, Ze2 = e21.listOffset), "hoverItemIndex" in e21 && n10(7, tt2 = e21.hoverItemIndex), "floatingConfig" in e21 && n10(74, rt2 = e21.floatingConfig), "class" in e21 && n10(21, it2 = e21.class), "ariaValues" in e21 && n10(75, gt2 = e21.ariaValues), "ariaListOpen" in e21 && n10(76, bt2 = e21.ariaListOpen), "ariaFocused" in e21 && n10(77, wt2 = e21.ariaFocused), "$$scope" in e21 && n10(82, w10 = e21.$$scope); + }, e20.$$.update = function() { + var t11, d11, y11, b11, k11; + (8 & e20.$$.dirty[0] | 1048576 & e20.$$.dirty[1] && J10 && function() { + if ("string" == typeof J10) { + var e21 = (te2 || []).find(function(e23) { + return e23[he2] === J10; + }); + n10(3, J10 = e21 || qo(qo({}, he2, J10), "label", J10)); + } else + z10 && Array.isArray(J10) && J10.length > 0 && n10(3, J10 = J10.map(function(e23) { + return "string" == typeof e23 ? { value: e23, label: e23 } : e23; + })); + }(), 131072 & e20.$$.dirty[0] | 512 & e20.$$.dirty[2] && (!Je2 && Ae2 || (n10(27, g10 = Object.assign({ autocapitalize: "none", autocomplete: "off", autocorrect: "off", spellcheck: false, tabindex: 0, type: "text", "aria-autocomplete": "list" }, Je2)), A10 && n10(27, g10.id = A10, g10), Ae2 || n10(27, g10.readonly = true, g10))), 512 & e20.$$.dirty[0] && z10 && J10 && (Array.isArray(J10) ? n10(3, J10 = Bo(J10)) : n10(3, J10 = [J10])), 512 & e20.$$.dirty[0] | 262144 & e20.$$.dirty[2] && m10 && !z10 && J10 && n10(3, J10 = null), 520 & e20.$$.dirty[0] && z10 && J10 && J10.length > 1 && ct2(), 8 & e20.$$.dirty[0] && J10 && (z10 ? JSON.stringify(J10) !== JSON.stringify(v10) && ct2() && j10("input", J10) : v10 && JSON.stringify(J10[he2]) === JSON.stringify(v10[he2]) || j10("input", J10)), 520 & e20.$$.dirty[0] | 65536 & e20.$$.dirty[2] && !J10 && z10 && v10 && j10("input", J10), 6 & e20.$$.dirty[0] && !W10 && D10 && pt2(), 16 & e20.$$.dirty[0] | 131072 & e20.$$.dirty[2] && G10 !== p10 && (pe2 || 0 !== G10.length) && (pe2 ? Le2(xo(ko().mark(function e21() { + var t12; + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + return n10(5, De2 = true), e23.next = 3, M10({ dispatch: j10, loadOptions: pe2, convertStringItemsToObjects: YR, filterText: G10 }); + case 3: + (t12 = e23.sent) ? (n10(5, De2 = t12.loading), n10(6, ze2 = ze2 ? t12.listOpen : G10.length > 0), n10(2, W10 = ze2 && t12.focused), n10(51, te2 = se2 ? at2(t12.filteredItems) : t12.filteredItems)) : (n10(5, De2 = false), n10(2, W10 = true), n10(6, ze2 = true)); + case 5: + case "end": + return e23.stop(); + } + }, e21); + })), Ve2) : (n10(6, ze2 = true), z10 && n10(26, h10 = void 0))), 12824 & e20.$$.dirty[0] | 407896064 & e20.$$.dirty[1] | 3 & e20.$$.dirty[2] && n10(24, l10 = _10({ loadOptions: pe2, filterText: G10, items: te2, multiple: z10, value: J10, itemId: he2, groupBy: se2, label: re2, filterSelectedItems: we2, itemFilter: ie2, convertStringItemsToObjects: YR, filterGroupedItems: at2 })), 16777800 & e20.$$.dirty[0] && !z10 && ze2 && J10 && l10 && (t11 = l10.findIndex(function(e21) { + return e21[he2] === J10[he2]; + }), st2(t11, true)), 576 & e20.$$.dirty[0] && ze2 && z10 && n10(7, tt2 = 0), 16 & e20.$$.dirty[0] && G10 && n10(7, tt2 = 0), 128 & e20.$$.dirty[0] && function(e21) { + j10("hoverItem", e21); + }(tt2), 520 & e20.$$.dirty[0] && n10(25, r10 = z10 ? J10 && J10.length > 0 : J10), 33554448 & e20.$$.dirty[0] && n10(35, o10 = r10 && G10.length > 0), 33556512 & e20.$$.dirty[0] | 64 & e20.$$.dirty[2] && n10(34, i10 = r10 && Ne2 && !V10 && !De2), 520 & e20.$$.dirty[0] | 100663296 & e20.$$.dirty[1]) && n10(33, a10 = Z10 && z10 || z10 && 0 === (null === (d11 = J10) || void 0 === d11 ? void 0 : d11.length) ? Y10 : J10 ? "" : Y10); + (520 & e20.$$.dirty[0] && n10(32, s10 = J10 ? (y11 = void 0, y11 = z10 && J10.length > 0 ? J10.map(function(e21) { + return e21[re2]; + }).join(", ") : J10[re2], gt2(y11)) : ""), 16777412 & e20.$$.dirty[0] && n10(31, c10 = function() { + if (!l10 || 0 === l10.length) + return ""; + var e21 = l10[tt2]; + if (ze2 && e21) { + var t12 = l10 ? l10.length : 0; + return bt2(e21[re2], t12); + } + return wt2(); + }()), 1048576 & e20.$$.dirty[1] && function(e21) { + e21 && 0 !== e21.length && !e21.some(function(e23) { + return "object" !== Ho(e23); + }) && J10 && (z10 ? !J10.some(function(e23) { + return !e23 || !e23[he2]; + }) : J10[he2]) && (Array.isArray(J10) ? n10(3, J10 = J10.map(function(e23) { + return lt2(e23) || e23; + })) : n10(3, J10 = lt2() || J10)); + }(te2), 8712 & e20.$$.dirty[0] && n10(52, C10 = z10 ? J10 ? J10.map(function(e21) { + return e21[he2]; + }) : null : J10 ? J10[he2] : J10), 520 & e20.$$.dirty[0] | 65536 & e20.$$.dirty[2] && (z10 || !v10 || J10 || j10("input", J10)), 16777800 & e20.$$.dirty[0] && ze2 && l10 && !z10 && !J10 && st2(), 16777216 & e20.$$.dirty[0] && function(e21) { + ze2 && j10("filter", e21); + }(l10), 1 & e20.$$.dirty[0] | 4096 & e20.$$.dirty[2]) && (N8 && void 0 === (null === (b11 = rt2) || void 0 === b11 ? void 0 : b11.autoUpdate) && n10(81, Rt2.autoUpdate = true, Rt2)); + 1 & e20.$$.dirty[0] | 528384 & e20.$$.dirty[2] && N8 && rt2 && zt2(Object.assign(Rt2, rt2)), 8388608 & e20.$$.dirty[0] && n10(30, u10 = !!jt2), 8388672 & e20.$$.dirty[0] && function(e21, t12) { + if (!e21 || !t12) + return n10(28, Bt2 = true); + setTimeout(function() { + n10(28, Bt2 = false); + }, 0); + }(jt2, ze2), 8388673 & e20.$$.dirty[0] && ze2 && N8 && jt2 && (k11 = N8.getBoundingClientRect().width, n10(23, jt2.style.width = Ge2 ? k11 + "px" : "auto", jt2)), 128 & e20.$$.dirty[0] && n10(29, f10 = tt2), 70 & e20.$$.dirty[0] && D10 && ze2 && !W10 && dt2(); + }, [N8, D10, W10, J10, G10, De2, ze2, tt2, T8, z10, L10, V10, re2, he2, ge2, be2, je2, Ae2, Te2, We2, Ye2, it2, function() { + j10("clear", J10), n10(3, J10 = void 0), pt2(), dt2(); + }, jt2, l10, r10, h10, g10, Bt2, f10, u10, c10, s10, a10, i10, o10, ut2, function(e21) { + if (W10) + switch (e21.stopPropagation(), e21.key) { + case "Escape": + e21.preventDefault(), pt2(); + break; + case "Enter": + if (e21.preventDefault(), ze2) { + if (0 === l10.length) + break; + var t11 = l10[tt2]; + if (J10 && !z10 && J10[he2] === t11[he2]) { + pt2(); + break; + } + $t2(l10[tt2]); + } + break; + case "ArrowDown": + e21.preventDefault(), ze2 ? Mt2(1) : (n10(6, ze2 = true), n10(26, h10 = void 0)); + break; + case "ArrowUp": + e21.preventDefault(), ze2 ? Mt2(-1) : (n10(6, ze2 = true), n10(26, h10 = void 0)); + break; + case "Tab": + if (ze2 && W10) { + if (0 === l10.length || J10 && J10[he2] === l10[tt2][he2]) + return pt2(); + e21.preventDefault(), $t2(l10[tt2]), pt2(); + } + break; + case "Backspace": + if (!z10 || G10.length > 0) + return; + if (z10 && J10 && J10.length > 0) { + if (ut2(void 0 !== h10 ? h10 : J10.length - 1), 0 === h10 || void 0 === h10) + break; + n10(26, h10 = J10.length > h10 ? h10 - 1 : void 0); + } + break; + case "ArrowLeft": + if (!J10 || !z10 || G10.length > 0) + return; + void 0 === h10 ? n10(26, h10 = J10.length - 1) : J10.length > h10 && 0 !== h10 && n10(26, h10 -= 1); + break; + case "ArrowRight": + if (!J10 || !z10 || G10.length > 0 || void 0 === h10) + return; + h10 === J10.length - 1 ? n10(26, h10 = void 0) : h10 < J10.length - 1 && n10(26, h10 += 1); + } + }, dt2, ht2, function() { + if (!V10) + return G10.length > 0 ? n10(6, ze2 = true) : void n10(6, ze2 = !ze2); + }, St2, function(e21) { + var t11; + ze2 || W10 || !N8 || N8.contains(e21.target) || null !== (t11 = jt2) && void 0 !== t11 && t11.contains(e21.target) || ht2(); + }, _t2, Ot2, function(e21, t11, n11) { + if (!z10) + return t11 && t11[n11] === e21[n11]; + }, Et2, At2, Dt2, qt2, x10, te2, C10, _10, M10, A10, Y10, Z10, ie2, se2, le2, fe2, pe2, we2, Ce2, _e2, Me2, function() { + return l10; + }, Ne2, Le2, Ve2, Je2, Ge2, Ze2, rt2, gt2, bt2, wt2, v10, p10, m10, Rt2, w10, k10, function(t11) { + ea.call(this, e20, t11); + }, function(t11) { + ea.call(this, e20, t11); + }, function(t11) { + ea.call(this, e20, t11); + }, function(t11) { + ea.call(this, e20, t11); + }, function(e21) { + return _t2(e21); + }, function(e21) { + return _t2(e21); + }, function(e21, t11) { + return Ot2({ item: e21, i: t11 }); + }, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(23, jt2 = e21); + }); + }, function(e21) { + return ut2(e21); + }, function(e21) { + return L10 ? ut2(e21) : {}; + }, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(1, D10 = e21); + }); + }, function() { + G10 = this.value, n10(4, G10); + }, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(0, N8 = e21); + }); + }]; + } + var ZR = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, XR, QR, Xo, { justValue: 52, filter: 53, getItems: 54, id: 55, name: 8, container: 0, input: 1, multiple: 9, multiFullItemClearable: 10, disabled: 11, focused: 2, value: 3, filterText: 4, placeholder: 56, placeholderAlwaysShow: 57, items: 51, label: 12, itemFilter: 58, groupBy: 59, groupFilter: 60, groupHeaderSelectable: 61, itemId: 13, loadOptions: 62, containerStyles: 14, hasError: 15, filterSelectedItems: 63, required: 16, closeListOnChange: 64, clearFilterTextOnBlur: 65, createGroupHeaderItem: 66, getFilteredItems: 67, searchable: 17, inputStyles: 18, clearable: 68, loading: 5, listOpen: 6, debounce: 69, debounceWait: 70, hideEmptyState: 19, inputAttributes: 71, listAutoWidth: 72, showChevron: 20, listOffset: 73, hoverItemIndex: 7, floatingConfig: 74, class: 21, handleClear: 22, ariaValues: 75, ariaListOpen: 76, ariaFocused: 77 }, nR, [-1, -1, -1, -1, -1]), n10; + } + return Ao(t10, Ia), Do(t10, [{ key: "getFilteredItems", get: function() { + return this.$$.ctx[67]; + } }, { key: "handleClear", get: function() { + return this.$$.ctx[22]; + } }]), t10; + }(); + function eN(e20) { + mi(e20, "svelte-ijtq0l", "table.jse-transform-wizard.svelte-ijtq0l.svelte-ijtq0l{border-collapse:collapse;border-spacing:0;width:100%}table.jse-transform-wizard.svelte-ijtq0l input.svelte-ijtq0l{font-family:inherit;font-size:inherit}table.jse-transform-wizard.svelte-ijtq0l tr th.svelte-ijtq0l{font-weight:normal;text-align:left;width:60px}table.jse-transform-wizard.svelte-ijtq0l tr td .jse-horizontal.svelte-ijtq0l{width:100%;display:flex;flex-direction:row;margin-bottom:calc(0.5 * var(--jse-padding, 10px))}table.jse-transform-wizard.svelte-ijtq0l tr td .jse-horizontal.svelte-ijtq0l .svelte-select .multi-item{align-items:center}table.jse-transform-wizard.svelte-ijtq0l tr td .jse-horizontal.svelte-ijtq0l .svelte-select .value-container{gap:0 !important}table.jse-transform-wizard.svelte-ijtq0l tr td .jse-horizontal.svelte-ijtq0l .svelte-select.jse-filter-path{flex:4;margin-right:calc(0.5 * var(--jse-padding, 10px))}table.jse-transform-wizard.svelte-ijtq0l tr td .jse-horizontal.svelte-ijtq0l .svelte-select.jse-filter-relation{flex:1.5;margin-right:calc(0.5 * var(--jse-padding, 10px))}table.jse-transform-wizard.svelte-ijtq0l tr td .jse-horizontal.svelte-ijtq0l .svelte-select.jse-sort-path{flex:3;margin-right:calc(0.5 * var(--jse-padding, 10px))}table.jse-transform-wizard.svelte-ijtq0l tr td .jse-horizontal.svelte-ijtq0l .svelte-select.jse-sort-direction{flex:1}table.jse-transform-wizard.svelte-ijtq0l tr td .jse-horizontal.svelte-ijtq0l .svelte-select.jse-projection-paths{flex:1}table.jse-transform-wizard.svelte-ijtq0l tr td .jse-horizontal.svelte-ijtq0l .svelte-select input{box-sizing:border-box}table.jse-transform-wizard.svelte-ijtq0l tr td .jse-horizontal .jse-filter-value.svelte-ijtq0l{flex:4;padding:4px 8px;border:var(--jse-input-border, 1px solid #d8dbdf);border-radius:var(--jse-input-radius, 3px);outline:none;background:var(--jse-input-background, var(--jse-background-color, #fff));color:inherit}table.jse-transform-wizard.svelte-ijtq0l tr td .jse-horizontal .jse-filter-value.svelte-ijtq0l:focus{border:var(--jse-input-border-focus, 1px solid var(--jse-input-border-focus, var(--jse-theme-color, #3883fa)))}"); + } + function tN(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10, p10, m10, g10, y10, b10, k10, w10, x10, j10, S10, C10, $10, _10, O10, M10, E10, A10, P10, T8, R8, N8; + function I10(t11) { + e20[16](t11); + } + var D10 = { class: "jse-filter-path", showChevron: true, items: e20[7] }; + function q10(t11) { + e20[17](t11); + } + void 0 !== e20[0] && (D10.value = e20[0]), s10 = new ZR({ props: D10 }), na.push(function() { + return Aa(s10, "value", I10); + }); + var z10 = { class: "jse-filter-relation", showChevron: true, items: e20[8] }; + function B10(t11) { + e20[19](t11); + } + void 0 !== e20[1] && (z10.value = e20[1]), u10 = new ZR({ props: z10 }), na.push(function() { + return Aa(u10, "value", q10); + }); + var L10 = { class: "jse-sort-path", showChevron: true, items: e20[7] }; + function F10(t11) { + e20[20](t11); + } + void 0 !== e20[3] && (L10.value = e20[3]), k10 = new ZR({ props: L10 }), na.push(function() { + return Aa(k10, "value", B10); + }); + var V10 = { class: "jse-sort-direction", showChevron: true, items: e20[9] }; + function H10(t11) { + e20[21](t11); + } + void 0 !== e20[4] && (V10.value = e20[4]), j10 = new ZR({ props: V10 }), na.push(function() { + return Aa(j10, "value", F10); + }); + var W10 = { class: "jse-projection-paths", multiple: true, showChevron: true, items: e20[6] }; + return void 0 !== e20[5] && (W10.value = e20[5]), A10 = new ZR({ props: W10 }), na.push(function() { + return Aa(A10, "value", H10); + }), { c: function() { + t10 = ji("table"), n10 = ji("tr"), (r10 = ji("th")).textContent = "Filter", o10 = $i(), i10 = ji("td"), a10 = ji("div"), Pa(s10.$$.fragment), l10 = $i(), Pa(u10.$$.fragment), d10 = $i(), h10 = ji("input"), v10 = $i(), p10 = ji("tr"), (m10 = ji("th")).textContent = "Sort", g10 = $i(), y10 = ji("td"), b10 = ji("div"), Pa(k10.$$.fragment), x10 = $i(), Pa(j10.$$.fragment), C10 = $i(), $10 = ji("tr"), (_10 = ji("th")).textContent = "Pick", O10 = $i(), M10 = ji("td"), E10 = ji("div"), Pa(A10.$$.fragment), Ai(r10, "class", "svelte-ijtq0l"), Ai(h10, "class", "jse-filter-value svelte-ijtq0l"), Ai(a10, "class", "jse-horizontal svelte-ijtq0l"), Ai(m10, "class", "svelte-ijtq0l"), Ai(b10, "class", "jse-horizontal svelte-ijtq0l"), Ai(_10, "class", "svelte-ijtq0l"), Ai(E10, "class", "jse-horizontal svelte-ijtq0l"), Ai(t10, "class", "jse-transform-wizard svelte-ijtq0l"); + }, m: function(c11, f11) { + ki(c11, t10, f11), pi(t10, n10), pi(n10, r10), pi(n10, o10), pi(n10, i10), pi(i10, a10), Ta(s10, a10, null), pi(a10, l10), Ta(u10, a10, null), pi(a10, d10), pi(a10, h10), Ii(h10, e20[2]), pi(t10, v10), pi(t10, p10), pi(p10, m10), pi(p10, g10), pi(p10, y10), pi(y10, b10), Ta(k10, b10, null), pi(b10, x10), Ta(j10, b10, null), pi(t10, C10), pi(t10, $10), pi($10, _10), pi($10, O10), pi($10, M10), pi(M10, E10), Ta(A10, E10, null), T8 = true, R8 || (N8 = Oi(h10, "input", e20[18]), R8 = true); + }, p: function(e21, t11) { + var n11 = jo(t11, 1)[0], r11 = {}; + 128 & n11 && (r11.items = e21[7]), !c10 && 1 & n11 && (c10 = true, r11.value = e21[0], ua(function() { + return c10 = false; + })), s10.$set(r11); + var o11 = {}; + !f10 && 2 & n11 && (f10 = true, o11.value = e21[1], ua(function() { + return f10 = false; + })), u10.$set(o11), 4 & n11 && h10.value !== e21[2] && Ii(h10, e21[2]); + var i11 = {}; + 128 & n11 && (i11.items = e21[7]), !w10 && 8 & n11 && (w10 = true, i11.value = e21[3], ua(function() { + return w10 = false; + })), k10.$set(i11); + var a11 = {}; + !S10 && 16 & n11 && (S10 = true, a11.value = e21[4], ua(function() { + return S10 = false; + })), j10.$set(a11); + var l11 = {}; + 64 & n11 && (l11.items = e21[6]), !P10 && 32 & n11 && (P10 = true, l11.value = e21[5], ua(function() { + return P10 = false; + })), A10.$set(l11); + }, i: function(e21) { + T8 || (wa(s10.$$.fragment, e21), wa(u10.$$.fragment, e21), wa(k10.$$.fragment, e21), wa(j10.$$.fragment, e21), wa(A10.$$.fragment, e21), T8 = true); + }, o: function(e21) { + xa(s10.$$.fragment, e21), xa(u10.$$.fragment, e21), xa(k10.$$.fragment, e21), xa(j10.$$.fragment, e21), xa(A10.$$.fragment, e21), T8 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(s10), Ra(u10), Ra(k10), Ra(j10), Ra(A10), R8 = false, N8(); + } }; + } + function nN(e20, t10, n10) { + var r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10 = Da("jsoneditor:TransformWizard"), p10 = t10.json, m10 = t10.queryOptions, g10 = void 0 === m10 ? {} : m10, y10 = t10.onChange, b10 = ["==", "!=", "<", "<=", ">", ">="].map(function(e21) { + return { value: e21, label: e21 }; + }), k10 = [{ value: "asc", label: "ascending" }, { value: "desc", label: "descending" }], w10 = null !== (r10 = g10) && void 0 !== r10 && null !== (r10 = r10.filter) && void 0 !== r10 && r10.path ? GO(g10.filter.path) : null, x10 = null !== (o10 = g10) && void 0 !== o10 && null !== (o10 = o10.filter) && void 0 !== o10 && o10.relation ? b10.find(function(e21) { + var t11; + return e21.value === (null === (t11 = g10.filter) || void 0 === t11 ? void 0 : t11.relation); + }) : null, j10 = (null === (i10 = g10) || void 0 === i10 || null === (i10 = i10.filter) || void 0 === i10 ? void 0 : i10.value) || "", S10 = null !== (a10 = g10) && void 0 !== a10 && null !== (a10 = a10.sort) && void 0 !== a10 && a10.path ? GO(g10.sort.path) : null, C10 = null !== (s10 = g10) && void 0 !== s10 && null !== (s10 = s10.sort) && void 0 !== s10 && s10.direction ? k10.find(function(e21) { + var t11; + return e21.value === (null === (t11 = g10.sort) || void 0 === t11 ? void 0 : t11.direction); + }) : null; + return e20.$$set = function(e21) { + "json" in e21 && n10(11, p10 = e21.json), "queryOptions" in e21 && n10(10, g10 = e21.queryOptions), "onChange" in e21 && n10(12, y10 = e21.onChange); + }, e20.$$.update = function() { + var t11, r11, o11, i11, a11, s11, m11, b11, k11, $10, _10, O10, M10; + (2048 & e20.$$.dirty && n10(15, c10 = Array.isArray(p10)), 34816 & e20.$$.dirty && n10(14, l10 = c10 ? T_(p10) : []), 34816 & e20.$$.dirty && n10(13, u10 = c10 ? T_(p10, true) : []), 16384 & e20.$$.dirty && n10(7, f10 = l10.map(GO)), 8192 & e20.$$.dirty && n10(6, d10 = u10 ? u10.map(GO) : []), 1088 & e20.$$.dirty) && n10(5, h10 = null !== (t11 = g10) && void 0 !== t11 && null !== (t11 = t11.projection) && void 0 !== t11 && t11.paths && d10 ? g10.projection.paths.map(function(e21) { + return d10.find(function(t12) { + return Ow(t12.value, e21); + }); + }).filter(function(e21) { + return !!e21; + }) : null); + 1 & e20.$$.dirty && (o11 = null === (r11 = w10) || void 0 === r11 ? void 0 : r11.value, Ow(null === (i11 = g10) || void 0 === i11 || null === (i11 = i11.filter) || void 0 === i11 ? void 0 : i11.path, o11) || (v10("changeFilterPath", o11), n10(10, g10 = Us(g10, ["filter", "path"], o11, true)), y10(g10))); + 2 & e20.$$.dirty && (s11 = null === (a11 = x10) || void 0 === a11 ? void 0 : a11.value, Ow(null === (m11 = g10) || void 0 === m11 || null === (m11 = m11.filter) || void 0 === m11 ? void 0 : m11.relation, s11) || (v10("changeFilterRelation", s11), n10(10, g10 = Us(g10, ["filter", "relation"], s11, true)), y10(g10))); + (4 & e20.$$.dirty && (b11 = j10, Ow(null === (k11 = g10) || void 0 === k11 || null === (k11 = k11.filter) || void 0 === k11 ? void 0 : k11.value, b11) || (v10("changeFilterValue", b11), n10(10, g10 = Us(g10, ["filter", "value"], b11, true)), y10(g10))), 8 & e20.$$.dirty) && function(e21) { + var t12; + Ow(null === (t12 = g10) || void 0 === t12 || null === (t12 = t12.sort) || void 0 === t12 ? void 0 : t12.path, e21) || (v10("changeSortPath", e21), n10(10, g10 = Us(g10, ["sort", "path"], e21, true)), y10(g10)); + }(null === ($10 = S10) || void 0 === $10 ? void 0 : $10.value); + 16 & e20.$$.dirty && (O10 = null === (_10 = C10) || void 0 === _10 ? void 0 : _10.value, Ow(null === (M10 = g10) || void 0 === M10 || null === (M10 = M10.sort) || void 0 === M10 ? void 0 : M10.direction, O10) || (v10("changeSortDirection", O10), n10(10, g10 = Us(g10, ["sort", "direction"], O10, true)), y10(g10))); + 32 & e20.$$.dirty && function(e21) { + var t12; + Ow(null === (t12 = g10) || void 0 === t12 || null === (t12 = t12.projection) || void 0 === t12 ? void 0 : t12.paths, e21) || (v10("changeProjectionPaths", e21), n10(10, g10 = Us(g10, ["projection", "paths"], e21, true)), y10(g10)); + }(h10 ? h10.map(function(e21) { + return e21.value; + }) : void 0); + }, [w10, x10, j10, S10, C10, h10, d10, f10, b10, k10, g10, p10, y10, u10, l10, c10, function(e21) { + n10(0, w10 = e21); + }, function(e21) { + n10(1, x10 = e21); + }, function() { + j10 = this.value, n10(2, j10); + }, function(e21) { + n10(3, S10 = e21); + }, function(e21) { + n10(4, C10 = e21); + }, function(e21) { + n10(5, h10 = e21), n10(10, g10), n10(6, d10), n10(13, u10), n10(15, c10), n10(11, p10); + }]; + } + var rN = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, nN, tN, Zo, { json: 11, queryOptions: 10, onChange: 12 }, eN), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function oN(e20) { + mi(e20, "svelte-1wg043c", '.jse-select-query-language.svelte-1wg043c.svelte-1wg043c{position:relative;width:32px}.jse-select-query-language.svelte-1wg043c .jse-select-query-language-container.svelte-1wg043c{position:absolute;top:0;right:0;display:flex;flex-direction:column;box-shadow:var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24))}.jse-select-query-language.svelte-1wg043c .jse-select-query-language-container .jse-query-language.svelte-1wg043c{border:none;background:transparent;color:inherit;cursor:pointer;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);padding:5px;margin:0;text-align:left;padding:var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px));white-space:nowrap;color:var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff));background:var(--jse-context-menu-background, #656565)}.jse-select-query-language.svelte-1wg043c .jse-select-query-language-container .jse-query-language.svelte-1wg043c:hover{background:var(--jse-context-menu-background-highlight, #7a7a7a)}'); + } + function iN(e20, t10, n10) { + var r10 = e20.slice(); + return r10[5] = t10[n10], r10; + } + function aN(e20) { + var t10, n10; + return t10 = new jM({ props: { data: aM } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function sN(e20) { + var t10, n10; + return t10 = new jM({ props: { data: iM } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function cN(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10 = e20[5].name + "", d10 = [sN, aN], h10 = []; + function v10(e21, t11) { + return e21[5].id === e21[0] ? 0 : 1; + } + function p10() { + return e20[4](e20[5]); + } + return n10 = v10(e20), r10 = h10[n10] = d10[n10](e20), { c: function() { + t10 = ji("button"), r10.c(), o10 = $i(), i10 = Ci(f10), a10 = $i(), Ai(t10, "type", "button"), Ai(t10, "class", "jse-query-language svelte-1wg043c"), Ai(t10, "title", s10 = "Select ".concat(e20[5].name, " as query language")), zi(t10, "selected", e20[5].id === e20[0]); + }, m: function(e21, r11) { + ki(e21, t10, r11), h10[n10].m(t10, null), pi(t10, o10), pi(t10, i10), pi(t10, a10), c10 = true, l10 || (u10 = Oi(t10, "click", p10), l10 = true); + }, p: function(a11, l11) { + var u11 = n10; + (n10 = v10(e20 = a11)) !== u11 && (ba(), xa(h10[u11], 1, 1, function() { + h10[u11] = null; + }), ka(), (r10 = h10[n10]) || (r10 = h10[n10] = d10[n10](e20)).c(), wa(r10, 1), r10.m(t10, o10)), (!c10 || 2 & l11) && f10 !== (f10 = e20[5].name + "") && Ni(i10, f10), (!c10 || 2 & l11 && s10 !== (s10 = "Select ".concat(e20[5].name, " as query language"))) && Ai(t10, "title", s10), (!c10 || 3 & l11) && zi(t10, "selected", e20[5].id === e20[0]); + }, i: function(e21) { + c10 || (wa(r10), c10 = true); + }, o: function(e21) { + xa(r10), c10 = false; + }, d: function(e21) { + e21 && wi(t10), h10[n10].d(), l10 = false, u10(); + } }; + } + function lN(e20) { + for (var t10, n10, r10, o10 = Ca(e20[1]), i10 = [], a10 = 0; a10 < o10.length; a10 += 1) + i10[a10] = cN(iN(e20, o10, a10)); + var s10 = function(e21) { + return xa(i10[e21], 1, 1, function() { + i10[e21] = null; + }); + }; + return { c: function() { + t10 = ji("div"), n10 = ji("div"); + for (var e21 = 0; e21 < i10.length; e21 += 1) + i10[e21].c(); + Ai(n10, "class", "jse-select-query-language-container svelte-1wg043c"), Ai(t10, "class", "jse-select-query-language svelte-1wg043c"); + }, m: function(e21, o11) { + ki(e21, t10, o11), pi(t10, n10); + for (var a11 = 0; a11 < i10.length; a11 += 1) + i10[a11] && i10[a11].m(n10, null); + r10 = true; + }, p: function(e21, t11) { + var r11 = jo(t11, 1)[0]; + if (7 & r11) { + var a11; + for (o10 = Ca(e21[1]), a11 = 0; a11 < o10.length; a11 += 1) { + var c10 = iN(e21, o10, a11); + i10[a11] ? (i10[a11].p(c10, r11), wa(i10[a11], 1)) : (i10[a11] = cN(c10), i10[a11].c(), wa(i10[a11], 1), i10[a11].m(n10, null)); + } + for (ba(), a11 = o10.length; a11 < i10.length; a11 += 1) + s10(a11); + ka(); + } + }, i: function(e21) { + if (!r10) { + for (var t11 = 0; t11 < o10.length; t11 += 1) + wa(i10[t11]); + r10 = true; + } + }, o: function(e21) { + i10 = i10.filter(Boolean); + for (var t11 = 0; t11 < i10.length; t11 += 1) + xa(i10[t11]); + r10 = false; + }, d: function(e21) { + e21 && wi(t10), xi(i10, e21); + } }; + } + function uN(e20, t10, n10) { + var r10 = t10.queryLanguages, o10 = t10.queryLanguageId, i10 = t10.onChangeQueryLanguage; + function a10(e21) { + n10(0, o10 = e21), i10(e21); + } + return e20.$$set = function(e21) { + "queryLanguages" in e21 && n10(1, r10 = e21.queryLanguages), "queryLanguageId" in e21 && n10(0, o10 = e21.queryLanguageId), "onChangeQueryLanguage" in e21 && n10(3, i10 = e21.onChangeQueryLanguage); + }, [o10, r10, a10, i10, function(e21) { + return a10(e21.id); + }]; + } + var fN = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, uN, lN, Xo, { queryLanguages: 1, queryLanguageId: 0, onChangeQueryLanguage: 3 }, oN), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function dN(e20) { + mi(e20, "svelte-1n68mbh", ".jse-header.svelte-1n68mbh.svelte-1n68mbh{display:flex;background:var(--jse-theme-color, #3883fa);color:var(--jse-menu-color, var(--jse-text-color-inverse, #fff))}.jse-header.svelte-1n68mbh .jse-title.svelte-1n68mbh{flex:1;padding:5px;vertical-align:middle}.jse-header.svelte-1n68mbh button.svelte-1n68mbh{border:none;background:transparent;min-width:32px;color:inherit;cursor:pointer}.jse-header.svelte-1n68mbh button.svelte-1n68mbh:hover{background:rgba(255, 255, 255, 0.1)}"); + } + function hN(e20) { + var t10, n10, r10, o10, i10; + return n10 = new jM({ props: { data: mP } }), { c: function() { + t10 = ji("button"), Pa(n10.$$.fragment), Ai(t10, "type", "button"), Ai(t10, "class", "jse-config svelte-1n68mbh"), Ai(t10, "title", "Select a query language"); + }, m: function(a10, s10) { + ki(a10, t10, s10), Ta(n10, t10, null), e20[6](t10), r10 = true, o10 || (i10 = Oi(t10, "click", e20[3]), o10 = true); + }, p: Wo, i: function(e21) { + r10 || (wa(n10.$$.fragment, e21), r10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), r10 = false; + }, d: function(r11) { + r11 && wi(t10), Ra(n10), e20[6](null), o10 = false, i10(); + } }; + } + function vN(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10 = e20[0].length > 1 && hN(e20); + return a10 = new jM({ props: { data: MP } }), { c: function() { + t10 = ji("div"), (n10 = ji("div")).textContent = "Transform", r10 = $i(), u10 && u10.c(), o10 = $i(), i10 = ji("button"), Pa(a10.$$.fragment), Ai(n10, "class", "jse-title svelte-1n68mbh"), Ai(i10, "type", "button"), Ai(i10, "class", "jse-close svelte-1n68mbh"), Ai(t10, "class", "jse-header svelte-1n68mbh"); + }, m: function(f10, d10) { + ki(f10, t10, d10), pi(t10, n10), pi(t10, r10), u10 && u10.m(t10, null), pi(t10, o10), pi(t10, i10), Ta(a10, i10, null), s10 = true, c10 || (l10 = Oi(i10, "click", e20[7]), c10 = true); + }, p: function(e21, n11) { + var r11 = jo(n11, 1)[0]; + e21[0].length > 1 ? u10 ? (u10.p(e21, r11), 1 & r11 && wa(u10, 1)) : ((u10 = hN(e21)).c(), wa(u10, 1), u10.m(t10, o10)) : u10 && (ba(), xa(u10, 1, 1, function() { + u10 = null; + }), ka()); + }, i: function(e21) { + s10 || (wa(u10), wa(a10.$$.fragment, e21), s10 = true); + }, o: function(e21) { + xa(u10), xa(a10.$$.fragment, e21), s10 = false; + }, d: function(e21) { + e21 && wi(t10), u10 && u10.d(), Ra(a10), c10 = false, l10(); + } }; + } + function pN(e20, t10, n10) { + var r10, o10, i10 = t10.queryLanguages, a10 = t10.queryLanguageId, s10 = t10.onChangeQueryLanguage, c10 = Zi("simple-modal").close, l10 = Zi("absolute-popup"), u10 = l10.openAbsolutePopup, f10 = l10.closeAbsolutePopup; + return e20.$$set = function(e21) { + "queryLanguages" in e21 && n10(0, i10 = e21.queryLanguages), "queryLanguageId" in e21 && n10(4, a10 = e21.queryLanguageId), "onChangeQueryLanguage" in e21 && n10(5, s10 = e21.onChangeQueryLanguage); + }, [i10, r10, c10, function() { + var e21 = { queryLanguages: i10, queryLanguageId: a10, onChangeQueryLanguage: function(e23) { + f10(o10), s10(e23); + } }; + o10 = u10(fN, e21, { offsetTop: -2, offsetLeft: 0, anchor: r10, closeOnOuterClick: true }); + }, a10, s10, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(1, r10 = e21); + }); + }, function() { + return c10(); + }]; + } + var mN = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, pN, vN, Zo, { queryLanguages: 0, queryLanguageId: 4, onChangeQueryLanguage: 5 }, dN), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + var gN = Da("jsoneditor:AutoScrollHandler"); + var yN = function(e20, t10, n10, r10) { + return (e20 /= r10 / 2) < 1 ? n10 / 2 * e20 * e20 + t10 : -n10 / 2 * (--e20 * (e20 - 2) - 1) + t10; + }; + var bN = function() { + var e20, t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10, d10; + function h10(t11) { + return t11.getBoundingClientRect().top - (e20.getBoundingClientRect ? e20.getBoundingClientRect().top : 0) + n10; + } + function v10(t11) { + e20.scrollTo ? e20.scrollTo(e20.scrollLeft, t11) : e20.scrollTop = t11; + } + function p10(e21) { + l10 || (l10 = e21), v10(i10(u10 = e21 - l10, n10, s10, c10)), d10 = true, u10 < c10 ? requestAnimationFrame(p10) : function() { + if (v10(n10 + s10), t10 && a10) { + t10.setAttribute("tabindex", "-1"), t10.focus(); + } + "function" == typeof f10 && f10(); + l10 = 0, d10 = false; + }(); + } + return function(u11) { + var v11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + switch (c10 = 1e3, o10 = v11.offset || 0, f10 = v11.callback, i10 = v11.easing || yN, a10 = v11.a11y || false, Ho(v11.container)) { + case "object": + e20 = v11.container; + break; + case "string": + e20 = document.querySelector(v11.container); + break; + default: + e20 = window.document.documentElement; + } + switch (n10 = e20.scrollTop, Ho(u11)) { + case "number": + t10 = void 0, a10 = false, r10 = n10 + u11; + break; + case "object": + r10 = h10(t10 = u11); + break; + case "string": + t10 = document.querySelector(u11), r10 = h10(t10); + } + switch (s10 = r10 - n10 + o10, Ho(v11.duration)) { + case "number": + c10 = v11.duration; + break; + case "function": + c10 = v11.duration(s10); + } + d10 ? l10 = 0 : requestAnimationFrame(p10); + }; + }; + var kN = 1e3; + var wN = Da("jsoneditor:History"); + function xN() { + var e20 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t10 = e20.maxItems || kN, n10 = [], r10 = 0; + function o10() { + return r10 < n10.length; + } + function i10() { + return r10 > 0; + } + function a10() { + return { canUndo: o10(), canRedo: i10(), length: n10.length }; + } + function s10() { + e20.onChange && e20.onChange(a10()); + } + return { add: function(e21) { + wN("add", e21), n10 = [e21].concat(n10.slice(r10)).slice(0, t10), r10 = 0, s10(); + }, clear: function() { + wN("clear"), n10 = [], r10 = 0, s10(); + }, getState: a10, undo: function() { + if (o10()) { + var e21 = n10[r10]; + return r10 += 1, wN("undo", e21), s10(), e21; + } + }, redo: function() { + if (i10()) + return wN("redo", n10[r10 -= 1]), s10(), n10[r10]; + } }; + } + function jN(e20, t10) { + var n10 = Date.now(), r10 = e20(); + return t10(Date.now() - n10), r10; + } + var SN = Da("validation"); + function CN(e20, t10, n10, r10) { + if (SN("validateJSON"), !t10) + return []; + if (n10 !== r10) { + var o10 = n10.stringify(e20); + return t10(void 0 !== o10 ? r10.parse(o10) : void 0); + } + return t10(e20); + } + function $N(e20, t10, n10, r10) { + if (SN("validateText"), e20.length > hs) + return { validationErrors: [{ path: [], message: "Validation turned off: the document is too large", severity: Za.info }] }; + if (0 === e20.length) + return null; + try { + var o10 = jN(function() { + return n10.parse(e20); + }, function(e21) { + return SN("validate: parsed json in ".concat(e21, " ms")); + }); + if (!t10) + return null; + var i10 = n10 === r10 ? o10 : jN(function() { + return r10.parse(e20); + }, function(e21) { + return SN("validate: parsed json with the validationParser in ".concat(e21, " ms")); + }), a10 = jN(function() { + return t10(i10); + }, function(e21) { + return SN("validate: validated json in ".concat(e21, " ms")); + }); + return _w(a10) ? null : { validationErrors: a10 }; + } catch (t11) { + var s10 = jN(function() { + return function(e21, t12) { + if (e21.length > vs) + return false; + try { + return t12.parse(Hl(e21)), true; + } catch (e23) { + return false; + } + }(e20, n10); + }, function(e21) { + return SN("validate: checked whether repairable in ".concat(e21, " ms")); + }); + return { parseError: H_(e20, t11.message || t11.toString()), isRepairable: s10 }; + } + } + var _N = Da("jsoneditor:FocusTracker"); + function ON(e20) { + var t10, n10 = e20.onMount, r10 = e20.onDestroy, o10 = e20.getWindow, i10 = e20.hasFocus, a10 = e20.onFocus, s10 = e20.onBlur, c10 = false; + function l10() { + var e21 = i10(); + e21 && (clearTimeout(t10), c10 || (_N("focus"), a10(), c10 = e21)); + } + function u10() { + c10 && (clearTimeout(t10), t10 = setTimeout(function() { + i10() || (_N("blur"), c10 = false, s10()); + })); + } + n10(function() { + _N("mount FocusTracker"); + var e21 = o10(); + e21 && (e21.addEventListener("focusin", l10, true), e21.addEventListener("focusout", u10, true)); + }), r10(function() { + _N("destroy FocusTracker"); + var e21 = o10(); + e21 && (e21.removeEventListener("focusin", l10, true), e21.removeEventListener("focusout", u10, true)); + }); + } + function MN(e20) { + mi(e20, "svelte-p1zf9f", '.jse-message.svelte-p1zf9f.svelte-p1zf9f{font-family:var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace);font-size:var(--jse-font-size-mono, 14px);padding:var(--jse-padding, 10px);display:flex;gap:var(--jse-padding, 10px);flex-wrap:wrap;align-items:stretch}.jse-message.jse-success.svelte-p1zf9f.svelte-p1zf9f{background:var(--message-success-background, #9ac45d);color:var(--jse-message-success-color, #fff)}.jse-message.svelte-p1zf9f .jse-text.svelte-p1zf9f{display:flex;flex:1;min-width:60%;align-items:center}.jse-message.svelte-p1zf9f .jse-text.jse-clickable.svelte-p1zf9f{cursor:pointer}.jse-message.svelte-p1zf9f .jse-text.jse-clickable.svelte-p1zf9f:hover{background-color:rgba(255, 255, 255, 0.1)}.jse-message.jse-error.svelte-p1zf9f.svelte-p1zf9f{background:var(--jse-message-error-background, var(--jse-error-color, #ee5341));color:var(--jse-message-error-color, #fff)}.jse-message.jse-warning.svelte-p1zf9f.svelte-p1zf9f{background:var(--jse-message-warning-background, #ffde5c);color:var(--jse-message-warning-color, #4d4d4d)}.jse-message.jse-info.svelte-p1zf9f.svelte-p1zf9f{background:var(--jse-message-info-background, #4f91ff);color:var(--jse-message-info-color, #fff)}.jse-message.svelte-p1zf9f .jse-actions.svelte-p1zf9f{display:flex;gap:var(--jse-padding, 10px)}.jse-message.svelte-p1zf9f .jse-actions button.jse-action.svelte-p1zf9f{border:none;background:transparent;color:inherit;cursor:pointer;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);padding:5px;margin:0;background:var(--jse-message-action-background, rgba(255, 255, 255, 0.2));color:inherit;padding:calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px)}.jse-message.svelte-p1zf9f .jse-actions button.jse-action.svelte-p1zf9f:hover{background:var(--jse-message-action-background-highlight, rgba(255, 255, 255, 0.3))}'); + } + function EN(e20, t10, n10) { + var r10 = e20.slice(); + return r10[9] = t10[n10], r10; + } + function AN(e20) { + var t10, n10; + return t10 = new jM({ props: { data: e20[1] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 2 & n11 && (r10.data = e21[1]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function PN(e20) { + var t10, n10; + return t10 = new jM({ props: { data: e20[9].icon } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 8 & n11 && (r10.data = e21[9].icon), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function TN(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10 = e20[9].text + "", f10 = e20[9].icon && PN(e20); + function d10() { + return e20[7](e20[9]); + } + function h10() { + return e20[8](e20[9]); + } + return { c: function() { + t10 = ji("button"), f10 && f10.c(), n10 = $i(), r10 = Ci(u10), o10 = $i(), Ai(t10, "type", "button"), Ai(t10, "class", "jse-button jse-action jse-primary svelte-p1zf9f"), Ai(t10, "title", i10 = e20[9].title), t10.disabled = a10 = e20[9].disabled; + }, m: function(e21, i11) { + ki(e21, t10, i11), f10 && f10.m(t10, null), pi(t10, n10), pi(t10, r10), pi(t10, o10), s10 = true, c10 || (l10 = [Oi(t10, "click", d10), Oi(t10, "mousedown", h10)], c10 = true); + }, p: function(o11, c11) { + (e20 = o11)[9].icon ? f10 ? (f10.p(e20, c11), 8 & c11 && wa(f10, 1)) : ((f10 = PN(e20)).c(), wa(f10, 1), f10.m(t10, n10)) : f10 && (ba(), xa(f10, 1, 1, function() { + f10 = null; + }), ka()), (!s10 || 8 & c11) && u10 !== (u10 = e20[9].text + "") && Ni(r10, u10), (!s10 || 8 & c11 && i10 !== (i10 = e20[9].title)) && Ai(t10, "title", i10), (!s10 || 8 & c11 && a10 !== (a10 = e20[9].disabled)) && (t10.disabled = a10); + }, i: function(e21) { + s10 || (wa(f10), s10 = true); + }, o: function(e21) { + xa(f10), s10 = false; + }, d: function(e21) { + e21 && wi(t10), f10 && f10.d(), c10 = false, Qo(l10); + } }; + } + function RN(e20) { + for (var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10, d10 = e20[1] && AN(e20), h10 = Ca(e20[3]), v10 = [], p10 = 0; p10 < h10.length; p10 += 1) + v10[p10] = TN(EN(e20, h10, p10)); + var m10 = function(e21) { + return xa(v10[e21], 1, 1, function() { + v10[e21] = null; + }); + }; + return { c: function() { + t10 = ji("div"), n10 = ji("div"), r10 = ji("div"), d10 && d10.c(), o10 = $i(), i10 = Ci(e20[2]), a10 = $i(), s10 = ji("div"); + for (var l11 = 0; l11 < v10.length; l11 += 1) + v10[l11].c(); + Ai(r10, "class", "jse-text-centered"), Ai(n10, "role", "button"), Ai(n10, "tabindex", "-1"), Ai(n10, "class", "jse-text svelte-p1zf9f"), zi(n10, "jse-clickable", !!e20[4]), Ai(s10, "class", "jse-actions svelte-p1zf9f"), Ai(t10, "class", c10 = "jse-message jse-" + e20[0] + " svelte-p1zf9f"); + }, m: function(c11, h11) { + ki(c11, t10, h11), pi(t10, n10), pi(n10, r10), d10 && d10.m(r10, null), pi(r10, o10), pi(r10, i10), pi(t10, a10), pi(t10, s10); + for (var p11 = 0; p11 < v10.length; p11 += 1) + v10[p11] && v10[p11].m(s10, null); + l10 = true, u10 || (f10 = Oi(n10, "click", e20[5]), u10 = true); + }, p: function(e21, a11) { + var u11 = jo(a11, 1)[0]; + if (e21[1] ? d10 ? (d10.p(e21, u11), 2 & u11 && wa(d10, 1)) : ((d10 = AN(e21)).c(), wa(d10, 1), d10.m(r10, o10)) : d10 && (ba(), xa(d10, 1, 1, function() { + d10 = null; + }), ka()), (!l10 || 4 & u11) && Ni(i10, e21[2]), (!l10 || 16 & u11) && zi(n10, "jse-clickable", !!e21[4]), 8 & u11) { + var f11; + for (h10 = Ca(e21[3]), f11 = 0; f11 < h10.length; f11 += 1) { + var p11 = EN(e21, h10, f11); + v10[f11] ? (v10[f11].p(p11, u11), wa(v10[f11], 1)) : (v10[f11] = TN(p11), v10[f11].c(), wa(v10[f11], 1), v10[f11].m(s10, null)); + } + for (ba(), f11 = h10.length; f11 < v10.length; f11 += 1) + m10(f11); + ka(); + } + (!l10 || 1 & u11 && c10 !== (c10 = "jse-message jse-" + e21[0] + " svelte-p1zf9f")) && Ai(t10, "class", c10); + }, i: function(e21) { + if (!l10) { + wa(d10); + for (var t11 = 0; t11 < h10.length; t11 += 1) + wa(v10[t11]); + l10 = true; + } + }, o: function(e21) { + xa(d10), v10 = v10.filter(Boolean); + for (var t11 = 0; t11 < v10.length; t11 += 1) + xa(v10[t11]); + l10 = false; + }, d: function(e21) { + e21 && wi(t10), d10 && d10.d(), xi(v10, e21), u10 = false, f10(); + } }; + } + function NN(e20, t10, n10) { + var r10 = t10.type, o10 = void 0 === r10 ? "success" : r10, i10 = t10.icon, a10 = void 0 === i10 ? void 0 : i10, s10 = t10.message, c10 = void 0 === s10 ? void 0 : s10, l10 = t10.actions, u10 = void 0 === l10 ? [] : l10, f10 = t10.onClick, d10 = void 0 === f10 ? void 0 : f10, h10 = t10.onClose, v10 = void 0 === h10 ? void 0 : h10; + v10 && Qi(v10); + return e20.$$set = function(e21) { + "type" in e21 && n10(0, o10 = e21.type), "icon" in e21 && n10(1, a10 = e21.icon), "message" in e21 && n10(2, c10 = e21.message), "actions" in e21 && n10(3, u10 = e21.actions), "onClick" in e21 && n10(4, d10 = e21.onClick), "onClose" in e21 && n10(6, v10 = e21.onClose); + }, [o10, a10, c10, u10, d10, function() { + d10 && d10(); + }, v10, function(e21) { + e21.onClick && e21.onClick(); + }, function(e21) { + e21.onMouseDown && e21.onMouseDown(); + }]; + } + var IN = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, NN, RN, Zo, { type: 0, icon: 1, message: 2, actions: 3, onClick: 4, onClose: 6 }, MN), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function DN(e20) { + mi(e20, "svelte-1ifg4t0", '.jse-validation-errors-overview.svelte-1ifg4t0.svelte-1ifg4t0{font-family:var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace);font-size:var(--jse-font-size-mono, 14px);background:var(--jse-message-warning-background, #ffde5c);color:var(--jse-message-warning-color, #4d4d4d);overflow:auto;max-height:25%}.jse-validation-errors-overview.svelte-1ifg4t0 table.svelte-1ifg4t0{border-collapse:collapse;width:100%}.jse-validation-errors-overview.svelte-1ifg4t0 table tr.svelte-1ifg4t0{cursor:pointer}.jse-validation-errors-overview.svelte-1ifg4t0 table tr.svelte-1ifg4t0:hover{background-color:rgba(255, 255, 255, 0.1)}.jse-validation-errors-overview.svelte-1ifg4t0 table tr td.svelte-1ifg4t0{padding:4px var(--jse-padding, 10px);vertical-align:middle}.jse-validation-errors-overview.svelte-1ifg4t0 table tr td.jse-validation-error-icon.svelte-1ifg4t0{width:36px;box-sizing:border-box}.jse-validation-errors-overview.svelte-1ifg4t0 table tr td.jse-validation-error-action.svelte-1ifg4t0{width:36px;box-sizing:border-box;padding:0}.jse-validation-errors-overview.svelte-1ifg4t0 table tr td.jse-validation-error-action button.jse-validation-errors-collapse.svelte-1ifg4t0{border:none;background:transparent;color:inherit;cursor:pointer;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);padding:5px;margin:0;width:36px;height:26px;cursor:pointer}.jse-validation-errors-overview.svelte-1ifg4t0 table tr td.jse-validation-error-action button.jse-validation-errors-collapse.svelte-1ifg4t0:hover{background-color:rgba(255, 255, 255, 0.2)}.jse-validation-errors-overview.svelte-1ifg4t0 table tr td div.jse-validation-errors-expand.svelte-1ifg4t0{display:inline-block;position:relative;top:3px}'); + } + function qN(e20, t10, n10) { + var r10 = e20.slice(); + return r10[7] = t10[n10], r10[9] = n10, r10; + } + function zN(e20) { + var t10, n10, r10, o10, i10 = [LN, BN], a10 = []; + function s10(e21, t11) { + return e21[2] || 1 === e21[3] ? 0 : 1; + } + return n10 = s10(e20), r10 = a10[n10] = i10[n10](e20), { c: function() { + t10 = ji("div"), r10.c(), Ai(t10, "class", "jse-validation-errors-overview svelte-1ifg4t0"); + }, m: function(e21, r11) { + ki(e21, t10, r11), a10[n10].m(t10, null), o10 = true; + }, p: function(e21, o11) { + var c10 = n10; + (n10 = s10(e21)) === c10 ? a10[n10].p(e21, o11) : (ba(), xa(a10[c10], 1, 1, function() { + a10[c10] = null; + }), ka(), (r10 = a10[n10]) ? r10.p(e21, o11) : (r10 = a10[n10] = i10[n10](e21)).c(), wa(r10, 1), r10.m(t10, null)); + }, i: function(e21) { + o10 || (wa(r10), o10 = true); + }, o: function(e21) { + xa(r10), o10 = false; + }, d: function(e21) { + e21 && wi(t10), a10[n10].d(); + } }; + } + function BN(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10; + return i10 = new jM({ props: { data: TP } }), f10 = new jM({ props: { data: iP } }), { c: function() { + t10 = ji("table"), n10 = ji("tbody"), r10 = ji("tr"), o10 = ji("td"), Pa(i10.$$.fragment), a10 = $i(), s10 = ji("td"), c10 = Ci(e20[3]), l10 = Ci(" validation errors\n "), u10 = ji("div"), Pa(f10.$$.fragment), Ai(o10, "class", "jse-validation-error-icon svelte-1ifg4t0"), Ai(u10, "class", "jse-validation-errors-expand svelte-1ifg4t0"), Ai(s10, "class", "jse-validation-error-count svelte-1ifg4t0"), Ai(r10, "class", "jse-validation-error svelte-1ifg4t0"), Ai(t10, "class", "jse-validation-errors-overview-collapsed svelte-1ifg4t0"); + }, m: function(p10, m10) { + ki(p10, t10, m10), pi(t10, n10), pi(n10, r10), pi(r10, o10), Ta(i10, o10, null), pi(r10, a10), pi(r10, s10), pi(s10, c10), pi(s10, l10), pi(s10, u10), Ta(f10, u10, null), d10 = true, h10 || (v10 = Oi(r10, "click", e20[5]), h10 = true); + }, p: function(e21, t11) { + (!d10 || 8 & t11) && Ni(c10, e21[3]); + }, i: function(e21) { + d10 || (wa(i10.$$.fragment, e21), wa(f10.$$.fragment, e21), d10 = true); + }, o: function(e21) { + xa(i10.$$.fragment, e21), xa(f10.$$.fragment, e21), d10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(i10), Ra(f10), h10 = false, v10(); + } }; + } + function LN(e20) { + for (var t10, n10, r10, o10, i10 = Ca(N_(e20[0], us)), a10 = [], s10 = 0; s10 < i10.length; s10 += 1) + a10[s10] = VN(qN(e20, i10, s10)); + var c10 = function(e21) { + return xa(a10[e21], 1, 1, function() { + a10[e21] = null; + }); + }, l10 = e20[3] > us && HN(e20); + return { c: function() { + t10 = ji("table"), n10 = ji("tbody"); + for (var e21 = 0; e21 < a10.length; e21 += 1) + a10[e21].c(); + r10 = $i(), l10 && l10.c(), Ai(t10, "class", "jse-validation-errors-overview-expanded svelte-1ifg4t0"); + }, m: function(e21, i11) { + ki(e21, t10, i11), pi(t10, n10); + for (var s11 = 0; s11 < a10.length; s11 += 1) + a10[s11] && a10[s11].m(n10, null); + pi(n10, r10), l10 && l10.m(n10, null), o10 = true; + }, p: function(e21, t11) { + if (19 & t11) { + var o11; + for (i10 = Ca(N_(e21[0], us)), o11 = 0; o11 < i10.length; o11 += 1) { + var s11 = qN(e21, i10, o11); + a10[o11] ? (a10[o11].p(s11, t11), wa(a10[o11], 1)) : (a10[o11] = VN(s11), a10[o11].c(), wa(a10[o11], 1), a10[o11].m(n10, r10)); + } + for (ba(), o11 = i10.length; o11 < a10.length; o11 += 1) + c10(o11); + ka(); + } + e21[3] > us ? l10 ? l10.p(e21, t11) : ((l10 = HN(e21)).c(), l10.m(n10, null)) : l10 && (l10.d(1), l10 = null); + }, i: function(e21) { + if (!o10) { + for (var t11 = 0; t11 < i10.length; t11 += 1) + wa(a10[t11]); + o10 = true; + } + }, o: function(e21) { + a10 = a10.filter(Boolean); + for (var t11 = 0; t11 < a10.length; t11 += 1) + xa(a10[t11]); + o10 = false; + }, d: function(e21) { + e21 && wi(t10), xi(a10, e21), l10 && l10.d(); + } }; + } + function FN(e20) { + var t10, n10, r10, o10, i10; + return n10 = new jM({ props: { data: wP } }), { c: function() { + t10 = ji("button"), Pa(n10.$$.fragment), Ai(t10, "type", "button"), Ai(t10, "class", "jse-validation-errors-collapse svelte-1ifg4t0"), Ai(t10, "title", "Collapse validation errors"); + }, m: function(a10, s10) { + ki(a10, t10, s10), Ta(n10, t10, null), r10 = true, o10 || (i10 = Oi(t10, "click", Ei(e20[4])), o10 = true); + }, p: Wo, i: function(e21) { + r10 || (wa(n10.$$.fragment, e21), r10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), r10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(n10), o10 = false, i10(); + } }; + } + function VN(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10, p10 = JO(e20[7].path) + "", m10 = e20[7].message + ""; + r10 = new jM({ props: { data: TP } }); + var g10 = 0 === e20[9] && e20[0].length > 1 && FN(e20); + function y10() { + return e20[6](e20[7]); + } + return { c: function() { + t10 = ji("tr"), n10 = ji("td"), Pa(r10.$$.fragment), o10 = $i(), i10 = ji("td"), a10 = Ci(p10), s10 = $i(), c10 = ji("td"), l10 = Ci(m10), u10 = $i(), f10 = ji("td"), g10 && g10.c(), Ai(n10, "class", "jse-validation-error-icon svelte-1ifg4t0"), Ai(i10, "class", "jse-validation-error-path svelte-1ifg4t0"), Ai(c10, "class", "jse-validation-error-message svelte-1ifg4t0"), Ai(f10, "class", "jse-validation-error-action svelte-1ifg4t0"), Ai(t10, "class", "jse-validation-error svelte-1ifg4t0"); + }, m: function(e21, p11) { + ki(e21, t10, p11), pi(t10, n10), Ta(r10, n10, null), pi(t10, o10), pi(t10, i10), pi(i10, a10), pi(t10, s10), pi(t10, c10), pi(c10, l10), pi(t10, u10), pi(t10, f10), g10 && g10.m(f10, null), d10 = true, h10 || (v10 = Oi(t10, "click", y10), h10 = true); + }, p: function(t11, n11) { + e20 = t11, (!d10 || 1 & n11) && p10 !== (p10 = JO(e20[7].path) + "") && Ni(a10, p10), (!d10 || 1 & n11) && m10 !== (m10 = e20[7].message + "") && Ni(l10, m10), 0 === e20[9] && e20[0].length > 1 ? g10 ? (g10.p(e20, n11), 1 & n11 && wa(g10, 1)) : ((g10 = FN(e20)).c(), wa(g10, 1), g10.m(f10, null)) : g10 && (ba(), xa(g10, 1, 1, function() { + g10 = null; + }), ka()); + }, i: function(e21) { + d10 || (wa(r10.$$.fragment, e21), wa(g10), d10 = true); + }, o: function(e21) { + xa(r10.$$.fragment, e21), xa(g10), d10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(r10), g10 && g10.d(), h10 = false, v10(); + } }; + } + function HN(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10, d10 = e20[3] - us + ""; + return { c: function() { + t10 = ji("tr"), n10 = ji("td"), r10 = $i(), o10 = ji("td"), i10 = $i(), a10 = ji("td"), s10 = Ci("(and "), c10 = Ci(d10), l10 = Ci(" more errors)"), u10 = $i(), f10 = ji("td"), Ai(n10, "class", "svelte-1ifg4t0"), Ai(o10, "class", "svelte-1ifg4t0"), Ai(a10, "class", "svelte-1ifg4t0"), Ai(f10, "class", "svelte-1ifg4t0"), Ai(t10, "class", "jse-validation-error svelte-1ifg4t0"); + }, m: function(e21, d11) { + ki(e21, t10, d11), pi(t10, n10), pi(t10, r10), pi(t10, o10), pi(t10, i10), pi(t10, a10), pi(a10, s10), pi(a10, c10), pi(a10, l10), pi(t10, u10), pi(t10, f10); + }, p: function(e21, t11) { + 8 & t11 && d10 !== (d10 = e21[3] - us + "") && Ni(c10, d10); + }, d: function(e21) { + e21 && wi(t10); + } }; + } + function WN(e20) { + var t10, n10, r10 = !_w(e20[0]), o10 = r10 && zN(e20); + return { c: function() { + o10 && o10.c(), t10 = _i(); + }, m: function(e21, r11) { + o10 && o10.m(e21, r11), ki(e21, t10, r11), n10 = true; + }, p: function(e21, n11) { + var i10 = jo(n11, 1)[0]; + 1 & i10 && (r10 = !_w(e21[0])), r10 ? o10 ? (o10.p(e21, i10), 1 & i10 && wa(o10, 1)) : ((o10 = zN(e21)).c(), wa(o10, 1), o10.m(t10.parentNode, t10)) : o10 && (ba(), xa(o10, 1, 1, function() { + o10 = null; + }), ka()); + }, i: function(e21) { + n10 || (wa(o10), n10 = true); + }, o: function(e21) { + xa(o10), n10 = false; + }, d: function(e21) { + e21 && wi(t10), o10 && o10.d(e21); + } }; + } + function UN(e20, t10, n10) { + var r10, o10 = t10.validationErrors, i10 = t10.selectError, a10 = true; + return e20.$$set = function(e21) { + "validationErrors" in e21 && n10(0, o10 = e21.validationErrors), "selectError" in e21 && n10(1, i10 = e21.selectError); + }, e20.$$.update = function() { + 1 & e20.$$.dirty && n10(3, r10 = o10.length); + }, [o10, i10, a10, r10, function() { + n10(2, a10 = false); + }, function() { + n10(2, a10 = true); + }, function(e21) { + setTimeout(function() { + return i10(e21); + }); + }]; + } + var JN = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, UN, WN, Zo, { validationErrors: 0, selectError: 1 }, DN), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + var KN = "undefined" != typeof navigator && navigator.platform.toUpperCase().indexOf("MAC") >= 0; + function GN(e20) { + mi(e20, "svelte-1n68mbh", ".jse-header.svelte-1n68mbh.svelte-1n68mbh{display:flex;background:var(--jse-theme-color, #3883fa);color:var(--jse-menu-color, var(--jse-text-color-inverse, #fff))}.jse-header.svelte-1n68mbh .jse-title.svelte-1n68mbh{flex:1;padding:5px;vertical-align:middle}.jse-header.svelte-1n68mbh button.svelte-1n68mbh{border:none;background:transparent;min-width:32px;color:inherit;cursor:pointer}.jse-header.svelte-1n68mbh button.svelte-1n68mbh:hover{background:rgba(255, 255, 255, 0.1)}"); + } + function QN(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10; + return a10 = new jM({ props: { data: MP } }), { c: function() { + t10 = ji("div"), n10 = ji("div"), r10 = Ci(e20[0]), o10 = $i(), i10 = ji("button"), Pa(a10.$$.fragment), Ai(n10, "class", "jse-title svelte-1n68mbh"), Ai(i10, "type", "button"), Ai(i10, "class", "jse-close svelte-1n68mbh"), Ai(t10, "class", "jse-header svelte-1n68mbh"); + }, m: function(u10, f10) { + ki(u10, t10, f10), pi(t10, n10), pi(n10, r10), pi(t10, o10), pi(t10, i10), Ta(a10, i10, null), s10 = true, c10 || (l10 = Oi(i10, "click", e20[3]), c10 = true); + }, p: function(e21, t11) { + var n11 = jo(t11, 1)[0]; + (!s10 || 1 & n11) && Ni(r10, e21[0]); + }, i: function(e21) { + s10 || (wa(a10.$$.fragment, e21), s10 = true); + }, o: function(e21) { + xa(a10.$$.fragment, e21), s10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(a10), c10 = false, l10(); + } }; + } + function YN(e20, t10, n10) { + var r10 = t10.title, o10 = void 0 === r10 ? "Modal" : r10, i10 = t10.onClose, a10 = void 0 === i10 ? void 0 : i10, s10 = Zi("simple-modal").close; + return e20.$$set = function(e21) { + "title" in e21 && n10(0, o10 = e21.title), "onClose" in e21 && n10(1, a10 = e21.onClose); + }, [o10, a10, s10, function() { + a10 ? a10() : s10(); + }]; + } + var XN = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, YN, QN, Zo, { title: 0, onClose: 1 }, GN), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function ZN(e20) { + mi(e20, "svelte-18bor9q", '.jse-modal.svelte-18bor9q.svelte-18bor9q{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);line-height:normal;background:var(--jse-modal-background, #f5f5f5);color:var(--jse-text-color, #4d4d4d)}.jse-modal.svelte-18bor9q .svelte-select{--border:var(--jse-svelte-select-border, 1px solid #d8dbdf);--item-is-active-bg:var(--jse-item-is-active-bg, #3883fa);--border-radius:var(--jse-svelte-select-border-radius, 3px);--background:var(--jse-svelte-select-background, #fff);--padding:var(--jse-svelte-select-padding, 0 10px);--multi-select-padding:var(--jse-svelte-select-multi-select-padding, 0 10px);--font-size:var(--jse-svelte-select-font-size, var(--jse-font-size, 16px));--height:36px;--multi-item-height:28px;--multi-item-margin:2px;--multi-item-padding:2px 8px;--multi-item-border-radius:6px;--indicator-top:8px}.jse-modal.svelte-18bor9q .jse-modal-contents.svelte-18bor9q{flex:1;display:flex;flex-direction:column;padding:20px;overflow:auto;min-width:0;min-height:0}.jse-modal.svelte-18bor9q .jse-modal-contents .jse-actions.svelte-18bor9q{display:flex;flex-direction:row;justify-content:flex-end;padding-top:var(--jse-padding, 10px)}.jse-modal.svelte-18bor9q .jse-modal-contents .jse-actions button.jse-primary.svelte-18bor9q{border:none;background:transparent;color:inherit;cursor:pointer;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);padding:5px;margin:0;background:var(--jse-button-primary-background, var(--jse-theme-color, #3883fa));color:var(--jse-button-primary-color, #fff);padding:var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px));border-radius:3px}.jse-modal.svelte-18bor9q .jse-modal-contents .jse-actions button.jse-primary.svelte-18bor9q:hover{background:var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff))}.jse-modal.svelte-18bor9q .jse-modal-contents .jse-actions button.jse-primary.svelte-18bor9q:disabled{background:var(--jse-button-primary-background-disabled, #9d9d9d)}.bg.jse-modal-bg{width:100%;height:100%;top:0;left:0;background:var(--jse-overlay-background, rgba(0, 0, 0, 0.3))}.bg.jse-modal-bg .jse-modal-window-wrap{margin:0}.bg.jse-modal-bg .jse-modal-window{max-width:90%;margin:4rem auto 2rem auto;border-radius:2px}.bg.jse-modal-bg .jse-modal-window.jse-modal-window-sort{width:400px}.bg.jse-modal-bg .jse-modal-window.jse-modal-window-transform{width:1200px;height:1200px;max-height:80%;display:flex}.bg.jse-modal-bg .jse-modal-window.jse-modal-window-jsoneditor{width:800px;height:auto;min-height:500px;max-height:calc(100vh - 6rem);display:flex}.bg.jse-modal-bg .jse-modal-container{flex:1;display:flex;flex-direction:column;padding:0}.jse-modal.jse-copy-paste.svelte-18bor9q .jse-shortcuts.svelte-18bor9q{display:flex;flex-wrap:wrap;justify-content:space-around;margin:calc(2 * var(--jse-padding, 10px)) 0}.jse-modal.jse-copy-paste.svelte-18bor9q .jse-shortcuts .jse-shortcut .jse-key.svelte-18bor9q{font-size:200%;color:var(--jse-theme-color, #3883fa)}'); + } + function eI(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10, p10, m10, g10, y10, b10, k10, w10, x10, j10, S10; + return n10 = new XN({ props: { title: "Copying and pasting" } }), { c: function() { + t10 = ji("div"), Pa(n10.$$.fragment), r10 = $i(), o10 = ji("div"), (i10 = ji("div")).textContent = "These actions are unavailable via the menu. Please use:", a10 = $i(), s10 = ji("div"), c10 = ji("div"), (l10 = ji("div")).textContent = "".concat(e20[1], "+C"), u10 = Ci("\n for copy"), f10 = $i(), d10 = ji("div"), (h10 = ji("div")).textContent = "".concat(e20[1], "+X"), v10 = Ci("\n for cut"), p10 = $i(), m10 = ji("div"), (g10 = ji("div")).textContent = "".concat(e20[1], "+V"), y10 = Ci("\n for paste"), b10 = $i(), k10 = ji("div"), (w10 = ji("button")).textContent = "Close", Ai(l10, "class", "jse-key svelte-18bor9q"), Ai(c10, "class", "jse-shortcut"), Ai(h10, "class", "jse-key svelte-18bor9q"), Ai(d10, "class", "jse-shortcut"), Ai(g10, "class", "jse-key svelte-18bor9q"), Ai(m10, "class", "jse-shortcut"), Ai(s10, "class", "jse-shortcuts svelte-18bor9q"), Ai(w10, "type", "button"), Ai(w10, "class", "jse-primary svelte-18bor9q"), Ai(k10, "class", "jse-actions svelte-18bor9q"), Ai(o10, "class", "jse-modal-contents svelte-18bor9q"), Ai(t10, "class", "jse-modal jse-copy-paste svelte-18bor9q"); + }, m: function(C10, $10) { + ki(C10, t10, $10), Ta(n10, t10, null), pi(t10, r10), pi(t10, o10), pi(o10, i10), pi(o10, a10), pi(o10, s10), pi(s10, c10), pi(c10, l10), pi(c10, u10), pi(s10, f10), pi(s10, d10), pi(d10, h10), pi(d10, v10), pi(s10, p10), pi(s10, m10), pi(m10, g10), pi(m10, y10), pi(o10, b10), pi(o10, k10), pi(k10, w10), x10 = true, j10 || (S10 = Oi(w10, "click", e20[2]), j10 = true); + }, p: Wo, i: function(e21) { + x10 || (wa(n10.$$.fragment, e21), x10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), x10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(n10), j10 = false, S10(); + } }; + } + function tI(e20) { + var t10 = Zi("simple-modal").close; + return [t10, KN ? "\u2318" : "Ctrl", function() { + return t10(); + }]; + } + var nI = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, tI, eI, Zo, {}, ZN), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function rI(e20) { + return !!e20 && ("space" === e20.type || true === e20.space); + } + function oI(e20) { + return !!e20 && ("separator" === e20.type || true === e20.separator); + } + function iI(e20) { + return !!e20 && ("label" === e20.type && "string" == typeof e20.text); + } + function aI(e20) { + return !!e20 && "function" == typeof e20.onClick; + } + function sI(e20) { + return !!e20 && ("dropdown-button" === e20.type && aI(e20.main) && Array.isArray(e20.items)); + } + function cI(e20) { + return !!e20 && ("row" === e20.type && Array.isArray(e20.items)); + } + function lI(e20) { + return !!e20 && ("column" === e20.type && Array.isArray(e20.items)); + } + function uI(e20) { + return Gl(e20) && Gl(e20.parseError); + } + function fI(e20) { + return Gl(e20) && Array.isArray(e20.validationErrors); + } + function dI(e20) { + return Gl(e20) && Array.isArray(e20.path) && "string" == typeof e20.message && "severity" in e20; + } + function hI(e20) { + return Gl(e20) && dI(e20) && "boolean" == typeof e20.isChildError; + } + function vI(e20) { + mi(e20, "svelte-7deygj", '.jse-menu.svelte-7deygj.svelte-7deygj{background:var(--jse-theme-color, #3883fa);font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size-main-menu, 14px);color:var(--jse-menu-color, var(--jse-text-color-inverse, #fff));display:flex;flex-wrap:wrap;align-items:stretch;position:relative}.jse-menu.svelte-7deygj .jse-button.svelte-7deygj{font-family:inherit;font-size:inherit;line-height:1.5em;border:none;background:transparent;color:inherit;cursor:pointer;width:var(--jse-menu-button-size, 32px);height:var(--jse-menu-button-size, 32px);padding:calc(0.5 * var(--jse-padding, 10px));margin:0;border-radius:0;display:inline-flex;align-items:center;text-align:center;justify-content:center}.jse-menu.svelte-7deygj .jse-button.svelte-7deygj:hover,.jse-menu.svelte-7deygj .jse-button.svelte-7deygj:focus{background:var(--jse-theme-color-highlight, #5f9dff)}.jse-menu.svelte-7deygj .jse-button.svelte-7deygj:disabled{color:var(--jse-menu-color, var(--jse-text-color-inverse, #fff));opacity:0.5;background:transparent}.jse-menu.svelte-7deygj .jse-button.jse-group-button.svelte-7deygj{width:auto;height:calc(var(--jse-menu-button-size, 32px) - var(--jse-padding, 10px));margin:calc(0.5 * var(--jse-padding, 10px)) 0;padding:0 calc(0.5 * var(--jse-padding, 10px)) 1px;border:1px solid var(--jse-menu-color, var(--jse-text-color-inverse, #fff))}.jse-menu.svelte-7deygj .jse-button.jse-group-button.svelte-7deygj:not(.jse-last){border-right:none}.jse-menu.svelte-7deygj .jse-button.jse-group-button.jse-first.svelte-7deygj{margin-left:calc(0.5 * var(--jse-padding, 10px))}.jse-menu.svelte-7deygj .jse-button.jse-group-button.jse-last.svelte-7deygj{margin-right:calc(0.5 * var(--jse-padding, 10px))}.jse-menu.svelte-7deygj .jse-button.jse-group-button.svelte-7deygj:hover,.jse-menu.svelte-7deygj .jse-button.jse-group-button.svelte-7deygj:focus{background:var(--jse-theme-color-highlight, #5f9dff)}.jse-menu.svelte-7deygj .jse-button.jse-group-button.jse-selected.svelte-7deygj{background:var(--jse-menu-color, var(--jse-text-color-inverse, #fff));color:var(--jse-theme-color, #3883fa)}.jse-menu.svelte-7deygj .jse-space.svelte-7deygj{flex:1}.jse-menu.svelte-7deygj .jse-separator.svelte-7deygj{background:var(--jse-menu-color, var(--jse-text-color-inverse, #fff));opacity:0.3;width:1px;margin:3px}'); + } + var pI = function(e20) { + return {}; + }; + var mI = function(e20) { + return {}; + }; + function gI(e20, t10, n10) { + var r10 = e20.slice(); + return r10[3] = t10[n10], r10; + } + var yI = function(e20) { + return {}; + }; + var bI = function(e20) { + return {}; + }; + function kI(e20) { + var t10, n10 = OI(e20[3]) + ""; + return { c: function() { + t10 = Ci(n10); + }, m: function(e21, n11) { + ki(e21, t10, n11); + }, p: function(e21, r10) { + 1 & r10 && n10 !== (n10 = OI(e21[3]) + "") && Ni(t10, n10); + }, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function wI(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10 = e20[3].icon && SI(e20), u10 = e20[3].text && CI(e20); + return { c: function() { + t10 = ji("button"), l10 && l10.c(), n10 = $i(), u10 && u10.c(), Ai(t10, "type", "button"), Ai(t10, "class", r10 = "jse-button " + e20[3].className + " svelte-7deygj"), Ai(t10, "title", o10 = e20[3].title), t10.disabled = i10 = e20[3].disabled || false; + }, m: function(r11, o11) { + ki(r11, t10, o11), l10 && l10.m(t10, null), pi(t10, n10), u10 && u10.m(t10, null), a10 = true, s10 || (c10 = Oi(t10, "click", function() { + Yo(e20[3].onClick) && e20[3].onClick.apply(this, arguments); + }), s10 = true); + }, p: function(s11, c11) { + (e20 = s11)[3].icon ? l10 ? (l10.p(e20, c11), 1 & c11 && wa(l10, 1)) : ((l10 = SI(e20)).c(), wa(l10, 1), l10.m(t10, n10)) : l10 && (ba(), xa(l10, 1, 1, function() { + l10 = null; + }), ka()), e20[3].text ? u10 ? u10.p(e20, c11) : ((u10 = CI(e20)).c(), u10.m(t10, null)) : u10 && (u10.d(1), u10 = null), (!a10 || 1 & c11 && r10 !== (r10 = "jse-button " + e20[3].className + " svelte-7deygj")) && Ai(t10, "class", r10), (!a10 || 1 & c11 && o10 !== (o10 = e20[3].title)) && Ai(t10, "title", o10), (!a10 || 1 & c11 && i10 !== (i10 = e20[3].disabled || false)) && (t10.disabled = i10); + }, i: function(e21) { + a10 || (wa(l10), a10 = true); + }, o: function(e21) { + xa(l10), a10 = false; + }, d: function(e21) { + e21 && wi(t10), l10 && l10.d(), u10 && u10.d(), s10 = false, c10(); + } }; + } + function xI(e20) { + var t10; + return { c: function() { + Ai(t10 = ji("div"), "class", "jse-space svelte-7deygj"); + }, m: function(e21, n10) { + ki(e21, t10, n10); + }, p: Wo, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function jI(e20) { + var t10; + return { c: function() { + Ai(t10 = ji("div"), "class", "jse-separator svelte-7deygj"); + }, m: function(e21, n10) { + ki(e21, t10, n10); + }, p: Wo, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function SI(e20) { + var t10, n10; + return t10 = new jM({ props: { data: e20[3].icon } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 1 & n11 && (r10.data = e21[3].icon), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function CI(e20) { + var t10, n10 = e20[3].text + ""; + return { c: function() { + t10 = Ci(n10); + }, m: function(e21, n11) { + ki(e21, t10, n11); + }, p: function(e21, r10) { + 1 & r10 && n10 !== (n10 = e21[3].text + "") && Ni(t10, n10); + }, d: function(e21) { + e21 && wi(t10); + } }; + } + function $I(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10 = [jI, xI, wI, kI], l10 = []; + function u10(e21, o11) { + return 1 & o11 && (t10 = null), 1 & o11 && (n10 = null), 1 & o11 && (r10 = null), null == t10 && (t10 = !!oI(e21[3])), t10 ? 0 : (null == n10 && (n10 = !!rI(e21[3])), n10 ? 1 : (null == r10 && (r10 = !!aI(e21[3])), r10 ? 2 : 3)); + } + return o10 = u10(e20, -1), i10 = l10[o10] = c10[o10](e20), { c: function() { + i10.c(), a10 = _i(); + }, m: function(e21, t11) { + l10[o10].m(e21, t11), ki(e21, a10, t11), s10 = true; + }, p: function(e21, t11) { + var n11 = o10; + (o10 = u10(e21, t11)) === n11 ? l10[o10].p(e21, t11) : (ba(), xa(l10[n11], 1, 1, function() { + l10[n11] = null; + }), ka(), (i10 = l10[o10]) ? i10.p(e21, t11) : (i10 = l10[o10] = c10[o10](e21)).c(), wa(i10, 1), i10.m(a10.parentNode, a10)); + }, i: function(e21) { + s10 || (wa(i10), s10 = true); + }, o: function(e21) { + xa(i10), s10 = false; + }, d: function(e21) { + e21 && wi(a10), l10[o10].d(e21); + } }; + } + function _I(e20) { + for (var t10, n10, r10, o10, i10 = e20[2].left, a10 = ei(i10, e20, e20[1], bI), s10 = Ca(e20[0]), c10 = [], l10 = 0; l10 < s10.length; l10 += 1) + c10[l10] = $I(gI(e20, s10, l10)); + var u10 = function(e21) { + return xa(c10[e21], 1, 1, function() { + c10[e21] = null; + }); + }, f10 = e20[2].right, d10 = ei(f10, e20, e20[1], mI); + return { c: function() { + t10 = ji("div"), a10 && a10.c(), n10 = $i(); + for (var e21 = 0; e21 < c10.length; e21 += 1) + c10[e21].c(); + r10 = $i(), d10 && d10.c(), Ai(t10, "class", "jse-menu svelte-7deygj"); + }, m: function(e21, i11) { + ki(e21, t10, i11), a10 && a10.m(t10, null), pi(t10, n10); + for (var s11 = 0; s11 < c10.length; s11 += 1) + c10[s11] && c10[s11].m(t10, null); + pi(t10, r10), d10 && d10.m(t10, null), o10 = true; + }, p: function(e21, n11) { + var l11 = jo(n11, 1)[0]; + if (a10 && a10.p && (!o10 || 2 & l11) && ri(a10, i10, e21, e21[1], o10 ? ni(i10, e21[1], l11, yI) : oi(e21[1]), bI), 1 & l11) { + var h10; + for (s10 = Ca(e21[0]), h10 = 0; h10 < s10.length; h10 += 1) { + var v10 = gI(e21, s10, h10); + c10[h10] ? (c10[h10].p(v10, l11), wa(c10[h10], 1)) : (c10[h10] = $I(v10), c10[h10].c(), wa(c10[h10], 1), c10[h10].m(t10, r10)); + } + for (ba(), h10 = s10.length; h10 < c10.length; h10 += 1) + u10(h10); + ka(); + } + d10 && d10.p && (!o10 || 2 & l11) && ri(d10, f10, e21, e21[1], o10 ? ni(f10, e21[1], l11, pI) : oi(e21[1]), mI); + }, i: function(e21) { + if (!o10) { + wa(a10, e21); + for (var t11 = 0; t11 < s10.length; t11 += 1) + wa(c10[t11]); + wa(d10, e21), o10 = true; + } + }, o: function(e21) { + xa(a10, e21), c10 = c10.filter(Boolean); + for (var t11 = 0; t11 < c10.length; t11 += 1) + xa(c10[t11]); + xa(d10, e21), o10 = false; + }, d: function(e21) { + e21 && wi(t10), a10 && a10.d(e21), xi(c10, e21), d10 && d10.d(e21); + } }; + } + function OI(e20) { + return console.error("Unknown type of menu item", e20), "???"; + } + function MI(e20, t10, n10) { + var r10 = t10.$$slots, o10 = void 0 === r10 ? {} : r10, i10 = t10.$$scope, a10 = t10.items, s10 = void 0 === a10 ? [] : a10; + return e20.$$set = function(e21) { + "items" in e21 && n10(0, s10 = e21.items), "$$scope" in e21 && n10(1, i10 = e21.$$scope); + }, [s10, i10, o10]; + } + var EI = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, MI, _I, Zo, { items: 0 }, vI), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function AI(e20) { + mi(e20, "svelte-1d84pok", '.jse-json-repair-component.svelte-1d84pok.svelte-1d84pok{flex:1;display:flex;flex-direction:column;background:var(--jse-background-color, #fff);color:var(--jse-text-color, #4d4d4d)}.jse-json-repair-component.svelte-1d84pok .jse-menu .jse-info.svelte-1d84pok{padding:calc(0.5 * var(--jse-padding, 10px));font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);vertical-align:center}.jse-json-repair-component.svelte-1d84pok .jse-json-text.svelte-1d84pok{flex:1;border:none;padding:2px;font-family:var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace);font-size:var(--jse-font-size-mono, 14px);background:var(--jse-input-background, var(--jse-background-color, #fff));color:var(--jse-text-color, #4d4d4d);resize:none;outline:none}'); + } + function PI(e20) { + var t10; + return { c: function() { + (t10 = ji("div")).textContent = "Repair invalid JSON, then click apply", Ai(t10, "slot", "left"), Ai(t10, "class", "jse-info svelte-1d84pok"); + }, m: function(e21, n10) { + ki(e21, t10, n10); + }, p: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function TI(e20) { + var t10, n10; + return t10 = new IN({ props: { type: "success", message: "JSON is valid now and can be parsed.", actions: e20[5] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 32 & n11 && (r10.actions = e21[5]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function RI(e20) { + var t10, n10; + return t10 = new IN({ props: { type: "error", icon: TP, message: "Cannot parse JSON: ".concat(e20[2].message), actions: e20[6] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 4 & n11 && (r10.message = "Cannot parse JSON: ".concat(e21[2].message)), 64 & n11 && (r10.actions = e21[6]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function NI(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10; + n10 = new EI({ props: { items: e20[4], $$slots: { left: [PI] }, $$scope: { ctx: e20 } } }); + var f10 = [RI, TI], d10 = []; + function h10(e21, t11) { + return e21[2] ? 0 : 1; + } + return o10 = h10(e20), i10 = d10[o10] = f10[o10](e20), { c: function() { + t10 = ji("div"), Pa(n10.$$.fragment), r10 = $i(), i10.c(), a10 = $i(), (s10 = ji("textarea")).readOnly = e20[1], Ai(s10, "class", "jse-json-text svelte-1d84pok"), Ai(s10, "autocomplete", "off"), Ai(s10, "autocapitalize", "off"), Ai(s10, "spellcheck", "false"), s10.value = e20[0], Ai(t10, "class", "jse-json-repair-component svelte-1d84pok"); + }, m: function(i11, f11) { + ki(i11, t10, f11), Ta(n10, t10, null), pi(t10, r10), d10[o10].m(t10, null), pi(t10, a10), pi(t10, s10), e20[16](s10), c10 = true, l10 || (u10 = Oi(s10, "input", e20[7]), l10 = true); + }, p: function(e21, r11) { + var l11 = jo(r11, 1)[0], u11 = {}; + 16 & l11 && (u11.items = e21[4]), 8388608 & l11 && (u11.$$scope = { dirty: l11, ctx: e21 }), n10.$set(u11); + var v10 = o10; + (o10 = h10(e21)) === v10 ? d10[o10].p(e21, l11) : (ba(), xa(d10[v10], 1, 1, function() { + d10[v10] = null; + }), ka(), (i10 = d10[o10]) ? i10.p(e21, l11) : (i10 = d10[o10] = f10[o10](e21)).c(), wa(i10, 1), i10.m(t10, a10)), (!c10 || 2 & l11) && (s10.readOnly = e21[1]), (!c10 || 1 & l11) && (s10.value = e21[0]); + }, i: function(e21) { + c10 || (wa(n10.$$.fragment, e21), wa(i10), c10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), xa(i10), c10 = false; + }, d: function(r11) { + r11 && wi(t10), Ra(n10), d10[o10].d(), e20[16](null), l10 = false, u10(); + } }; + } + function II(e20, t10, n10) { + var r10, o10, i10, a10, s10, c10, l10, u10, f10 = t10.text, d10 = void 0 === f10 ? "" : f10, h10 = t10.readOnly, v10 = void 0 !== h10 && h10, p10 = t10.onParse, m10 = t10.onRepair, g10 = t10.onChange, y10 = void 0 === g10 ? null : g10, b10 = t10.onApply, k10 = t10.onCancel, w10 = Da("jsoneditor:JSONRepair"); + function x10() { + b10(d10); + } + return e20.$$set = function(e21) { + "text" in e21 && n10(0, d10 = e21.text), "readOnly" in e21 && n10(1, v10 = e21.readOnly), "onParse" in e21 && n10(8, p10 = e21.onParse), "onRepair" in e21 && n10(9, m10 = e21.onRepair), "onChange" in e21 && n10(10, y10 = e21.onChange), "onApply" in e21 && n10(11, b10 = e21.onApply), "onCancel" in e21 && n10(12, k10 = e21.onCancel); + }, e20.$$.update = function() { + 1 & e20.$$.dirty && n10(2, r10 = function(e21) { + try { + return p10(e21), null; + } catch (t11) { + return H_(e21, t11.message); + } + }(d10)), 1 & e20.$$.dirty && n10(15, o10 = function(e21) { + try { + return m10(e21), true; + } catch (e23) { + return false; + } + }(d10)), 4 & e20.$$.dirty && w10("error", r10), 4096 & e20.$$.dirty && n10(4, u10 = [{ type: "space" }, { type: "button", icon: MP, title: "Cancel repair", className: "jse-cancel", onClick: k10 }]), 57344 & e20.$$.dirty && n10(6, s10 = o10 ? [i10, a10] : [i10]), 2 & e20.$$.dirty && n10(5, c10 = [{ icon: PP, text: "Apply", title: "Apply fixed JSON", disabled: v10, onClick: x10 }]); + }, n10(13, i10 = { icon: xP, text: "Show me", title: "Scroll to the error location", onClick: function() { + if (l10 && r10) { + var e21 = null != r10.position ? r10.position : 0; + l10.setSelectionRange(e21, e21), l10.focus(); + } + } }), n10(14, a10 = { icon: uP, text: "Auto repair", title: "Automatically repair JSON", onClick: function() { + try { + n10(0, d10 = m10(d10)), y10 && y10(d10); + } catch (e21) { + } + } }), [d10, v10, r10, l10, u10, c10, s10, function(e21) { + w10("handleChange"); + var t11 = e21.target.value; + d10 !== t11 && (n10(0, d10 = t11), y10 && y10(d10)); + }, p10, m10, y10, b10, k10, i10, a10, o10, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(3, l10 = e21); + }); + }]; + } + var DI = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, II, NI, Zo, { text: 0, readOnly: 1, onParse: 8, onRepair: 9, onChange: 10, onApply: 11, onCancel: 12 }, AI), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + var qI = []; + function zI(e20) { + if ("Escape" === e20.key) { + var t10 = vb(qI); + t10 && t10(); + } + } + function BI(e20, t10) { + return _w(qI) && window.addEventListener("keydown", zI), qI.push(t10), { destroy: function() { + _w(qI = qI.filter(function(e21) { + return e21 !== t10; + })) && window.removeEventListener("keydown", zI); + } }; + } + function LI(e20) { + mi(e20, "svelte-rn18r0", '.jse-modal.jse-repair.svelte-rn18r0{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);line-height:normal;background:var(--jse-modal-background, #f5f5f5);color:var(--jse-text-color, #4d4d4d)}'); + } + function FI(e20) { + var t10, n10, r10, o10, i10, a10; + function s10(t11) { + e20[7](t11); + } + var c10 = { onParse: e20[1], onRepair: e20[2], onApply: e20[4], onCancel: e20[5] }; + return void 0 !== e20[0] && (c10.text = e20[0]), n10 = new DI({ props: c10 }), na.push(function() { + return Aa(n10, "text", s10); + }), { c: function() { + t10 = ji("div"), Pa(n10.$$.fragment), Ai(t10, "class", "jse-modal jse-repair svelte-rn18r0"); + }, m: function(r11, s11) { + ki(r11, t10, s11), Ta(n10, t10, null), o10 = true, i10 || (a10 = ci(BI.call(null, t10, e20[3])), i10 = true); + }, p: function(e21, t11) { + var o11 = jo(t11, 1)[0], i11 = {}; + 2 & o11 && (i11.onParse = e21[1]), 4 & o11 && (i11.onRepair = e21[2]), !r10 && 1 & o11 && (r10 = true, i11.text = e21[0], ua(function() { + return r10 = false; + })), n10.$set(i11); + }, i: function(e21) { + o10 || (wa(n10.$$.fragment, e21), o10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), o10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(n10), i10 = false, a10(); + } }; + } + function VI(e20, t10, n10) { + var r10 = t10.text, o10 = t10.onParse, i10 = t10.onRepair, a10 = t10.onApply, s10 = Zi("simple-modal").close; + return e20.$$set = function(e21) { + "text" in e21 && n10(0, r10 = e21.text), "onParse" in e21 && n10(1, o10 = e21.onParse), "onRepair" in e21 && n10(2, i10 = e21.onRepair), "onApply" in e21 && n10(6, a10 = e21.onApply); + }, [r10, o10, i10, s10, function(e21) { + s10(), a10(e21); + }, function() { + s10(); + }, a10, function(e21) { + n10(0, r10 = e21); + }]; + } + var HI = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, VI, FI, Zo, { text: 0, onParse: 1, onRepair: 2, onApply: 6 }, LI), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function WI(e20) { + mi(e20, "svelte-szeu2l", 'button.jse-context-menu-button.svelte-szeu2l{border:none;background:transparent;color:inherit;cursor:pointer;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);padding:5px;margin:0;flex:1;white-space:nowrap;padding:var(--jse-padding, 10px);color:inherit}button.jse-context-menu-button.svelte-szeu2l:hover{background:var(--jse-context-menu-background-highlight, #7a7a7a)}button.jse-context-menu-button.svelte-szeu2l:focus{background:var(--jse-context-menu-background-highlight, #7a7a7a);z-index:1}button.jse-context-menu-button.svelte-szeu2l:disabled{color:var(--jse-context-menu-color-disabled, #9d9d9d);background:unset}button.jse-context-menu-button.left.svelte-szeu2l{text-align:left}button.jse-context-menu-button.svelte-szeu2l svg{width:16px}'); + } + function UI(e20) { + var t10, n10; + return t10 = new jM({ props: { data: e20[0].icon } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 1 & n11 && (r10.data = e21[0].icon), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function JI(e20) { + var t10, n10 = e20[0].text + ""; + return { c: function() { + t10 = Ci(n10); + }, m: function(e21, n11) { + ki(e21, t10, n11); + }, p: function(e21, r10) { + 1 & r10 && n10 !== (n10 = e21[0].text + "") && Ni(t10, n10); + }, d: function(e21) { + e21 && wi(t10); + } }; + } + function KI(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10 = e20[0].icon && UI(e20), u10 = e20[0].text && JI(e20); + return { c: function() { + t10 = ji("button"), l10 && l10.c(), n10 = $i(), u10 && u10.c(), Ai(t10, "type", "button"), Ai(t10, "class", r10 = si(GE("jse-context-menu-button", e20[1], e20[0].className)) + " svelte-szeu2l"), Ai(t10, "title", o10 = e20[0].title), t10.disabled = i10 = e20[0].disabled || false; + }, m: function(r11, o11) { + ki(r11, t10, o11), l10 && l10.m(t10, null), pi(t10, n10), u10 && u10.m(t10, null), a10 = true, s10 || (c10 = Oi(t10, "click", e20[3]), s10 = true); + }, p: function(e21, s11) { + var c11 = jo(s11, 1)[0]; + e21[0].icon ? l10 ? (l10.p(e21, c11), 1 & c11 && wa(l10, 1)) : ((l10 = UI(e21)).c(), wa(l10, 1), l10.m(t10, n10)) : l10 && (ba(), xa(l10, 1, 1, function() { + l10 = null; + }), ka()), e21[0].text ? u10 ? u10.p(e21, c11) : ((u10 = JI(e21)).c(), u10.m(t10, null)) : u10 && (u10.d(1), u10 = null), (!a10 || 3 & c11 && r10 !== (r10 = si(GE("jse-context-menu-button", e21[1], e21[0].className)) + " svelte-szeu2l")) && Ai(t10, "class", r10), (!a10 || 1 & c11 && o10 !== (o10 = e21[0].title)) && Ai(t10, "title", o10), (!a10 || 1 & c11 && i10 !== (i10 = e21[0].disabled || false)) && (t10.disabled = i10); + }, i: function(e21) { + a10 || (wa(l10), a10 = true); + }, o: function(e21) { + xa(l10), a10 = false; + }, d: function(e21) { + e21 && wi(t10), l10 && l10.d(), u10 && u10.d(), s10 = false, c10(); + } }; + } + function GI(e20, t10, n10) { + var r10 = t10.item, o10 = t10.className, i10 = void 0 === o10 ? void 0 : o10, a10 = t10.onCloseContextMenu; + return e20.$$set = function(e21) { + "item" in e21 && n10(0, r10 = e21.item), "className" in e21 && n10(1, i10 = e21.className), "onCloseContextMenu" in e21 && n10(2, a10 = e21.onCloseContextMenu); + }, [r10, i10, a10, function(e21) { + a10(), r10.onClick(e21); + }]; + } + var QI = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, GI, KI, Xo, { item: 0, className: 1, onCloseContextMenu: 2 }, WI), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function YI(e20) { + mi(e20, "svelte-9i012w", '.jse-dropdown-button.svelte-9i012w.svelte-9i012w{flex:1;line-height:normal;border:none;background:transparent;color:inherit;cursor:pointer;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);padding:5px;margin:0;position:relative;padding:0;display:flex}.jse-dropdown-button.svelte-9i012w ul.svelte-9i012w{margin:0;padding:0}.jse-dropdown-button.svelte-9i012w ul li.svelte-9i012w{margin:0;padding:0;list-style-type:none}.jse-dropdown-button.svelte-9i012w button.jse-open-dropdown.svelte-9i012w{border:none;background:transparent;color:inherit;cursor:pointer;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);padding:5px;margin:0;width:2em;background:var(--jse-context-menu-background, #656565);color:var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff));border-radius:0}.jse-dropdown-button.svelte-9i012w button.jse-open-dropdown.jse-visible.svelte-9i012w{background:var(--jse-context-menu-background, #656565)}.jse-dropdown-button.svelte-9i012w button.jse-open-dropdown.svelte-9i012w:hover{background:var(--jse-context-menu-background-highlight, #7a7a7a)}.jse-dropdown-button.svelte-9i012w button.jse-open-dropdown.svelte-9i012w:focus{z-index:1}.jse-dropdown-button.svelte-9i012w button.jse-open-dropdown.svelte-9i012w:disabled{color:var(--jse-context-menu-color-disabled, #9d9d9d);background:unset}.jse-dropdown-button.svelte-9i012w .jse-dropdown-items.svelte-9i012w{display:none;position:absolute;top:100%;left:0;z-index:1;background:var(--jse-context-menu-background, #656565);color:var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff));box-shadow:var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24))}.jse-dropdown-button.svelte-9i012w .jse-dropdown-items.jse-visible.svelte-9i012w{display:block}.jse-dropdown-button.svelte-9i012w .jse-dropdown-items button.svelte-9i012w{border:none;background:transparent;color:inherit;cursor:pointer;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);padding:5px;margin:0;width:100%;text-align:left;padding:var(--jse-padding, 10px);margin:0}.jse-dropdown-button.svelte-9i012w .jse-dropdown-items button.svelte-9i012w:hover{background:var(--jse-context-menu-background-highlight, #7a7a7a)}.jse-dropdown-button.svelte-9i012w .jse-dropdown-items button.svelte-9i012w:disabled{color:var(--jse-context-menu-color-disabled, #9d9d9d);background:unset}'); + } + function XI(e20, t10, n10) { + var r10 = e20.slice(); + return r10[11] = t10[n10], r10; + } + var ZI = function(e20) { + return {}; + }; + var eD = function(e20) { + return {}; + }; + function tD(e20) { + var t10, n10; + return t10 = new jM({ props: { data: e20[11].icon } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 1 & n11 && (r10.data = e21[11].icon), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function nD(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10, d10 = e20[11].text + "", h10 = e20[11].icon && tD(e20); + function v10() { + for (var t11, n11 = arguments.length, r11 = new Array(n11), o11 = 0; o11 < n11; o11++) + r11[o11] = arguments[o11]; + return (t11 = e20)[9].apply(t11, [e20[11]].concat(r11)); + } + return { c: function() { + t10 = ji("li"), n10 = ji("button"), h10 && h10.c(), r10 = $i(), o10 = Ci(d10), c10 = $i(), Ai(n10, "type", "button"), Ai(n10, "title", i10 = e20[11].title), n10.disabled = a10 = e20[11].disabled, Ai(n10, "class", s10 = si(e20[11].className) + " svelte-9i012w"), Ai(t10, "class", "svelte-9i012w"); + }, m: function(e21, i11) { + ki(e21, t10, i11), pi(t10, n10), h10 && h10.m(n10, null), pi(n10, r10), pi(n10, o10), pi(t10, c10), l10 = true, u10 || (f10 = Oi(n10, "click", v10), u10 = true); + }, p: function(t11, c11) { + (e20 = t11)[11].icon ? h10 ? (h10.p(e20, c11), 1 & c11 && wa(h10, 1)) : ((h10 = tD(e20)).c(), wa(h10, 1), h10.m(n10, r10)) : h10 && (ba(), xa(h10, 1, 1, function() { + h10 = null; + }), ka()), (!l10 || 1 & c11) && d10 !== (d10 = e20[11].text + "") && Ni(o10, d10), (!l10 || 1 & c11 && i10 !== (i10 = e20[11].title)) && Ai(n10, "title", i10), (!l10 || 1 & c11 && a10 !== (a10 = e20[11].disabled)) && (n10.disabled = a10), (!l10 || 1 & c11 && s10 !== (s10 = si(e20[11].className) + " svelte-9i012w")) && Ai(n10, "class", s10); + }, i: function(e21) { + l10 || (wa(h10), l10 = true); + }, o: function(e21) { + xa(h10), l10 = false; + }, d: function(e21) { + e21 && wi(t10), h10 && h10.d(), u10 = false, f10(); + } }; + } + function rD(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10 = e20[8].defaultItem, d10 = ei(f10, e20, e20[7], eD); + o10 = new jM({ props: { data: gP } }); + for (var h10 = Ca(e20[0]), v10 = [], p10 = 0; p10 < h10.length; p10 += 1) + v10[p10] = nD(XI(e20, h10, p10)); + var m10 = function(e21) { + return xa(v10[e21], 1, 1, function() { + v10[e21] = null; + }); + }; + return { c: function() { + t10 = ji("div"), d10 && d10.c(), n10 = $i(), r10 = ji("button"), Pa(o10.$$.fragment), i10 = $i(), a10 = ji("div"), s10 = ji("ul"); + for (var c11 = 0; c11 < v10.length; c11 += 1) + v10[c11].c(); + Ai(r10, "type", "button"), Ai(r10, "class", "jse-open-dropdown svelte-9i012w"), Ai(r10, "data-type", "jse-open-dropdown"), r10.disabled = e20[4], zi(r10, "jse-visible", e20[3]), Ai(s10, "class", "svelte-9i012w"), Ai(a10, "class", "jse-dropdown-items svelte-9i012w"), Di(a10, "width", e20[2]), zi(a10, "jse-visible", e20[3]), Ai(t10, "role", "button"), Ai(t10, "tabindex", "0"), Ai(t10, "class", "jse-dropdown-button svelte-9i012w"), Ai(t10, "title", e20[1]); + }, m: function(f11, h11) { + ki(f11, t10, h11), d10 && d10.m(t10, null), pi(t10, n10), pi(t10, r10), Ta(o10, r10, null), pi(t10, i10), pi(t10, a10), pi(a10, s10); + for (var p11 = 0; p11 < v10.length; p11 += 1) + v10[p11] && v10[p11].m(s10, null); + c10 = true, l10 || (u10 = [Oi(r10, "click", e20[5]), Oi(t10, "click", e20[6])], l10 = true); + }, p: function(e21, n11) { + var o11 = jo(n11, 1)[0]; + if (d10 && d10.p && (!c10 || 128 & o11) && ri(d10, f10, e21, e21[7], c10 ? ni(f10, e21[7], o11, ZI) : oi(e21[7]), eD), (!c10 || 16 & o11) && (r10.disabled = e21[4]), (!c10 || 8 & o11) && zi(r10, "jse-visible", e21[3]), 1 & o11) { + var i11; + for (h10 = Ca(e21[0]), i11 = 0; i11 < h10.length; i11 += 1) { + var l11 = XI(e21, h10, i11); + v10[i11] ? (v10[i11].p(l11, o11), wa(v10[i11], 1)) : (v10[i11] = nD(l11), v10[i11].c(), wa(v10[i11], 1), v10[i11].m(s10, null)); + } + for (ba(), i11 = h10.length; i11 < v10.length; i11 += 1) + m10(i11); + ka(); + } + (!c10 || 4 & o11) && Di(a10, "width", e21[2]), (!c10 || 8 & o11) && zi(a10, "jse-visible", e21[3]), (!c10 || 2 & o11) && Ai(t10, "title", e21[1]); + }, i: function(e21) { + if (!c10) { + wa(d10, e21), wa(o10.$$.fragment, e21); + for (var t11 = 0; t11 < h10.length; t11 += 1) + wa(v10[t11]); + c10 = true; + } + }, o: function(e21) { + xa(d10, e21), xa(o10.$$.fragment, e21), v10 = v10.filter(Boolean); + for (var t11 = 0; t11 < v10.length; t11 += 1) + xa(v10[t11]); + c10 = false; + }, d: function(e21) { + e21 && wi(t10), d10 && d10.d(e21), Ra(o10), xi(v10, e21), l10 = false, Qo(u10); + } }; + } + function oD(e20, t10, n10) { + var r10, o10 = t10.$$slots, i10 = void 0 === o10 ? {} : o10, a10 = t10.$$scope, s10 = t10.items, c10 = void 0 === s10 ? [] : s10, l10 = t10.title, u10 = void 0 === l10 ? void 0 : l10, f10 = t10.width, d10 = void 0 === f10 ? "120px" : f10, h10 = false; + function v10() { + n10(3, h10 = false); + } + function p10(e21) { + "Escape" === PO(e21) && (e21.preventDefault(), n10(3, h10 = false)); + } + Gi(function() { + document.addEventListener("click", v10), document.addEventListener("keydown", p10); + }), Qi(function() { + document.removeEventListener("click", v10), document.removeEventListener("keydown", p10); + }); + return e20.$$set = function(e21) { + "items" in e21 && n10(0, c10 = e21.items), "title" in e21 && n10(1, u10 = e21.title), "width" in e21 && n10(2, d10 = e21.width), "$$scope" in e21 && n10(7, a10 = e21.$$scope); + }, e20.$$.update = function() { + 1 & e20.$$.dirty && n10(4, r10 = c10.every(function(e21) { + return true === e21.disabled; + })); + }, [c10, u10, d10, h10, r10, function() { + var e21 = h10; + setTimeout(function() { + return n10(3, h10 = !e21); + }); + }, v10, a10, i10, function(e21, t11) { + return e21.onClick(t11); + }]; + } + var iD = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, oD, rD, Zo, { items: 0, title: 1, width: 2 }, YI), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function aD(e20) { + mi(e20, "svelte-szeu2l", 'button.jse-context-menu-button.svelte-szeu2l{border:none;background:transparent;color:inherit;cursor:pointer;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);padding:5px;margin:0;flex:1;white-space:nowrap;padding:var(--jse-padding, 10px);color:inherit}button.jse-context-menu-button.svelte-szeu2l:hover{background:var(--jse-context-menu-background-highlight, #7a7a7a)}button.jse-context-menu-button.svelte-szeu2l:focus{background:var(--jse-context-menu-background-highlight, #7a7a7a);z-index:1}button.jse-context-menu-button.svelte-szeu2l:disabled{color:var(--jse-context-menu-color-disabled, #9d9d9d);background:unset}button.jse-context-menu-button.left.svelte-szeu2l{text-align:left}button.jse-context-menu-button.svelte-szeu2l svg{width:16px}'); + } + function sD(e20) { + var t10, n10; + return t10 = new jM({ props: { data: e20[0].main.icon } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 1 & n11 && (r10.data = e21[0].main.icon), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function cD(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10 = e20[0].main.text + "", f10 = e20[0].main.icon && sD(e20); + return { c: function() { + t10 = ji("button"), f10 && f10.c(), n10 = $i(), r10 = Ci(u10), Ai(t10, "class", o10 = si(GE("jse-context-menu-button", e20[1], e20[0].main.className)) + " svelte-szeu2l"), Ai(t10, "type", "button"), Ai(t10, "slot", "defaultItem"), Ai(t10, "title", i10 = e20[0].main.title), t10.disabled = a10 = e20[0].main.disabled || false; + }, m: function(o11, i11) { + ki(o11, t10, i11), f10 && f10.m(t10, null), pi(t10, n10), pi(t10, r10), s10 = true, c10 || (l10 = Oi(t10, "click", e20[3]), c10 = true); + }, p: function(e21, c11) { + e21[0].main.icon ? f10 ? (f10.p(e21, c11), 1 & c11 && wa(f10, 1)) : ((f10 = sD(e21)).c(), wa(f10, 1), f10.m(t10, n10)) : f10 && (ba(), xa(f10, 1, 1, function() { + f10 = null; + }), ka()), (!s10 || 1 & c11) && u10 !== (u10 = e21[0].main.text + "") && Ni(r10, u10), (!s10 || 3 & c11 && o10 !== (o10 = si(GE("jse-context-menu-button", e21[1], e21[0].main.className)) + " svelte-szeu2l")) && Ai(t10, "class", o10), (!s10 || 1 & c11 && i10 !== (i10 = e21[0].main.title)) && Ai(t10, "title", i10), (!s10 || 1 & c11 && a10 !== (a10 = e21[0].main.disabled || false)) && (t10.disabled = a10); + }, i: function(e21) { + s10 || (wa(f10), s10 = true); + }, o: function(e21) { + xa(f10), s10 = false; + }, d: function(e21) { + e21 && wi(t10), f10 && f10.d(), c10 = false, l10(); + } }; + } + function lD(e20) { + var t10, n10; + return t10 = new iD({ props: { width: e20[0].width, items: e20[0].items, $$slots: { defaultItem: [cD] }, $$scope: { ctx: e20 } } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = jo(n11, 1)[0], o10 = {}; + 1 & r10 && (o10.width = e21[0].width), 1 & r10 && (o10.items = e21[0].items), 23 & r10 && (o10.$$scope = { dirty: r10, ctx: e21 }), t10.$set(o10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function uD(e20, t10, n10) { + var r10 = t10.item, o10 = t10.className, i10 = void 0 === o10 ? void 0 : o10, a10 = t10.onCloseContextMenu; + return e20.$$set = function(e21) { + "item" in e21 && n10(0, r10 = e21.item), "className" in e21 && n10(1, i10 = e21.className), "onCloseContextMenu" in e21 && n10(2, a10 = e21.onCloseContextMenu); + }, [r10, i10, a10, function(e21) { + a10(), r10.main.onClick(e21); + }]; + } + var fD = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, uD, lD, Xo, { item: 0, className: 1, onCloseContextMenu: 2 }, aD), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function dD(e20) { + mi(e20, "svelte-vtd7md", '.jse-contextmenu.svelte-vtd7md.svelte-vtd7md{box-shadow:var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24));font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);background:var(--jse-context-menu-background, #656565);color:var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff))}.jse-contextmenu.svelte-vtd7md .jse-row.svelte-vtd7md{display:flex;flex-direction:row;align-items:flex-start;justify-content:stretch}.jse-contextmenu.svelte-vtd7md .jse-row div.jse-label.svelte-vtd7md{flex:1;white-space:nowrap;padding:var(--jse-padding, 10px);color:var(--jse-context-menu-color-disabled, #9d9d9d);line-height:normal}.jse-contextmenu.svelte-vtd7md .jse-row div.jse-tip.svelte-vtd7md{flex:1;background:var(--jse-context-menu-tip-background, rgba(255, 255, 255, 0.2));color:var(--context-menu-tip-color, inherit);margin:calc(0.5 * var(--jse-padding, 10px));padding:calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px);font-size:80%;line-height:1.3em;display:flex;flex-direction:row;align-items:start;gap:var(--jse-padding, 10px);border-radius:3px}.jse-contextmenu.svelte-vtd7md .jse-row div.jse-tip div.jse-tip-icon.svelte-vtd7md{padding-top:calc(0.5 * var(--jse-padding, 10px))}.jse-contextmenu.svelte-vtd7md .jse-column.svelte-vtd7md{flex:1;display:flex;flex-direction:column;align-items:stretch}.jse-contextmenu.svelte-vtd7md .jse-column.svelte-vtd7md:not(:last-child){border-right:1px solid var(--jse-context-menu-separator-color, #7a7a7a)}.jse-contextmenu.svelte-vtd7md .jse-separator.svelte-vtd7md{width:100%;height:1px;background:var(--jse-context-menu-separator-color, #7a7a7a)}'); + } + function hD(e20, t10, n10) { + var r10 = e20.slice(); + return r10[7] = t10[n10], r10; + } + function vD(e20, t10, n10) { + var r10 = e20.slice(); + return r10[10] = t10[n10], r10; + } + function pD(e20, t10, n10) { + var r10 = e20.slice(); + return r10[13] = t10[n10], r10; + } + function mD(e20) { + var t10, n10 = ID(e20[7]) + ""; + return { c: function() { + t10 = Ci(n10); + }, m: function(e21, n11) { + ki(e21, t10, n11); + }, p: function(e21, r10) { + 1 & r10 && n10 !== (n10 = ID(e21[7]) + "") && Ni(t10, n10); + }, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function gD(e20) { + var t10; + return { c: function() { + Ai(t10 = ji("div"), "class", "jse-separator svelte-vtd7md"); + }, m: function(e21, n10) { + ki(e21, t10, n10); + }, p: Wo, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function yD(e20) { + for (var t10, n10, r10 = Ca(e20[7].items), o10 = [], i10 = 0; i10 < r10.length; i10 += 1) + o10[i10] = PD(vD(e20, r10, i10)); + var a10 = function(e21) { + return xa(o10[e21], 1, 1, function() { + o10[e21] = null; + }); + }; + return { c: function() { + t10 = ji("div"); + for (var e21 = 0; e21 < o10.length; e21 += 1) + o10[e21].c(); + Ai(t10, "class", "jse-row svelte-vtd7md"); + }, m: function(e21, r11) { + ki(e21, t10, r11); + for (var i11 = 0; i11 < o10.length; i11 += 1) + o10[i11] && o10[i11].m(t10, null); + n10 = true; + }, p: function(e21, n11) { + if (3 & n11) { + var i11; + for (r10 = Ca(e21[7].items), i11 = 0; i11 < r10.length; i11 += 1) { + var s10 = vD(e21, r10, i11); + o10[i11] ? (o10[i11].p(s10, n11), wa(o10[i11], 1)) : (o10[i11] = PD(s10), o10[i11].c(), wa(o10[i11], 1), o10[i11].m(t10, null)); + } + for (ba(), i11 = r10.length; i11 < o10.length; i11 += 1) + a10(i11); + ka(); + } + }, i: function(e21) { + if (!n10) { + for (var t11 = 0; t11 < r10.length; t11 += 1) + wa(o10[t11]); + n10 = true; + } + }, o: function(e21) { + o10 = o10.filter(Boolean); + for (var t11 = 0; t11 < o10.length; t11 += 1) + xa(o10[t11]); + n10 = false; + }, d: function(e21) { + e21 && wi(t10), xi(o10, e21); + } }; + } + function bD(e20) { + var t10, n10; + return t10 = new fD({ props: { item: e20[7], onCloseContextMenu: e20[1] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 1 & n11 && (r10.item = e21[7]), 2 & n11 && (r10.onCloseContextMenu = e21[1]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function kD(e20) { + var t10, n10; + return t10 = new QI({ props: { item: e20[7], onCloseContextMenu: e20[1] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 1 & n11 && (r10.item = e21[7]), 2 & n11 && (r10.onCloseContextMenu = e21[1]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function wD(e20) { + var t10, n10 = ID(e20[10]) + ""; + return { c: function() { + t10 = Ci(n10); + }, m: function(e21, n11) { + ki(e21, t10, n11); + }, p: function(e21, r10) { + 1 & r10 && n10 !== (n10 = ID(e21[10]) + "") && Ni(t10, n10); + }, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function xD(e20) { + var t10; + return { c: function() { + Ai(t10 = ji("div"), "class", "jse-separator svelte-vtd7md"); + }, m: function(e21, n10) { + ki(e21, t10, n10); + }, p: Wo, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function jD(e20) { + for (var t10, n10, r10 = Ca(e20[10].items), o10 = [], i10 = 0; i10 < r10.length; i10 += 1) + o10[i10] = AD(pD(e20, r10, i10)); + var a10 = function(e21) { + return xa(o10[e21], 1, 1, function() { + o10[e21] = null; + }); + }; + return { c: function() { + t10 = ji("div"); + for (var e21 = 0; e21 < o10.length; e21 += 1) + o10[e21].c(); + Ai(t10, "class", "jse-column svelte-vtd7md"); + }, m: function(e21, r11) { + ki(e21, t10, r11); + for (var i11 = 0; i11 < o10.length; i11 += 1) + o10[i11] && o10[i11].m(t10, null); + n10 = true; + }, p: function(e21, n11) { + if (3 & n11) { + var i11; + for (r10 = Ca(e21[10].items), i11 = 0; i11 < r10.length; i11 += 1) { + var s10 = pD(e21, r10, i11); + o10[i11] ? (o10[i11].p(s10, n11), wa(o10[i11], 1)) : (o10[i11] = AD(s10), o10[i11].c(), wa(o10[i11], 1), o10[i11].m(t10, null)); + } + for (ba(), i11 = r10.length; i11 < o10.length; i11 += 1) + a10(i11); + ka(); + } + }, i: function(e21) { + if (!n10) { + for (var t11 = 0; t11 < r10.length; t11 += 1) + wa(o10[t11]); + n10 = true; + } + }, o: function(e21) { + o10 = o10.filter(Boolean); + for (var t11 = 0; t11 < o10.length; t11 += 1) + xa(o10[t11]); + n10 = false; + }, d: function(e21) { + e21 && wi(t10), xi(o10, e21); + } }; + } + function SD(e20) { + var t10, n10; + return t10 = new fD({ props: { item: e20[10], onCloseContextMenu: e20[1] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 1 & n11 && (r10.item = e21[10]), 2 & n11 && (r10.onCloseContextMenu = e21[1]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function CD(e20) { + var t10, n10; + return t10 = new QI({ props: { item: e20[10], onCloseContextMenu: e20[1] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 1 & n11 && (r10.item = e21[10]), 2 & n11 && (r10.onCloseContextMenu = e21[1]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function $D(e20) { + var t10, n10 = ID(e20[13]) + ""; + return { c: function() { + t10 = Ci(n10); + }, m: function(e21, n11) { + ki(e21, t10, n11); + }, p: function(e21, r10) { + 1 & r10 && n10 !== (n10 = ID(e21[13]) + "") && Ni(t10, n10); + }, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function _D(e20) { + var t10, n10, r10 = e20[13].text + ""; + return { c: function() { + t10 = ji("div"), n10 = Ci(r10), Ai(t10, "class", "jse-label svelte-vtd7md"); + }, m: function(e21, r11) { + ki(e21, t10, r11), pi(t10, n10); + }, p: function(e21, t11) { + 1 & t11 && r10 !== (r10 = e21[13].text + "") && Ni(n10, r10); + }, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function OD(e20) { + var t10; + return { c: function() { + Ai(t10 = ji("div"), "class", "jse-separator svelte-vtd7md"); + }, m: function(e21, n10) { + ki(e21, t10, n10); + }, p: Wo, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function MD(e20) { + var t10, n10; + return t10 = new fD({ props: { className: "left", item: e20[13], onCloseContextMenu: e20[1] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 1 & n11 && (r10.item = e21[13]), 2 & n11 && (r10.onCloseContextMenu = e21[1]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function ED(e20) { + var t10, n10; + return t10 = new QI({ props: { className: "left", item: e20[13], onCloseContextMenu: e20[1] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 1 & n11 && (r10.item = e21[13]), 2 & n11 && (r10.onCloseContextMenu = e21[1]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function AD(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10 = [ED, MD, OD, _D, $D], u10 = []; + function f10(e21, i11) { + return 1 & i11 && (t10 = null), 1 & i11 && (n10 = null), 1 & i11 && (r10 = null), 1 & i11 && (o10 = null), null == t10 && (t10 = !!aI(e21[13])), t10 ? 0 : (null == n10 && (n10 = !!sI(e21[13])), n10 ? 1 : (null == r10 && (r10 = !!oI(e21[13])), r10 ? 2 : (null == o10 && (o10 = !!iI(e21[13])), o10 ? 3 : 4))); + } + return i10 = f10(e20, -1), a10 = u10[i10] = l10[i10](e20), { c: function() { + a10.c(), s10 = _i(); + }, m: function(e21, t11) { + u10[i10].m(e21, t11), ki(e21, s10, t11), c10 = true; + }, p: function(e21, t11) { + var n11 = i10; + (i10 = f10(e21, t11)) === n11 ? u10[i10].p(e21, t11) : (ba(), xa(u10[n11], 1, 1, function() { + u10[n11] = null; + }), ka(), (a10 = u10[i10]) ? a10.p(e21, t11) : (a10 = u10[i10] = l10[i10](e21)).c(), wa(a10, 1), a10.m(s10.parentNode, s10)); + }, i: function(e21) { + c10 || (wa(a10), c10 = true); + }, o: function(e21) { + xa(a10), c10 = false; + }, d: function(e21) { + e21 && wi(s10), u10[i10].d(e21); + } }; + } + function PD(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10 = [CD, SD, jD, xD, wD], u10 = []; + function f10(e21, i11) { + return 1 & i11 && (t10 = null), 1 & i11 && (n10 = null), 1 & i11 && (r10 = null), 1 & i11 && (o10 = null), null == t10 && (t10 = !!aI(e21[10])), t10 ? 0 : (null == n10 && (n10 = !!sI(e21[10])), n10 ? 1 : (null == r10 && (r10 = !!lI(e21[10])), r10 ? 2 : (null == o10 && (o10 = !!oI(e21[10])), o10 ? 3 : 4))); + } + return i10 = f10(e20, -1), a10 = u10[i10] = l10[i10](e20), { c: function() { + a10.c(), s10 = _i(); + }, m: function(e21, t11) { + u10[i10].m(e21, t11), ki(e21, s10, t11), c10 = true; + }, p: function(e21, t11) { + var n11 = i10; + (i10 = f10(e21, t11)) === n11 ? u10[i10].p(e21, t11) : (ba(), xa(u10[n11], 1, 1, function() { + u10[n11] = null; + }), ka(), (a10 = u10[i10]) ? a10.p(e21, t11) : (a10 = u10[i10] = l10[i10](e21)).c(), wa(a10, 1), a10.m(s10.parentNode, s10)); + }, i: function(e21) { + c10 || (wa(a10), c10 = true); + }, o: function(e21) { + xa(a10), c10 = false; + }, d: function(e21) { + e21 && wi(s10), u10[i10].d(e21); + } }; + } + function TD(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10 = [kD, bD, yD, gD, mD], u10 = []; + function f10(e21, i11) { + return 1 & i11 && (t10 = null), 1 & i11 && (n10 = null), 1 & i11 && (r10 = null), 1 & i11 && (o10 = null), null == t10 && (t10 = !!aI(e21[7])), t10 ? 0 : (null == n10 && (n10 = !!sI(e21[7])), n10 ? 1 : (null == r10 && (r10 = !!cI(e21[7])), r10 ? 2 : (null == o10 && (o10 = !!oI(e21[7])), o10 ? 3 : 4))); + } + return i10 = f10(e20, -1), a10 = u10[i10] = l10[i10](e20), { c: function() { + a10.c(), s10 = _i(); + }, m: function(e21, t11) { + u10[i10].m(e21, t11), ki(e21, s10, t11), c10 = true; + }, p: function(e21, t11) { + var n11 = i10; + (i10 = f10(e21, t11)) === n11 ? u10[i10].p(e21, t11) : (ba(), xa(u10[n11], 1, 1, function() { + u10[n11] = null; + }), ka(), (a10 = u10[i10]) ? a10.p(e21, t11) : (a10 = u10[i10] = l10[i10](e21)).c(), wa(a10, 1), a10.m(s10.parentNode, s10)); + }, i: function(e21) { + c10 || (wa(a10), c10 = true); + }, o: function(e21) { + xa(a10), c10 = false; + }, d: function(e21) { + e21 && wi(s10), u10[i10].d(e21); + } }; + } + function RD(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10; + return o10 = new jM({ props: { data: oM } }), { c: function() { + t10 = ji("div"), n10 = ji("div"), r10 = ji("div"), Pa(o10.$$.fragment), i10 = $i(), a10 = ji("div"), s10 = Ci(e20[2]), Ai(r10, "class", "jse-tip-icon svelte-vtd7md"), Ai(a10, "class", "jse-tip-text"), Ai(n10, "class", "jse-tip svelte-vtd7md"), Ai(t10, "class", "jse-row svelte-vtd7md"); + }, m: function(e21, l10) { + ki(e21, t10, l10), pi(t10, n10), pi(n10, r10), Ta(o10, r10, null), pi(n10, i10), pi(n10, a10), pi(a10, s10), c10 = true; + }, p: function(e21, t11) { + (!c10 || 4 & t11) && Ni(s10, e21[2]); + }, i: function(e21) { + c10 || (wa(o10.$$.fragment, e21), c10 = true); + }, o: function(e21) { + xa(o10.$$.fragment, e21), c10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(o10); + } }; + } + function ND(e20) { + for (var t10, n10, r10, o10, i10, a10 = Ca(e20[0]), s10 = [], c10 = 0; c10 < a10.length; c10 += 1) + s10[c10] = TD(hD(e20, a10, c10)); + var l10 = function(e21) { + return xa(s10[e21], 1, 1, function() { + s10[e21] = null; + }); + }, u10 = e20[2] && RD(e20); + return { c: function() { + t10 = ji("div"); + for (var e21 = 0; e21 < s10.length; e21 += 1) + s10[e21].c(); + n10 = $i(), u10 && u10.c(), Ai(t10, "role", "menu"), Ai(t10, "tabindex", "-1"), Ai(t10, "class", "jse-contextmenu svelte-vtd7md"); + }, m: function(a11, c11) { + ki(a11, t10, c11); + for (var l11 = 0; l11 < s10.length; l11 += 1) + s10[l11] && s10[l11].m(t10, null); + pi(t10, n10), u10 && u10.m(t10, null), e20[5](t10), r10 = true, o10 || (i10 = Oi(t10, "keydown", e20[4]), o10 = true); + }, p: function(e21, r11) { + var o11 = jo(r11, 1)[0]; + if (3 & o11) { + var i11; + for (a10 = Ca(e21[0]), i11 = 0; i11 < a10.length; i11 += 1) { + var c11 = hD(e21, a10, i11); + s10[i11] ? (s10[i11].p(c11, o11), wa(s10[i11], 1)) : (s10[i11] = TD(c11), s10[i11].c(), wa(s10[i11], 1), s10[i11].m(t10, n10)); + } + for (ba(), i11 = a10.length; i11 < s10.length; i11 += 1) + l10(i11); + ka(); + } + e21[2] ? u10 ? (u10.p(e21, o11), 4 & o11 && wa(u10, 1)) : ((u10 = RD(e21)).c(), wa(u10, 1), u10.m(t10, null)) : u10 && (ba(), xa(u10, 1, 1, function() { + u10 = null; + }), ka()); + }, i: function(e21) { + if (!r10) { + for (var t11 = 0; t11 < a10.length; t11 += 1) + wa(s10[t11]); + wa(u10), r10 = true; + } + }, o: function(e21) { + s10 = s10.filter(Boolean); + for (var t11 = 0; t11 < s10.length; t11 += 1) + xa(s10[t11]); + xa(u10), r10 = false; + }, d: function(n11) { + n11 && wi(t10), xi(s10, n11), u10 && u10.d(), e20[5](null), o10 = false, i10(); + } }; + } + function ID(e20) { + return console.error("Unknown type of context menu item", e20), "???"; + } + function DD(e20, t10, n10) { + var r10, o10 = t10.items, i10 = t10.onCloseContextMenu, a10 = t10.tip; + Gi(function() { + var e21 = Array.from(r10.querySelectorAll("button")).find(function(e23) { + return !e23.disabled; + }); + e21 && e21.focus(); + }); + var s10 = { ArrowUp: "Up", ArrowDown: "Down", ArrowLeft: "Left", ArrowRight: "Right" }; + return e20.$$set = function(e21) { + "items" in e21 && n10(0, o10 = e21.items), "onCloseContextMenu" in e21 && n10(1, i10 = e21.onCloseContextMenu), "tip" in e21 && n10(2, a10 = e21.tip); + }, [o10, i10, a10, r10, function(e21) { + var t11 = PO(e21), n11 = s10[t11]; + if (n11 && e21.target) { + e21.preventDefault(); + var o11 = EO({ allElements: Array.from(r10.querySelectorAll("button:not([disabled])")), currentElement: e21.target, direction: n11, hasPrio: function(e23) { + return "jse-open-dropdown" !== e23.getAttribute("data-type"); + } }); + o11 && o11.focus(); + } + }, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(3, r10 = e21); + }); + }]; + } + var qD = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, DD, ND, Zo, { items: 0, onCloseContextMenu: 1, tip: 2 }, dD), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function zD(e20) { + var t10, n10; + return t10 = new qD({ props: { items: e20[2], onCloseContextMenu: e20[1], tip: e20[0] ? "Tip: you can open this context menu via right-click or with Ctrl+Q" : void 0 } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 4 & n11[0] && (r10.items = e21[2]), 2 & n11[0] && (r10.onCloseContextMenu = e21[1]), 1 & n11[0] && (r10.tip = e21[0] ? "Tip: you can open this context menu via right-click or with Ctrl+Q" : void 0), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function BD(e20, t10, n10) { + var r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10, p10, m10, g10, y10, b10, k10, w10, x10, j10, S10 = t10.json, C10 = t10.documentState, $10 = t10.parser, _10 = t10.showTip, O10 = t10.onCloseContextMenu, M10 = t10.onRenderContextMenu, E10 = t10.onEditKey, A10 = t10.onEditValue, P10 = t10.onToggleEnforceString, T8 = t10.onCut, R8 = t10.onCopy, N8 = t10.onPaste, I10 = t10.onRemove, D10 = t10.onDuplicate, q10 = t10.onExtract, z10 = t10.onInsertBefore, B10 = t10.onInsert, L10 = t10.onConvert, F10 = t10.onInsertAfter, V10 = t10.onSort, H10 = t10.onTransform; + function W10(e21) { + l10 ? L10(e21) : B10(e21); + } + return e20.$$set = function(e21) { + "json" in e21 && n10(3, S10 = e21.json), "documentState" in e21 && n10(4, C10 = e21.documentState), "parser" in e21 && n10(5, $10 = e21.parser), "showTip" in e21 && n10(0, _10 = e21.showTip), "onCloseContextMenu" in e21 && n10(1, O10 = e21.onCloseContextMenu), "onRenderContextMenu" in e21 && n10(6, M10 = e21.onRenderContextMenu), "onEditKey" in e21 && n10(7, E10 = e21.onEditKey), "onEditValue" in e21 && n10(8, A10 = e21.onEditValue), "onToggleEnforceString" in e21 && n10(9, P10 = e21.onToggleEnforceString), "onCut" in e21 && n10(10, T8 = e21.onCut), "onCopy" in e21 && n10(11, R8 = e21.onCopy), "onPaste" in e21 && n10(12, N8 = e21.onPaste), "onRemove" in e21 && n10(13, I10 = e21.onRemove), "onDuplicate" in e21 && n10(14, D10 = e21.onDuplicate), "onExtract" in e21 && n10(15, q10 = e21.onExtract), "onInsertBefore" in e21 && n10(16, z10 = e21.onInsertBefore), "onInsert" in e21 && n10(17, B10 = e21.onInsert), "onConvert" in e21 && n10(18, L10 = e21.onConvert), "onInsertAfter" in e21 && n10(19, F10 = e21.onInsertAfter), "onSort" in e21 && n10(20, V10 = e21.onSort), "onTransform" in e21 && n10(21, H10 = e21.onTransform); + }, e20.$$.update = function() { + 16 & e20.$$.dirty[0] && n10(39, r10 = C10.selection), 8 & e20.$$.dirty[0] && n10(41, o10 = void 0 !== S10), 256 & e20.$$.dirty[1] && n10(33, i10 = !!r10), 256 & e20.$$.dirty[1] && n10(23, a10 = !!r10 && _w(JE(r10))), 8 & e20.$$.dirty[0] | 256 & e20.$$.dirty[1] && n10(40, s10 = r10 ? Ws(S10, JE(r10)) : void 0), 512 & e20.$$.dirty[1] && n10(37, c10 = Array.isArray(s10) ? "Edit array" : Gl(s10) ? "Edit object" : "Edit value"), 1280 & e20.$$.dirty[1] && n10(24, l10 = o10 && (mE(r10) || vE(r10) || pE(r10))), 25165824 & e20.$$.dirty[0] | 1024 & e20.$$.dirty[1] && n10(32, u10 = o10 && l10 && !a10), 8388608 & e20.$$.dirty[0] | 1280 & e20.$$.dirty[1] && n10(31, f10 = o10 && null != r10 && (mE(r10) || pE(r10)) && !a10), 8388616 & e20.$$.dirty[0] | 1280 & e20.$$.dirty[1] && n10(38, d10 = o10 && null != r10 && ME(r10) && !a10 && !Array.isArray(Ws(S10, Qk(JE(r10))))), 1280 & e20.$$.dirty[1] && n10(36, h10 = o10 && null != r10 && ME(r10)), 544 & e20.$$.dirty[1] && n10(34, v10 = h10 && !Ql(s10)), 16777216 & e20.$$.dirty[0] && n10(27, p10 = l10), 134217728 & e20.$$.dirty[0] && n10(26, m10 = p10 ? "Convert to:" : "Insert:"), 134217728 & e20.$$.dirty[0] | 4 & e20.$$.dirty[1] && n10(30, g10 = !p10 && i10), 134217728 & e20.$$.dirty[0] | 772 & e20.$$.dirty[1] && n10(29, y10 = p10 ? LE(r10) && !Gl(s10) : i10), 134217728 & e20.$$.dirty[0] | 772 & e20.$$.dirty[1] && n10(28, b10 = p10 ? LE(r10) && !Array.isArray(s10) : i10), 134217728 & e20.$$.dirty[0] | 772 & e20.$$.dirty[1] && n10(25, k10 = p10 ? LE(r10) && Ql(s10) : i10), 48 & e20.$$.dirty[0] | 768 & e20.$$.dirty[1] && n10(35, w10 = !(null == r10 || !s10) && oE(s10, C10.enforceStringMap, Zs(JE(r10)), $10)), 2142896e3 & e20.$$.dirty[0] | 255 & e20.$$.dirty[1] && n10(22, j10 = [{ type: "row", items: [{ type: "button", onClick: function() { + return E10(); + }, icon: dP, text: "Edit key", title: "Edit the key (Double-click on the key)", disabled: !d10 }, { type: "dropdown-button", main: { type: "button", onClick: function() { + return A10(); + }, icon: dP, text: c10, title: "Edit the value (Double-click on the value)", disabled: !h10 }, width: "11em", items: [{ type: "button", icon: dP, text: c10, title: "Edit the value (Double-click on the value)", onClick: function() { + return A10(); + }, disabled: !h10 }, { type: "button", icon: w10 ? iM : aM, text: "Enforce string", title: "Enforce keeping the value as string when it contains a numeric value", onClick: function() { + return P10(); + }, disabled: !v10 }] }] }, { type: "separator" }, { type: "row", items: [{ type: "dropdown-button", main: { type: "button", onClick: function() { + return T8(true); + }, icon: eP, text: "Cut", title: "Cut selected contents, formatted with indentation (Ctrl+X)", disabled: !l10 }, width: "10em", items: [{ type: "button", icon: eP, text: "Cut formatted", title: "Cut selected contents, formatted with indentation (Ctrl+X)", onClick: function() { + return T8(true); + }, disabled: !l10 }, { type: "button", icon: eP, text: "Cut compacted", title: "Cut selected contents, without indentation (Ctrl+Shift+X)", onClick: function() { + return T8(false); + }, disabled: !l10 }] }, { type: "dropdown-button", main: { type: "button", onClick: function() { + return R8(true); + }, icon: CP, text: "Copy", title: "Copy selected contents, formatted with indentation (Ctrl+C)", disabled: !l10 }, width: "12em", items: [{ type: "button", icon: CP, text: "Copy formatted", title: "Copy selected contents, formatted with indentation (Ctrl+C)", onClick: function() { + return R8(true); + }, disabled: !l10 }, { type: "button", icon: CP, text: "Copy compacted", title: "Copy selected contents, without indentation (Ctrl+Shift+C)", onClick: function() { + return R8(false); + }, disabled: !l10 }] }, { type: "button", onClick: function() { + return N8(); + }, icon: XA, text: "Paste", title: "Paste clipboard contents (Ctrl+V)", disabled: !i10 }] }, { type: "separator" }, { type: "row", items: [{ type: "column", items: [{ type: "button", onClick: function() { + return D10(); + }, icon: AP, text: "Duplicate", title: "Duplicate selected contents (Ctrl+D)", disabled: !u10 }, { type: "button", onClick: function() { + return q10(); + }, icon: pP, text: "Extract", title: "Extract selected contents", disabled: !f10 }, { type: "button", onClick: function() { + return V10(); + }, icon: kP, text: "Sort", title: "Sort array or object contents", disabled: !l10 }, { type: "button", onClick: function() { + return H10(); + }, icon: cP, text: "Transform", title: "Transform array or object contents (filter, sort, project)", disabled: !l10 }, { type: "button", onClick: function() { + return I10(); + }, icon: QA, text: "Remove", title: "Remove selected contents (Delete)", disabled: !l10 }] }, { type: "column", items: [{ type: "label", text: m10 }, { type: "button", onClick: function() { + return W10("structure"); + }, icon: p10 ? bP : $P, text: "Structure", title: m10 + " structure", disabled: !g10 }, { type: "button", onClick: function() { + return W10("object"); + }, icon: p10 ? bP : $P, text: "Object", title: m10 + " structure", disabled: !y10 }, { type: "button", onClick: function() { + return W10("array"); + }, icon: p10 ? bP : $P, text: "Array", title: m10 + " array", disabled: !b10 }, { type: "button", onClick: function() { + return W10("value"); + }, icon: p10 ? bP : $P, text: "Value", title: m10 + " value", disabled: !k10 }] }] }, { type: "separator" }, { type: "row", items: [{ type: "button", onClick: function() { + return z10(); + }, icon: aP, text: "Insert before", title: "Select area before current entry to insert or paste contents", disabled: !l10 || a10 }, { type: "button", onClick: function() { + return F10(); + }, icon: tP, text: "Insert after", title: "Select area after current entry to insert or paste contents", disabled: !l10 || a10 }] }]), 4194368 & e20.$$.dirty[0] && n10(2, x10 = M10(j10)); + }, [_10, O10, x10, S10, C10, $10, M10, E10, A10, P10, T8, R8, N8, I10, D10, q10, z10, B10, L10, F10, V10, H10, j10, a10, l10, k10, m10, p10, b10, y10, g10, f10, u10, i10, v10, w10, h10, c10, d10, r10, s10, o10]; + } + var LD = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, BD, zD, Zo, { json: 3, documentState: 4, parser: 5, showTip: 0, onCloseContextMenu: 1, onRenderContextMenu: 6, onEditKey: 7, onEditValue: 8, onToggleEnforceString: 9, onCut: 10, onCopy: 11, onPaste: 12, onRemove: 13, onDuplicate: 14, onExtract: 15, onInsertBefore: 16, onInsert: 17, onConvert: 18, onInsertAfter: 19, onSort: 20, onTransform: 21 }, null, [-1, -1]), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function FD(e20) { + mi(e20, "svelte-lajpxi", 'div.jse-collapsed-items.svelte-lajpxi.svelte-lajpxi{margin-left:calc(var(--level) * var(--jse-indent-size, calc(1em + 4px)));font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);color:var(--jse-collapsed-items-link-color, rgba(0, 0, 0, 0.38));padding:calc(0.5 * var(--jse-padding, 10px));border:8px solid transparent;border-width:8px 0;background-color:var(--jse-contents-background-color, transparent);background-image:linear-gradient(var(--jse-collapsed-items-background-color, #f5f5f5), var(--jse-collapsed-items-background-color, #f5f5f5)), linear-gradient(to bottom right, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%), linear-gradient(to bottom left, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%), linear-gradient(to top right, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%), linear-gradient(to top left, transparent 50.5%, var(--jse-collapsed-items-background-color, #f5f5f5) 50.5%);background-repeat:repeat, repeat-x, repeat-x, repeat-x, repeat-x;background-position:0 0, 8px 0, 8px 0, 8px 100%, 8px 100%;background-size:auto auto, 16px 16px, 16px 16px, 16px 16px, 16px 16px;background-clip:padding-box, border-box, border-box, border-box, border-box;background-origin:padding-box, border-box, border-box, border-box, border-box;display:flex}div.jse-collapsed-items.svelte-lajpxi div.jse-text.svelte-lajpxi,div.jse-collapsed-items.svelte-lajpxi button.jse-expand-items.svelte-lajpxi{margin:0 calc(0.5 * var(--jse-padding, 10px))}div.jse-collapsed-items.svelte-lajpxi div.jse-text.svelte-lajpxi{display:inline}div.jse-collapsed-items.svelte-lajpxi button.jse-expand-items.svelte-lajpxi{font-family:inherit;font-size:inherit;color:var(--jse-collapsed-items-link-color, rgba(0, 0, 0, 0.38));background:none;border:none;padding:0;text-decoration:underline;cursor:pointer}div.jse-collapsed-items.svelte-lajpxi button.jse-expand-items.svelte-lajpxi:hover,div.jse-collapsed-items.svelte-lajpxi button.jse-expand-items.svelte-lajpxi:focus{color:var(--jse-collapsed-items-link-color-highlight, #ee5341)}'); + } + function VD(e20, t10, n10) { + var r10 = e20.slice(); + return r10[13] = t10[n10], r10; + } + function HD(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10 = e20[13].start + "", u10 = e20[13].end + ""; + function f10() { + return e20[12](e20[13]); + } + return { c: function() { + t10 = ji("button"), n10 = Ci("show "), r10 = Ci(l10), o10 = Ci("-"), i10 = Ci(u10), a10 = $i(), Ai(t10, "type", "button"), Ai(t10, "class", "jse-expand-items svelte-lajpxi"); + }, m: function(e21, l11) { + ki(e21, t10, l11), pi(t10, n10), pi(t10, r10), pi(t10, o10), pi(t10, i10), pi(t10, a10), s10 || (c10 = Oi(t10, "click", f10), s10 = true); + }, p: function(t11, n11) { + e20 = t11, 16 & n11 && l10 !== (l10 = e20[13].start + "") && Ni(r10, l10), 16 & n11 && u10 !== (u10 = e20[13].end + "") && Ni(i10, u10); + }, d: function(e21) { + e21 && wi(t10), s10 = false, c10(); + } }; + } + function WD(e20) { + for (var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10 = Ca(e20[4]), d10 = [], h10 = 0; h10 < f10.length; h10 += 1) + d10[h10] = HD(VD(e20, f10, h10)); + return { c: function() { + t10 = ji("div"), n10 = ji("div"), r10 = ji("div"), o10 = Ci("Items "), i10 = Ci(e20[3]), a10 = Ci("-"), s10 = Ci(e20[2]), c10 = $i(); + for (var l11 = 0; l11 < d10.length; l11 += 1) + d10[l11].c(); + Ai(r10, "class", "jse-text svelte-lajpxi"), Ai(t10, "role", "none"), Ai(t10, "class", "jse-collapsed-items svelte-lajpxi"), zi(t10, "jse-selected", e20[5]), Di(t10, "--level", e20[0].length + 2); + }, m: function(e21, f11) { + ki(e21, t10, f11), pi(t10, n10), pi(n10, r10), pi(r10, o10), pi(r10, i10), pi(r10, a10), pi(r10, s10), pi(n10, c10); + for (var h11 = 0; h11 < d10.length; h11 += 1) + d10[h11] && d10[h11].m(n10, null); + l10 || (u10 = Oi(t10, "mousemove", UD), l10 = true); + }, p: function(e21, r11) { + var o11 = jo(r11, 1)[0]; + if (8 & o11 && Ni(i10, e21[3]), 4 & o11 && Ni(s10, e21[2]), 19 & o11) { + var a11; + for (f10 = Ca(e21[4]), a11 = 0; a11 < f10.length; a11 += 1) { + var c11 = VD(e21, f10, a11); + d10[a11] ? d10[a11].p(c11, o11) : (d10[a11] = HD(c11), d10[a11].c(), d10[a11].m(n10, null)); + } + for (; a11 < d10.length; a11 += 1) + d10[a11].d(1); + d10.length = f10.length; + } + 32 & o11 && zi(t10, "jse-selected", e21[5]), 1 & o11 && Di(t10, "--level", e21[0].length + 2); + }, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10), xi(d10, e21), l10 = false, u10(); + } }; + } + function UD(e20) { + e20.stopPropagation(); + } + function JD(e20, t10, n10) { + var r10, o10, i10, a10, s10, c10 = t10.visibleSections, l10 = t10.sectionIndex, u10 = t10.total, f10 = t10.path, d10 = t10.selection, h10 = t10.onExpandSection, v10 = t10.context; + return e20.$$set = function(e21) { + "visibleSections" in e21 && n10(6, c10 = e21.visibleSections), "sectionIndex" in e21 && n10(7, l10 = e21.sectionIndex), "total" in e21 && n10(8, u10 = e21.total), "path" in e21 && n10(0, f10 = e21.path), "selection" in e21 && n10(9, d10 = e21.selection), "onExpandSection" in e21 && n10(1, h10 = e21.onExpandSection), "context" in e21 && n10(10, v10 = e21.context); + }, e20.$$.update = function() { + 192 & e20.$$.dirty && n10(11, r10 = c10[l10]), 2048 & e20.$$.dirty && n10(3, o10 = r10.end), 448 & e20.$$.dirty && n10(2, i10 = c10[l10 + 1] ? c10[l10 + 1].start : u10), 1545 & e20.$$.dirty && n10(5, a10 = WE(v10.getJson(), d10, f10.concat(String(o10)))), 12 & e20.$$.dirty && n10(4, s10 = function(e21, t11) { + var n11 = { start: e21, end: Math.min(qM(e21), t11) }, r11 = Math.max(zM((e21 + t11) / 2), e21), o11 = { start: r11, end: Math.min(qM(r11), t11) }, i11 = zM(t11), a11 = i11 === t11 ? i11 - ls : i11, s11 = { start: Math.max(a11, e21), end: t11 }, c11 = [n11], l11 = o11.start >= n11.end && o11.end <= s11.start; + return l11 && c11.push(o11), s11.start >= (l11 ? o11.end : n11.end) && c11.push(s11), c11; + }(o10, i10)); + }, [f10, h10, i10, o10, s10, a10, c10, l10, u10, d10, v10, r10, function(e21) { + return h10(f10, e21); + }]; + } + var KD = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, JD, WD, Zo, { visibleSections: 6, sectionIndex: 7, total: 8, path: 0, selection: 9, onExpandSection: 1, context: 10 }, FD), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function GD(e20) { + mi(e20, "svelte-6k6355", ".jse-context-menu-pointer.svelte-6k6355{position:absolute;top:calc(-0.5 * var(--jse-context-menu-pointer-size, calc(1em + 4px)));right:calc(-0.5 * var(--jse-context-menu-pointer-size, calc(1em + 4px)));width:var(--jse-context-menu-pointer-size, calc(1em + 4px));height:var(--jse-context-menu-pointer-size, calc(1em + 4px));padding:0;margin:0;cursor:pointer;background:transparent;border-radius:2px;background:var(--jse-context-menu-pointer-background, var(--jse-context-menu-background, #656565));color:var(--jse-context-menu-pointer-color, var(--jse-context-menu-color, var(--jse-text-color-inverse, #fff)));border:none;box-shadow:var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24))}.jse-context-menu-pointer.svelte-6k6355:hover{background:var(--jse-context-menu-pointer-background-highlight, var(--jse-context-menu-background-highlight, #7a7a7a))}"); + } + function QD(e20) { + var t10, n10, r10, o10, i10; + return n10 = new jM({ props: { data: gP } }), { c: function() { + t10 = ji("button"), Pa(n10.$$.fragment), Ai(t10, "type", "button"), Ai(t10, "class", "jse-context-menu-pointer svelte-6k6355"), Ai(t10, "title", xs), zi(t10, "jse-selected", e20[0]); + }, m: function(a10, s10) { + ki(a10, t10, s10), Ta(n10, t10, null), r10 = true, o10 || (i10 = Oi(t10, "click", e20[1]), o10 = true); + }, p: function(e21, n11) { + var o11 = jo(n11, 1)[0]; + (!r10 || 1 & o11) && zi(t10, "jse-selected", e21[0]); + }, i: function(e21) { + r10 || (wa(n10.$$.fragment, e21), r10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), r10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(n10), o10 = false, i10(); + } }; + } + function YD(e20, t10, n10) { + var r10 = t10.selected, o10 = t10.onContextMenu; + return e20.$$set = function(e21) { + "selected" in e21 && n10(0, r10 = e21.selected), "onContextMenu" in e21 && n10(2, o10 = e21.onContextMenu); + }, [r10, function(e21) { + for (var t11 = e21.target; t11 && "BUTTON" !== t11.nodeName; ) + t11 = t11.parentNode; + t11 && o10({ anchor: t11, left: 0, top: 0, width: Ms, height: Os, offsetTop: 2, offsetLeft: 0, showTip: true }); + }, o10]; + } + var XD = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, YD, QD, Zo, { selected: 0, onContextMenu: 2 }, GD), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function ZD(e20) { + mi(e20, "svelte-10xe8tv", '.jse-key.svelte-10xe8tv{display:inline-block;min-width:2em;padding:0 5px;box-sizing:border-box;outline:none;border-radius:1px;vertical-align:top;color:var(--jse-key-color, #1a1a1a);cursor:var(--jse-contents-cursor, pointer);word-break:normal;overflow-wrap:normal;white-space:pre-wrap}.jse-key.svelte-10xe8tv:hover{background:var(--jse-hover-background-color, rgba(0, 0, 0, 0.06))}.jse-key.svelte-10xe8tv:hover{background:var(--jse-hover-background-color, rgba(0, 0, 0, 0.06))}.jse-key.jse-empty.svelte-10xe8tv{min-width:3em;outline:1px dotted var(--jse-tag-background, rgba(0, 0, 0, 0.2));-moz-outline-radius:2px}.jse-key.jse-empty.svelte-10xe8tv::after{pointer-events:none;color:var(--jse-tag-background, rgba(0, 0, 0, 0.2));content:"key"}'); + } + function eq(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10 = [rq, nq], l10 = []; + function u10(e21, t11) { + return e21[1] ? 0 : 1; + } + return n10 = u10(e20), r10 = l10[n10] = c10[n10](e20), { c: function() { + t10 = ji("div"), r10.c(), Ai(t10, "role", "none"), Ai(t10, "data-type", "selectable-key"), Ai(t10, "class", o10 = si(e20[6](e20[0])) + " svelte-10xe8tv"); + }, m: function(r11, o11) { + ki(r11, t10, o11), l10[n10].m(t10, null), i10 = true, a10 || (s10 = Oi(t10, "dblclick", e20[5]), a10 = true); + }, p: function(e21, a11) { + var s11 = n10; + (n10 = u10(e21)) === s11 ? l10[n10].p(e21, a11) : (ba(), xa(l10[s11], 1, 1, function() { + l10[s11] = null; + }), ka(), (r10 = l10[n10]) ? r10.p(e21, a11) : (r10 = l10[n10] = c10[n10](e21)).c(), wa(r10, 1), r10.m(t10, null)), (!i10 || 1 & a11 && o10 !== (o10 = si(e21[6](e21[0])) + " svelte-10xe8tv")) && Ai(t10, "class", o10); + }, i: function(e21) { + i10 || (wa(r10), i10 = true); + }, o: function(e21) { + xa(r10), i10 = false; + }, d: function(e21) { + e21 && wi(t10), l10[n10].d(), a10 = false, s10(); + } }; + } + function tq(e20) { + var t10, n10; + return t10 = new eA({ props: { value: e20[2].normalization.escapeValue(e20[0]), shortText: true, onChange: e20[7], onCancel: e20[8], onFind: e20[2].onFind } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 5 & n11 && (r10.value = e21[2].normalization.escapeValue(e21[0])), 4 & n11 && (r10.onFind = e21[2].onFind), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function nq(e20) { + var t10, n10 = gO(e20[2].normalization.escapeValue(e20[0])) + ""; + return { c: function() { + t10 = Ci(n10); + }, m: function(e21, n11) { + ki(e21, t10, n11); + }, p: function(e21, r10) { + 5 & r10 && n10 !== (n10 = gO(e21[2].normalization.escapeValue(e21[0])) + "") && Ni(t10, n10); + }, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function rq(e20) { + var t10, n10; + return t10 = new TA({ props: { text: e20[2].normalization.escapeValue(e20[0]), searchResultItems: e20[1] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 5 & n11 && (r10.text = e21[2].normalization.escapeValue(e21[0])), 2 & n11 && (r10.searchResultItems = e21[1]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function oq(e20) { + var t10, n10; + return t10 = new XD({ props: { selected: true, onContextMenu: e20[2].onContextMenu } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 4 & n11 && (r10.onContextMenu = e21[2].onContextMenu), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function iq(e20) { + var t10, n10, r10, o10, i10, a10 = [tq, eq], s10 = []; + function c10(e21, t11) { + return !e21[2].readOnly && e21[4] ? 0 : 1; + } + t10 = c10(e20), n10 = s10[t10] = a10[t10](e20); + var l10 = !e20[2].readOnly && e20[3] && !e20[4] && oq(e20); + return { c: function() { + n10.c(), r10 = $i(), l10 && l10.c(), o10 = _i(); + }, m: function(e21, n11) { + s10[t10].m(e21, n11), ki(e21, r10, n11), l10 && l10.m(e21, n11), ki(e21, o10, n11), i10 = true; + }, p: function(e21, i11) { + var u10 = jo(i11, 1)[0], f10 = t10; + (t10 = c10(e21)) === f10 ? s10[t10].p(e21, u10) : (ba(), xa(s10[f10], 1, 1, function() { + s10[f10] = null; + }), ka(), (n10 = s10[t10]) ? n10.p(e21, u10) : (n10 = s10[t10] = a10[t10](e21)).c(), wa(n10, 1), n10.m(r10.parentNode, r10)), e21[2].readOnly || !e21[3] || e21[4] ? l10 && (ba(), xa(l10, 1, 1, function() { + l10 = null; + }), ka()) : l10 ? (l10.p(e21, u10), 28 & u10 && wa(l10, 1)) : ((l10 = oq(e21)).c(), wa(l10, 1), l10.m(o10.parentNode, o10)); + }, i: function(e21) { + i10 || (wa(n10), wa(l10), i10 = true); + }, o: function(e21) { + xa(n10), xa(l10), i10 = false; + }, d: function(e21) { + e21 && (wi(r10), wi(o10)), s10[t10].d(e21), l10 && l10.d(e21); + } }; + } + function aq(e20, t10, n10) { + var r10, o10, i10 = t10.path, a10 = t10.key, s10 = t10.selection, c10 = t10.searchResultItems, l10 = t10.onUpdateKey, u10 = t10.context; + return e20.$$set = function(e21) { + "path" in e21 && n10(9, i10 = e21.path), "key" in e21 && n10(0, a10 = e21.key), "selection" in e21 && n10(10, s10 = e21.selection), "searchResultItems" in e21 && n10(1, c10 = e21.searchResultItems), "onUpdateKey" in e21 && n10(11, l10 = e21.onUpdateKey), "context" in e21 && n10(2, u10 = e21.context); + }, e20.$$.update = function() { + 1536 & e20.$$.dirty && n10(3, r10 = !!s10 && (vE(s10) && Ow(s10.path, i10))), 1032 & e20.$$.dirty && n10(4, o10 = r10 && zE(s10)); + }, [a10, c10, u10, r10, o10, function(e21) { + o10 || u10.readOnly || (e21.preventDefault(), u10.onSelect(TE(i10, true))); + }, function(e21) { + return GE("jse-key", { "jse-empty": "" === e21 }); + }, function(e21, t11) { + var n11 = l10(a10, u10.normalization.unescapeValue(e21)), r11 = Qk(i10).concat(n11); + u10.onSelect(t11 === ns.nextInside ? RE(r11, false) : TE(r11, false)), t11 !== ns.self && u10.focus(); + }, function() { + u10.onSelect(TE(i10, false)), u10.focus(); + }, i10, s10, l10]; + } + var sq = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, aq, iq, Zo, { path: 9, key: 0, selection: 10, searchResultItems: 1, onUpdateKey: 11, context: 2 }, ZD), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function cq(e20, t10, n10) { + var r10 = e20.slice(); + return r10[8] = t10[n10], r10; + } + function lq(e20) { + var t10, n10, r10, o10 = [e20[8].props], i10 = e20[8].component; + function a10(e21, t11) { + var n11 = {}; + if (void 0 !== t11 && 1 & t11) + n11 = Ma(o10, [Ea(e21[8].props)]); + else + for (var r11 = 0; r11 < o10.length; r11 += 1) + n11 = Jo(n11, o10[r11]); + return { props: n11 }; + } + return i10 && (t10 = Li(i10, a10(e20))), { c: function() { + t10 && Pa(t10.$$.fragment), n10 = _i(); + }, m: function(e21, o11) { + t10 && Ta(t10, e21, o11), ki(e21, n10, o11), r10 = true; + }, p: function(e21, r11) { + if (1 & r11 && i10 !== (i10 = e21[8].component)) { + if (t10) { + ba(); + var s10 = t10; + xa(s10.$$.fragment, 1, 0, function() { + Ra(s10, 1); + }), ka(); + } + i10 ? (Pa((t10 = Li(i10, a10(e21, r11))).$$.fragment), wa(t10.$$.fragment, 1), Ta(t10, n10.parentNode, n10)) : t10 = null; + } else if (i10) { + var c10 = 1 & r11 ? Ma(o10, [Ea(e21[8].props)]) : {}; + t10.$set(c10); + } + }, i: function(e21) { + r10 || (t10 && wa(t10.$$.fragment, e21), r10 = true); + }, o: function(e21) { + t10 && xa(t10.$$.fragment, e21), r10 = false; + }, d: function(e21) { + e21 && wi(n10), t10 && Ra(t10, e21); + } }; + } + function uq(e20) { + var t10, n10, r10 = e20[8].component, o10 = lq(e20); + return { c: function() { + o10.c(), t10 = _i(); + }, m: function(e21, r11) { + o10.m(e21, r11), ki(e21, t10, r11), n10 = true; + }, p: function(e21, n11) { + 1 & n11 && Zo(r10, r10 = e21[8].component) ? (ba(), xa(o10, 1, 1, Wo), ka(), (o10 = lq(e21)).c(), wa(o10, 1), o10.m(t10.parentNode, t10)) : o10.p(e21, n11); + }, i: function(e21) { + n10 || (wa(o10), n10 = true); + }, o: function(e21) { + xa(o10), n10 = false; + }, d: function(e21) { + e21 && wi(t10), o10.d(e21); + } }; + } + function fq(e20) { + for (var t10, n10, r10 = Ca(e20[0]), o10 = [], i10 = 0; i10 < r10.length; i10 += 1) + o10[i10] = uq(cq(e20, r10, i10)); + var a10 = function(e21) { + return xa(o10[e21], 1, 1, function() { + o10[e21] = null; + }); + }; + return { c: function() { + for (var e21 = 0; e21 < o10.length; e21 += 1) + o10[e21].c(); + t10 = _i(); + }, m: function(e21, r11) { + for (var i11 = 0; i11 < o10.length; i11 += 1) + o10[i11] && o10[i11].m(e21, r11); + ki(e21, t10, r11), n10 = true; + }, p: function(e21, n11) { + var i11 = jo(n11, 1)[0]; + if (1 & i11) { + var s10; + for (r10 = Ca(e21[0]), s10 = 0; s10 < r10.length; s10 += 1) { + var c10 = cq(e21, r10, s10); + o10[s10] ? (o10[s10].p(c10, i11), wa(o10[s10], 1)) : (o10[s10] = uq(c10), o10[s10].c(), wa(o10[s10], 1), o10[s10].m(t10.parentNode, t10)); + } + for (ba(), s10 = r10.length; s10 < o10.length; s10 += 1) + a10(s10); + ka(); + } + }, i: function(e21) { + if (!n10) { + for (var t11 = 0; t11 < r10.length; t11 += 1) + wa(o10[t11]); + n10 = true; + } + }, o: function(e21) { + o10 = o10.filter(Boolean); + for (var t11 = 0; t11 < o10.length; t11 += 1) + xa(o10[t11]); + n10 = false; + }, d: function(e21) { + e21 && wi(t10), xi(o10, e21); + } }; + } + function dq(e20, t10, n10) { + var r10, o10, i10 = t10.path, a10 = t10.value, s10 = t10.context, c10 = t10.enforceString, l10 = t10.selection, u10 = t10.searchResultItems; + return e20.$$set = function(e21) { + "path" in e21 && n10(1, i10 = e21.path), "value" in e21 && n10(2, a10 = e21.value), "context" in e21 && n10(3, s10 = e21.context), "enforceString" in e21 && n10(4, c10 = e21.enforceString), "selection" in e21 && n10(5, l10 = e21.selection), "searchResultItems" in e21 && n10(6, u10 = e21.searchResultItems); + }, e20.$$.update = function() { + 32 & e20.$$.dirty && n10(7, r10 = pE(l10) && zE(l10)), 254 & e20.$$.dirty && n10(0, o10 = s10.onRenderValue({ path: i10, value: a10, readOnly: s10.readOnly, enforceString: c10, isEditing: r10, parser: s10.parser, normalization: s10.normalization, selection: l10, searchResultItems: u10, onPatch: s10.onPatch, onPasteJson: s10.onPasteJson, onSelect: s10.onSelect, onFind: s10.onFind, findNextInside: s10.findNextInside, focus: s10.focus })); + }, [o10, i10, a10, s10, c10, l10, u10, r10]; + } + var hq = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, dq, fq, Zo, { path: 1, value: 2, context: 3, enforceString: 4, selection: 5, searchResultItems: 6 }), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + var vq = hq; + var pq = { selecting: false, selectionAnchor: null, selectionAnchorType: null, selectionFocus: null, dragging: false }; + function mq(e20) { + var t10 = e20.json, n10 = e20.documentState, r10 = e20.deltaY, o10 = e20.items; + if (!n10.selection) + return { operations: void 0, updatedSelection: null, offset: 0 }; + var i10 = n10.selection, a10 = r10 < 0 ? function(e21) { + var t11 = e21.json, n11 = e21.items, r11 = e21.selection, o11 = e21.deltaY, i11 = xE(t11, r11), a11 = n11.findIndex(function(e23) { + return Ow(e23.path, i11); + }), s11 = function() { + var e23; + return null === (e23 = n11[c11 - 1]) || void 0 === e23 ? void 0 : e23.height; + }, c11 = a11, l11 = 0; + for (; void 0 !== s11() && Math.abs(o11) > l11 + s11() / 2; ) + l11 += s11(), c11 -= 1; + var u10 = n11[c11].path, f10 = c11 - a11; + return c11 !== a11 && void 0 !== n11[c11] ? { beforePath: u10, offset: f10 } : void 0; + }({ json: t10, selection: i10, deltaY: r10, items: o10 }) : function(e21) { + var t11, n11 = e21.json, r11 = e21.items, o11 = e21.selection, i11 = e21.deltaY, a11 = jE(n11, o11), s11 = r11.findIndex(function(e23) { + return Ow(e23.path, a11); + }), c11 = 0, l11 = s11, u10 = function() { + var e23; + return null === (e23 = r11[l11 + 1]) || void 0 === e23 ? void 0 : e23.height; + }; + for (; void 0 !== u10() && Math.abs(i11) > c11 + u10() / 2; ) + c11 += u10(), l11 += 1; + var f10 = Qk(a11), d10 = Ws(n11, f10), h10 = Array.isArray(d10), v10 = h10 ? l11 : l11 + 1, p10 = null === (t11 = r11[v10]) || void 0 === t11 ? void 0 : t11.path, m10 = l11 - s11; + return p10 ? { beforePath: p10, offset: m10 } : { append: true, offset: m10 }; + }({ json: t10, selection: i10, deltaY: r10, items: o10 }); + if (!a10 || 0 === a10.offset) + return { operations: void 0, updatedSelection: null, offset: 0 }; + var s10 = function(e21, t11, n11) { + if (!t11) + return []; + var r11 = "beforePath" in n11 ? n11.beforePath : void 0, o11 = "append" in n11 ? n11.append : void 0, i11 = Qk(JE(t11)), a11 = Ws(e21, i11); + if (!(o11 || r11 && AE(r11, i11) && r11.length > i11.length)) + return []; + var s11 = xE(e21, t11), c11 = jE(e21, t11), l11 = vb(s11), u10 = vb(c11), f10 = r11 ? r11[i11.length] : void 0; + if (!Rs(a11)) { + if (Ts(a11)) { + var d10 = Ul(l11), h10 = Ul(u10), v10 = void 0 !== f10 ? Ul(f10) : a11.length; + return YC(h10 - d10 + 1, v10 < d10 ? function(e23) { + return { op: "move", from: Zs(i11.concat(String(d10 + e23))), path: Zs(i11.concat(String(v10 + e23))) }; + } : function() { + return { op: "move", from: Zs(i11.concat(String(d10))), path: Zs(i11.concat(String(v10))) }; + }); + } + throw new Error("Cannot create move operations: parent must be an Object or Array"); + } + var p10 = Object.keys(a11), m10 = p10.indexOf(l11), g10 = p10.indexOf(u10), y10 = o11 ? p10.length : void 0 !== f10 ? p10.indexOf(f10) : -1; + return -1 !== m10 && -1 !== g10 && -1 !== y10 ? y10 > m10 ? [].concat(Bo(p10.slice(m10, g10 + 1)), Bo(p10.slice(y10, p10.length))).map(function(e23) { + return uA(i11, e23); + }) : [].concat(Bo(p10.slice(y10, m10)), Bo(p10.slice(g10 + 1, p10.length))).map(function(e23) { + return uA(i11, e23); + }) : []; + }(t10, i10, a10), c10 = Ws(t10, Qk(xE(t10, i10))); + if (Array.isArray(c10)) { + var l10 = function(e21) { + var t11, n11, r11 = e21.items, o11 = e21.json, i11 = e21.selection, a11 = e21.offset, s11 = xE(o11, i11), c11 = jE(o11, i11), l11 = r11.findIndex(function(e23) { + return Ow(e23.path, s11); + }), u10 = r11.findIndex(function(e23) { + return Ow(e23.path, c11); + }), f10 = null === (t11 = r11[l11 + a11]) || void 0 === t11 ? void 0 : t11.path, d10 = null === (n11 = r11[u10 + a11]) || void 0 === n11 ? void 0 : n11.path; + return DE(f10, d10); + }({ items: o10, json: t10, selection: i10, offset: a10.offset }); + return { operations: s10, updatedSelection: l10, offset: a10.offset }; + } + return { operations: s10, updatedSelection: null, offset: a10.offset }; + } + function gq(e20, t10) { + return function(e21, t11) { + if (e21) { + for (var n10 = {}, r10 = 0, o10 = Object.keys(e21); r10 < o10.length; r10++) { + var i10 = o10[r10]; + t11(i10, e21[i10]) && (n10[i10] = e21[i10]); + } + return Object.keys(n10).length > 0 ? n10 : void 0; + } + }(e20, function(e21) { + return nc(e21, t10); + }); + } + function yq(e20) { + mi(e20, "svelte-g0bfge", 'button.jse-validation-error.svelte-g0bfge{border:none;background:transparent;color:inherit;cursor:pointer;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);padding:5px;margin:0;padding:0;margin:0;vertical-align:top;display:inline-flex;color:var(--jse-warning-color, #fdc539)}'); + } + function bq(e20) { + var t10, n10, r10, o10, i10, a10; + return n10 = new jM({ props: { data: TP } }), { c: function() { + t10 = ji("button"), Pa(n10.$$.fragment), Ai(t10, "type", "button"), Ai(t10, "class", "jse-validation-error svelte-g0bfge"); + }, m: function(s10, c10) { + ki(s10, t10, c10), Ta(n10, t10, null), o10 = true, i10 || (a10 = [Oi(t10, "click", function() { + Yo(e20[0]) && e20[0].apply(this, arguments); + }), ci(r10 = HA.call(null, t10, Ro({ text: e20[1] }, e20[2])))], i10 = true); + }, p: function(t11, n11) { + var o11 = jo(n11, 1)[0]; + e20 = t11, r10 && Yo(r10.update) && 2 & o11 && r10.update.call(null, Ro({ text: e20[1] }, e20[2])); + }, i: function(e21) { + o10 || (wa(n10.$$.fragment, e21), o10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), o10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(n10), i10 = false, Qo(a10); + } }; + } + function kq(e20, t10, n10) { + var r10, o10 = Zi("absolute-popup"), i10 = t10.validationError, a10 = t10.onExpand; + return e20.$$set = function(e21) { + "validationError" in e21 && n10(3, i10 = e21.validationError), "onExpand" in e21 && n10(0, a10 = e21.onExpand); + }, e20.$$.update = function() { + 8 & e20.$$.dirty && n10(1, r10 = hI(i10) && i10.isChildError ? "Contains invalid data" : i10.message); + }, [a10, r10, o10, i10]; + } + var wq = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, kq, bq, Xo, { validationError: 3, onExpand: 0 }, yq), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function xq(e20) { + mi(e20, "svelte-1koa14y", '.jse-json-node.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{position:relative;color:var(--jse-text-color, #4d4d4d)}.jse-json-node.jse-root.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{min-height:100%;padding-bottom:2px;box-sizing:border-box}.jse-json-node.jse-root.svelte-1koa14y>.jse-header-outer.svelte-1koa14y .jse-context-menu-pointer,.jse-json-node.jse-root.svelte-1koa14y>.jse-contents-outer.svelte-1koa14y>.jse-contents.svelte-1koa14y .jse-context-menu-pointer{top:0;right:calc(-2px - var(--jse-context-menu-pointer-size, calc(1em + 4px)))}.jse-json-node.jse-root.svelte-1koa14y>.jse-contents-outer.svelte-1koa14y>.jse-contents.svelte-1koa14y.svelte-1koa14y{padding-left:0}.jse-json-node.svelte-1koa14y .jse-props.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.svelte-1koa14y .jse-items.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{position:relative}.jse-json-node.svelte-1koa14y .jse-header-outer.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.svelte-1koa14y .jse-footer-outer.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{display:flex;margin-left:calc(var(--level) * var(--jse-indent-size, calc(1em + 4px)))}.jse-json-node.svelte-1koa14y .jse-header.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{position:relative}.jse-json-node.svelte-1koa14y .jse-header .jse-meta.svelte-1koa14y>.jse-meta-inner.svelte-1koa14y.svelte-1koa14y{display:flex;justify-content:center}.jse-json-node.svelte-1koa14y .jse-contents-outer.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{display:flex;margin-left:calc(var(--level) * var(--jse-indent-size, calc(1em + 4px)))}.jse-json-node.svelte-1koa14y .jse-header.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.svelte-1koa14y .jse-contents.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{display:flex;flex-direction:row;align-items:start}.jse-json-node.svelte-1koa14y .jse-contents.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{padding-left:var(--jse-indent-size, calc(1em + 4px))}.jse-json-node.svelte-1koa14y .jse-footer.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{display:inline-flex;padding-left:calc(var(--jse-indent-size, calc(1em + 4px)) + 5px)}.jse-json-node.svelte-1koa14y .jse-header.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.svelte-1koa14y .jse-contents.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.svelte-1koa14y .jse-footer.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{background:var(--jse-contents-background-color, transparent)}.jse-json-node.svelte-1koa14y .jse-insert-selection-area.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{visibility:hidden;padding:0 calc(0.5 * var(--jse-padding, 10px));flex:1}.jse-json-node.svelte-1koa14y .jse-insert-selection-area.jse-inside.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{display:inline-flex;align-items:center}.jse-json-node.svelte-1koa14y .jse-insert-selection-area.jse-after.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{display:flex;align-items:flex-end}.jse-json-node.svelte-1koa14y .jse-context-menu-pointer-anchor.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{position:relative}.jse-json-node.svelte-1koa14y .jse-insert-area.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{display:flex;position:relative;z-index:1;margin-left:calc(var(--level) * var(--jse-indent-size, calc(1em + 4px)));max-width:250px;min-width:100px;height:0;margin-right:calc(0.5 * var(--jse-padding, 10px));outline:1px solid}.jse-json-node.svelte-1koa14y .jse-insert-area.svelte-1koa14y .jse-context-menu-pointer{right:-1px;background:var(--jse-context-menu-pointer-hover-background, #b2b2b2)}.jse-json-node.svelte-1koa14y .jse-insert-area.jse-hovered.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{outline-color:var(--jse-context-menu-pointer-hover-background, #b2b2b2)}.jse-json-node.svelte-1koa14y:hover>.jse-contents-outer .jse-insert-selection-area.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y:not(.jse-selected),.jse-json-node.svelte-1koa14y .jse-header-outer.svelte-1koa14y:hover>.jse-insert-selection-area.svelte-1koa14y.svelte-1koa14y:not(.jse-selected),.jse-json-node.svelte-1koa14y .jse-footer-outer:hover .jse-insert-selection-area.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y:not(.jse-selected){visibility:visible}.jse-json-node.jse-hovered.svelte-1koa14y>.jse-header-outer.svelte-1koa14y>.jse-header.svelte-1koa14y>.jse-meta.svelte-1koa14y,.jse-json-node.jse-hovered.svelte-1koa14y .jse-props .jse-header.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.jse-hovered.svelte-1koa14y .jse-items .jse-header.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.jse-hovered.svelte-1koa14y .jse-props .jse-contents.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.jse-hovered.svelte-1koa14y .jse-items .jse-contents.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.jse-hovered.svelte-1koa14y .jse-footer.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{background:var(--jse-hover-background-color, rgba(0, 0, 0, 0.06))}.jse-json-node.jse-selected.svelte-1koa14y>.jse-header-outer.svelte-1koa14y>.jse-header.svelte-1koa14y>.jse-meta.svelte-1koa14y,.jse-json-node.jse-selected.svelte-1koa14y .jse-props .jse-header.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.jse-selected.svelte-1koa14y .jse-items .jse-header.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.jse-selected.svelte-1koa14y .jse-props .jse-contents.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.jse-selected.svelte-1koa14y .jse-items .jse-contents.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.jse-selected.svelte-1koa14y .jse-header.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.jse-selected.svelte-1koa14y .jse-contents.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.jse-selected.svelte-1koa14y .jse-footer.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.jse-selected.svelte-1koa14y .jse-key,.jse-json-node.jse-selected.svelte-1koa14y .jse-value{background:var(--jse-selection-background-color, #d3d3d3);cursor:var(--jse-contents-selected-cursor, grab)}.jse-json-node.jse-selected.svelte-1koa14y .jse-expand.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{background:var(--jse-selection-background-color, #d3d3d3)}.jse-json-node.jse-selected-key.svelte-1koa14y>.jse-contents-outer.svelte-1koa14y>.jse-contents.svelte-1koa14y>.jse-identifier>.jse-key,.jse-json-node.jse-selected-key.svelte-1koa14y>.jse-header-outer.svelte-1koa14y>.jse-header.svelte-1koa14y>.jse-identifier>.jse-key{background:var(--jse-selection-background-color, #d3d3d3);cursor:var(--jse-contents-selected-cursor, grab)}.jse-json-node.jse-selected-value.svelte-1koa14y>.jse-contents-outer.svelte-1koa14y>.jse-contents.svelte-1koa14y>.jse-value{background:var(--jse-selection-background-color, #d3d3d3);cursor:var(--jse-contents-selected-cursor, grab)}.jse-json-node.svelte-1koa14y .jse-collapsed-items.jse-selected,.jse-json-node.jse-selected.svelte-1koa14y .jse-collapsed-items,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-collapsed-items{background-color:var(--jse-selection-background-color, #d3d3d3);--jse-collapsed-items-background-color:var(--jse-collapsed-items-selected-background-color, #c2c2c2)}.jse-json-node.jse-selected-value.svelte-1koa14y .jse-meta.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.jse-selected-value.svelte-1koa14y>.jse-header-outer.svelte-1koa14y>.jse-header.svelte-1koa14y>.jse-meta.svelte-1koa14y,.jse-json-node.jse-selected-value.svelte-1koa14y>.jse-footer-outer.svelte-1koa14y>.jse-footer.svelte-1koa14y.svelte-1koa14y,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-props .jse-contents.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-props .jse-header.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-props .jse-footer.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-props .jse-expand.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-items .jse-contents.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-items .jse-header.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-items .jse-footer.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-items .jse-expand.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{background:var(--jse-selection-background-color, #d3d3d3)}.jse-json-node.jse-selected-value.svelte-1koa14y .jse-meta.svelte-1koa14y .jse-key,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-meta.svelte-1koa14y .jse-value,.jse-json-node.jse-selected-value.svelte-1koa14y>.jse-header-outer.svelte-1koa14y>.jse-header.svelte-1koa14y>.jse-meta.svelte-1koa14y .jse-key,.jse-json-node.jse-selected-value.svelte-1koa14y>.jse-header-outer.svelte-1koa14y>.jse-header.svelte-1koa14y>.jse-meta.svelte-1koa14y .jse-value,.jse-json-node.jse-selected-value.svelte-1koa14y>.jse-footer-outer.svelte-1koa14y>.jse-footer.svelte-1koa14y .jse-key,.jse-json-node.jse-selected-value.svelte-1koa14y>.jse-footer-outer.svelte-1koa14y>.jse-footer.svelte-1koa14y .jse-value,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-props .jse-contents.svelte-1koa14y .jse-key,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-props .jse-contents.svelte-1koa14y .jse-value,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-props .jse-header.svelte-1koa14y .jse-key,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-props .jse-header.svelte-1koa14y .jse-value,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-props .jse-footer.svelte-1koa14y .jse-key,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-props .jse-footer.svelte-1koa14y .jse-value,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-props .jse-expand.svelte-1koa14y .jse-key,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-props .jse-expand.svelte-1koa14y .jse-value,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-items .jse-contents.svelte-1koa14y .jse-key,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-items .jse-contents.svelte-1koa14y .jse-value,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-items .jse-header.svelte-1koa14y .jse-key,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-items .jse-header.svelte-1koa14y .jse-value,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-items .jse-footer.svelte-1koa14y .jse-key,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-items .jse-footer.svelte-1koa14y .jse-value,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-items .jse-expand.svelte-1koa14y .jse-key,.jse-json-node.jse-selected-value.svelte-1koa14y .jse-items .jse-expand.svelte-1koa14y .jse-value{background:var(--jse-selection-background-color, #d3d3d3);cursor:var(--jse-contents-selected-cursor, grab)}.jse-json-node.jse-readonly.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{--jse-contents-selected-cursor:pointer}.jse-json-node.svelte-1koa14y .jse-insert-area.jse-selected.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{outline-color:var(--jse-context-menu-pointer-background, var(--jse-context-menu-background, #656565))}.jse-json-node.svelte-1koa14y .jse-insert-area.jse-selected.svelte-1koa14y .jse-context-menu-pointer{background:var(--jse-context-menu-pointer-background, var(--jse-context-menu-background, #656565))}.jse-json-node.svelte-1koa14y .jse-insert-area.jse-selected.svelte-1koa14y .jse-context-menu-pointer:hover{background:var(--jse-context-menu-pointer-background-highlight, var(--jse-context-menu-background-highlight, #7a7a7a))}.jse-main:not(.jse-focus) .jse-json-node.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{--jse-selection-background-color:var(--jse-selection-background-inactive-color, #e8e8e8);--jse-context-menu-pointer-background:var(--jse-context-menu-pointer-hover-background, #b2b2b2)}.jse-expand.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{width:var(--jse-indent-size, calc(1em + 4px));padding:0;margin:0;border:none;cursor:pointer;background:transparent;color:var(--jse-delimiter-color, rgba(0, 0, 0, 0.38));font-size:var(--jse-font-size-mono, 14px);height:var(--jse-line-height, calc(1em + 4px))}.jse-expand.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y:hover{opacity:0.8}.jse-meta.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-separator.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-index.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y,.jse-bracket.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{vertical-align:top;color:var(--jse-delimiter-color, rgba(0, 0, 0, 0.38))}.jse-index.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{padding:0 calc(0.5 * var(--jse-padding, 10px))}.jse-bracket.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{padding:0 2px}.jse-bracket.jse-expanded.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{padding-right:var(--jse-padding, 10px)}.jse-tag.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{border:none;font-size:80%;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);color:var(--jse-tag-color, var(--jse-text-color-inverse, #fff));background:var(--jse-tag-background, rgba(0, 0, 0, 0.2));border-radius:2px;cursor:pointer;display:inline-block;padding:0 4px;line-height:normal;margin:1px 0}.jse-tag.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y:hover{opacity:0.8}.jse-tag.jse-expanded.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{opacity:0.7;cursor:inherit}.jse-identifier.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y.svelte-1koa14y{vertical-align:top;position:relative}'); + } + var jq = function(e20) { + return {}; + }; + var Sq = function(e20) { + return {}; + }; + function Cq(e20, t10, n10) { + var r10 = e20.slice(); + return r10[52] = t10[n10], r10; + } + var $q = function(e20) { + return {}; + }; + var _q = function(e20) { + return {}; + }; + function Oq(e20, t10, n10) { + var r10 = e20.slice(); + return r10[46] = t10[n10], r10[48] = n10, r10; + } + function Mq(e20, t10, n10) { + var r10 = e20.slice(); + return r10[49] = t10[n10], r10; + } + var Eq = function(e20) { + return {}; + }; + var Aq = function(e20) { + return {}; + }; + function Pq(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10 = !e20[8].readOnly && e20[16] && e20[7] && (pE(e20[7]) || mE(e20[7])) && !zE(e20[7]) && Ow(JE(e20[7]), e20[1]), f10 = e20[33].identifier, d10 = ei(f10, e20, e20[34], Sq), h10 = !e20[17] && Nq(); + i10 = new vq({ props: { path: e20[1], value: e20[0], enforceString: e20[13] || false, selection: e20[16] ? e20[7] : null, searchResultItems: CA(e20[6], e20[9]), context: e20[8] } }); + var v10 = u10 && Iq(e20), p10 = e20[15] && Dq(e20), m10 = !e20[17] && qq(e20); + return { c: function() { + t10 = ji("div"), n10 = ji("div"), d10 && d10.c(), r10 = $i(), h10 && h10.c(), o10 = $i(), Pa(i10.$$.fragment), a10 = $i(), v10 && v10.c(), s10 = $i(), p10 && p10.c(), c10 = $i(), m10 && m10.c(), Ai(n10, "class", "jse-contents svelte-1koa14y"), Ai(t10, "class", "jse-contents-outer svelte-1koa14y"); + }, m: function(e21, u11) { + ki(e21, t10, u11), pi(t10, n10), d10 && d10.m(n10, null), pi(n10, r10), h10 && h10.m(n10, null), pi(n10, o10), Ta(i10, n10, null), pi(n10, a10), v10 && v10.m(n10, null), pi(t10, s10), p10 && p10.m(t10, null), pi(t10, c10), m10 && m10.m(t10, null), l10 = true; + }, p: function(e21, r11) { + d10 && d10.p && (!l10 || 8 & r11[1]) && ri(d10, f10, e21, e21[34], l10 ? ni(f10, e21[34], r11, jq) : oi(e21[34]), Sq), e21[17] ? h10 && (h10.d(1), h10 = null) : h10 || ((h10 = Nq()).c(), h10.m(n10, o10)); + var a11 = {}; + 2 & r11[0] && (a11.path = e21[1]), 1 & r11[0] && (a11.value = e21[0]), 8192 & r11[0] && (a11.enforceString = e21[13] || false), 65664 & r11[0] && (a11.selection = e21[16] ? e21[7] : null), 576 & r11[0] && (a11.searchResultItems = CA(e21[6], e21[9])), 256 & r11[0] && (a11.context = e21[8]), i10.$set(a11), 65922 & r11[0] && (u10 = !e21[8].readOnly && e21[16] && e21[7] && (pE(e21[7]) || mE(e21[7])) && !zE(e21[7]) && Ow(JE(e21[7]), e21[1])), u10 ? v10 ? (v10.p(e21, r11), 65922 & r11[0] && wa(v10, 1)) : ((v10 = Iq(e21)).c(), wa(v10, 1), v10.m(n10, null)) : v10 && (ba(), xa(v10, 1, 1, function() { + v10 = null; + }), ka()), e21[15] ? p10 ? (p10.p(e21, r11), 32768 & r11[0] && wa(p10, 1)) : ((p10 = Dq(e21)).c(), wa(p10, 1), p10.m(t10, c10)) : p10 && (ba(), xa(p10, 1, 1, function() { + p10 = null; + }), ka()), e21[17] ? m10 && (m10.d(1), m10 = null) : m10 ? m10.p(e21, r11) : ((m10 = qq(e21)).c(), m10.m(t10, null)); + }, i: function(e21) { + l10 || (wa(d10, e21), wa(i10.$$.fragment, e21), wa(v10), wa(p10), l10 = true); + }, o: function(e21) { + xa(d10, e21), xa(i10.$$.fragment, e21), xa(v10), xa(p10), l10 = false; + }, d: function(e21) { + e21 && wi(t10), d10 && d10.d(e21), h10 && h10.d(), Ra(i10), v10 && v10.d(), p10 && p10.d(), m10 && m10.d(); + } }; + } + function Tq(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10, p10, m10, g10, y10, b10 = !e20[8].readOnly && e20[16] && e20[7] && (pE(e20[7]) || mE(e20[7])) && !zE(e20[7]) && Ow(JE(e20[7]), e20[1]), k10 = [Bq, zq], w10 = []; + function x10(e21, t11) { + return e21[12] ? 0 : 1; + } + o10 = x10(e20), i10 = w10[o10] = k10[o10](e20); + var j10 = e20[33].identifier, S10 = ei(j10, e20, e20[34], _q), C10 = !e20[17] && Lq(); + function $10(e21, t11) { + return e21[12] ? Vq : Fq; + } + var _10 = $10(e20), O10 = _10(e20), M10 = b10 && Hq(e20), E10 = e20[15] && (!e20[12] || !e20[15].isChildError) && Wq(e20); + function A10(e21, t11) { + return e21[12] ? Jq : e21[17] ? void 0 : Uq; + } + var P10 = A10(e20), T8 = P10 && P10(e20), R8 = e20[12] && Kq(e20); + return { c: function() { + t10 = ji("div"), n10 = ji("div"), r10 = ji("button"), i10.c(), a10 = $i(), S10 && S10.c(), s10 = $i(), C10 && C10.c(), c10 = $i(), l10 = ji("div"), u10 = ji("div"), O10.c(), f10 = $i(), M10 && M10.c(), d10 = $i(), E10 && E10.c(), h10 = $i(), T8 && T8.c(), v10 = $i(), R8 && R8.c(), p10 = _i(), Ai(r10, "type", "button"), Ai(r10, "class", "jse-expand svelte-1koa14y"), Ai(r10, "title", "Expand or collapse this object (Ctrl+Click to expand/collapse recursively)"), Ai(u10, "class", "jse-meta-inner svelte-1koa14y"), Ai(l10, "class", "jse-meta svelte-1koa14y"), Ai(l10, "data-type", "selectable-value"), Ai(n10, "class", "jse-header svelte-1koa14y"), Ai(t10, "class", "jse-header-outer svelte-1koa14y"); + }, m: function(i11, b11) { + ki(i11, t10, b11), pi(t10, n10), pi(n10, r10), w10[o10].m(r10, null), pi(n10, a10), S10 && S10.m(n10, null), pi(n10, s10), C10 && C10.m(n10, null), pi(n10, c10), pi(n10, l10), pi(l10, u10), O10.m(u10, null), pi(n10, f10), M10 && M10.m(n10, null), pi(t10, d10), E10 && E10.m(t10, null), pi(t10, h10), T8 && T8.m(t10, null), ki(i11, v10, b11), R8 && R8.m(i11, b11), ki(i11, p10, b11), m10 = true, g10 || (y10 = Oi(r10, "click", e20[20]), g10 = true); + }, p: function(e21, a11) { + var s11 = o10; + (o10 = x10(e21)) !== s11 && (ba(), xa(w10[s11], 1, 1, function() { + w10[s11] = null; + }), ka(), (i10 = w10[o10]) || (i10 = w10[o10] = k10[o10](e21)).c(), wa(i10, 1), i10.m(r10, null)), S10 && S10.p && (!m10 || 8 & a11[1]) && ri(S10, j10, e21, e21[34], m10 ? ni(j10, e21[34], a11, $q) : oi(e21[34]), _q), e21[17] ? C10 && (C10.d(1), C10 = null) : C10 || ((C10 = Lq()).c(), C10.m(n10, c10)), _10 === (_10 = $10(e21)) && O10 ? O10.p(e21, a11) : (O10.d(1), (O10 = _10(e21)) && (O10.c(), O10.m(u10, null))), 65922 & a11[0] && (b10 = !e21[8].readOnly && e21[16] && e21[7] && (pE(e21[7]) || mE(e21[7])) && !zE(e21[7]) && Ow(JE(e21[7]), e21[1])), b10 ? M10 ? (M10.p(e21, a11), 65922 & a11[0] && wa(M10, 1)) : ((M10 = Hq(e21)).c(), wa(M10, 1), M10.m(n10, null)) : M10 && (ba(), xa(M10, 1, 1, function() { + M10 = null; + }), ka()), !e21[15] || e21[12] && e21[15].isChildError ? E10 && (ba(), xa(E10, 1, 1, function() { + E10 = null; + }), ka()) : E10 ? (E10.p(e21, a11), 36864 & a11[0] && wa(E10, 1)) : ((E10 = Wq(e21)).c(), wa(E10, 1), E10.m(t10, h10)), P10 === (P10 = A10(e21)) && T8 ? T8.p(e21, a11) : (T8 && T8.d(1), (T8 = P10 && P10(e21)) && (T8.c(), T8.m(t10, null))), e21[12] ? R8 ? (R8.p(e21, a11), 4096 & a11[0] && wa(R8, 1)) : ((R8 = Kq(e21)).c(), wa(R8, 1), R8.m(p10.parentNode, p10)) : R8 && (ba(), xa(R8, 1, 1, function() { + R8 = null; + }), ka()); + }, i: function(e21) { + m10 || (wa(i10), wa(S10, e21), wa(M10), wa(E10), wa(R8), m10 = true); + }, o: function(e21) { + xa(i10), xa(S10, e21), xa(M10), xa(E10), xa(R8), m10 = false; + }, d: function(e21) { + e21 && (wi(t10), wi(v10), wi(p10)), w10[o10].d(), S10 && S10.d(e21), C10 && C10.d(), O10.d(), M10 && M10.d(), E10 && E10.d(), T8 && T8.d(), R8 && R8.d(e21), g10 = false, y10(); + } }; + } + function Rq(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10, p10, m10, g10, y10, b10 = !e20[8].readOnly && e20[16] && e20[7] && (pE(e20[7]) || mE(e20[7])) && !zE(e20[7]) && Ow(JE(e20[7]), e20[1]), k10 = [ez, Zq], w10 = []; + function x10(e21, t11) { + return e21[12] ? 0 : 1; + } + o10 = x10(e20), i10 = w10[o10] = k10[o10](e20); + var j10 = e20[33].identifier, S10 = ei(j10, e20, e20[34], Aq), C10 = !e20[17] && tz(); + function $10(e21, t11) { + return e21[12] ? rz : nz; + } + var _10 = $10(e20), O10 = _10(e20), M10 = b10 && oz(e20), E10 = e20[15] && (!e20[12] || !e20[15].isChildError) && iz(e20); + function A10(e21, t11) { + return e21[12] ? sz : az; + } + var P10 = A10(e20), T8 = P10(e20), R8 = e20[12] && cz(e20); + return { c: function() { + t10 = ji("div"), n10 = ji("div"), r10 = ji("button"), i10.c(), a10 = $i(), S10 && S10.c(), s10 = $i(), C10 && C10.c(), c10 = $i(), l10 = ji("div"), u10 = ji("div"), O10.c(), f10 = $i(), M10 && M10.c(), d10 = $i(), E10 && E10.c(), h10 = $i(), T8.c(), v10 = $i(), R8 && R8.c(), p10 = _i(), Ai(r10, "type", "button"), Ai(r10, "class", "jse-expand svelte-1koa14y"), Ai(r10, "title", "Expand or collapse this array (Ctrl+Click to expand/collapse recursively)"), Ai(u10, "class", "jse-meta-inner svelte-1koa14y"), Ai(u10, "data-type", "selectable-value"), Ai(l10, "class", "jse-meta svelte-1koa14y"), Ai(n10, "class", "jse-header svelte-1koa14y"), Ai(t10, "class", "jse-header-outer svelte-1koa14y"); + }, m: function(i11, b11) { + ki(i11, t10, b11), pi(t10, n10), pi(n10, r10), w10[o10].m(r10, null), pi(n10, a10), S10 && S10.m(n10, null), pi(n10, s10), C10 && C10.m(n10, null), pi(n10, c10), pi(n10, l10), pi(l10, u10), O10.m(u10, null), pi(n10, f10), M10 && M10.m(n10, null), pi(t10, d10), E10 && E10.m(t10, null), pi(t10, h10), T8.m(t10, null), ki(i11, v10, b11), R8 && R8.m(i11, b11), ki(i11, p10, b11), m10 = true, g10 || (y10 = Oi(r10, "click", e20[20]), g10 = true); + }, p: function(e21, a11) { + var s11 = o10; + (o10 = x10(e21)) !== s11 && (ba(), xa(w10[s11], 1, 1, function() { + w10[s11] = null; + }), ka(), (i10 = w10[o10]) || (i10 = w10[o10] = k10[o10](e21)).c(), wa(i10, 1), i10.m(r10, null)), S10 && S10.p && (!m10 || 8 & a11[1]) && ri(S10, j10, e21, e21[34], m10 ? ni(j10, e21[34], a11, Eq) : oi(e21[34]), Aq), e21[17] ? C10 && (C10.d(1), C10 = null) : C10 || ((C10 = tz()).c(), C10.m(n10, c10)), _10 === (_10 = $10(e21)) && O10 ? O10.p(e21, a11) : (O10.d(1), (O10 = _10(e21)) && (O10.c(), O10.m(u10, null))), 65922 & a11[0] && (b10 = !e21[8].readOnly && e21[16] && e21[7] && (pE(e21[7]) || mE(e21[7])) && !zE(e21[7]) && Ow(JE(e21[7]), e21[1])), b10 ? M10 ? (M10.p(e21, a11), 65922 & a11[0] && wa(M10, 1)) : ((M10 = oz(e21)).c(), wa(M10, 1), M10.m(n10, null)) : M10 && (ba(), xa(M10, 1, 1, function() { + M10 = null; + }), ka()), !e21[15] || e21[12] && e21[15].isChildError ? E10 && (ba(), xa(E10, 1, 1, function() { + E10 = null; + }), ka()) : E10 ? (E10.p(e21, a11), 36864 & a11[0] && wa(E10, 1)) : ((E10 = iz(e21)).c(), wa(E10, 1), E10.m(t10, h10)), P10 === (P10 = A10(e21)) && T8 ? T8.p(e21, a11) : (T8.d(1), (T8 = P10(e21)) && (T8.c(), T8.m(t10, null))), e21[12] ? R8 ? (R8.p(e21, a11), 4096 & a11[0] && wa(R8, 1)) : ((R8 = cz(e21)).c(), wa(R8, 1), R8.m(p10.parentNode, p10)) : R8 && (ba(), xa(R8, 1, 1, function() { + R8 = null; + }), ka()); + }, i: function(e21) { + m10 || (wa(i10), wa(S10, e21), wa(M10), wa(E10), wa(R8), m10 = true); + }, o: function(e21) { + xa(i10), xa(S10, e21), xa(M10), xa(E10), xa(R8), m10 = false; + }, d: function(e21) { + e21 && (wi(t10), wi(v10), wi(p10)), w10[o10].d(), S10 && S10.d(e21), C10 && C10.d(), O10.d(), M10 && M10.d(), E10 && E10.d(), T8.d(), R8 && R8.d(e21), g10 = false, y10(); + } }; + } + function Nq(e20) { + var t10; + return { c: function() { + (t10 = ji("div")).textContent = ":", Ai(t10, "class", "jse-separator svelte-1koa14y"); + }, m: function(e21, n10) { + ki(e21, t10, n10); + }, d: function(e21) { + e21 && wi(t10); + } }; + } + function Iq(e20) { + var t10, n10, r10; + return n10 = new XD({ props: { selected: true, onContextMenu: e20[8].onContextMenu } }), { c: function() { + t10 = ji("div"), Pa(n10.$$.fragment), Ai(t10, "class", "jse-context-menu-pointer-anchor svelte-1koa14y"); + }, m: function(e21, o10) { + ki(e21, t10, o10), Ta(n10, t10, null), r10 = true; + }, p: function(e21, t11) { + var r11 = {}; + 256 & t11[0] && (r11.onContextMenu = e21[8].onContextMenu), n10.$set(r11); + }, i: function(e21) { + r10 || (wa(n10.$$.fragment, e21), r10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), r10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(n10); + } }; + } + function Dq(e20) { + var t10, n10; + return t10 = new wq({ props: { validationError: e20[15], onExpand: e20[21] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 32768 & n11[0] && (r10.validationError = e21[15]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function qq(e20) { + var t10, n10, r10; + return { c: function() { + Ai(t10 = ji("div"), "role", "none"), Ai(t10, "class", "jse-insert-selection-area jse-after svelte-1koa14y"), Ai(t10, "data-type", "insert-selection-area-after"); + }, m: function(o10, i10) { + ki(o10, t10, i10), n10 || (r10 = Oi(t10, "click", e20[29]), n10 = true); + }, p: Wo, d: function(e21) { + e21 && wi(t10), n10 = false, r10(); + } }; + } + function zq(e20) { + var t10, n10; + return t10 = new jM({ props: { data: YA } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function Bq(e20) { + var t10, n10; + return t10 = new jM({ props: { data: gP } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function Lq(e20) { + var t10; + return { c: function() { + (t10 = ji("div")).textContent = ":", Ai(t10, "class", "jse-separator svelte-1koa14y"); + }, m: function(e21, n10) { + ki(e21, t10, n10); + }, d: function(e21) { + e21 && wi(t10); + } }; + } + function Fq(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10 = Object.keys(e20[0]).length + "", d10 = 1 === Object.keys(e20[0]).length ? "prop" : "props"; + return { c: function() { + (t10 = ji("div")).textContent = "{", n10 = $i(), r10 = ji("button"), o10 = Ci(f10), i10 = $i(), a10 = Ci(d10), s10 = $i(), (c10 = ji("div")).textContent = "}", Ai(t10, "class", "jse-bracket svelte-1koa14y"), Ai(r10, "type", "button"), Ai(r10, "class", "jse-tag svelte-1koa14y"), Ai(c10, "class", "jse-bracket svelte-1koa14y"); + }, m: function(f11, d11) { + ki(f11, t10, d11), ki(f11, n10, d11), ki(f11, r10, d11), pi(r10, o10), pi(r10, i10), pi(r10, a10), ki(f11, s10, d11), ki(f11, c10, d11), l10 || (u10 = Oi(r10, "click", e20[21]), l10 = true); + }, p: function(e21, t11) { + 1 & t11[0] && f10 !== (f10 = Object.keys(e21[0]).length + "") && Ni(o10, f10), 1 & t11[0] && d10 !== (d10 = 1 === Object.keys(e21[0]).length ? "prop" : "props") && Ni(a10, d10); + }, d: function(e21) { + e21 && (wi(t10), wi(n10), wi(r10), wi(s10), wi(c10)), l10 = false, u10(); + } }; + } + function Vq(e20) { + var t10; + return { c: function() { + (t10 = ji("div")).textContent = "{", Ai(t10, "class", "jse-bracket jse-expanded svelte-1koa14y"); + }, m: function(e21, n10) { + ki(e21, t10, n10); + }, p: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function Hq(e20) { + var t10, n10, r10; + return n10 = new XD({ props: { selected: true, onContextMenu: e20[8].onContextMenu } }), { c: function() { + t10 = ji("div"), Pa(n10.$$.fragment), Ai(t10, "class", "jse-context-menu-pointer-anchor svelte-1koa14y"); + }, m: function(e21, o10) { + ki(e21, t10, o10), Ta(n10, t10, null), r10 = true; + }, p: function(e21, t11) { + var r11 = {}; + 256 & t11[0] && (r11.onContextMenu = e21[8].onContextMenu), n10.$set(r11); + }, i: function(e21) { + r10 || (wa(n10.$$.fragment, e21), r10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), r10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(n10); + } }; + } + function Wq(e20) { + var t10, n10; + return t10 = new wq({ props: { validationError: e20[15], onExpand: e20[21] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 32768 & n11[0] && (r10.validationError = e21[15]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function Uq(e20) { + var t10, n10, r10; + return { c: function() { + Ai(t10 = ji("div"), "role", "none"), Ai(t10, "class", "jse-insert-selection-area jse-after svelte-1koa14y"), Ai(t10, "data-type", "insert-selection-area-after"); + }, m: function(o10, i10) { + ki(o10, t10, i10), n10 || (r10 = Oi(t10, "click", e20[29]), n10 = true); + }, p: Wo, d: function(e21) { + e21 && wi(t10), n10 = false, r10(); + } }; + } + function Jq(e20) { + var t10, n10, r10; + return { c: function() { + Ai(t10 = ji("div"), "role", "none"), Ai(t10, "class", "jse-insert-selection-area jse-inside svelte-1koa14y"), Ai(t10, "data-type", "insert-selection-area-inside"); + }, m: function(o10, i10) { + ki(o10, t10, i10), n10 || (r10 = Oi(t10, "click", e20[28]), n10 = true); + }, p: Wo, d: function(e21) { + e21 && wi(t10), n10 = false, r10(); + } }; + } + function Kq(e20) { + for (var t10, n10, r10, o10, i10, a10, s10, c10 = !e20[8].readOnly && (e20[10] === js || e20[16] && hE(e20[7])), l10 = c10 && Gq(e20), u10 = Ca(e20[18](e20[1], e20[0], e20[2], e20[3], e20[4], e20[5], e20[6], e20[7], e20[11])), f10 = [], d10 = 0; d10 < u10.length; d10 += 1) + f10[d10] = Yq(Cq(e20, u10, d10)); + var h10 = function(e21) { + return xa(f10[e21], 1, 1, function() { + f10[e21] = null; + }); + }, v10 = !e20[17] && Xq(e20); + return { c: function() { + t10 = ji("div"), l10 && l10.c(), n10 = $i(); + for (var e21 = 0; e21 < f10.length; e21 += 1) + f10[e21].c(); + r10 = $i(), o10 = ji("div"), (i10 = ji("div")).innerHTML = '
}
', a10 = $i(), v10 && v10.c(), Ai(t10, "class", "jse-props svelte-1koa14y"), Ai(i10, "data-type", "selectable-value"), Ai(i10, "class", "jse-footer svelte-1koa14y"), Ai(o10, "class", "jse-footer-outer svelte-1koa14y"); + }, m: function(e21, c11) { + ki(e21, t10, c11), l10 && l10.m(t10, null), pi(t10, n10); + for (var u11 = 0; u11 < f10.length; u11 += 1) + f10[u11] && f10[u11].m(t10, null); + ki(e21, r10, c11), ki(e21, o10, c11), pi(o10, i10), pi(o10, a10), v10 && v10.m(o10, null), s10 = true; + }, p: function(e21, r11) { + if (66944 & r11[0] && (c10 = !e21[8].readOnly && (e21[10] === js || e21[16] && hE(e21[7]))), c10 ? l10 ? (l10.p(e21, r11), 66944 & r11[0] && wa(l10, 1)) : ((l10 = Gq(e21)).c(), wa(l10, 1), l10.m(t10, n10)) : l10 && (ba(), xa(l10, 1, 1, function() { + l10 = null; + }), ka()), 38013439 & r11[0]) { + var i11; + for (u10 = Ca(e21[18](e21[1], e21[0], e21[2], e21[3], e21[4], e21[5], e21[6], e21[7], e21[11])), i11 = 0; i11 < u10.length; i11 += 1) { + var a11 = Cq(e21, u10, i11); + f10[i11] ? (f10[i11].p(a11, r11), wa(f10[i11], 1)) : (f10[i11] = Yq(a11), f10[i11].c(), wa(f10[i11], 1), f10[i11].m(t10, null)); + } + for (ba(), i11 = u10.length; i11 < f10.length; i11 += 1) + h10(i11); + ka(); + } + e21[17] ? v10 && (v10.d(1), v10 = null) : v10 ? v10.p(e21, r11) : ((v10 = Xq(e21)).c(), v10.m(o10, null)); + }, i: function(e21) { + if (!s10) { + wa(l10); + for (var t11 = 0; t11 < u10.length; t11 += 1) + wa(f10[t11]); + s10 = true; + } + }, o: function(e21) { + xa(l10), f10 = f10.filter(Boolean); + for (var t11 = 0; t11 < f10.length; t11 += 1) + xa(f10[t11]); + s10 = false; + }, d: function(e21) { + e21 && (wi(t10), wi(r10), wi(o10)), l10 && l10.d(), xi(f10, e21), v10 && v10.d(); + } }; + } + function Gq(e20) { + var t10, n10, r10; + return n10 = new XD({ props: { selected: e20[16] && hE(e20[7]), onContextMenu: e20[30] } }), { c: function() { + t10 = ji("div"), Pa(n10.$$.fragment), Ai(t10, "class", "jse-insert-area jse-inside svelte-1koa14y"), Ai(t10, "data-type", "insert-selection-area-inside"), Ai(t10, "title", ws), zi(t10, "jse-hovered", e20[10] === js), zi(t10, "jse-selected", e20[16] && hE(e20[7])), Di(t10, "--level", e20[1].length + 1); + }, m: function(e21, o10) { + ki(e21, t10, o10), Ta(n10, t10, null), r10 = true; + }, p: function(e21, o10) { + var i10 = {}; + 65664 & o10[0] && (i10.selected = e21[16] && hE(e21[7])), n10.$set(i10), (!r10 || 1024 & o10[0]) && zi(t10, "jse-hovered", e21[10] === js), (!r10 || 65664 & o10[0]) && zi(t10, "jse-selected", e21[16] && hE(e21[7])), 2 & o10[0] && Di(t10, "--level", e21[1].length + 1); + }, i: function(e21) { + r10 || (wa(n10.$$.fragment, e21), r10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), r10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(n10); + } }; + } + function Qq(e20) { + var t10, n10, r10, o10; + return n10 = new sq({ props: { path: e20[52].path, key: e20[52].key, selection: e20[52].selection, searchResultItems: e20[52].keySearchResultItemsMap, context: e20[8], onUpdateKey: e20[22] } }), { c: function() { + t10 = ji("div"), Pa(n10.$$.fragment), r10 = $i(), Ai(t10, "slot", "identifier"), Ai(t10, "class", "jse-identifier svelte-1koa14y"); + }, m: function(e21, i10) { + ki(e21, t10, i10), Ta(n10, t10, null), pi(t10, r10), o10 = true; + }, p: function(e21, t11) { + var r11 = {}; + 2303 & t11[0] && (r11.path = e21[52].path), 2303 & t11[0] && (r11.key = e21[52].key), 2303 & t11[0] && (r11.selection = e21[52].selection), 2303 & t11[0] && (r11.searchResultItems = e21[52].keySearchResultItemsMap), 256 & t11[0] && (r11.context = e21[8]), n10.$set(r11); + }, i: function(e21) { + o10 || (wa(n10.$$.fragment, e21), o10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), o10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(n10); + } }; + } + function Yq(e20) { + var t10, n10; + return t10 = new yz({ props: { value: e20[52].value, path: e20[52].path, expandedMap: e20[52].expandedMap, enforceStringMap: e20[52].enforceStringMap, visibleSectionsMap: e20[52].visibleSectionsMap, validationErrorsMap: e20[52].validationErrorsMap, searchResultItemsMap: e20[52].valueSearchResultItemsMap, selection: e20[52].selection, context: e20[8], onDragSelectionStart: e20[25], $$slots: { identifier: [Qq] }, $$scope: { ctx: e20 } } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 2303 & n11[0] && (r10.value = e21[52].value), 2303 & n11[0] && (r10.path = e21[52].path), 2303 & n11[0] && (r10.expandedMap = e21[52].expandedMap), 2303 & n11[0] && (r10.enforceStringMap = e21[52].enforceStringMap), 2303 & n11[0] && (r10.visibleSectionsMap = e21[52].visibleSectionsMap), 2303 & n11[0] && (r10.validationErrorsMap = e21[52].validationErrorsMap), 2303 & n11[0] && (r10.searchResultItemsMap = e21[52].valueSearchResultItemsMap), 2303 & n11[0] && (r10.selection = e21[52].selection), 256 & n11[0] && (r10.context = e21[8]), 2559 & n11[0] | 8 & n11[1] && (r10.$$scope = { dirty: n11, ctx: e21 }), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function Xq(e20) { + var t10, n10, r10; + return { c: function() { + Ai(t10 = ji("div"), "role", "none"), Ai(t10, "class", "jse-insert-selection-area jse-after svelte-1koa14y"), Ai(t10, "data-type", "insert-selection-area-after"); + }, m: function(o10, i10) { + ki(o10, t10, i10), n10 || (r10 = Oi(t10, "click", e20[29]), n10 = true); + }, p: Wo, d: function(e21) { + e21 && wi(t10), n10 = false, r10(); + } }; + } + function Zq(e20) { + var t10, n10; + return t10 = new jM({ props: { data: YA } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function ez(e20) { + var t10, n10; + return t10 = new jM({ props: { data: gP } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function tz(e20) { + var t10; + return { c: function() { + (t10 = ji("div")).textContent = ":", Ai(t10, "class", "jse-separator svelte-1koa14y"); + }, m: function(e21, n10) { + ki(e21, t10, n10); + }, d: function(e21) { + e21 && wi(t10); + } }; + } + function nz(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10 = e20[0].length + "", d10 = 1 === e20[0].length ? "item" : "items"; + return { c: function() { + (t10 = ji("div")).textContent = "[", n10 = $i(), r10 = ji("button"), o10 = Ci(f10), i10 = $i(), a10 = Ci(d10), s10 = $i(), (c10 = ji("div")).textContent = "]", Ai(t10, "class", "jse-bracket svelte-1koa14y"), Ai(r10, "type", "button"), Ai(r10, "class", "jse-tag svelte-1koa14y"), Ai(c10, "class", "jse-bracket svelte-1koa14y"); + }, m: function(f11, d11) { + ki(f11, t10, d11), ki(f11, n10, d11), ki(f11, r10, d11), pi(r10, o10), pi(r10, i10), pi(r10, a10), ki(f11, s10, d11), ki(f11, c10, d11), l10 || (u10 = Oi(r10, "click", e20[21]), l10 = true); + }, p: function(e21, t11) { + 1 & t11[0] && f10 !== (f10 = e21[0].length + "") && Ni(o10, f10), 1 & t11[0] && d10 !== (d10 = 1 === e21[0].length ? "item" : "items") && Ni(a10, d10); + }, d: function(e21) { + e21 && (wi(t10), wi(n10), wi(r10), wi(s10), wi(c10)), l10 = false, u10(); + } }; + } + function rz(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10 = e20[0].length + "", l10 = 1 === e20[0].length ? "item" : "items"; + return { c: function() { + (t10 = ji("div")).textContent = "[", n10 = $i(), r10 = ji("span"), o10 = Ci(c10), i10 = $i(), a10 = Ci(l10), s10 = Ci("\n \xA0"), Ai(t10, "class", "jse-bracket svelte-1koa14y"), Ai(r10, "class", "jse-tag jse-expanded svelte-1koa14y"); + }, m: function(e21, c11) { + ki(e21, t10, c11), ki(e21, n10, c11), ki(e21, r10, c11), pi(r10, o10), pi(r10, i10), pi(r10, a10), ki(e21, s10, c11); + }, p: function(e21, t11) { + 1 & t11[0] && c10 !== (c10 = e21[0].length + "") && Ni(o10, c10), 1 & t11[0] && l10 !== (l10 = 1 === e21[0].length ? "item" : "items") && Ni(a10, l10); + }, d: function(e21) { + e21 && (wi(t10), wi(n10), wi(r10), wi(s10)); + } }; + } + function oz(e20) { + var t10, n10, r10; + return n10 = new XD({ props: { selected: true, onContextMenu: e20[8].onContextMenu } }), { c: function() { + t10 = ji("div"), Pa(n10.$$.fragment), Ai(t10, "class", "jse-context-menu-pointer-anchor svelte-1koa14y"); + }, m: function(e21, o10) { + ki(e21, t10, o10), Ta(n10, t10, null), r10 = true; + }, p: function(e21, t11) { + var r11 = {}; + 256 & t11[0] && (r11.onContextMenu = e21[8].onContextMenu), n10.$set(r11); + }, i: function(e21) { + r10 || (wa(n10.$$.fragment, e21), r10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), r10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(n10); + } }; + } + function iz(e20) { + var t10, n10; + return t10 = new wq({ props: { validationError: e20[15], onExpand: e20[21] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 32768 & n11[0] && (r10.validationError = e21[15]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function az(e20) { + var t10, n10, r10; + return { c: function() { + Ai(t10 = ji("div"), "role", "none"), Ai(t10, "class", "jse-insert-selection-area jse-after svelte-1koa14y"), Ai(t10, "data-type", "insert-selection-area-after"); + }, m: function(o10, i10) { + ki(o10, t10, i10), n10 || (r10 = Oi(t10, "click", e20[29]), n10 = true); + }, p: Wo, d: function(e21) { + e21 && wi(t10), n10 = false, r10(); + } }; + } + function sz(e20) { + var t10, n10, r10; + return { c: function() { + Ai(t10 = ji("div"), "role", "none"), Ai(t10, "class", "jse-insert-selection-area jse-inside svelte-1koa14y"), Ai(t10, "data-type", "insert-selection-area-inside"); + }, m: function(o10, i10) { + ki(o10, t10, i10), n10 || (r10 = Oi(t10, "click", e20[28]), n10 = true); + }, p: Wo, d: function(e21) { + e21 && wi(t10), n10 = false, r10(); + } }; + } + function cz(e20) { + for (var t10, n10, r10, o10, i10, a10, s10, c10 = !e20[8].readOnly && (e20[10] === js || e20[16] && hE(e20[7])), l10 = [], u10 = /* @__PURE__ */ new Map(), f10 = c10 && lz(e20), d10 = Ca(e20[14] || ds), h10 = function(e21) { + return e21[48]; + }, v10 = 0; v10 < d10.length; v10 += 1) { + var p10 = Oq(e20, d10, v10), m10 = h10(p10); + u10.set(m10, l10[v10] = hz(m10, p10)); + } + var g10 = !e20[17] && vz(e20); + return { c: function() { + t10 = ji("div"), f10 && f10.c(), n10 = $i(); + for (var e21 = 0; e21 < l10.length; e21 += 1) + l10[e21].c(); + r10 = $i(), o10 = ji("div"), (i10 = ji("div")).innerHTML = ']', a10 = $i(), g10 && g10.c(), Ai(t10, "class", "jse-items svelte-1koa14y"), Ai(i10, "data-type", "selectable-value"), Ai(i10, "class", "jse-footer svelte-1koa14y"), Ai(o10, "class", "jse-footer-outer svelte-1koa14y"); + }, m: function(e21, c11) { + ki(e21, t10, c11), f10 && f10.m(t10, null), pi(t10, n10); + for (var u11 = 0; u11 < l10.length; u11 += 1) + l10[u11] && l10[u11].m(t10, null); + ki(e21, r10, c11), ki(e21, o10, c11), pi(o10, i10), pi(o10, a10), g10 && g10.m(o10, null), s10 = true; + }, p: function(e21, r11) { + 66944 & r11[0] && (c10 = !e21[8].readOnly && (e21[10] === js || e21[16] && hE(e21[7]))), c10 ? f10 ? (f10.p(e21, r11), 66944 & r11[0] && wa(f10, 1)) : ((f10 = lz(e21)).c(), wa(f10, 1), f10.m(t10, n10)) : f10 && (ba(), xa(f10, 1, 1, function() { + f10 = null; + }), ka()), 34097663 & r11[0] && (d10 = Ca(e21[14] || ds), ba(), l10 = Oa(l10, r11, h10, 1, e21, d10, u10, t10, _a, hz, null, Oq), ka()), e21[17] ? g10 && (g10.d(1), g10 = null) : g10 ? g10.p(e21, r11) : ((g10 = vz(e21)).c(), g10.m(o10, null)); + }, i: function(e21) { + if (!s10) { + wa(f10); + for (var t11 = 0; t11 < d10.length; t11 += 1) + wa(l10[t11]); + s10 = true; + } + }, o: function(e21) { + xa(f10); + for (var t11 = 0; t11 < l10.length; t11 += 1) + xa(l10[t11]); + s10 = false; + }, d: function(e21) { + e21 && (wi(t10), wi(r10), wi(o10)), f10 && f10.d(); + for (var n11 = 0; n11 < l10.length; n11 += 1) + l10[n11].d(); + g10 && g10.d(); + } }; + } + function lz(e20) { + var t10, n10, r10; + return n10 = new XD({ props: { selected: e20[16] && hE(e20[7]), onContextMenu: e20[30] } }), { c: function() { + t10 = ji("div"), Pa(n10.$$.fragment), Ai(t10, "class", "jse-insert-area jse-inside svelte-1koa14y"), Ai(t10, "data-type", "insert-selection-area-inside"), Ai(t10, "title", ws), zi(t10, "jse-hovered", e20[10] === js), zi(t10, "jse-selected", e20[16] && hE(e20[7])), Di(t10, "--level", e20[1].length + 1); + }, m: function(e21, o10) { + ki(e21, t10, o10), Ta(n10, t10, null), r10 = true; + }, p: function(e21, o10) { + var i10 = {}; + 65664 & o10[0] && (i10.selected = e21[16] && hE(e21[7])), n10.$set(i10), (!r10 || 1024 & o10[0]) && zi(t10, "jse-hovered", e21[10] === js), (!r10 || 65664 & o10[0]) && zi(t10, "jse-selected", e21[16] && hE(e21[7])), 2 & o10[0] && Di(t10, "--level", e21[1].length + 1); + }, i: function(e21) { + r10 || (wa(n10.$$.fragment, e21), r10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), r10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(n10); + } }; + } + function uz(e20) { + var t10, n10, r10, o10 = e20[49].index + ""; + return { c: function() { + t10 = ji("div"), n10 = ji("div"), r10 = Ci(o10), Ai(n10, "class", "jse-index svelte-1koa14y"), Ai(t10, "slot", "identifier"), Ai(t10, "class", "jse-identifier svelte-1koa14y"); + }, m: function(e21, o11) { + ki(e21, t10, o11), pi(t10, n10), pi(n10, r10); + }, p: function(e21, t11) { + 18687 & t11[0] && o10 !== (o10 = e21[49].index + "") && Ni(r10, o10); + }, d: function(e21) { + e21 && wi(t10); + } }; + } + function fz(e20, t10) { + var n10, r10, o10; + return r10 = new yz({ props: { value: t10[49].value, path: t10[49].path, expandedMap: t10[49].expandedMap, enforceStringMap: t10[49].enforceStringMap, visibleSectionsMap: t10[49].visibleSectionsMap, validationErrorsMap: t10[49].validationErrorsMap, searchResultItemsMap: t10[49].searchResultItemsMap, selection: t10[49].selection, context: t10[8], onDragSelectionStart: t10[25], $$slots: { identifier: [uz] }, $$scope: { ctx: t10 } } }), { key: e20, first: null, c: function() { + n10 = _i(), Pa(r10.$$.fragment), this.first = n10; + }, m: function(e21, t11) { + ki(e21, n10, t11), Ta(r10, e21, t11), o10 = true; + }, p: function(e21, n11) { + t10 = e21; + var o11 = {}; + 18687 & n11[0] && (o11.value = t10[49].value), 18687 & n11[0] && (o11.path = t10[49].path), 18687 & n11[0] && (o11.expandedMap = t10[49].expandedMap), 18687 & n11[0] && (o11.enforceStringMap = t10[49].enforceStringMap), 18687 & n11[0] && (o11.visibleSectionsMap = t10[49].visibleSectionsMap), 18687 & n11[0] && (o11.validationErrorsMap = t10[49].validationErrorsMap), 18687 & n11[0] && (o11.searchResultItemsMap = t10[49].searchResultItemsMap), 18687 & n11[0] && (o11.selection = t10[49].selection), 256 & n11[0] && (o11.context = t10[8]), 18687 & n11[0] | 8 & n11[1] && (o11.$$scope = { dirty: n11, ctx: t10 }), r10.$set(o11); + }, i: function(e21) { + o10 || (wa(r10.$$.fragment, e21), o10 = true); + }, o: function(e21) { + xa(r10.$$.fragment, e21), o10 = false; + }, d: function(e21) { + e21 && wi(n10), Ra(r10, e21); + } }; + } + function dz(e20) { + var t10, n10; + return t10 = new KD({ props: { visibleSections: e20[14] || ds, sectionIndex: e20[48], total: e20[0].length, path: e20[1], onExpandSection: e20[8].onExpandSection, selection: e20[7], context: e20[8] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 16384 & n11[0] && (r10.visibleSections = e21[14] || ds), 16384 & n11[0] && (r10.sectionIndex = e21[48]), 1 & n11[0] && (r10.total = e21[0].length), 2 & n11[0] && (r10.path = e21[1]), 256 & n11[0] && (r10.onExpandSection = e21[8].onExpandSection), 128 & n11[0] && (r10.selection = e21[7]), 256 & n11[0] && (r10.context = e21[8]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function hz(e20, t10) { + for (var n10, r10, o10, i10, a10 = [], s10 = /* @__PURE__ */ new Map(), c10 = Ca(t10[19](t10[1], t10[0], t10[46], t10[2], t10[3], t10[4], t10[5], t10[6], t10[7], t10[11])), l10 = function(e21) { + return e21[49].index; + }, u10 = 0; u10 < c10.length; u10 += 1) { + var f10 = Mq(t10, c10, u10), d10 = l10(f10); + s10.set(d10, a10[u10] = fz(d10, f10)); + } + var h10 = t10[46].end < t10[0].length && dz(t10); + return { key: e20, first: null, c: function() { + n10 = _i(); + for (var e21 = 0; e21 < a10.length; e21 += 1) + a10[e21].c(); + r10 = $i(), h10 && h10.c(), o10 = _i(), this.first = n10; + }, m: function(e21, t11) { + ki(e21, n10, t11); + for (var s11 = 0; s11 < a10.length; s11 += 1) + a10[s11] && a10[s11].m(e21, t11); + ki(e21, r10, t11), h10 && h10.m(e21, t11), ki(e21, o10, t11), i10 = true; + }, p: function(e21, n11) { + t10 = e21, 34097663 & n11[0] && (c10 = Ca(t10[19](t10[1], t10[0], t10[46], t10[2], t10[3], t10[4], t10[5], t10[6], t10[7], t10[11])), ba(), a10 = Oa(a10, n11, l10, 1, t10, c10, s10, r10.parentNode, _a, fz, r10, Mq), ka()), t10[46].end < t10[0].length ? h10 ? (h10.p(t10, n11), 16385 & n11[0] && wa(h10, 1)) : ((h10 = dz(t10)).c(), wa(h10, 1), h10.m(o10.parentNode, o10)) : h10 && (ba(), xa(h10, 1, 1, function() { + h10 = null; + }), ka()); + }, i: function(e21) { + if (!i10) { + for (var t11 = 0; t11 < c10.length; t11 += 1) + wa(a10[t11]); + wa(h10), i10 = true; + } + }, o: function(e21) { + for (var t11 = 0; t11 < a10.length; t11 += 1) + xa(a10[t11]); + xa(h10), i10 = false; + }, d: function(e21) { + e21 && (wi(n10), wi(r10), wi(o10)); + for (var t11 = 0; t11 < a10.length; t11 += 1) + a10[t11].d(e21); + h10 && h10.d(e21); + } }; + } + function vz(e20) { + var t10, n10, r10; + return { c: function() { + Ai(t10 = ji("div"), "role", "none"), Ai(t10, "class", "jse-insert-selection-area jse-after svelte-1koa14y"), Ai(t10, "data-type", "insert-selection-area-after"); + }, m: function(o10, i10) { + ki(o10, t10, i10), n10 || (r10 = Oi(t10, "click", e20[29]), n10 = true); + }, p: Wo, d: function(e21) { + e21 && wi(t10), n10 = false, r10(); + } }; + } + function pz(e20) { + var t10, n10, r10; + return n10 = new XD({ props: { selected: e20[16] && dE(e20[7]), onContextMenu: e20[31] } }), { c: function() { + t10 = ji("div"), Pa(n10.$$.fragment), Ai(t10, "class", "jse-insert-area jse-after svelte-1koa14y"), Ai(t10, "data-type", "insert-selection-area-after"), Ai(t10, "title", ws), zi(t10, "jse-hovered", e20[10] === Ss), zi(t10, "jse-selected", e20[16] && dE(e20[7])); + }, m: function(e21, o10) { + ki(e21, t10, o10), Ta(n10, t10, null), r10 = true; + }, p: function(e21, o10) { + var i10 = {}; + 65664 & o10[0] && (i10.selected = e21[16] && dE(e21[7])), n10.$set(i10), (!r10 || 1024 & o10[0]) && zi(t10, "jse-hovered", e21[10] === Ss), (!r10 || 65664 & o10[0]) && zi(t10, "jse-selected", e21[16] && dE(e21[7])); + }, i: function(e21) { + r10 || (wa(n10.$$.fragment, e21), r10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), r10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(n10); + } }; + } + function mz(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10, d10 = !e20[8].readOnly && (e20[10] === Ss || e20[16] && dE(e20[7])), h10 = [Rq, Tq, Pq], v10 = []; + function p10(e21, t11) { + return 1 & t11[0] && (n10 = null), 1 & t11[0] && (r10 = null), null == n10 && (n10 = !!Array.isArray(e21[0])), n10 ? 0 : (null == r10 && (r10 = !!Gl(e21[0])), r10 ? 1 : 2); + } + o10 = p10(e20, [-1, -1]), i10 = v10[o10] = h10[o10](e20); + var m10 = d10 && pz(e20); + return { c: function() { + t10 = ji("div"), i10.c(), a10 = $i(), m10 && m10.c(), Ai(t10, "role", "treeitem"), Ai(t10, "tabindex", "-1"), Ai(t10, "class", s10 = si(GE("jse-json-node", { "jse-expanded": e20[12] }, e20[8].onClassName(e20[1], e20[0]))) + " svelte-1koa14y"), Ai(t10, "data-path", c10 = OO(e20[1])), Ai(t10, "aria-selected", e20[16]), zi(t10, "jse-root", e20[17]), zi(t10, "jse-selected", e20[16] && mE(e20[7])), zi(t10, "jse-selected-key", e20[16] && vE(e20[7])), zi(t10, "jse-selected-value", e20[16] && pE(e20[7])), zi(t10, "jse-readonly", e20[8].readOnly), zi(t10, "jse-hovered", e20[10] === Cs), Di(t10, "--level", e20[1].length); + }, m: function(n11, r11) { + ki(n11, t10, r11), v10[o10].m(t10, null), pi(t10, a10), m10 && m10.m(t10, null), l10 = true, u10 || (f10 = [Oi(t10, "mousedown", e20[23]), Oi(t10, "mousemove", e20[24]), Oi(t10, "mouseover", e20[26]), Oi(t10, "mouseout", e20[27]), Oi(t10, "focus", void 0), Oi(t10, "blur", void 0)], u10 = true); + }, p: function(e21, n11) { + var r11 = o10; + (o10 = p10(e21, n11)) === r11 ? v10[o10].p(e21, n11) : (ba(), xa(v10[r11], 1, 1, function() { + v10[r11] = null; + }), ka(), (i10 = v10[o10]) ? i10.p(e21, n11) : (i10 = v10[o10] = h10[o10](e21)).c(), wa(i10, 1), i10.m(t10, a10)), 66944 & n11[0] && (d10 = !e21[8].readOnly && (e21[10] === Ss || e21[16] && dE(e21[7]))), d10 ? m10 ? (m10.p(e21, n11), 66944 & n11[0] && wa(m10, 1)) : ((m10 = pz(e21)).c(), wa(m10, 1), m10.m(t10, null)) : m10 && (ba(), xa(m10, 1, 1, function() { + m10 = null; + }), ka()), (!l10 || 4355 & n11[0] && s10 !== (s10 = si(GE("jse-json-node", { "jse-expanded": e21[12] }, e21[8].onClassName(e21[1], e21[0]))) + " svelte-1koa14y")) && Ai(t10, "class", s10), (!l10 || 2 & n11[0] && c10 !== (c10 = OO(e21[1]))) && Ai(t10, "data-path", c10), (!l10 || 65536 & n11[0]) && Ai(t10, "aria-selected", e21[16]), (!l10 || 135427 & n11[0]) && zi(t10, "jse-root", e21[17]), (!l10 || 70019 & n11[0]) && zi(t10, "jse-selected", e21[16] && mE(e21[7])), (!l10 || 70019 & n11[0]) && zi(t10, "jse-selected-key", e21[16] && vE(e21[7])), (!l10 || 70019 & n11[0]) && zi(t10, "jse-selected-value", e21[16] && pE(e21[7])), (!l10 || 4355 & n11[0]) && zi(t10, "jse-readonly", e21[8].readOnly), (!l10 || 5379 & n11[0]) && zi(t10, "jse-hovered", e21[10] === Cs), 2 & n11[0] && Di(t10, "--level", e21[1].length); + }, i: function(e21) { + l10 || (wa(i10), wa(m10), l10 = true); + }, o: function(e21) { + xa(i10), xa(m10), l10 = false; + }, d: function(e21) { + e21 && wi(t10), v10[o10].d(), m10 && m10.d(), u10 = false, Qo(f10); + } }; + } + function gz(e20, t10, n10) { + var r10, o10, i10, a10, s10, c10, l10, u10 = t10.$$slots, f10 = void 0 === u10 ? {} : u10, d10 = t10.$$scope, h10 = t10.value, v10 = t10.path, p10 = t10.expandedMap, m10 = t10.enforceStringMap, g10 = t10.visibleSectionsMap, y10 = t10.validationErrorsMap, b10 = t10.searchResultItemsMap, k10 = t10.selection, w10 = t10.context, x10 = t10.onDragSelectionStart, j10 = Da("jsoneditor:JSONNode"), S10 = void 0, C10 = void 0, $10 = void 0, _10 = rv(function(e21) { + return e21; + }, JO); + function O10(e21) { + w10.onDrag(e21); + } + function M10(e21) { + pq.selecting && (pq.selecting = false, e21.stopPropagation()), w10.onDragEnd(), document.removeEventListener("mousemove", O10, true), document.removeEventListener("mouseup", M10); + } + function E10() { + var e21; + return (null === (e21 = w10.findElement([])) || void 0 === e21 || null === (e21 = e21.getBoundingClientRect()) || void 0 === e21 ? void 0 : e21.top) || 0; + } + function A10(e21, t11) { + var n11 = E10() - e21.initialContentTop; + return t11.clientY - e21.initialClientY - n11; + } + function P10(e21) { + if ($10) { + var t11 = w10.getJson(); + if (void 0 === t11) + return; + var r11 = w10.getDocumentState(), o11 = A10($10, e21), i11 = mq({ json: t11, documentState: r11, deltaY: o11, items: $10.items }).offset; + i11 !== $10.offset && (j10("drag selection", i11, o11), n10(11, $10 = Ro(Ro({}, $10), {}, { offset: i11, didMoveItems: true }))); + } + } + function T8(e21) { + if ($10) { + var t11 = w10.getJson(); + if (void 0 === t11) + return; + var r11 = mq({ json: t11, documentState: w10.getDocumentState(), deltaY: A10($10, e21), items: $10.items }), o11 = r11.operations, i11 = r11.updatedSelection; + if (o11) + w10.onPatch(o11, function(e23, t12) { + return { state: Ro(Ro({}, t12), {}, { selection: i11 || k10 }) }; + }); + else if (e21.target === $10.initialTarget && !$10.didMoveItems) { + var a11 = _O(e21.target), s11 = MO(e21.target); + s11 && w10.onSelect(VE(0, a11, s11)); + } + n10(11, $10 = void 0), pq.dragging = false, document.removeEventListener("mousemove", P10, true), document.removeEventListener("mouseup", T8); + } + } + return e20.$$set = function(e21) { + "value" in e21 && n10(0, h10 = e21.value), "path" in e21 && n10(1, v10 = e21.path), "expandedMap" in e21 && n10(2, p10 = e21.expandedMap), "enforceStringMap" in e21 && n10(3, m10 = e21.enforceStringMap), "visibleSectionsMap" in e21 && n10(4, g10 = e21.visibleSectionsMap), "validationErrorsMap" in e21 && n10(5, y10 = e21.validationErrorsMap), "searchResultItemsMap" in e21 && n10(6, b10 = e21.searchResultItemsMap), "selection" in e21 && n10(7, k10 = e21.selection), "context" in e21 && n10(8, w10 = e21.context), "onDragSelectionStart" in e21 && n10(32, x10 = e21.onDragSelectionStart), "$$scope" in e21 && n10(34, d10 = e21.$$scope); + }, e20.$$.update = function() { + 2 & e20.$$.dirty[0] && n10(9, o10 = Zs(v10)), 516 & e20.$$.dirty[0] && n10(12, i10 = !!p10 && true === p10[o10]), 777 & e20.$$.dirty[0] && n10(13, a10 = oE(h10, m10, o10, w10.parser)), 528 & e20.$$.dirty[0] && n10(14, s10 = g10 ? g10[o10] : void 0), 544 & e20.$$.dirty[0] && n10(15, c10 = y10 ? y10[o10] : void 0), 386 & e20.$$.dirty[0] && n10(16, l10 = WE(w10.getJson(), k10, v10)), 2 & e20.$$.dirty[0] && n10(17, r10 = 0 === v10.length); + }, [h10, v10, p10, m10, g10, y10, b10, k10, w10, o10, S10, $10, i10, a10, s10, c10, l10, r10, function(e21, t11, n11, r11, i11, a11, s11, c11, l11) { + var u11 = Object.keys(t11).map(function(l12) { + var u12 = _10(e21.concat(l12)), f11 = tc(o10, l12); + return { key: l12, value: t11[l12], path: u12, expandedMap: gq(n11, f11), enforceStringMap: gq(r11, f11), visibleSectionsMap: gq(i11, f11), validationErrorsMap: gq(a11, f11), keySearchResultItemsMap: SA(s11, f11), valueSearchResultItemsMap: gq(s11, f11), selection: HE(w10.getJson(), c11, u12) }; + }); + return l11 && 0 !== l11.offset && (u11 = q_(u11, l11.selectionStartIndex, l11.selectionItemsCount, l11.offset)), u11; + }, function(e21, t11, n11, r11, i11, a11, s11, c11, l11, u11) { + for (var f11 = n11.start, d11 = Math.min(n11.end, t11.length), h11 = [], v11 = f11; v11 < d11; v11++) { + var p11 = _10(e21.concat(String(v11))), m11 = tc(o10, v11); + h11.push({ index: v11, value: t11[v11], path: p11, expandedMap: gq(r11, m11), enforceStringMap: gq(i11, m11), visibleSectionsMap: gq(a11, m11), validationErrorsMap: gq(s11, m11), searchResultItemsMap: gq(c11, m11), selection: HE(w10.getJson(), l11, p11) }); + } + if (u11 && 0 !== u11.offset) { + var g11 = h11.map(function(e23) { + return e23.index; + }); + h11 = q_(h11, u11.selectionStartIndex, u11.selectionItemsCount, u11.offset); + for (var y11 = 0; y11 < h11.length; y11++) + h11[y11].index = g11[y11]; + } + return h11; + }, function(e21) { + e21.stopPropagation(); + var t11 = e21.ctrlKey; + w10.onExpand(v10, !i10, t11); + }, function(e21) { + e21.stopPropagation(), w10.onExpand(v10, true); + }, function(e21, t11) { + var n11 = aA(v10, Object.keys(h10), e21, t11); + return w10.onPatch(n11), vb(Xs(n11[0].path)); + }, function(e21) { + if (!(function(e23) { + return "DIV" === e23.nodeName && "true" === e23.contentEditable; + }(e21.target) || 1 === e21.which && yO(e21.target, "BUTTON"))) { + e21.stopPropagation(), e21.preventDefault(), w10.focus(), document.addEventListener("mousemove", O10, true), document.addEventListener("mouseup", M10); + var t11 = _O(e21.target), n11 = w10.getJson(), o11 = w10.getDocumentState(); + if (!k10 || t11 === Ya.after || t11 === Ya.inside || k10.type !== t11 && k10.type !== Ya.multi || !WE(n11, k10, v10)) + if (pq.selecting = true, pq.selectionAnchor = v10, pq.selectionAnchorType = t11, pq.selectionFocus = v10, e21.shiftKey) { + var i11 = w10.getDocumentState().selection; + i11 && w10.onSelect(DE(KE(i11), v10)); + } else if (t11 === Ya.multi) + if (r10 && e21.target.hasAttribute("data-path")) { + var a11 = vb(sE(h10, o11)); + w10.onSelect(FE(a11)); + } else + w10.onSelect(DE(v10, v10)); + else + void 0 !== n11 && w10.onSelect(VE(0, t11, v10)); + else + 0 === e21.button && x10(e21); + } + }, function(e21) { + if (pq.selecting) { + e21.preventDefault(), e21.stopPropagation(), null == pq.selectionFocus && window.getSelection && window.getSelection().empty(); + var t11 = _O(e21.target); + Ow(v10, pq.selectionFocus) && t11 === pq.selectionAnchorType || (pq.selectionFocus = v10, pq.selectionAnchorType = t11, w10.onSelect(DE(pq.selectionAnchor || pq.selectionFocus, pq.selectionFocus))); + } + }, function(e21) { + if (!w10.readOnly && k10) { + var t11 = Qk(JE(k10)); + if (Ow(v10, t11)) { + var r11 = function(e23, t12) { + var n11 = []; + function r12(e24) { + var t13 = v10.concat(e24), r13 = w10.findElement(t13); + null != r13 && n11.push({ path: t13, height: r13.clientHeight }); + } + if (Array.isArray(h10)) { + var o12 = w10.getJson(); + if (void 0 === o12) + return null; + var i12 = xE(o12, e23), a12 = jE(o12, e23), s11 = parseInt(vb(i12), 10), c12 = parseInt(vb(a12), 10), l11 = t12.find(function(e24) { + return s11 >= e24.start && c12 <= e24.end; + }); + if (!l11) + return null; + var u11 = l11.start, f11 = l11.end; + R_(u11, Math.min(h10.length, f11), function(e24) { + return r12(String(e24)); + }); + } else + Object.keys(h10).forEach(r12); + return n11; + }(k10, s10 || ds); + if (j10("dragSelectionStart", { selection: k10, items: r11 }), r11) { + var o11 = w10.getJson(); + if (void 0 !== o11) { + var i11 = xE(o11, k10), a11 = r11.findIndex(function(e23) { + return Ow(e23.path, i11); + }), c11 = mq({ json: o11, documentState: w10.getDocumentState(), deltaY: 0, items: r11 }).offset; + n10(11, $10 = { initialTarget: e21.target, initialClientY: e21.clientY, initialContentTop: E10(), selectionStartIndex: a11, selectionItemsCount: kE(o11, k10).length, items: r11, offset: c11, didMoveItems: false }), pq.dragging = true, document.addEventListener("mousemove", P10, true), document.addEventListener("mouseup", T8); + } + } else + j10("Cannot drag the current selection (probably spread over multiple sections)"); + } else + x10(e21); + } + }, function(e21) { + pq.selecting || pq.dragging || (e21.stopPropagation(), bO(e21.target, "data-type", "selectable-value") ? n10(10, S10 = Cs) : bO(e21.target, "data-type", "insert-selection-area-inside") ? n10(10, S10 = js) : bO(e21.target, "data-type", "insert-selection-area-after") && n10(10, S10 = Ss), clearTimeout(C10)); + }, function(e21) { + e21.stopPropagation(), C10 = window.setTimeout(function() { + return n10(10, S10 = void 0); + }); + }, function(e21) { + e21.shiftKey || (e21.stopPropagation(), e21.preventDefault(), w10.onSelect(NE(v10))); + }, function(e21) { + e21.shiftKey || (e21.stopPropagation(), e21.preventDefault(), w10.onSelect(IE(v10))); + }, function(e21) { + w10.onSelect(NE(v10)), w10.onContextMenu(e21); + }, function(e21) { + w10.onSelect(IE(v10)), w10.onContextMenu(e21); + }, x10, f10, d10]; + } + var yz = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, gz, mz, Zo, { value: 0, path: 1, expandedMap: 2, enforceStringMap: 3, visibleSectionsMap: 4, validationErrorsMap: 5, searchResultItemsMap: 6, selection: 7, context: 8, onDragSelectionStart: 32 }, xq, [-1, -1]), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + var bz = yz; + var kz = { prefix: "fas", iconName: "jsoneditor-expand", icon: [512, 512, [], "", "M 0,448 V 512 h 512 v -64 z M 0,0 V 64 H 512 V 0 Z M 256,96 128,224 h 256 z M 256,416 384,288 H 128 Z"] }; + var wz = { prefix: "fas", iconName: "jsoneditor-collapse", icon: [512, 512, [], "", "m 0,224 v 64 h 512 v -64 z M 256,192 384,64 H 128 Z M 256,320 128,448 h 256 z"] }; + var xz = { prefix: "fas", iconName: "jsoneditor-format", icon: [512, 512, [], "", "M 0,32 v 64 h 416 v -64 z M 160,160 v 64 h 352 v -64 z M 160,288 v 64 h 288 v -64 z M 0,416 v 64 h 320 v -64 z"] }; + var jz = { prefix: "fas", iconName: "jsoneditor-compact", icon: [512, 512, [], "", "M 0,32 v 64 h 512 v -64 z M 0,160 v 64 h 512 v -64 z M 0,288 v 64 h 352 v -64 z"] }; + function Sz(e20) { + var t10, n10; + return t10 = new EI({ props: { items: e20[0] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 1 & jo(n11, 1)[0] && (r10.items = e21[0]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function Cz(e20, t10, n10) { + var r10, o10, i10, a10, s10, c10, l10, u10 = t10.json, f10 = t10.selection, d10 = t10.readOnly, h10 = t10.showSearch, v10 = void 0 !== h10 && h10, p10 = t10.historyState, m10 = t10.onExpandAll, g10 = t10.onCollapseAll, y10 = t10.onUndo, b10 = t10.onRedo, k10 = t10.onSort, w10 = t10.onTransform, x10 = t10.onContextMenu, j10 = t10.onCopy, S10 = t10.onRenderMenu; + function C10() { + n10(1, v10 = !v10); + } + return e20.$$set = function(e21) { + "json" in e21 && n10(2, u10 = e21.json), "selection" in e21 && n10(3, f10 = e21.selection), "readOnly" in e21 && n10(4, d10 = e21.readOnly), "showSearch" in e21 && n10(1, v10 = e21.showSearch), "historyState" in e21 && n10(5, p10 = e21.historyState), "onExpandAll" in e21 && n10(6, m10 = e21.onExpandAll), "onCollapseAll" in e21 && n10(7, g10 = e21.onCollapseAll), "onUndo" in e21 && n10(8, y10 = e21.onUndo), "onRedo" in e21 && n10(9, b10 = e21.onRedo), "onSort" in e21 && n10(10, k10 = e21.onSort), "onTransform" in e21 && n10(11, w10 = e21.onTransform), "onContextMenu" in e21 && n10(12, x10 = e21.onContextMenu), "onCopy" in e21 && n10(13, j10 = e21.onCopy), "onRenderMenu" in e21 && n10(14, S10 = e21.onRenderMenu); + }, e20.$$.update = function() { + 4 & e20.$$.dirty && n10(20, r10 = void 0 !== u10), 1048584 & e20.$$.dirty && n10(19, o10 = r10 && (mE(f10) || vE(f10) || pE(f10))), 68 & e20.$$.dirty && n10(15, a10 = { type: "button", icon: kz, title: "Expand all", className: "jse-expand-all", onClick: m10, disabled: !Ql(u10) }), 132 & e20.$$.dirty && n10(16, s10 = { type: "button", icon: wz, title: "Collapse all", className: "jse-collapse-all", onClick: g10, disabled: !Ql(u10) }), 4 & e20.$$.dirty && n10(17, c10 = { type: "button", icon: jP, title: "Search (Ctrl+F)", className: "jse-search", onClick: C10, disabled: void 0 === u10 }), 769844 & e20.$$.dirty && n10(18, l10 = d10 ? [a10, s10, { type: "separator" }, { type: "button", icon: CP, title: "Copy (Ctrl+C)", className: "jse-copy", onClick: j10, disabled: !o10 }, { type: "separator" }, c10, { type: "space" }] : [a10, s10, { type: "separator" }, { type: "button", icon: kP, title: "Sort", className: "jse-sort", onClick: k10, disabled: d10 || void 0 === u10 }, { type: "button", icon: cP, title: "Transform contents (filter, sort, project)", className: "jse-transform", onClick: w10, disabled: d10 || void 0 === u10 }, c10, { type: "button", icon: yP, title: xs, className: "jse-contextmenu", onClick: x10 }, { type: "separator" }, { type: "button", icon: vP, title: "Undo (Ctrl+Z)", className: "jse-undo", onClick: y10, disabled: !p10.canUndo }, { type: "button", icon: hP, title: "Redo (Ctrl+Shift+Z)", className: "jse-redo", onClick: b10, disabled: !p10.canRedo }, { type: "space" }]), 278528 & e20.$$.dirty && n10(0, i10 = S10(l10)); + }, [i10, v10, u10, f10, d10, p10, m10, g10, y10, b10, k10, w10, x10, j10, S10, a10, s10, c10, l10, o10, r10]; + } + var $z = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, Cz, Sz, Zo, { json: 2, selection: 3, readOnly: 4, showSearch: 1, historyState: 5, onExpandAll: 6, onCollapseAll: 7, onUndo: 8, onRedo: 9, onSort: 10, onTransform: 11, onContextMenu: 12, onCopy: 13, onRenderMenu: 14 }), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function _z(e20) { + mi(e20, "svelte-s2toti", '.jse-welcome.svelte-s2toti.svelte-s2toti{flex:1;overflow:auto;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);display:flex;flex-direction:column;align-items:center;border-left:var(--jse-main-border, 1px solid #d7d7d7);border-right:var(--jse-main-border, 1px solid #d7d7d7)}.jse-welcome.svelte-s2toti.svelte-s2toti:last-child{border-bottom:var(--jse-main-border, 1px solid #d7d7d7)}.jse-welcome.svelte-s2toti .jse-space.jse-before.svelte-s2toti{flex:1}.jse-welcome.svelte-s2toti .jse-space.jse-after.svelte-s2toti{flex:2}.jse-welcome.svelte-s2toti .jse-contents.svelte-s2toti{display:flex;flex-direction:column;max-width:300px;margin:2em var(--jse-padding, 10px);gap:var(--jse-padding, 10px)}.jse-welcome.svelte-s2toti .jse-contents .jse-welcome-info.svelte-s2toti{color:var(--jse-panel-color-readonly, #b2b2b2)}.jse-welcome.svelte-s2toti .jse-contents button.svelte-s2toti{border:none;background:transparent;color:inherit;cursor:pointer;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);padding:5px;margin:0;background:var(--jse-button-primary-background, var(--jse-theme-color, #3883fa));color:var(--jse-button-primary-color, #fff);padding:var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px));border-radius:3px}.jse-welcome.svelte-s2toti .jse-contents button.svelte-s2toti:hover{background:var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff))}.jse-welcome.svelte-s2toti .jse-contents button.svelte-s2toti:disabled{background:var(--jse-button-primary-background-disabled, #9d9d9d)}'); + } + function Oz(e20) { + var t10, n10, r10, o10, i10, a10, s10; + return { c: function() { + (t10 = ji("div")).innerHTML = "You can paste clipboard data using Ctrl+V, or use the following options:", n10 = $i(), (r10 = ji("button")).textContent = "Create object", o10 = $i(), (i10 = ji("button")).textContent = "Create array", Ai(t10, "class", "jse-welcome-info svelte-s2toti"), Ai(r10, "title", "Create an empty JSON object (press '{')"), Ai(r10, "class", "svelte-s2toti"), Ai(i10, "title", "Create an empty JSON array (press '[')"), Ai(i10, "class", "svelte-s2toti"); + }, m: function(c10, l10) { + ki(c10, t10, l10), ki(c10, n10, l10), ki(c10, r10, l10), ki(c10, o10, l10), ki(c10, i10, l10), a10 || (s10 = [Oi(r10, "click", Ei(e20[4])), Oi(i10, "click", Ei(e20[5]))], a10 = true); + }, p: Wo, d: function(e21) { + e21 && (wi(t10), wi(n10), wi(r10), wi(o10), wi(i10)), a10 = false, Qo(s10); + } }; + } + function Mz(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10 = !e20[0] && Oz(e20); + return { c: function() { + t10 = ji("div"), n10 = ji("div"), r10 = $i(), o10 = ji("div"), (i10 = ji("div")).textContent = "Empty document", a10 = $i(), f10 && f10.c(), s10 = $i(), c10 = ji("div"), Ai(n10, "class", "jse-space jse-before svelte-s2toti"), Ai(i10, "class", "jse-welcome-title"), Ai(o10, "class", "jse-contents svelte-s2toti"), Ai(c10, "class", "jse-space jse-after svelte-s2toti"), Ai(t10, "class", "jse-welcome svelte-s2toti"), Ai(t10, "role", "none"); + }, m: function(d10, h10) { + ki(d10, t10, h10), pi(t10, n10), pi(t10, r10), pi(t10, o10), pi(o10, i10), pi(o10, a10), f10 && f10.m(o10, null), pi(t10, s10), pi(t10, c10), l10 || (u10 = Oi(t10, "click", e20[6]), l10 = true); + }, p: function(e21, t11) { + var n11 = jo(t11, 1)[0]; + e21[0] ? f10 && (f10.d(1), f10 = null) : f10 ? f10.p(e21, n11) : ((f10 = Oz(e21)).c(), f10.m(o10, null)); + }, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10), f10 && f10.d(), l10 = false, u10(); + } }; + } + function Ez(e20, t10, n10) { + var r10 = t10.readOnly, o10 = t10.onCreateArray, i10 = t10.onCreateObject, a10 = t10.onClick; + return e20.$$set = function(e21) { + "readOnly" in e21 && n10(0, r10 = e21.readOnly), "onCreateArray" in e21 && n10(1, o10 = e21.onCreateArray), "onCreateObject" in e21 && n10(2, i10 = e21.onCreateObject), "onClick" in e21 && n10(3, a10 = e21.onClick); + }, [r10, o10, i10, a10, function() { + return i10(); + }, function() { + return o10(); + }, function() { + return a10(); + }]; + } + var Az = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, Ez, Mz, Zo, { readOnly: 0, onCreateArray: 1, onCreateObject: 2, onClick: 3 }, _z), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + var Pz = { exports: {} }; + var Tz = function(e20, t10) { + var n10, r10, o10 = 1, i10 = 0, a10 = 0, s10 = String.alphabet; + function c10(e21, t11, r11) { + if (r11) { + for (n10 = t11; (r11 = c10(e21, n10)) < 76 && r11 > 65; ) + ++n10; + return +e21.slice(t11 - 1, n10); + } + return (r11 = s10 && s10.indexOf(e21.charAt(t11))) > -1 ? r11 + 76 : (r11 = e21.charCodeAt(t11) || 0) < 45 || r11 > 127 ? r11 : r11 < 46 ? 65 : r11 < 48 ? r11 - 1 : r11 < 58 ? r11 + 18 : r11 < 65 ? r11 - 11 : r11 < 91 ? r11 + 11 : r11 < 97 ? r11 - 37 : r11 < 123 ? r11 + 5 : r11 - 63; + } + if ((e20 += "") != (t10 += "")) { + for (; o10; ) + if (r10 = c10(e20, i10++), o10 = c10(t10, a10++), r10 < 76 && o10 < 76 && r10 > 66 && o10 > 66 && (r10 = c10(e20, i10, i10), o10 = c10(t10, a10, i10 = n10), a10 = n10), r10 != o10) + return r10 < o10 ? -1 : 1; + } + return 0; + }; + try { + Pz.exports = Tz; + } catch (e20) { + String.naturalCompare = Tz; + } + var Rz = yc(Pz.exports); + function Nz(e20, t10) { + var n10 = "string" == typeof e20 ? e20.toLowerCase() : e20, r10 = "string" == typeof t10 ? t10.toLowerCase() : t10; + return Rz(n10, r10); + } + function Iz(e20) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [], n10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : [], r10 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1; + if (Ts(Ws(e20, t10))) { + if (void 0 === n10) + throw new Error("Cannot sort: no property selected by which to sort the array"); + return function(e21) { + var t11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [], n11 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : [], r11 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1, o10 = /* @__PURE__ */ function(e23, t12) { + return function(n12, r12) { + var o11 = Ws(n12, e23), i11 = Ws(r12, e23); + return void 0 === o11 ? t12 : void 0 === i11 ? -t12 : "string" != typeof o11 && "string" != typeof i11 ? o11 > i11 ? t12 : o11 < i11 ? -t12 : 0 : t12 * Nz(o11, i11); + }; + }(n11, r11), i10 = Ws(e21, t11); + return [{ op: "replace", path: Zs(t11), value: i10.slice(0).sort(o10) }]; + }(e20, t10, n10, r10); + } + if (Gl(e20)) + return function(e21) { + var t11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [], n11 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1, r11 = Ws(e21, t11), o10 = Object.keys(r11), i10 = o10.slice(); + i10.sort(function(e23, t12) { + return n11 * Nz(e23, t12); + }); + for (var a10 = [], s10 = 0; s10 < i10.length; s10++) { + var c10 = i10[s10], l10 = Zs(t11.concat(c10)); + a10.push({ op: "move", from: l10, path: l10 }); + } + return a10; + }(e20, t10, r10); + throw new Error("Cannot sort: no array or object"); + } + function Dz(e20) { + mi(e20, "svelte-12glmu0", '.jse-navigation-bar-dropdown.svelte-12glmu0.svelte-12glmu0{position:absolute;top:100%;left:0;z-index:3;background:var(--jse-navigation-bar-background, var(--jse-background-color, #fff));color:var(--jse-navigation-bar-dropdown-color, #656565);box-shadow:var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24));display:flex;flex-direction:column;max-height:300px;overflow:auto;min-width:80px}.jse-navigation-bar-dropdown.svelte-12glmu0 button.jse-navigation-bar-dropdown-item.svelte-12glmu0{font-family:var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace);font-size:var(--jse-font-size-mono, 14px);border:none;background:transparent;color:inherit;cursor:pointer;outline:none;text-align:left;white-space:nowrap;box-sizing:border-box;padding:calc(0.5 * var(--jse-padding, 10px)) 36px}.jse-navigation-bar-dropdown.svelte-12glmu0 button.jse-navigation-bar-dropdown-item.svelte-12glmu0:focus,.jse-navigation-bar-dropdown.svelte-12glmu0 button.jse-navigation-bar-dropdown-item.svelte-12glmu0:hover{background:var(--jse-navigation-bar-background-highlight, #e5e5e5)}.jse-navigation-bar-dropdown.svelte-12glmu0 button.jse-navigation-bar-dropdown-item.jse-selected.svelte-12glmu0{background:var(--jse-navigation-bar-dropdown-color, #656565);color:var(--jse-navigation-bar-background, var(--jse-background-color, #fff))}'); + } + function qz(e20, t10, n10) { + var r10 = e20.slice(); + return r10[4] = t10[n10], r10; + } + function zz(e20, t10) { + var n10, r10, o10, i10, a10, s10 = tM(t10[4].toString(), Vz) + ""; + function c10() { + return t10[3](t10[4]); + } + return { key: e20, first: null, c: function() { + n10 = ji("button"), r10 = Ci(s10), Ai(n10, "type", "button"), Ai(n10, "class", "jse-navigation-bar-dropdown-item svelte-12glmu0"), Ai(n10, "title", o10 = t10[4].toString()), zi(n10, "jse-selected", t10[4] === t10[1]), this.first = n10; + }, m: function(e21, t11) { + ki(e21, n10, t11), pi(n10, r10), i10 || (a10 = Oi(n10, "click", Ei(c10)), i10 = true); + }, p: function(e21, i11) { + t10 = e21, 1 & i11 && s10 !== (s10 = tM(t10[4].toString(), Vz) + "") && Ni(r10, s10), 1 & i11 && o10 !== (o10 = t10[4].toString()) && Ai(n10, "title", o10), 3 & i11 && zi(n10, "jse-selected", t10[4] === t10[1]); + }, d: function(e21) { + e21 && wi(n10), i10 = false, a10(); + } }; + } + function Bz(e20) { + var t10, n10; + return { c: function() { + t10 = ji("button"), n10 = Ci("..."), Ai(t10, "type", "button"), Ai(t10, "class", "jse-navigation-bar-dropdown-item svelte-12glmu0"), Ai(t10, "title", "Limited to " + Fz + " items"); + }, m: function(e21, r10) { + ki(e21, t10, r10), pi(t10, n10); + }, p: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function Lz(e20) { + for (var t10, n10, r10 = [], o10 = /* @__PURE__ */ new Map(), i10 = Ca(N_(e20[0], Fz)), a10 = function(e21) { + return e21[4]; + }, s10 = 0; s10 < i10.length; s10 += 1) { + var c10 = qz(e20, i10, s10), l10 = a10(c10); + o10.set(l10, r10[s10] = zz(l10, c10)); + } + var u10 = e20[0].length > Fz && Bz(); + return { c: function() { + t10 = ji("div"); + for (var e21 = 0; e21 < r10.length; e21 += 1) + r10[e21].c(); + n10 = $i(), u10 && u10.c(), Ai(t10, "class", "jse-navigation-bar-dropdown svelte-12glmu0"); + }, m: function(e21, o11) { + ki(e21, t10, o11); + for (var i11 = 0; i11 < r10.length; i11 += 1) + r10[i11] && r10[i11].m(t10, null); + pi(t10, n10), u10 && u10.m(t10, null); + }, p: function(e21, s11) { + var c11 = jo(s11, 1)[0]; + 7 & c11 && (i10 = Ca(N_(e21[0], Fz)), r10 = Oa(r10, c11, a10, 1, e21, i10, o10, t10, $a, zz, n10, qz)), e21[0].length > Fz ? u10 ? u10.p(e21, c11) : ((u10 = Bz()).c(), u10.m(t10, null)) : u10 && (u10.d(1), u10 = null); + }, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + for (var n11 = 0; n11 < r10.length; n11 += 1) + r10[n11].d(); + u10 && u10.d(); + } }; + } + var Fz = 100; + var Vz = 30; + function Hz(e20, t10, n10) { + var r10 = t10.items, o10 = t10.selectedItem, i10 = t10.onSelect; + return e20.$$set = function(e21) { + "items" in e21 && n10(0, r10 = e21.items), "selectedItem" in e21 && n10(1, o10 = e21.selectedItem), "onSelect" in e21 && n10(2, i10 = e21.onSelect); + }, [r10, o10, i10, function(e21) { + return i10(e21); + }]; + } + var Wz = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, Hz, Lz, Zo, { items: 0, selectedItem: 1, onSelect: 2 }, Dz), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function Uz(e20) { + mi(e20, "svelte-x08607", ".jse-navigation-bar-item.svelte-x08607.svelte-x08607{position:relative;display:flex}.jse-navigation-bar-item.svelte-x08607 button.jse-navigation-bar-button.svelte-x08607{font-family:inherit;font-size:inherit;padding:calc(0.5 * var(--jse-padding, 10px)) 2px;border:none;background:transparent;color:inherit;cursor:pointer;outline:none;min-width:2em;white-space:nowrap}.jse-navigation-bar-item.svelte-x08607 button.jse-navigation-bar-button.svelte-x08607:focus,.jse-navigation-bar-item.svelte-x08607 button.jse-navigation-bar-button.svelte-x08607:hover{background:var(--jse-panel-button-background-highlight, #e0e0e0);color:var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d))}.jse-navigation-bar-item.svelte-x08607 button.jse-navigation-bar-button.jse-navigation-bar-arrow.svelte-x08607{padding:2px var(--jse-padding, 10px) 0}.jse-navigation-bar-item.svelte-x08607 button.jse-navigation-bar-button.jse-navigation-bar-arrow.jse-open.svelte-x08607{background:var(--jse-navigation-bar-background, var(--jse-background-color, #fff));color:var(--jse-navigation-bar-dropdown-color, #656565)}.jse-navigation-bar-item.svelte-x08607.svelte-x08607:last-child{padding-right:var(--jse-padding, 10px)}"); + } + function Jz(e20) { + var t10, n10, r10, o10; + return { c: function() { + t10 = ji("button"), n10 = Ci(e20[2]), Ai(t10, "type", "button"), Ai(t10, "class", "jse-navigation-bar-button svelte-x08607"); + }, m: function(i10, a10) { + ki(i10, t10, a10), pi(t10, n10), r10 || (o10 = Oi(t10, "click", e20[9]), r10 = true); + }, p: function(e21, t11) { + 4 & t11 && Ni(n10, e21[2]); + }, d: function(e21) { + e21 && wi(t10), r10 = false, o10(); + } }; + } + function Kz(e20) { + var t10, n10, r10, o10, i10, a10, s10; + r10 = new jM({ props: { data: iP } }); + var c10 = void 0 !== e20[2] && Jz(e20); + return { c: function() { + t10 = ji("div"), n10 = ji("button"), Pa(r10.$$.fragment), o10 = $i(), c10 && c10.c(), Ai(n10, "type", "button"), Ai(n10, "class", "jse-navigation-bar-button jse-navigation-bar-arrow svelte-x08607"), zi(n10, "jse-open", e20[1]), Ai(t10, "class", "jse-navigation-bar-item svelte-x08607"); + }, m: function(l10, u10) { + ki(l10, t10, u10), pi(t10, n10), Ta(r10, n10, null), pi(t10, o10), c10 && c10.m(t10, null), e20[10](t10), i10 = true, a10 || (s10 = Oi(n10, "click", e20[4]), a10 = true); + }, p: function(e21, r11) { + var o11 = jo(r11, 1)[0]; + (!i10 || 2 & o11) && zi(n10, "jse-open", e21[1]), void 0 !== e21[2] ? c10 ? c10.p(e21, o11) : ((c10 = Jz(e21)).c(), c10.m(t10, null)) : c10 && (c10.d(1), c10 = null); + }, i: function(e21) { + i10 || (wa(r10.$$.fragment, e21), i10 = true); + }, o: function(e21) { + xa(r10.$$.fragment, e21), i10 = false; + }, d: function(n11) { + n11 && wi(t10), Ra(r10), c10 && c10.d(), e20[10](null), a10 = false, s10(); + } }; + } + function Gz(e20, t10, n10) { + var r10, o10, i10, a10, s10 = Zi("absolute-popup"), c10 = s10.openAbsolutePopup, l10 = s10.closeAbsolutePopup, u10 = t10.path, f10 = t10.index, d10 = t10.onSelect, h10 = t10.getItems, v10 = false; + function p10(e21) { + l10(a10), d10(r10.concat(e21)); + } + return e20.$$set = function(e21) { + "path" in e21 && n10(5, u10 = e21.path), "index" in e21 && n10(6, f10 = e21.index), "onSelect" in e21 && n10(7, d10 = e21.onSelect), "getItems" in e21 && n10(8, h10 = e21.getItems); + }, e20.$$.update = function() { + 96 & e20.$$.dirty && (r10 = u10.slice(0, f10)), 96 & e20.$$.dirty && n10(2, o10 = u10[f10]); + }, [i10, v10, o10, p10, function() { + if (i10) { + n10(1, v10 = true); + var e21 = { items: h10(r10), selectedItem: o10, onSelect: p10 }; + a10 = c10(Wz, e21, { anchor: i10, closeOnOuterClick: true, onClose: function() { + n10(1, v10 = false); + } }); + } + }, u10, f10, d10, h10, function() { + return p10(o10); + }, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(0, i10 = e21); + }); + }]; + } + var Qz = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, Gz, Kz, Zo, { path: 5, index: 6, onSelect: 7, getItems: 8 }, Uz), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function Yz(e20) { + var t10, n10; + if (navigator.clipboard) + return navigator.clipboard.writeText(e20); + if (null !== (t10 = (n10 = document).queryCommandSupported) && void 0 !== t10 && t10.call(n10, "copy")) { + var r10 = document.createElement("textarea"); + r10.value = e20, r10.style.position = "fixed", r10.style.opacity = "0", document.body.appendChild(r10), r10.select(); + try { + document.execCommand("copy"); + } catch (e21) { + console.error(e21); + } finally { + document.body.removeChild(r10); + } + } else + console.error("Copy failed."); + } + function Xz(e20) { + mi(e20, "svelte-1844qyt", ".jse-navigation-bar-path-editor.svelte-1844qyt.svelte-1844qyt{flex:1;display:flex;border:var(--jse-edit-outline, 2px solid #656565);background:var(--jse-background-color, #fff)}.jse-navigation-bar-path-editor.svelte-1844qyt input.jse-navigation-bar-text.svelte-1844qyt{flex:1;font-family:inherit;font-size:inherit;padding:0 5px 1px;background:var(--jse-background-color, #fff);color:var(--jse-text-color, #4d4d4d);border:none;outline:none}.jse-navigation-bar-path-editor.svelte-1844qyt button.svelte-1844qyt{border:none;background:var(--jse-background-color, #fff);cursor:pointer;font-family:inherit;font-size:80%;color:inherit}.jse-navigation-bar-path-editor.svelte-1844qyt button.jse-navigation-bar-copy.copied.svelte-1844qyt{color:var(--message-success-background, #9ac45d)}.jse-navigation-bar-path-editor.svelte-1844qyt button.jse-navigation-bar-validation-error.svelte-1844qyt{color:var(--jse-error-color, #ee5341)}.jse-navigation-bar-path-editor.error.svelte-1844qyt.svelte-1844qyt{border-color:var(--jse-error-color, #ee5341)}.jse-navigation-bar-path-editor.error.svelte-1844qyt input.jse-navigation-bar-text.svelte-1844qyt{color:var(--jse-error-color, #ee5341)}.jse-navigation-bar-path-editor.svelte-1844qyt .jse-copied-text.svelte-1844qyt{background:var(--message-success-background, #9ac45d);color:var(--jse-message-success-color, #fff);position:relative;margin:2px;padding:0 5px;border-radius:3px}"); + } + function Zz(e20) { + var t10, n10, r10, o10, i10, a10; + return n10 = new jM({ props: { data: TP } }), { c: function() { + t10 = ji("button"), Pa(n10.$$.fragment), Ai(t10, "type", "button"), Ai(t10, "class", "jse-navigation-bar-validation-error svelte-1844qyt"); + }, m: function(s10, c10) { + ki(s10, t10, c10), Ta(n10, t10, null), o10 = true, i10 || (a10 = ci(r10 = HA.call(null, t10, Ro({ text: String(e20[3] || "") }, e20[4]))), i10 = true); + }, p: function(e21, t11) { + r10 && Yo(r10.update) && 8 & t11 && r10.update.call(null, Ro({ text: String(e21[3] || "") }, e21[4])); + }, i: function(e21) { + o10 || (wa(n10.$$.fragment, e21), o10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), o10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(n10), i10 = false, a10(); + } }; + } + function eB(e20) { + var t10; + return { c: function() { + (t10 = ji("div")).textContent = "Copied!", Ai(t10, "class", "jse-copied-text svelte-1844qyt"); + }, m: function(e21, n10) { + ki(e21, t10, n10); + }, d: function(e21) { + e21 && wi(t10); + } }; + } + function tB(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10 = e20[3] && Zz(e20), d10 = e20[2] && eB(); + return s10 = new jM({ props: { data: CP } }), { c: function() { + t10 = ji("div"), n10 = ji("input"), r10 = $i(), f10 && f10.c(), o10 = $i(), d10 && d10.c(), i10 = $i(), a10 = ji("button"), Pa(s10.$$.fragment), Ai(n10, "type", "text"), Ai(n10, "class", "jse-navigation-bar-text svelte-1844qyt"), n10.value = e20[0], Ai(a10, "type", "button"), Ai(a10, "class", "jse-navigation-bar-copy svelte-1844qyt"), Ai(a10, "title", "Copy selected path to the clipboard"), zi(a10, "copied", e20[2]), Ai(t10, "class", "jse-navigation-bar-path-editor svelte-1844qyt"), zi(t10, "error", e20[3]); + }, m: function(h10, v10) { + ki(h10, t10, v10), pi(t10, n10), e20[15](n10), pi(t10, r10), f10 && f10.m(t10, null), pi(t10, o10), d10 && d10.m(t10, null), pi(t10, i10), pi(t10, a10), Ta(s10, a10, null), c10 = true, l10 || (u10 = [Oi(n10, "keydown", Ei(e20[6])), Oi(n10, "input", e20[5]), Oi(a10, "click", e20[7])], l10 = true); + }, p: function(e21, r11) { + var s11 = jo(r11, 1)[0]; + (!c10 || 1 & s11 && n10.value !== e21[0]) && (n10.value = e21[0]), e21[3] ? f10 ? (f10.p(e21, s11), 8 & s11 && wa(f10, 1)) : ((f10 = Zz(e21)).c(), wa(f10, 1), f10.m(t10, o10)) : f10 && (ba(), xa(f10, 1, 1, function() { + f10 = null; + }), ka()), e21[2] ? d10 || ((d10 = eB()).c(), d10.m(t10, i10)) : d10 && (d10.d(1), d10 = null), (!c10 || 4 & s11) && zi(a10, "copied", e21[2]), (!c10 || 8 & s11) && zi(t10, "error", e21[3]); + }, i: function(e21) { + c10 || (wa(f10), wa(s10.$$.fragment, e21), c10 = true); + }, o: function(e21) { + xa(f10), xa(s10.$$.fragment, e21), c10 = false; + }, d: function(n11) { + n11 && wi(t10), e20[15](null), f10 && f10.d(), d10 && d10.d(), Ra(s10), l10 = false, Qo(u10); + } }; + } + function nB(e20, t10, n10) { + var r10, o10, i10, a10 = Zi("absolute-popup"), s10 = t10.path, c10 = t10.pathParser, l10 = t10.onChange, u10 = t10.onClose, f10 = t10.onError, d10 = t10.pathExists, h10 = false, v10 = void 0, p10 = false; + function m10() { + o10.focus(); + } + function g10(e21) { + try { + var t11 = c10.parse(e21); + return function(e23) { + if (!d10(e23)) + throw new Error("Path does not exist in current document"); + }(t11), { path: t11, error: void 0 }; + } catch (e23) { + return { path: void 0, error: e23 }; + } + } + return Gi(function() { + m10(); + }), Qi(function() { + clearTimeout(v10); + }), e20.$$set = function(e21) { + "path" in e21 && n10(8, s10 = e21.path), "pathParser" in e21 && n10(9, c10 = e21.pathParser), "onChange" in e21 && n10(10, l10 = e21.onChange), "onClose" in e21 && n10(11, u10 = e21.onClose), "onError" in e21 && n10(12, f10 = e21.onError), "pathExists" in e21 && n10(13, d10 = e21.pathExists); + }, e20.$$.update = function() { + 768 & e20.$$.dirty && n10(0, i10 = c10.stringify(s10)), 16385 & e20.$$.dirty && n10(3, r10 = h10 ? g10(i10).error : void 0); + }, [i10, o10, p10, r10, a10, function(e21) { + n10(0, i10 = e21.currentTarget.value); + }, function(e21) { + var t11 = PO(e21); + if ("Escape" === t11 && u10(), "Enter" === t11) { + n10(14, h10 = true); + var r11 = g10(i10); + void 0 !== r11.path ? l10(r11.path) : f10(r11.error); + } + }, function() { + Yz(i10), n10(2, p10 = true), v10 = window.setTimeout(function() { + return n10(2, p10 = false); + }, 1e3), m10(); + }, s10, c10, l10, u10, f10, d10, h10, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(1, o10 = e21); + }); + }]; + } + var rB = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, nB, tB, Xo, { path: 8, pathParser: 9, onChange: 10, onClose: 11, onError: 12, pathExists: 13 }, Xz), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function oB(e20) { + mi(e20, "svelte-1aycet9", '.jse-navigation-bar.svelte-1aycet9.svelte-1aycet9{font-family:var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace);font-size:var(--jse-font-size-mono, 14px);background:var(--jse-panel-background, #ebebeb);color:var(--jse-panel-button-color, inherit);padding:0;margin:0;display:flex;overflow:auto;border-left:var(--jse-main-border, 1px solid #d7d7d7);border-right:var(--jse-main-border, 1px solid #d7d7d7)}.jse-navigation-bar.svelte-1aycet9 .jse-navigation-bar-edit.svelte-1aycet9{font-family:var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace);font-size:var(--jse-font-size-mono, 14px);padding:calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px);color:var(--jse-panel-color-readonly, #b2b2b2);background:transparent;border:none;display:flex;cursor:pointer;outline:none;align-items:center}.jse-navigation-bar.svelte-1aycet9 .jse-navigation-bar-edit.flex.svelte-1aycet9{flex:1}.jse-navigation-bar.svelte-1aycet9 .jse-navigation-bar-edit.svelte-1aycet9:focus,.jse-navigation-bar.svelte-1aycet9 .jse-navigation-bar-edit.svelte-1aycet9:hover,.jse-navigation-bar.svelte-1aycet9 .jse-navigation-bar-edit.editing.svelte-1aycet9{background:var(--jse-panel-button-background-highlight, #e0e0e0);color:var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d));transition:color 0.2s ease-in, background 0.2s ease-in}.jse-navigation-bar.svelte-1aycet9 .jse-navigation-bar-edit .jse-navigation-bar-space.svelte-1aycet9{flex:1;text-align:left}'); + } + function iB(e20, t10, n10) { + var r10 = e20.slice(); + return r10[18] = t10[n10], r10[20] = n10, r10; + } + function aB(e20) { + var t10, n10; + return t10 = new rB({ props: { path: e20[3], onClose: e20[11], onChange: e20[12], onError: e20[1], pathExists: e20[8], pathParser: e20[2] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 8 & n11 && (r10.path = e21[3]), 2 & n11 && (r10.onError = e21[1]), 4 & n11 && (r10.pathParser = e21[2]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function sB(e20) { + for (var t10, n10, r10, o10 = [], i10 = /* @__PURE__ */ new Map(), a10 = Ca(e20[3]), s10 = function(e21) { + return e21[20]; + }, c10 = 0; c10 < a10.length; c10 += 1) { + var l10 = iB(e20, a10, c10), u10 = s10(l10); + i10.set(u10, o10[c10] = cB(u10, l10)); + } + var f10 = e20[6] && lB(e20); + return { c: function() { + for (var e21 = 0; e21 < o10.length; e21 += 1) + o10[e21].c(); + t10 = $i(), f10 && f10.c(), n10 = _i(); + }, m: function(e21, i11) { + for (var a11 = 0; a11 < o10.length; a11 += 1) + o10[a11] && o10[a11].m(e21, i11); + ki(e21, t10, i11), f10 && f10.m(e21, i11), ki(e21, n10, i11), r10 = true; + }, p: function(e21, r11) { + 648 & r11 && (a10 = Ca(e21[3]), ba(), o10 = Oa(o10, r11, s10, 1, e21, a10, i10, t10.parentNode, _a, cB, t10, iB), ka()), e21[6] ? f10 ? (f10.p(e21, r11), 64 & r11 && wa(f10, 1)) : ((f10 = lB(e21)).c(), wa(f10, 1), f10.m(n10.parentNode, n10)) : f10 && (ba(), xa(f10, 1, 1, function() { + f10 = null; + }), ka()); + }, i: function(e21) { + if (!r10) { + for (var t11 = 0; t11 < a10.length; t11 += 1) + wa(o10[t11]); + wa(f10), r10 = true; + } + }, o: function(e21) { + for (var t11 = 0; t11 < o10.length; t11 += 1) + xa(o10[t11]); + xa(f10), r10 = false; + }, d: function(e21) { + e21 && (wi(t10), wi(n10)); + for (var r11 = 0; r11 < o10.length; r11 += 1) + o10[r11].d(e21); + f10 && f10.d(e21); + } }; + } + function cB(e20, t10) { + var n10, r10, o10; + return r10 = new Qz({ props: { getItems: t10[7], path: t10[3], index: t10[20], onSelect: t10[9] } }), { key: e20, first: null, c: function() { + n10 = _i(), Pa(r10.$$.fragment), this.first = n10; + }, m: function(e21, t11) { + ki(e21, n10, t11), Ta(r10, e21, t11), o10 = true; + }, p: function(e21, n11) { + t10 = e21; + var o11 = {}; + 8 & n11 && (o11.path = t10[3]), 8 & n11 && (o11.index = t10[20]), r10.$set(o11); + }, i: function(e21) { + o10 || (wa(r10.$$.fragment, e21), o10 = true); + }, o: function(e21) { + xa(r10.$$.fragment, e21), o10 = false; + }, d: function(e21) { + e21 && wi(n10), Ra(r10, e21); + } }; + } + function lB(e20) { + var t10, n10; + return t10 = new Qz({ props: { getItems: e20[7], path: e20[3], index: e20[3].length, onSelect: e20[9] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 8 & n11 && (r10.path = e21[3]), 8 & n11 && (r10.index = e21[3].length), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function uB(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10 = Ql(e20[0]) || e20[5] ? "\xA0" : "Navigation bar", p10 = [sB, aB], m10 = []; + function g10(e21, t11) { + return e21[5] ? 1 : 0; + } + return n10 = g10(e20), r10 = m10[n10] = p10[n10](e20), l10 = new jM({ props: { data: e20[5] ? OP : rP } }), { c: function() { + t10 = ji("div"), r10.c(), o10 = $i(), i10 = ji("button"), a10 = ji("span"), s10 = Ci(v10), c10 = $i(), Pa(l10.$$.fragment), Ai(a10, "class", "jse-navigation-bar-space svelte-1aycet9"), Ai(i10, "type", "button"), Ai(i10, "class", "jse-navigation-bar-edit svelte-1aycet9"), Ai(i10, "title", u10 = e20[5] ? "Cancel editing the selected path" : "Edit the selected path"), zi(i10, "flex", !e20[5]), zi(i10, "editing", e20[5]), Ai(t10, "class", "jse-navigation-bar svelte-1aycet9"); + }, m: function(r11, u11) { + ki(r11, t10, u11), m10[n10].m(t10, null), pi(t10, o10), pi(t10, i10), pi(i10, a10), pi(a10, s10), pi(i10, c10), Ta(l10, i10, null), e20[15](t10), f10 = true, d10 || (h10 = Oi(i10, "click", e20[10]), d10 = true); + }, p: function(e21, a11) { + var c11 = jo(a11, 1)[0], d11 = n10; + (n10 = g10(e21)) === d11 ? m10[n10].p(e21, c11) : (ba(), xa(m10[d11], 1, 1, function() { + m10[d11] = null; + }), ka(), (r10 = m10[n10]) ? r10.p(e21, c11) : (r10 = m10[n10] = p10[n10](e21)).c(), wa(r10, 1), r10.m(t10, o10)), (!f10 || 33 & c11) && v10 !== (v10 = Ql(e21[0]) || e21[5] ? "\xA0" : "Navigation bar") && Ni(s10, v10); + var h11 = {}; + 32 & c11 && (h11.data = e21[5] ? OP : rP), l10.$set(h11), (!f10 || 32 & c11 && u10 !== (u10 = e21[5] ? "Cancel editing the selected path" : "Edit the selected path")) && Ai(i10, "title", u10), (!f10 || 32 & c11) && zi(i10, "flex", !e21[5]), (!f10 || 32 & c11) && zi(i10, "editing", e21[5]); + }, i: function(e21) { + f10 || (wa(r10), wa(l10.$$.fragment, e21), f10 = true); + }, o: function(e21) { + xa(r10), xa(l10.$$.fragment, e21), f10 = false; + }, d: function(r11) { + r11 && wi(t10), m10[n10].d(), Ra(l10), e20[15](null), d10 = false, h10(); + } }; + } + function fB(e20, t10, n10) { + var r10, o10, i10, a10 = Da("jsoneditor:NavigationBar"), s10 = t10.json, c10 = t10.selection, l10 = t10.onSelect, u10 = t10.onError, f10 = t10.pathParser, d10 = false; + function h10(e21) { + a10("select path", JSON.stringify(e21)), l10(DE(e21, e21)); + } + function v10() { + n10(5, d10 = false); + } + return e20.$$set = function(e21) { + "json" in e21 && n10(0, s10 = e21.json), "selection" in e21 && n10(13, c10 = e21.selection), "onSelect" in e21 && n10(14, l10 = e21.onSelect), "onError" in e21 && n10(1, u10 = e21.onError), "pathParser" in e21 && n10(2, f10 = e21.pathParser); + }, e20.$$.update = function() { + 8192 & e20.$$.dirty && n10(3, r10 = c10 ? JE(c10) : []), 9 & e20.$$.dirty && n10(6, o10 = Ql(Ws(s10, r10))), 8 & e20.$$.dirty && setTimeout(function() { + if (i10 && i10.scrollTo) { + var e21 = i10.scrollWidth - i10.clientWidth; + e21 > 0 && (a10("scrollTo ", e21), i10.scrollTo({ left: e21, behavior: "smooth" })); + } + }); + }, [s10, u10, f10, r10, i10, d10, o10, function(e21) { + a10("get items for path", e21); + var t11 = Ws(s10, e21); + if (Array.isArray(t11)) + return hS(0, t11.length).map(String); + if (Gl(t11)) { + var n11 = Object.keys(t11).slice(0); + return n11.sort(Nz), n11; + } + return []; + }, function(e21) { + return Ys(s10, e21); + }, h10, function() { + n10(5, d10 = !d10); + }, v10, function(e21) { + v10(), h10(e21); + }, c10, l10, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(4, i10 = e21); + }); + }]; + } + var dB = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, fB, uB, Zo, { json: 0, selection: 13, onSelect: 14, onError: 1, pathParser: 2 }, oB), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function hB(e20) { + mi(e20, "svelte-1vkjt6l", '.jse-search-box.svelte-1vkjt6l.svelte-1vkjt6l{border:var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7));border-radius:3px;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);background:var(--jse-panel-background, #ebebeb);color:var(--jse-panel-color-readonly, #b2b2b2);box-shadow:var(--jse-controls-box-shadow, 0 2px 6px 0 rgba(0, 0, 0, 0.24));display:inline-block;width:400px;max-width:100%;overflow:auto}.jse-search-box.svelte-1vkjt6l .jse-search-form.svelte-1vkjt6l{display:flex;align-items:stretch}.jse-search-box.svelte-1vkjt6l .jse-search-form button.svelte-1vkjt6l,.jse-search-box.svelte-1vkjt6l .jse-search-form input.svelte-1vkjt6l{font-family:inherit;font-size:inherit}.jse-search-box.svelte-1vkjt6l .jse-search-form button.svelte-1vkjt6l{display:block;text-align:center;border:none;padding:0 5px;margin:0;cursor:pointer;color:var(--jse-panel-button-color, inherit);background:var(--jse-panel-button-background, transparent)}.jse-search-box.svelte-1vkjt6l .jse-search-form button.svelte-1vkjt6l:hover{color:var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d));background:var(--jse-panel-button-background-highlight, #e0e0e0)}.jse-search-box.svelte-1vkjt6l .jse-search-form input.svelte-1vkjt6l{color:var(--jse-panel-color, var(--jse-text-color, #4d4d4d));border:var(--jse-input-border, 1px solid #d8dbdf);border-radius:3px;background:var(--jse-input-background, var(--jse-background-color, #fff));height:28px;padding:0 5px;margin:0;flex:1;width:0;min-width:50px;outline:none}.jse-search-box.svelte-1vkjt6l .jse-search-form .jse-replace-toggle.svelte-1vkjt6l{padding:var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px));min-width:20px;background:var(--jse-panel-button-background-highlight, #e0e0e0)}.jse-search-box.svelte-1vkjt6l .jse-search-form .jse-search-contents.svelte-1vkjt6l{flex:1;display:flex;flex-direction:column;padding:calc(0.5 * var(--jse-padding, 10px));gap:calc(0.5 * var(--jse-padding, 10px))}.jse-search-box.svelte-1vkjt6l .jse-search-form .jse-search-contents .jse-search-section.svelte-1vkjt6l{flex:1;display:flex;align-items:center;position:relative;padding-left:32px}.jse-search-box.svelte-1vkjt6l .jse-search-form .jse-search-contents .jse-search-section .jse-search-icon.svelte-1vkjt6l{color:inherit;cursor:inherit;background:inherit;position:absolute;top:calc(0.5 * var(--jse-padding, 10px));left:calc(0.5 * var(--jse-padding, 10px))}.jse-search-box.svelte-1vkjt6l .jse-search-form .jse-search-contents .jse-search-section label.jse-search-input-label.svelte-1vkjt6l{flex:1;display:flex}.jse-search-box.svelte-1vkjt6l .jse-search-form .jse-search-contents .jse-search-section .jse-search-count.svelte-1vkjt6l{color:inherit;font-size:80%;visibility:hidden;padding:0 5px;min-width:36px;text-align:center}.jse-search-box.svelte-1vkjt6l .jse-search-form .jse-search-contents .jse-search-section .jse-search-count.jse-visible.svelte-1vkjt6l{visibility:visible}.jse-search-box.svelte-1vkjt6l .jse-search-form .jse-search-contents .jse-replace-section.svelte-1vkjt6l{padding-left:32px;flex:1;display:flex}.jse-search-box.svelte-1vkjt6l .jse-search-form .jse-search-contents .jse-replace-section button.svelte-1vkjt6l{width:auto}'); + } + function vB(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10, p10, m10, g10, y10, b10, k10, w10, x10, j10, S10, C10, $10, _10, O10, M10 = (-1 !== e20[3] ? "".concat(e20[3] + 1, "/") : "") + "", E10 = !e20[4] && pB(e20), A10 = [gB, mB], P10 = []; + function T8(e21, t11) { + return e21[2] ? 0 : 1; + } + s10 = T8(e20), c10 = P10[s10] = A10[s10](e20), y10 = new jM({ props: { data: SP } }), w10 = new jM({ props: { data: oP } }), S10 = new jM({ props: { data: MP } }); + var R8 = e20[0] && !e20[4] && yB(e20); + return { c: function() { + t10 = ji("div"), n10 = ji("form"), E10 && E10.c(), r10 = $i(), o10 = ji("div"), i10 = ji("div"), a10 = ji("div"), c10.c(), l10 = $i(), u10 = ji("label"), f10 = ji("input"), d10 = $i(), h10 = ji("div"), v10 = Ci(M10), p10 = Ci(e20[10]), m10 = $i(), g10 = ji("button"), Pa(y10.$$.fragment), b10 = $i(), k10 = ji("button"), Pa(w10.$$.fragment), x10 = $i(), j10 = ji("button"), Pa(S10.$$.fragment), C10 = $i(), R8 && R8.c(), Ai(a10, "class", "jse-search-icon svelte-1vkjt6l"), Ai(f10, "class", "jse-search-input svelte-1vkjt6l"), Ai(f10, "title", "Enter text to search"), Ai(f10, "type", "text"), Ai(f10, "placeholder", "Find"), Ai(u10, "class", "jse-search-input-label svelte-1vkjt6l"), Ai(u10, "about", "jse-search input"), Ai(h10, "class", "jse-search-count svelte-1vkjt6l"), zi(h10, "jse-visible", "" !== e20[8]), Ai(g10, "type", "button"), Ai(g10, "class", "jse-search-next svelte-1vkjt6l"), Ai(g10, "title", "Go to next search result (Enter)"), Ai(k10, "type", "button"), Ai(k10, "class", "jse-search-previous svelte-1vkjt6l"), Ai(k10, "title", "Go to previous search result (Shift+Enter)"), Ai(j10, "type", "button"), Ai(j10, "class", "jse-search-clear svelte-1vkjt6l"), Ai(j10, "title", "Close search box (Esc)"), Ai(i10, "class", "jse-search-section svelte-1vkjt6l"), Ai(o10, "class", "jse-search-contents svelte-1vkjt6l"), Ai(n10, "class", "jse-search-form svelte-1vkjt6l"), Ai(t10, "class", "jse-search-box svelte-1vkjt6l"); + }, m: function(c11, M11) { + ki(c11, t10, M11), pi(t10, n10), E10 && E10.m(n10, null), pi(n10, r10), pi(n10, o10), pi(o10, i10), pi(i10, a10), P10[s10].m(a10, null), pi(i10, l10), pi(i10, u10), pi(u10, f10), Ii(f10, e20[8]), pi(i10, d10), pi(i10, h10), pi(h10, v10), pi(h10, p10), pi(i10, m10), pi(i10, g10), Ta(y10, g10, null), pi(i10, b10), pi(i10, k10), Ta(w10, k10, null), pi(i10, x10), pi(i10, j10), Ta(S10, j10, null), pi(o10, C10), R8 && R8.m(o10, null), $10 = true, _10 || (O10 = [Oi(f10, "input", e20[21]), ci(kB.call(null, f10)), Oi(g10, "click", e20[22]), Oi(k10, "click", e20[23]), Oi(j10, "click", e20[24]), Oi(n10, "submit", e20[12]), Oi(n10, "keydown", e20[13])], _10 = true); + }, p: function(e21, t11) { + e21[4] ? E10 && (ba(), xa(E10, 1, 1, function() { + E10 = null; + }), ka()) : E10 ? (E10.p(e21, t11), 16 & t11 && wa(E10, 1)) : ((E10 = pB(e21)).c(), wa(E10, 1), E10.m(n10, r10)); + var i11 = s10; + (s10 = T8(e21)) !== i11 && (ba(), xa(P10[i11], 1, 1, function() { + P10[i11] = null; + }), ka(), (c10 = P10[s10]) || (c10 = P10[s10] = A10[s10](e21)).c(), wa(c10, 1), c10.m(a10, null)), 256 & t11 && f10.value !== e21[8] && Ii(f10, e21[8]), (!$10 || 8 & t11) && M10 !== (M10 = (-1 !== e21[3] ? "".concat(e21[3] + 1, "/") : "") + "") && Ni(v10, M10), (!$10 || 1024 & t11) && Ni(p10, e21[10]), (!$10 || 256 & t11) && zi(h10, "jse-visible", "" !== e21[8]), e21[0] && !e21[4] ? R8 ? R8.p(e21, t11) : ((R8 = yB(e21)).c(), R8.m(o10, null)) : R8 && (R8.d(1), R8 = null); + }, i: function(e21) { + $10 || (wa(E10), wa(c10), wa(y10.$$.fragment, e21), wa(w10.$$.fragment, e21), wa(S10.$$.fragment, e21), $10 = true); + }, o: function(e21) { + xa(E10), xa(c10), xa(y10.$$.fragment, e21), xa(w10.$$.fragment, e21), xa(S10.$$.fragment, e21), $10 = false; + }, d: function(e21) { + e21 && wi(t10), E10 && E10.d(), P10[s10].d(), Ra(y10), Ra(w10), Ra(S10), R8 && R8.d(), _10 = false, Qo(O10); + } }; + } + function pB(e20) { + var t10, n10, r10, o10, i10; + return n10 = new jM({ props: { data: e20[0] ? gP : YA } }), { c: function() { + t10 = ji("button"), Pa(n10.$$.fragment), Ai(t10, "type", "button"), Ai(t10, "class", "jse-replace-toggle svelte-1vkjt6l"), Ai(t10, "title", "Toggle visibility of replace options (Ctrl+H)"); + }, m: function(a10, s10) { + ki(a10, t10, s10), Ta(n10, t10, null), r10 = true, o10 || (i10 = Oi(t10, "click", e20[11]), o10 = true); + }, p: function(e21, t11) { + var r11 = {}; + 1 & t11 && (r11.data = e21[0] ? gP : YA), n10.$set(r11); + }, i: function(e21) { + r10 || (wa(n10.$$.fragment, e21), r10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), r10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(n10), o10 = false, i10(); + } }; + } + function mB(e20) { + var t10, n10; + return t10 = new jM({ props: { data: jP } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function gB(e20) { + var t10, n10; + return t10 = new jM({ props: { data: ZA, spin: true } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function yB(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10; + return { c: function() { + t10 = ji("div"), n10 = ji("input"), r10 = $i(), (o10 = ji("button")).textContent = "Replace", i10 = $i(), (a10 = ji("button")).textContent = "All", Ai(n10, "class", "jse-replace-input svelte-1vkjt6l"), Ai(n10, "title", "Enter replacement text"), Ai(n10, "type", "text"), Ai(n10, "placeholder", "Replace"), Ai(o10, "type", "button"), Ai(o10, "title", "Replace current occurrence (Ctrl+Enter)"), Ai(o10, "class", "svelte-1vkjt6l"), Ai(a10, "type", "button"), Ai(a10, "title", "Replace all occurrences"), Ai(a10, "class", "svelte-1vkjt6l"), Ai(t10, "class", "jse-replace-section svelte-1vkjt6l"); + }, m: function(l10, u10) { + ki(l10, t10, u10), pi(t10, n10), Ii(n10, e20[9]), pi(t10, r10), pi(t10, o10), pi(t10, i10), pi(t10, a10), s10 || (c10 = [Oi(n10, "input", e20[25]), Oi(o10, "click", e20[14]), Oi(a10, "click", e20[15])], s10 = true); + }, p: function(e21, t11) { + 512 & t11 && n10.value !== e21[9] && Ii(n10, e21[9]); + }, d: function(e21) { + e21 && wi(t10), s10 = false, Qo(c10); + } }; + } + function bB(e20) { + var t10, n10, r10 = e20[1] && vB(e20); + return { c: function() { + r10 && r10.c(), t10 = _i(); + }, m: function(e21, o10) { + r10 && r10.m(e21, o10), ki(e21, t10, o10), n10 = true; + }, p: function(e21, n11) { + var o10 = jo(n11, 1)[0]; + e21[1] ? r10 ? (r10.p(e21, o10), 2 & o10 && wa(r10, 1)) : ((r10 = vB(e21)).c(), wa(r10, 1), r10.m(t10.parentNode, t10)) : r10 && (ba(), xa(r10, 1, 1, function() { + r10 = null; + }), ka()); + }, i: function(e21) { + n10 || (wa(r10), n10 = true); + }, o: function(e21) { + xa(r10), n10 = false; + }, d: function(e21) { + e21 && wi(t10), r10 && r10.d(e21); + } }; + } + function kB(e20) { + e20.select(); + } + function wB(e20, t10, n10) { + var r10, o10, i10 = t10.show, a10 = void 0 !== i10 && i10, s10 = t10.searching, c10 = t10.resultCount, l10 = void 0 === c10 ? 0 : c10, u10 = t10.activeIndex, f10 = void 0 === u10 ? 0 : u10, d10 = t10.showReplace, h10 = void 0 !== d10 && d10, v10 = t10.readOnly, p10 = void 0 !== v10 && v10, m10 = t10.onChange, g10 = void 0 === m10 ? Mf : m10, y10 = t10.onPrevious, b10 = void 0 === y10 ? Mf : y10, k10 = t10.onNext, w10 = void 0 === k10 ? Mf : k10, x10 = t10.onReplace, j10 = void 0 === x10 ? Mf : x10, S10 = t10.onReplaceAll, C10 = void 0 === S10 ? Mf : S10, $10 = t10.onClose, _10 = void 0 === $10 ? Mf : $10, O10 = "", M10 = "", E10 = ""; + function A10() { + n10(0, h10 = !h10 && !p10); + } + function P10() { + p10 || j10(O10, E10); + } + return e20.$$set = function(e21) { + "show" in e21 && n10(1, a10 = e21.show), "searching" in e21 && n10(2, s10 = e21.searching), "resultCount" in e21 && n10(16, l10 = e21.resultCount), "activeIndex" in e21 && n10(3, f10 = e21.activeIndex), "showReplace" in e21 && n10(0, h10 = e21.showReplace), "readOnly" in e21 && n10(4, p10 = e21.readOnly), "onChange" in e21 && n10(17, g10 = e21.onChange), "onPrevious" in e21 && n10(5, b10 = e21.onPrevious), "onNext" in e21 && n10(6, w10 = e21.onNext), "onReplace" in e21 && n10(18, j10 = e21.onReplace), "onReplaceAll" in e21 && n10(19, C10 = e21.onReplaceAll), "onClose" in e21 && n10(7, _10 = e21.onClose); + }, e20.$$.update = function() { + 65536 & e20.$$.dirty && n10(10, r10 = l10 >= cs ? "".concat(999, "+") : String(l10)), 131072 & e20.$$.dirty && n10(20, o10 = Vy(g10, 300)), 1048832 & e20.$$.dirty && o10(O10), 2 & e20.$$.dirty && a10 && "" !== O10 && g10(O10); + }, [h10, a10, s10, f10, p10, b10, w10, _10, O10, E10, r10, A10, function(e21) { + e21.preventDefault(), O10 !== M10 ? (M10 = O10, o10.cancel(), g10(O10)) : w10(); + }, function(e21) { + e21.stopPropagation(); + var t11 = PO(e21); + "Enter" === t11 && (e21.preventDefault(), w10()), "Shift+Enter" === t11 && (e21.preventDefault(), b10()), "Ctrl+Enter" === t11 && (e21.preventDefault(), h10 ? P10() : w10()), "Ctrl+H" === t11 && (e21.preventDefault(), A10()), "Escape" === t11 && (e21.preventDefault(), _10()); + }, P10, function() { + p10 || C10(O10, E10); + }, l10, g10, j10, C10, o10, function() { + O10 = this.value, n10(8, O10); + }, function() { + return w10(); + }, function() { + return b10(); + }, function() { + return _10(); + }, function() { + E10 = this.value, n10(9, E10); + }]; + } + var xB = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, wB, bB, Zo, { show: 1, searching: 2, resultCount: 16, activeIndex: 3, showReplace: 0, readOnly: 4, onChange: 17, onPrevious: 5, onNext: 6, onReplace: 18, onReplaceAll: 19, onClose: 7 }, hB), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + var jB = Number.isNaN || function(e20) { + return "number" == typeof e20 && e20 != e20; + }; + function SB(e20, t10) { + if (e20.length !== t10.length) + return false; + for (var n10 = 0; n10 < e20.length; n10++) + if (r10 = e20[n10], o10 = t10[n10], !(r10 === o10 || jB(r10) && jB(o10))) + return false; + var r10, o10; + return true; + } + function CB(e20, t10) { + void 0 === t10 && (t10 = SB); + var n10 = null; + function r10() { + for (var r11 = [], o10 = 0; o10 < arguments.length; o10++) + r11[o10] = arguments[o10]; + if (n10 && n10.lastThis === this && t10(r11, n10.lastArgs)) + return n10.lastResult; + var i10 = e20.apply(this, r11); + return n10 = { lastResult: i10, lastArgs: r11, lastThis: this }, i10; + } + return r10.clear = function() { + n10 = null; + }, r10; + } + var $B = Symbol("path"); + function _B(e20, t10) { + var n10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1 / 0, r10 = {}; + Array.isArray(e20) && function(e21, t11, n11) { + if (e21.length < t11) + e21.forEach(n11); + else + for (var r11 = t11 > 1 ? (e21.length - 1) / (t11 - 1) : e21.length, o11 = 0; o11 < t11; o11++) { + var i10 = Math.floor(o11 * r11); + n11(e21[i10], i10, e21); + } + }(e20, n10, function(e21) { + Gl(e21) ? OB(e21, r10, t10) : r10[$B] = true; + }); + var o10 = []; + return $B in r10 && o10.push([]), MB(r10, [], o10, t10), o10; + } + function OB(e20, t10, n10) { + for (var r10 in e20) { + var o10 = e20[r10], i10 = t10[r10] || (t10[r10] = {}); + Gl(o10) && n10 ? OB(o10, i10, n10) : void 0 === i10[$B] && (i10[$B] = true); + } + } + function MB(e20, t10, n10, r10) { + for (var o10 in e20) { + var i10 = t10.concat(o10), a10 = e20[o10]; + a10 && true === a10[$B] && n10.push(i10), Rs(a10) && r10 && MB(a10, i10, n10, r10); + } + } + function EB(e20, t10, n10, r10, o10) { + for (var i10 = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 80, a10 = Ts(n10) ? n10.length : 0, s10 = function(e21, t11) { + var n11 = Object.values(e21); + if (_w(n11)) + return t11; + var r11 = function(e23, t12) { + return e23 + t12; + }, o11 = n11.reduce(r11); + return o11 / n11.length; + }(r10, o10), c10 = e20 - i10, l10 = t10 + 2 * i10, u10 = function(e21) { + return r10[e21] || o10; + }, f10 = 0, d10 = 0; d10 < c10 && f10 < a10; ) + d10 += u10(f10), f10++; + f10 > 0 && (d10 -= u10(--f10)); + for (var h10 = f10, v10 = 0; v10 < l10 && h10 < a10; ) + v10 += u10(h10), h10++; + for (var p10 = 0, m10 = h10; m10 < a10; m10++) + p10 += u10(m10); + return { startIndex: f10, endIndex: h10, startHeight: d10, endHeight: p10, averageItemHeight: s10, visibleHeight: v10, visibleItems: Ts(n10) ? n10.slice(f10, h10) : [] }; + } + function AB(e20, t10, n10, r10) { + for (var o10 = PB(e20, t10).rowIndex, i10 = 0, a10 = 0; a10 < o10; a10++) + i10 += n10[a10] || r10; + return i10; + } + function PB(e20, t10) { + var n10, r10 = Co(n10 = e20) || Fo(n10) || Lo(n10) || So(), o10 = r10[0], i10 = r10.slice(1), a10 = parseInt(o10, 10); + return { rowIndex: isNaN(a10) ? -1 : a10, columnIndex: t10.findIndex(function(e21) { + return AE(i10, e21); + }) }; + } + function TB(e20, t10) { + var n10 = e20.rowIndex, r10 = e20.columnIndex; + return [String(n10)].concat(Bo(t10[r10])); + } + function RB(e20, t10) { + var n10 = jo(Lj(e20, function(e21) { + return Jl(e21.path[0]); + }), 2), r10 = n10[0], o10 = n10[1], i10 = dx(Ak(r10, IB), function(e21) { + var n11 = { row: [], columns: {} }; + return e21.forEach(function(e23) { + var r11 = function(e24, t11) { + var n12 = PB(e24.path, t11); + if (-1 !== n12.columnIndex) + return n12.columnIndex; + return -1; + }(e23, t10); + -1 !== r11 ? (void 0 === n11.columns[r11] && (n11.columns[r11] = []), n11.columns[r11].push(e23)) : n11.row.push(e23); + }), n11; + }); + return { root: o10, rows: i10 }; + } + function NB(e20, t10) { + if (t10 && 0 !== t10.length) + return 1 === t10.length ? t10[0] : { path: e20, message: "Multiple validation issues: " + t10.map(function(e21) { + return JO(e21.path) + " " + e21.message; + }).join(", "), severity: Za.warning }; + } + function IB(e20) { + return parseInt(e20.path[0], 10); + } + function DB(e20, t10, n10) { + return t10.some(function(t11) { + return function(e21, t12, n11) { + if (!e21) + return false; + if ("replace" === t12.op) { + var r10 = PB(Xs(t12.path), n11), o10 = r10.rowIndex, i10 = r10.columnIndex, a10 = n11.findIndex(function(t13) { + return Ow(t13, e21.path); + }); + if (-1 !== o10 && -1 !== i10 && i10 !== a10) + return false; + } + return true; + }(e20.sortedColumn, t11, n10); + }) ? Ro(Ro({}, e20), {}, { sortedColumn: null }) : e20; + } + var qB = Da("jsoneditor:actions"); + function zB(e20) { + return BB.apply(this, arguments); + } + function BB() { + return BB = xo(ko().mark(function e20(t10) { + var n10, r10, o10, i10, a10, s10, c10, l10, u10, f10; + return ko().wrap(function(e21) { + for (; ; ) + switch (e21.prev = e21.next) { + case 0: + if (n10 = t10.json, r10 = t10.documentState, o10 = t10.indentation, i10 = t10.readOnly, a10 = t10.parser, s10 = t10.onPatch, !i10 && void 0 !== n10 && r10.selection && BE(r10.selection)) { + e21.next = 3; + break; + } + return e21.abrupt("return"); + case 3: + if (null != (c10 = qE(n10, r10.selection, o10, a10))) { + e21.next = 6; + break; + } + return e21.abrupt("return"); + case 6: + return qB("cut", { selection: r10.selection, clipboard: c10, indentation: o10 }), e21.next = 9, Yz(c10); + case 9: + l10 = dA(n10, r10.selection), u10 = l10.operations, f10 = l10.newSelection, s10(u10, function(e23, t11) { + return { state: Ro(Ro({}, t11), {}, { selection: f10 }) }; + }); + case 11: + case "end": + return e21.stop(); + } + }, e20); + })), BB.apply(this, arguments); + } + function LB(e20) { + return FB.apply(this, arguments); + } + function FB() { + return FB = xo(ko().mark(function e20(t10) { + var n10, r10, o10, i10, a10; + return ko().wrap(function(e21) { + for (; ; ) + switch (e21.prev = e21.next) { + case 0: + if (n10 = t10.json, r10 = t10.documentState, o10 = t10.indentation, i10 = t10.parser, null != (a10 = qE(n10, r10.selection, o10, i10))) { + e21.next = 4; + break; + } + return e21.abrupt("return"); + case 4: + return qB("copy", { clipboard: a10, indentation: o10 }), e21.next = 7, Yz(a10); + case 7: + case "end": + return e21.stop(); + } + }, e20); + })), FB.apply(this, arguments); + } + function VB(e20) { + var t10 = e20.clipboardText, n10 = e20.json, r10 = e20.selection, o10 = e20.readOnly, i10 = e20.parser, a10 = e20.onPatch, s10 = e20.onChangeText, c10 = e20.openRepairModal; + if (!o10) + try { + l10(t10); + } catch (e21) { + c10(t10, function(e23) { + qB("repaired pasted text: ", e23), l10(e23); + }); + } + function l10(e21) { + if (void 0 !== n10) { + var o11 = r10 || RE([], false), c11 = cA(n10, o11, e21, i10); + qB("paste", { pastedText: e21, operations: c11, selectionNonNull: o11 }), a10(c11, function(e23, t11) { + var r11 = t11; + return c11.filter(function(e24) { + return (Ns(e24) || Ds(e24)) && Ql(e24.value); + }).forEach(function(t12) { + var o12 = dc(n10, t12.path); + r11 = lE(e23, r11, o12); + }), { state: r11 }; + }); + } else + qB("paste text", { pastedText: e21 }), s10(t10, function(e23, t11) { + if (e23) { + return { state: lE(e23, t11, []) }; + } + }); + } + } + function HB(e20) { + var t10 = e20.json, n10 = e20.text, r10 = e20.documentState, o10 = e20.keepSelection, i10 = e20.readOnly, a10 = e20.onChange, s10 = e20.onPatch; + if (!i10 && r10.selection) { + var c10 = void 0 !== t10 && (vE(r10.selection) || pE(r10.selection)) ? DE(r10.selection.path, r10.selection.path) : r10.selection; + if (_w(JE(r10.selection))) + qB("remove root", { selection: r10.selection }), a10 && a10({ text: "", json: void 0 }, void 0 !== t10 ? { text: void 0, json: t10 } : { text: n10 || "", json: t10 }, { contentErrors: null, patchResult: null }); + else if (void 0 !== t10) { + var l10 = dA(t10, c10), u10 = l10.operations, f10 = l10.newSelection; + qB("remove", { operations: u10, selection: r10.selection, newSelection: f10 }), s10(u10, function(e21, t11) { + return { state: Ro(Ro({}, t11), {}, { selection: o10 ? r10.selection : f10 }) }; + }); + } + } + } + function WB(e20) { + var t10 = e20.json, n10 = e20.documentState, r10 = e20.columns, o10 = e20.readOnly, i10 = e20.onPatch; + if (!o10 && void 0 !== t10 && n10.selection && BE(n10.selection)) { + var a10 = PB(JE(n10.selection), r10), s10 = a10.rowIndex, c10 = a10.columnIndex; + qB("duplicate row", { rowIndex: s10 }); + var l10 = [String(s10)]; + i10(sA(t10, [l10]), function(e21, n11) { + var o11 = RE(TB({ rowIndex: s10 < t10.length ? s10 + 1 : s10, columnIndex: c10 }, r10), false); + return { state: Ro(Ro({}, n11), {}, { selection: o11 }) }; + }); + } + } + function UB(e20) { + var t10 = e20.json, n10 = e20.documentState, r10 = e20.columns, o10 = e20.readOnly, i10 = e20.onPatch; + if (!o10 && void 0 !== t10 && n10.selection && BE(n10.selection)) { + var a10 = PB(JE(n10.selection), r10).rowIndex; + qB("insert before row", { rowIndex: a10 }), i10(oA(t10, [String(a10)], [{ key: "", value: Rs(t10[0]) ? {} : "" }])); + } + } + function JB(e20) { + var t10 = e20.json, n10 = e20.documentState, r10 = e20.columns, o10 = e20.readOnly, i10 = e20.onPatch; + if (!o10 && void 0 !== t10 && n10.selection && BE(n10.selection)) { + var a10 = PB(JE(n10.selection), r10), s10 = a10.rowIndex, c10 = a10.columnIndex; + qB("insert after row", { rowIndex: s10 }); + var l10 = s10 + 1, u10 = [String(l10)], f10 = [{ key: "", value: Rs(t10[0]) ? {} : "" }]; + i10(l10 < t10.length ? oA(t10, u10, f10) : iA(t10, [], f10), function(e21, t11) { + var n11 = RE(TB({ rowIndex: l10, columnIndex: c10 }, r10), false); + return { state: Ro(Ro({}, t11), {}, { selection: n11 }) }; + }); + } + } + function KB(e20) { + var t10 = e20.json, n10 = e20.documentState, r10 = e20.columns, o10 = e20.readOnly, i10 = e20.onPatch; + if (!o10 && void 0 !== t10 && n10.selection && BE(n10.selection)) { + var a10 = PB(JE(n10.selection), r10), s10 = a10.rowIndex, c10 = a10.columnIndex; + qB("remove row", { rowIndex: s10 }), i10(lA([[String(s10)]]), function(e21, t11) { + var n11 = s10 < e21.length ? s10 : s10 > 0 ? s10 - 1 : void 0, o11 = void 0 !== n11 ? RE(TB({ rowIndex: n11, columnIndex: c10 }, r10), false) : null; + return qB("remove row new selection", { rowIndex: s10, newRowIndex: n11, newSelection: o11 }), { state: Ro(Ro({}, t11), {}, { selection: o11 }) }; + }); + } + } + function GB(e20) { + var t10 = e20.insertType, n10 = e20.selectInside, r10 = e20.refJsonEditor, o10 = e20.json, i10 = e20.selection, a10 = e20.readOnly, s10 = e20.parser, c10 = e20.onPatch, l10 = e20.onReplaceJson; + if (!a10) { + var u10 = function(e21, t11, n11) { + if ("object" === n11) + return {}; + if ("array" === n11) + return []; + if ("structure" === n11 && void 0 !== e21) { + var r11 = Ws(e21, t11 ? wE(t11) : []); + if (Array.isArray(r11) && !_w(r11)) { + var o11 = ck(r11); + return Ql(o11) ? xg(o11, function(e23) { + return Array.isArray(e23) ? [] : Gl(e23) ? void 0 : ""; + }) : ""; + } + } + return ""; + }(o10, i10, t10); + if (void 0 !== o10) { + var f10 = s10.stringify(u10), d10 = cA(o10, i10, f10, s10); + qB("onInsert", { insertType: t10, operations: d10, newValue: u10, data: f10 }); + var h10 = vb(d10.filter(function(e21) { + return "add" === e21.op || "replace" === e21.op; + })); + c10(d10, function(e21, t11) { + if (h10) { + var r11 = dc(e21, h10.path); + if (Ql(u10)) + return { state: Ro(Ro({}, HM(e21, t11, r11, fE)), {}, { selection: n10 ? NE(r11) : t11.selection }) }; + if ("" === u10) { + var o11 = _w(r11) ? null : Ws(e21, Qk(r11)); + return { state: VM(e21, Ro(Ro({}, t11), {}, { selection: Gl(o11) ? TE(r11, true) : RE(r11, true) }), r11) }; + } + } else + ; + }), qB("after patch"), h10 && "" === u10 && eL(function() { + return jO(r10, "", true, tL); + }); + } else { + qB("onInsert", { insertType: t10, newValue: u10 }); + var v10 = []; + l10(u10, function(e21, t11) { + return { state: Ro(Ro({}, lE(e21, t11, v10)), {}, { selection: Ql(u10) ? NE(v10) : RE(v10, true) }) }; + }); + } + } + } + function QB(e20) { + return YB.apply(this, arguments); + } + function YB() { + return YB = xo(ko().mark(function e20(t10) { + var n10, r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10; + return ko().wrap(function(e21) { + for (; ; ) + switch (e21.prev = e21.next) { + case 0: + if (n10 = t10.char, r10 = t10.selectInside, o10 = t10.refJsonEditor, i10 = t10.json, a10 = t10.selection, s10 = t10.readOnly, c10 = t10.parser, l10 = t10.onPatch, u10 = t10.onReplaceJson, f10 = t10.onSelect, !s10) { + e21.next = 3; + break; + } + return e21.abrupt("return"); + case 3: + if (!vE(a10)) { + e21.next = 8; + break; + } + return d10 = !a10.edit, f10(Ro(Ro({}, a10), {}, { edit: true })), eL(function() { + return jO(o10, n10, d10, tL); + }), e21.abrupt("return"); + case 8: + if ("{" !== n10) { + e21.next = 12; + break; + } + GB({ insertType: "object", selectInside: r10, refJsonEditor: o10, json: i10, selection: a10, readOnly: s10, parser: c10, onPatch: l10, onReplaceJson: u10 }), e21.next = 23; + break; + case 12: + if ("[" !== n10) { + e21.next = 16; + break; + } + GB({ insertType: "array", selectInside: r10, refJsonEditor: o10, json: i10, selection: a10, readOnly: s10, parser: c10, onPatch: l10, onReplaceJson: u10 }), e21.next = 23; + break; + case 16: + if (!pE(a10) || void 0 === i10) { + e21.next = 20; + break; + } + Ql(Ws(i10, a10.path)) || (h10 = !a10.edit, f10(Ro(Ro({}, a10), {}, { edit: true })), eL(function() { + return jO(o10, n10, h10, tL); + })), e21.next = 23; + break; + case 20: + return qB("onInsertValueWithCharacter", { char: n10 }), e21.next = 23, XB({ char: n10, refJsonEditor: o10, json: i10, selection: a10, readOnly: s10, parser: c10, onPatch: l10, onReplaceJson: u10 }); + case 23: + case "end": + return e21.stop(); + } + }, e20); + })), YB.apply(this, arguments); + } + function XB(e20) { + return ZB.apply(this, arguments); + } + function ZB() { + return ZB = xo(ko().mark(function e20(t10) { + var n10, r10, o10, i10, a10, s10, c10, l10, u10; + return ko().wrap(function(e21) { + for (; ; ) + switch (e21.prev = e21.next) { + case 0: + if (n10 = t10.char, r10 = t10.refJsonEditor, o10 = t10.json, i10 = t10.selection, a10 = t10.readOnly, s10 = t10.parser, c10 = t10.onPatch, l10 = t10.onReplaceJson, !a10) { + e21.next = 3; + break; + } + return e21.abrupt("return"); + case 3: + GB({ insertType: "value", selectInside: false, refJsonEditor: r10, json: o10, selection: i10, readOnly: a10, parser: s10, onPatch: c10, onReplaceJson: l10 }), u10 = !zE(i10), eL(function() { + return jO(r10, n10, u10, tL); + }); + case 6: + case "end": + return e21.stop(); + } + }, e20); + })), ZB.apply(this, arguments); + } + function eL(e20) { + setTimeout(function() { + return setTimeout(e20); + }); + } + function tL(e20) { + null == e20 || e20.refresh(); + } + function nL(e20) { + mi(e20, "svelte-l2z0i3", '.jse-json-preview.svelte-l2z0i3{flex:1;font-family:var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace);font-size:var(--jse-font-size-mono, 14px);color:var(--jse-panel-color-readonly, #b2b2b2);overflow:auto;white-space:pre-wrap;padding:2px;border-left:var(--jse-main-border, 1px solid #d7d7d7);border-right:var(--jse-main-border, 1px solid #d7d7d7);border-bottom:var(--jse-main-border, 1px solid #d7d7d7)}'); + } + function rL(e20) { + var t10, n10; + return { c: function() { + t10 = ji("div"), n10 = Ci(e20[0]), Ai(t10, "class", "jse-json-preview svelte-l2z0i3"); + }, m: function(e21, r10) { + ki(e21, t10, r10), pi(t10, n10); + }, p: function(e21, t11) { + 1 & jo(t11, 1)[0] && Ni(n10, e21[0]); + }, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function oL(e20, t10, n10) { + var r10, o10, i10 = t10.text, a10 = t10.json, s10 = t10.indentation, c10 = t10.parser; + return e20.$$set = function(e21) { + "text" in e21 && n10(1, i10 = e21.text), "json" in e21 && n10(2, a10 = e21.json), "indentation" in e21 && n10(3, s10 = e21.indentation), "parser" in e21 && n10(4, c10 = e21.parser); + }, e20.$$.update = function() { + 6 & e20.$$.dirty && n10(5, r10 = void 0 !== a10 ? { json: a10 } : { text: i10 || "" }), 56 & e20.$$.dirty && n10(0, o10 = tM(Y_(r10, s10, c10), fs)); + }, [o10, i10, a10, s10, c10, r10]; + } + var iL = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, oL, rL, Xo, { text: 1, json: 2, indentation: 3, parser: 4 }, nL), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + var aL = vi.window; + function sL(e20) { + mi(e20, "svelte-vx4hzc", '.jse-tree-mode.svelte-vx4hzc.svelte-vx4hzc{flex:1;display:flex;flex-direction:column;position:relative;background:var(--jse-background-color, #fff);min-width:0;min-height:0;font-family:var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace);font-size:var(--jse-font-size-mono, 14px);color:var(--jse-text-color, #4d4d4d);line-height:var(--jse-line-height, calc(1em + 4px))}.jse-tree-mode.svelte-vx4hzc .jse-hidden-input-label .jse-hidden-input.svelte-vx4hzc{position:fixed;top:-10px;left:-10px;width:1px;height:1px;padding:0;border:0;outline:none}.jse-tree-mode.svelte-vx4hzc .jse-search-box-container.svelte-vx4hzc{position:relative;height:0;top:var(--jse-padding, 10px);margin-right:calc(var(--jse-padding, 10px) + 20px);margin-left:var(--jse-padding, 10px);text-align:right;z-index:3}.jse-tree-mode.no-main-menu.svelte-vx4hzc.svelte-vx4hzc{border-top:var(--jse-main-border, 1px solid #d7d7d7)}.jse-tree-mode.svelte-vx4hzc .jse-contents.svelte-vx4hzc{border-left:var(--jse-main-border, 1px solid #d7d7d7);border-right:var(--jse-main-border, 1px solid #d7d7d7);flex:1;overflow:auto;position:relative;padding:2px;display:flex;flex-direction:column}.jse-tree-mode.svelte-vx4hzc .jse-contents.svelte-vx4hzc:last-child{border-bottom:var(--jse-main-border, 1px solid #d7d7d7)}.jse-tree-mode.svelte-vx4hzc .jse-contents .jse-loading-space.svelte-vx4hzc{flex:1}.jse-tree-mode.svelte-vx4hzc .jse-contents .jse-loading.svelte-vx4hzc{flex:2;text-align:center;color:var(--jse-panel-color-readonly, #b2b2b2);box-sizing:border-box;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px)}'); + } + function cL(e20) { + var t10, n10, r10; + function o10(t11) { + e20[79](t11); + } + var i10 = { json: e20[11], selection: e20[12].selection, readOnly: e20[0], historyState: e20[23], onExpandAll: e20[41], onCollapseAll: e20[42], onUndo: e20[37], onRedo: e20[38], onSort: e20[39], onTransform: e20[40], onContextMenu: e20[46], onCopy: e20[34], onRenderMenu: e20[7] }; + return void 0 !== e20[20] && (i10.showSearch = e20[20]), t10 = new $z({ props: i10 }), na.push(function() { + return Aa(t10, "showSearch", o10); + }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, n11) { + Ta(t10, e21, n11), r10 = true; + }, p: function(e21, r11) { + var o11 = {}; + 2048 & r11[0] && (o11.json = e21[11]), 4096 & r11[0] && (o11.selection = e21[12].selection), 1 & r11[0] && (o11.readOnly = e21[0]), 8388608 & r11[0] && (o11.historyState = e21[23]), 128 & r11[0] && (o11.onRenderMenu = e21[7]), !n10 && 1048576 & r11[0] && (n10 = true, o11.showSearch = e21[20], ua(function() { + return n10 = false; + })), t10.$set(o11); + }, i: function(e21) { + r10 || (wa(t10.$$.fragment, e21), r10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), r10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function lL(e20) { + var t10, n10; + return t10 = new dB({ props: { json: e20[11], selection: e20[12].selection, onSelect: e20[50], onError: e20[6], pathParser: e20[4] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 2048 & n11[0] && (r10.json = e21[11]), 4096 & n11[0] && (r10.selection = e21[12].selection), 64 & n11[0] && (r10.onError = e21[6]), 16 & n11[0] && (r10.pathParser = e21[4]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function uL(e20) { + var t10; + return { c: function() { + (t10 = ji("div")).innerHTML = '
loading...
', Ai(t10, "class", "jse-contents svelte-vx4hzc"); + }, m: function(e21, n10) { + ki(e21, t10, n10); + }, p: Wo, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function fL(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10 = [hL, dL], f10 = []; + function d10(e21, t11) { + return void 0 === e21[11] ? 0 : 1; + } + return o10 = d10(e20), i10 = f10[o10] = u10[o10](e20), { c: function() { + t10 = ji("label"), n10 = ji("input"), r10 = $i(), i10.c(), a10 = _i(), Ai(n10, "type", "text"), n10.readOnly = true, Ai(n10, "tabindex", "-1"), Ai(n10, "class", "jse-hidden-input svelte-vx4hzc"), Ai(t10, "class", "jse-hidden-input-label"); + }, m: function(i11, u11) { + ki(i11, t10, u11), pi(t10, n10), e20[80](n10), ki(i11, r10, u11), f10[o10].m(i11, u11), ki(i11, a10, u11), s10 = true, c10 || (l10 = Oi(n10, "paste", e20[35]), c10 = true); + }, p: function(e21, t11) { + var n11 = o10; + (o10 = d10(e21)) === n11 ? f10[o10].p(e21, t11) : (ba(), xa(f10[n11], 1, 1, function() { + f10[n11] = null; + }), ka(), (i10 = f10[o10]) ? i10.p(e21, t11) : (i10 = f10[o10] = u10[o10](e21)).c(), wa(i10, 1), i10.m(a10.parentNode, a10)); + }, i: function(e21) { + s10 || (wa(i10), s10 = true); + }, o: function(e21) { + xa(i10), s10 = false; + }, d: function(n11) { + n11 && (wi(t10), wi(r10), wi(a10)), e20[80](null), f10[o10].d(n11), c10 = false, l10(); + } }; + } + function dL(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10; + i10 = new xB({ props: { show: e20[20], resultCount: (null === (t10 = e20[18]) || void 0 === t10 || null === (t10 = t10.items) || void 0 === t10 ? void 0 : t10.length) || 0, activeIndex: (null === (n10 = e20[18]) || void 0 === n10 ? void 0 : n10.activeIndex) || 0, showReplace: e20[21], searching: e20[22], readOnly: e20[0], onChange: e20[27], onNext: e20[28], onPrevious: e20[29], onReplace: e20[30], onReplaceAll: e20[31], onClose: e20[32] } }), c10 = new bz({ props: { value: e20[11], path: [], expandedMap: e20[12].expandedMap, enforceStringMap: e20[12].enforceStringMap, visibleSectionsMap: e20[12].visibleSectionsMap, validationErrorsMap: e20[25], searchResultItemsMap: null === (r10 = e20[18]) || void 0 === r10 ? void 0 : r10.itemsMap, selection: e20[12].selection, context: e20[14], onDragSelectionStart: Mf } }); + var v10 = e20[19] && vL(e20), p10 = e20[24] && pL(e20); + return d10 = new JN({ props: { validationErrors: e20[13], selectError: e20[33] } }), { c: function() { + o10 = ji("div"), Pa(i10.$$.fragment), a10 = $i(), s10 = ji("div"), Pa(c10.$$.fragment), l10 = $i(), v10 && v10.c(), u10 = $i(), p10 && p10.c(), f10 = $i(), Pa(d10.$$.fragment), Ai(o10, "class", "jse-search-box-container svelte-vx4hzc"), Ai(s10, "class", "jse-contents svelte-vx4hzc"), Ai(s10, "data-jsoneditor-scrollable-contents", true); + }, m: function(t11, n11) { + ki(t11, o10, n11), Ta(i10, o10, null), ki(t11, a10, n11), ki(t11, s10, n11), Ta(c10, s10, null), e20[84](s10), ki(t11, l10, n11), v10 && v10.m(t11, n11), ki(t11, u10, n11), p10 && p10.m(t11, n11), ki(t11, f10, n11), Ta(d10, t11, n11), h10 = true; + }, p: function(e21, t11) { + var n11, r11, o11, a11 = {}; + 1048576 & t11[0] && (a11.show = e21[20]), 262144 & t11[0] && (a11.resultCount = (null === (n11 = e21[18]) || void 0 === n11 || null === (n11 = n11.items) || void 0 === n11 ? void 0 : n11.length) || 0), 262144 & t11[0] && (a11.activeIndex = (null === (r11 = e21[18]) || void 0 === r11 ? void 0 : r11.activeIndex) || 0), 2097152 & t11[0] && (a11.showReplace = e21[21]), 4194304 & t11[0] && (a11.searching = e21[22]), 1 & t11[0] && (a11.readOnly = e21[0]), i10.$set(a11); + var s11 = {}; + 2048 & t11[0] && (s11.value = e21[11]), 4096 & t11[0] && (s11.expandedMap = e21[12].expandedMap), 4096 & t11[0] && (s11.enforceStringMap = e21[12].enforceStringMap), 4096 & t11[0] && (s11.visibleSectionsMap = e21[12].visibleSectionsMap), 33554432 & t11[0] && (s11.validationErrorsMap = e21[25]), 262144 & t11[0] && (s11.searchResultItemsMap = null === (o11 = e21[18]) || void 0 === o11 ? void 0 : o11.itemsMap), 4096 & t11[0] && (s11.selection = e21[12].selection), 16384 & t11[0] && (s11.context = e21[14]), c10.$set(s11), e21[19] ? v10 ? (v10.p(e21, t11), 524288 & t11[0] && wa(v10, 1)) : ((v10 = vL(e21)).c(), wa(v10, 1), v10.m(u10.parentNode, u10)) : v10 && (ba(), xa(v10, 1, 1, function() { + v10 = null; + }), ka()), e21[24] ? p10 ? (p10.p(e21, t11), 16777216 & t11[0] && wa(p10, 1)) : ((p10 = pL(e21)).c(), wa(p10, 1), p10.m(f10.parentNode, f10)) : p10 && (ba(), xa(p10, 1, 1, function() { + p10 = null; + }), ka()); + var l11 = {}; + 8192 & t11[0] && (l11.validationErrors = e21[13]), d10.$set(l11); + }, i: function(e21) { + h10 || (wa(i10.$$.fragment, e21), wa(c10.$$.fragment, e21), wa(v10), wa(p10), wa(d10.$$.fragment, e21), h10 = true); + }, o: function(e21) { + xa(i10.$$.fragment, e21), xa(c10.$$.fragment, e21), xa(v10), xa(p10), xa(d10.$$.fragment, e21), h10 = false; + }, d: function(t11) { + t11 && (wi(o10), wi(a10), wi(s10), wi(l10), wi(u10), wi(f10)), Ra(i10), Ra(c10), e20[84](null), v10 && v10.d(t11), p10 && p10.d(t11), Ra(d10, t11); + } }; + } + function hL(e20) { + var t10, n10, r10, o10, i10 = [gL, mL], a10 = []; + function s10(e21, t11) { + return "" === e21[17] || void 0 === e21[17] ? 0 : 1; + } + return t10 = s10(e20), n10 = a10[t10] = i10[t10](e20), { c: function() { + n10.c(), r10 = _i(); + }, m: function(e21, n11) { + a10[t10].m(e21, n11), ki(e21, r10, n11), o10 = true; + }, p: function(e21, o11) { + var c10 = t10; + (t10 = s10(e21)) === c10 ? a10[t10].p(e21, o11) : (ba(), xa(a10[c10], 1, 1, function() { + a10[c10] = null; + }), ka(), (n10 = a10[t10]) ? n10.p(e21, o11) : (n10 = a10[t10] = i10[t10](e21)).c(), wa(n10, 1), n10.m(r10.parentNode, r10)); + }, i: function(e21) { + o10 || (wa(n10), o10 = true); + }, o: function(e21) { + xa(n10), o10 = false; + }, d: function(e21) { + e21 && wi(r10), a10[t10].d(e21); + } }; + } + function vL(e20) { + var t10, n10; + return t10 = new IN({ props: { type: "info", message: "You pasted a JSON ".concat(Array.isArray(e20[19].contents) ? "array" : "object", " as text"), actions: [{ icon: uP, text: "Paste as JSON instead", title: "Replace the value with the pasted JSON", onMouseDown: e20[47] }, { text: "Leave as is", title: "Keep the JSON embedded in the value", onClick: e20[48] }] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 524288 & n11[0] && (r10.message = "You pasted a JSON ".concat(Array.isArray(e21[19].contents) ? "array" : "object", " as text")), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function pL(e20) { + var t10, n10; + return t10 = new IN({ props: { type: "success", message: "The loaded JSON document was invalid but is successfully repaired.", actions: e20[0] ? [] : [{ icon: PP, text: "Ok", title: "Accept the repaired document", onClick: e20[8] }, { icon: lP, text: "Repair manually instead", title: "Leave the document unchanged and repair it manually instead", onClick: e20[49] }], onClose: e20[9] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 1 & n11[0] && (r10.actions = e21[0] ? [] : [{ icon: PP, text: "Ok", title: "Accept the repaired document", onClick: e21[8] }, { icon: lP, text: "Repair manually instead", title: "Leave the document unchanged and repair it manually instead", onClick: e21[49] }]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function mL(e20) { + var t10, n10, r10, o10; + return t10 = new IN({ props: { type: "error", message: "The loaded JSON document is invalid and could not be repaired automatically.", actions: e20[0] ? [] : [{ icon: lP, text: "Repair manually", title: 'Open the document in "code" mode and repair it manually', onClick: e20[49] }] } }), r10 = new iL({ props: { text: e20[17], json: e20[11], indentation: e20[5], parser: e20[3] } }), { c: function() { + Pa(t10.$$.fragment), n10 = $i(), Pa(r10.$$.fragment); + }, m: function(e21, i10) { + Ta(t10, e21, i10), ki(e21, n10, i10), Ta(r10, e21, i10), o10 = true; + }, p: function(e21, n11) { + var o11 = {}; + 1 & n11[0] && (o11.actions = e21[0] ? [] : [{ icon: lP, text: "Repair manually", title: 'Open the document in "code" mode and repair it manually', onClick: e21[49] }]), t10.$set(o11); + var i10 = {}; + 131072 & n11[0] && (i10.text = e21[17]), 2048 & n11[0] && (i10.json = e21[11]), 32 & n11[0] && (i10.indentation = e21[5]), 8 & n11[0] && (i10.parser = e21[3]), r10.$set(i10); + }, i: function(e21) { + o10 || (wa(t10.$$.fragment, e21), wa(r10.$$.fragment, e21), o10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), xa(r10.$$.fragment, e21), o10 = false; + }, d: function(e21) { + e21 && wi(n10), Ra(t10, e21), Ra(r10, e21); + } }; + } + function gL(e20) { + var t10, n10; + return t10 = new Az({ props: { readOnly: e20[0], onCreateObject: e20[81], onCreateArray: e20[82], onClick: e20[83] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 1 & n11[0] && (r10.readOnly = e21[0]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function yL(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10 = e20[1] && cL(e20), u10 = e20[2] && lL(e20), f10 = [fL, uL], d10 = []; + return o10 = function(e21, t11) { + return e21[26] ? 1 : 0; + }(e20), i10 = d10[o10] = f10[o10](e20), { c: function() { + t10 = ji("div"), l10 && l10.c(), n10 = $i(), u10 && u10.c(), r10 = $i(), i10.c(), Ai(t10, "role", "tree"), Ai(t10, "tabindex", "-1"), Ai(t10, "class", "jse-tree-mode svelte-vx4hzc"), zi(t10, "no-main-menu", !e20[1]); + }, m: function(i11, f11) { + ki(i11, t10, f11), l10 && l10.m(t10, null), pi(t10, n10), u10 && u10.m(t10, null), pi(t10, r10), d10[o10].m(t10, null), e20[85](t10), a10 = true, s10 || (c10 = [Oi(aL, "mousedown", e20[51]), Oi(t10, "keydown", e20[43]), Oi(t10, "mousedown", e20[44]), Oi(t10, "contextmenu", e20[45])], s10 = true); + }, p: function(e21, o11) { + e21[1] ? l10 ? (l10.p(e21, o11), 2 & o11[0] && wa(l10, 1)) : ((l10 = cL(e21)).c(), wa(l10, 1), l10.m(t10, n10)) : l10 && (ba(), xa(l10, 1, 1, function() { + l10 = null; + }), ka()), e21[2] ? u10 ? (u10.p(e21, o11), 4 & o11[0] && wa(u10, 1)) : ((u10 = lL(e21)).c(), wa(u10, 1), u10.m(t10, r10)) : u10 && (ba(), xa(u10, 1, 1, function() { + u10 = null; + }), ka()), i10.p(e21, o11), (!a10 || 2 & o11[0]) && zi(t10, "no-main-menu", !e21[1]); + }, i: function(e21) { + a10 || (wa(l10), wa(u10), wa(i10), a10 = true); + }, o: function(e21) { + xa(l10), xa(u10), xa(i10), a10 = false; + }, d: function(n11) { + n11 && wi(t10), l10 && l10.d(), u10 && u10.d(), d10[o10].d(), e20[85](null), s10 = false, Qo(c10); + } }; + } + function bL(e20, t10, n10) { + var r10, o10 = Da("jsoneditor:TreeMode"), i10 = "undefined" == typeof window; + o10("isSSR:", i10); + var a10, s10, c10, l10, u10, f10 = Zi("simple-modal").open, d10 = A$(), h10 = A$(), v10 = Zi("absolute-popup"), p10 = v10.openAbsolutePopup, m10 = v10.closeAbsolutePopup, g10 = false, y10 = bN(), b10 = t10.readOnly, k10 = t10.externalContent, w10 = t10.externalSelection, x10 = t10.mainMenuBar, j10 = t10.navigationBar, S10 = t10.escapeControlCharacters, C10 = t10.escapeUnicodeCharacters, $10 = t10.parser, _10 = t10.parseMemoizeOne, O10 = t10.validator, M10 = t10.validationParser, E10 = t10.pathParser, A10 = t10.indentation, P10 = t10.onError, T8 = t10.onChange, R8 = t10.onChangeMode, N8 = t10.onSelect, I10 = t10.onRenderValue, D10 = t10.onRenderMenu, q10 = t10.onRenderContextMenu, z10 = t10.onClassName, B10 = t10.onFocus, L10 = t10.onBlur, F10 = t10.onSortModal, V10 = t10.onTransformModal, H10 = t10.onJSONEditorModal, W10 = false; + ON({ onMount: Gi, onDestroy: Qi, getWindow: function() { + return SO(c10); + }, hasFocus: function() { + return W10 && document.hasFocus() || CO(c10); + }, onFocus: function() { + g10 = true, B10 && B10(); + }, onBlur: function() { + g10 = false, L10 && L10(); + } }); + var U10 = void 0; + function J10(e21) { + o10("updateSelection", e21); + var t11 = "function" == typeof e21 ? e21(X10.selection) || null : e21; + Ow(t11, X10.selection) || (n10(12, X10 = Ro(Ro({}, X10), {}, { selection: t11 })), N8(t11)); + } + var K10, G10, Q10, Y10 = false, X10 = BM(), Z10 = false, ee2 = false, te2 = false, ne2 = ""; + function re2(e21) { + return oe2.apply(this, arguments); + } + function oe2() { + return oe2 = xo(ko().mark(function e21(t11) { + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + return o10("search text updated", t11), n10(78, ne2 = t11), e23.next = 4, ca(); + case 4: + return e23.next = 6, le2(); + case 6: + case "end": + return e23.stop(); + } + }, e21); + })), oe2.apply(this, arguments); + } + function ie2() { + return (ie2 = xo(ko().mark(function e21() { + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + return n10(18, K10 = K10 ? pA(K10) : void 0), e23.next = 3, le2(); + case 3: + case "end": + return e23.stop(); + } + }, e21); + }))).apply(this, arguments); + } + function ae2() { + return (ae2 = xo(ko().mark(function e21() { + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + return n10(18, K10 = K10 ? mA(K10) : void 0), e23.next = 3, le2(); + case 3: + case "end": + return e23.stop(); + } + }, e21); + }))).apply(this, arguments); + } + function se2() { + return (se2 = xo(ko().mark(function e21(t11, n11) { + var r11, i11, a11, s11, c11; + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + if (i11 = null === (r11 = K10) || void 0 === r11 ? void 0 : r11.activeItem, o10("handleReplace", { replacementText: n11, activeItem: i11 }), i11 && void 0 !== l10) { + e23.next = 4; + break; + } + return e23.abrupt("return"); + case 4: + return a11 = wA(l10, X10, n11, i11, $10), s11 = a11.operations, c11 = a11.newSelection, ot2(s11, function(e24, t12) { + return { state: Ro(Ro({}, t12), {}, { selection: c11 }) }; + }), e23.next = 8, ca(); + case 8: + return e23.next = 10, le2(); + case 10: + case "end": + return e23.stop(); + } + }, e21); + }))).apply(this, arguments); + } + function ce2() { + return ce2 = xo(ko().mark(function e21(t11, n11) { + var r11, i11, a11; + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + return o10("handleReplaceAll", { text: t11, replacementText: n11 }), r11 = xA(l10, X10, t11, n11, $10), i11 = r11.operations, a11 = r11.newSelection, ot2(i11, function(e24, t12) { + return { state: Ro(Ro({}, t12), {}, { selection: a11 }) }; + }), e23.next = 5, ca(); + case 5: + return e23.next = 7, le2(); + case 7: + case "end": + return e23.stop(); + } + }, e21); + })), ce2.apply(this, arguments); + } + function le2() { + return ue2.apply(this, arguments); + } + function ue2() { + return (ue2 = xo(ko().mark(function e21() { + var t11, r11, i11; + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + if (r11 = null === (t11 = K10) || void 0 === t11 ? void 0 : t11.activeItem, o10("focusActiveSearchResult", K10), !r11 || void 0 === l10) { + e23.next = 9; + break; + } + return i11 = r11.path, n10(12, X10 = Ro(Ro({}, VM(l10, X10, i11)), {}, { selection: null })), e23.next = 7, ca(); + case 7: + return e23.next = 9, Ze2(i11); + case 9: + case "end": + return e23.stop(); + } + }, e21); + }))).apply(this, arguments); + } + var fe2 = xN({ onChange: function(e21) { + n10(23, de2 = e21); + } }), de2 = fe2.getState(); + var he2, ve2, pe2 = UC(function(e21, t11) { + if ("" === e21) + return o10("clearing search result"), void (void 0 !== K10 && n10(18, K10 = void 0)); + n10(22, te2 = true), setTimeout(function() { + o10("searching...", e21); + var r11 = gA(e21, t11, cs); + n10(18, K10 = function(e23, t12, n11) { + var r12 = null != n11 && n11.activeItem ? jA(n11.activeItem) : void 0, o11 = t12.findIndex(function(e24) { + return Ow(r12, jA(e24)); + }), i11 = -1 !== o11 ? o11 : void 0 !== (null == n11 ? void 0 : n11.activeIndex) && (null == n11 ? void 0 : n11.activeIndex) < t12.length ? null == n11 ? void 0 : n11.activeIndex : t12.length > 0 ? 0 : -1, a11 = t12.map(function(e24, t13) { + return Ro(Ro({}, e24), {}, { active: t13 === i11 }); + }), s11 = a11[i11]; + return { items: a11, itemsMap: Ak(a11, function(e24) { + return Zs(e24.path); + }), activeItem: s11, activeIndex: i11 }; + }(0, r11, K10)), n10(22, te2 = false); + }); + }, 300), me2 = false, ge2 = [], ye2 = CB(CN); + function be2(e21, t11, r11, i11) { + jN(function() { + var a11; + try { + a11 = ye2(e21, t11, r11, i11); + } catch (e23) { + a11 = [{ path: [], message: "Failed to validate: " + e23.message, severity: Za.warning }]; + } + Ow(a11, ge2) || (o10("validationErrors changed:", a11), n10(13, ge2 = a11)); + }, function(e23) { + return o10("validationErrors updated in ".concat(e23, " ms")); + }); + } + function ke2() { + return o10("validate"), U10 ? { parseError: U10, isRepairable: false } : (be2(l10, O10, $10, M10), _w(ge2) ? null : { validationErrors: ge2 }); + } + function we2() { + return l10; + } + function xe2() { + return X10; + } + function je2(e21) { + K_(e21) ? function(e23) { + if (void 0 === e23) + return; + var t11 = !Ow(l10, e23); + if (o10("update external json", { isChanged: t11, currentlyText: void 0 === l10 }), !t11) + return; + var r11 = { json: l10, text: u10 }, i11 = X10, a11 = l10, s11 = u10, c11 = me2; + n10(11, l10 = e23), Se2(l10), n10(17, u10 = void 0), n10(24, me2 = false), U10 = void 0, Ce2(l10), $e2({ previousJson: a11, previousState: i11, previousText: s11, previousTextIsRepaired: c11 }), rt2(r11, null); + }(e21.json) : J_(e21) && function(e23) { + if (void 0 === e23 || K_(k10)) + return; + var t11 = e23 !== u10; + if (o10("update external text", { isChanged: t11 }), !t11) + return; + var r11 = { json: l10, text: u10 }, i11 = l10, a11 = X10, s11 = u10, c11 = me2; + try { + n10(11, l10 = _10(e23)), Se2(l10), n10(17, u10 = e23), n10(24, me2 = false), U10 = void 0; + } catch (t12) { + try { + n10(11, l10 = _10(Hl(e23))), Se2(l10), n10(17, u10 = e23), n10(24, me2 = true), U10 = void 0, Ce2(l10); + } catch (e24) { + n10(11, l10 = void 0), n10(17, u10 = k10.text), n10(24, me2 = false), U10 = void 0 !== u10 && "" !== u10 ? H_(u10, t12.message || String(t12)) : void 0; + } + } + Ce2(l10), $e2({ previousJson: i11, previousState: a11, previousText: s11, previousTextIsRepaired: c11 }), rt2(r11, null); + }(e21.text); + } + function Se2(e21) { + Y10 || (Y10 = true, n10(12, X10 = HM(e21, X10, [], function(e23) { + return X_({ json: e23 }, ms) ? uE : fE; + }(e21)))); + } + function Ce2(e21) { + X10.selection && (Ys(e21, KE(X10.selection)) && Ys(e21, JE(X10.selection)) || (o10("clearing selection: path does not exist anymore", X10.selection), n10(12, X10 = Ro(Ro({}, X10), {}, { selection: $E(e21, X10) })))); + } + function $e2(e21) { + var t11 = e21.previousJson, n11 = e21.previousState, r11 = e21.previousText, o11 = e21.previousTextIsRepaired; + void 0 === t11 && void 0 === r11 || (void 0 !== l10 ? void 0 !== t11 ? fe2.add({ undo: { patch: [{ op: "replace", path: "", value: t11 }], state: PE(n11), json: void 0, text: r11, textIsRepaired: o11 }, redo: { patch: [{ op: "replace", path: "", value: l10 }], state: PE(X10), json: void 0, text: u10, textIsRepaired: me2 } }) : fe2.add({ undo: { patch: void 0, json: void 0, text: r11, state: PE(n11), textIsRepaired: o11 }, redo: { patch: void 0, json: l10, state: PE(X10), text: u10, textIsRepaired: me2 } }) : void 0 !== t11 && fe2.add({ undo: { patch: void 0, json: t11, state: PE(n11), text: r11, textIsRepaired: o11 }, redo: { patch: void 0, json: void 0, text: u10, textIsRepaired: me2, state: PE(X10) } })); + } + function _e2(e21, t11) { + if (o10("patch", e21, t11), void 0 === l10) + throw new Error("Cannot apply patch: no JSON"); + var r11 = { json: l10, text: u10 }, i11 = l10, a11 = X10, s11 = u10, c11 = me2, f11 = hA(l10, e21), d11 = JM(l10, X10, e21), h11 = _E(l10, e21), v11 = function(e23, t12) { + return t12 || !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2] ? Ro(Ro({}, e23), {}, { selection: t12 }) : e23; + }(d11.documentState, h11, false); + o10("patch updatedSelection", h11); + var p11 = "function" == typeof t11 ? t11(d11.json, v11) : void 0; + n10(11, l10 = p11 && void 0 !== p11.json ? p11.json : d11.json); + var m11 = p11 && void 0 !== p11.state ? p11.state : v11; + n10(12, X10 = m11), n10(17, u10 = void 0), n10(24, me2 = false), n10(19, Q10 = void 0), U10 = void 0, Ce2(l10), fe2.add({ undo: { patch: f11, json: void 0, text: s11, state: PE(a11), textIsRepaired: c11 }, redo: { patch: e21, json: void 0, state: PE(m11), text: u10, textIsRepaired: me2 } }); + var g11 = { json: l10, previousJson: i11, undo: f11, redo: e21 }; + return rt2(r11, g11), g11; + } + function Oe2() { + !b10 && X10.selection && J10(TE(JE(X10.selection), true)); + } + function Me2() { + if (!b10 && X10.selection) { + var e21 = JE(X10.selection), t11 = Ws(l10, e21); + Ql(t11) ? function(e23, t12) { + o10("openJSONEditorModal", { path: e23, value: t12 }), W10 = true, H10({ content: { json: t12 }, path: e23, onPatch: ve2.onPatch, onClose: function() { + W10 = false, vt2(); + } }); + }(e21, t11) : J10(RE(e21, true)); + } + } + function Ee2() { + if (!b10 && pE(X10.selection)) { + var e21 = JE(X10.selection), t11 = Zs(e21), n11 = Ws(l10, e21), r11 = !oE(n11, X10.enforceStringMap, t11, $10), i11 = r11 ? String(n11) : ru(String(n11), $10); + o10("handleToggleEnforceString", { enforceString: r11, value: n11, updatedValue: i11 }), ot2([{ op: "replace", path: t11, value: i11 }], function(e23, n12) { + return { state: UM(n12, t11, r11) }; + }); + } + } + function Ae2() { + return Pe2.apply(this, arguments); + } + function Pe2() { + return Pe2 = xo(ko().mark(function e21() { + var t11, n11 = arguments; + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + return t11 = !(n11.length > 0 && void 0 !== n11[0]) || n11[0], e23.next = 3, zB({ json: l10, documentState: X10, indentation: t11 ? A10 : void 0, readOnly: b10, parser: $10, onPatch: ot2 }); + case 3: + case "end": + return e23.stop(); + } + }, e21); + })), Pe2.apply(this, arguments); + } + function Te2() { + return Re2.apply(this, arguments); + } + function Re2() { + return Re2 = xo(ko().mark(function e21() { + var t11, n11 = arguments; + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + if (t11 = !(n11.length > 0 && void 0 !== n11[0]) || n11[0], void 0 !== l10) { + e23.next = 3; + break; + } + return e23.abrupt("return"); + case 3: + return e23.next = 5, LB({ json: l10, documentState: X10, indentation: t11 ? A10 : void 0, parser: $10 }); + case 5: + case "end": + return e23.stop(); + } + }, e21); + })), Re2.apply(this, arguments); + } + function Ne2() { + f10(nI, {}, Ro(Ro({}, gs), {}, { styleWindow: { width: "450px" } }), { onClose: function() { + return vt2(); + } }); + } + function Ie2(e21, t11) { + f10(HI, { text: e21, onParse: function(e23) { + return L_(e23, function(e24) { + return z_(e24, $10); + }); + }, onRepair: F_, onApply: t11 }, Ro(Ro({}, gs), {}, { styleWindow: { width: "600px", height: "500px" }, styleContent: { padding: 0, height: "100%" } }), { onClose: function() { + return vt2(); + } }); + } + function De2() { + HB({ json: l10, text: u10, documentState: X10, keepSelection: false, readOnly: b10, onChange: T8, onPatch: ot2 }); + } + function qe2() { + !b10 && void 0 !== l10 && X10.selection && BE(X10.selection) && !_w(JE(X10.selection)) && (o10("duplicate", { selection: X10.selection }), ot2(sA(l10, kE(l10, X10.selection)))); + } + function ze2() { + if (!b10 && X10.selection && (mE(X10.selection) || pE(X10.selection)) && !_w(JE(X10.selection))) { + o10("extract", { selection: X10.selection }); + var e21 = function(e23, t11) { + if (pE(t11)) + return [{ op: "move", from: Zs(t11.path), path: "" }]; + if (!mE(t11)) + throw new Error("Cannot create extract operations: parent must be an Object or Array"); + var n11 = Ws(e23, Qk(t11.focusPath)); + if (Ts(n11)) + return [{ op: "replace", path: "", value: kE(e23, t11).map(function(e24) { + var t12 = Ul(vb(e24)); + return n11[t12]; + }) }]; + if (Rs(n11)) { + var r11 = {}; + return kE(e23, t11).forEach(function(e24) { + var t12 = String(vb(e24)); + r11[t12] = n11[t12]; + }), [{ op: "replace", path: "", value: r11 }]; + } + throw new Error("Cannot extract: unsupported type of selection " + JSON.stringify(t11)); + }(l10, X10.selection); + ot2(e21, function(e23, t11) { + if (Ql(e23)) { + return { state: lE(e23, t11, []) }; + } + }); + } + } + function Be2(e21) { + void 0 !== l10 && GB({ insertType: e21, selectInside: true, refJsonEditor: c10, json: l10, selection: X10.selection, readOnly: b10, parser: $10, onPatch: ot2, onReplaceJson: it2 }); + } + function Le2(e21) { + vE(X10.selection) && J10(RE(X10.selection.path, false)), X10.selection || J10($E(l10, X10)), Be2(e21); + } + function Fe2(e21) { + if (!b10 && X10.selection) + if (LE(X10.selection)) + try { + var t11 = KE(X10.selection), n11 = Ws(l10, t11), r11 = function(e23, t12, n12) { + if ("array" === t12) { + if (Array.isArray(e23)) + return e23; + if (Gl(e23)) + return D_(e23); + if ("string" == typeof e23) + try { + var r12 = n12.parse(e23); + if (Array.isArray(r12)) + return r12; + if (Gl(r12)) + return D_(r12); + } catch (t13) { + return [e23]; + } + return [e23]; + } + if ("object" === t12) { + if (Array.isArray(e23)) + return I_(e23); + if (Gl(e23)) + return e23; + if ("string" == typeof e23) + try { + var o11 = n12.parse(e23); + if (Gl(o11)) + return o11; + if (Array.isArray(o11)) + return I_(o11); + } catch (t13) { + return { value: e23 }; + } + return { value: e23 }; + } + if ("value" === t12) + return Ql(e23) ? n12.stringify(e23) : e23; + throw new Error("Cannot convert ".concat(eu(e23, n12), " to ").concat(t12)); + }(n11, e21, $10); + if (r11 === n11) + return; + var i11 = [{ op: "replace", path: Zs(t11), value: r11 }]; + o10("handleConvert", { selection: X10.selection, path: t11, type: e21, operations: i11 }), ot2(i11, function(e23, t12) { + return { state: X10.selection ? lE(e23, t12, JE(X10.selection)) : X10 }; + }); + } catch (e23) { + P10(e23); + } + else + P10(new Error("Cannot convert current selection to ".concat(e21))); + } + function Ve2() { + if (X10.selection) { + var e21 = SE(l10, X10, false), t11 = Qk(JE(X10.selection)); + e21 && !_w(JE(e21)) && Ow(t11, Qk(JE(e21))) ? J10(IE(JE(e21))) : J10(NE(t11)), o10("insert before", { selection: X10.selection, selectionBefore: e21, parentPath: t11 }), ca().then(function() { + return dt2(); + }); + } + } + function He2() { + if (X10.selection) { + var e21 = jE(l10, X10.selection); + o10("insert after", e21), J10(IE(e21)), ca().then(function() { + return dt2(); + }); + } + } + function We2(e21) { + return Ue2.apply(this, arguments); + } + function Ue2() { + return (Ue2 = xo(ko().mark(function e21(t11) { + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + return e23.next = 2, QB({ char: t11, selectInside: true, refJsonEditor: c10, json: l10, selection: X10.selection, readOnly: b10, parser: $10, onPatch: ot2, onReplaceJson: it2, onSelect: J10 }); + case 2: + case "end": + return e23.stop(); + } + }, e21); + }))).apply(this, arguments); + } + function Je2() { + if (!b10 && fe2.getState().canUndo) { + var e21 = fe2.undo(); + if (e21) { + var t11 = { json: l10, text: u10 }; + n10(11, l10 = e21.undo.patch ? rc(l10, e21.undo.patch) : e21.undo.json), n10(12, X10 = e21.undo.state), n10(17, u10 = e21.undo.text), n10(24, me2 = e21.undo.textIsRepaired), U10 = void 0, o10("undo", { item: e21, json: l10, documentState: X10 }), rt2(t11, e21.undo.patch && e21.redo.patch ? { json: l10, previousJson: t11.json, redo: e21.undo.patch, undo: e21.redo.patch } : null), vt2(), X10.selection && Ze2(JE(X10.selection), false); + } + } + } + function Ke2() { + if (!b10 && fe2.getState().canRedo) { + var e21 = fe2.redo(); + if (e21) { + var t11 = { json: l10, text: u10 }; + n10(11, l10 = e21.redo.patch ? rc(l10, e21.redo.patch) : e21.redo.json), n10(12, X10 = e21.redo.state), n10(17, u10 = e21.redo.text), n10(24, me2 = e21.redo.textIsRepaired), U10 = void 0, o10("redo", { item: e21, json: l10, documentState: X10 }), rt2(t11, e21.undo.patch && e21.redo.patch ? { json: l10, previousJson: t11.json, redo: e21.redo.patch, undo: e21.undo.patch } : null), vt2(), X10.selection && Ze2(JE(X10.selection), false); + } + } + } + function Ge2(e21) { + var t11; + b10 || void 0 === l10 || (W10 = true, F10({ id: d10, json: l10, rootPath: e21, onSort: (t11 = xo(ko().mark(function t12(n11) { + var r11; + return ko().wrap(function(t13) { + for (; ; ) + switch (t13.prev = t13.next) { + case 0: + r11 = n11.operations, o10("onSort", e21, r11), ot2(r11, function(t14, n12) { + return { state: Ro(Ro({}, lE(t14, n12, e21)), {}, { selection: RE(e21, false) }) }; + }); + case 3: + case "end": + return t13.stop(); + } + }, t12); + })), function(e23) { + return t11.apply(this, arguments); + }), onClose: function() { + W10 = false, vt2(); + } })); + } + function Qe2() { + X10.selection && Ge2(EE(l10, X10.selection)); + } + function Ye2(e21) { + if (void 0 !== l10) { + var t11 = e21.id, n11 = e21.onTransform, r11 = e21.onClose, i11 = e21.rootPath || []; + W10 = true, V10({ id: t11 || h10, json: l10, rootPath: i11, onTransform: function(e23) { + n11 ? n11({ operations: e23, json: l10, transformedJson: rc(l10, e23) }) : (o10("onTransform", i11, e23), ot2(e23, function(e24, t12) { + return { state: Ro(Ro({}, lE(e24, t12, i11)), {}, { selection: RE(i11, false) }) }; + })); + }, onClose: function() { + W10 = false, vt2(), r11 && r11(); + } }); + } + } + function Xe2() { + X10.selection && Ye2({ rootPath: EE(l10, X10.selection) }); + } + function Ze2(e21) { + return et2.apply(this, arguments); + } + function et2() { + return et2 = xo(ko().mark(function e21(t11) { + var r11, i11, s11, c11, u11, f11 = arguments; + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + return r11 = !(f11.length > 1 && void 0 !== f11[1]) || f11[1], n10(12, X10 = VM(l10, X10, t11)), e23.next = 4, ca(); + case 4: + if (i11 = tt2(t11), o10("scrollTo", { path: t11, elem: i11, refContents: a10 }), i11 && a10) { + e23.next = 8; + break; + } + return e23.abrupt("return", Promise.resolve()); + case 8: + if (s11 = a10.getBoundingClientRect(), c11 = i11.getBoundingClientRect(), r11) { + e23.next = 13; + break; + } + if (!(c11.bottom > s11.top && c11.top < s11.bottom)) { + e23.next = 13; + break; + } + return e23.abrupt("return", Promise.resolve()); + case 13: + return u11 = -s11.height / 4, e23.abrupt("return", new Promise(function(e24) { + y10(i11, { container: a10, offset: u11, duration: 300, callback: function() { + return e24(); + } }); + })); + case 15: + case "end": + return e23.stop(); + } + }, e21); + })), et2.apply(this, arguments); + } + function tt2(e21) { + return a10 ? a10.querySelector('div[data-path="'.concat(OO(e21), '"]')) : null; + } + function nt2(e21) { + var t11 = tt2(e21); + if (t11 && a10) { + var n11 = a10.getBoundingClientRect(), r11 = t11.getBoundingClientRect(), o11 = Ql(Ws(l10, e21)) ? 20 : r11.height; + r11.top < n11.top + 20 ? y10(t11, { container: a10, offset: -20, duration: 0 }) : r11.top + o11 > n11.bottom - 20 && y10(t11, { container: a10, offset: -(n11.height - o11 - 20), duration: 0 }); + } + } + function rt2(e21, t11) { + var n11; + if (void 0 !== e21.json || void 0 !== (null == e21 ? void 0 : e21.text)) { + if (void 0 !== u10) + null === (n11 = T8) || void 0 === n11 || n11({ text: u10, json: void 0 }, e21, { contentErrors: ke2(), patchResult: t11 }); + else if (void 0 !== l10) { + var r11; + null === (r11 = T8) || void 0 === r11 || r11({ text: void 0, json: l10 }, e21, { contentErrors: ke2(), patchResult: t11 }); + } + } + } + function ot2(e21, t11) { + return b10 ? { json: l10, previousJson: l10, undo: [], redo: [] } : (o10("handlePatch", e21, t11), _e2(e21, t11)); + } + function it2(e21, t11) { + var r11 = X10, o11 = l10, i11 = u10, a11 = { json: l10, text: u10 }, s11 = me2, c11 = HM(l10, X10, [], uE), f11 = "function" == typeof t11 ? t11(e21, c11) : void 0; + n10(11, l10 = f11 && void 0 !== f11.json ? f11.json : e21), n10(12, X10 = f11 && void 0 !== f11.state ? f11.state : c11), n10(17, u10 = void 0), n10(24, me2 = false), U10 = void 0, Ce2(l10), $e2({ previousJson: o11, previousState: r11, previousText: i11, previousTextIsRepaired: s11 }); + rt2(a11, null); + } + function at2(e21, t11) { + o10("handleChangeText"); + var r11 = X10, i11 = l10, a11 = u10, s11 = { json: l10, text: u10 }, c11 = me2; + try { + n10(11, l10 = _10(e21)), n10(12, X10 = HM(l10, X10, [], uE)), n10(17, u10 = void 0), n10(24, me2 = false), U10 = void 0; + } catch (t12) { + try { + n10(11, l10 = _10(Hl(e21))), n10(12, X10 = HM(l10, X10, [], uE)), n10(17, u10 = e21), n10(24, me2 = true), U10 = void 0; + } catch (r12) { + n10(11, l10 = void 0), n10(12, X10 = BM({ json: l10, expand: uE })), n10(17, u10 = e21), n10(24, me2 = false), U10 = "" !== u10 ? H_(u10, t12.message || String(t12)) : void 0; + } + } + if ("function" == typeof t11) { + var f11 = t11(l10, X10); + n10(11, l10 = f11 && f11.json ? f11.json : l10), n10(12, X10 = f11 && f11.state ? f11.state : X10); + } + Ce2(l10), $e2({ previousJson: i11, previousState: r11, previousText: a11, previousTextIsRepaired: c11 }); + rt2(s11, null); + } + function st2(e21, t11) { + var r11 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; + o10("expand", { path: e21, expanded: t11, recursive: r11 }), n10(12, X10 = t11 ? r11 ? HM(l10, X10, e21, fE) : function(e23, t12) { + return Ro(Ro({}, e23), {}, { expandedMap: Ro(Ro({}, e23.expandedMap), {}, qo({}, Zs(t12), true)) }); + }(X10, e21) : WM(X10, e21)), X10.selection && !t11 && function(e23, t12) { + return AE(JE(e23), t12) && (JE(e23).length > t12.length || hE(e23)); + }(X10.selection, e21) && J10(null), vt2(); + } + function ct2(e21) { + o10("openFind", { findAndReplace: e21 }), n10(20, Z10 = false), n10(21, ee2 = false), ca().then(function() { + n10(20, Z10 = true), n10(21, ee2 = e21); + }); + } + function lt2(e21, t11) { + o10("handleExpandSection", e21, t11); + var r11 = Zs(e21); + n10(12, X10 = function(e23, t12, n11, r12) { + return Ro(Ro({}, t12), {}, { visibleSectionsMap: Ro(Ro({}, t12.visibleSectionsMap), {}, qo({}, n11, IM(LM(t12, n11).concat(r12)))) }); + }(0, X10, r11, t11)); + } + function ut2(e21) { + o10("pasted json as text", e21), n10(19, Q10 = e21); + } + function ft2(e21) { + var t11 = e21.anchor, n11 = e21.left, r11 = e21.top, o11 = e21.width, i11 = e21.height, a11 = e21.offsetTop, s11 = e21.offsetLeft, c11 = e21.showTip; + W10 = true; + var u11 = p10(LD, { json: l10, documentState: X10, parser: $10, showTip: c11, onEditKey: Oe2, onEditValue: Me2, onToggleEnforceString: Ee2, onCut: Ae2, onCopy: Te2, onPaste: Ne2, onRemove: De2, onDuplicate: qe2, onExtract: ze2, onInsertBefore: Ve2, onInsert: Le2, onConvert: Fe2, onInsertAfter: He2, onSort: Qe2, onTransform: Xe2, onRenderContextMenu: q10, onCloseContextMenu: function() { + m10(u11), vt2(); + } }, { left: n11, top: r11, offsetTop: a11, offsetLeft: s11, width: o11, height: i11, anchor: t11, closeOnOuterClick: true, onClose: function() { + W10 = false, vt2(); + } }); + } + function dt2(e21) { + if (!b10 && !zE(X10.selection)) { + if (e21 && (e21.stopPropagation(), e21.preventDefault()), e21 && "contextmenu" === e21.type && e21.target !== s10) + ft2({ left: e21.clientX, top: e21.clientY, width: Ms, height: Os, showTip: false }); + else { + var t11, n11 = null === (t11 = a10) || void 0 === t11 ? void 0 : t11.querySelector(".jse-context-menu-pointer.jse-selected"); + if (n11) + ft2({ anchor: n11, offsetTop: 2, width: Ms, height: Os, showTip: false }); + else { + var r11, o11 = null === (r11 = a10) || void 0 === r11 ? void 0 : r11.getBoundingClientRect(); + o11 && ft2({ top: o11.top + 2, left: o11.left + 2, width: Ms, height: Os, showTip: false }); + } + } + return false; + } + } + function ht2() { + return (ht2 = xo(ko().mark(function e21() { + var t11, r11, i11, s11, c11; + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + if (o10("apply pasted json", Q10), Q10) { + e23.next = 3; + break; + } + return e23.abrupt("return"); + case 3: + i11 = (r11 = Q10).path, s11 = r11.contents, n10(19, Q10 = void 0), AO(c11 = (null === (t11 = a10) || void 0 === t11 ? void 0 : t11.querySelector(".jse-editable-div")) || null) && c11.cancel(), ot2([{ op: "replace", path: Zs(i11), value: s11 }], function(e24, t12) { + return { state: lE(e24, t12, i11) }; + }), setTimeout(vt2); + case 10: + case "end": + return e23.stop(); + } + }, e21); + }))).apply(this, arguments); + } + function vt2() { + o10("focus"), s10 && (s10.focus(), s10.select()); + } + function pt2(e21) { + return function(e23, t11, n11) { + var r11 = Qk(n11), o11 = [vb(n11)], i11 = Ws(e23, r11), a11 = i11 ? cE(i11, t11, o11) : void 0; + return a11 ? RE(r11.concat(a11), false) : IE(n11); + }(l10, X10, e21); + } + function mt2(e21) { + r10 && r10.onDrag(e21); + } + function gt2() { + r10 && r10.onDragEnd(); + } + return e20.$$set = function(e21) { + "readOnly" in e21 && n10(0, b10 = e21.readOnly), "externalContent" in e21 && n10(52, k10 = e21.externalContent), "externalSelection" in e21 && n10(53, w10 = e21.externalSelection), "mainMenuBar" in e21 && n10(1, x10 = e21.mainMenuBar), "navigationBar" in e21 && n10(2, j10 = e21.navigationBar), "escapeControlCharacters" in e21 && n10(54, S10 = e21.escapeControlCharacters), "escapeUnicodeCharacters" in e21 && n10(55, C10 = e21.escapeUnicodeCharacters), "parser" in e21 && n10(3, $10 = e21.parser), "parseMemoizeOne" in e21 && n10(56, _10 = e21.parseMemoizeOne), "validator" in e21 && n10(57, O10 = e21.validator), "validationParser" in e21 && n10(58, M10 = e21.validationParser), "pathParser" in e21 && n10(4, E10 = e21.pathParser), "indentation" in e21 && n10(5, A10 = e21.indentation), "onError" in e21 && n10(6, P10 = e21.onError), "onChange" in e21 && n10(59, T8 = e21.onChange), "onChangeMode" in e21 && n10(60, R8 = e21.onChangeMode), "onSelect" in e21 && n10(61, N8 = e21.onSelect), "onRenderValue" in e21 && n10(62, I10 = e21.onRenderValue), "onRenderMenu" in e21 && n10(7, D10 = e21.onRenderMenu), "onRenderContextMenu" in e21 && n10(63, q10 = e21.onRenderContextMenu), "onClassName" in e21 && n10(64, z10 = e21.onClassName), "onFocus" in e21 && n10(65, B10 = e21.onFocus), "onBlur" in e21 && n10(66, L10 = e21.onBlur), "onSortModal" in e21 && n10(67, F10 = e21.onSortModal), "onTransformModal" in e21 && n10(68, V10 = e21.onTransformModal), "onJSONEditorModal" in e21 && n10(69, H10 = e21.onJSONEditorModal); + }, e20.$$.update = function() { + 25165824 & e20.$$.dirty[1] && n10(77, G10 = aO({ escapeControlCharacters: S10, escapeUnicodeCharacters: C10 })), 4096 & e20.$$.dirty[0] && o10("selection", X10.selection), 2097152 & e20.$$.dirty[1] && je2(k10), 4194304 & e20.$$.dirty[1] && function(e21) { + Ow(X10.selection, e21) || (o10("applyExternalSelection", e21), (yE(e21) || null === e21) && J10(e21)); + }(w10), 2048 & e20.$$.dirty[0] | 65536 & e20.$$.dirty[2] && pe2(ne2, l10), 2056 & e20.$$.dirty[0] | 201326592 & e20.$$.dirty[1] && be2(l10, O10, $10, M10), 8192 & e20.$$.dirty[0] && n10(25, he2 = function(e21) { + var t11 = {}; + return e21.forEach(function(e23) { + t11[Zs(e23.path)] = e23; + }), e21.forEach(function(e23) { + for (var n11 = e23.path; n11.length > 0; ) { + var r11 = Zs(n11 = Qk(n11)); + r11 in t11 || (t11[r11] = { isChildError: true, path: n11, message: "Contains invalid data", severity: Za.warning }); + } + }), t11; + }(ge2)), 1024 & e20.$$.dirty[0] && (r10 = a10 ? function(e21) { + var t11, n11; + function r11(e23) { + return e23 < 20 ? is : e23 < 50 ? as : ss; + } + function o11() { + if (e21) { + var n12 = (t11 || 0) * (os / 1e3); + e21.scrollTop += n12; + } + } + function i11(e23) { + n11 && e23 === t11 || (a11(), gN("startAutoScroll", e23), t11 = e23, n11 = setInterval(o11, os)); + } + function a11() { + n11 && (gN("stopAutoScroll"), clearInterval(n11), n11 = void 0, t11 = void 0); + } + return gN("createAutoScrollHandler", e21), { onDrag: function(t12) { + if (e21) { + var n12 = t12.clientY, o12 = e21.getBoundingClientRect(), s11 = o12.top, c11 = o12.bottom; + n12 < s11 ? i11(-r11(s11 - n12)) : n12 > c11 ? i11(r11(n12 - c11)) : a11(); + } + }, onDragEnd: function() { + a11(); + } }; + }(a10) : void 0), 9 & e20.$$.dirty[0] | 32773 & e20.$$.dirty[2] && n10(14, ve2 = { readOnly: b10, parser: $10, normalization: G10, getJson: we2, getDocumentState: xe2, findElement: tt2, findNextInside: pt2, focus: vt2, onPatch: ot2, onInsert: Be2, onExpand: st2, onSelect: J10, onFind: ct2, onExpandSection: lt2, onPasteJson: ut2, onRenderValue: I10, onContextMenu: ft2, onClassName: z10 || function() { + }, onDrag: mt2, onDragEnd: gt2 }), 16384 & e20.$$.dirty[0] && o10("context changed", ve2); + }, [b10, x10, j10, $10, E10, A10, P10, D10, function() { + return me2 && void 0 !== l10 && it2(l10), void 0 !== l10 ? { json: l10 } : { text: u10 || "" }; + }, vt2, a10, l10, X10, ge2, ve2, s10, c10, u10, K10, Q10, Z10, ee2, te2, de2, me2, he2, i10, re2, function() { + return ie2.apply(this, arguments); + }, function() { + return ae2.apply(this, arguments); + }, function(e21, t11) { + return se2.apply(this, arguments); + }, function(e21, t11) { + return ce2.apply(this, arguments); + }, function() { + n10(20, Z10 = false), n10(21, ee2 = false), re2(""), vt2(); + }, function(e21) { + o10("select validation error", e21), J10(RE(e21.path, false)), Ze2(e21.path); + }, Te2, function(e21) { + var t11; + e21.preventDefault(); + var n11 = null === (t11 = e21.clipboardData) || void 0 === t11 ? void 0 : t11.getData("text/plain"); + void 0 !== n11 && VB({ clipboardText: n11, json: l10, selection: X10.selection, readOnly: b10, parser: $10, onPatch: ot2, onChangeText: at2, openRepairModal: Ie2 }); + }, We2, Je2, Ke2, function() { + Ge2([]); + }, function() { + Ye2({ rootPath: [] }); + }, function() { + st2([], true, true); + }, function() { + st2([], false, true); + }, function(e21) { + var t11 = PO(e21), n11 = e21.shiftKey; + if (o10("keydown", { combo: t11, key: e21.key }), "Ctrl+X" === t11 && (e21.preventDefault(), Ae2(true)), "Ctrl+Shift+X" === t11 && (e21.preventDefault(), Ae2(false)), "Ctrl+C" === t11 && (e21.preventDefault(), Te2(true)), "Ctrl+Shift+C" === t11 && (e21.preventDefault(), Te2(false)), "Ctrl+D" === t11 && (e21.preventDefault(), qe2()), "Delete" !== t11 && "Backspace" !== t11 || (e21.preventDefault(), De2()), "Insert" === t11 && (e21.preventDefault(), Be2("structure")), "Ctrl+A" === t11 && (e21.preventDefault(), J10(RE([], false))), "Ctrl+Q" === t11 && dt2(e21), "ArrowUp" === t11 || "Shift+ArrowUp" === t11) { + e21.preventDefault(); + var r11 = X10.selection ? SE(l10, X10, n11) || X10.selection : $E(l10, X10); + J10(r11), nt2(JE(r11)); + } + if ("ArrowDown" === t11 || "Shift+ArrowDown" === t11) { + e21.preventDefault(); + var i11 = X10.selection ? function(e23, t12) { + var n12 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], r12 = t12.selection; + if (!r12) + return null; + var o11 = n12 ? JE(r12) : jE(e23, r12), i12 = Ql(Ws(e23, o11)) ? WM(t12, o11) : t12, a12 = cE(e23, t12, o11), s12 = cE(e23, i12, o11); + if (n12) + return hE(r12) ? null !== a12 ? DE(a12, a12) : null : dE(r12) ? null !== s12 ? DE(s12, s12) : null : null !== s12 ? DE(KE(r12), s12) : null; + if (dE(r12)) + return null !== s12 ? RE(s12, false) : null; + if (hE(r12)) + return null !== a12 ? RE(a12, false) : null; + if (pE(r12)) + return null !== a12 ? RE(a12, false) : null; + if (vE(r12)) { + if (null === a12 || 0 === a12.length) + return null; + var c12 = Ws(e23, Qk(a12)); + return Array.isArray(c12) ? RE(a12, false) : TE(a12, false); + } + return mE(r12) ? null !== s12 ? RE(s12, false) : null !== a12 ? RE(a12, false) : null : null; + }(l10, X10, n11) || X10.selection : $E(l10, X10); + J10(i11), nt2(JE(i11)); + } + if ("ArrowLeft" === t11 || "Shift+ArrowLeft" === t11) { + e21.preventDefault(); + var a11 = X10.selection ? function(e23, t12) { + var n12 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], r12 = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3], o11 = t12.selection; + if (!o11) + return null; + var i12 = CE(e23, t12, r12), a12 = i12.caret, s12 = i12.previous; + if (n12) + return mE(o11) ? null : DE(o11.path, o11.path); + if (a12 && s12) + return FE(s12); + var c12 = Ws(e23, Qk(JE(o11))); + return pE(o11) && Array.isArray(c12) ? DE(o11.path, o11.path) : mE(o11) && !Array.isArray(c12) ? TE(o11.focusPath, false) : null; + }(l10, X10, n11, !b10) || X10.selection : $E(l10, X10); + J10(a11), nt2(JE(a11)); + } + if ("ArrowRight" === t11 || "Shift+ArrowRight" === t11) { + e21.preventDefault(); + var s11 = X10.selection && void 0 !== l10 ? function(e23, t12) { + var n12 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], r12 = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3], o11 = t12.selection; + if (!o11) + return null; + var i12 = CE(e23, t12, r12), a12 = i12.caret, s12 = i12.next; + return n12 ? mE(o11) ? null : DE(o11.path, o11.path) : a12 && s12 ? FE(s12) : mE(o11) ? RE(o11.focusPath, false) : null; + }(l10, X10, n11, !b10) || X10.selection : $E(l10, X10); + J10(s11), nt2(JE(s11)); + } + if ("Enter" === t11 && X10.selection) { + if (gE(X10.selection)) { + var c11 = X10.selection.focusPath, u11 = Ws(l10, Qk(c11)); + Array.isArray(u11) && J10(RE(c11, false)); + } + if (vE(X10.selection) && (e21.preventDefault(), J10(Ro(Ro({}, X10.selection), {}, { edit: true }))), pE(X10.selection)) + e21.preventDefault(), Ql(Ws(l10, X10.selection.path)) ? st2(X10.selection.path, true) : J10(Ro(Ro({}, X10.selection), {}, { edit: true })); + } + if (1 === t11.replace(/^Shift\+/, "").length && X10.selection) + return e21.preventDefault(), void We2(e21.key); + if ("Enter" === t11 && (dE(X10.selection) || hE(X10.selection))) + return e21.preventDefault(), void We2(""); + if ("Ctrl+Enter" === t11 && pE(X10.selection)) { + var f11 = Ws(l10, X10.selection.path); + nu(f11) && window.open(String(f11), "_blank"); + } + "Escape" === t11 && X10.selection && (e21.preventDefault(), J10(null)), "Ctrl+F" === t11 && (e21.preventDefault(), ct2(false)), "Ctrl+H" === t11 && (e21.preventDefault(), ct2(true)), "Ctrl+Z" === t11 && (e21.preventDefault(), Je2()), "Ctrl+Shift+Z" === t11 && (e21.preventDefault(), Ke2()); + }, function(e21) { + o10("handleMouseDown", e21); + var t11 = e21.target; + yO(t11, "BUTTON") || t11.isContentEditable || (vt2(), X10.selection || void 0 !== l10 || "" !== u10 && void 0 !== u10 || (o10("createDefaultSelection"), n10(12, X10 = Ro(Ro({}, X10), {}, { selection: RE([], false) })))); + }, dt2, function(e21) { + b10 || ft2({ anchor: $O(e21.target, "BUTTON"), offsetTop: 0, width: Ms, height: Os, showTip: true }); + }, function() { + return ht2.apply(this, arguments); + }, function() { + o10("clear pasted json"), n10(19, Q10 = void 0), vt2(); + }, function() { + R8(Qa.text); + }, function(e21) { + J10(e21), vt2(), Ze2(JE(e21)); + }, function(e21) { + var t11 = !kO(e21.target, function(e23) { + return e23 === c10; + }); + t11 && zE(X10.selection) && (o10("click outside the editor, stop edit mode"), J10(function(e23) { + return vE(e23) || pE(e23) ? Ro(Ro({}, e23), {}, { edit: false }) : e23; + }), g10 && s10 && (s10.focus(), s10.blur()), o10("blur (outside editor)"), s10 && s10.blur()); + }, k10, w10, S10, C10, _10, O10, M10, T8, R8, N8, I10, q10, z10, B10, L10, F10, V10, H10, function() { + var e21 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : fE; + o10("expand"); + var t11 = Ro(Ro({}, X10), {}, { expandedMap: {}, visibleSectionsMap: {} }); + n10(12, X10 = HM(l10, t11, [], e21)); + }, ke2, we2, _e2, Ye2, Ze2, tt2, G10, ne2, function(e21) { + n10(20, Z10 = e21); + }, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(15, s10 = e21); + }); + }, function() { + vt2(), We2("{"); + }, function() { + vt2(), We2("["); + }, function() { + vt2(); + }, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(10, a10 = e21); + }); + }, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(16, c10 = e21); + }); + }]; + } + var kL = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, bL, yL, Zo, { readOnly: 0, externalContent: 52, externalSelection: 53, mainMenuBar: 1, navigationBar: 2, escapeControlCharacters: 54, escapeUnicodeCharacters: 55, parser: 3, parseMemoizeOne: 56, validator: 57, validationParser: 58, pathParser: 4, indentation: 5, onError: 6, onChange: 59, onChangeMode: 60, onSelect: 61, onRenderValue: 62, onRenderMenu: 7, onRenderContextMenu: 63, onClassName: 64, onFocus: 65, onBlur: 66, onSortModal: 67, onTransformModal: 68, onJSONEditorModal: 69, expand: 70, validate: 71, getJson: 72, patch: 73, acceptAutoRepair: 8, openTransformModal: 74, scrollTo: 75, findElement: 76, focus: 9 }, sL, [-1, -1, -1, -1, -1]), n10; + } + return Ao(t10, Ia), Do(t10, [{ key: "expand", get: function() { + return this.$$.ctx[70]; + } }, { key: "validate", get: function() { + return this.$$.ctx[71]; + } }, { key: "getJson", get: function() { + return this.$$.ctx[72]; + } }, { key: "patch", get: function() { + return this.$$.ctx[73]; + } }, { key: "acceptAutoRepair", get: function() { + return this.$$.ctx[8]; + } }, { key: "openTransformModal", get: function() { + return this.$$.ctx[74]; + } }, { key: "scrollTo", get: function() { + return this.$$.ctx[75]; + } }, { key: "findElement", get: function() { + return this.$$.ctx[76]; + } }, { key: "focus", get: function() { + return this.$$.ctx[9]; + } }]), t10; + }(); + function wL(e20) { + mi(e20, "svelte-l4qqoi", '.jse-modal.svelte-l4qqoi.svelte-l4qqoi{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);line-height:normal;background:var(--jse-modal-background, #f5f5f5);color:var(--jse-text-color, #4d4d4d)}.jse-modal.svelte-l4qqoi .svelte-select{--border:var(--jse-svelte-select-border, 1px solid #d8dbdf);--item-is-active-bg:var(--jse-item-is-active-bg, #3883fa);--border-radius:var(--jse-svelte-select-border-radius, 3px);--background:var(--jse-svelte-select-background, #fff);--padding:var(--jse-svelte-select-padding, 0 10px);--multi-select-padding:var(--jse-svelte-select-multi-select-padding, 0 10px);--font-size:var(--jse-svelte-select-font-size, var(--jse-font-size, 16px));--height:36px;--multi-item-height:28px;--multi-item-margin:2px;--multi-item-padding:2px 8px;--multi-item-border-radius:6px;--indicator-top:8px}.jse-modal.svelte-l4qqoi .jse-modal-contents.svelte-l4qqoi{flex:1;display:flex;flex-direction:column;padding:20px;overflow:auto;min-width:0;min-height:0}.jse-modal.svelte-l4qqoi .jse-modal-contents .jse-actions.svelte-l4qqoi{display:flex;flex-direction:row;justify-content:flex-end;padding-top:var(--jse-padding, 10px)}.jse-modal.svelte-l4qqoi .jse-modal-contents .jse-actions button.jse-primary.svelte-l4qqoi{border:none;background:transparent;color:inherit;cursor:pointer;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);padding:5px;margin:0;background:var(--jse-button-primary-background, var(--jse-theme-color, #3883fa));color:var(--jse-button-primary-color, #fff);padding:var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px));border-radius:3px}.jse-modal.svelte-l4qqoi .jse-modal-contents .jse-actions button.jse-primary.svelte-l4qqoi:hover{background:var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff))}.jse-modal.svelte-l4qqoi .jse-modal-contents .jse-actions button.jse-primary.svelte-l4qqoi:disabled{background:var(--jse-button-primary-background-disabled, #9d9d9d)}.bg.jse-modal-bg{width:100%;height:100%;top:0;left:0;background:var(--jse-overlay-background, rgba(0, 0, 0, 0.3))}.bg.jse-modal-bg .jse-modal-window-wrap{margin:0}.bg.jse-modal-bg .jse-modal-window{max-width:90%;margin:4rem auto 2rem auto;border-radius:2px}.bg.jse-modal-bg .jse-modal-window.jse-modal-window-sort{width:400px}.bg.jse-modal-bg .jse-modal-window.jse-modal-window-transform{width:1200px;height:1200px;max-height:80%;display:flex}.bg.jse-modal-bg .jse-modal-window.jse-modal-window-jsoneditor{width:800px;height:auto;min-height:500px;max-height:calc(100vh - 6rem);display:flex}.bg.jse-modal-bg .jse-modal-container{flex:1;display:flex;flex-direction:column;padding:0}.jse-modal.jse-transform.svelte-l4qqoi .jse-modal-contents.svelte-l4qqoi{color:inherit;min-height:0;padding:0}.jse-modal.jse-transform.svelte-l4qqoi .jse-modal-contents .jse-main-contents.svelte-l4qqoi{flex:1;display:flex;gap:calc(2 * var(--jse-padding, 10px));min-height:0;box-sizing:border-box;padding:0 calc(2 * var(--jse-padding, 10px)) var(--jse-padding, 10px)}.jse-modal.jse-transform.svelte-l4qqoi .jse-modal-contents .jse-main-contents .jse-query-contents.svelte-l4qqoi{flex:1;display:flex;flex-direction:column}.jse-modal.jse-transform.svelte-l4qqoi .jse-modal-contents .jse-main-contents .jse-query-contents .jse-description.svelte-l4qqoi p{margin:var(--jse-padding, 10px) 0}.jse-modal.jse-transform.svelte-l4qqoi .jse-modal-contents .jse-main-contents .jse-query-contents .jse-description.svelte-l4qqoi p:first-child{margin-top:0}.jse-modal.jse-transform.svelte-l4qqoi .jse-modal-contents .jse-main-contents .jse-query-contents .jse-description.svelte-l4qqoi p:last-child{margin-bottom:0}.jse-modal.jse-transform.svelte-l4qqoi .jse-modal-contents .jse-main-contents .jse-query-contents .jse-description.svelte-l4qqoi code{background:var(--jse-modal-code-background, rgba(0, 0, 0, 0.05));font-family:var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace);font-size:var(--jse-font-size-mono, 14px)}.jse-modal.jse-transform.svelte-l4qqoi .jse-modal-contents .jse-main-contents .jse-query-contents textarea.jse-query.svelte-l4qqoi{flex:1;outline:none;resize:vertical}.jse-modal.jse-transform.svelte-l4qqoi .jse-modal-contents .jse-main-contents .jse-data-contents.svelte-l4qqoi{flex:1;display:flex;flex-direction:column;gap:calc(2 * var(--jse-padding, 10px))}.jse-modal.jse-transform.svelte-l4qqoi .jse-modal-contents .jse-main-contents .jse-data-contents .jse-original-data.svelte-l4qqoi{flex:1;display:flex;flex-direction:column;min-height:0;box-sizing:border-box}.jse-modal.jse-transform.svelte-l4qqoi .jse-modal-contents .jse-main-contents .jse-data-contents .jse-original-data.jse-hide.svelte-l4qqoi{flex:none}.jse-modal.jse-transform.svelte-l4qqoi .jse-modal-contents .jse-main-contents .jse-data-contents .jse-preview-data.svelte-l4qqoi{flex:1;display:flex;flex-direction:column;min-height:0;box-sizing:border-box}.jse-modal.jse-transform.svelte-l4qqoi .jse-modal-contents .jse-main-contents .jse-data-contents.jse-hide-original-data.svelte-l4qqoi{flex-direction:column;gap:0;margin-bottom:0}.jse-modal.jse-transform.svelte-l4qqoi .jse-modal-contents .jse-actions.svelte-l4qqoi{padding:var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px)) calc(2 * var(--jse-padding, 10px))}@media screen and (max-width: 1200px){.jse-modal.jse-transform.svelte-l4qqoi .jse-modal-contents .jse-main-contents.svelte-l4qqoi{flex-direction:column;overflow:auto}.jse-modal.jse-transform.svelte-l4qqoi .jse-modal-contents .jse-main-contents .jse-query-contents textarea.jse-query.svelte-l4qqoi{min-height:150px;flex:none}.jse-modal.jse-transform.svelte-l4qqoi .jse-modal-contents .jse-main-contents .jse-data-contents.svelte-l4qqoi .jse-tree-mode{height:300px;flex:none}}.jse-modal.jse-transform.svelte-l4qqoi .jse-label.svelte-l4qqoi{font-weight:bold;display:block;box-sizing:border-box}.jse-modal.jse-transform.svelte-l4qqoi .jse-label .jse-label-inner.svelte-l4qqoi{margin-top:calc(2 * var(--jse-padding, 10px));margin-bottom:calc(0.5 * var(--jse-padding, 10px));box-sizing:border-box}.jse-modal.jse-transform.svelte-l4qqoi .jse-label .jse-label-inner button.svelte-l4qqoi{border:none;background:transparent;color:inherit;cursor:pointer;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);padding:5px;margin:0;font-weight:bold;padding:0}.jse-modal.jse-transform.svelte-l4qqoi .jse-tree-mode{flex:1;background:var(--jse-input-background-readonly, transparent);box-shadow:none;box-sizing:border-box;--jse-main-border:var(--jse-input-border, 1px solid #d8dbdf)}.jse-modal.jse-transform.svelte-l4qqoi input.svelte-l4qqoi,.jse-modal.jse-transform.svelte-l4qqoi textarea.svelte-l4qqoi{border:var(--jse-input-border, 1px solid #d8dbdf);outline:none;box-sizing:border-box;padding:calc(0.5 * var(--jse-padding, 10px));font-family:var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace);font-size:var(--jse-font-size-mono, 14px);color:inherit;background:var(--jse-input-background, var(--jse-background-color, #fff))}.jse-modal.jse-transform.svelte-l4qqoi input.svelte-l4qqoi:focus,.jse-modal.jse-transform.svelte-l4qqoi textarea.svelte-l4qqoi:focus{border:var(--jse-input-border-focus, 1px solid var(--jse-input-border-focus, var(--jse-theme-color, #3883fa)))}.jse-modal.jse-transform.svelte-l4qqoi input.svelte-l4qqoi:read-only,.jse-modal.jse-transform.svelte-l4qqoi textarea.svelte-l4qqoi:read-only{background:var(--jse-input-background-readonly, transparent)}.jse-modal.jse-transform.svelte-l4qqoi .jse-preview.jse-error.svelte-l4qqoi{flex:1;background:var(--jse-input-background-readonly, transparent);border:var(--jse-input-border, 1px solid #d8dbdf);color:var(--jse-error-color, #ee5341);padding:calc(0.5 * var(--jse-padding, 10px))}.jse-modal.jse-transform.svelte-l4qqoi a{color:var(--jse-a-color, #156fc5)}.jse-modal.jse-transform.svelte-l4qqoi a:hover{color:var(--jse-a-color-highlight, #0f508d)}'); + } + function xL(e20) { + var t10, n10, r10, o10, i10, a10 = [SL, jL], s10 = []; + function c10(e21, n11) { + return 16384 & n11[0] && (t10 = null), null == t10 && (t10 = !!Array.isArray(e21[14])), t10 ? 0 : 1; + } + return n10 = c10(e20, [-1, -1]), r10 = s10[n10] = a10[n10](e20), { c: function() { + r10.c(), o10 = _i(); + }, m: function(e21, t11) { + s10[n10].m(e21, t11), ki(e21, o10, t11), i10 = true; + }, p: function(e21, t11) { + var i11 = n10; + (n10 = c10(e21, t11)) === i11 ? s10[n10].p(e21, t11) : (ba(), xa(s10[i11], 1, 1, function() { + s10[i11] = null; + }), ka(), (r10 = s10[n10]) ? r10.p(e21, t11) : (r10 = s10[n10] = a10[n10](e21)).c(), wa(r10, 1), r10.m(o10.parentNode, o10)); + }, i: function(e21) { + i10 || (wa(r10), i10 = true); + }, o: function(e21) { + xa(r10), i10 = false; + }, d: function(e21) { + e21 && wi(o10), s10[n10].d(e21); + } }; + } + function jL(e20) { + var t10; + return { c: function() { + t10 = Ci("(Only available for arrays, not for objects)"); + }, m: function(e21, n10) { + ki(e21, t10, n10); + }, p: Wo, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function SL(e20) { + var t10, n10; + return t10 = new rN({ props: { queryOptions: e20[15], json: e20[14], onChange: e20[24] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 32768 & n11[0] && (r10.queryOptions = e21[15]), 16384 & n11[0] && (r10.json = e21[14]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function CL(e20) { + var t10, n10; + return t10 = new kL({ props: { externalContent: e20[17], externalSelection: null, readOnly: true, mainMenuBar: false, navigationBar: false, indentation: e20[2], escapeControlCharacters: e20[3], escapeUnicodeCharacters: e20[4], parser: e20[5], parseMemoizeOne: e20[6], onRenderValue: e20[10], onRenderMenu: e20[11], onRenderContextMenu: e20[12], onError: console.error, onChange: Mf, onChangeMode: Mf, onSelect: Mf, onFocus: Mf, onBlur: Mf, onSortModal: Mf, onTransformModal: Mf, onJSONEditorModal: Mf, onClassName: e20[13], validator: null, validationParser: e20[7], pathParser: e20[8] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 131072 & n11[0] && (r10.externalContent = e21[17]), 4 & n11[0] && (r10.indentation = e21[2]), 8 & n11[0] && (r10.escapeControlCharacters = e21[3]), 16 & n11[0] && (r10.escapeUnicodeCharacters = e21[4]), 32 & n11[0] && (r10.parser = e21[5]), 64 & n11[0] && (r10.parseMemoizeOne = e21[6]), 1024 & n11[0] && (r10.onRenderValue = e21[10]), 2048 & n11[0] && (r10.onRenderMenu = e21[11]), 4096 & n11[0] && (r10.onRenderContextMenu = e21[12]), 8192 & n11[0] && (r10.onClassName = e21[13]), 128 & n11[0] && (r10.validationParser = e21[7]), 256 & n11[0] && (r10.pathParser = e21[8]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function $L(e20) { + var t10, n10; + return { c: function() { + t10 = ji("div"), n10 = Ci(e20[20]), Ai(t10, "class", "jse-preview jse-error svelte-l4qqoi"); + }, m: function(e21, r10) { + ki(e21, t10, r10), pi(t10, n10); + }, p: function(e21, t11) { + 1048576 & t11[0] && Ni(n10, e21[20]); + }, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function _L(e20) { + var t10, n10; + return t10 = new kL({ props: { externalContent: e20[21], externalSelection: null, readOnly: true, mainMenuBar: false, navigationBar: false, indentation: e20[2], escapeControlCharacters: e20[3], escapeUnicodeCharacters: e20[4], parser: e20[5], parseMemoizeOne: e20[6], onRenderValue: e20[10], onRenderMenu: e20[11], onRenderContextMenu: e20[12], onError: console.error, onChange: Mf, onChangeMode: Mf, onSelect: Mf, onFocus: Mf, onBlur: Mf, onSortModal: Mf, onTransformModal: Mf, onJSONEditorModal: Mf, onClassName: e20[13], validator: null, validationParser: e20[7], pathParser: e20[8] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 2097152 & n11[0] && (r10.externalContent = e21[21]), 4 & n11[0] && (r10.indentation = e21[2]), 8 & n11[0] && (r10.escapeControlCharacters = e21[3]), 16 & n11[0] && (r10.escapeUnicodeCharacters = e21[4]), 32 & n11[0] && (r10.parser = e21[5]), 64 & n11[0] && (r10.parseMemoizeOne = e21[6]), 1024 & n11[0] && (r10.onRenderValue = e21[10]), 2048 & n11[0] && (r10.onRenderMenu = e21[11]), 4096 & n11[0] && (r10.onRenderContextMenu = e21[12]), 8192 & n11[0] && (r10.onClassName = e21[13]), 128 & n11[0] && (r10.validationParser = e21[7]), 256 & n11[0] && (r10.pathParser = e21[8]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function OL(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10, p10, m10, g10, y10, b10, k10, w10, x10, j10, S10, C10, $10, _10, O10, M10, E10, A10, P10, T8, R8, N8, I10, D10, q10, z10, B10, L10, F10, V10, H10, W10, U10, J10, K10 = e20[23](e20[0]).description + ""; + t10 = new mN({ props: { queryLanguages: e20[9], queryLanguageId: e20[0], onChangeQueryLanguage: e20[29] } }), y10 = new jM({ props: { data: e20[18] ? gP : YA } }); + var G10 = e20[18] && xL(e20); + A10 = new jM({ props: { data: e20[19] ? gP : YA } }); + var Q10 = e20[19] && CL(e20), Y10 = [_L, $L], X10 = []; + function Z10(e21, t11) { + return e21[20] ? 1 : 0; + } + return q10 = Z10(e20), z10 = X10[q10] = Y10[q10](e20), { c: function() { + Pa(t10.$$.fragment), n10 = $i(), r10 = ji("div"), o10 = ji("div"), i10 = ji("div"), (a10 = ji("div")).innerHTML = '
Language
', s10 = $i(), c10 = ji("div"), l10 = $i(), (u10 = ji("div")).innerHTML = '
Path
', f10 = $i(), d10 = ji("input"), v10 = $i(), p10 = ji("div"), m10 = ji("div"), g10 = ji("button"), Pa(y10.$$.fragment), b10 = Ci("\n Wizard"), k10 = $i(), G10 && G10.c(), w10 = $i(), (x10 = ji("div")).innerHTML = '
Query
', j10 = $i(), S10 = ji("textarea"), C10 = $i(), $10 = ji("div"), _10 = ji("div"), O10 = ji("div"), M10 = ji("div"), E10 = ji("button"), Pa(A10.$$.fragment), P10 = Ci("\n Original"), T8 = $i(), Q10 && Q10.c(), R8 = $i(), N8 = ji("div"), (I10 = ji("div")).innerHTML = '
Preview
', D10 = $i(), z10.c(), B10 = $i(), L10 = ji("div"), F10 = ji("button"), V10 = Ci("Transform"), Ai(a10, "class", "jse-label svelte-l4qqoi"), Ai(c10, "class", "jse-description svelte-l4qqoi"), Ai(u10, "class", "jse-label svelte-l4qqoi"), Ai(d10, "class", "jse-path svelte-l4qqoi"), Ai(d10, "type", "text"), d10.readOnly = true, Ai(d10, "title", "Selected path"), d10.value = h10 = _w(e20[1]) ? "(document root)" : JO(e20[1]), Ai(g10, "type", "button"), Ai(g10, "class", "svelte-l4qqoi"), Ai(m10, "class", "jse-label-inner svelte-l4qqoi"), Ai(p10, "class", "jse-label svelte-l4qqoi"), Ai(x10, "class", "jse-label svelte-l4qqoi"), Ai(S10, "class", "jse-query svelte-l4qqoi"), Ai(S10, "spellcheck", "false"), S10.value = e20[16], Ai(i10, "class", "jse-query-contents svelte-l4qqoi"), Ai(E10, "type", "button"), Ai(E10, "class", "svelte-l4qqoi"), Ai(M10, "class", "jse-label-inner svelte-l4qqoi"), Ai(O10, "class", "jse-label svelte-l4qqoi"), Ai(_10, "class", "jse-original-data svelte-l4qqoi"), zi(_10, "jse-hide", !e20[19]), Ai(I10, "class", "jse-label svelte-l4qqoi"), Ai(N8, "class", "jse-preview-data svelte-l4qqoi"), Ai($10, "class", "jse-data-contents svelte-l4qqoi"), zi($10, "jse-hide-original-data", !e20[19]), Ai(o10, "class", "jse-main-contents svelte-l4qqoi"), Ai(F10, "type", "button"), Ai(F10, "class", "jse-primary svelte-l4qqoi"), F10.disabled = H10 = !!e20[20], Ai(L10, "class", "jse-actions svelte-l4qqoi"), Ai(r10, "class", "jse-modal-contents svelte-l4qqoi"); + }, m: function(h11, z11) { + Ta(t10, h11, z11), ki(h11, n10, z11), ki(h11, r10, z11), pi(r10, o10), pi(o10, i10), pi(i10, a10), pi(i10, s10), pi(i10, c10), c10.innerHTML = K10, pi(i10, l10), pi(i10, u10), pi(i10, f10), pi(i10, d10), pi(i10, v10), pi(i10, p10), pi(p10, m10), pi(m10, g10), Ta(y10, g10, null), pi(g10, b10), pi(i10, k10), G10 && G10.m(i10, null), pi(i10, w10), pi(i10, x10), pi(i10, j10), pi(i10, S10), pi(o10, C10), pi(o10, $10), pi($10, _10), pi(_10, O10), pi(O10, M10), pi(M10, E10), Ta(A10, E10, null), pi(E10, P10), pi(_10, T8), Q10 && Q10.m(_10, null), pi($10, R8), pi($10, N8), pi(N8, I10), pi(N8, D10), X10[q10].m(N8, null), pi(r10, B10), pi(r10, L10), pi(L10, F10), pi(F10, V10), W10 = true, U10 || (J10 = [Oi(g10, "click", e20[27]), Oi(S10, "input", e20[25]), Oi(E10, "click", e20[28]), Oi(F10, "click", e20[26]), ci(EL.call(null, F10))], U10 = true); + }, p: function(e21, n11) { + var r11 = {}; + 512 & n11[0] && (r11.queryLanguages = e21[9]), 1 & n11[0] && (r11.queryLanguageId = e21[0]), t10.$set(r11), (!W10 || 1 & n11[0]) && K10 !== (K10 = e21[23](e21[0]).description + "") && (c10.innerHTML = K10), (!W10 || 2 & n11[0] && h10 !== (h10 = _w(e21[1]) ? "(document root)" : JO(e21[1])) && d10.value !== h10) && (d10.value = h10); + var o11 = {}; + 262144 & n11[0] && (o11.data = e21[18] ? gP : YA), y10.$set(o11), e21[18] ? G10 ? (G10.p(e21, n11), 262144 & n11[0] && wa(G10, 1)) : ((G10 = xL(e21)).c(), wa(G10, 1), G10.m(i10, w10)) : G10 && (ba(), xa(G10, 1, 1, function() { + G10 = null; + }), ka()), (!W10 || 65536 & n11[0]) && (S10.value = e21[16]); + var a11 = {}; + 524288 & n11[0] && (a11.data = e21[19] ? gP : YA), A10.$set(a11), e21[19] ? Q10 ? (Q10.p(e21, n11), 524288 & n11[0] && wa(Q10, 1)) : ((Q10 = CL(e21)).c(), wa(Q10, 1), Q10.m(_10, null)) : Q10 && (ba(), xa(Q10, 1, 1, function() { + Q10 = null; + }), ka()), (!W10 || 524288 & n11[0]) && zi(_10, "jse-hide", !e21[19]); + var s11 = q10; + (q10 = Z10(e21)) === s11 ? X10[q10].p(e21, n11) : (ba(), xa(X10[s11], 1, 1, function() { + X10[s11] = null; + }), ka(), (z10 = X10[q10]) ? z10.p(e21, n11) : (z10 = X10[q10] = Y10[q10](e21)).c(), wa(z10, 1), z10.m(N8, null)), (!W10 || 524288 & n11[0]) && zi($10, "jse-hide-original-data", !e21[19]), (!W10 || 1048576 & n11[0] && H10 !== (H10 = !!e21[20])) && (F10.disabled = H10); + }, i: function(e21) { + W10 || (wa(t10.$$.fragment, e21), wa(y10.$$.fragment, e21), wa(G10), wa(A10.$$.fragment, e21), wa(Q10), wa(z10), W10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), xa(y10.$$.fragment, e21), xa(G10), xa(A10.$$.fragment, e21), xa(Q10), xa(z10), W10 = false; + }, d: function(e21) { + e21 && (wi(n10), wi(r10)), Ra(t10, e21), Ra(y10), G10 && G10.d(), Ra(A10), Q10 && Q10.d(), X10[q10].d(), U10 = false, Qo(J10); + } }; + } + function ML(e20) { + var t10, n10, r10, o10, i10; + return n10 = new UO({ props: { $$slots: { default: [OL] }, $$scope: { ctx: e20 } } }), { c: function() { + t10 = ji("div"), Pa(n10.$$.fragment), Ai(t10, "class", "jse-modal jse-transform svelte-l4qqoi"); + }, m: function(a10, s10) { + ki(a10, t10, s10), Ta(n10, t10, null), r10 = true, o10 || (i10 = ci(BI.call(null, t10, e20[22])), o10 = true); + }, p: function(e21, t11) { + var r11 = {}; + 4194303 & t11[0] | 2048 & t11[1] && (r11.$$scope = { dirty: t11, ctx: e21 }), n10.$set(r11); + }, i: function(e21) { + r10 || (wa(n10.$$.fragment, e21), r10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), r10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(n10), o10 = false, i10(); + } }; + } + function EL(e20) { + e20.focus(); + } + function AL(e20, t10, n10) { + var r10, o10, i10 = Da("jsoneditor:TransformModal"), a10 = t10.id, s10 = void 0 === a10 ? "transform-modal-" + Ps() : a10, c10 = t10.json, l10 = t10.rootPath, u10 = void 0 === l10 ? [] : l10, f10 = t10.indentation, d10 = t10.escapeControlCharacters, h10 = t10.escapeUnicodeCharacters, v10 = t10.parser, p10 = t10.parseMemoizeOne, m10 = t10.validationParser, g10 = t10.pathParser, y10 = t10.queryLanguages, b10 = t10.queryLanguageId, k10 = t10.onChangeQueryLanguage, w10 = t10.onRenderValue, x10 = t10.onRenderMenu, j10 = t10.onRenderContextMenu, S10 = t10.onClassName, C10 = t10.onTransform, $10 = Zi("simple-modal").close, _10 = "".concat(s10, ":").concat(Zs(u10)), O10 = RP[_10] || {}, M10 = false !== NP.showWizard, E10 = false !== NP.showOriginal, A10 = O10.queryOptions || {}, P10 = b10 === O10.queryLanguageId && O10.query ? O10.query : I10(b10).createQuery(c10, O10.queryOptions || {}), T8 = O10.isManual || false, R8 = void 0, N8 = { text: "" }; + function I10(e21) { + return y10.find(function(t11) { + return t11.id === e21; + }) || y10[0]; + } + var D10 = Vy(function(e21, t11) { + if (void 0 === e21) + return n10(21, N8 = { text: "" }), void n10(20, R8 = "Error: No JSON"); + try { + i10("previewTransform", { query: t11 }); + var r11 = I10(b10).executeQuery(e21, t11, v10); + n10(21, N8 = { json: r11 }), n10(20, R8 = void 0); + } catch (e23) { + n10(21, N8 = { text: "" }), n10(20, R8 = String(e23)); + } + }, 300); + return e20.$$set = function(e21) { + "id" in e21 && n10(30, s10 = e21.id), "json" in e21 && n10(31, c10 = e21.json), "rootPath" in e21 && n10(1, u10 = e21.rootPath), "indentation" in e21 && n10(2, f10 = e21.indentation), "escapeControlCharacters" in e21 && n10(3, d10 = e21.escapeControlCharacters), "escapeUnicodeCharacters" in e21 && n10(4, h10 = e21.escapeUnicodeCharacters), "parser" in e21 && n10(5, v10 = e21.parser), "parseMemoizeOne" in e21 && n10(6, p10 = e21.parseMemoizeOne), "validationParser" in e21 && n10(7, m10 = e21.validationParser), "pathParser" in e21 && n10(8, g10 = e21.pathParser), "queryLanguages" in e21 && n10(9, y10 = e21.queryLanguages), "queryLanguageId" in e21 && n10(0, b10 = e21.queryLanguageId), "onChangeQueryLanguage" in e21 && n10(32, k10 = e21.onChangeQueryLanguage), "onRenderValue" in e21 && n10(10, w10 = e21.onRenderValue), "onRenderMenu" in e21 && n10(11, x10 = e21.onRenderMenu), "onRenderContextMenu" in e21 && n10(12, j10 = e21.onRenderContextMenu), "onClassName" in e21 && n10(13, S10 = e21.onClassName), "onTransform" in e21 && n10(33, C10 = e21.onTransform); + }, e20.$$.update = function() { + 2 & e20.$$.dirty[0] | 1 & e20.$$.dirty[1] && n10(14, r10 = Ws(c10, u10)), 16384 & e20.$$.dirty[0] && n10(17, o10 = r10 ? { json: r10 } : { text: "" }), 81920 & e20.$$.dirty[0] && D10(r10, P10), 98305 & e20.$$.dirty[0] | 24 & e20.$$.dirty[1] && (n10(34, RP[_10] = { queryOptions: A10, query: P10, queryLanguageId: b10, isManual: T8 }, RP), i10("store state in memory", _10, RP[_10])); + }, [b10, u10, f10, d10, h10, v10, p10, m10, g10, y10, w10, x10, j10, S10, r10, A10, P10, o10, M10, E10, R8, N8, $10, I10, function(e21) { + n10(15, A10 = e21), n10(16, P10 = I10(b10).createQuery(c10, e21)), n10(35, T8 = false), i10("updateQueryByWizard", { queryOptions: A10, query: P10, isManual: T8 }); + }, function(e21) { + n10(16, P10 = e21.target.value), n10(35, T8 = true), i10("handleChangeQuery", { query: P10, isManual: T8 }); + }, function() { + if (void 0 === r10) + return n10(21, N8 = { text: "" }), void n10(20, R8 = "Error: No JSON"); + try { + i10("handleTransform", { query: P10 }); + var e21 = I10(b10).executeQuery(r10, P10, v10); + C10([{ op: "replace", path: Zs(u10), value: e21 }]), $10(); + } catch (e23) { + console.error(e23), n10(21, N8 = { text: "" }), n10(20, R8 = String(e23)); + } + }, function() { + n10(18, M10 = !M10), NP.showWizard = M10; + }, function() { + n10(19, E10 = !E10), NP.showOriginal = E10; + }, function(e21) { + i10("handleChangeQueryLanguage", e21), n10(0, b10 = e21), k10(e21); + var t11 = I10(b10); + n10(16, P10 = t11.createQuery(c10, A10)), n10(35, T8 = false); + }, s10, c10, k10, C10, RP, T8]; + } + var PL = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, AL, ML, Zo, { id: 30, json: 31, rootPath: 1, indentation: 2, escapeControlCharacters: 3, escapeUnicodeCharacters: 4, parser: 5, parseMemoizeOne: 6, validationParser: 7, pathParser: 8, queryLanguages: 9, queryLanguageId: 0, onChangeQueryLanguage: 32, onRenderValue: 10, onRenderMenu: 11, onRenderContextMenu: 12, onClassName: 13, onTransform: 33 }, wL, [-1, -1]), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + var TL = {}; + function RL(e20) { + mi(e20, "svelte-qjdk97", '.jse-modal.svelte-qjdk97.svelte-qjdk97{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);line-height:normal;background:var(--jse-modal-background, #f5f5f5);color:var(--jse-text-color, #4d4d4d)}.jse-modal.svelte-qjdk97 .svelte-select{--border:var(--jse-svelte-select-border, 1px solid #d8dbdf);--item-is-active-bg:var(--jse-item-is-active-bg, #3883fa);--border-radius:var(--jse-svelte-select-border-radius, 3px);--background:var(--jse-svelte-select-background, #fff);--padding:var(--jse-svelte-select-padding, 0 10px);--multi-select-padding:var(--jse-svelte-select-multi-select-padding, 0 10px);--font-size:var(--jse-svelte-select-font-size, var(--jse-font-size, 16px));--height:36px;--multi-item-height:28px;--multi-item-margin:2px;--multi-item-padding:2px 8px;--multi-item-border-radius:6px;--indicator-top:8px}.jse-modal.svelte-qjdk97 .jse-modal-contents.svelte-qjdk97{flex:1;display:flex;flex-direction:column;padding:20px;overflow:auto;min-width:0;min-height:0}.jse-modal.svelte-qjdk97 .jse-modal-contents .jse-actions.svelte-qjdk97{display:flex;flex-direction:row;justify-content:flex-end;padding-top:var(--jse-padding, 10px)}.jse-modal.svelte-qjdk97 .jse-modal-contents .jse-actions button.jse-primary.svelte-qjdk97{border:none;background:transparent;color:inherit;cursor:pointer;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);padding:5px;margin:0;background:var(--jse-button-primary-background, var(--jse-theme-color, #3883fa));color:var(--jse-button-primary-color, #fff);padding:var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px));border-radius:3px}.jse-modal.svelte-qjdk97 .jse-modal-contents .jse-actions button.jse-primary.svelte-qjdk97:hover{background:var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff))}.jse-modal.svelte-qjdk97 .jse-modal-contents .jse-actions button.jse-primary.svelte-qjdk97:disabled{background:var(--jse-button-primary-background-disabled, #9d9d9d)}.bg.jse-modal-bg{width:100%;height:100%;top:0;left:0;background:var(--jse-overlay-background, rgba(0, 0, 0, 0.3))}.bg.jse-modal-bg .jse-modal-window-wrap{margin:0}.bg.jse-modal-bg .jse-modal-window{max-width:90%;margin:4rem auto 2rem auto;border-radius:2px}.bg.jse-modal-bg .jse-modal-window.jse-modal-window-sort{width:400px}.bg.jse-modal-bg .jse-modal-window.jse-modal-window-transform{width:1200px;height:1200px;max-height:80%;display:flex}.bg.jse-modal-bg .jse-modal-window.jse-modal-window-jsoneditor{width:800px;height:auto;min-height:500px;max-height:calc(100vh - 6rem);display:flex}.bg.jse-modal-bg .jse-modal-container{flex:1;display:flex;flex-direction:column;padding:0}.jse-modal.jse-sort.svelte-qjdk97 table.svelte-qjdk97{width:100%;border-collapse:collapse;border-spacing:0}.jse-modal.jse-sort.svelte-qjdk97 table th.svelte-qjdk97,.jse-modal.jse-sort.svelte-qjdk97 table td.svelte-qjdk97{text-align:left;vertical-align:middle;font-weight:normal;padding-bottom:var(--jse-padding, 10px)}.jse-modal.jse-sort.svelte-qjdk97 table th input.jse-path.svelte-qjdk97,.jse-modal.jse-sort.svelte-qjdk97 table td input.jse-path.svelte-qjdk97{width:100%;box-sizing:border-box;padding:6px 16px;border:var(--jse-input-border, 1px solid #d8dbdf);border-radius:var(--jse-input-radius, 3px);font-family:inherit;font-size:inherit;background:inherit;color:inherit;outline:none}.jse-modal.jse-sort.svelte-qjdk97 table th input.jse-path.svelte-qjdk97:read-only,.jse-modal.jse-sort.svelte-qjdk97 table td input.jse-path.svelte-qjdk97:read-only{background:var(--jse-input-background-readonly, transparent)}.jse-modal.jse-sort.svelte-qjdk97 table th.svelte-qjdk97 .svelte-select input,.jse-modal.jse-sort.svelte-qjdk97 table td.svelte-qjdk97 .svelte-select input{box-sizing:border-box}.jse-modal.jse-sort.svelte-qjdk97 .jse-space.svelte-qjdk97{height:200px}.jse-modal.jse-sort.svelte-qjdk97 .jse-space .jse-error.svelte-qjdk97{color:var(--jse-error-color, #ee5341)}'); + } + function NL(e20) { + var t10, n10, r10, o10, i10, a10, s10; + function c10(t11) { + e20[14](t11); + } + var l10 = { showChevron: true, items: e20[5] }; + return void 0 !== e20[1] && (l10.value = e20[1]), i10 = new ZR({ props: l10 }), na.push(function() { + return Aa(i10, "value", c10); + }), { c: function() { + t10 = ji("tr"), (n10 = ji("th")).textContent = "Property", r10 = $i(), o10 = ji("td"), Pa(i10.$$.fragment), Ai(n10, "class", "svelte-qjdk97"), Ai(o10, "class", "svelte-qjdk97"); + }, m: function(e21, a11) { + ki(e21, t10, a11), pi(t10, n10), pi(t10, r10), pi(t10, o10), Ta(i10, o10, null), s10 = true; + }, p: function(e21, t11) { + var n11 = {}; + 32 & t11 && (n11.items = e21[5]), !a10 && 2 & t11 && (a10 = true, n11.value = e21[1], ua(function() { + return a10 = false; + })), i10.$set(n11); + }, i: function(e21) { + s10 || (wa(i10.$$.fragment, e21), s10 = true); + }, o: function(e21) { + xa(i10.$$.fragment, e21), s10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(i10); + } }; + } + function IL(e20) { + var t10, n10; + return { c: function() { + t10 = ji("div"), n10 = Ci(e20[4]), Ai(t10, "class", "jse-error svelte-qjdk97"); + }, m: function(e21, r10) { + ki(e21, t10, r10), pi(t10, n10); + }, p: function(e21, t11) { + 16 & t11 && Ni(n10, e21[4]); + }, d: function(e21) { + e21 && wi(t10); + } }; + } + function DL(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10, p10, m10, g10, y10, b10, k10, w10, x10, j10, S10, C10, $10, _10, O10, M10, E10, A10, P10, T8; + r10 = new XN({ props: { title: e20[3] ? "Sort array items" : "Sort object keys" } }); + var R8 = e20[3] && (e20[5] && (null === (t10 = e20[5]) || void 0 === t10 ? void 0 : t10.length) > 1 || void 0 === e20[1]) && NL(e20); + function N8(t11) { + e20[15](t11); + } + var I10 = { showChevron: true, clearable: false, items: e20[7] }; + void 0 !== e20[2] && (I10.value = e20[2]), x10 = new ZR({ props: I10 }), na.push(function() { + return Aa(x10, "value", N8); + }); + var D10 = e20[4] && IL(e20); + return { c: function() { + var t11; + n10 = ji("div"), Pa(r10.$$.fragment), o10 = $i(), i10 = ji("div"), a10 = ji("table"), (s10 = ji("colgroup")).innerHTML = ' ', c10 = $i(), l10 = ji("tbody"), u10 = ji("tr"), (f10 = ji("th")).textContent = "Path", d10 = $i(), h10 = ji("td"), v10 = ji("input"), m10 = $i(), R8 && R8.c(), g10 = $i(), y10 = ji("tr"), (b10 = ji("th")).textContent = "Direction", k10 = $i(), w10 = ji("td"), Pa(x10.$$.fragment), S10 = $i(), C10 = ji("div"), D10 && D10.c(), $10 = $i(), _10 = ji("div"), O10 = ji("button"), M10 = Ci("Sort"), Ai(f10, "class", "svelte-qjdk97"), Ai(v10, "class", "jse-path svelte-qjdk97"), Ai(v10, "type", "text"), v10.readOnly = true, Ai(v10, "title", "Selected path"), v10.value = p10 = _w(e20[0]) ? "(document root)" : JO(e20[0]), Ai(h10, "class", "svelte-qjdk97"), Ai(b10, "class", "svelte-qjdk97"), Ai(w10, "class", "svelte-qjdk97"), Ai(a10, "class", "svelte-qjdk97"), Ai(C10, "class", "jse-space svelte-qjdk97"), Ai(O10, "type", "button"), Ai(O10, "class", "jse-primary svelte-qjdk97"), O10.disabled = E10 = !!(e20[3] && e20[5] && (null === (t11 = e20[5]) || void 0 === t11 ? void 0 : t11.length) > 1) && !e20[1], Ai(_10, "class", "jse-actions svelte-qjdk97"), Ai(i10, "class", "jse-modal-contents svelte-qjdk97"), Ai(n10, "class", "jse-modal jse-sort svelte-qjdk97"); + }, m: function(t11, p11) { + ki(t11, n10, p11), Ta(r10, n10, null), pi(n10, o10), pi(n10, i10), pi(i10, a10), pi(a10, s10), pi(a10, c10), pi(a10, l10), pi(l10, u10), pi(u10, f10), pi(u10, d10), pi(u10, h10), pi(h10, v10), pi(l10, m10), R8 && R8.m(l10, null), pi(l10, g10), pi(l10, y10), pi(y10, b10), pi(y10, k10), pi(y10, w10), Ta(x10, w10, null), pi(i10, S10), pi(i10, C10), D10 && D10.m(C10, null), pi(i10, $10), pi(i10, _10), pi(_10, O10), pi(O10, M10), A10 = true, P10 || (T8 = [Oi(O10, "click", e20[8]), ci(qL.call(null, O10)), ci(BI.call(null, n10, e20[6]))], P10 = true); + }, p: function(e21, t11) { + var n11, o11, i11 = jo(t11, 1)[0], a11 = {}; + 8 & i11 && (a11.title = e21[3] ? "Sort array items" : "Sort object keys"), r10.$set(a11), (!A10 || 1 & i11 && p10 !== (p10 = _w(e21[0]) ? "(document root)" : JO(e21[0])) && v10.value !== p10) && (v10.value = p10), e21[3] && (e21[5] && (null === (n11 = e21[5]) || void 0 === n11 ? void 0 : n11.length) > 1 || void 0 === e21[1]) ? R8 ? (R8.p(e21, i11), 42 & i11 && wa(R8, 1)) : ((R8 = NL(e21)).c(), wa(R8, 1), R8.m(l10, g10)) : R8 && (ba(), xa(R8, 1, 1, function() { + R8 = null; + }), ka()); + var s11 = {}; + !j10 && 4 & i11 && (j10 = true, s11.value = e21[2], ua(function() { + return j10 = false; + })), x10.$set(s11), e21[4] ? D10 ? D10.p(e21, i11) : ((D10 = IL(e21)).c(), D10.m(C10, null)) : D10 && (D10.d(1), D10 = null), (!A10 || 42 & i11 && E10 !== (E10 = !!(e21[3] && e21[5] && (null === (o11 = e21[5]) || void 0 === o11 ? void 0 : o11.length) > 1) && !e21[1])) && (O10.disabled = E10); + }, i: function(e21) { + A10 || (wa(r10.$$.fragment, e21), wa(R8), wa(x10.$$.fragment, e21), A10 = true); + }, o: function(e21) { + xa(r10.$$.fragment, e21), xa(R8), xa(x10.$$.fragment, e21), A10 = false; + }, d: function(e21) { + e21 && wi(n10), Ra(r10), R8 && R8.d(), Ra(x10), D10 && D10.d(), P10 = false, Qo(T8); + } }; + } + function qL(e20) { + e20.focus(); + } + function zL(e20, t10, n10) { + var r10, o10, i10, a10, s10, c10 = Da("jsoneditor:SortModal"), l10 = t10.id, u10 = t10.json, f10 = t10.rootPath, d10 = t10.onSort, h10 = Zi("simple-modal").close, v10 = "".concat(l10, ":").concat(Zs(f10)), p10 = Ws(u10, f10), m10 = { value: 1, label: "ascending" }, g10 = [m10, { value: -1, label: "descending" }], y10 = null === (r10 = TL[v10]) || void 0 === r10 ? void 0 : r10.selectedProperty, b10 = (null === (o10 = TL[v10]) || void 0 === o10 ? void 0 : o10.selectedDirection) || m10, k10 = void 0; + return e20.$$set = function(e21) { + "id" in e21 && n10(9, l10 = e21.id), "json" in e21 && n10(10, u10 = e21.json), "rootPath" in e21 && n10(0, f10 = e21.rootPath), "onSort" in e21 && n10(11, d10 = e21.onSort); + }, e20.$$.update = function() { + 8 & e20.$$.dirty && n10(13, a10 = i10 && void 0 !== p10 ? T_(p10) : void 0), 8192 & e20.$$.dirty && n10(5, s10 = a10 ? a10.map(GO) : void 0), 4102 & e20.$$.dirty && (n10(12, TL[v10] = { selectedProperty: y10, selectedDirection: b10 }, TL), c10("store state in memory", v10, TL[v10])); + }, n10(3, i10 = Array.isArray(p10)), [f10, y10, b10, i10, k10, s10, h10, g10, function() { + try { + var e21, t11, r11; + n10(4, k10 = void 0); + var o11 = (null === (e21 = y10) || void 0 === e21 ? void 0 : e21.value) || (null === (t11 = s10) || void 0 === t11 || null === (t11 = t11[0]) || void 0 === t11 ? void 0 : t11.value) || [], i11 = null === (r11 = b10) || void 0 === r11 ? void 0 : r11.value, a11 = Iz(u10, f10, o11, i11); + d10({ operations: a11, rootPath: f10, itemPath: o11, direction: i11 }), h10(); + } catch (e23) { + n10(4, k10 = String(e23)); + } + }, l10, u10, d10, TL, a10, function(e21) { + n10(1, y10 = e21); + }, function(e21) { + n10(2, b10 = e21); + }]; + } + var BL = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, zL, DL, Zo, { id: 9, json: 10, rootPath: 0, onSort: 11 }, RL), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function LL() { + } + function FL(e20) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1e3; + if (e20 < 0.9 * t10) + return e20.toFixed() + " B"; + var n10 = e20 / t10; + if (n10 < 0.9 * t10) + return n10.toFixed(1) + " KB"; + var r10 = n10 / t10; + if (r10 < 0.9 * t10) + return r10.toFixed(1) + " MB"; + var o10 = r10 / t10; + return o10 < 0.9 * t10 ? o10.toFixed(1) + " GB" : (o10 / t10).toFixed(1) + " TB"; + } + function VL(e20) { + var t10, n10; + return t10 = new EI({ props: { items: e20[0] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 1 & jo(n11, 1)[0] && (r10.items = e21[0]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function HL(e20, t10, n10) { + var r10, o10, i10 = t10.readOnly, a10 = void 0 !== i10 && i10, s10 = t10.onFormat, c10 = t10.onCompact, l10 = t10.onSort, u10 = t10.onTransform, f10 = t10.onToggleSearch, d10 = t10.onUndo, h10 = t10.onRedo, v10 = t10.canUndo, p10 = t10.canRedo, m10 = t10.canFormat, g10 = t10.canCompact, y10 = t10.canSort, b10 = t10.canTransform, k10 = t10.onRenderMenu, w10 = { type: "button", icon: jP, title: "Search (Ctrl+F)", className: "jse-search", onClick: f10 }; + return e20.$$set = function(e21) { + "readOnly" in e21 && n10(1, a10 = e21.readOnly), "onFormat" in e21 && n10(2, s10 = e21.onFormat), "onCompact" in e21 && n10(3, c10 = e21.onCompact), "onSort" in e21 && n10(4, l10 = e21.onSort), "onTransform" in e21 && n10(5, u10 = e21.onTransform), "onToggleSearch" in e21 && n10(6, f10 = e21.onToggleSearch), "onUndo" in e21 && n10(7, d10 = e21.onUndo), "onRedo" in e21 && n10(8, h10 = e21.onRedo), "canUndo" in e21 && n10(9, v10 = e21.canUndo), "canRedo" in e21 && n10(10, p10 = e21.canRedo), "canFormat" in e21 && n10(11, m10 = e21.canFormat), "canCompact" in e21 && n10(12, g10 = e21.canCompact), "canSort" in e21 && n10(13, y10 = e21.canSort), "canTransform" in e21 && n10(14, b10 = e21.canTransform), "onRenderMenu" in e21 && n10(15, k10 = e21.onRenderMenu); + }, e20.$$.update = function() { + 32702 & e20.$$.dirty && n10(16, o10 = a10 ? [w10, { type: "space" }] : [{ type: "button", icon: xz, title: "Format JSON: add proper indentation and new lines (Ctrl+I)", className: "jse-format", onClick: s10, disabled: a10 || !m10 }, { type: "button", icon: jz, title: "Compact JSON: remove all white spacing and new lines (Ctrl+Shift+I)", className: "jse-compact", onClick: c10, disabled: a10 || !g10 }, { type: "separator" }, { type: "button", icon: kP, title: "Sort", className: "jse-sort", onClick: l10, disabled: a10 || !y10 }, { type: "button", icon: cP, title: "Transform contents (filter, sort, project)", className: "jse-transform", onClick: u10, disabled: a10 || !b10 }, w10, { type: "separator" }, { type: "button", icon: vP, title: "Undo (Ctrl+Z)", className: "jse-undo", onClick: d10, disabled: !v10 }, { type: "button", icon: hP, title: "Redo (Ctrl+Shift+Z)", className: "jse-redo", onClick: h10, disabled: !p10 }, { type: "space" }]), 98304 & e20.$$.dirty && n10(0, r10 = k10(o10) || o10); + }, [r10, a10, s10, c10, l10, u10, f10, d10, h10, v10, p10, m10, g10, y10, b10, k10, o10]; + } + var WL = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, HL, VL, Zo, { readOnly: 1, onFormat: 2, onCompact: 3, onSort: 4, onTransform: 5, onToggleSearch: 6, onUndo: 7, onRedo: 8, canUndo: 9, canRedo: 10, canFormat: 11, canCompact: 12, canSort: 13, canTransform: 14, onRenderMenu: 15 }), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + var UL = function() { + function e20() { + No(this, e20); + } + return Do(e20, [{ key: "lineAt", value: function(e21) { + if (e21 < 0 || e21 > this.length) + throw new RangeError("Invalid position ".concat(e21, " in document of length ").concat(this.length)); + return this.lineInner(e21, false, 1, 0); + } }, { key: "line", value: function(e21) { + if (e21 < 1 || e21 > this.lines) + throw new RangeError("Invalid line number ".concat(e21, " in ").concat(this.lines, "-line document")); + return this.lineInner(e21, true, 1, 0); + } }, { key: "replace", value: function(e21, t10, n10) { + var r10 = jo(tF(this, e21, t10), 2); + e21 = r10[0], t10 = r10[1]; + var o10 = []; + return this.decompose(0, e21, o10, 2), n10.length && n10.decompose(0, n10.length, o10, 3), this.decompose(t10, this.length, o10, 1), KL.from(o10, this.length - (t10 - e21) + n10.length); + } }, { key: "append", value: function(e21) { + return this.replace(this.length, this.length, e21); + } }, { key: "slice", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.length, n10 = jo(tF(this, e21, t10), 2); + e21 = n10[0], t10 = n10[1]; + var r10 = []; + return this.decompose(e21, t10, r10, 0), KL.from(r10, t10 - e21); + } }, { key: "eq", value: function(e21) { + if (e21 == this) + return true; + if (e21.length != this.length || e21.lines != this.lines) + return false; + for (var t10 = this.scanIdentical(e21, 1), n10 = this.length - this.scanIdentical(e21, -1), r10 = new YL(this), o10 = new YL(e21), i10 = t10, a10 = t10; ; ) { + if (r10.next(i10), o10.next(i10), i10 = 0, r10.lineBreak != o10.lineBreak || r10.done != o10.done || r10.value != o10.value) + return false; + if (a10 += r10.value.length, r10.done || a10 >= n10) + return true; + } + } }, { key: "iter", value: function() { + return new YL(this, arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1); + } }, { key: "iterRange", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.length; + return new XL(this, e21, t10); + } }, { key: "iterLines", value: function(e21, t10) { + var n10; + if (null == e21) + n10 = this.iter(); + else { + null == t10 && (t10 = this.lines + 1); + var r10 = this.line(e21).from; + n10 = this.iterRange(r10, Math.max(r10, t10 == this.lines + 1 ? this.length : t10 <= 1 ? 0 : this.line(t10 - 1).to)); + } + return new ZL(n10); + } }, { key: "toString", value: function() { + return this.sliceString(0); + } }, { key: "toJSON", value: function() { + var e21 = []; + return this.flatten(e21), e21; + } }], [{ key: "of", value: function(t10) { + if (0 == t10.length) + throw new RangeError("A document must have at least one line"); + return 1 != t10.length || t10[0] ? t10.length <= 32 ? new JL(t10) : KL.from(JL.split(t10, [])) : e20.empty; + } }]), e20; + }(); + var JL = function(e20) { + function t10(e21) { + var n10, r10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : function(e23) { + var t11, n11 = -1, r11 = bo(e23); + try { + for (r11.s(); !(t11 = r11.n()).done; ) { + n11 += t11.value.length + 1; + } + } catch (e24) { + r11.e(e24); + } finally { + r11.f(); + } + return n11; + }(e21); + return No(this, t10), (n10 = _o(this, t10)).text = e21, n10.length = r10, n10; + } + return Ao(t10, UL), Do(t10, [{ key: "lines", get: function() { + return this.text.length; + } }, { key: "children", get: function() { + return null; + } }, { key: "lineInner", value: function(e21, t11, n10, r10) { + for (var o10 = 0; ; o10++) { + var i10 = this.text[o10], a10 = r10 + i10.length; + if ((t11 ? n10 : a10) >= e21) + return new eF(r10, a10, n10, i10); + r10 = a10 + 1, n10++; + } + } }, { key: "decompose", value: function(e21, n10, r10, o10) { + var i10 = e21 <= 0 && n10 >= this.length ? this : new t10(QL(this.text, e21, n10), Math.min(n10, this.length) - Math.max(0, e21)); + if (1 & o10) { + var a10 = r10.pop(), s10 = GL(i10.text, a10.text.slice(), 0, i10.length); + if (s10.length <= 32) + r10.push(new t10(s10, a10.length + i10.length)); + else { + var c10 = s10.length >> 1; + r10.push(new t10(s10.slice(0, c10)), new t10(s10.slice(c10))); + } + } else + r10.push(i10); + } }, { key: "replace", value: function(e21, n10, r10) { + if (!(r10 instanceof t10)) + return go(Mo(t10.prototype), "replace", this).call(this, e21, n10, r10); + var o10 = jo(tF(this, e21, n10), 2); + e21 = o10[0], n10 = o10[1]; + var i10 = GL(this.text, GL(r10.text, QL(this.text, 0, e21)), n10), a10 = this.length + r10.length - (n10 - e21); + return i10.length <= 32 ? new t10(i10, a10) : KL.from(t10.split(i10, []), a10); + } }, { key: "sliceString", value: function(e21) { + var t11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.length, n10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "\n", r10 = jo(tF(this, e21, t11), 2); + e21 = r10[0], t11 = r10[1]; + for (var o10 = "", i10 = 0, a10 = 0; i10 <= t11 && a10 < this.text.length; a10++) { + var s10 = this.text[a10], c10 = i10 + s10.length; + i10 > e21 && a10 && (o10 += n10), e21 < c10 && t11 > i10 && (o10 += s10.slice(Math.max(0, e21 - i10), t11 - i10)), i10 = c10 + 1; + } + return o10; + } }, { key: "flatten", value: function(e21) { + var t11, n10 = bo(this.text); + try { + for (n10.s(); !(t11 = n10.n()).done; ) { + var r10 = t11.value; + e21.push(r10); + } + } catch (e23) { + n10.e(e23); + } finally { + n10.f(); + } + } }, { key: "scanIdentical", value: function() { + return 0; + } }], [{ key: "split", value: function(e21, n10) { + var r10, o10 = [], i10 = -1, a10 = bo(e21); + try { + for (a10.s(); !(r10 = a10.n()).done; ) { + var s10 = r10.value; + o10.push(s10), i10 += s10.length + 1, 32 == o10.length && (n10.push(new t10(o10, i10)), o10 = [], i10 = -1); + } + } catch (e23) { + a10.e(e23); + } finally { + a10.f(); + } + return i10 > -1 && n10.push(new t10(o10, i10)), n10; + } }]), t10; + }(); + var KL = function(e20) { + function t10(e21, n10) { + var r10; + No(this, t10), (r10 = _o(this, t10)).children = e21, r10.length = n10, r10.lines = 0; + var o10, i10 = bo(e21); + try { + for (i10.s(); !(o10 = i10.n()).done; ) { + var a10 = o10.value; + r10.lines += a10.lines; + } + } catch (e23) { + i10.e(e23); + } finally { + i10.f(); + } + return r10; + } + return Ao(t10, UL), Do(t10, [{ key: "lineInner", value: function(e21, t11, n10, r10) { + for (var o10 = 0; ; o10++) { + var i10 = this.children[o10], a10 = r10 + i10.length, s10 = n10 + i10.lines - 1; + if ((t11 ? s10 : a10) >= e21) + return i10.lineInner(e21, t11, n10, r10); + r10 = a10 + 1, n10 = s10 + 1; + } + } }, { key: "decompose", value: function(e21, t11, n10, r10) { + for (var o10 = 0, i10 = 0; i10 <= t11 && o10 < this.children.length; o10++) { + var a10 = this.children[o10], s10 = i10 + a10.length; + if (e21 <= s10 && t11 >= i10) { + var c10 = r10 & ((i10 <= e21 ? 1 : 0) | (s10 >= t11 ? 2 : 0)); + i10 >= e21 && s10 <= t11 && !c10 ? n10.push(a10) : a10.decompose(e21 - i10, t11 - i10, n10, c10); + } + i10 = s10 + 1; + } + } }, { key: "replace", value: function(e21, n10, r10) { + var o10 = jo(tF(this, e21, n10), 2); + if (e21 = o10[0], n10 = o10[1], r10.lines < this.lines) + for (var i10 = 0, a10 = 0; i10 < this.children.length; i10++) { + var s10 = this.children[i10], c10 = a10 + s10.length; + if (e21 >= a10 && n10 <= c10) { + var l10 = s10.replace(e21 - a10, n10 - a10, r10), u10 = this.lines - s10.lines + l10.lines; + if (l10.lines < u10 >> 4 && l10.lines > u10 >> 6) { + var f10 = this.children.slice(); + return f10[i10] = l10, new t10(f10, this.length - (n10 - e21) + r10.length); + } + return go(Mo(t10.prototype), "replace", this).call(this, a10, c10, l10); + } + a10 = c10 + 1; + } + return go(Mo(t10.prototype), "replace", this).call(this, e21, n10, r10); + } }, { key: "sliceString", value: function(e21) { + var t11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.length, n10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "\n", r10 = jo(tF(this, e21, t11), 2); + e21 = r10[0], t11 = r10[1]; + for (var o10 = "", i10 = 0, a10 = 0; i10 < this.children.length && a10 <= t11; i10++) { + var s10 = this.children[i10], c10 = a10 + s10.length; + a10 > e21 && i10 && (o10 += n10), e21 < c10 && t11 > a10 && (o10 += s10.sliceString(e21 - a10, t11 - a10, n10)), a10 = c10 + 1; + } + return o10; + } }, { key: "flatten", value: function(e21) { + var t11, n10 = bo(this.children); + try { + for (n10.s(); !(t11 = n10.n()).done; ) { + t11.value.flatten(e21); + } + } catch (e23) { + n10.e(e23); + } finally { + n10.f(); + } + } }, { key: "scanIdentical", value: function(e21, n10) { + if (!(e21 instanceof t10)) + return 0; + for (var r10 = 0, o10 = jo(n10 > 0 ? [0, 0, this.children.length, e21.children.length] : [this.children.length - 1, e21.children.length - 1, -1, -1], 4), i10 = o10[0], a10 = o10[1], s10 = o10[2], c10 = o10[3]; ; i10 += n10, a10 += n10) { + if (i10 == s10 || a10 == c10) + return r10; + var l10 = this.children[i10], u10 = e21.children[a10]; + if (l10 != u10) + return r10 + l10.scanIdentical(u10, n10); + r10 += l10.length + 1; + } + } }], [{ key: "from", value: function(e21) { + var n10, r10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : e21.reduce(function(e23, t11) { + return e23 + t11.length + 1; + }, -1), o10 = 0, i10 = bo(e21); + try { + for (i10.s(); !(n10 = i10.n()).done; ) { + o10 += n10.value.lines; + } + } catch (e23) { + i10.e(e23); + } finally { + i10.f(); + } + if (o10 < 32) { + var a10, s10 = [], c10 = bo(e21); + try { + for (c10.s(); !(a10 = c10.n()).done; ) { + a10.value.flatten(s10); + } + } catch (e23) { + c10.e(e23); + } finally { + c10.f(); + } + return new JL(s10, r10); + } + var l10 = Math.max(32, o10 >> 5), u10 = l10 << 1, f10 = l10 >> 1, d10 = [], h10 = 0, v10 = -1, p10 = []; + function m10(e23) { + var n11; + if (e23.lines > u10 && e23 instanceof t10) { + var r11, o11 = bo(e23.children); + try { + for (o11.s(); !(r11 = o11.n()).done; ) { + m10(r11.value); + } + } catch (e24) { + o11.e(e24); + } finally { + o11.f(); + } + } else + e23.lines > f10 && (h10 > f10 || !h10) ? (g10(), d10.push(e23)) : e23 instanceof JL && h10 && (n11 = p10[p10.length - 1]) instanceof JL && e23.lines + n11.lines <= 32 ? (h10 += e23.lines, v10 += e23.length + 1, p10[p10.length - 1] = new JL(n11.text.concat(e23.text), n11.length + 1 + e23.length)) : (h10 + e23.lines > l10 && g10(), h10 += e23.lines, v10 += e23.length + 1, p10.push(e23)); + } + function g10() { + 0 != h10 && (d10.push(1 == p10.length ? p10[0] : t10.from(p10, v10)), v10 = -1, h10 = p10.length = 0); + } + var y10, b10 = bo(e21); + try { + for (b10.s(); !(y10 = b10.n()).done; ) { + m10(y10.value); + } + } catch (e23) { + b10.e(e23); + } finally { + b10.f(); + } + return g10(), 1 == d10.length ? d10[0] : new t10(d10, r10); + } }]), t10; + }(); + function GL(e20, t10) { + for (var n10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, r10 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1e9, o10 = 0, i10 = 0, a10 = true; i10 < e20.length && o10 <= r10; i10++) { + var s10 = e20[i10], c10 = o10 + s10.length; + c10 >= n10 && (c10 > r10 && (s10 = s10.slice(0, r10 - o10)), o10 < n10 && (s10 = s10.slice(n10 - o10)), a10 ? (t10[t10.length - 1] += s10, a10 = false) : t10.push(s10)), o10 = c10 + 1; + } + return t10; + } + function QL(e20, t10, n10) { + return GL(e20, [""], t10, n10); + } + UL.empty = new JL([""], 0); + var YL = function() { + function e20(t10) { + var n10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1; + No(this, e20), this.dir = n10, this.done = false, this.lineBreak = false, this.value = "", this.nodes = [t10], this.offsets = [n10 > 0 ? 1 : (t10 instanceof JL ? t10.text.length : t10.children.length) << 1]; + } + return Do(e20, [{ key: "nextInner", value: function(e21, t10) { + for (this.done = this.lineBreak = false; ; ) { + var n10 = this.nodes.length - 1, r10 = this.nodes[n10], o10 = this.offsets[n10], i10 = o10 >> 1, a10 = r10 instanceof JL ? r10.text.length : r10.children.length; + if (i10 == (t10 > 0 ? a10 : 0)) { + if (0 == n10) + return this.done = true, this.value = "", this; + t10 > 0 && this.offsets[n10 - 1]++, this.nodes.pop(), this.offsets.pop(); + } else if ((1 & o10) == (t10 > 0 ? 0 : 1)) { + if (this.offsets[n10] += t10, 0 == e21) + return this.lineBreak = true, this.value = "\n", this; + e21--; + } else if (r10 instanceof JL) { + var s10 = r10.text[i10 + (t10 < 0 ? -1 : 0)]; + if (this.offsets[n10] += t10, s10.length > Math.max(0, e21)) + return this.value = 0 == e21 ? s10 : t10 > 0 ? s10.slice(e21) : s10.slice(0, s10.length - e21), this; + e21 -= s10.length; + } else { + var c10 = r10.children[i10 + (t10 < 0 ? -1 : 0)]; + e21 > c10.length ? (e21 -= c10.length, this.offsets[n10] += t10) : (t10 < 0 && this.offsets[n10]--, this.nodes.push(c10), this.offsets.push(t10 > 0 ? 1 : (c10 instanceof JL ? c10.text.length : c10.children.length) << 1)); + } + } + } }, { key: "next", value: function() { + var e21 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0; + return e21 < 0 && (this.nextInner(-e21, -this.dir), e21 = this.value.length), this.nextInner(e21, this.dir); + } }]), e20; + }(); + var XL = function() { + function e20(t10, n10, r10) { + No(this, e20), this.value = "", this.done = false, this.cursor = new YL(t10, n10 > r10 ? -1 : 1), this.pos = n10 > r10 ? t10.length : 0, this.from = Math.min(n10, r10), this.to = Math.max(n10, r10); + } + return Do(e20, [{ key: "nextInner", value: function(e21, t10) { + if (t10 < 0 ? this.pos <= this.from : this.pos >= this.to) + return this.value = "", this.done = true, this; + e21 += Math.max(0, t10 < 0 ? this.pos - this.to : this.from - this.pos); + var n10 = t10 < 0 ? this.pos - this.from : this.to - this.pos; + e21 > n10 && (e21 = n10), n10 -= e21; + var r10 = this.cursor.next(e21).value; + return this.pos += (r10.length + e21) * t10, this.value = r10.length <= n10 ? r10 : t10 < 0 ? r10.slice(r10.length - n10) : r10.slice(0, n10), this.done = !this.value, this; + } }, { key: "next", value: function() { + var e21 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0; + return e21 < 0 ? e21 = Math.max(e21, this.from - this.pos) : e21 > 0 && (e21 = Math.min(e21, this.to - this.pos)), this.nextInner(e21, this.cursor.dir); + } }, { key: "lineBreak", get: function() { + return this.cursor.lineBreak && "" != this.value; + } }]), e20; + }(); + var ZL = function() { + function e20(t10) { + No(this, e20), this.inner = t10, this.afterBreak = true, this.value = "", this.done = false; + } + return Do(e20, [{ key: "next", value: function() { + var e21 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, t10 = this.inner.next(e21), n10 = t10.done, r10 = t10.lineBreak, o10 = t10.value; + return n10 && this.afterBreak ? (this.value = "", this.afterBreak = false) : n10 ? (this.done = true, this.value = "") : r10 ? this.afterBreak ? this.value = "" : (this.afterBreak = true, this.next()) : (this.value = o10, this.afterBreak = false), this; + } }, { key: "lineBreak", get: function() { + return false; + } }]), e20; + }(); + "undefined" != typeof Symbol && (UL.prototype[Symbol.iterator] = function() { + return this.iter(); + }, YL.prototype[Symbol.iterator] = XL.prototype[Symbol.iterator] = ZL.prototype[Symbol.iterator] = function() { + return this; + }); + var eF = function() { + function e20(t10, n10, r10, o10) { + No(this, e20), this.from = t10, this.to = n10, this.number = r10, this.text = o10; + } + return Do(e20, [{ key: "length", get: function() { + return this.to - this.from; + } }]), e20; + }(); + function tF(e20, t10, n10) { + return [t10 = Math.max(0, Math.min(e20.length, t10)), Math.max(t10, Math.min(e20.length, n10))]; + } + for (nF = "lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(function(e20) { + return e20 ? parseInt(e20, 36) : 1; + }), rF = 1; rF < nF.length; rF++) + nF[rF] += nF[rF - 1]; + var nF; + var rF; + function oF(e20) { + for (var t10 = 1; t10 < nF.length; t10 += 2) + if (nF[t10] > e20) + return nF[t10 - 1] <= e20; + return false; + } + function iF(e20) { + return e20 >= 127462 && e20 <= 127487; + } + var aF = 8205; + function sF(e20, t10) { + return (!(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2] ? cF : lF)(e20, t10, !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3]); + } + function cF(e20, t10, n10) { + if (t10 == e20.length) + return t10; + t10 && uF(e20.charCodeAt(t10)) && fF(e20.charCodeAt(t10 - 1)) && t10--; + var r10 = dF(e20, t10); + for (t10 += vF(r10); t10 < e20.length; ) { + var o10 = dF(e20, t10); + if (r10 == aF || o10 == aF || n10 && oF(o10)) + t10 += vF(o10), r10 = o10; + else { + if (!iF(o10)) + break; + for (var i10 = 0, a10 = t10 - 2; a10 >= 0 && iF(dF(e20, a10)); ) + i10++, a10 -= 2; + if (i10 % 2 == 0) + break; + t10 += 2; + } + } + return t10; + } + function lF(e20, t10, n10) { + for (; t10 > 0; ) { + var r10 = cF(e20, t10 - 2, n10); + if (r10 < t10) + return r10; + t10--; + } + return 0; + } + function uF(e20) { + return e20 >= 56320 && e20 < 57344; + } + function fF(e20) { + return e20 >= 55296 && e20 < 56320; + } + function dF(e20, t10) { + var n10 = e20.charCodeAt(t10); + if (!fF(n10) || t10 + 1 == e20.length) + return n10; + var r10 = e20.charCodeAt(t10 + 1); + return uF(r10) ? r10 - 56320 + (n10 - 55296 << 10) + 65536 : n10; + } + function hF(e20) { + return e20 <= 65535 ? String.fromCharCode(e20) : (e20 -= 65536, String.fromCharCode(55296 + (e20 >> 10), 56320 + (1023 & e20))); + } + function vF(e20) { + return e20 < 65536 ? 1 : 2; + } + var pF = /\r\n?|\n/; + var mF = function(e20) { + return e20[e20.Simple = 0] = "Simple", e20[e20.TrackDel = 1] = "TrackDel", e20[e20.TrackBefore = 2] = "TrackBefore", e20[e20.TrackAfter = 3] = "TrackAfter", e20; + }(mF || (mF = {})); + var gF = function() { + function e20(t10) { + No(this, e20), this.sections = t10; + } + return Do(e20, [{ key: "length", get: function() { + for (var e21 = 0, t10 = 0; t10 < this.sections.length; t10 += 2) + e21 += this.sections[t10]; + return e21; + } }, { key: "newLength", get: function() { + for (var e21 = 0, t10 = 0; t10 < this.sections.length; t10 += 2) { + var n10 = this.sections[t10 + 1]; + e21 += n10 < 0 ? this.sections[t10] : n10; + } + return e21; + } }, { key: "empty", get: function() { + return 0 == this.sections.length || 2 == this.sections.length && this.sections[1] < 0; + } }, { key: "iterGaps", value: function(e21) { + for (var t10 = 0, n10 = 0, r10 = 0; t10 < this.sections.length; ) { + var o10 = this.sections[t10++], i10 = this.sections[t10++]; + i10 < 0 ? (e21(n10, r10, o10), r10 += o10) : r10 += i10, n10 += o10; + } + } }, { key: "iterChangedRanges", value: function(e21) { + wF(this, e21, arguments.length > 1 && void 0 !== arguments[1] && arguments[1]); + } }, { key: "invertedDesc", get: function() { + for (var t10 = [], n10 = 0; n10 < this.sections.length; ) { + var r10 = this.sections[n10++], o10 = this.sections[n10++]; + o10 < 0 ? t10.push(r10, o10) : t10.push(o10, r10); + } + return new e20(t10); + } }, { key: "composeDesc", value: function(e21) { + return this.empty ? e21 : e21.empty ? this : jF(this, e21); + } }, { key: "mapDesc", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; + return e21.empty ? this : xF(this, e21, t10); + } }, { key: "mapPos", value: function(e21) { + for (var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : -1, n10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : mF.Simple, r10 = 0, o10 = 0, i10 = 0; i10 < this.sections.length; ) { + var a10 = this.sections[i10++], s10 = this.sections[i10++], c10 = r10 + a10; + if (s10 < 0) { + if (c10 > e21) + return o10 + (e21 - r10); + o10 += a10; + } else { + if (n10 != mF.Simple && c10 >= e21 && (n10 == mF.TrackDel && r10 < e21 && c10 > e21 || n10 == mF.TrackBefore && r10 < e21 || n10 == mF.TrackAfter && c10 > e21)) + return null; + if (c10 > e21 || c10 == e21 && t10 < 0 && !a10) + return e21 == r10 || t10 < 0 ? o10 : o10 + s10; + o10 += s10; + } + r10 = c10; + } + if (e21 > r10) + throw new RangeError("Position ".concat(e21, " is out of range for changeset of length ").concat(r10)); + return o10; + } }, { key: "touchesRange", value: function(e21) { + for (var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : e21, n10 = 0, r10 = 0; n10 < this.sections.length && r10 <= t10; ) { + var o10 = r10 + this.sections[n10++]; + if (this.sections[n10++] >= 0 && r10 <= t10 && o10 >= e21) + return !(r10 < e21 && o10 > t10) || "cover"; + r10 = o10; + } + return false; + } }, { key: "toString", value: function() { + for (var e21 = "", t10 = 0; t10 < this.sections.length; ) { + var n10 = this.sections[t10++], r10 = this.sections[t10++]; + e21 += (e21 ? " " : "") + n10 + (r10 >= 0 ? ":" + r10 : ""); + } + return e21; + } }, { key: "toJSON", value: function() { + return this.sections; + } }], [{ key: "fromJSON", value: function(t10) { + if (!Array.isArray(t10) || t10.length % 2 || t10.some(function(e21) { + return "number" != typeof e21; + })) + throw new RangeError("Invalid JSON representation of ChangeDesc"); + return new e20(t10); + } }, { key: "create", value: function(t10) { + return new e20(t10); + } }]), e20; + }(); + var yF = function(e20) { + function t10(e21, n10) { + var r10; + return No(this, t10), (r10 = _o(this, t10, [e21])).inserted = n10, r10; + } + return Ao(t10, gF), Do(t10, [{ key: "apply", value: function(e21) { + if (this.length != e21.length) + throw new RangeError("Applying change set to a document with the wrong length"); + return wF(this, function(t11, n10, r10, o10, i10) { + return e21 = e21.replace(r10, r10 + (n10 - t11), i10); + }, false), e21; + } }, { key: "mapDesc", value: function(e21) { + return xF(this, e21, arguments.length > 1 && void 0 !== arguments[1] && arguments[1], true); + } }, { key: "invert", value: function(e21) { + for (var n10 = this.sections.slice(), r10 = [], o10 = 0, i10 = 0; o10 < n10.length; o10 += 2) { + var a10 = n10[o10], s10 = n10[o10 + 1]; + if (s10 >= 0) { + n10[o10] = s10, n10[o10 + 1] = a10; + for (var c10 = o10 >> 1; r10.length < c10; ) + r10.push(UL.empty); + r10.push(a10 ? e21.slice(i10, i10 + a10) : UL.empty); + } + i10 += a10; + } + return new t10(n10, r10); + } }, { key: "compose", value: function(e21) { + return this.empty ? e21 : e21.empty ? this : jF(this, e21, true); + } }, { key: "map", value: function(e21) { + var t11 = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; + return e21.empty ? this : xF(this, e21, t11, true); + } }, { key: "iterChanges", value: function(e21) { + wF(this, e21, arguments.length > 1 && void 0 !== arguments[1] && arguments[1]); + } }, { key: "desc", get: function() { + return gF.create(this.sections); + } }, { key: "filter", value: function(e21) { + var n10 = [], r10 = [], o10 = [], i10 = new SF(this); + e: + for (var a10 = 0, s10 = 0; ; ) { + for (var c10 = a10 == e21.length ? 1e9 : e21[a10++]; s10 < c10 || s10 == c10 && 0 == i10.len; ) { + if (i10.done) + break e; + var l10 = Math.min(i10.len, c10 - s10); + bF(o10, l10, -1); + var u10 = -1 == i10.ins ? -1 : 0 == i10.off ? i10.ins : 0; + bF(n10, l10, u10), u10 > 0 && kF(r10, n10, i10.text), i10.forward(l10), s10 += l10; + } + for (var f10 = e21[a10++]; s10 < f10; ) { + if (i10.done) + break e; + var d10 = Math.min(i10.len, f10 - s10); + bF(n10, d10, -1), bF(o10, d10, -1 == i10.ins ? -1 : 0 == i10.off ? i10.ins : 0), i10.forward(d10), s10 += d10; + } + } + return { changes: new t10(n10, r10), filtered: gF.create(o10) }; + } }, { key: "toJSON", value: function() { + for (var e21 = [], t11 = 0; t11 < this.sections.length; t11 += 2) { + var n10 = this.sections[t11], r10 = this.sections[t11 + 1]; + r10 < 0 ? e21.push(n10) : 0 == r10 ? e21.push([n10]) : e21.push([n10].concat(this.inserted[t11 >> 1].toJSON())); + } + return e21; + } }], [{ key: "of", value: function(e21, n10, r10) { + var o10 = [], i10 = [], a10 = 0, s10 = null; + function c10() { + if (arguments.length > 0 && void 0 !== arguments[0] && arguments[0] || o10.length) { + a10 < n10 && bF(o10, n10 - a10, -1); + var e23 = new t10(o10, i10); + s10 = s10 ? s10.compose(e23.map(s10)) : e23, o10 = [], i10 = [], a10 = 0; + } + } + return function e23(l10) { + if (Array.isArray(l10)) { + var u10, f10 = bo(l10); + try { + for (f10.s(); !(u10 = f10.n()).done; ) { + e23(u10.value); + } + } catch (e24) { + f10.e(e24); + } finally { + f10.f(); + } + } else if (l10 instanceof t10) { + if (l10.length != n10) + throw new RangeError("Mismatched change set length (got ".concat(l10.length, ", expected ").concat(n10, ")")); + c10(), s10 = s10 ? s10.compose(l10.map(s10)) : l10; + } else { + var d10 = l10.from, h10 = l10.to, v10 = void 0 === h10 ? d10 : h10, p10 = l10.insert; + if (d10 > v10 || d10 < 0 || v10 > n10) + throw new RangeError("Invalid change range ".concat(d10, " to ").concat(v10, " (in doc of length ").concat(n10, ")")); + var m10 = p10 ? "string" == typeof p10 ? UL.of(p10.split(r10 || pF)) : p10 : UL.empty, g10 = m10.length; + if (d10 == v10 && 0 == g10) + return; + d10 < a10 && c10(), d10 > a10 && bF(o10, d10 - a10, -1), bF(o10, v10 - d10, g10), kF(i10, o10, m10), a10 = v10; + } + }(e21), c10(!s10), s10; + } }, { key: "empty", value: function(e21) { + return new t10(e21 ? [e21, -1] : [], []); + } }, { key: "fromJSON", value: function(e21) { + if (!Array.isArray(e21)) + throw new RangeError("Invalid JSON representation of ChangeSet"); + for (var n10 = [], r10 = [], o10 = 0; o10 < e21.length; o10++) { + var i10 = e21[o10]; + if ("number" == typeof i10) + n10.push(i10, -1); + else { + if (!Array.isArray(i10) || "number" != typeof i10[0] || i10.some(function(e23, t11) { + return t11 && "string" != typeof e23; + })) + throw new RangeError("Invalid JSON representation of ChangeSet"); + if (1 == i10.length) + n10.push(i10[0], 0); + else { + for (; r10.length < o10; ) + r10.push(UL.empty); + r10[o10] = UL.of(i10.slice(1)), n10.push(i10[0], r10[o10].length); + } + } + } + return new t10(n10, r10); + } }, { key: "createSet", value: function(e21, n10) { + return new t10(e21, n10); + } }]), t10; + }(); + function bF(e20, t10, n10) { + var r10 = arguments.length > 3 && void 0 !== arguments[3] && arguments[3]; + if (!(0 == t10 && n10 <= 0)) { + var o10 = e20.length - 2; + o10 >= 0 && n10 <= 0 && n10 == e20[o10 + 1] ? e20[o10] += t10 : 0 == t10 && 0 == e20[o10] ? e20[o10 + 1] += n10 : r10 ? (e20[o10] += t10, e20[o10 + 1] += n10) : e20.push(t10, n10); + } + } + function kF(e20, t10, n10) { + if (0 != n10.length) { + var r10 = t10.length - 2 >> 1; + if (r10 < e20.length) + e20[e20.length - 1] = e20[e20.length - 1].append(n10); + else { + for (; e20.length < r10; ) + e20.push(UL.empty); + e20.push(n10); + } + } + } + function wF(e20, t10, n10) { + for (var r10 = e20.inserted, o10 = 0, i10 = 0, a10 = 0; a10 < e20.sections.length; ) { + var s10 = e20.sections[a10++], c10 = e20.sections[a10++]; + if (c10 < 0) + o10 += s10, i10 += s10; + else { + for (var l10 = o10, u10 = i10, f10 = UL.empty; l10 += s10, u10 += c10, c10 && r10 && (f10 = f10.append(r10[a10 - 2 >> 1])), !(n10 || a10 == e20.sections.length || e20.sections[a10 + 1] < 0); ) + s10 = e20.sections[a10++], c10 = e20.sections[a10++]; + t10(o10, l10, i10, u10, f10), o10 = l10, i10 = u10; + } + } + } + function xF(e20, t10, n10) { + for (var r10 = [], o10 = arguments.length > 3 && void 0 !== arguments[3] && arguments[3] ? [] : null, i10 = new SF(e20), a10 = new SF(t10), s10 = -1; ; ) + if (-1 == i10.ins && -1 == a10.ins) { + var c10 = Math.min(i10.len, a10.len); + bF(r10, c10, -1), i10.forward(c10), a10.forward(c10); + } else if (a10.ins >= 0 && (i10.ins < 0 || s10 == i10.i || 0 == i10.off && (a10.len < i10.len || a10.len == i10.len && !n10))) { + var l10 = a10.len; + for (bF(r10, a10.ins, -1); l10; ) { + var u10 = Math.min(i10.len, l10); + i10.ins >= 0 && s10 < i10.i && i10.len <= u10 && (bF(r10, 0, i10.ins), o10 && kF(o10, r10, i10.text), s10 = i10.i), i10.forward(u10), l10 -= u10; + } + a10.next(); + } else { + if (!(i10.ins >= 0)) { + if (i10.done && a10.done) + return o10 ? yF.createSet(r10, o10) : gF.create(r10); + throw new Error("Mismatched change set lengths"); + } + for (var f10 = 0, d10 = i10.len; d10; ) + if (-1 == a10.ins) { + var h10 = Math.min(d10, a10.len); + f10 += h10, d10 -= h10, a10.forward(h10); + } else { + if (!(0 == a10.ins && a10.len < d10)) + break; + d10 -= a10.len, a10.next(); + } + bF(r10, f10, s10 < i10.i ? i10.ins : 0), o10 && s10 < i10.i && kF(o10, r10, i10.text), s10 = i10.i, i10.forward(i10.len - d10); + } + } + function jF(e20, t10) { + for (var n10 = [], r10 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2] ? [] : null, o10 = new SF(e20), i10 = new SF(t10), a10 = false; ; ) { + if (o10.done && i10.done) + return r10 ? yF.createSet(n10, r10) : gF.create(n10); + if (0 == o10.ins) + bF(n10, o10.len, 0, a10), o10.next(); + else if (0 != i10.len || i10.done) { + if (o10.done || i10.done) + throw new Error("Mismatched change set lengths"); + var s10 = Math.min(o10.len2, i10.len), c10 = n10.length; + if (-1 == o10.ins) { + var l10 = -1 == i10.ins ? -1 : i10.off ? 0 : i10.ins; + bF(n10, s10, l10, a10), r10 && l10 && kF(r10, n10, i10.text); + } else + -1 == i10.ins ? (bF(n10, o10.off ? 0 : o10.len, s10, a10), r10 && kF(r10, n10, o10.textBit(s10))) : (bF(n10, o10.off ? 0 : o10.len, i10.off ? 0 : i10.ins, a10), r10 && !i10.off && kF(r10, n10, i10.text)); + a10 = (o10.ins > s10 || i10.ins >= 0 && i10.len > s10) && (a10 || n10.length > c10), o10.forward2(s10), i10.forward(s10); + } else + bF(n10, 0, i10.ins, a10), r10 && kF(r10, n10, i10.text), i10.next(); + } + } + var SF = function() { + function e20(t10) { + No(this, e20), this.set = t10, this.i = 0, this.next(); + } + return Do(e20, [{ key: "next", value: function() { + var e21 = this.set.sections; + this.i < e21.length ? (this.len = e21[this.i++], this.ins = e21[this.i++]) : (this.len = 0, this.ins = -2), this.off = 0; + } }, { key: "done", get: function() { + return -2 == this.ins; + } }, { key: "len2", get: function() { + return this.ins < 0 ? this.len : this.ins; + } }, { key: "text", get: function() { + var e21 = this.set.inserted, t10 = this.i - 2 >> 1; + return t10 >= e21.length ? UL.empty : e21[t10]; + } }, { key: "textBit", value: function(e21) { + var t10 = this.set.inserted, n10 = this.i - 2 >> 1; + return n10 >= t10.length && !e21 ? UL.empty : t10[n10].slice(this.off, null == e21 ? void 0 : this.off + e21); + } }, { key: "forward", value: function(e21) { + e21 == this.len ? this.next() : (this.len -= e21, this.off += e21); + } }, { key: "forward2", value: function(e21) { + -1 == this.ins ? this.forward(e21) : e21 == this.ins ? this.next() : (this.ins -= e21, this.off += e21); + } }]), e20; + }(); + var CF = function() { + function e20(t10, n10, r10) { + No(this, e20), this.from = t10, this.to = n10, this.flags = r10; + } + return Do(e20, [{ key: "anchor", get: function() { + return 32 & this.flags ? this.to : this.from; + } }, { key: "head", get: function() { + return 32 & this.flags ? this.from : this.to; + } }, { key: "empty", get: function() { + return this.from == this.to; + } }, { key: "assoc", get: function() { + return 8 & this.flags ? -1 : 16 & this.flags ? 1 : 0; + } }, { key: "bidiLevel", get: function() { + var e21 = 7 & this.flags; + return 7 == e21 ? null : e21; + } }, { key: "goalColumn", get: function() { + var e21 = this.flags >> 6; + return 16777215 == e21 ? void 0 : e21; + } }, { key: "map", value: function(t10) { + var n10, r10, o10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : -1; + return this.empty ? n10 = r10 = t10.mapPos(this.from, o10) : (n10 = t10.mapPos(this.from, 1), r10 = t10.mapPos(this.to, -1)), n10 == this.from && r10 == this.to ? this : new e20(n10, r10, this.flags); + } }, { key: "extend", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : e21; + if (e21 <= this.anchor && t10 >= this.anchor) + return $F.range(e21, t10); + var n10 = Math.abs(e21 - this.anchor) > Math.abs(t10 - this.anchor) ? e21 : t10; + return $F.range(this.anchor, n10); + } }, { key: "eq", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; + return !(this.anchor != e21.anchor || this.head != e21.head || t10 && this.empty && this.assoc != e21.assoc); + } }, { key: "toJSON", value: function() { + return { anchor: this.anchor, head: this.head }; + } }], [{ key: "fromJSON", value: function(e21) { + if (!e21 || "number" != typeof e21.anchor || "number" != typeof e21.head) + throw new RangeError("Invalid JSON representation for SelectionRange"); + return $F.range(e21.anchor, e21.head); + } }, { key: "create", value: function(t10, n10, r10) { + return new e20(t10, n10, r10); + } }]), e20; + }(); + var $F = function() { + function e20(t10, n10) { + No(this, e20), this.ranges = t10, this.mainIndex = n10; + } + return Do(e20, [{ key: "map", value: function(t10) { + var n10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : -1; + return t10.empty ? this : e20.create(this.ranges.map(function(e21) { + return e21.map(t10, n10); + }), this.mainIndex); + } }, { key: "eq", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; + if (this.ranges.length != e21.ranges.length || this.mainIndex != e21.mainIndex) + return false; + for (var n10 = 0; n10 < this.ranges.length; n10++) + if (!this.ranges[n10].eq(e21.ranges[n10], t10)) + return false; + return true; + } }, { key: "main", get: function() { + return this.ranges[this.mainIndex]; + } }, { key: "asSingle", value: function() { + return 1 == this.ranges.length ? this : new e20([this.main], 0); + } }, { key: "addRange", value: function(t10) { + var n10 = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1]; + return e20.create([t10].concat(this.ranges), n10 ? 0 : this.mainIndex + 1); + } }, { key: "replaceRange", value: function(t10) { + var n10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.mainIndex, r10 = this.ranges.slice(); + return r10[n10] = t10, e20.create(r10, this.mainIndex); + } }, { key: "toJSON", value: function() { + return { ranges: this.ranges.map(function(e21) { + return e21.toJSON(); + }), main: this.mainIndex }; + } }], [{ key: "fromJSON", value: function(t10) { + if (!t10 || !Array.isArray(t10.ranges) || "number" != typeof t10.main || t10.main >= t10.ranges.length) + throw new RangeError("Invalid JSON representation for EditorSelection"); + return new e20(t10.ranges.map(function(e21) { + return CF.fromJSON(e21); + }), t10.main); + } }, { key: "single", value: function(t10) { + var n10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : t10; + return new e20([e20.range(t10, n10)], 0); + } }, { key: "create", value: function(t10) { + var n10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0; + if (0 == t10.length) + throw new RangeError("A selection needs at least one range"); + for (var r10 = 0, o10 = 0; o10 < t10.length; o10++) { + var i10 = t10[o10]; + if (i10.empty ? i10.from <= r10 : i10.from < r10) + return e20.normalized(t10.slice(), n10); + r10 = i10.to; + } + return new e20(t10, n10); + } }, { key: "cursor", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n10 = arguments.length > 2 ? arguments[2] : void 0, r10 = arguments.length > 3 ? arguments[3] : void 0; + return CF.create(e21, e21, (0 == t10 ? 0 : t10 < 0 ? 8 : 16) | (null == n10 ? 7 : Math.min(6, n10)) | (null != r10 ? r10 : 16777215) << 6); + } }, { key: "range", value: function(e21, t10, n10, r10) { + var o10 = (null != n10 ? n10 : 16777215) << 6 | (null == r10 ? 7 : Math.min(6, r10)); + return t10 < e21 ? CF.create(t10, e21, 48 | o10) : CF.create(e21, t10, (t10 > e21 ? 8 : 0) | o10); + } }, { key: "normalized", value: function(t10) { + var n10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, r10 = t10[n10]; + t10.sort(function(e21, t11) { + return e21.from - t11.from; + }), n10 = t10.indexOf(r10); + for (var o10 = 1; o10 < t10.length; o10++) { + var i10 = t10[o10], a10 = t10[o10 - 1]; + if (i10.empty ? i10.from <= a10.to : i10.from < a10.to) { + var s10 = a10.from, c10 = Math.max(i10.to, a10.to); + o10 <= n10 && n10--, t10.splice(--o10, 2, i10.anchor > i10.head ? e20.range(c10, s10) : e20.range(s10, c10)); + } + } + return new e20(t10, n10); + } }]), e20; + }(); + function _F(e20, t10) { + var n10, r10 = bo(e20.ranges); + try { + for (r10.s(); !(n10 = r10.n()).done; ) { + if (n10.value.to > t10) + throw new RangeError("Selection points outside of document"); + } + } catch (e21) { + r10.e(e21); + } finally { + r10.f(); + } + } + var OF = 0; + var MF = function() { + function e20(t10, n10, r10, o10, i10) { + No(this, e20), this.combine = t10, this.compareInput = n10, this.compare = r10, this.isStatic = o10, this.id = OF++, this.default = t10([]), this.extensions = "function" == typeof i10 ? i10(this) : i10; + } + return Do(e20, [{ key: "reader", get: function() { + return this; + } }, { key: "of", value: function(e21) { + return new AF([], this, 0, e21); + } }, { key: "compute", value: function(e21, t10) { + if (this.isStatic) + throw new Error("Can't compute a static facet"); + return new AF(e21, this, 1, t10); + } }, { key: "computeN", value: function(e21, t10) { + if (this.isStatic) + throw new Error("Can't compute a static facet"); + return new AF(e21, this, 2, t10); + } }, { key: "from", value: function(e21, t10) { + return t10 || (t10 = function(e23) { + return e23; + }), this.compute([e21], function(n10) { + return t10(n10.field(e21)); + }); + } }], [{ key: "define", value: function() { + var t10 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + return new e20(t10.combine || function(e21) { + return e21; + }, t10.compareInput || function(e21, t11) { + return e21 === t11; + }, t10.compare || (t10.combine ? function(e21, t11) { + return e21 === t11; + } : EF), !!t10.static, t10.enables); + } }]), e20; + }(); + function EF(e20, t10) { + return e20 == t10 || e20.length == t10.length && e20.every(function(e21, n10) { + return e21 === t10[n10]; + }); + } + var AF = function() { + function e20(t10, n10, r10, o10) { + No(this, e20), this.dependencies = t10, this.facet = n10, this.type = r10, this.value = o10, this.id = OF++; + } + return Do(e20, [{ key: "dynamicSlot", value: function(e21) { + var t10, n10, r10 = this, o10 = this.value, i10 = this.facet.compareInput, a10 = this.id, s10 = e21[a10] >> 1, c10 = 2 == this.type, l10 = false, u10 = false, f10 = [], d10 = bo(this.dependencies); + try { + for (d10.s(); !(n10 = d10.n()).done; ) { + var h10 = n10.value; + "doc" == h10 ? l10 = true : "selection" == h10 ? u10 = true : 0 == (1 & (null !== (t10 = e21[h10.id]) && void 0 !== t10 ? t10 : 1)) && f10.push(e21[h10.id]); + } + } catch (e23) { + d10.e(e23); + } finally { + d10.f(); + } + return { create: function(e23) { + return e23.values[s10] = o10(e23), 1; + }, update: function(e23, t11) { + if (l10 && t11.docChanged || u10 && (t11.docChanged || t11.selection) || TF(e23, f10)) { + var n11 = o10(e23); + if (c10 ? !PF(n11, e23.values[s10], i10) : !i10(n11, e23.values[s10])) + return e23.values[s10] = n11, 1; + } + return 0; + }, reconfigure: function(e23, t11) { + var n11, l11 = t11.config.address[a10]; + if (null != l11) { + var u11 = JF(t11, l11); + if (r10.dependencies.every(function(n12) { + return n12 instanceof MF ? t11.facet(n12) === e23.facet(n12) : !(n12 instanceof NF) || t11.field(n12, false) == e23.field(n12, false); + }) || (c10 ? PF(n11 = o10(e23), u11, i10) : i10(n11 = o10(e23), u11))) + return e23.values[s10] = u11, 0; + } else + n11 = o10(e23); + return e23.values[s10] = n11, 1; + } }; + } }]), e20; + }(); + function PF(e20, t10, n10) { + if (e20.length != t10.length) + return false; + for (var r10 = 0; r10 < e20.length; r10++) + if (!n10(e20[r10], t10[r10])) + return false; + return true; + } + function TF(e20, t10) { + var n10, r10 = false, o10 = bo(t10); + try { + for (o10.s(); !(n10 = o10.n()).done; ) { + 1 & UF(e20, n10.value) && (r10 = true); + } + } catch (e21) { + o10.e(e21); + } finally { + o10.f(); + } + return r10; + } + var RF = MF.define({ static: true }); + var NF = function() { + function e20(t10, n10, r10, o10, i10) { + No(this, e20), this.id = t10, this.createF = n10, this.updateF = r10, this.compareF = o10, this.spec = i10, this.provides = void 0; + } + return Do(e20, [{ key: "create", value: function(e21) { + var t10 = this, n10 = e21.facet(RF).find(function(e23) { + return e23.field == t10; + }); + return ((null == n10 ? void 0 : n10.create) || this.createF)(e21); + } }, { key: "slot", value: function(e21) { + var t10 = this, n10 = e21[this.id] >> 1; + return { create: function(e23) { + return e23.values[n10] = t10.create(e23), 1; + }, update: function(e23, r10) { + var o10 = e23.values[n10], i10 = t10.updateF(o10, r10); + return t10.compareF(o10, i10) ? 0 : (e23.values[n10] = i10, 1); + }, reconfigure: function(e23, r10) { + return null != r10.config.address[t10.id] ? (e23.values[n10] = r10.field(t10), 0) : (e23.values[n10] = t10.create(e23), 1); + } }; + } }, { key: "init", value: function(e21) { + return [this, RF.of({ field: this, create: e21 })]; + } }, { key: "extension", get: function() { + return this; + } }], [{ key: "define", value: function(t10) { + var n10 = new e20(OF++, t10.create, t10.update, t10.compare || function(e21, t11) { + return e21 === t11; + }, t10); + return t10.provide && (n10.provides = t10.provide(n10)), n10; + } }]), e20; + }(); + var IF = 4; + var DF = 3; + var qF = 2; + var zF = 1; + function BF(e20) { + return function(t10) { + return new FF(t10, e20); + }; + } + var LF = { highest: BF(0), high: BF(zF), default: BF(qF), low: BF(DF), lowest: BF(IF) }; + var FF = Do(function e2(t10, n10) { + No(this, e2), this.inner = t10, this.prec = n10; + }); + var VF = function() { + function e20() { + No(this, e20); + } + return Do(e20, [{ key: "of", value: function(e21) { + return new HF(this, e21); + } }, { key: "reconfigure", value: function(t10) { + return e20.reconfigure.of({ compartment: this, extension: t10 }); + } }, { key: "get", value: function(e21) { + return e21.config.compartments.get(this); + } }]), e20; + }(); + var HF = Do(function e3(t10, n10) { + No(this, e3), this.compartment = t10, this.inner = n10; + }); + var WF = function() { + function e20(t10, n10, r10, o10, i10, a10) { + for (No(this, e20), this.base = t10, this.compartments = n10, this.dynamicSlots = r10, this.address = o10, this.staticValues = i10, this.facets = a10, this.statusTemplate = []; this.statusTemplate.length < r10.length; ) + this.statusTemplate.push(0); + } + return Do(e20, [{ key: "staticFacet", value: function(e21) { + var t10 = this.address[e21.id]; + return null == t10 ? e21.default : this.staticValues[t10 >> 1]; + } }], [{ key: "resolve", value: function(t10, n10, r10) { + var o10, i10 = [], a10 = /* @__PURE__ */ Object.create(null), s10 = /* @__PURE__ */ new Map(), c10 = bo(function(e21, t11, n11) { + var r11 = [[], [], [], [], []], o11 = /* @__PURE__ */ new Map(); + function i11(e23, a11) { + var s11 = o11.get(e23); + if (null != s11) { + if (s11 <= a11) + return; + var c11 = r11[s11].indexOf(e23); + c11 > -1 && r11[s11].splice(c11, 1), e23 instanceof HF && n11.delete(e23.compartment); + } + if (o11.set(e23, a11), Array.isArray(e23)) { + var l11, u11 = bo(e23); + try { + for (u11.s(); !(l11 = u11.n()).done; ) { + i11(l11.value, a11); + } + } catch (e24) { + u11.e(e24); + } finally { + u11.f(); + } + } else if (e23 instanceof HF) { + if (n11.has(e23.compartment)) + throw new RangeError("Duplicate use of compartment in extensions"); + var f11 = t11.get(e23.compartment) || e23.inner; + n11.set(e23.compartment, f11), i11(f11, a11); + } else if (e23 instanceof FF) + i11(e23.inner, e23.prec); + else if (e23 instanceof NF) + r11[a11].push(e23), e23.provides && i11(e23.provides, a11); + else if (e23 instanceof AF) + r11[a11].push(e23), e23.facet.extensions && i11(e23.facet.extensions, qF); + else { + var d11 = e23.extension; + if (!d11) + throw new Error("Unrecognized extension value in extension set (".concat(e23, "). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.")); + i11(d11, a11); + } + } + return i11(e21, qF), r11.reduce(function(e23, t12) { + return e23.concat(t12); + }); + }(t10, n10, s10)); + try { + for (c10.s(); !(o10 = c10.n()).done; ) { + var l10 = o10.value; + l10 instanceof NF ? i10.push(l10) : (a10[l10.facet.id] || (a10[l10.facet.id] = [])).push(l10); + } + } catch (e21) { + c10.e(e21); + } finally { + c10.f(); + } + for (var u10 = /* @__PURE__ */ Object.create(null), f10 = [], d10 = [], h10 = function() { + var e21 = p10[v10]; + u10[e21.id] = d10.length << 1, d10.push(function(t11) { + return e21.slot(t11); + }); + }, v10 = 0, p10 = i10; v10 < p10.length; v10++) + h10(); + var m10 = null == r10 ? void 0 : r10.config.facets, g10 = function() { + var e21 = a10[y10], t11 = e21[0].facet, n11 = m10 && m10[y10] || []; + if (e21.every(function(e23) { + return 0 == e23.type; + })) + if (u10[t11.id] = f10.length << 1 | 1, EF(n11, e21)) + f10.push(r10.facet(t11)); + else { + var o11 = t11.combine(e21.map(function(e23) { + return e23.value; + })); + f10.push(r10 && t11.compare(o11, r10.facet(t11)) ? r10.facet(t11) : o11); + } + else { + var i11, s11 = bo(e21); + try { + var c11 = function() { + var e23 = i11.value; + 0 == e23.type ? (u10[e23.id] = f10.length << 1 | 1, f10.push(e23.value)) : (u10[e23.id] = d10.length << 1, d10.push(function(t12) { + return e23.dynamicSlot(t12); + })); + }; + for (s11.s(); !(i11 = s11.n()).done; ) + c11(); + } catch (e23) { + s11.e(e23); + } finally { + s11.f(); + } + u10[t11.id] = d10.length << 1, d10.push(function(n12) { + return function(e23, t12, n13) { + var r11 = n13.map(function(t13) { + return e23[t13.id]; + }), o12 = n13.map(function(e24) { + return e24.type; + }), i12 = r11.filter(function(e24) { + return !(1 & e24); + }), a11 = e23[t12.id] >> 1; + function s12(e24) { + for (var n14 = [], i13 = 0; i13 < r11.length; i13++) { + var a12 = JF(e24, r11[i13]); + if (2 == o12[i13]) { + var s13, c12 = bo(a12); + try { + for (c12.s(); !(s13 = c12.n()).done; ) { + var l11 = s13.value; + n14.push(l11); + } + } catch (e25) { + c12.e(e25); + } finally { + c12.f(); + } + } else + n14.push(a12); + } + return t12.combine(n14); + } + return { create: function(e24) { + var t13, n14 = bo(r11); + try { + for (n14.s(); !(t13 = n14.n()).done; ) + UF(e24, t13.value); + } catch (e25) { + n14.e(e25); + } finally { + n14.f(); + } + return e24.values[a11] = s12(e24), 1; + }, update: function(e24, n14) { + if (!TF(e24, i12)) + return 0; + var r12 = s12(e24); + return t12.compare(r12, e24.values[a11]) ? 0 : (e24.values[a11] = r12, 1); + }, reconfigure: function(e24, o13) { + var i13 = TF(e24, r11), c12 = o13.config.facets[t12.id], l11 = o13.facet(t12); + if (c12 && !i13 && EF(n13, c12)) + return e24.values[a11] = l11, 0; + var u11 = s12(e24); + return t12.compare(u11, l11) ? (e24.values[a11] = l11, 0) : (e24.values[a11] = u11, 1); + } }; + }(n12, t11, e21); + }); + } + }; + for (var y10 in a10) + g10(); + return new e20(t10, s10, d10.map(function(e21) { + return e21(u10); + }), u10, f10, a10); + } }]), e20; + }(); + function UF(e20, t10) { + if (1 & t10) + return 2; + var n10 = t10 >> 1, r10 = e20.status[n10]; + if (4 == r10) + throw new Error("Cyclic dependency between fields and/or facets"); + if (2 & r10) + return r10; + e20.status[n10] = 4; + var o10 = e20.computeSlot(e20, e20.config.dynamicSlots[n10]); + return e20.status[n10] = 2 | o10; + } + function JF(e20, t10) { + return 1 & t10 ? e20.config.staticValues[t10 >> 1] : e20.values[t10 >> 1]; + } + var KF = MF.define(); + var GF = MF.define({ combine: function(e20) { + return e20.some(function(e21) { + return e21; + }); + }, static: true }); + var QF = MF.define({ combine: function(e20) { + return e20.length ? e20[0] : void 0; + }, static: true }); + var YF = MF.define(); + var XF = MF.define(); + var ZF = MF.define(); + var eV = MF.define({ combine: function(e20) { + return !!e20.length && e20[0]; + } }); + var tV = function() { + function e20(t10, n10) { + No(this, e20), this.type = t10, this.value = n10; + } + return Do(e20, null, [{ key: "define", value: function() { + return new nV(); + } }]), e20; + }(); + var nV = function() { + function e20() { + No(this, e20); + } + return Do(e20, [{ key: "of", value: function(e21) { + return new tV(this, e21); + } }]), e20; + }(); + var rV = function() { + function e20(t10) { + No(this, e20), this.map = t10; + } + return Do(e20, [{ key: "of", value: function(e21) { + return new oV(this, e21); + } }]), e20; + }(); + var oV = function() { + function e20(t10, n10) { + No(this, e20), this.type = t10, this.value = n10; + } + return Do(e20, [{ key: "map", value: function(t10) { + var n10 = this.type.map(this.value, t10); + return void 0 === n10 ? void 0 : n10 == this.value ? this : new e20(this.type, n10); + } }, { key: "is", value: function(e21) { + return this.type == e21; + } }], [{ key: "define", value: function() { + return new rV((arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).map || function(e21) { + return e21; + }); + } }, { key: "mapEffects", value: function(e21, t10) { + if (!e21.length) + return e21; + var n10, r10 = [], o10 = bo(e21); + try { + for (o10.s(); !(n10 = o10.n()).done; ) { + var i10 = n10.value.map(t10); + i10 && r10.push(i10); + } + } catch (e23) { + o10.e(e23); + } finally { + o10.f(); + } + return r10; + } }]), e20; + }(); + oV.reconfigure = oV.define(), oV.appendConfig = oV.define(); + var iV = function() { + function e20(t10, n10, r10, o10, i10, a10) { + No(this, e20), this.startState = t10, this.changes = n10, this.selection = r10, this.effects = o10, this.annotations = i10, this.scrollIntoView = a10, this._doc = null, this._state = null, r10 && _F(r10, n10.newLength), i10.some(function(t11) { + return t11.type == e20.time; + }) || (this.annotations = i10.concat(e20.time.of(Date.now()))); + } + return Do(e20, [{ key: "newDoc", get: function() { + return this._doc || (this._doc = this.changes.apply(this.startState.doc)); + } }, { key: "newSelection", get: function() { + return this.selection || this.startState.selection.map(this.changes); + } }, { key: "state", get: function() { + return this._state || this.startState.applyTransaction(this), this._state; + } }, { key: "annotation", value: function(e21) { + var t10, n10 = bo(this.annotations); + try { + for (n10.s(); !(t10 = n10.n()).done; ) { + var r10 = t10.value; + if (r10.type == e21) + return r10.value; + } + } catch (e23) { + n10.e(e23); + } finally { + n10.f(); + } + } }, { key: "docChanged", get: function() { + return !this.changes.empty; + } }, { key: "reconfigured", get: function() { + return this.startState.config != this.state.config; + } }, { key: "isUserEvent", value: function(t10) { + var n10 = this.annotation(e20.userEvent); + return !(!n10 || !(n10 == t10 || n10.length > t10.length && n10.slice(0, t10.length) == t10 && "." == n10[t10.length])); + } }], [{ key: "create", value: function(t10, n10, r10, o10, i10, a10) { + return new e20(t10, n10, r10, o10, i10, a10); + } }]), e20; + }(); + function aV(e20, t10) { + for (var n10 = [], r10 = 0, o10 = 0; ; ) { + var i10 = void 0, a10 = void 0; + if (r10 < e20.length && (o10 == t10.length || t10[o10] >= e20[r10])) + i10 = e20[r10++], a10 = e20[r10++]; + else { + if (!(o10 < t10.length)) + return n10; + i10 = t10[o10++], a10 = t10[o10++]; + } + !n10.length || n10[n10.length - 1] < i10 ? n10.push(i10, a10) : n10[n10.length - 1] < a10 && (n10[n10.length - 1] = a10); + } + } + function sV(e20, t10, n10) { + var r10, o10, i10, a10; + return n10 ? (o10 = t10.changes, i10 = yF.empty(t10.changes.length), a10 = e20.changes.compose(t10.changes)) : (o10 = t10.changes.map(e20.changes), i10 = e20.changes.mapDesc(t10.changes, true), a10 = e20.changes.compose(o10)), { changes: a10, selection: t10.selection ? t10.selection.map(i10) : null === (r10 = e20.selection) || void 0 === r10 ? void 0 : r10.map(o10), effects: oV.mapEffects(e20.effects, o10).concat(oV.mapEffects(t10.effects, i10)), annotations: e20.annotations.length ? e20.annotations.concat(t10.annotations) : t10.annotations, scrollIntoView: e20.scrollIntoView || t10.scrollIntoView }; + } + function cV(e20, t10, n10) { + var r10 = t10.selection, o10 = fV(t10.annotations); + return t10.userEvent && (o10 = o10.concat(iV.userEvent.of(t10.userEvent))), { changes: t10.changes instanceof yF ? t10.changes : yF.of(t10.changes || [], n10, e20.facet(QF)), selection: r10 && (r10 instanceof $F ? r10 : $F.single(r10.anchor, r10.head)), effects: fV(t10.effects), annotations: o10, scrollIntoView: !!t10.scrollIntoView }; + } + function lV(e20, t10, n10) { + var r10 = cV(e20, t10.length ? t10[0] : {}, e20.doc.length); + t10.length && false === t10[0].filter && (n10 = false); + for (var o10 = 1; o10 < t10.length; o10++) { + false === t10[o10].filter && (n10 = false); + var i10 = !!t10[o10].sequential; + r10 = sV(r10, cV(e20, t10[o10], i10 ? r10.changes.newLength : e20.doc.length), i10); + } + var a10 = iV.create(e20, r10.changes, r10.selection, r10.effects, r10.annotations, r10.scrollIntoView); + return function(e21) { + for (var t11 = e21.startState, n11 = t11.facet(ZF), r11 = e21, o11 = n11.length - 1; o11 >= 0; o11--) { + var i11 = n11[o11](e21); + i11 && Object.keys(i11).length && (r11 = sV(r11, cV(t11, i11, e21.changes.newLength), true)); + } + return r11 == e21 ? e21 : iV.create(t11, e21.changes, e21.selection, r11.effects, r11.annotations, r11.scrollIntoView); + }(n10 ? function(e21) { + var t11, n11 = e21.startState, r11 = true, o11 = bo(n11.facet(YF)); + try { + for (o11.s(); !(t11 = o11.n()).done; ) { + var i11 = (0, t11.value)(e21); + if (false === i11) { + r11 = false; + break; + } + Array.isArray(i11) && (r11 = true === r11 ? i11 : aV(r11, i11)); + } + } catch (e23) { + o11.e(e23); + } finally { + o11.f(); + } + if (true !== r11) { + var a11, s10; + if (false === r11) + s10 = e21.changes.invertedDesc, a11 = yF.empty(n11.doc.length); + else { + var c10 = e21.changes.filter(r11); + a11 = c10.changes, s10 = c10.filtered.mapDesc(c10.changes).invertedDesc; + } + e21 = iV.create(n11, a11, e21.selection && e21.selection.map(s10), oV.mapEffects(e21.effects, s10), e21.annotations, e21.scrollIntoView); + } + for (var l10 = n11.facet(XF), u10 = l10.length - 1; u10 >= 0; u10--) { + var f10 = l10[u10](e21); + e21 = f10 instanceof iV ? f10 : Array.isArray(f10) && 1 == f10.length && f10[0] instanceof iV ? f10[0] : lV(n11, fV(f10), false); + } + return e21; + }(a10) : a10); + } + iV.time = tV.define(), iV.userEvent = tV.define(), iV.addToHistory = tV.define(), iV.remote = tV.define(); + var uV = []; + function fV(e20) { + return null == e20 ? uV : Array.isArray(e20) ? e20 : [e20]; + } + var dV; + var hV = function(e20) { + return e20[e20.Word = 0] = "Word", e20[e20.Space = 1] = "Space", e20[e20.Other = 2] = "Other", e20; + }(hV || (hV = {})); + var vV = /[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/; + try { + dV = new RegExp("[\\p{Alphabetic}\\p{Number}_]", "u"); + } catch (E_2) { + } + function pV(e20) { + return function(t10) { + if (!/\S/.test(t10)) + return hV.Space; + if (function(e21) { + if (dV) + return dV.test(e21); + for (var t11 = 0; t11 < e21.length; t11++) { + var n11 = e21[t11]; + if (/\w/.test(n11) || n11 > "\x80" && (n11.toUpperCase() != n11.toLowerCase() || vV.test(n11))) + return true; + } + return false; + }(t10)) + return hV.Word; + for (var n10 = 0; n10 < e20.length; n10++) + if (t10.indexOf(e20[n10]) > -1) + return hV.Word; + return hV.Other; + }; + } + var mV = function() { + function e20(t10, n10, r10, o10, i10, a10) { + No(this, e20), this.config = t10, this.doc = n10, this.selection = r10, this.values = o10, this.status = t10.statusTemplate.slice(), this.computeSlot = i10, a10 && (a10._state = this); + for (var s10 = 0; s10 < this.config.dynamicSlots.length; s10++) + UF(this, s10 << 1); + this.computeSlot = null; + } + return Do(e20, [{ key: "field", value: function(e21) { + var t10 = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], n10 = this.config.address[e21.id]; + if (null != n10) + return UF(this, n10), JF(this, n10); + if (t10) + throw new RangeError("Field is not present in this state"); + } }, { key: "update", value: function() { + for (var e21 = arguments.length, t10 = new Array(e21), n10 = 0; n10 < e21; n10++) + t10[n10] = arguments[n10]; + return lV(this, t10, true); + } }, { key: "applyTransaction", value: function(t10) { + var n10, r10, o10 = this, i10 = this.config, a10 = i10, s10 = a10.base, c10 = a10.compartments, l10 = bo(t10.effects); + try { + for (l10.s(); !(n10 = l10.n()).done; ) { + var u10 = n10.value; + u10.is(VF.reconfigure) ? (i10 && (c10 = /* @__PURE__ */ new Map(), i10.compartments.forEach(function(e21, t11) { + return c10.set(t11, e21); + }), i10 = null), c10.set(u10.value.compartment, u10.value.extension)) : u10.is(oV.reconfigure) ? (i10 = null, s10 = u10.value) : u10.is(oV.appendConfig) && (i10 = null, s10 = fV(s10).concat(u10.value)); + } + } catch (e21) { + l10.e(e21); + } finally { + l10.f(); + } + i10 ? r10 = t10.startState.values.slice() : r10 = new e20(i10 = WF.resolve(s10, c10, this), this.doc, this.selection, i10.dynamicSlots.map(function() { + return null; + }), function(e21, t11) { + return t11.reconfigure(e21, o10); + }, null).values; + var f10 = t10.startState.facet(GF) ? t10.newSelection : t10.newSelection.asSingle(); + new e20(i10, t10.newDoc, f10, r10, function(e21, n11) { + return n11.update(e21, t10); + }, t10); + } }, { key: "replaceSelection", value: function(e21) { + return "string" == typeof e21 && (e21 = this.toText(e21)), this.changeByRange(function(t10) { + return { changes: { from: t10.from, to: t10.to, insert: e21 }, range: $F.cursor(t10.from + e21.length) }; + }); + } }, { key: "changeByRange", value: function(e21) { + for (var t10 = this.selection, n10 = e21(t10.ranges[0]), r10 = this.changes(n10.changes), o10 = [n10.range], i10 = fV(n10.effects), a10 = 1; a10 < t10.ranges.length; a10++) { + for (var s10 = e21(t10.ranges[a10]), c10 = this.changes(s10.changes), l10 = c10.map(r10), u10 = 0; u10 < a10; u10++) + o10[u10] = o10[u10].map(l10); + var f10 = r10.mapDesc(c10, true); + o10.push(s10.range.map(f10)), r10 = r10.compose(l10), i10 = oV.mapEffects(i10, l10).concat(oV.mapEffects(fV(s10.effects), f10)); + } + return { changes: r10, selection: $F.create(o10, t10.mainIndex), effects: i10 }; + } }, { key: "changes", value: function() { + var t10 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : []; + return t10 instanceof yF ? t10 : yF.of(t10, this.doc.length, this.facet(e20.lineSeparator)); + } }, { key: "toText", value: function(t10) { + return UL.of(t10.split(this.facet(e20.lineSeparator) || pF)); + } }, { key: "sliceDoc", value: function() { + var e21 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.doc.length; + return this.doc.sliceString(e21, t10, this.lineBreak); + } }, { key: "facet", value: function(e21) { + var t10 = this.config.address[e21.id]; + return null == t10 ? e21.default : (UF(this, t10), JF(this, t10)); + } }, { key: "toJSON", value: function(e21) { + var t10 = { doc: this.sliceDoc(), selection: this.selection.toJSON() }; + if (e21) + for (var n10 in e21) { + var r10 = e21[n10]; + r10 instanceof NF && null != this.config.address[r10.id] && (t10[n10] = r10.spec.toJSON(this.field(e21[n10]), this)); + } + return t10; + } }, { key: "tabSize", get: function() { + return this.facet(e20.tabSize); + } }, { key: "lineBreak", get: function() { + return this.facet(e20.lineSeparator) || "\n"; + } }, { key: "readOnly", get: function() { + return this.facet(eV); + } }, { key: "phrase", value: function(t10) { + for (var n10 = arguments.length, r10 = new Array(n10 > 1 ? n10 - 1 : 0), o10 = 1; o10 < n10; o10++) + r10[o10 - 1] = arguments[o10]; + var i10, a10 = bo(this.facet(e20.phrases)); + try { + for (a10.s(); !(i10 = a10.n()).done; ) { + var s10 = i10.value; + if (Object.prototype.hasOwnProperty.call(s10, t10)) { + t10 = s10[t10]; + break; + } + } + } catch (e21) { + a10.e(e21); + } finally { + a10.f(); + } + return r10.length && (t10 = t10.replace(/\$(\$|\d*)/g, function(e21, t11) { + if ("$" == t11) + return "$"; + var n11 = +(t11 || 1); + return !n11 || n11 > r10.length ? e21 : r10[n11 - 1]; + })), t10; + } }, { key: "languageDataAt", value: function(e21, t10) { + var n10, r10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : -1, o10 = [], i10 = bo(this.facet(KF)); + try { + for (i10.s(); !(n10 = i10.n()).done; ) { + var a10, s10 = bo((0, n10.value)(this, t10, r10)); + try { + for (s10.s(); !(a10 = s10.n()).done; ) { + var c10 = a10.value; + Object.prototype.hasOwnProperty.call(c10, e21) && o10.push(c10[e21]); + } + } catch (e23) { + s10.e(e23); + } finally { + s10.f(); + } + } + } catch (e23) { + i10.e(e23); + } finally { + i10.f(); + } + return o10; + } }, { key: "charCategorizer", value: function(e21) { + return pV(this.languageDataAt("wordChars", e21).join("")); + } }, { key: "wordAt", value: function(e21) { + for (var t10 = this.doc.lineAt(e21), n10 = t10.text, r10 = t10.from, o10 = t10.length, i10 = this.charCategorizer(e21), a10 = e21 - r10, s10 = e21 - r10; a10 > 0; ) { + var c10 = sF(n10, a10, false); + if (i10(n10.slice(c10, a10)) != hV.Word) + break; + a10 = c10; + } + for (; s10 < o10; ) { + var l10 = sF(n10, s10); + if (i10(n10.slice(s10, l10)) != hV.Word) + break; + s10 = l10; + } + return a10 == s10 ? null : $F.range(a10 + r10, s10 + r10); + } }], [{ key: "fromJSON", value: function(t10) { + var n10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, r10 = arguments.length > 2 ? arguments[2] : void 0; + if (!t10 || "string" != typeof t10.doc) + throw new RangeError("Invalid JSON representation for EditorState"); + var o10 = []; + if (r10) { + var i10 = function() { + if (Object.prototype.hasOwnProperty.call(t10, a10)) { + var e21 = r10[a10], n11 = t10[a10]; + o10.push(e21.init(function(t11) { + return e21.spec.fromJSON(n11, t11); + })); + } + }; + for (var a10 in r10) + i10(); + } + return e20.create({ doc: t10.doc, selection: $F.fromJSON(t10.selection), extensions: n10.extensions ? o10.concat([n10.extensions]) : o10 }); + } }, { key: "create", value: function() { + var t10 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, n10 = WF.resolve(t10.extensions || [], /* @__PURE__ */ new Map()), r10 = t10.doc instanceof UL ? t10.doc : UL.of((t10.doc || "").split(n10.staticFacet(e20.lineSeparator) || pF)), o10 = t10.selection ? t10.selection instanceof $F ? t10.selection : $F.single(t10.selection.anchor, t10.selection.head) : $F.single(0); + return _F(o10, r10.length), n10.staticFacet(GF) || (o10 = o10.asSingle()), new e20(n10, r10, o10, n10.dynamicSlots.map(function() { + return null; + }), function(e21, t11) { + return t11.create(e21); + }, null); + } }]), e20; + }(); + function gV(e20, t10) { + var n10, r10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, o10 = {}, i10 = bo(e20); + try { + for (i10.s(); !(n10 = i10.n()).done; ) + for (var a10 = n10.value, s10 = 0, c10 = Object.keys(a10); s10 < c10.length; s10++) { + var l10 = c10[s10], u10 = a10[l10], f10 = o10[l10]; + if (void 0 === f10) + o10[l10] = u10; + else if (f10 === u10 || void 0 === u10) + ; + else { + if (!Object.hasOwnProperty.call(r10, l10)) + throw new Error("Config merge conflict for field " + l10); + o10[l10] = r10[l10](f10, u10); + } + } + } catch (e21) { + i10.e(e21); + } finally { + i10.f(); + } + for (var d10 in t10) + void 0 === o10[d10] && (o10[d10] = t10[d10]); + return o10; + } + mV.allowMultipleSelections = GF, mV.tabSize = MF.define({ combine: function(e20) { + return e20.length ? e20[0] : 4; + } }), mV.lineSeparator = QF, mV.readOnly = eV, mV.phrases = MF.define({ compare: function(e20, t10) { + var n10 = Object.keys(e20), r10 = Object.keys(t10); + return n10.length == r10.length && n10.every(function(n11) { + return e20[n11] == t10[n11]; + }); + } }), mV.languageData = KF, mV.changeFilter = YF, mV.transactionFilter = XF, mV.transactionExtender = ZF, VF.reconfigure = oV.define(); + var yV = function() { + function e20() { + No(this, e20); + } + return Do(e20, [{ key: "eq", value: function(e21) { + return this == e21; + } }, { key: "range", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : e21; + return bV.create(e21, t10, this); + } }]), e20; + }(); + yV.prototype.startSide = yV.prototype.endSide = 0, yV.prototype.point = false, yV.prototype.mapMode = mF.TrackDel; + var bV = function() { + function e20(t10, n10, r10) { + No(this, e20), this.from = t10, this.to = n10, this.value = r10; + } + return Do(e20, null, [{ key: "create", value: function(t10, n10, r10) { + return new e20(t10, n10, r10); + } }]), e20; + }(); + function kV(e20, t10) { + return e20.from - t10.from || e20.value.startSide - t10.value.startSide; + } + var wV = function() { + function e20(t10, n10, r10, o10) { + No(this, e20), this.from = t10, this.to = n10, this.value = r10, this.maxPoint = o10; + } + return Do(e20, [{ key: "length", get: function() { + return this.to[this.to.length - 1]; + } }, { key: "findIndex", value: function(e21, t10, n10) { + for (var r10 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0, o10 = n10 ? this.to : this.from, i10 = r10, a10 = o10.length; ; ) { + if (i10 == a10) + return i10; + var s10 = i10 + a10 >> 1, c10 = o10[s10] - e21 || (n10 ? this.value[s10].endSide : this.value[s10].startSide) - t10; + if (s10 == i10) + return c10 >= 0 ? i10 : a10; + c10 >= 0 ? a10 = s10 : i10 = s10 + 1; + } + } }, { key: "between", value: function(e21, t10, n10, r10) { + for (var o10 = this.findIndex(t10, -1e9, true), i10 = this.findIndex(n10, 1e9, false, o10); o10 < i10; o10++) + if (false === r10(this.from[o10] + e21, this.to[o10] + e21, this.value[o10])) + return false; + } }, { key: "map", value: function(t10, n10) { + for (var r10 = [], o10 = [], i10 = [], a10 = -1, s10 = -1, c10 = 0; c10 < this.value.length; c10++) { + var l10 = this.value[c10], u10 = this.from[c10] + t10, f10 = this.to[c10] + t10, d10 = void 0, h10 = void 0; + if (u10 == f10) { + var v10 = n10.mapPos(u10, l10.startSide, l10.mapMode); + if (null == v10) + continue; + if (d10 = h10 = v10, l10.startSide != l10.endSide && (h10 = n10.mapPos(u10, l10.endSide)) < d10) + continue; + } else if ((d10 = n10.mapPos(u10, l10.startSide)) > (h10 = n10.mapPos(f10, l10.endSide)) || d10 == h10 && l10.startSide > 0 && l10.endSide <= 0) + continue; + (h10 - d10 || l10.endSide - l10.startSide) < 0 || (a10 < 0 && (a10 = d10), l10.point && (s10 = Math.max(s10, h10 - d10)), r10.push(l10), o10.push(d10 - a10), i10.push(h10 - a10)); + } + return { mapped: r10.length ? new e20(o10, i10, r10, s10) : null, pos: a10 }; + } }]), e20; + }(); + var xV = function() { + function e20(t10, n10, r10, o10) { + No(this, e20), this.chunkPos = t10, this.chunk = n10, this.nextLayer = r10, this.maxPoint = o10; + } + return Do(e20, [{ key: "length", get: function() { + var e21 = this.chunk.length - 1; + return e21 < 0 ? 0 : Math.max(this.chunkEnd(e21), this.nextLayer.length); + } }, { key: "size", get: function() { + if (this.isEmpty) + return 0; + var e21, t10 = this.nextLayer.size, n10 = bo(this.chunk); + try { + for (n10.s(); !(e21 = n10.n()).done; ) { + t10 += e21.value.value.length; + } + } catch (e23) { + n10.e(e23); + } finally { + n10.f(); + } + return t10; + } }, { key: "chunkEnd", value: function(e21) { + return this.chunkPos[e21] + this.chunk[e21].length; + } }, { key: "update", value: function(t10) { + var n10 = t10.add, r10 = void 0 === n10 ? [] : n10, o10 = t10.sort, i10 = void 0 !== o10 && o10, a10 = t10.filterFrom, s10 = void 0 === a10 ? 0 : a10, c10 = t10.filterTo, l10 = void 0 === c10 ? this.length : c10, u10 = t10.filter; + if (0 == r10.length && !u10) + return this; + if (i10 && (r10 = r10.slice().sort(kV)), this.isEmpty) + return r10.length ? e20.of(r10) : this; + for (var f10 = new CV(this, null, -1).goto(0), d10 = 0, h10 = [], v10 = new jV(); f10.value || d10 < r10.length; ) + if (d10 < r10.length && (f10.from - r10[d10].from || f10.startSide - r10[d10].value.startSide) >= 0) { + var p10 = r10[d10++]; + v10.addInner(p10.from, p10.to, p10.value) || h10.push(p10); + } else + 1 == f10.rangeIndex && f10.chunkIndex < this.chunk.length && (d10 == r10.length || this.chunkEnd(f10.chunkIndex) < r10[d10].from) && (!u10 || s10 > this.chunkEnd(f10.chunkIndex) || l10 < this.chunkPos[f10.chunkIndex]) && v10.addChunk(this.chunkPos[f10.chunkIndex], this.chunk[f10.chunkIndex]) ? f10.nextChunk() : ((!u10 || s10 > f10.to || l10 < f10.from || u10(f10.from, f10.to, f10.value)) && (v10.addInner(f10.from, f10.to, f10.value) || h10.push(bV.create(f10.from, f10.to, f10.value))), f10.next()); + return v10.finishInner(this.nextLayer.isEmpty && !h10.length ? e20.empty : this.nextLayer.update({ add: h10, filter: u10, filterFrom: s10, filterTo: l10 })); + } }, { key: "map", value: function(t10) { + if (t10.empty || this.isEmpty) + return this; + for (var n10 = [], r10 = [], o10 = -1, i10 = 0; i10 < this.chunk.length; i10++) { + var a10 = this.chunkPos[i10], s10 = this.chunk[i10], c10 = t10.touchesRange(a10, a10 + s10.length); + if (false === c10) + o10 = Math.max(o10, s10.maxPoint), n10.push(s10), r10.push(t10.mapPos(a10)); + else if (true === c10) { + var l10 = s10.map(a10, t10), u10 = l10.mapped, f10 = l10.pos; + u10 && (o10 = Math.max(o10, u10.maxPoint), n10.push(u10), r10.push(f10)); + } + } + var d10 = this.nextLayer.map(t10); + return 0 == n10.length ? d10 : new e20(r10, n10, d10 || e20.empty, o10); + } }, { key: "between", value: function(e21, t10, n10) { + if (!this.isEmpty) { + for (var r10 = 0; r10 < this.chunk.length; r10++) { + var o10 = this.chunkPos[r10], i10 = this.chunk[r10]; + if (t10 >= o10 && e21 <= o10 + i10.length && false === i10.between(o10, e21 - o10, t10 - o10, n10)) + return; + } + this.nextLayer.between(e21, t10, n10); + } + } }, { key: "iter", value: function() { + var e21 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0; + return $V.from([this]).goto(e21); + } }, { key: "isEmpty", get: function() { + return this.nextLayer == this; + } }], [{ key: "create", value: function(t10, n10, r10, o10) { + return new e20(t10, n10, r10, o10); + } }, { key: "iter", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0; + return $V.from(e21).goto(t10); + } }, { key: "compare", value: function(e21, t10, n10, r10) { + var o10 = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : -1, i10 = e21.filter(function(e23) { + return e23.maxPoint > 0 || !e23.isEmpty && e23.maxPoint >= o10; + }), a10 = t10.filter(function(e23) { + return e23.maxPoint > 0 || !e23.isEmpty && e23.maxPoint >= o10; + }), s10 = SV(i10, a10, n10), c10 = new OV(i10, s10, o10), l10 = new OV(a10, s10, o10); + n10.iterGaps(function(e23, t11, n11) { + return MV(c10, e23, l10, t11, n11, r10); + }), n10.empty && 0 == n10.length && MV(c10, 0, l10, 0, 0, r10); + } }, { key: "eq", value: function(e21, t10) { + var n10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, r10 = arguments.length > 3 ? arguments[3] : void 0; + null == r10 && (r10 = 999999999); + var o10 = e21.filter(function(e23) { + return !e23.isEmpty && t10.indexOf(e23) < 0; + }), i10 = t10.filter(function(t11) { + return !t11.isEmpty && e21.indexOf(t11) < 0; + }); + if (o10.length != i10.length) + return false; + if (!o10.length) + return true; + for (var a10 = SV(o10, i10), s10 = new OV(o10, a10, 0).goto(n10), c10 = new OV(i10, a10, 0).goto(n10); ; ) { + if (s10.to != c10.to || !EV(s10.active, c10.active) || s10.point && (!c10.point || !s10.point.eq(c10.point))) + return false; + if (s10.to > r10) + return true; + s10.next(), c10.next(); + } + } }, { key: "spans", value: function(e21, t10, n10, r10) { + for (var o10 = new OV(e21, null, arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : -1).goto(t10), i10 = t10, a10 = o10.openStart; ; ) { + var s10 = Math.min(o10.to, n10); + if (o10.point) { + var c10 = o10.activeForPoint(o10.to), l10 = o10.pointFrom < t10 ? c10.length + 1 : Math.min(c10.length, a10); + r10.point(i10, s10, o10.point, c10, l10, o10.pointRank), a10 = Math.min(o10.openEnd(s10), c10.length); + } else + s10 > i10 && (r10.span(i10, s10, o10.active, a10), a10 = o10.openEnd(s10)); + if (o10.to > n10) + return a10 + (o10.point && o10.to > n10 ? 1 : 0); + i10 = o10.to, o10.next(); + } + } }, { key: "of", value: function(e21) { + var t10, n10 = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], r10 = new jV(), o10 = bo(e21 instanceof bV ? [e21] : n10 ? function(e23) { + if (e23.length > 1) + for (var t11 = e23[0], n11 = 1; n11 < e23.length; n11++) { + var r11 = e23[n11]; + if (kV(t11, r11) > 0) + return e23.slice().sort(kV); + t11 = r11; + } + return e23; + }(e21) : e21); + try { + for (o10.s(); !(t10 = o10.n()).done; ) { + var i10 = t10.value; + r10.add(i10.from, i10.to, i10.value); + } + } catch (e23) { + o10.e(e23); + } finally { + o10.f(); + } + return r10.finish(); + } }, { key: "join", value: function(t10) { + if (!t10.length) + return e20.empty; + for (var n10 = t10[t10.length - 1], r10 = t10.length - 2; r10 >= 0; r10--) + for (var o10 = t10[r10]; o10 != e20.empty; o10 = o10.nextLayer) + n10 = new e20(o10.chunkPos, o10.chunk, n10, Math.max(o10.maxPoint, n10.maxPoint)); + return n10; + } }]), e20; + }(); + xV.empty = new xV([], [], null, -1), xV.empty.nextLayer = xV.empty; + var jV = function() { + function e20() { + No(this, e20), this.chunks = [], this.chunkPos = [], this.chunkStart = -1, this.last = null, this.lastFrom = -1e9, this.lastTo = -1e9, this.from = [], this.to = [], this.value = [], this.maxPoint = -1, this.setMaxPoint = -1, this.nextLayer = null; + } + return Do(e20, [{ key: "finishChunk", value: function(e21) { + this.chunks.push(new wV(this.from, this.to, this.value, this.maxPoint)), this.chunkPos.push(this.chunkStart), this.chunkStart = -1, this.setMaxPoint = Math.max(this.setMaxPoint, this.maxPoint), this.maxPoint = -1, e21 && (this.from = [], this.to = [], this.value = []); + } }, { key: "add", value: function(t10, n10, r10) { + this.addInner(t10, n10, r10) || (this.nextLayer || (this.nextLayer = new e20())).add(t10, n10, r10); + } }, { key: "addInner", value: function(e21, t10, n10) { + var r10 = e21 - this.lastTo || n10.startSide - this.last.endSide; + if (r10 <= 0 && (e21 - this.lastFrom || n10.startSide - this.last.startSide) < 0) + throw new Error("Ranges must be added sorted by `from` position and `startSide`"); + return !(r10 < 0) && (250 == this.from.length && this.finishChunk(true), this.chunkStart < 0 && (this.chunkStart = e21), this.from.push(e21 - this.chunkStart), this.to.push(t10 - this.chunkStart), this.last = n10, this.lastFrom = e21, this.lastTo = t10, this.value.push(n10), n10.point && (this.maxPoint = Math.max(this.maxPoint, t10 - e21)), true); + } }, { key: "addChunk", value: function(e21, t10) { + if ((e21 - this.lastTo || t10.value[0].startSide - this.last.endSide) < 0) + return false; + this.from.length && this.finishChunk(true), this.setMaxPoint = Math.max(this.setMaxPoint, t10.maxPoint), this.chunks.push(t10), this.chunkPos.push(e21); + var n10 = t10.value.length - 1; + return this.last = t10.value[n10], this.lastFrom = t10.from[n10] + e21, this.lastTo = t10.to[n10] + e21, true; + } }, { key: "finish", value: function() { + return this.finishInner(xV.empty); + } }, { key: "finishInner", value: function(e21) { + if (this.from.length && this.finishChunk(false), 0 == this.chunks.length) + return e21; + var t10 = xV.create(this.chunkPos, this.chunks, this.nextLayer ? this.nextLayer.finishInner(e21) : e21, this.setMaxPoint); + return this.from = null, t10; + } }]), e20; + }(); + function SV(e20, t10, n10) { + var r10, o10 = /* @__PURE__ */ new Map(), i10 = bo(e20); + try { + for (i10.s(); !(r10 = i10.n()).done; ) + for (var a10 = r10.value, s10 = 0; s10 < a10.chunk.length; s10++) + a10.chunk[s10].maxPoint <= 0 && o10.set(a10.chunk[s10], a10.chunkPos[s10]); + } catch (e21) { + i10.e(e21); + } finally { + i10.f(); + } + var c10, l10 = /* @__PURE__ */ new Set(), u10 = bo(t10); + try { + for (u10.s(); !(c10 = u10.n()).done; ) + for (var f10 = c10.value, d10 = 0; d10 < f10.chunk.length; d10++) { + var h10 = o10.get(f10.chunk[d10]); + null == h10 || (n10 ? n10.mapPos(h10) : h10) != f10.chunkPos[d10] || (null == n10 ? void 0 : n10.touchesRange(h10, h10 + f10.chunk[d10].length)) || l10.add(f10.chunk[d10]); + } + } catch (e21) { + u10.e(e21); + } finally { + u10.f(); + } + return l10; + } + var CV = function() { + function e20(t10, n10, r10) { + var o10 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0; + No(this, e20), this.layer = t10, this.skip = n10, this.minPoint = r10, this.rank = o10; + } + return Do(e20, [{ key: "startSide", get: function() { + return this.value ? this.value.startSide : 0; + } }, { key: "endSide", get: function() { + return this.value ? this.value.endSide : 0; + } }, { key: "goto", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : -1e9; + return this.chunkIndex = this.rangeIndex = 0, this.gotoInner(e21, t10, false), this; + } }, { key: "gotoInner", value: function(e21, t10, n10) { + for (; this.chunkIndex < this.layer.chunk.length; ) { + var r10 = this.layer.chunk[this.chunkIndex]; + if (!(this.skip && this.skip.has(r10) || this.layer.chunkEnd(this.chunkIndex) < e21 || r10.maxPoint < this.minPoint)) + break; + this.chunkIndex++, n10 = false; + } + if (this.chunkIndex < this.layer.chunk.length) { + var o10 = this.layer.chunk[this.chunkIndex].findIndex(e21 - this.layer.chunkPos[this.chunkIndex], t10, true); + (!n10 || this.rangeIndex < o10) && this.setRangeIndex(o10); + } + this.next(); + } }, { key: "forward", value: function(e21, t10) { + (this.to - e21 || this.endSide - t10) < 0 && this.gotoInner(e21, t10, true); + } }, { key: "next", value: function() { + for (; ; ) { + if (this.chunkIndex == this.layer.chunk.length) { + this.from = this.to = 1e9, this.value = null; + break; + } + var e21 = this.layer.chunkPos[this.chunkIndex], t10 = this.layer.chunk[this.chunkIndex], n10 = e21 + t10.from[this.rangeIndex]; + if (this.from = n10, this.to = e21 + t10.to[this.rangeIndex], this.value = t10.value[this.rangeIndex], this.setRangeIndex(this.rangeIndex + 1), this.minPoint < 0 || this.value.point && this.to - this.from >= this.minPoint) + break; + } + } }, { key: "setRangeIndex", value: function(e21) { + if (e21 == this.layer.chunk[this.chunkIndex].value.length) { + if (this.chunkIndex++, this.skip) + for (; this.chunkIndex < this.layer.chunk.length && this.skip.has(this.layer.chunk[this.chunkIndex]); ) + this.chunkIndex++; + this.rangeIndex = 0; + } else + this.rangeIndex = e21; + } }, { key: "nextChunk", value: function() { + this.chunkIndex++, this.rangeIndex = 0, this.next(); + } }, { key: "compare", value: function(e21) { + return this.from - e21.from || this.startSide - e21.startSide || this.rank - e21.rank || this.to - e21.to || this.endSide - e21.endSide; + } }]), e20; + }(); + var $V = function() { + function e20(t10) { + No(this, e20), this.heap = t10; + } + return Do(e20, [{ key: "startSide", get: function() { + return this.value ? this.value.startSide : 0; + } }, { key: "goto", value: function(e21) { + var t10, n10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : -1e9, r10 = bo(this.heap); + try { + for (r10.s(); !(t10 = r10.n()).done; ) { + t10.value.goto(e21, n10); + } + } catch (e23) { + r10.e(e23); + } finally { + r10.f(); + } + for (var o10 = this.heap.length >> 1; o10 >= 0; o10--) + _V(this.heap, o10); + return this.next(), this; + } }, { key: "forward", value: function(e21, t10) { + var n10, r10 = bo(this.heap); + try { + for (r10.s(); !(n10 = r10.n()).done; ) { + n10.value.forward(e21, t10); + } + } catch (e23) { + r10.e(e23); + } finally { + r10.f(); + } + for (var o10 = this.heap.length >> 1; o10 >= 0; o10--) + _V(this.heap, o10); + (this.to - e21 || this.value.endSide - t10) < 0 && this.next(); + } }, { key: "next", value: function() { + if (0 == this.heap.length) + this.from = this.to = 1e9, this.value = null, this.rank = -1; + else { + var e21 = this.heap[0]; + this.from = e21.from, this.to = e21.to, this.value = e21.value, this.rank = e21.rank, e21.value && e21.next(), _V(this.heap, 0); + } + } }], [{ key: "from", value: function(t10) { + for (var n10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null, r10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : -1, o10 = [], i10 = 0; i10 < t10.length; i10++) + for (var a10 = t10[i10]; !a10.isEmpty; a10 = a10.nextLayer) + a10.maxPoint >= r10 && o10.push(new CV(a10, n10, r10, i10)); + return 1 == o10.length ? o10[0] : new e20(o10); + } }]), e20; + }(); + function _V(e20, t10) { + for (var n10 = e20[t10]; ; ) { + var r10 = 1 + (t10 << 1); + if (r10 >= e20.length) + break; + var o10 = e20[r10]; + if (r10 + 1 < e20.length && o10.compare(e20[r10 + 1]) >= 0 && (o10 = e20[r10 + 1], r10++), n10.compare(o10) < 0) + break; + e20[r10] = n10, e20[t10] = o10, t10 = r10; + } + } + var OV = function() { + function e20(t10, n10, r10) { + No(this, e20), this.minPoint = r10, this.active = [], this.activeTo = [], this.activeRank = [], this.minActive = -1, this.point = null, this.pointFrom = 0, this.pointRank = 0, this.to = -1e9, this.endSide = 0, this.openStart = -1, this.cursor = $V.from(t10, n10, r10); + } + return Do(e20, [{ key: "goto", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : -1e9; + return this.cursor.goto(e21, t10), this.active.length = this.activeTo.length = this.activeRank.length = 0, this.minActive = -1, this.to = e21, this.endSide = t10, this.openStart = -1, this.next(), this; + } }, { key: "forward", value: function(e21, t10) { + for (; this.minActive > -1 && (this.activeTo[this.minActive] - e21 || this.active[this.minActive].endSide - t10) < 0; ) + this.removeActive(this.minActive); + this.cursor.forward(e21, t10); + } }, { key: "removeActive", value: function(e21) { + AV(this.active, e21), AV(this.activeTo, e21), AV(this.activeRank, e21), this.minActive = TV(this.active, this.activeTo); + } }, { key: "addActive", value: function(e21) { + for (var t10 = 0, n10 = this.cursor, r10 = n10.value, o10 = n10.to, i10 = n10.rank; t10 < this.activeRank.length && (i10 - this.activeRank[t10] || o10 - this.activeTo[t10]) > 0; ) + t10++; + PV(this.active, t10, r10), PV(this.activeTo, t10, o10), PV(this.activeRank, t10, i10), e21 && PV(e21, t10, this.cursor.from), this.minActive = TV(this.active, this.activeTo); + } }, { key: "next", value: function() { + var e21 = this.to, t10 = this.point; + this.point = null; + for (var n10 = this.openStart < 0 ? [] : null; ; ) { + var r10 = this.minActive; + if (r10 > -1 && (this.activeTo[r10] - this.cursor.from || this.active[r10].endSide - this.cursor.startSide) < 0) { + if (this.activeTo[r10] > e21) { + this.to = this.activeTo[r10], this.endSide = this.active[r10].endSide; + break; + } + this.removeActive(r10), n10 && AV(n10, r10); + } else { + if (!this.cursor.value) { + this.to = this.endSide = 1e9; + break; + } + if (this.cursor.from > e21) { + this.to = this.cursor.from, this.endSide = this.cursor.startSide; + break; + } + var o10 = this.cursor.value; + if (o10.point) { + if (!(t10 && this.cursor.to == this.to && this.cursor.from < this.cursor.to)) { + this.point = o10, this.pointFrom = this.cursor.from, this.pointRank = this.cursor.rank, this.to = this.cursor.to, this.endSide = o10.endSide, this.cursor.next(), this.forward(this.to, this.endSide); + break; + } + this.cursor.next(); + } else + this.addActive(n10), this.cursor.next(); + } + } + if (n10) { + this.openStart = 0; + for (var i10 = n10.length - 1; i10 >= 0 && n10[i10] < e21; i10--) + this.openStart++; + } + } }, { key: "activeForPoint", value: function(e21) { + if (!this.active.length) + return this.active; + for (var t10 = [], n10 = this.active.length - 1; n10 >= 0 && !(this.activeRank[n10] < this.pointRank); n10--) + (this.activeTo[n10] > e21 || this.activeTo[n10] == e21 && this.active[n10].endSide >= this.point.endSide) && t10.push(this.active[n10]); + return t10.reverse(); + } }, { key: "openEnd", value: function(e21) { + for (var t10 = 0, n10 = this.activeTo.length - 1; n10 >= 0 && this.activeTo[n10] > e21; n10--) + t10++; + return t10; + } }]), e20; + }(); + function MV(e20, t10, n10, r10, o10, i10) { + e20.goto(t10), n10.goto(r10); + for (var a10 = r10 + o10, s10 = r10, c10 = r10 - t10; ; ) { + var l10 = e20.to + c10 - n10.to || e20.endSide - n10.endSide, u10 = l10 < 0 ? e20.to + c10 : n10.to, f10 = Math.min(u10, a10); + if (e20.point || n10.point ? e20.point && n10.point && (e20.point == n10.point || e20.point.eq(n10.point)) && EV(e20.activeForPoint(e20.to), n10.activeForPoint(n10.to)) || i10.comparePoint(s10, f10, e20.point, n10.point) : f10 > s10 && !EV(e20.active, n10.active) && i10.compareRange(s10, f10, e20.active, n10.active), u10 > a10) + break; + s10 = u10, l10 <= 0 && e20.next(), l10 >= 0 && n10.next(); + } + } + function EV(e20, t10) { + if (e20.length != t10.length) + return false; + for (var n10 = 0; n10 < e20.length; n10++) + if (e20[n10] != t10[n10] && !e20[n10].eq(t10[n10])) + return false; + return true; + } + function AV(e20, t10) { + for (var n10 = t10, r10 = e20.length - 1; n10 < r10; n10++) + e20[n10] = e20[n10 + 1]; + e20.pop(); + } + function PV(e20, t10, n10) { + for (var r10 = e20.length - 1; r10 >= t10; r10--) + e20[r10 + 1] = e20[r10]; + e20[t10] = n10; + } + function TV(e20, t10) { + for (var n10 = -1, r10 = 1e9, o10 = 0; o10 < t10.length; o10++) + (t10[o10] - r10 || e20[o10].endSide - e20[n10].endSide) < 0 && (n10 = o10, r10 = t10[o10]); + return n10; + } + function RV(e20, t10) { + for (var n10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : e20.length, r10 = 0, o10 = 0; o10 < n10; ) + 9 == e20.charCodeAt(o10) ? (r10 += t10 - r10 % t10, o10++) : (r10++, o10 = sF(e20, o10)); + return r10; + } + function NV(e20, t10, n10, r10) { + for (var o10 = 0, i10 = 0; ; ) { + if (i10 >= t10) + return o10; + if (o10 == e20.length) + break; + i10 += 9 == e20.charCodeAt(o10) ? n10 - i10 % n10 : 1, o10 = sF(e20, o10); + } + return true === r10 ? -1 : e20.length; + } + for (IV = "undefined" == typeof Symbol ? "__\u037C" : Symbol.for("\u037C"), DV = "undefined" == typeof Symbol ? "__styleSet" + Math.floor(1e8 * Math.random()) : Symbol("styleSet"), qV = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : {}, zV = function() { + function e20(t10, n10) { + No(this, e20), this.rules = []; + var r10 = (n10 || {}).finish; + function o10(e21) { + return /^@/.test(e21) ? [e21] : e21.split(/,\s*/); + } + function i10(e21, t11, n11, a11) { + var s10 = [], c10 = /^@(\w+)\b/.exec(e21[0]), l10 = c10 && "keyframes" == c10[1]; + if (c10 && null == t11) + return n11.push(e21[0] + ";"); + for (var u10 in t11) { + var f10 = t11[u10]; + if (/&/.test(u10)) + i10(u10.split(/,\s*/).map(function(t12) { + return e21.map(function(e23) { + return t12.replace(/&/, e23); + }); + }).reduce(function(e23, t12) { + return e23.concat(t12); + }), f10, n11); + else if (f10 && "object" == Ho(f10)) { + if (!c10) + throw new RangeError("The value of a property (" + u10 + ") should be a primitive value."); + i10(o10(u10), f10, s10, l10); + } else + null != f10 && s10.push(u10.replace(/_.*/, "").replace(/[A-Z]/g, function(e23) { + return "-" + e23.toLowerCase(); + }) + ": " + f10 + ";"); + } + (s10.length || l10) && n11.push((!r10 || c10 || a11 ? e21 : e21.map(r10)).join(", ") + " {" + s10.join(" ") + "}"); + } + for (var a10 in t10) + i10(o10(a10), t10[a10], this.rules); + } + return Do(e20, [{ key: "getRules", value: function() { + return this.rules.join("\n"); + } }], [{ key: "newName", value: function() { + var e21 = qV[IV] || 1; + return qV[IV] = e21 + 1, "\u037C" + e21.toString(36); + } }, { key: "mount", value: function(e21, t10, n10) { + var r10 = e21[DV], o10 = n10 && n10.nonce; + r10 ? o10 && r10.setNonce(o10) : r10 = new LV(e21, o10), r10.mount(Array.isArray(t10) ? t10 : [t10]); + } }]), e20; + }(), BV = /* @__PURE__ */ new Map(), LV = function() { + function e20(t10, n10) { + No(this, e20); + var r10 = t10.ownerDocument || t10, o10 = r10.defaultView; + if (!t10.head && t10.adoptedStyleSheets && o10.CSSStyleSheet) { + var i10 = BV.get(r10); + if (i10) + return t10.adoptedStyleSheets = [i10.sheet].concat(Bo(t10.adoptedStyleSheets)), t10[DV] = i10; + this.sheet = new o10.CSSStyleSheet(), t10.adoptedStyleSheets = [this.sheet].concat(Bo(t10.adoptedStyleSheets)), BV.set(r10, this); + } else { + this.styleTag = r10.createElement("style"), n10 && this.styleTag.setAttribute("nonce", n10); + var a10 = t10.head || t10; + a10.insertBefore(this.styleTag, a10.firstChild); + } + this.modules = [], t10[DV] = this; + } + return Do(e20, [{ key: "mount", value: function(e21) { + for (var t10 = this.sheet, n10 = 0, r10 = 0, o10 = 0; o10 < e21.length; o10++) { + var i10 = e21[o10], a10 = this.modules.indexOf(i10); + if (a10 < r10 && a10 > -1 && (this.modules.splice(a10, 1), r10--, a10 = -1), -1 == a10) { + if (this.modules.splice(r10++, 0, i10), t10) + for (var s10 = 0; s10 < i10.rules.length; s10++) + t10.insertRule(i10.rules[s10], n10++); + } else { + for (; r10 < a10; ) + n10 += this.modules[r10++].rules.length; + n10 += i10.rules.length, r10++; + } + } + if (!t10) { + for (var c10 = "", l10 = 0; l10 < this.modules.length; l10++) + c10 += this.modules[l10].getRules() + "\n"; + this.styleTag.textContent = c10; + } + } }, { key: "setNonce", value: function(e21) { + this.styleTag && this.styleTag.getAttribute("nonce") != e21 && this.styleTag.setAttribute("nonce", e21); + } }]), e20; + }(), FV = { 8: "Backspace", 9: "Tab", 10: "Enter", 12: "NumLock", 13: "Enter", 16: "Shift", 17: "Control", 18: "Alt", 20: "CapsLock", 27: "Escape", 32: " ", 33: "PageUp", 34: "PageDown", 35: "End", 36: "Home", 37: "ArrowLeft", 38: "ArrowUp", 39: "ArrowRight", 40: "ArrowDown", 44: "PrintScreen", 45: "Insert", 46: "Delete", 59: ";", 61: "=", 91: "Meta", 92: "Meta", 106: "*", 107: "+", 108: ",", 109: "-", 110: ".", 111: "/", 144: "NumLock", 145: "ScrollLock", 160: "Shift", 161: "Shift", 162: "Control", 163: "Control", 164: "Alt", 165: "Alt", 173: "-", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\", 221: "]", 222: "'" }, VV = { 48: ")", 49: "!", 50: "@", 51: "#", 52: "$", 53: "%", 54: "^", 55: "&", 56: "*", 57: "(", 59: ":", 61: "+", 173: "_", 186: ":", 187: "+", 188: "<", 189: "_", 190: ">", 191: "?", 192: "~", 219: "{", 220: "|", 221: "}", 222: '"' }, HV = "undefined" != typeof navigator && /Mac/.test(navigator.platform), WV = "undefined" != typeof navigator && /MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent), UV = 0; UV < 10; UV++) + FV[48 + UV] = FV[96 + UV] = String(UV); + var IV; + var DV; + var qV; + var zV; + var BV; + var LV; + var FV; + var VV; + var HV; + var WV; + var UV; + for (UV = 1; UV <= 24; UV++) + FV[UV + 111] = "F" + UV; + for (UV = 65; UV <= 90; UV++) + FV[UV] = String.fromCharCode(UV + 32), VV[UV] = String.fromCharCode(UV); + for (JV in FV) + VV.hasOwnProperty(JV) || (VV[JV] = FV[JV]); + var JV; + function KV(e20) { + return (11 == e20.nodeType ? e20.getSelection ? e20 : e20.ownerDocument : e20).getSelection(); + } + function GV(e20, t10) { + return !!t10 && (e20 == t10 || e20.contains(1 != t10.nodeType ? t10.parentNode : t10)); + } + function QV(e20, t10) { + if (!t10.anchorNode) + return false; + try { + return GV(e20, t10.anchorNode); + } catch (e21) { + return false; + } + } + function YV(e20) { + return 3 == e20.nodeType ? lH(e20, 0, e20.nodeValue.length).getClientRects() : 1 == e20.nodeType ? e20.getClientRects() : []; + } + function XV(e20, t10, n10, r10) { + return !!n10 && (eH(e20, t10, n10, r10, -1) || eH(e20, t10, n10, r10, 1)); + } + function ZV(e20) { + for (var t10 = 0; ; t10++) + if (!(e20 = e20.previousSibling)) + return t10; + } + function eH(e20, t10, n10, r10, o10) { + for (; ; ) { + if (e20 == n10 && t10 == r10) + return true; + if (t10 == (o10 < 0 ? 0 : tH(e20))) { + if ("DIV" == e20.nodeName) + return false; + var i10 = e20.parentNode; + if (!i10 || 1 != i10.nodeType) + return false; + t10 = ZV(e20) + (o10 < 0 ? 0 : 1), e20 = i10; + } else { + if (1 != e20.nodeType) + return false; + if (1 == (e20 = e20.childNodes[t10 + (o10 < 0 ? -1 : 0)]).nodeType && "false" == e20.contentEditable) + return false; + t10 = o10 < 0 ? tH(e20) : 0; + } + } + } + function tH(e20) { + return 3 == e20.nodeType ? e20.nodeValue.length : e20.childNodes.length; + } + function nH(e20, t10) { + var n10 = t10 ? e20.left : e20.right; + return { left: n10, right: n10, top: e20.top, bottom: e20.bottom }; + } + function rH(e20) { + return { left: 0, right: e20.innerWidth, top: 0, bottom: e20.innerHeight }; + } + function oH(e20, t10) { + var n10 = t10.width / e20.offsetWidth, r10 = t10.height / e20.offsetHeight; + return (n10 > 0.995 && n10 < 1.005 || !isFinite(n10) || Math.abs(t10.width - e20.offsetWidth) < 1) && (n10 = 1), (r10 > 0.995 && r10 < 1.005 || !isFinite(r10) || Math.abs(t10.height - e20.offsetHeight) < 1) && (r10 = 1), { scaleX: n10, scaleY: r10 }; + } + var iH; + var aH = function() { + function e20() { + No(this, e20), this.anchorNode = null, this.anchorOffset = 0, this.focusNode = null, this.focusOffset = 0; + } + return Do(e20, [{ key: "eq", value: function(e21) { + return this.anchorNode == e21.anchorNode && this.anchorOffset == e21.anchorOffset && this.focusNode == e21.focusNode && this.focusOffset == e21.focusOffset; + } }, { key: "setRange", value: function(e21) { + var t10 = e21.anchorNode, n10 = e21.focusNode; + this.set(t10, Math.min(e21.anchorOffset, t10 ? tH(t10) : 0), n10, Math.min(e21.focusOffset, n10 ? tH(n10) : 0)); + } }, { key: "set", value: function(e21, t10, n10, r10) { + this.anchorNode = e21, this.anchorOffset = t10, this.focusNode = n10, this.focusOffset = r10; + } }]), e20; + }(); + var sH = null; + function cH(e20) { + if (e20.setActive) + return e20.setActive(); + if (sH) + return e20.focus(sH); + for (var t10 = [], n10 = e20; n10 && (t10.push(n10, n10.scrollTop, n10.scrollLeft), n10 != n10.ownerDocument); n10 = n10.parentNode) + ; + if (e20.focus(null == sH ? { get preventScroll() { + return sH = { preventScroll: true }, true; + } } : void 0), !sH) { + sH = false; + for (var r10 = 0; r10 < t10.length; ) { + var o10 = t10[r10++], i10 = t10[r10++], a10 = t10[r10++]; + o10.scrollTop != i10 && (o10.scrollTop = i10), o10.scrollLeft != a10 && (o10.scrollLeft = a10); + } + } + } + function lH(e20, t10) { + var n10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : t10, r10 = iH || (iH = document.createRange()); + return r10.setEnd(e20, n10), r10.setStart(e20, t10), r10; + } + function uH(e20, t10, n10) { + var r10 = { key: t10, code: t10, keyCode: n10, which: n10, cancelable: true }, o10 = new KeyboardEvent("keydown", r10); + o10.synthetic = true, e20.dispatchEvent(o10); + var i10 = new KeyboardEvent("keyup", r10); + return i10.synthetic = true, e20.dispatchEvent(i10), o10.defaultPrevented || i10.defaultPrevented; + } + function fH(e20) { + for (; e20.attributes.length; ) + e20.removeAttributeNode(e20.attributes[0]); + } + function dH(e20) { + return e20.scrollTop > Math.max(1, e20.scrollHeight - e20.clientHeight - 4); + } + var hH = function() { + function e20(t10, n10) { + var r10 = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; + No(this, e20), this.node = t10, this.offset = n10, this.precise = r10; + } + return Do(e20, null, [{ key: "before", value: function(t10, n10) { + return new e20(t10.parentNode, ZV(t10), n10); + } }, { key: "after", value: function(t10, n10) { + return new e20(t10.parentNode, ZV(t10) + 1, n10); + } }]), e20; + }(); + var vH = []; + var pH = function() { + function e20() { + No(this, e20), this.parent = null, this.dom = null, this.flags = 2; + } + return Do(e20, [{ key: "overrideDOMText", get: function() { + return null; + } }, { key: "posAtStart", get: function() { + return this.parent ? this.parent.posBefore(this) : 0; + } }, { key: "posAtEnd", get: function() { + return this.posAtStart + this.length; + } }, { key: "posBefore", value: function(e21) { + var t10, n10 = this.posAtStart, r10 = bo(this.children); + try { + for (r10.s(); !(t10 = r10.n()).done; ) { + var o10 = t10.value; + if (o10 == e21) + return n10; + n10 += o10.length + o10.breakAfter; + } + } catch (e23) { + r10.e(e23); + } finally { + r10.f(); + } + throw new RangeError("Invalid child in posBefore"); + } }, { key: "posAfter", value: function(e21) { + return this.posBefore(e21) + e21.length; + } }, { key: "sync", value: function(t10, n10) { + if (2 & this.flags) { + var r10, o10, i10 = this.dom, a10 = null, s10 = bo(this.children); + try { + for (s10.s(); !(o10 = s10.n()).done; ) { + var c10 = o10.value; + if (7 & c10.flags) { + if (!c10.dom && (r10 = a10 ? a10.nextSibling : i10.firstChild)) { + var l10 = e20.get(r10); + (!l10 || !l10.parent && l10.canReuseDOM(c10)) && c10.reuseDOM(r10); + } + c10.sync(t10, n10), c10.flags &= -8; + } + if (r10 = a10 ? a10.nextSibling : i10.firstChild, n10 && !n10.written && n10.node == i10 && r10 != c10.dom && (n10.written = true), c10.dom.parentNode == i10) + for (; r10 && r10 != c10.dom; ) + r10 = mH(r10); + else + i10.insertBefore(c10.dom, r10); + a10 = c10.dom; + } + } catch (e21) { + s10.e(e21); + } finally { + s10.f(); + } + for ((r10 = a10 ? a10.nextSibling : i10.firstChild) && n10 && n10.node == i10 && (n10.written = true); r10; ) + r10 = mH(r10); + } else if (1 & this.flags) { + var u10, f10 = bo(this.children); + try { + for (f10.s(); !(u10 = f10.n()).done; ) { + var d10 = u10.value; + 7 & d10.flags && (d10.sync(t10, n10), d10.flags &= -8); + } + } catch (e21) { + f10.e(e21); + } finally { + f10.f(); + } + } + } }, { key: "reuseDOM", value: function(e21) { + } }, { key: "localPosFromDOM", value: function(t10, n10) { + var r10; + if (t10 == this.dom) + r10 = this.dom.childNodes[n10]; + else { + for (var o10 = 0 == tH(t10) ? 0 : 0 == n10 ? -1 : 1; ; ) { + var i10 = t10.parentNode; + if (i10 == this.dom) + break; + 0 == o10 && i10.firstChild != i10.lastChild && (o10 = t10 == i10.firstChild ? -1 : 1), t10 = i10; + } + r10 = o10 < 0 ? t10 : t10.nextSibling; + } + if (r10 == this.dom.firstChild) + return 0; + for (; r10 && !e20.get(r10); ) + r10 = r10.nextSibling; + if (!r10) + return this.length; + for (var a10 = 0, s10 = 0; ; a10++) { + var c10 = this.children[a10]; + if (c10.dom == r10) + return s10; + s10 += c10.length + c10.breakAfter; + } + } }, { key: "domBoundsAround", value: function(e21, t10) { + for (var n10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, r10 = -1, o10 = -1, i10 = -1, a10 = -1, s10 = 0, c10 = n10, l10 = n10; s10 < this.children.length; s10++) { + var u10 = this.children[s10], f10 = c10 + u10.length; + if (c10 < e21 && f10 > t10) + return u10.domBoundsAround(e21, t10, c10); + if (f10 >= e21 && -1 == r10 && (r10 = s10, o10 = c10), c10 > t10 && u10.dom.parentNode == this.dom) { + i10 = s10, a10 = l10; + break; + } + l10 = f10, c10 = f10 + u10.breakAfter; + } + return { from: o10, to: a10 < 0 ? n10 + this.length : a10, startDOM: (r10 ? this.children[r10 - 1].dom.nextSibling : null) || this.dom.firstChild, endDOM: i10 < this.children.length && i10 >= 0 ? this.children[i10].dom : null }; + } }, { key: "markDirty", value: function() { + var e21 = arguments.length > 0 && void 0 !== arguments[0] && arguments[0]; + this.flags |= 2, this.markParentsDirty(e21); + } }, { key: "markParentsDirty", value: function(e21) { + for (var t10 = this.parent; t10; t10 = t10.parent) { + if (e21 && (t10.flags |= 2), 1 & t10.flags) + return; + t10.flags |= 1, e21 = false; + } + } }, { key: "setParent", value: function(e21) { + this.parent != e21 && (this.parent = e21, 7 & this.flags && this.markParentsDirty(true)); + } }, { key: "setDOM", value: function(e21) { + this.dom != e21 && (this.dom && (this.dom.cmView = null), this.dom = e21, e21.cmView = this); + } }, { key: "rootView", get: function() { + for (var e21 = this; ; ) { + var t10 = e21.parent; + if (!t10) + return e21; + e21 = t10; + } + } }, { key: "replaceChildren", value: function(e21, t10) { + var n10, r10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : vH; + this.markDirty(); + for (var o10 = e21; o10 < t10; o10++) { + var i10 = this.children[o10]; + i10.parent == this && r10.indexOf(i10) < 0 && i10.destroy(); + } + (n10 = this.children).splice.apply(n10, [e21, t10 - e21].concat(Bo(r10))); + for (var a10 = 0; a10 < r10.length; a10++) + r10[a10].setParent(this); + } }, { key: "ignoreMutation", value: function(e21) { + return false; + } }, { key: "ignoreEvent", value: function(e21) { + return false; + } }, { key: "childCursor", value: function() { + var e21 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.length; + return new gH(this.children, e21, this.children.length); + } }, { key: "childPos", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1; + return this.childCursor().findPos(e21, t10); + } }, { key: "toString", value: function() { + var e21 = this.constructor.name.replace("View", ""); + return e21 + (this.children.length ? "(" + this.children.join() + ")" : this.length ? "[" + ("Text" == e21 ? this.text : this.length) + "]" : "") + (this.breakAfter ? "#" : ""); + } }, { key: "isEditable", get: function() { + return true; + } }, { key: "isWidget", get: function() { + return false; + } }, { key: "isHidden", get: function() { + return false; + } }, { key: "merge", value: function(e21, t10, n10, r10, o10, i10) { + return false; + } }, { key: "become", value: function(e21) { + return false; + } }, { key: "canReuseDOM", value: function(e21) { + return e21.constructor == this.constructor && !(8 & (this.flags | e21.flags)); + } }, { key: "getSide", value: function() { + return 0; + } }, { key: "destroy", value: function() { + var e21, t10 = bo(this.children); + try { + for (t10.s(); !(e21 = t10.n()).done; ) { + var n10 = e21.value; + n10.parent == this && n10.destroy(); + } + } catch (e23) { + t10.e(e23); + } finally { + t10.f(); + } + this.parent = null; + } }], [{ key: "get", value: function(e21) { + return e21.cmView; + } }]), e20; + }(); + function mH(e20) { + var t10 = e20.nextSibling; + return e20.parentNode.removeChild(e20), t10; + } + pH.prototype.breakAfter = 0; + var gH = function() { + function e20(t10, n10, r10) { + No(this, e20), this.children = t10, this.pos = n10, this.i = r10, this.off = 0; + } + return Do(e20, [{ key: "findPos", value: function(e21) { + for (var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1; ; ) { + if (e21 > this.pos || e21 == this.pos && (t10 > 0 || 0 == this.i || this.children[this.i - 1].breakAfter)) + return this.off = e21 - this.pos, this; + var n10 = this.children[--this.i]; + this.pos -= n10.length + n10.breakAfter; + } + } }]), e20; + }(); + function yH(e20, t10, n10, r10, o10, i10, a10, s10, c10) { + var l10 = e20.children, u10 = l10.length ? l10[t10] : null, f10 = i10.length ? i10[i10.length - 1] : null, d10 = f10 ? f10.breakAfter : a10; + if (!(t10 == r10 && u10 && !a10 && !d10 && i10.length < 2 && u10.merge(n10, o10, i10.length ? f10 : null, 0 == n10, s10, c10))) { + if (r10 < l10.length) { + var h10 = l10[r10]; + h10 && (o10 < h10.length || h10.breakAfter && (null == f10 ? void 0 : f10.breakAfter)) ? (t10 == r10 && (h10 = h10.split(o10), o10 = 0), !d10 && f10 && h10.merge(0, o10, f10, true, 0, c10) ? i10[i10.length - 1] = h10 : ((o10 || h10.children.length && !h10.children[0].length) && h10.merge(0, o10, null, false, 0, c10), i10.push(h10))) : (null == h10 ? void 0 : h10.breakAfter) && (f10 ? f10.breakAfter = 1 : a10 = 1), r10++; + } + for (u10 && (u10.breakAfter = a10, n10 > 0 && (!a10 && i10.length && u10.merge(n10, u10.length, i10[0], false, s10, 0) ? u10.breakAfter = i10.shift().breakAfter : (n10 < u10.length || u10.children.length && 0 == u10.children[u10.children.length - 1].length) && u10.merge(n10, u10.length, null, false, s10, 0), t10++)); t10 < r10 && i10.length; ) + if (l10[r10 - 1].become(i10[i10.length - 1])) + r10--, i10.pop(), c10 = i10.length ? 0 : s10; + else { + if (!l10[t10].become(i10[0])) + break; + t10++, i10.shift(), s10 = i10.length ? 0 : c10; + } + !i10.length && t10 && r10 < l10.length && !l10[t10 - 1].breakAfter && l10[r10].merge(0, 0, l10[t10 - 1], false, s10, c10) && t10--, (t10 < r10 || i10.length) && e20.replaceChildren(t10, r10, i10); + } + } + function bH(e20, t10, n10, r10, o10, i10) { + var a10, s10 = e20.childCursor(), c10 = s10.findPos(n10, 1), l10 = c10.i, u10 = c10.off, f10 = s10.findPos(t10, -1), d10 = f10.i, h10 = f10.off, v10 = t10 - n10, p10 = bo(r10); + try { + for (p10.s(); !(a10 = p10.n()).done; ) { + v10 += a10.value.length; + } + } catch (e21) { + p10.e(e21); + } finally { + p10.f(); + } + e20.length += v10, yH(e20, d10, h10, l10, u10, r10, 0, o10, i10); + } + var kH = "undefined" != typeof navigator ? navigator : { userAgent: "", vendor: "", platform: "" }; + var wH = "undefined" != typeof document ? document : { documentElement: { style: {} } }; + var xH = /Edge\/(\d+)/.exec(kH.userAgent); + var jH = /MSIE \d/.test(kH.userAgent); + var SH = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(kH.userAgent); + var CH = !!(jH || SH || xH); + var $H = !CH && /gecko\/(\d+)/i.test(kH.userAgent); + var _H = !CH && /Chrome\/(\d+)/.exec(kH.userAgent); + var OH = "webkitFontSmoothing" in wH.documentElement.style; + var MH = !CH && /Apple Computer/.test(kH.vendor); + var EH = MH && (/Mobile\/\w+/.test(kH.userAgent) || kH.maxTouchPoints > 2); + var AH = { mac: EH || /Mac/.test(kH.platform), windows: /Win/.test(kH.platform), linux: /Linux|X11/.test(kH.platform), ie: CH, ie_version: jH ? wH.documentMode || 6 : SH ? +SH[1] : xH ? +xH[1] : 0, gecko: $H, gecko_version: $H ? +(/Firefox\/(\d+)/.exec(kH.userAgent) || [0, 0])[1] : 0, chrome: !!_H, chrome_version: _H ? +_H[1] : 0, ios: EH, android: /Android\b/.test(kH.userAgent), webkit: OH, safari: MH, webkit_version: OH ? +(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent) || [0, 0])[1] : 0, tabSize: null != wH.documentElement.style.tabSize ? "tab-size" : "-moz-tab-size" }; + var PH = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), (n10 = _o(this, t10)).text = e21, n10; + } + return Ao(t10, pH), Do(t10, [{ key: "length", get: function() { + return this.text.length; + } }, { key: "createDOM", value: function(e21) { + this.setDOM(e21 || document.createTextNode(this.text)); + } }, { key: "sync", value: function(e21, t11) { + this.dom || this.createDOM(), this.dom.nodeValue != this.text && (t11 && t11.node == this.dom && (t11.written = true), this.dom.nodeValue = this.text); + } }, { key: "reuseDOM", value: function(e21) { + 3 == e21.nodeType && this.createDOM(e21); + } }, { key: "merge", value: function(e21, n10, r10) { + return !(8 & this.flags || r10 && (!(r10 instanceof t10) || this.length - (n10 - e21) + r10.length > 256 || 8 & r10.flags)) && (this.text = this.text.slice(0, e21) + (r10 ? r10.text : "") + this.text.slice(n10), this.markDirty(), true); + } }, { key: "split", value: function(e21) { + var n10 = new t10(this.text.slice(e21)); + return this.text = this.text.slice(0, e21), this.markDirty(), n10.flags |= 8 & this.flags, n10; + } }, { key: "localPosFromDOM", value: function(e21, t11) { + return e21 == this.dom ? t11 : t11 ? this.text.length : 0; + } }, { key: "domAtPos", value: function(e21) { + return new hH(this.dom, e21); + } }, { key: "domBoundsAround", value: function(e21, t11, n10) { + return { from: n10, to: n10 + this.length, startDOM: this.dom, endDOM: this.dom.nextSibling }; + } }, { key: "coordsAt", value: function(e21, t11) { + return function(e23, t12, n10) { + var r10 = e23.nodeValue.length; + t12 > r10 && (t12 = r10); + var o10 = t12, i10 = t12, a10 = 0; + 0 == t12 && n10 < 0 || t12 == r10 && n10 >= 0 ? AH.chrome || AH.gecko || (t12 ? (o10--, a10 = 1) : i10 < r10 && (i10++, a10 = -1)) : n10 < 0 ? o10-- : i10 < r10 && i10++; + var s10 = lH(e23, o10, i10).getClientRects(); + if (!s10.length) + return null; + var c10 = s10[(a10 ? a10 < 0 : n10 >= 0) ? 0 : s10.length - 1]; + AH.safari && !a10 && 0 == c10.width && (c10 = Array.prototype.find.call(s10, function(e24) { + return e24.width; + }) || c10); + return a10 ? nH(c10, a10 < 0) : c10 || null; + }(this.dom, e21, t11); + } }]), t10; + }(); + var TH = function(e20) { + function t10(e21) { + var n10, r10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [], o10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0; + No(this, t10), (n10 = _o(this, t10)).mark = e21, n10.children = r10, n10.length = o10; + var i10, a10 = bo(r10); + try { + for (a10.s(); !(i10 = a10.n()).done; ) { + i10.value.setParent(Eo(n10)); + } + } catch (e23) { + a10.e(e23); + } finally { + a10.f(); + } + return n10; + } + return Ao(t10, pH), Do(t10, [{ key: "setAttrs", value: function(e21) { + if (fH(e21), this.mark.class && (e21.className = this.mark.class), this.mark.attrs) + for (var t11 in this.mark.attrs) + e21.setAttribute(t11, this.mark.attrs[t11]); + return e21; + } }, { key: "canReuseDOM", value: function(e21) { + return go(Mo(t10.prototype), "canReuseDOM", this).call(this, e21) && !(8 & (this.flags | e21.flags)); + } }, { key: "reuseDOM", value: function(e21) { + e21.nodeName == this.mark.tagName.toUpperCase() && (this.setDOM(e21), this.flags |= 6); + } }, { key: "sync", value: function(e21, n10) { + this.dom ? 4 & this.flags && this.setAttrs(this.dom) : this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))), go(Mo(t10.prototype), "sync", this).call(this, e21, n10); + } }, { key: "merge", value: function(e21, n10, r10, o10, i10, a10) { + return (!r10 || !(!(r10 instanceof t10 && r10.mark.eq(this.mark)) || e21 && i10 <= 0 || n10 < this.length && a10 <= 0)) && (bH(this, e21, n10, r10 ? r10.children.slice() : [], i10 - 1, a10 - 1), this.markDirty(), true); + } }, { key: "split", value: function(e21) { + var n10, r10 = [], o10 = 0, i10 = -1, a10 = 0, s10 = bo(this.children); + try { + for (s10.s(); !(n10 = s10.n()).done; ) { + var c10 = n10.value, l10 = o10 + c10.length; + l10 > e21 && r10.push(o10 < e21 ? c10.split(e21 - o10) : c10), i10 < 0 && o10 >= e21 && (i10 = a10), o10 = l10, a10++; + } + } catch (e23) { + s10.e(e23); + } finally { + s10.f(); + } + var u10 = this.length - e21; + return this.length = e21, i10 > -1 && (this.children.length = i10, this.markDirty()), new t10(this.mark, r10, u10); + } }, { key: "domAtPos", value: function(e21) { + return IH(this, e21); + } }, { key: "coordsAt", value: function(e21, t11) { + return qH(this, e21, t11); + } }]), t10; + }(); + var RH = function(e20) { + function t10(e21, n10, r10) { + var o10; + return No(this, t10), (o10 = _o(this, t10)).widget = e21, o10.length = n10, o10.side = r10, o10.prevWidget = null, o10; + } + return Ao(t10, pH), Do(t10, [{ key: "split", value: function(e21) { + var n10 = t10.create(this.widget, this.length - e21, this.side); + return this.length -= e21, n10; + } }, { key: "sync", value: function(e21) { + this.dom && this.widget.updateDOM(this.dom, e21) || (this.dom && this.prevWidget && this.prevWidget.destroy(this.dom), this.prevWidget = null, this.setDOM(this.widget.toDOM(e21)), this.widget.editable || (this.dom.contentEditable = "false")); + } }, { key: "getSide", value: function() { + return this.side; + } }, { key: "merge", value: function(e21, n10, r10, o10, i10, a10) { + return !(r10 && (!(r10 instanceof t10 && this.widget.compare(r10.widget)) || e21 > 0 && i10 <= 0 || n10 < this.length && a10 <= 0)) && (this.length = e21 + (r10 ? r10.length : 0) + (this.length - n10), true); + } }, { key: "become", value: function(e21) { + return e21 instanceof t10 && e21.side == this.side && this.widget.constructor == e21.widget.constructor && (this.widget.compare(e21.widget) || this.markDirty(true), this.dom && !this.prevWidget && (this.prevWidget = this.widget), this.widget = e21.widget, this.length = e21.length, true); + } }, { key: "ignoreMutation", value: function() { + return true; + } }, { key: "ignoreEvent", value: function(e21) { + return this.widget.ignoreEvent(e21); + } }, { key: "overrideDOMText", get: function() { + if (0 == this.length) + return UL.empty; + for (var e21 = this; e21.parent; ) + e21 = e21.parent; + var t11 = e21.view, n10 = t11 && t11.state.doc, r10 = this.posAtStart; + return n10 ? n10.slice(r10, r10 + this.length) : UL.empty; + } }, { key: "domAtPos", value: function(e21) { + return (this.length ? 0 == e21 : this.side > 0) ? hH.before(this.dom) : hH.after(this.dom, e21 == this.length); + } }, { key: "domBoundsAround", value: function() { + return null; + } }, { key: "coordsAt", value: function(e21, t11) { + var n10 = this.widget.coordsAt(this.dom, e21, t11); + if (n10) + return n10; + var r10 = this.dom.getClientRects(), o10 = null; + if (!r10.length) + return null; + for (var i10 = this.side ? this.side < 0 : e21 > 0, a10 = i10 ? r10.length - 1 : 0; o10 = r10[a10], !(e21 > 0 ? 0 == a10 : a10 == r10.length - 1 || o10.top < o10.bottom); a10 += i10 ? -1 : 1) + ; + return nH(o10, !i10); + } }, { key: "isEditable", get: function() { + return false; + } }, { key: "isWidget", get: function() { + return true; + } }, { key: "isHidden", get: function() { + return this.widget.isHidden; + } }, { key: "destroy", value: function() { + go(Mo(t10.prototype), "destroy", this).call(this), this.dom && this.widget.destroy(this.dom); + } }], [{ key: "create", value: function(e21, n10, r10) { + return new t10(e21, n10, r10); + } }]), t10; + }(); + var NH = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), (n10 = _o(this, t10)).side = e21, n10; + } + return Ao(t10, pH), Do(t10, [{ key: "length", get: function() { + return 0; + } }, { key: "merge", value: function() { + return false; + } }, { key: "become", value: function(e21) { + return e21 instanceof t10 && e21.side == this.side; + } }, { key: "split", value: function() { + return new t10(this.side); + } }, { key: "sync", value: function() { + if (!this.dom) { + var e21 = document.createElement("img"); + e21.className = "cm-widgetBuffer", e21.setAttribute("aria-hidden", "true"), this.setDOM(e21); + } + } }, { key: "getSide", value: function() { + return this.side; + } }, { key: "domAtPos", value: function(e21) { + return this.side > 0 ? hH.before(this.dom) : hH.after(this.dom); + } }, { key: "localPosFromDOM", value: function() { + return 0; + } }, { key: "domBoundsAround", value: function() { + return null; + } }, { key: "coordsAt", value: function(e21) { + return this.dom.getBoundingClientRect(); + } }, { key: "overrideDOMText", get: function() { + return UL.empty; + } }, { key: "isHidden", get: function() { + return true; + } }]), t10; + }(); + function IH(e20, t10) { + for (var n10 = e20.dom, r10 = e20.children, o10 = 0, i10 = 0; o10 < r10.length; o10++) { + var a10 = r10[o10], s10 = i10 + a10.length; + if (!(s10 == i10 && a10.getSide() <= 0)) { + if (t10 > i10 && t10 < s10 && a10.dom.parentNode == n10) + return a10.domAtPos(t10 - i10); + if (t10 <= i10) + break; + i10 = s10; + } + } + for (var c10 = o10; c10 > 0; c10--) { + var l10 = r10[c10 - 1]; + if (l10.dom.parentNode == n10) + return l10.domAtPos(l10.length); + } + for (var u10 = o10; u10 < r10.length; u10++) { + var f10 = r10[u10]; + if (f10.dom.parentNode == n10) + return f10.domAtPos(0); + } + return new hH(n10, 0); + } + function DH(e20, t10, n10) { + var r10, o10 = e20.children; + n10 > 0 && t10 instanceof TH && o10.length && (r10 = o10[o10.length - 1]) instanceof TH && r10.mark.eq(t10.mark) ? DH(r10, t10.children[0], n10 - 1) : (o10.push(t10), t10.setParent(e20)), e20.length += t10.length; + } + function qH(e20, t10, n10) { + var r10 = null, o10 = -1, i10 = null, a10 = -1; + !function e21(t11, s11) { + for (var c10 = 0, l10 = 0; c10 < t11.children.length && l10 <= s11; c10++) { + var u10 = t11.children[c10], f10 = l10 + u10.length; + f10 >= s11 && (u10.children.length ? e21(u10, s11 - l10) : (!i10 || i10.isHidden && n10 > 0) && (f10 > s11 || l10 == f10 && u10.getSide() > 0) ? (i10 = u10, a10 = s11 - l10) : (l10 < s11 || l10 == f10 && u10.getSide() < 0 && !u10.isHidden) && (r10 = u10, o10 = s11 - l10)), l10 = f10; + } + }(e20, t10); + var s10 = (n10 < 0 ? r10 : i10) || r10 || i10; + return s10 ? s10.coordsAt(Math.max(0, s10 == r10 ? o10 : a10), n10) : function(e21) { + var t11 = e21.dom.lastChild; + if (!t11) + return e21.dom.getBoundingClientRect(); + var n11 = YV(t11); + return n11[n11.length - 1] || null; + }(e20); + } + function zH(e20, t10) { + for (var n10 in e20) + "class" == n10 && t10.class ? t10.class += " " + e20.class : "style" == n10 && t10.style ? t10.style += ";" + e20.style : t10[n10] = e20[n10]; + return t10; + } + PH.prototype.children = RH.prototype.children = NH.prototype.children = vH; + var BH = /* @__PURE__ */ Object.create(null); + function LH(e20, t10, n10) { + if (e20 == t10) + return true; + e20 || (e20 = BH), t10 || (t10 = BH); + var r10 = Object.keys(e20), o10 = Object.keys(t10); + if (r10.length - (n10 && r10.indexOf(n10) > -1 ? 1 : 0) != o10.length - (n10 && o10.indexOf(n10) > -1 ? 1 : 0)) + return false; + for (var i10 = 0, a10 = r10; i10 < a10.length; i10++) { + var s10 = a10[i10]; + if (s10 != n10 && (-1 == o10.indexOf(s10) || e20[s10] !== t10[s10])) + return false; + } + return true; + } + function FH(e20, t10, n10) { + var r10 = false; + if (t10) + for (var o10 in t10) + n10 && o10 in n10 || (r10 = true, "style" == o10 ? e20.style.cssText = "" : e20.removeAttribute(o10)); + if (n10) + for (var i10 in n10) + t10 && t10[i10] == n10[i10] || (r10 = true, "style" == i10 ? e20.style.cssText = n10[i10] : e20.setAttribute(i10, n10[i10])); + return r10; + } + function VH(e20) { + for (var t10 = /* @__PURE__ */ Object.create(null), n10 = 0; n10 < e20.attributes.length; n10++) { + var r10 = e20.attributes[n10]; + t10[r10.name] = r10.value; + } + return t10; + } + var HH = function(e20) { + function t10() { + var e21; + return No(this, t10), (e21 = _o(this, t10, arguments)).children = [], e21.length = 0, e21.prevAttrs = void 0, e21.attrs = null, e21.breakAfter = 0, e21; + } + return Ao(t10, pH), Do(t10, [{ key: "merge", value: function(e21, n10, r10, o10, i10, a10) { + if (r10) { + if (!(r10 instanceof t10)) + return false; + this.dom || r10.transferDOM(this); + } + return o10 && this.setDeco(r10 ? r10.attrs : null), bH(this, e21, n10, r10 ? r10.children.slice() : [], i10, a10), true; + } }, { key: "split", value: function(e21) { + var n10 = new t10(); + if (n10.breakAfter = this.breakAfter, 0 == this.length) + return n10; + var r10 = this.childPos(e21), o10 = r10.i, i10 = r10.off; + i10 && (n10.append(this.children[o10].split(i10), 0), this.children[o10].merge(i10, this.children[o10].length, null, false, 0, 0), o10++); + for (var a10 = o10; a10 < this.children.length; a10++) + n10.append(this.children[a10], 0); + for (; o10 > 0 && 0 == this.children[o10 - 1].length; ) + this.children[--o10].destroy(); + return this.children.length = o10, this.markDirty(), this.length = e21, n10; + } }, { key: "transferDOM", value: function(e21) { + this.dom && (this.markDirty(), e21.setDOM(this.dom), e21.prevAttrs = void 0 === this.prevAttrs ? this.attrs : this.prevAttrs, this.prevAttrs = void 0, this.dom = null); + } }, { key: "setDeco", value: function(e21) { + LH(this.attrs, e21) || (this.dom && (this.prevAttrs = this.attrs, this.markDirty()), this.attrs = e21); + } }, { key: "append", value: function(e21, t11) { + DH(this, e21, t11); + } }, { key: "addLineDeco", value: function(e21) { + var t11 = e21.spec.attributes, n10 = e21.spec.class; + t11 && (this.attrs = zH(t11, this.attrs || {})), n10 && (this.attrs = zH({ class: n10 }, this.attrs || {})); + } }, { key: "domAtPos", value: function(e21) { + return IH(this, e21); + } }, { key: "reuseDOM", value: function(e21) { + "DIV" == e21.nodeName && (this.setDOM(e21), this.flags |= 6); + } }, { key: "sync", value: function(e21, n10) { + var r10; + this.dom ? 4 & this.flags && (fH(this.dom), this.dom.className = "cm-line", this.prevAttrs = this.attrs ? null : void 0) : (this.setDOM(document.createElement("div")), this.dom.className = "cm-line", this.prevAttrs = this.attrs ? null : void 0), void 0 !== this.prevAttrs && (FH(this.dom, this.prevAttrs, this.attrs), this.dom.classList.add("cm-line"), this.prevAttrs = void 0), go(Mo(t10.prototype), "sync", this).call(this, e21, n10); + for (var o10 = this.dom.lastChild; o10 && pH.get(o10) instanceof TH; ) + o10 = o10.lastChild; + if (!(o10 && this.length && ("BR" == o10.nodeName || 0 != (null === (r10 = pH.get(o10)) || void 0 === r10 ? void 0 : r10.isEditable) || AH.ios && this.children.some(function(e23) { + return e23 instanceof PH; + })))) { + var i10 = document.createElement("BR"); + i10.cmIgnore = true, this.dom.appendChild(i10); + } + } }, { key: "measureTextSize", value: function() { + if (0 == this.children.length || this.length > 20) + return null; + var e21, t11, n10 = 0, r10 = bo(this.children); + try { + for (r10.s(); !(t11 = r10.n()).done; ) { + var o10 = t11.value; + if (!(o10 instanceof PH) || /[^ -~]/.test(o10.text)) + return null; + var i10 = YV(o10.dom); + if (1 != i10.length) + return null; + n10 += i10[0].width, e21 = i10[0].height; + } + } catch (e23) { + r10.e(e23); + } finally { + r10.f(); + } + return n10 ? { lineHeight: this.dom.getBoundingClientRect().height, charWidth: n10 / this.length, textHeight: e21 } : null; + } }, { key: "coordsAt", value: function(e21, t11) { + var n10 = qH(this, e21, t11); + if (!this.children.length && n10 && this.parent) { + var r10 = this.parent.view.viewState.heightOracle, o10 = n10.bottom - n10.top; + if (Math.abs(o10 - r10.lineHeight) < 2 && r10.textHeight < o10) { + var i10 = (o10 - r10.textHeight) / 2; + return { top: n10.top + i10, bottom: n10.bottom - i10, left: n10.left, right: n10.left }; + } + } + return n10; + } }, { key: "become", value: function(e21) { + return false; + } }, { key: "covers", value: function() { + return true; + } }], [{ key: "find", value: function(e21, n10) { + for (var r10 = 0, o10 = 0; r10 < e21.children.length; r10++) { + var i10 = e21.children[r10], a10 = o10 + i10.length; + if (a10 >= n10) { + if (i10 instanceof t10) + return i10; + if (a10 > n10) + break; + } + o10 = a10 + i10.breakAfter; + } + return null; + } }]), t10; + }(); + var WH = function(e20) { + function t10(e21, n10, r10) { + var o10; + return No(this, t10), (o10 = _o(this, t10)).widget = e21, o10.length = n10, o10.deco = r10, o10.breakAfter = 0, o10.prevWidget = null, o10; + } + return Ao(t10, pH), Do(t10, [{ key: "merge", value: function(e21, n10, r10, o10, i10, a10) { + return !(r10 && (!(r10 instanceof t10 && this.widget.compare(r10.widget)) || e21 > 0 && i10 <= 0 || n10 < this.length && a10 <= 0)) && (this.length = e21 + (r10 ? r10.length : 0) + (this.length - n10), true); + } }, { key: "domAtPos", value: function(e21) { + return 0 == e21 ? hH.before(this.dom) : hH.after(this.dom, e21 == this.length); + } }, { key: "split", value: function(e21) { + var n10 = this.length - e21; + this.length = e21; + var r10 = new t10(this.widget, n10, this.deco); + return r10.breakAfter = this.breakAfter, r10; + } }, { key: "children", get: function() { + return vH; + } }, { key: "sync", value: function(e21) { + this.dom && this.widget.updateDOM(this.dom, e21) || (this.dom && this.prevWidget && this.prevWidget.destroy(this.dom), this.prevWidget = null, this.setDOM(this.widget.toDOM(e21)), this.widget.editable || (this.dom.contentEditable = "false")); + } }, { key: "overrideDOMText", get: function() { + return this.parent ? this.parent.view.state.doc.slice(this.posAtStart, this.posAtEnd) : UL.empty; + } }, { key: "domBoundsAround", value: function() { + return null; + } }, { key: "become", value: function(e21) { + return e21 instanceof t10 && e21.widget.constructor == this.widget.constructor && (e21.widget.compare(this.widget) || this.markDirty(true), this.dom && !this.prevWidget && (this.prevWidget = this.widget), this.widget = e21.widget, this.length = e21.length, this.deco = e21.deco, this.breakAfter = e21.breakAfter, true); + } }, { key: "ignoreMutation", value: function() { + return true; + } }, { key: "ignoreEvent", value: function(e21) { + return this.widget.ignoreEvent(e21); + } }, { key: "isEditable", get: function() { + return false; + } }, { key: "isWidget", get: function() { + return true; + } }, { key: "coordsAt", value: function(e21, t11) { + return this.widget.coordsAt(this.dom, e21, t11); + } }, { key: "destroy", value: function() { + go(Mo(t10.prototype), "destroy", this).call(this), this.dom && this.widget.destroy(this.dom); + } }, { key: "covers", value: function(e21) { + var t11 = this.deco, n10 = t11.startSide, r10 = t11.endSide; + return n10 != r10 && (e21 < 0 ? n10 < 0 : r10 > 0); + } }]), t10; + }(); + var UH = function() { + function e20() { + No(this, e20); + } + return Do(e20, [{ key: "eq", value: function(e21) { + return false; + } }, { key: "updateDOM", value: function(e21, t10) { + return false; + } }, { key: "compare", value: function(e21) { + return this == e21 || this.constructor == e21.constructor && this.eq(e21); + } }, { key: "estimatedHeight", get: function() { + return -1; + } }, { key: "lineBreaks", get: function() { + return 0; + } }, { key: "ignoreEvent", value: function(e21) { + return true; + } }, { key: "coordsAt", value: function(e21, t10, n10) { + return null; + } }, { key: "isHidden", get: function() { + return false; + } }, { key: "editable", get: function() { + return false; + } }, { key: "destroy", value: function(e21) { + } }]), e20; + }(); + var JH = function(e20) { + return e20[e20.Text = 0] = "Text", e20[e20.WidgetBefore = 1] = "WidgetBefore", e20[e20.WidgetAfter = 2] = "WidgetAfter", e20[e20.WidgetRange = 3] = "WidgetRange", e20; + }(JH || (JH = {})); + var KH = function(e20) { + function t10(e21, n10, r10, o10) { + var i10; + return No(this, t10), (i10 = _o(this, t10)).startSide = e21, i10.endSide = n10, i10.widget = r10, i10.spec = o10, i10; + } + return Ao(t10, yV), Do(t10, [{ key: "heightRelevant", get: function() { + return false; + } }, { key: "hasHeight", value: function() { + return !!this.widget && this.widget.estimatedHeight > -1; + } }], [{ key: "mark", value: function(e21) { + return new GH(e21); + } }, { key: "widget", value: function(e21) { + var t11 = Math.max(-1e4, Math.min(1e4, e21.side || 0)), n10 = !!e21.block; + return t11 += n10 && !e21.inlineOrder ? t11 > 0 ? 3e8 : -4e8 : t11 > 0 ? 1e8 : -1e8, new YH(e21, t11, t11, n10, e21.widget || null, false); + } }, { key: "replace", value: function(e21) { + var t11, n10, r10 = !!e21.block; + if (e21.isBlockGap) + t11 = -5e8, n10 = 4e8; + else { + var o10 = XH(e21, r10); + t11 = (o10.start ? r10 ? -3e8 : -1 : 5e8) - 1, n10 = 1 + (o10.end ? r10 ? 2e8 : 1 : -6e8); + } + return new YH(e21, t11, n10, r10, e21.widget || null, true); + } }, { key: "line", value: function(e21) { + return new QH(e21); + } }, { key: "set", value: function(e21) { + var t11 = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; + return xV.of(e21, t11); + } }]), t10; + }(); + KH.none = xV.empty; + var GH = function(e20) { + function t10(e21) { + var n10; + No(this, t10); + var r10 = XH(e21); + return (n10 = _o(this, t10, [r10.start ? -1 : 5e8, r10.end ? 1 : -6e8, null, e21])).tagName = e21.tagName || "span", n10.class = e21.class || "", n10.attrs = e21.attributes || null, n10; + } + return Ao(t10, KH), Do(t10, [{ key: "eq", value: function(e21) { + var n10, r10; + return this == e21 || e21 instanceof t10 && this.tagName == e21.tagName && (this.class || (null === (n10 = this.attrs) || void 0 === n10 ? void 0 : n10.class)) == (e21.class || (null === (r10 = e21.attrs) || void 0 === r10 ? void 0 : r10.class)) && LH(this.attrs, e21.attrs, "class"); + } }, { key: "range", value: function(e21) { + var n10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : e21; + if (e21 >= n10) + throw new RangeError("Mark decorations may not be empty"); + return go(Mo(t10.prototype), "range", this).call(this, e21, n10); + } }]), t10; + }(); + GH.prototype.point = false; + var QH = function(e20) { + function t10(e21) { + return No(this, t10), _o(this, t10, [-2e8, -2e8, null, e21]); + } + return Ao(t10, KH), Do(t10, [{ key: "eq", value: function(e21) { + return e21 instanceof t10 && this.spec.class == e21.spec.class && LH(this.spec.attributes, e21.spec.attributes); + } }, { key: "range", value: function(e21) { + var n10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : e21; + if (n10 != e21) + throw new RangeError("Line decoration ranges must be zero-length"); + return go(Mo(t10.prototype), "range", this).call(this, e21, n10); + } }]), t10; + }(); + QH.prototype.mapMode = mF.TrackBefore, QH.prototype.point = true; + var YH = function(e20) { + function t10(e21, n10, r10, o10, i10, a10) { + var s10; + return No(this, t10), (s10 = _o(this, t10, [n10, r10, i10, e21])).block = o10, s10.isReplace = a10, s10.mapMode = o10 ? n10 <= 0 ? mF.TrackBefore : mF.TrackAfter : mF.TrackDel, s10; + } + return Ao(t10, KH), Do(t10, [{ key: "type", get: function() { + return this.startSide != this.endSide ? JH.WidgetRange : this.startSide <= 0 ? JH.WidgetBefore : JH.WidgetAfter; + } }, { key: "heightRelevant", get: function() { + return this.block || !!this.widget && (this.widget.estimatedHeight >= 5 || this.widget.lineBreaks > 0); + } }, { key: "eq", value: function(e21) { + return e21 instanceof t10 && (n10 = this.widget, r10 = e21.widget, n10 == r10 || !!(n10 && r10 && n10.compare(r10))) && this.block == e21.block && this.startSide == e21.startSide && this.endSide == e21.endSide; + var n10, r10; + } }, { key: "range", value: function(e21) { + var n10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : e21; + if (this.isReplace && (e21 > n10 || e21 == n10 && this.startSide > 0 && this.endSide <= 0)) + throw new RangeError("Invalid range for replacement decoration"); + if (!this.isReplace && n10 != e21) + throw new RangeError("Widget decorations can only have zero-length ranges"); + return go(Mo(t10.prototype), "range", this).call(this, e21, n10); + } }]), t10; + }(); + function XH(e20) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], n10 = e20.inclusiveStart, r10 = e20.inclusiveEnd; + return null == n10 && (n10 = e20.inclusive), null == r10 && (r10 = e20.inclusive), { start: null != n10 ? n10 : t10, end: null != r10 ? r10 : t10 }; + } + function ZH(e20, t10, n10) { + var r10 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0, o10 = n10.length - 1; + o10 >= 0 && n10[o10] + r10 >= e20 ? n10[o10] = Math.max(n10[o10], t10) : n10.push(e20, t10); + } + YH.prototype.point = true; + var eW = function() { + function e20(t10, n10, r10, o10) { + No(this, e20), this.doc = t10, this.pos = n10, this.end = r10, this.disallowBlockEffectsFor = o10, this.content = [], this.curLine = null, this.breakAtStart = 0, this.pendingBuffer = 0, this.bufferMarks = [], this.atCursorPos = true, this.openStart = -1, this.openEnd = -1, this.text = "", this.textOff = 0, this.cursor = t10.iter(), this.skip = n10; + } + return Do(e20, [{ key: "posCovered", value: function() { + if (0 == this.content.length) + return !this.breakAtStart && this.doc.lineAt(this.pos).from != this.pos; + var e21 = this.content[this.content.length - 1]; + return !(e21.breakAfter || e21 instanceof WH && e21.deco.endSide < 0); + } }, { key: "getLine", value: function() { + return this.curLine || (this.content.push(this.curLine = new HH()), this.atCursorPos = true), this.curLine; + } }, { key: "flushBuffer", value: function() { + var e21 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.bufferMarks; + this.pendingBuffer && (this.curLine.append(tW(new NH(-1), e21), e21.length), this.pendingBuffer = 0); + } }, { key: "addBlockWidget", value: function(e21) { + this.flushBuffer(), this.curLine = null, this.content.push(e21); + } }, { key: "finish", value: function(e21) { + this.pendingBuffer && e21 <= this.bufferMarks.length ? this.flushBuffer() : this.pendingBuffer = 0, this.posCovered() || e21 && this.content.length && this.content[this.content.length - 1] instanceof WH || this.getLine(); + } }, { key: "buildText", value: function(e21, t10, n10) { + for (; e21 > 0; ) { + if (this.textOff == this.text.length) { + var r10 = this.cursor.next(this.skip), o10 = r10.value, i10 = r10.lineBreak, a10 = r10.done; + if (this.skip = 0, a10) + throw new Error("Ran out of text content when drawing inline views"); + if (i10) { + this.posCovered() || this.getLine(), this.content.length ? this.content[this.content.length - 1].breakAfter = 1 : this.breakAtStart = 1, this.flushBuffer(), this.curLine = null, this.atCursorPos = true, e21--; + continue; + } + this.text = o10, this.textOff = 0; + } + var s10 = Math.min(this.text.length - this.textOff, e21, 512); + this.flushBuffer(t10.slice(t10.length - n10)), this.getLine().append(tW(new PH(this.text.slice(this.textOff, this.textOff + s10)), t10), n10), this.atCursorPos = true, this.textOff += s10, e21 -= s10, n10 = 0; + } + } }, { key: "span", value: function(e21, t10, n10, r10) { + this.buildText(t10 - e21, n10, r10), this.pos = t10, this.openStart < 0 && (this.openStart = r10); + } }, { key: "point", value: function(e21, t10, n10, r10, o10, i10) { + if (this.disallowBlockEffectsFor[i10] && n10 instanceof YH) { + if (n10.block) + throw new RangeError("Block decorations may not be specified via plugins"); + if (t10 > this.doc.lineAt(this.pos).to) + throw new RangeError("Decorations that replace line breaks may not be specified via plugins"); + } + var a10 = t10 - e21; + if (n10 instanceof YH) + if (n10.block) + n10.startSide > 0 && !this.posCovered() && this.getLine(), this.addBlockWidget(new WH(n10.widget || new nW("div"), a10, n10)); + else { + var s10 = RH.create(n10.widget || new nW("span"), a10, a10 ? 0 : n10.startSide), c10 = this.atCursorPos && !s10.isEditable && o10 <= r10.length && (e21 < t10 || n10.startSide > 0), l10 = !s10.isEditable && (e21 < t10 || o10 > r10.length || n10.startSide <= 0), u10 = this.getLine(); + 2 != this.pendingBuffer || c10 || s10.isEditable || (this.pendingBuffer = 0), this.flushBuffer(r10), c10 && (u10.append(tW(new NH(1), r10), o10), o10 = r10.length + Math.max(0, o10 - r10.length)), u10.append(tW(s10, r10), o10), this.atCursorPos = l10, this.pendingBuffer = l10 ? e21 < t10 || o10 > r10.length ? 1 : 2 : 0, this.pendingBuffer && (this.bufferMarks = r10.slice()); + } + else + this.doc.lineAt(this.pos).from == this.pos && this.getLine().addLineDeco(n10); + a10 && (this.textOff + a10 <= this.text.length ? this.textOff += a10 : (this.skip += a10 - (this.text.length - this.textOff), this.text = "", this.textOff = 0), this.pos = t10), this.openStart < 0 && (this.openStart = o10); + } }], [{ key: "build", value: function(t10, n10, r10, o10, i10) { + var a10 = new e20(t10, n10, r10, i10); + return a10.openEnd = xV.spans(o10, n10, r10, a10), a10.openStart < 0 && (a10.openStart = a10.openEnd), a10.finish(a10.openEnd), a10; + } }]), e20; + }(); + function tW(e20, t10) { + var n10, r10 = bo(t10); + try { + for (r10.s(); !(n10 = r10.n()).done; ) { + var o10 = n10.value; + e20 = new TH(o10, [e20], e20.length); + } + } catch (e21) { + r10.e(e21); + } finally { + r10.f(); + } + return e20; + } + var nW = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), (n10 = _o(this, t10)).tag = e21, n10; + } + return Ao(t10, UH), Do(t10, [{ key: "eq", value: function(e21) { + return e21.tag == this.tag; + } }, { key: "toDOM", value: function() { + return document.createElement(this.tag); + } }, { key: "updateDOM", value: function(e21) { + return e21.nodeName.toLowerCase() == this.tag; + } }, { key: "isHidden", get: function() { + return true; + } }]), t10; + }(); + var rW = function(e20) { + return e20[e20.LTR = 0] = "LTR", e20[e20.RTL = 1] = "RTL", e20; + }(rW || (rW = {})); + var oW = rW.LTR; + var iW = rW.RTL; + function aW(e20) { + for (var t10 = [], n10 = 0; n10 < e20.length; n10++) + t10.push(1 << +e20[n10]); + return t10; + } + for (sW = aW("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"), cW = aW("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"), lW = /* @__PURE__ */ Object.create(null), uW = [], fW = 0, dW = ["()", "[]", "{}"]; fW < dW.length; fW++) { + hW = dW[fW], vW = hW.charCodeAt(0), pW = hW.charCodeAt(1); + lW[vW] = pW, lW[pW] = -vW; + } + var hW; + var vW; + var pW; + var sW; + var cW; + var lW; + var uW; + var fW; + var dW; + function mW(e20) { + return e20 <= 247 ? sW[e20] : 1424 <= e20 && e20 <= 1524 ? 2 : 1536 <= e20 && e20 <= 1785 ? cW[e20 - 1536] : 1774 <= e20 && e20 <= 2220 ? 4 : 8192 <= e20 && e20 <= 8204 ? 256 : 64336 <= e20 && e20 <= 65023 ? 4 : 1; + } + var gW = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/; + var yW = function() { + function e20(t10, n10, r10) { + No(this, e20), this.from = t10, this.to = n10, this.level = r10; + } + return Do(e20, [{ key: "dir", get: function() { + return this.level % 2 ? iW : oW; + } }, { key: "side", value: function(e21, t10) { + return this.dir == t10 == e21 ? this.to : this.from; + } }, { key: "forward", value: function(e21, t10) { + return e21 == (this.dir == t10); + } }], [{ key: "find", value: function(e21, t10, n10, r10) { + for (var o10 = -1, i10 = 0; i10 < e21.length; i10++) { + var a10 = e21[i10]; + if (a10.from <= t10 && a10.to >= t10) { + if (a10.level == n10) + return i10; + (o10 < 0 || (0 != r10 ? r10 < 0 ? a10.from < t10 : a10.to > t10 : e21[o10].level > a10.level)) && (o10 = i10); + } + } + if (o10 < 0) + throw new RangeError("Index out of range"); + return o10; + } }]), e20; + }(); + function bW(e20, t10) { + if (e20.length != t10.length) + return false; + for (var n10 = 0; n10 < e20.length; n10++) { + var r10 = e20[n10], o10 = t10[n10]; + if (r10.from != o10.from || r10.to != o10.to || r10.direction != o10.direction || !bW(r10.inner, o10.inner)) + return false; + } + return true; + } + var kW = []; + function wW(e20, t10, n10, r10, o10, i10, a10) { + var s10 = r10 % 2 ? 2 : 1; + if (r10 % 2 == o10 % 2) + for (var c10 = t10, l10 = 0; c10 < n10; ) { + var u10 = true, f10 = false; + if (l10 == i10.length || c10 < i10[l10].from) { + var d10 = kW[c10]; + d10 != s10 && (u10 = false, f10 = 16 == d10); + } + var h10 = u10 || 1 != s10 ? null : [], v10 = u10 ? r10 : r10 + 1, p10 = c10; + e: + for (; ; ) + if (l10 < i10.length && p10 == i10[l10].from) { + if (f10) + break e; + var m10 = i10[l10]; + if (!u10) + for (var g10 = m10.to, y10 = l10 + 1; ; ) { + if (g10 == n10) + break e; + if (!(y10 < i10.length && i10[y10].from == g10)) { + if (kW[g10] == s10) + break e; + break; + } + g10 = i10[y10++].to; + } + if (l10++, h10) + h10.push(m10); + else + m10.from > c10 && a10.push(new yW(c10, m10.from, v10)), xW(e20, m10.direction == oW != !(v10 % 2) ? r10 + 1 : r10, o10, m10.inner, m10.from, m10.to, a10), c10 = m10.to; + p10 = m10.to; + } else { + if (p10 == n10 || (u10 ? kW[p10] != s10 : kW[p10] == s10)) + break; + p10++; + } + h10 ? wW(e20, c10, p10, r10 + 1, o10, h10, a10) : c10 < p10 && a10.push(new yW(c10, p10, v10)), c10 = p10; + } + else + for (var b10 = n10, k10 = i10.length; b10 > t10; ) { + var w10 = true, x10 = false; + if (!k10 || b10 > i10[k10 - 1].to) { + var j10 = kW[b10 - 1]; + j10 != s10 && (w10 = false, x10 = 16 == j10); + } + var S10 = w10 || 1 != s10 ? null : [], C10 = w10 ? r10 : r10 + 1, $10 = b10; + e: + for (; ; ) + if (k10 && $10 == i10[k10 - 1].to) { + if (x10) + break e; + var _10 = i10[--k10]; + if (!w10) + for (var O10 = _10.from, M10 = k10; ; ) { + if (O10 == t10) + break e; + if (!M10 || i10[M10 - 1].to != O10) { + if (kW[O10 - 1] == s10) + break e; + break; + } + O10 = i10[--M10].from; + } + if (S10) + S10.push(_10); + else + _10.to < b10 && a10.push(new yW(_10.to, b10, C10)), xW(e20, _10.direction == oW != !(C10 % 2) ? r10 + 1 : r10, o10, _10.inner, _10.from, _10.to, a10), b10 = _10.from; + $10 = _10.from; + } else { + if ($10 == t10 || (w10 ? kW[$10 - 1] != s10 : kW[$10 - 1] == s10)) + break; + $10--; + } + S10 ? wW(e20, $10, b10, r10 + 1, o10, S10, a10) : $10 < b10 && a10.push(new yW($10, b10, C10)), b10 = $10; + } + } + function xW(e20, t10, n10, r10, o10, i10, a10) { + var s10 = t10 % 2 ? 2 : 1; + !function(e21, t11, n11, r11, o11) { + for (var i11 = 0; i11 <= r11.length; i11++) { + for (var a11 = i11 ? r11[i11 - 1].to : t11, s11 = i11 < r11.length ? r11[i11].from : n11, c10 = i11 ? 256 : o11, l10 = a11, u10 = c10, f10 = c10; l10 < s11; l10++) { + var d10 = mW(e21.charCodeAt(l10)); + 512 == d10 ? d10 = u10 : 8 == d10 && 4 == f10 && (d10 = 16), kW[l10] = 4 == d10 ? 2 : d10, 7 & d10 && (f10 = d10), u10 = d10; + } + for (var h10 = a11, v10 = c10, p10 = c10; h10 < s11; h10++) { + var m10 = kW[h10]; + if (128 == m10) + h10 < s11 - 1 && v10 == kW[h10 + 1] && 24 & v10 ? m10 = kW[h10] = v10 : kW[h10] = 256; + else if (64 == m10) { + for (var g10 = h10 + 1; g10 < s11 && 64 == kW[g10]; ) + g10++; + for (var y10 = h10 && 8 == v10 || g10 < n11 && 8 == kW[g10] ? 1 == p10 ? 1 : 8 : 256, b10 = h10; b10 < g10; b10++) + kW[b10] = y10; + h10 = g10 - 1; + } else + 8 == m10 && 1 == p10 && (kW[h10] = 1); + v10 = m10, 7 & m10 && (p10 = m10); + } + } + }(e20, o10, i10, r10, s10), function(e21, t11, n11, r11, o11) { + for (var i11 = 1 == o11 ? 2 : 1, a11 = 0, s11 = 0, c10 = 0; a11 <= r11.length; a11++) + for (var l10, u10, f10, d10 = a11 ? r11[a11 - 1].to : t11, h10 = a11 < r11.length ? r11[a11].from : n11, v10 = d10; v10 < h10; v10++) + if (u10 = lW[l10 = e21.charCodeAt(v10)]) + if (u10 < 0) { + for (var p10 = s11 - 3; p10 >= 0; p10 -= 3) + if (uW[p10 + 1] == -u10) { + var m10 = uW[p10 + 2], g10 = 2 & m10 ? o11 : 4 & m10 ? 1 & m10 ? i11 : o11 : 0; + g10 && (kW[v10] = kW[uW[p10]] = g10), s11 = p10; + break; + } + } else { + if (189 == uW.length) + break; + uW[s11++] = v10, uW[s11++] = l10, uW[s11++] = c10; + } + else if (2 == (f10 = kW[v10]) || 1 == f10) { + var y10 = f10 == o11; + c10 = y10 ? 0 : 1; + for (var b10 = s11 - 3; b10 >= 0; b10 -= 3) { + var k10 = uW[b10 + 2]; + if (2 & k10) + break; + if (y10) + uW[b10 + 2] |= 2; + else { + if (4 & k10) + break; + uW[b10 + 2] |= 4; + } + } + } + }(e20, o10, i10, r10, s10), function(e21, t11, n11, r11) { + for (var o11 = 0, i11 = r11; o11 <= n11.length; o11++) + for (var a11 = o11 ? n11[o11 - 1].to : e21, s11 = o11 < n11.length ? n11[o11].from : t11, c10 = a11; c10 < s11; ) { + var l10 = kW[c10]; + if (256 == l10) { + for (var u10 = c10 + 1; ; ) + if (u10 == s11) { + if (o11 == n11.length) + break; + u10 = n11[o11++].to, s11 = o11 < n11.length ? n11[o11].from : t11; + } else { + if (256 != kW[u10]) + break; + u10++; + } + for (var f10 = 1 == i11, d10 = f10 == (1 == (u10 < t11 ? kW[u10] : r11)) ? f10 ? 1 : 2 : r11, h10 = u10, v10 = o11, p10 = v10 ? n11[v10 - 1].to : e21; h10 > c10; ) + h10 == p10 && (h10 = n11[--v10].from, p10 = v10 ? n11[v10 - 1].to : e21), kW[--h10] = d10; + c10 = u10; + } else + i11 = l10, c10++; + } + }(o10, i10, r10, s10), wW(e20, o10, i10, t10, n10, r10, a10); + } + function jW(e20) { + return [new yW(0, e20, 0)]; + } + var SW = ""; + function CW(e20, t10, n10, r10, o10) { + var i10, a10 = r10.head - e20.from, s10 = yW.find(t10, a10, null !== (i10 = r10.bidiLevel) && void 0 !== i10 ? i10 : -1, r10.assoc), c10 = t10[s10], l10 = c10.side(o10, n10); + if (a10 == l10) { + var u10 = s10 += o10 ? 1 : -1; + if (u10 < 0 || u10 >= t10.length) + return null; + a10 = (c10 = t10[s10 = u10]).side(!o10, n10), l10 = c10.side(o10, n10); + } + var f10 = sF(e20.text, a10, c10.forward(o10, n10)); + (f10 < c10.from || f10 > c10.to) && (f10 = l10), SW = e20.text.slice(Math.min(a10, f10), Math.max(a10, f10)); + var d10 = s10 == (o10 ? t10.length - 1 : 0) ? null : t10[s10 + (o10 ? 1 : -1)]; + return d10 && f10 == l10 && d10.level + (o10 ? 0 : 1) < c10.level ? $F.cursor(d10.side(!o10, n10) + e20.from, d10.forward(o10, n10) ? 1 : -1, d10.level) : $F.cursor(f10 + e20.from, c10.forward(o10, n10) ? -1 : 1, c10.level); + } + function $W(e20, t10, n10) { + for (var r10 = t10; r10 < n10; r10++) { + var o10 = mW(e20.charCodeAt(r10)); + if (1 == o10) + return oW; + if (2 == o10 || 4 == o10) + return iW; + } + return oW; + } + var _W = MF.define(); + var OW = MF.define(); + var MW = MF.define(); + var EW = MF.define(); + var AW = MF.define(); + var PW = MF.define(); + var TW = MF.define(); + var RW = MF.define({ combine: function(e20) { + return e20.some(function(e21) { + return e21; + }); + } }); + var NW = MF.define({ combine: function(e20) { + return e20.some(function(e21) { + return e21; + }); + } }); + var IW = function() { + function e20(t10) { + var n10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "nearest", r10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "nearest", o10 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 5, i10 = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 5, a10 = arguments.length > 5 && void 0 !== arguments[5] && arguments[5]; + No(this, e20), this.range = t10, this.y = n10, this.x = r10, this.yMargin = o10, this.xMargin = i10, this.isSnapshot = a10; + } + return Do(e20, [{ key: "map", value: function(t10) { + return t10.empty ? this : new e20(this.range.map(t10), this.y, this.x, this.yMargin, this.xMargin, this.isSnapshot); + } }, { key: "clip", value: function(t10) { + return this.range.to <= t10.doc.length ? this : new e20($F.cursor(t10.doc.length), this.y, this.x, this.yMargin, this.xMargin, this.isSnapshot); + } }]), e20; + }(); + var DW = oV.define({ map: function(e20, t10) { + return e20.map(t10); + } }); + function qW(e20, t10, n10) { + var r10 = e20.facet(EW); + r10.length ? r10[0](t10) : window.onerror ? window.onerror(String(t10), n10, void 0, void 0, t10) : n10 ? console.error(n10 + ":", t10) : console.error(t10); + } + var zW = MF.define({ combine: function(e20) { + return !e20.length || e20[0]; + } }); + var BW = 0; + var LW = MF.define(); + var FW = function() { + function e20(t10, n10, r10, o10, i10) { + No(this, e20), this.id = t10, this.create = n10, this.domEventHandlers = r10, this.domEventObservers = o10, this.extension = i10(this); + } + return Do(e20, null, [{ key: "define", value: function(t10, n10) { + var r10 = n10 || {}, o10 = r10.eventHandlers, i10 = r10.eventObservers, a10 = r10.provide, s10 = r10.decorations; + return new e20(BW++, t10, o10, i10, function(e21) { + var t11 = [LW.of(e21)]; + return s10 && t11.push(UW.of(function(t12) { + var n11 = t12.plugin(e21); + return n11 ? s10(n11) : KH.none; + })), a10 && t11.push(a10(e21)), t11; + }); + } }, { key: "fromClass", value: function(t10, n10) { + return e20.define(function(e21) { + return new t10(e21); + }, n10); + } }]), e20; + }(); + var VW = function() { + function e20(t10) { + No(this, e20), this.spec = t10, this.mustUpdate = null, this.value = null; + } + return Do(e20, [{ key: "update", value: function(e21) { + if (this.value) { + if (this.mustUpdate) { + var t10 = this.mustUpdate; + if (this.mustUpdate = null, this.value.update) + try { + this.value.update(t10); + } catch (e23) { + if (qW(t10.state, e23, "CodeMirror plugin crashed"), this.value.destroy) + try { + this.value.destroy(); + } catch (e24) { + } + this.deactivate(); + } + } + } else if (this.spec) + try { + this.value = this.spec.create(e21); + } catch (t11) { + qW(e21.state, t11, "CodeMirror plugin crashed"), this.deactivate(); + } + return this; + } }, { key: "destroy", value: function(e21) { + var t10; + if (null === (t10 = this.value) || void 0 === t10 ? void 0 : t10.destroy) + try { + this.value.destroy(); + } catch (t11) { + qW(e21.state, t11, "CodeMirror plugin crashed"); + } + } }, { key: "deactivate", value: function() { + this.spec = this.value = null; + } }]), e20; + }(); + var HW = MF.define(); + var WW = MF.define(); + var UW = MF.define(); + var JW = MF.define(); + var KW = MF.define(); + var GW = MF.define(); + function QW(e20, t10) { + var n10 = e20.state.facet(GW); + if (!n10.length) + return n10; + var r10 = n10.map(function(t11) { + return t11 instanceof Function ? t11(e20) : t11; + }), o10 = []; + return xV.spans(r10, t10.from, t10.to, { point: function() { + }, span: function(e21, n11, r11, i10) { + for (var a10 = e21 - t10.from, s10 = n11 - t10.from, c10 = o10, l10 = r11.length - 1; l10 >= 0; l10--, i10--) { + var u10 = r11[l10].spec.bidiIsolate, f10 = void 0; + if (null == u10 && (u10 = $W(t10.text, a10, s10)), i10 > 0 && c10.length && (f10 = c10[c10.length - 1]).to == a10 && f10.direction == u10) + f10.to = s10, c10 = f10.inner; + else { + var d10 = { from: a10, to: s10, direction: u10, inner: [] }; + c10.push(d10), c10 = d10.inner; + } + } + } }), o10; + } + var YW = MF.define(); + function XW(e20) { + var t10, n10 = 0, r10 = 0, o10 = 0, i10 = 0, a10 = bo(e20.state.facet(YW)); + try { + for (a10.s(); !(t10 = a10.n()).done; ) { + var s10 = (0, t10.value)(e20); + s10 && (null != s10.left && (n10 = Math.max(n10, s10.left)), null != s10.right && (r10 = Math.max(r10, s10.right)), null != s10.top && (o10 = Math.max(o10, s10.top)), null != s10.bottom && (i10 = Math.max(i10, s10.bottom))); + } + } catch (e21) { + a10.e(e21); + } finally { + a10.f(); + } + return { left: n10, right: r10, top: o10, bottom: i10 }; + } + var ZW = MF.define(); + var eU = function() { + function e20(t10, n10, r10, o10) { + No(this, e20), this.fromA = t10, this.toA = n10, this.fromB = r10, this.toB = o10; + } + return Do(e20, [{ key: "join", value: function(t10) { + return new e20(Math.min(this.fromA, t10.fromA), Math.max(this.toA, t10.toA), Math.min(this.fromB, t10.fromB), Math.max(this.toB, t10.toB)); + } }, { key: "addToSet", value: function(e21) { + for (var t10 = e21.length, n10 = this; t10 > 0; t10--) { + var r10 = e21[t10 - 1]; + if (!(r10.fromA > n10.toA)) { + if (r10.toA < n10.fromA) + break; + n10 = n10.join(r10), e21.splice(t10 - 1, 1); + } + } + return e21.splice(t10, 0, n10), e21; + } }], [{ key: "extendWithRanges", value: function(t10, n10) { + if (0 == n10.length) + return t10; + for (var r10 = [], o10 = 0, i10 = 0, a10 = 0, s10 = 0; ; o10++) { + for (var c10 = o10 == t10.length ? null : t10[o10], l10 = a10 - s10, u10 = c10 ? c10.fromB : 1e9; i10 < n10.length && n10[i10] < u10; ) { + var f10 = n10[i10], d10 = n10[i10 + 1], h10 = Math.max(s10, f10), v10 = Math.min(u10, d10); + if (h10 <= v10 && new e20(h10 + l10, v10 + l10, h10, v10).addToSet(r10), d10 > u10) + break; + i10 += 2; + } + if (!c10) + return r10; + new e20(c10.fromA, c10.toA, c10.fromB, c10.toB).addToSet(r10), a10 = c10.toA, s10 = c10.toB; + } + } }]), e20; + }(); + var tU = function() { + function e20(t10, n10, r10) { + No(this, e20), this.view = t10, this.state = n10, this.transactions = r10, this.flags = 0, this.startState = t10.state, this.changes = yF.empty(this.startState.doc.length); + var o10, i10 = bo(r10); + try { + for (i10.s(); !(o10 = i10.n()).done; ) { + var a10 = o10.value; + this.changes = this.changes.compose(a10.changes); + } + } catch (e21) { + i10.e(e21); + } finally { + i10.f(); + } + var s10 = []; + this.changes.iterChangedRanges(function(e21, t11, n11, r11) { + return s10.push(new eU(e21, t11, n11, r11)); + }), this.changedRanges = s10; + } + return Do(e20, [{ key: "viewportChanged", get: function() { + return (4 & this.flags) > 0; + } }, { key: "heightChanged", get: function() { + return (2 & this.flags) > 0; + } }, { key: "geometryChanged", get: function() { + return this.docChanged || (10 & this.flags) > 0; + } }, { key: "focusChanged", get: function() { + return (1 & this.flags) > 0; + } }, { key: "docChanged", get: function() { + return !this.changes.empty; + } }, { key: "selectionSet", get: function() { + return this.transactions.some(function(e21) { + return e21.selection; + }); + } }, { key: "empty", get: function() { + return 0 == this.flags && 0 == this.transactions.length; + } }], [{ key: "create", value: function(t10, n10, r10) { + return new e20(t10, n10, r10); + } }]), e20; + }(); + var nU = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), (n10 = _o(this, t10)).view = e21, n10.decorations = [], n10.dynamicDecorationMap = [], n10.domChanged = null, n10.hasComposition = null, n10.markedForComposition = /* @__PURE__ */ new Set(), n10.minWidth = 0, n10.minWidthFrom = 0, n10.minWidthTo = 0, n10.impreciseAnchor = null, n10.impreciseHead = null, n10.forceSelection = false, n10.lastUpdate = Date.now(), n10.setDOM(e21.contentDOM), n10.children = [new HH()], n10.children[0].setParent(Eo(n10)), n10.updateDeco(), n10.updateInner([new eU(0, 0, 0, e21.state.doc.length)], 0, null), n10; + } + return Ao(t10, pH), Do(t10, [{ key: "length", get: function() { + return this.view.state.doc.length; + } }, { key: "update", value: function(e21) { + var t11, n10 = this, r10 = e21.changedRanges; + this.minWidth > 0 && r10.length && (r10.every(function(e23) { + var t12 = e23.fromA; + return e23.toA < n10.minWidthFrom || t12 > n10.minWidthTo; + }) ? (this.minWidthFrom = e21.changes.mapPos(this.minWidthFrom, 1), this.minWidthTo = e21.changes.mapPos(this.minWidthTo, 1)) : this.minWidth = this.minWidthFrom = this.minWidthTo = 0); + var o10 = -1; + this.view.inputState.composing >= 0 && ((null === (t11 = this.domChanged) || void 0 === t11 ? void 0 : t11.newSel) ? o10 = this.domChanged.newSel.head : function(e23, t12) { + var n11 = false; + t12 && e23.iterChangedRanges(function(e24, r11) { + e24 < t12.to && r11 > t12.from && (n11 = true); + }); + return n11; + }(e21.changes, this.hasComposition) || e21.selectionSet || (o10 = e21.state.selection.main.head)); + var i10 = o10 > -1 ? function(e23, t12, n11) { + var r11 = oU(e23, n11); + if (!r11) + return null; + var o11 = r11.node, i11 = r11.from, a11 = r11.to, s11 = o11.nodeValue; + if (/[\n\r]/.test(s11)) + return null; + if (e23.state.doc.sliceString(r11.from, r11.to) != s11) + return null; + for (var c11 = t12.invertedDesc, l11 = new eU(c11.mapPos(i11), c11.mapPos(a11), i11, a11), u11 = [], f11 = o11.parentNode; ; f11 = f11.parentNode) { + var d11 = pH.get(f11); + if (d11 instanceof TH) + u11.push({ node: f11, deco: d11.mark }); + else { + if (d11 instanceof HH || "DIV" == f11.nodeName && f11.parentNode == e23.contentDOM) + return { range: l11, text: o11, marks: u11, line: f11 }; + if (f11 == e23.contentDOM) + return null; + u11.push({ node: f11, deco: new GH({ inclusive: true, attributes: VH(f11), tagName: f11.tagName.toLowerCase() }) }); + } + } + }(this.view, e21.changes, o10) : null; + if (this.domChanged = null, this.hasComposition) { + this.markedForComposition.clear(); + var a10 = this.hasComposition, s10 = a10.from, c10 = a10.to; + r10 = new eU(s10, c10, e21.changes.mapPos(s10, -1), e21.changes.mapPos(c10, 1)).addToSet(r10.slice()); + } + this.hasComposition = i10 ? { from: i10.range.fromB, to: i10.range.toB } : null, (AH.ie || AH.chrome) && !i10 && e21 && e21.state.doc.lines != e21.startState.doc.lines && (this.forceSelection = true); + var l10, u10, f10, d10, h10 = this.decorations, v10 = this.updateDeco(), p10 = (l10 = h10, u10 = v10, f10 = e21.changes, d10 = new aU(), xV.compare(l10, u10, f10, d10), d10.changes); + return r10 = eU.extendWithRanges(r10, p10), !!(7 & this.flags || 0 != r10.length) && (this.updateInner(r10, e21.startState.doc.length, i10), e21.transactions.length && (this.lastUpdate = Date.now()), true); + } }, { key: "updateInner", value: function(e21, t11, n10) { + var r10 = this; + this.view.viewState.mustMeasureContent = true, this.updateChildren(e21, t11, n10); + var o10 = this.view.observer; + o10.ignore(function() { + r10.dom.style.height = r10.view.viewState.contentHeight / r10.view.scaleY + "px", r10.dom.style.flexBasis = r10.minWidth ? r10.minWidth + "px" : ""; + var e23 = AH.chrome || AH.ios ? { node: o10.selectionRange.focusNode, written: false } : void 0; + r10.sync(r10.view, e23), r10.flags &= -8, e23 && (e23.written || o10.selectionRange.focusNode != e23.node) && (r10.forceSelection = true), r10.dom.style.height = ""; + }), this.markedForComposition.forEach(function(e23) { + return e23.flags &= -9; + }); + var i10 = []; + if (this.view.viewport.from || this.view.viewport.to < this.view.state.doc.length) { + var a10, s10 = bo(this.children); + try { + for (s10.s(); !(a10 = s10.n()).done; ) { + var c10 = a10.value; + c10 instanceof WH && c10.widget instanceof rU && i10.push(c10.dom); + } + } catch (e23) { + s10.e(e23); + } finally { + s10.f(); + } + } + o10.updateGaps(i10); + } }, { key: "updateChildren", value: function(e21, t11, n10) { + for (var r10 = n10 ? n10.range.addToSet(e21.slice()) : e21, o10 = this.childCursor(t11), i10 = r10.length - 1; ; i10--) { + var a10 = i10 >= 0 ? r10[i10] : null; + if (!a10) + break; + var s10 = a10.fromA, c10 = a10.toA, l10 = a10.fromB, u10 = a10.toB, f10 = void 0, d10 = void 0, h10 = void 0, v10 = void 0; + if (n10 && n10.range.fromB < u10 && n10.range.toB > l10) { + var p10 = eW.build(this.view.state.doc, l10, n10.range.fromB, this.decorations, this.dynamicDecorationMap), m10 = eW.build(this.view.state.doc, n10.range.toB, u10, this.decorations, this.dynamicDecorationMap); + d10 = p10.breakAtStart, h10 = p10.openStart, v10 = m10.openEnd; + var g10 = this.compositionView(n10); + m10.breakAtStart ? g10.breakAfter = 1 : m10.content.length && g10.merge(g10.length, g10.length, m10.content[0], false, m10.openStart, 0) && (g10.breakAfter = m10.content[0].breakAfter, m10.content.shift()), p10.content.length && g10.merge(0, 0, p10.content[p10.content.length - 1], true, 0, p10.openEnd) && p10.content.pop(), f10 = p10.content.concat(g10).concat(m10.content); + } else { + var y10 = eW.build(this.view.state.doc, l10, u10, this.decorations, this.dynamicDecorationMap); + f10 = y10.content, d10 = y10.breakAtStart, h10 = y10.openStart, v10 = y10.openEnd; + } + var b10 = o10.findPos(c10, 1), k10 = b10.i, w10 = b10.off, x10 = o10.findPos(s10, -1); + yH(this, x10.i, x10.off, k10, w10, f10, d10, h10, v10); + } + n10 && this.fixCompositionDOM(n10); + } }, { key: "compositionView", value: function(e21) { + var t11 = new PH(e21.text.nodeValue); + t11.flags |= 8; + var n10, r10 = bo(e21.marks); + try { + for (r10.s(); !(n10 = r10.n()).done; ) { + var o10 = n10.value.deco; + t11 = new TH(o10, [t11], t11.length); + } + } catch (e23) { + r10.e(e23); + } finally { + r10.f(); + } + var i10 = new HH(); + return i10.append(t11, 0), i10; + } }, { key: "fixCompositionDOM", value: function(e21) { + var t11 = this, n10 = function(e23, n11) { + n11.flags |= 8 | (n11.children.some(function(e24) { + return 7 & e24.flags; + }) ? 1 : 0), t11.markedForComposition.add(n11); + var r11 = pH.get(e23); + r11 && r11 != n11 && (r11.dom = null), n11.setDOM(e23); + }, r10 = this.childPos(e21.range.fromB, 1), o10 = this.children[r10.i]; + n10(e21.line, o10); + for (var i10 = e21.marks.length - 1; i10 >= -1; i10--) + r10 = o10.childPos(r10.off, 1), o10 = o10.children[r10.i], n10(i10 >= 0 ? e21.marks[i10].node : e21.text, o10); + } }, { key: "updateSelection", value: function() { + var e21 = this, t11 = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; + !(arguments.length > 0 && void 0 !== arguments[0] && arguments[0]) && this.view.observer.selectionRange.focusNode || this.view.observer.readSelectionRange(); + var n10 = this.view.root.activeElement, r10 = n10 == this.dom, o10 = !r10 && QV(this.dom, this.view.observer.selectionRange) && !(n10 && this.dom.contains(n10)); + if (r10 || t11 || o10) { + var i10 = this.forceSelection; + this.forceSelection = false; + var a10, s10 = this.view.state.selection.main, c10 = this.moveToLine(this.domAtPos(s10.anchor)), l10 = s10.empty ? c10 : this.moveToLine(this.domAtPos(s10.head)); + if (AH.gecko && s10.empty && !this.hasComposition && (1 == (a10 = c10).node.nodeType && a10.node.firstChild && (0 == a10.offset || "false" == a10.node.childNodes[a10.offset - 1].contentEditable) && (a10.offset == a10.node.childNodes.length || "false" == a10.node.childNodes[a10.offset].contentEditable))) { + var u10 = document.createTextNode(""); + this.view.observer.ignore(function() { + return c10.node.insertBefore(u10, c10.node.childNodes[c10.offset] || null); + }), c10 = l10 = new hH(u10, 0), i10 = true; + } + var f10 = this.view.observer.selectionRange; + !i10 && f10.focusNode && (XV(c10.node, c10.offset, f10.anchorNode, f10.anchorOffset) && XV(l10.node, l10.offset, f10.focusNode, f10.focusOffset) || this.suppressWidgetCursorChange(f10, s10)) || (this.view.observer.ignore(function() { + AH.android && AH.chrome && e21.dom.contains(f10.focusNode) && function(e23, t13) { + for (var n11 = e23; n11 && n11 != t13; n11 = n11.assignedSlot || n11.parentNode) + if (1 == n11.nodeType && "false" == n11.contentEditable) + return true; + return false; + }(f10.focusNode, e21.dom) && (e21.dom.blur(), e21.dom.focus({ preventScroll: true })); + var t12 = KV(e21.view.root); + if (t12) + if (s10.empty) { + if (AH.gecko) { + var r11 = function(e23, t13) { + return 1 != e23.nodeType ? 0 : (t13 && "false" == e23.childNodes[t13 - 1].contentEditable ? 1 : 0) | (t13 < e23.childNodes.length && "false" == e23.childNodes[t13].contentEditable ? 2 : 0); + }(c10.node, c10.offset); + if (r11 && 3 != r11) { + var i11 = iU(c10.node, c10.offset, 1 == r11 ? 1 : -1); + i11 && (c10 = new hH(i11.node, i11.offset)); + } + } + t12.collapse(c10.node, c10.offset), null != s10.bidiLevel && void 0 !== t12.caretBidiLevel && (t12.caretBidiLevel = s10.bidiLevel); + } else if (t12.extend) { + t12.collapse(c10.node, c10.offset); + try { + t12.extend(l10.node, l10.offset); + } catch (e23) { + } + } else { + var a11 = document.createRange(); + if (s10.anchor > s10.head) { + var u11 = [l10, c10]; + c10 = u11[0], l10 = u11[1]; + } + a11.setEnd(l10.node, l10.offset), a11.setStart(c10.node, c10.offset), t12.removeAllRanges(), t12.addRange(a11); + } + else + ; + o10 && e21.view.root.activeElement == e21.dom && (e21.dom.blur(), n10 && n10.focus()); + }), this.view.observer.setSelectionRange(c10, l10)), this.impreciseAnchor = c10.precise ? null : new hH(f10.anchorNode, f10.anchorOffset), this.impreciseHead = l10.precise ? null : new hH(f10.focusNode, f10.focusOffset); + } + } }, { key: "suppressWidgetCursorChange", value: function(e21, t11) { + return this.hasComposition && t11.empty && XV(e21.focusNode, e21.focusOffset, e21.anchorNode, e21.anchorOffset) && this.posFromDOM(e21.focusNode, e21.focusOffset) == t11.head; + } }, { key: "enforceCursorAssoc", value: function() { + if (!this.hasComposition) { + var e21 = this.view, t11 = e21.state.selection.main, n10 = KV(e21.root), r10 = e21.observer.selectionRange, o10 = r10.anchorNode, i10 = r10.anchorOffset; + if (n10 && t11.empty && t11.assoc && n10.modify) { + var a10 = HH.find(this, t11.head); + if (a10) { + var s10 = a10.posAtStart; + if (t11.head != s10 && t11.head != s10 + a10.length) { + var c10 = this.coordsAt(t11.head, -1), l10 = this.coordsAt(t11.head, 1); + if (c10 && l10 && !(c10.bottom > l10.top)) { + var u10 = this.domAtPos(t11.head + t11.assoc); + n10.collapse(u10.node, u10.offset), n10.modify("move", t11.assoc < 0 ? "forward" : "backward", "lineboundary"), e21.observer.readSelectionRange(); + var f10 = e21.observer.selectionRange; + e21.docView.posFromDOM(f10.anchorNode, f10.anchorOffset) != t11.from && n10.collapse(o10, i10); + } + } + } + } + } + } }, { key: "moveToLine", value: function(e21) { + var t11, n10 = this.dom; + if (e21.node != n10) + return e21; + for (var r10 = e21.offset; !t11 && r10 < n10.childNodes.length; r10++) { + var o10 = pH.get(n10.childNodes[r10]); + o10 instanceof HH && (t11 = o10.domAtPos(0)); + } + for (var i10 = e21.offset - 1; !t11 && i10 >= 0; i10--) { + var a10 = pH.get(n10.childNodes[i10]); + a10 instanceof HH && (t11 = a10.domAtPos(a10.length)); + } + return t11 ? new hH(t11.node, t11.offset, true) : e21; + } }, { key: "nearest", value: function(e21) { + for (var t11 = e21; t11; ) { + var n10 = pH.get(t11); + if (n10 && n10.rootView == this) + return n10; + t11 = t11.parentNode; + } + return null; + } }, { key: "posFromDOM", value: function(e21, t11) { + var n10 = this.nearest(e21); + if (!n10) + throw new RangeError("Trying to find position for a DOM position outside of the document"); + return n10.localPosFromDOM(e21, t11) + n10.posAtStart; + } }, { key: "domAtPos", value: function(e21) { + for (var t11 = this.childCursor().findPos(e21, -1), n10 = t11.i, r10 = t11.off; n10 < this.children.length - 1; ) { + var o10 = this.children[n10]; + if (r10 < o10.length || o10 instanceof HH) + break; + n10++, r10 = 0; + } + return this.children[n10].domAtPos(r10); + } }, { key: "coordsAt", value: function(e21, t11) { + for (var n10 = null, r10 = 0, o10 = this.length, i10 = this.children.length - 1; i10 >= 0; i10--) { + var a10 = this.children[i10], s10 = o10 - a10.breakAfter, c10 = s10 - a10.length; + if (s10 < e21) + break; + c10 <= e21 && (c10 < e21 || a10.covers(-1)) && (s10 > e21 || a10.covers(1)) && (!n10 || a10 instanceof HH && !(n10 instanceof HH && t11 >= 0)) && (n10 = a10, r10 = c10), o10 = c10; + } + return n10 ? n10.coordsAt(e21 - r10, t11) : null; + } }, { key: "coordsForChar", value: function(e21) { + var t11 = this.childPos(e21, 1), n10 = t11.i, r10 = t11.off, o10 = this.children[n10]; + if (!(o10 instanceof HH)) + return null; + for (; o10.children.length; ) { + for (var i10 = o10.childPos(r10, 1), a10 = i10.i, s10 = i10.off; ; a10++) { + if (a10 == o10.children.length) + return null; + if ((o10 = o10.children[a10]).length) + break; + } + r10 = s10; + } + if (!(o10 instanceof PH)) + return null; + var c10 = sF(o10.text, r10); + if (c10 == r10) + return null; + for (var l10 = lH(o10.dom, r10, c10).getClientRects(), u10 = 0; u10 < l10.length; u10++) { + var f10 = l10[u10]; + if (u10 == l10.length - 1 || f10.top < f10.bottom && f10.left < f10.right) + return f10; + } + return null; + } }, { key: "measureVisibleLineHeights", value: function(e21) { + for (var t11 = [], n10 = e21.from, r10 = e21.to, o10 = this.view.contentDOM.clientWidth, i10 = o10 > Math.max(this.view.scrollDOM.clientWidth, this.minWidth) + 1, a10 = -1, s10 = this.view.textDirection == rW.LTR, c10 = 0, l10 = 0; l10 < this.children.length; l10++) { + var u10 = this.children[l10], f10 = c10 + u10.length; + if (f10 > r10) + break; + if (c10 >= n10) { + var d10 = u10.dom.getBoundingClientRect(); + if (t11.push(d10.height), i10) { + var h10 = u10.dom.lastChild, v10 = h10 ? YV(h10) : []; + if (v10.length) { + var p10 = v10[v10.length - 1], m10 = s10 ? p10.right - d10.left : d10.right - p10.left; + m10 > a10 && (a10 = m10, this.minWidth = o10, this.minWidthFrom = c10, this.minWidthTo = f10); + } + } + } + c10 = f10 + u10.breakAfter; + } + return t11; + } }, { key: "textDirectionAt", value: function(e21) { + var t11 = this.childPos(e21, 1).i; + return "rtl" == getComputedStyle(this.children[t11].dom).direction ? rW.RTL : rW.LTR; + } }, { key: "measureTextSize", value: function() { + var e21, t11 = this, n10 = bo(this.children); + try { + for (n10.s(); !(e21 = n10.n()).done; ) { + var r10 = e21.value; + if (r10 instanceof HH) { + var o10 = r10.measureTextSize(); + if (o10) + return o10; + } + } + } catch (e23) { + n10.e(e23); + } finally { + n10.f(); + } + var i10, a10, s10, c10 = document.createElement("div"); + return c10.className = "cm-line", c10.style.width = "99999px", c10.style.position = "absolute", c10.textContent = "abc def ghi jkl mno pqr stu", this.view.observer.ignore(function() { + t11.dom.appendChild(c10); + var e23 = YV(c10.firstChild)[0]; + i10 = c10.getBoundingClientRect().height, a10 = e23 ? e23.width / 27 : 7, s10 = e23 ? e23.height : i10, c10.remove(); + }), { lineHeight: i10, charWidth: a10, textHeight: s10 }; + } }, { key: "childCursor", value: function() { + var e21 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.length, t11 = this.children.length; + return t11 && (e21 -= this.children[--t11].length), new gH(this.children, e21, t11); + } }, { key: "computeBlockGapDeco", value: function() { + for (var e21 = [], t11 = this.view.viewState, n10 = 0, r10 = 0; ; r10++) { + var o10 = r10 == t11.viewports.length ? null : t11.viewports[r10], i10 = o10 ? o10.from - 1 : this.length; + if (i10 > n10) { + var a10 = (t11.lineBlockAt(i10).bottom - t11.lineBlockAt(n10).top) / this.view.scaleY; + e21.push(KH.replace({ widget: new rU(a10), block: true, inclusive: true, isBlockGap: true }).range(n10, i10)); + } + if (!o10) + break; + n10 = o10.to + 1; + } + return KH.set(e21); + } }, { key: "updateDeco", value: function() { + var e21 = this, t11 = this.view.state.facet(UW).map(function(t12, n11) { + return (e21.dynamicDecorationMap[n11] = "function" == typeof t12) ? t12(e21.view) : t12; + }), n10 = false, r10 = this.view.state.facet(JW).map(function(t12, r11) { + var o11 = "function" == typeof t12; + return o11 && (n10 = true), o11 ? t12(e21.view) : t12; + }); + r10.length && (this.dynamicDecorationMap[t11.length] = n10, t11.push(xV.join(r10))); + for (var o10 = t11.length; o10 < t11.length + 3; o10++) + this.dynamicDecorationMap[o10] = false; + return this.decorations = [].concat(Bo(t11), [this.computeBlockGapDeco(), this.view.viewState.lineGapDeco]); + } }, { key: "scrollIntoView", value: function(e21) { + if (e21.isSnapshot) { + var t11 = this.view.viewState.lineBlockAt(e21.range.head); + return this.view.scrollDOM.scrollTop = t11.top - e21.yMargin, void (this.view.scrollDOM.scrollLeft = e21.xMargin); + } + var n10, r10 = e21.range, o10 = this.coordsAt(r10.head, r10.empty ? r10.assoc : r10.head > r10.anchor ? -1 : 1); + if (o10) { + !r10.empty && (n10 = this.coordsAt(r10.anchor, r10.anchor > r10.head ? -1 : 1)) && (o10 = { left: Math.min(o10.left, n10.left), top: Math.min(o10.top, n10.top), right: Math.max(o10.right, n10.right), bottom: Math.max(o10.bottom, n10.bottom) }); + var i10 = XW(this.view), a10 = { left: o10.left - i10.left, top: o10.top - i10.top, right: o10.right + i10.right, bottom: o10.bottom + i10.bottom }, s10 = this.view.scrollDOM, c10 = s10.offsetWidth, l10 = s10.offsetHeight; + !function(e23, t12, n11, r11, o11, i11, a11, s11) { + for (var c11 = e23.ownerDocument, l11 = c11.defaultView || window, u10 = e23, f10 = false; u10 && !f10; ) + if (1 == u10.nodeType) { + var d10 = void 0, h10 = u10 == c11.body, v10 = 1, p10 = 1; + if (h10) + d10 = rH(l11); + else { + if (/^(fixed|sticky)$/.test(getComputedStyle(u10).position) && (f10 = true), u10.scrollHeight <= u10.clientHeight && u10.scrollWidth <= u10.clientWidth) { + u10 = u10.assignedSlot || u10.parentNode; + continue; + } + var m10 = u10.getBoundingClientRect(), g10 = oH(u10, m10); + v10 = g10.scaleX, p10 = g10.scaleY, d10 = { left: m10.left, right: m10.left + u10.clientWidth * v10, top: m10.top, bottom: m10.top + u10.clientHeight * p10 }; + } + var y10 = 0, b10 = 0; + if ("nearest" == o11) + t12.top < d10.top ? (b10 = -(d10.top - t12.top + a11), n11 > 0 && t12.bottom > d10.bottom + b10 && (b10 = t12.bottom - d10.bottom + b10 + a11)) : t12.bottom > d10.bottom && (b10 = t12.bottom - d10.bottom + a11, n11 < 0 && t12.top - b10 < d10.top && (b10 = -(d10.top + b10 - t12.top + a11))); + else { + var k10 = t12.bottom - t12.top, w10 = d10.bottom - d10.top; + b10 = ("center" == o11 && k10 <= w10 ? t12.top + k10 / 2 - w10 / 2 : "start" == o11 || "center" == o11 && n11 < 0 ? t12.top - a11 : t12.bottom - w10 + a11) - d10.top; + } + if ("nearest" == r11 ? t12.left < d10.left ? (y10 = -(d10.left - t12.left + i11), n11 > 0 && t12.right > d10.right + y10 && (y10 = t12.right - d10.right + y10 + i11)) : t12.right > d10.right && (y10 = t12.right - d10.right + i11, n11 < 0 && t12.left < d10.left + y10 && (y10 = -(d10.left + y10 - t12.left + i11))) : y10 = ("center" == r11 ? t12.left + (t12.right - t12.left) / 2 - (d10.right - d10.left) / 2 : "start" == r11 == s11 ? t12.left - i11 : t12.right - (d10.right - d10.left) + i11) - d10.left, y10 || b10) + if (h10) + l11.scrollBy(y10, b10); + else { + var x10 = 0, j10 = 0; + if (b10) { + var S10 = u10.scrollTop; + u10.scrollTop += b10 / p10, j10 = (u10.scrollTop - S10) * p10; + } + if (y10) { + var C10 = u10.scrollLeft; + u10.scrollLeft += y10 / v10, x10 = (u10.scrollLeft - C10) * v10; + } + t12 = { left: t12.left - x10, top: t12.top - j10, right: t12.right - x10, bottom: t12.bottom - j10 }, x10 && Math.abs(x10 - y10) < 1 && (r11 = "nearest"), j10 && Math.abs(j10 - b10) < 1 && (o11 = "nearest"); + } + if (h10) + break; + u10 = u10.assignedSlot || u10.parentNode; + } else { + if (11 != u10.nodeType) + break; + u10 = u10.host; + } + }(this.view.scrollDOM, a10, r10.head < r10.anchor ? -1 : 1, e21.x, e21.y, Math.max(Math.min(e21.xMargin, c10), -c10), Math.max(Math.min(e21.yMargin, l10), -l10), this.view.textDirection == rW.LTR); + } + } }]), t10; + }(); + var rU = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), (n10 = _o(this, t10)).height = e21, n10; + } + return Ao(t10, UH), Do(t10, [{ key: "toDOM", value: function() { + var e21 = document.createElement("div"); + return e21.className = "cm-gap", this.updateDOM(e21), e21; + } }, { key: "eq", value: function(e21) { + return e21.height == this.height; + } }, { key: "updateDOM", value: function(e21) { + return e21.style.height = this.height + "px", true; + } }, { key: "editable", get: function() { + return true; + } }, { key: "estimatedHeight", get: function() { + return this.height; + } }]), t10; + }(); + function oU(e20, t10) { + var n10 = e20.observer.selectionRange, r10 = n10.focusNode && iU(n10.focusNode, n10.focusOffset, 0); + if (!r10) + return null; + var o10 = t10 - r10.offset; + return { from: o10, to: o10 + r10.node.nodeValue.length, node: r10.node }; + } + function iU(e20, t10, n10) { + if (n10 <= 0) + for (var r10 = e20, o10 = t10; ; ) { + if (3 == r10.nodeType) + return { node: r10, offset: o10 }; + if (!(1 == r10.nodeType && o10 > 0)) + break; + o10 = tH(r10 = r10.childNodes[o10 - 1]); + } + if (n10 >= 0) + for (var i10 = e20, a10 = t10; ; ) { + if (3 == i10.nodeType) + return { node: i10, offset: a10 }; + if (!(1 == i10.nodeType && a10 < i10.childNodes.length && n10 >= 0)) + break; + i10 = i10.childNodes[a10], a10 = 0; + } + return null; + } + var aU = function() { + function e20() { + No(this, e20), this.changes = []; + } + return Do(e20, [{ key: "compareRange", value: function(e21, t10) { + ZH(e21, t10, this.changes); + } }, { key: "comparePoint", value: function(e21, t10) { + ZH(e21, t10, this.changes); + } }]), e20; + }(); + function sU(e20, t10) { + return t10.left > e20 ? t10.left - e20 : Math.max(0, e20 - t10.right); + } + function cU(e20, t10) { + return t10.top > e20 ? t10.top - e20 : Math.max(0, e20 - t10.bottom); + } + function lU(e20, t10) { + return e20.top < t10.bottom - 1 && e20.bottom > t10.top + 1; + } + function uU(e20, t10) { + return t10 < e20.top ? { top: t10, left: e20.left, right: e20.right, bottom: e20.bottom } : e20; + } + function fU(e20, t10) { + return t10 > e20.bottom ? { top: e20.top, left: e20.left, right: e20.right, bottom: t10 } : e20; + } + function dU(e20, t10, n10) { + for (var r10, o10, i10, a10, s10, c10, l10, u10, f10 = false, d10 = e20.firstChild; d10; d10 = d10.nextSibling) + for (var h10 = YV(d10), v10 = 0; v10 < h10.length; v10++) { + var p10 = h10[v10]; + o10 && lU(o10, p10) && (p10 = uU(fU(p10, o10.bottom), o10.top)); + var m10 = sU(t10, p10), g10 = cU(n10, p10); + if (0 == m10 && 0 == g10) + return 3 == d10.nodeType ? hU(d10, t10, n10) : dU(d10, t10, n10); + if (!r10 || a10 > g10 || a10 == g10 && i10 > m10) { + r10 = d10, o10 = p10, i10 = m10, a10 = g10; + var y10 = g10 ? n10 < p10.top ? -1 : 1 : m10 ? t10 < p10.left ? -1 : 1 : 0; + f10 = !y10 || (y10 > 0 ? v10 < h10.length - 1 : v10 > 0); + } + 0 == m10 ? n10 > p10.bottom && (!l10 || l10.bottom < p10.bottom) ? (s10 = d10, l10 = p10) : n10 < p10.top && (!u10 || u10.top > p10.top) && (c10 = d10, u10 = p10) : l10 && lU(l10, p10) ? l10 = fU(l10, p10.bottom) : u10 && lU(u10, p10) && (u10 = uU(u10, p10.top)); + } + if (l10 && l10.bottom >= n10 ? (r10 = s10, o10 = l10) : u10 && u10.top <= n10 && (r10 = c10, o10 = u10), !r10) + return { node: e20, offset: 0 }; + var b10 = Math.max(o10.left, Math.min(o10.right, t10)); + return 3 == r10.nodeType ? hU(r10, b10, n10) : f10 && "false" != r10.contentEditable ? dU(r10, b10, n10) : { node: e20, offset: Array.prototype.indexOf.call(e20.childNodes, r10) + (t10 >= (o10.left + o10.right) / 2 ? 1 : 0) }; + } + function hU(e20, t10, n10) { + for (var r10 = e20.nodeValue.length, o10 = -1, i10 = 1e9, a10 = 0, s10 = 0; s10 < r10; s10++) + for (var c10 = lH(e20, s10, s10 + 1).getClientRects(), l10 = 0; l10 < c10.length; l10++) { + var u10 = c10[l10]; + if (u10.top != u10.bottom) { + a10 || (a10 = t10 - u10.left); + var f10 = (u10.top > n10 ? u10.top - n10 : n10 - u10.bottom) - 1; + if (u10.left - 1 <= t10 && u10.right + 1 >= t10 && f10 < i10) { + var d10 = t10 >= (u10.left + u10.right) / 2, h10 = d10; + if (AH.chrome || AH.gecko) + lH(e20, s10).getBoundingClientRect().left == u10.right && (h10 = !d10); + if (f10 <= 0) + return { node: e20, offset: s10 + (h10 ? 1 : 0) }; + o10 = s10 + (h10 ? 1 : 0), i10 = f10; + } + } + } + return { node: e20, offset: o10 > -1 ? o10 : a10 > 0 ? e20.nodeValue.length : 0 }; + } + function vU(e20, t10, n10) { + var r10, o10, i10, a10 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : -1, s10 = e20.contentDOM.getBoundingClientRect(), c10 = s10.top + e20.viewState.paddingTop, l10 = e20.viewState.docHeight, u10 = t10.x, f10 = t10.y, d10 = f10 - c10; + if (d10 < 0) + return 0; + if (d10 > l10) + return e20.state.doc.length; + for (var h10 = e20.viewState.heightOracle.textHeight / 2, v10 = false; (i10 = e20.elementAtHeight(d10)).type != JH.Text; ) + for (; !((d10 = a10 > 0 ? i10.bottom + h10 : i10.top - h10) >= 0 && d10 <= l10); ) { + if (v10) + return n10 ? null : 0; + v10 = true, a10 = -a10; + } + f10 = c10 + d10; + var p10 = i10.from; + if (p10 < e20.viewport.from) + return 0 == e20.viewport.from ? 0 : n10 ? null : pU(e20, s10, i10, u10, f10); + if (p10 > e20.viewport.to) + return e20.viewport.to == e20.state.doc.length ? e20.state.doc.length : n10 ? null : pU(e20, s10, i10, u10, f10); + var m10 = e20.dom.ownerDocument, g10 = e20.root.elementFromPoint ? e20.root : m10, y10 = g10.elementFromPoint(u10, f10); + y10 && !e20.contentDOM.contains(y10) && (y10 = null), y10 || (u10 = Math.max(s10.left + 1, Math.min(s10.right - 1, u10)), (y10 = g10.elementFromPoint(u10, f10)) && !e20.contentDOM.contains(y10) && (y10 = null)); + var b10, k10 = -1; + if (y10 && 0 != (null === (r10 = e20.docView.nearest(y10)) || void 0 === r10 ? void 0 : r10.isEditable)) { + if (m10.caretPositionFromPoint) { + var w10 = m10.caretPositionFromPoint(u10, f10); + w10 && (b10 = w10.offsetNode, k10 = w10.offset); + } else if (m10.caretRangeFromPoint) { + var x10 = m10.caretRangeFromPoint(u10, f10); + x10 && (b10 = x10.startContainer, k10 = x10.startOffset, (!e20.contentDOM.contains(b10) || AH.safari && function(e21, t11, n11) { + var r11; + if (3 != e21.nodeType || t11 != (r11 = e21.nodeValue.length)) + return false; + for (var o11 = e21.nextSibling; o11; o11 = o11.nextSibling) + if (1 != o11.nodeType || "BR" != o11.nodeName) + return false; + return lH(e21, r11 - 1, r11).getBoundingClientRect().left > n11; + }(b10, k10, u10) || AH.chrome && function(e21, t11, n11) { + if (0 != t11) + return false; + for (var r11 = e21; ; ) { + var o11 = r11.parentNode; + if (!o11 || 1 != o11.nodeType || o11.firstChild != r11) + return false; + if (o11.classList.contains("cm-line")) + break; + r11 = o11; + } + var i11 = 1 == e21.nodeType ? e21.getBoundingClientRect() : lH(e21, 0, Math.max(e21.nodeValue.length, 1)).getBoundingClientRect(); + return n11 - i11.left > 5; + }(b10, k10, u10)) && (b10 = void 0)); + } + } + if (!b10 || !e20.docView.dom.contains(b10)) { + var j10 = HH.find(e20.docView, p10); + if (!j10) + return d10 > i10.top + i10.height / 2 ? i10.to : i10.from; + var S10 = dU(j10.dom, u10, f10); + b10 = S10.node, k10 = S10.offset; + } + var C10 = e20.docView.nearest(b10); + if (!C10) + return null; + if (C10.isWidget && 1 == (null === (o10 = C10.dom) || void 0 === o10 ? void 0 : o10.nodeType)) { + var $10 = C10.dom.getBoundingClientRect(); + return t10.y < $10.top || t10.y <= $10.bottom && t10.x <= ($10.left + $10.right) / 2 ? C10.posAtStart : C10.posAtEnd; + } + return C10.localPosFromDOM(b10, k10) + C10.posAtStart; + } + function pU(e20, t10, n10, r10, o10) { + var i10 = Math.round((r10 - t10.left) * e20.defaultCharacterWidth); + if (e20.lineWrapping && n10.height > 1.5 * e20.defaultLineHeight) { + var a10 = e20.viewState.heightOracle.textHeight; + i10 += Math.floor((o10 - n10.top - 0.5 * (e20.defaultLineHeight - a10)) / a10) * e20.viewState.heightOracle.lineLength; + } + var s10 = e20.state.sliceDoc(n10.from, n10.to); + return n10.from + NV(s10, i10, e20.state.tabSize); + } + function mU(e20, t10) { + var n10 = e20.lineBlockAt(t10); + if (Array.isArray(n10.type)) { + var r10, o10 = bo(n10.type); + try { + for (o10.s(); !(r10 = o10.n()).done; ) { + var i10 = r10.value; + if (i10.to > t10 || i10.to == t10 && (i10.to == n10.to || i10.type == JH.Text)) + return i10; + } + } catch (e21) { + o10.e(e21); + } finally { + o10.f(); + } + } + return n10; + } + function gU(e20, t10, n10, r10) { + for (var o10 = e20.state.doc.lineAt(t10.head), i10 = e20.bidiSpans(o10), a10 = e20.textDirectionAt(o10.from), s10 = t10, c10 = null; ; ) { + var l10 = CW(o10, i10, a10, s10, n10), u10 = SW; + if (!l10) { + if (o10.number == (n10 ? e20.state.doc.lines : 1)) + return s10; + u10 = "\n", o10 = e20.state.doc.line(o10.number + (n10 ? 1 : -1)), i10 = e20.bidiSpans(o10), l10 = e20.visualLineSide(o10, !n10); + } + if (c10) { + if (!c10(u10)) + return s10; + } else { + if (!r10) + return l10; + c10 = r10(u10); + } + s10 = l10; + } + } + function yU(e20, t10, n10) { + for (var r10, o10 = function() { + var r11, o11 = 0, i10 = bo(e20); + try { + for (i10.s(); !(r11 = i10.n()).done; ) { + r11.value.between(t10 - 1, t10 + 1, function(e21, r12, i11) { + if (t10 > e21 && t10 < r12) { + var a10 = o11 || n10 || (t10 - e21 < r12 - t10 ? -1 : 1); + t10 = a10 < 0 ? e21 : r12, o11 = a10; + } + }); + } + } catch (e21) { + i10.e(e21); + } finally { + i10.f(); + } + if (!o11) + return { v: t10 }; + }; ; ) + if (r10 = o10()) + return r10.v; + } + function bU(e20, t10, n10) { + var r10 = yU(e20.state.facet(KW).map(function(t11) { + return t11(e20); + }), n10.from, t10.head > n10.from ? -1 : 1); + return r10 == n10.from ? n10 : $F.cursor(r10, r10 < n10.from ? 1 : -1); + } + var kU = function() { + function e20(t10) { + No(this, e20), this.view = t10, this.lastKeyCode = 0, this.lastKeyTime = 0, this.lastTouchTime = 0, this.lastFocusTime = 0, this.lastScrollTop = 0, this.lastScrollLeft = 0, this.pendingIOSKey = void 0, this.lastSelectionOrigin = null, this.lastSelectionTime = 0, this.lastEscPress = 0, this.lastContextMenu = 0, this.scrollHandlers = [], this.handlers = /* @__PURE__ */ Object.create(null), this.composing = -1, this.compositionFirstChange = null, this.compositionEndedAt = 0, this.compositionPendingKey = false, this.compositionPendingChange = false, this.mouseSelection = null, this.draggedContent = null, this.handleEvent = this.handleEvent.bind(this), this.notifiedFocused = t10.hasFocus, AH.safari && t10.contentDOM.addEventListener("input", function() { + return null; + }), AH.gecko && function(e21) { + JU.has(e21) || (JU.add(e21), e21.addEventListener("copy", function() { + }), e21.addEventListener("cut", function() { + })); + }(t10.contentDOM.ownerDocument); + } + return Do(e20, [{ key: "setSelectionOrigin", value: function(e21) { + this.lastSelectionOrigin = e21, this.lastSelectionTime = Date.now(); + } }, { key: "handleEvent", value: function(e21) { + (function(e23, t10) { + if (!t10.bubbles) + return true; + if (t10.defaultPrevented) + return false; + for (var n10, r10 = t10.target; r10 != e23.contentDOM; r10 = r10.parentNode) + if (!r10 || 11 == r10.nodeType || (n10 = pH.get(r10)) && n10.ignoreEvent(t10)) + return false; + return true; + })(this.view, e21) && !this.ignoreDuringComposition(e21) && ("keydown" == e21.type && this.keydown(e21) || this.runHandlers(e21.type, e21)); + } }, { key: "runHandlers", value: function(e21, t10) { + var n10 = this.handlers[e21]; + if (n10) { + var r10, o10 = bo(n10.observers); + try { + for (o10.s(); !(r10 = o10.n()).done; ) { + (0, r10.value)(this.view, t10); + } + } catch (e23) { + o10.e(e23); + } finally { + o10.f(); + } + var i10, a10 = bo(n10.handlers); + try { + for (a10.s(); !(i10 = a10.n()).done; ) { + var s10 = i10.value; + if (t10.defaultPrevented) + break; + if (s10(this.view, t10)) { + t10.preventDefault(); + break; + } + } + } catch (e23) { + a10.e(e23); + } finally { + a10.f(); + } + } + } }, { key: "ensureHandlers", value: function(e21) { + var t10 = xU(e21), n10 = this.handlers, r10 = this.view.contentDOM; + for (var o10 in t10) + if ("scroll" != o10) { + var i10 = !t10[o10].handlers.length, a10 = n10[o10]; + a10 && i10 != !a10.handlers.length && (r10.removeEventListener(o10, this.handleEvent), a10 = null), a10 || r10.addEventListener(o10, this.handleEvent, { passive: i10 }); + } + for (var s10 in n10) + "scroll" == s10 || t10[s10] || r10.removeEventListener(s10, this.handleEvent); + this.handlers = t10; + } }, { key: "keydown", value: function(e21) { + var t10, n10 = this; + return this.lastKeyCode = e21.keyCode, this.lastKeyTime = Date.now(), 9 == e21.keyCode && Date.now() < this.lastEscPress + 2e3 || (27 != e21.keyCode && CU.indexOf(e21.keyCode) < 0 && (this.view.inputState.lastEscPress = 0), !AH.android || !AH.chrome || e21.synthetic || 13 != e21.keyCode && 8 != e21.keyCode ? !AH.ios || e21.synthetic || e21.altKey || e21.metaKey || !((t10 = jU.find(function(t11) { + return t11.keyCode == e21.keyCode; + })) && !e21.ctrlKey || SU.indexOf(e21.key) > -1 && e21.ctrlKey && !e21.shiftKey) ? (229 != e21.keyCode && this.view.observer.forceFlush(), false) : (this.pendingIOSKey = t10 || e21, setTimeout(function() { + return n10.flushIOSKey(); + }, 250), true) : (this.view.observer.delayAndroidKey(e21.key, e21.keyCode), true)); + } }, { key: "flushIOSKey", value: function() { + var e21 = this.pendingIOSKey; + return !!e21 && (this.pendingIOSKey = void 0, uH(this.view.contentDOM, e21.key, e21.keyCode)); + } }, { key: "ignoreDuringComposition", value: function(e21) { + return !!/^key/.test(e21.type) && (this.composing > 0 || !!(AH.safari && !AH.ios && this.compositionPendingKey && Date.now() - this.compositionEndedAt < 100) && (this.compositionPendingKey = false, true)); + } }, { key: "startMouseSelection", value: function(e21) { + this.mouseSelection && this.mouseSelection.destroy(), this.mouseSelection = e21; + } }, { key: "update", value: function(e21) { + this.mouseSelection && this.mouseSelection.update(e21), this.draggedContent && e21.docChanged && (this.draggedContent = this.draggedContent.map(e21.changes)), e21.transactions.length && (this.lastKeyCode = this.lastSelectionTime = 0); + } }, { key: "destroy", value: function() { + this.mouseSelection && this.mouseSelection.destroy(); + } }]), e20; + }(); + function wU(e20, t10) { + return function(n10, r10) { + try { + return t10.call(e20, r10, n10); + } catch (e21) { + qW(n10.state, e21); + } + }; + } + function xU(e20) { + var t10 = /* @__PURE__ */ Object.create(null); + function n10(e21) { + return t10[e21] || (t10[e21] = { observers: [], handlers: [] }); + } + var r10, o10 = bo(e20); + try { + for (o10.s(); !(r10 = o10.n()).done; ) { + var i10 = r10.value, a10 = i10.spec; + if (a10 && a10.domEventHandlers) + for (var s10 in a10.domEventHandlers) { + var c10 = a10.domEventHandlers[s10]; + c10 && n10(s10).handlers.push(wU(i10.value, c10)); + } + if (a10 && a10.domEventObservers) + for (var l10 in a10.domEventObservers) { + var u10 = a10.domEventObservers[l10]; + u10 && n10(l10).observers.push(wU(i10.value, u10)); + } + } + } catch (e21) { + o10.e(e21); + } finally { + o10.f(); + } + for (var f10 in OU) + n10(f10).handlers.push(OU[f10]); + for (var d10 in MU) + n10(d10).observers.push(MU[d10]); + return t10; + } + var jU = [{ key: "Backspace", keyCode: 8, inputType: "deleteContentBackward" }, { key: "Enter", keyCode: 13, inputType: "insertParagraph" }, { key: "Enter", keyCode: 13, inputType: "insertLineBreak" }, { key: "Delete", keyCode: 46, inputType: "deleteContentForward" }]; + var SU = "dthko"; + var CU = [16, 17, 18, 20, 91, 92, 224, 225]; + function $U(e20) { + return 0.7 * Math.max(0, e20) + 8; + } + var _U = function() { + function e20(t10, n10, r10, o10) { + No(this, e20), this.view = t10, this.startEvent = n10, this.style = r10, this.mustSelect = o10, this.scrollSpeed = { x: 0, y: 0 }, this.scrolling = -1, this.lastEvent = n10, this.scrollParent = function(e21) { + for (var t11 = e21.ownerDocument, n11 = e21.parentNode; n11 && n11 != t11.body; ) + if (1 == n11.nodeType) { + if (n11.scrollHeight > n11.clientHeight || n11.scrollWidth > n11.clientWidth) + return n11; + n11 = n11.assignedSlot || n11.parentNode; + } else { + if (11 != n11.nodeType) + break; + n11 = n11.host; + } + return null; + }(t10.contentDOM), this.atoms = t10.state.facet(KW).map(function(e21) { + return e21(t10); + }); + var i10 = t10.contentDOM.ownerDocument; + i10.addEventListener("mousemove", this.move = this.move.bind(this)), i10.addEventListener("mouseup", this.up = this.up.bind(this)), this.extend = n10.shiftKey, this.multiple = t10.state.facet(mV.allowMultipleSelections) && function(e21, t11) { + var n11 = e21.state.facet(_W); + return n11.length ? n11[0](t11) : AH.mac ? t11.metaKey : t11.ctrlKey; + }(t10, n10), this.dragging = !(!function(e21, t11) { + var n11 = e21.state.selection.main; + if (n11.empty) + return false; + var r11 = KV(e21.root); + if (!r11 || 0 == r11.rangeCount) + return true; + for (var o11 = r11.getRangeAt(0).getClientRects(), i11 = 0; i11 < o11.length; i11++) { + var a10 = o11[i11]; + if (a10.left <= t11.clientX && a10.right >= t11.clientX && a10.top <= t11.clientY && a10.bottom >= t11.clientY) + return true; + } + return false; + }(t10, n10) || 1 != LU(n10)) && null; + } + return Do(e20, [{ key: "start", value: function(e21) { + false === this.dragging && this.select(e21); + } }, { key: "move", value: function(e21) { + var t10; + if (0 == e21.buttons) + return this.destroy(); + if (!(this.dragging || null == this.dragging && (n10 = this.startEvent, r10 = e21, Math.max(Math.abs(n10.clientX - r10.clientX), Math.abs(n10.clientY - r10.clientY)) < 10))) { + var n10, r10; + this.select(this.lastEvent = e21); + var o10 = 0, i10 = 0, a10 = (null === (t10 = this.scrollParent) || void 0 === t10 ? void 0 : t10.getBoundingClientRect()) || { left: 0, top: 0, right: this.view.win.innerWidth, bottom: this.view.win.innerHeight }, s10 = XW(this.view); + e21.clientX - s10.left <= a10.left + 6 ? o10 = -$U(a10.left - e21.clientX) : e21.clientX + s10.right >= a10.right - 6 && (o10 = $U(e21.clientX - a10.right)), e21.clientY - s10.top <= a10.top + 6 ? i10 = -$U(a10.top - e21.clientY) : e21.clientY + s10.bottom >= a10.bottom - 6 && (i10 = $U(e21.clientY - a10.bottom)), this.setScrollSpeed(o10, i10); + } + } }, { key: "up", value: function(e21) { + null == this.dragging && this.select(this.lastEvent), this.dragging || e21.preventDefault(), this.destroy(); + } }, { key: "destroy", value: function() { + this.setScrollSpeed(0, 0); + var e21 = this.view.contentDOM.ownerDocument; + e21.removeEventListener("mousemove", this.move), e21.removeEventListener("mouseup", this.up), this.view.inputState.mouseSelection = this.view.inputState.draggedContent = null; + } }, { key: "setScrollSpeed", value: function(e21, t10) { + var n10 = this; + this.scrollSpeed = { x: e21, y: t10 }, e21 || t10 ? this.scrolling < 0 && (this.scrolling = setInterval(function() { + return n10.scroll(); + }, 50)) : this.scrolling > -1 && (clearInterval(this.scrolling), this.scrolling = -1); + } }, { key: "scroll", value: function() { + this.scrollParent ? (this.scrollParent.scrollLeft += this.scrollSpeed.x, this.scrollParent.scrollTop += this.scrollSpeed.y) : this.view.win.scrollBy(this.scrollSpeed.x, this.scrollSpeed.y), false === this.dragging && this.select(this.lastEvent); + } }, { key: "skipAtoms", value: function(e21) { + for (var t10 = null, n10 = 0; n10 < e21.ranges.length; n10++) { + var r10 = e21.ranges[n10], o10 = null; + if (r10.empty) { + var i10 = yU(this.atoms, r10.from, 0); + i10 != r10.from && (o10 = $F.cursor(i10, -1)); + } else { + var a10 = yU(this.atoms, r10.from, -1), s10 = yU(this.atoms, r10.to, 1); + a10 == r10.from && s10 == r10.to || (o10 = $F.range(r10.from == r10.anchor ? a10 : s10, r10.from == r10.head ? a10 : s10)); + } + o10 && (t10 || (t10 = e21.ranges.slice()), t10[n10] = o10); + } + return t10 ? $F.create(t10, e21.mainIndex) : e21; + } }, { key: "select", value: function(e21) { + var t10 = this.view, n10 = this.skipAtoms(this.style.get(e21, this.extend, this.multiple)); + !this.mustSelect && n10.eq(t10.state.selection, false === this.dragging) || this.view.dispatch({ selection: n10, userEvent: "select.pointer" }), this.mustSelect = false; + } }, { key: "update", value: function(e21) { + var t10 = this; + this.style.update(e21) && setTimeout(function() { + return t10.select(t10.lastEvent); + }, 20); + } }]), e20; + }(); + var OU = /* @__PURE__ */ Object.create(null); + var MU = /* @__PURE__ */ Object.create(null); + var EU = AH.ie && AH.ie_version < 15 || AH.ios && AH.webkit_version < 604; + function AU(e20, t10) { + var n10, r10 = e20.state, o10 = 1, i10 = r10.toText(t10), a10 = i10.lines == r10.selection.ranges.length, s10 = null != VU && r10.selection.ranges.every(function(e21) { + return e21.empty; + }) && VU == i10.toString(); + if (s10) { + var c10 = -1; + n10 = r10.changeByRange(function(e21) { + var n11 = r10.doc.lineAt(e21.from); + if (n11.from == c10) + return { range: e21 }; + c10 = n11.from; + var s11 = r10.toText((a10 ? i10.line(o10++).text : t10) + r10.lineBreak); + return { changes: { from: n11.from, insert: s11 }, range: $F.cursor(e21.from + s11.length) }; + }); + } else + n10 = a10 ? r10.changeByRange(function(e21) { + var t11 = i10.line(o10++); + return { changes: { from: e21.from, to: e21.to, insert: t11.text }, range: $F.cursor(e21.from + t11.length) }; + }) : r10.replaceSelection(i10); + e20.dispatch(n10, { userEvent: "input.paste", scrollIntoView: true }); + } + function PU(e20, t10, n10, r10) { + if (1 == r10) + return $F.cursor(t10, n10); + if (2 == r10) + return function(e21, t11) { + var n11 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1, r11 = e21.charCategorizer(t11), o11 = e21.doc.lineAt(t11), i11 = t11 - o11.from; + if (0 == o11.length) + return $F.cursor(t11); + 0 == i11 ? n11 = 1 : i11 == o11.length && (n11 = -1); + var a11 = i11, s11 = i11; + n11 < 0 ? a11 = sF(o11.text, i11, false) : s11 = sF(o11.text, i11); + for (var c10 = r11(o11.text.slice(a11, s11)); a11 > 0; ) { + var l10 = sF(o11.text, a11, false); + if (r11(o11.text.slice(l10, a11)) != c10) + break; + a11 = l10; + } + for (; s11 < o11.length; ) { + var u10 = sF(o11.text, s11); + if (r11(o11.text.slice(s11, u10)) != c10) + break; + s11 = u10; + } + return $F.range(a11 + o11.from, s11 + o11.from); + }(e20.state, t10, n10); + var o10 = HH.find(e20.docView, t10), i10 = e20.state.doc.lineAt(o10 ? o10.posAtEnd : t10), a10 = o10 ? o10.posAtStart : i10.from, s10 = o10 ? o10.posAtEnd : i10.to; + return s10 < e20.state.doc.length && s10 == i10.to && s10++, $F.range(a10, s10); + } + MU.scroll = function(e20) { + e20.inputState.lastScrollTop = e20.scrollDOM.scrollTop, e20.inputState.lastScrollLeft = e20.scrollDOM.scrollLeft; + }, OU.keydown = function(e20, t10) { + return e20.inputState.setSelectionOrigin("select"), 27 == t10.keyCode && (e20.inputState.lastEscPress = Date.now()), false; + }, MU.touchstart = function(e20, t10) { + e20.inputState.lastTouchTime = Date.now(), e20.inputState.setSelectionOrigin("select.pointer"); + }, MU.touchmove = function(e20) { + e20.inputState.setSelectionOrigin("select.pointer"); + }, OU.mousedown = function(e20, t10) { + if (e20.observer.flush(), e20.inputState.lastTouchTime > Date.now() - 2e3) + return false; + var n10, r10 = null, o10 = bo(e20.state.facet(MW)); + try { + for (o10.s(); !(n10 = o10.n()).done; ) { + if (r10 = (0, n10.value)(e20, t10)) + break; + } + } catch (e21) { + o10.e(e21); + } finally { + o10.f(); + } + if (r10 || 0 != t10.button || (r10 = function(e21, t11) { + var n11 = IU(e21, t11), r11 = LU(t11), o11 = e21.state.selection; + return { update: function(e23) { + e23.docChanged && (n11.pos = e23.changes.mapPos(n11.pos), o11 = o11.map(e23.changes)); + }, get: function(t12, i11, a11) { + var s10, c10 = IU(e21, t12), l10 = PU(e21, c10.pos, c10.bias, r11); + if (n11.pos != c10.pos && !i11) { + var u10 = PU(e21, n11.pos, n11.bias, r11), f10 = Math.min(u10.from, l10.from), d10 = Math.max(u10.to, l10.to); + l10 = f10 < l10.from ? $F.range(f10, d10) : $F.range(d10, f10); + } + return i11 ? o11.replaceRange(o11.main.extend(l10.from, l10.to)) : a11 && 1 == r11 && o11.ranges.length > 1 && (s10 = function(e23, t13) { + for (var n12 = 0; n12 < e23.ranges.length; n12++) { + var r12 = e23.ranges[n12], o12 = r12.from, i12 = r12.to; + if (o12 <= t13 && i12 >= t13) + return $F.create(e23.ranges.slice(0, n12).concat(e23.ranges.slice(n12 + 1)), e23.mainIndex == n12 ? 0 : e23.mainIndex - (e23.mainIndex > n12 ? 1 : 0)); + } + return null; + }(o11, c10.pos)) ? s10 : a11 ? o11.addRange(l10) : $F.create([l10]); + } }; + }(e20, t10)), r10) { + var i10 = !e20.hasFocus; + e20.inputState.startMouseSelection(new _U(e20, t10, r10, i10)), i10 && e20.observer.ignore(function() { + return cH(e20.contentDOM); + }); + var a10 = e20.inputState.mouseSelection; + if (a10) + return a10.start(t10), false === a10.dragging; + } + return false; + }; + var TU = function(e20, t10) { + return e20 >= t10.top && e20 <= t10.bottom; + }; + var RU = function(e20, t10, n10) { + return TU(t10, n10) && e20 >= n10.left && e20 <= n10.right; + }; + function NU(e20, t10, n10, r10) { + var o10 = HH.find(e20.docView, t10); + if (!o10) + return 1; + var i10 = t10 - o10.posAtStart; + if (0 == i10) + return 1; + if (i10 == o10.length) + return -1; + var a10 = o10.coordsAt(i10, -1); + if (a10 && RU(n10, r10, a10)) + return -1; + var s10 = o10.coordsAt(i10, 1); + return s10 && RU(n10, r10, s10) ? 1 : a10 && TU(r10, a10) ? -1 : 1; + } + function IU(e20, t10) { + var n10 = e20.posAtCoords({ x: t10.clientX, y: t10.clientY }, false); + return { pos: n10, bias: NU(e20, n10, t10.clientX, t10.clientY) }; + } + var DU = AH.ie && AH.ie_version <= 11; + var qU = null; + var zU = 0; + var BU = 0; + function LU(e20) { + if (!DU) + return e20.detail; + var t10 = qU, n10 = BU; + return qU = e20, BU = Date.now(), zU = !t10 || n10 > Date.now() - 400 && Math.abs(t10.clientX - e20.clientX) < 2 && Math.abs(t10.clientY - e20.clientY) < 2 ? (zU + 1) % 3 : 1; + } + function FU(e20, t10, n10, r10) { + if (n10) { + var o10 = e20.posAtCoords({ x: t10.clientX, y: t10.clientY }, false), i10 = e20.inputState.draggedContent, a10 = r10 && i10 && function(e21, t11) { + var n11 = e21.state.facet(OW); + return n11.length ? n11[0](t11) : AH.mac ? !t11.altKey : !t11.ctrlKey; + }(e20, t10) ? { from: i10.from, to: i10.to } : null, s10 = { from: o10, insert: n10 }, c10 = e20.state.changes(a10 ? [a10, s10] : s10); + e20.focus(), e20.dispatch({ changes: c10, selection: { anchor: c10.mapPos(o10, -1), head: c10.mapPos(o10, 1) }, userEvent: a10 ? "move.drop" : "input.drop" }), e20.inputState.draggedContent = null; + } + } + OU.dragstart = function(e20, t10) { + var n10 = e20.state.selection.main; + if (t10.target.draggable) { + var r10 = e20.docView.nearest(t10.target); + if (r10 && r10.isWidget) { + var o10 = r10.posAtStart, i10 = o10 + r10.length; + (o10 >= n10.to || i10 <= n10.from) && (n10 = $F.range(o10, i10)); + } + } + var a10 = e20.inputState; + return a10.mouseSelection && (a10.mouseSelection.dragging = true), a10.draggedContent = n10, t10.dataTransfer && (t10.dataTransfer.setData("Text", e20.state.sliceDoc(n10.from, n10.to)), t10.dataTransfer.effectAllowed = "copyMove"), false; + }, OU.dragend = function(e20) { + return e20.inputState.draggedContent = null, false; + }, OU.drop = function(e20, t10) { + if (!t10.dataTransfer) + return false; + if (e20.state.readOnly) + return true; + var n10 = t10.dataTransfer.files; + if (n10 && n10.length) { + for (var r10 = Array(n10.length), o10 = 0, i10 = function() { + ++o10 == n10.length && FU(e20, t10, r10.filter(function(e21) { + return null != e21; + }).join(e20.state.lineBreak), false); + }, a10 = function(e21) { + var t11 = new FileReader(); + t11.onerror = i10, t11.onload = function() { + /[\x00-\x08\x0e-\x1f]{2}/.test(t11.result) || (r10[e21] = t11.result), i10(); + }, t11.readAsText(n10[e21]); + }, s10 = 0; s10 < n10.length; s10++) + a10(s10); + return true; + } + var c10 = t10.dataTransfer.getData("Text"); + return !!c10 && (FU(e20, t10, c10, true), true); + }, OU.paste = function(e20, t10) { + if (e20.state.readOnly) + return true; + e20.observer.flush(); + var n10 = EU ? null : t10.clipboardData; + return n10 ? (AU(e20, n10.getData("text/plain") || n10.getData("text/uri-text")), true) : (function(e21) { + var t11 = e21.dom.parentNode; + if (t11) { + var n11 = t11.appendChild(document.createElement("textarea")); + n11.style.cssText = "position: fixed; left: -10000px; top: 10px", n11.focus(), setTimeout(function() { + e21.focus(), n11.remove(), AU(e21, n11.value); + }, 50); + } + }(e20), false); + }; + var VU = null; + OU.copy = OU.cut = function(e20, t10) { + var n10 = function(e21) { + var t11, n11 = [], r11 = [], o11 = false, i11 = bo(e21.selection.ranges); + try { + for (i11.s(); !(t11 = i11.n()).done; ) { + var a11 = t11.value; + a11.empty || (n11.push(e21.sliceDoc(a11.from, a11.to)), r11.push(a11)); + } + } catch (e23) { + i11.e(e23); + } finally { + i11.f(); + } + if (!n11.length) { + var s10, c10 = -1, l10 = bo(e21.selection.ranges); + try { + for (l10.s(); !(s10 = l10.n()).done; ) { + var u10 = s10.value.from, f10 = e21.doc.lineAt(u10); + f10.number > c10 && (n11.push(f10.text), r11.push({ from: f10.from, to: Math.min(e21.doc.length, f10.to + 1) })), c10 = f10.number; + } + } catch (e23) { + l10.e(e23); + } finally { + l10.f(); + } + o11 = true; + } + return { text: n11.join(e21.lineBreak), ranges: r11, linewise: o11 }; + }(e20.state), r10 = n10.text, o10 = n10.ranges, i10 = n10.linewise; + if (!r10 && !i10) + return false; + VU = i10 ? r10 : null, "cut" != t10.type || e20.state.readOnly || e20.dispatch({ changes: o10, scrollIntoView: true, userEvent: "delete.cut" }); + var a10 = EU ? null : t10.clipboardData; + return a10 ? (a10.clearData(), a10.setData("text/plain", r10), true) : (function(e21, t11) { + var n11 = e21.dom.parentNode; + if (n11) { + var r11 = n11.appendChild(document.createElement("textarea")); + r11.style.cssText = "position: fixed; left: -10000px; top: 10px", r11.value = t11, r11.focus(), r11.selectionEnd = t11.length, r11.selectionStart = 0, setTimeout(function() { + r11.remove(), e21.focus(); + }, 50); + } + }(e20, r10), false); + }; + var HU = tV.define(); + function WU(e20, t10) { + var n10, r10 = [], o10 = bo(e20.facet(TW)); + try { + for (o10.s(); !(n10 = o10.n()).done; ) { + var i10 = (0, n10.value)(e20, t10); + i10 && r10.push(i10); + } + } catch (e21) { + o10.e(e21); + } finally { + o10.f(); + } + return r10 ? e20.update({ effects: r10, annotations: HU.of(true) }) : null; + } + function UU(e20) { + setTimeout(function() { + var t10 = e20.hasFocus; + if (t10 != e20.inputState.notifiedFocused) { + var n10 = WU(e20.state, t10); + n10 ? e20.dispatch(n10) : e20.update([]); + } + }, 10); + } + MU.focus = function(e20) { + e20.inputState.lastFocusTime = Date.now(), e20.scrollDOM.scrollTop || !e20.inputState.lastScrollTop && !e20.inputState.lastScrollLeft || (e20.scrollDOM.scrollTop = e20.inputState.lastScrollTop, e20.scrollDOM.scrollLeft = e20.inputState.lastScrollLeft), UU(e20); + }, MU.blur = function(e20) { + e20.observer.clearSelectionRange(), UU(e20); + }, MU.compositionstart = MU.compositionupdate = function(e20) { + null == e20.inputState.compositionFirstChange && (e20.inputState.compositionFirstChange = true), e20.inputState.composing < 0 && (e20.inputState.composing = 0); + }, MU.compositionend = function(e20) { + e20.inputState.composing = -1, e20.inputState.compositionEndedAt = Date.now(), e20.inputState.compositionPendingKey = true, e20.inputState.compositionPendingChange = e20.observer.pendingRecords().length > 0, e20.inputState.compositionFirstChange = null, AH.chrome && AH.android ? e20.observer.flushSoon() : e20.inputState.compositionPendingChange ? Promise.resolve().then(function() { + return e20.observer.flush(); + }) : setTimeout(function() { + e20.inputState.composing < 0 && e20.docView.hasComposition && e20.update([]); + }, 50); + }, MU.contextmenu = function(e20) { + e20.inputState.lastContextMenu = Date.now(); + }, OU.beforeinput = function(e20, t10) { + var n10, r10; + if (AH.chrome && AH.android && (r10 = jU.find(function(e21) { + return e21.inputType == t10.inputType; + })) && (e20.observer.delayAndroidKey(r10.key, r10.keyCode), "Backspace" == r10.key || "Delete" == r10.key)) { + var o10 = (null === (n10 = window.visualViewport) || void 0 === n10 ? void 0 : n10.height) || 0; + setTimeout(function() { + var t11; + ((null === (t11 = window.visualViewport) || void 0 === t11 ? void 0 : t11.height) || 0) > o10 + 10 && e20.hasFocus && (e20.contentDOM.blur(), e20.focus()); + }, 100); + } + return false; + }; + var JU = /* @__PURE__ */ new Set(); + var KU = ["pre-wrap", "normal", "pre-line", "break-spaces"]; + var GU = function() { + function e20(t10) { + No(this, e20), this.lineWrapping = t10, this.doc = UL.empty, this.heightSamples = {}, this.lineHeight = 14, this.charWidth = 7, this.textHeight = 14, this.lineLength = 30, this.heightChanged = false; + } + return Do(e20, [{ key: "heightForGap", value: function(e21, t10) { + var n10 = this.doc.lineAt(t10).number - this.doc.lineAt(e21).number + 1; + return this.lineWrapping && (n10 += Math.max(0, Math.ceil((t10 - e21 - n10 * this.lineLength * 0.5) / this.lineLength))), this.lineHeight * n10; + } }, { key: "heightForLine", value: function(e21) { + return this.lineWrapping ? (1 + Math.max(0, Math.ceil((e21 - this.lineLength) / (this.lineLength - 5)))) * this.lineHeight : this.lineHeight; + } }, { key: "setDoc", value: function(e21) { + return this.doc = e21, this; + } }, { key: "mustRefreshForWrapping", value: function(e21) { + return KU.indexOf(e21) > -1 != this.lineWrapping; + } }, { key: "mustRefreshForHeights", value: function(e21) { + for (var t10 = false, n10 = 0; n10 < e21.length; n10++) { + var r10 = e21[n10]; + r10 < 0 ? n10++ : this.heightSamples[Math.floor(10 * r10)] || (t10 = true, this.heightSamples[Math.floor(10 * r10)] = true); + } + return t10; + } }, { key: "refresh", value: function(e21, t10, n10, r10, o10, i10) { + var a10 = KU.indexOf(e21) > -1, s10 = Math.round(t10) != Math.round(this.lineHeight) || this.lineWrapping != a10; + if (this.lineWrapping = a10, this.lineHeight = t10, this.charWidth = n10, this.textHeight = r10, this.lineLength = o10, s10) { + this.heightSamples = {}; + for (var c10 = 0; c10 < i10.length; c10++) { + var l10 = i10[c10]; + l10 < 0 ? c10++ : this.heightSamples[Math.floor(10 * l10)] = true; + } + } + return s10; + } }]), e20; + }(); + var QU = function() { + function e20(t10, n10) { + No(this, e20), this.from = t10, this.heights = n10, this.index = 0; + } + return Do(e20, [{ key: "more", get: function() { + return this.index < this.heights.length; + } }]), e20; + }(); + var YU = function() { + function e20(t10, n10, r10, o10, i10) { + No(this, e20), this.from = t10, this.length = n10, this.top = r10, this.height = o10, this._content = i10; + } + return Do(e20, [{ key: "type", get: function() { + return "number" == typeof this._content ? JH.Text : Array.isArray(this._content) ? this._content : this._content.type; + } }, { key: "to", get: function() { + return this.from + this.length; + } }, { key: "bottom", get: function() { + return this.top + this.height; + } }, { key: "widget", get: function() { + return this._content instanceof YH ? this._content.widget : null; + } }, { key: "widgetLineBreaks", get: function() { + return "number" == typeof this._content ? this._content : 0; + } }, { key: "join", value: function(t10) { + var n10 = (Array.isArray(this._content) ? this._content : [this]).concat(Array.isArray(t10._content) ? t10._content : [t10]); + return new e20(this.from, this.length + t10.length, this.top, this.height + t10.height, n10); + } }]), e20; + }(); + var XU = function(e20) { + return e20[e20.ByPos = 0] = "ByPos", e20[e20.ByHeight = 1] = "ByHeight", e20[e20.ByPosNoHeight = 2] = "ByPosNoHeight", e20; + }(XU || (XU = {})); + var ZU = 1e-3; + var eJ = function() { + function e20(t10, n10) { + var r10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 2; + No(this, e20), this.length = t10, this.height = n10, this.flags = r10; + } + return Do(e20, [{ key: "outdated", get: function() { + return (2 & this.flags) > 0; + }, set: function(e21) { + this.flags = (e21 ? 2 : 0) | -3 & this.flags; + } }, { key: "setHeight", value: function(e21, t10) { + this.height != t10 && (Math.abs(this.height - t10) > ZU && (e21.heightChanged = true), this.height = t10); + } }, { key: "replace", value: function(t10, n10, r10) { + return e20.of(r10); + } }, { key: "decomposeLeft", value: function(e21, t10) { + t10.push(this); + } }, { key: "decomposeRight", value: function(e21, t10) { + t10.push(this); + } }, { key: "applyChanges", value: function(e21, t10, n10, r10) { + for (var o10 = this, i10 = n10.doc, a10 = r10.length - 1; a10 >= 0; a10--) { + var s10 = r10[a10], c10 = s10.fromA, l10 = s10.toA, u10 = s10.fromB, f10 = s10.toB, d10 = o10.lineAt(c10, XU.ByPosNoHeight, n10.setDoc(t10), 0, 0), h10 = d10.to >= l10 ? d10 : o10.lineAt(l10, XU.ByPosNoHeight, n10, 0, 0); + for (f10 += h10.to - l10, l10 = h10.to; a10 > 0 && d10.from <= r10[a10 - 1].toA; ) + c10 = r10[a10 - 1].fromA, u10 = r10[a10 - 1].fromB, a10--, c10 < d10.from && (d10 = o10.lineAt(c10, XU.ByPosNoHeight, n10, 0, 0)); + u10 += d10.from - c10, c10 = d10.from; + var v10 = aJ.build(n10.setDoc(i10), e21, u10, f10); + o10 = o10.replace(c10, l10, v10); + } + return o10.updateHeight(n10, 0); + } }], [{ key: "empty", value: function() { + return new nJ(0, 0); + } }, { key: "of", value: function(t10) { + if (1 == t10.length) + return t10[0]; + for (var n10 = 0, r10 = t10.length, o10 = 0, i10 = 0; ; ) + if (n10 == r10) + if (o10 > 2 * i10) { + var a10 = t10[n10 - 1]; + a10.break ? t10.splice(--n10, 1, a10.left, null, a10.right) : t10.splice(--n10, 1, a10.left, a10.right), r10 += 1 + a10.break, o10 -= a10.size; + } else { + if (!(i10 > 2 * o10)) + break; + var s10 = t10[r10]; + s10.break ? t10.splice(r10, 1, s10.left, null, s10.right) : t10.splice(r10, 1, s10.left, s10.right), r10 += 2 + s10.break, i10 -= s10.size; + } + else if (o10 < i10) { + var c10 = t10[n10++]; + c10 && (o10 += c10.size); + } else { + var l10 = t10[--r10]; + l10 && (i10 += l10.size); + } + var u10 = 0; + return null == t10[n10 - 1] ? (u10 = 1, n10--) : null == t10[n10] && (u10 = 1, r10++), new oJ(e20.of(t10.slice(0, n10)), u10, e20.of(t10.slice(r10))); + } }]), e20; + }(); + eJ.prototype.size = 1; + var tJ = function(e20) { + function t10(e21, n10, r10) { + var o10; + return No(this, t10), (o10 = _o(this, t10, [e21, n10])).deco = r10, o10; + } + return Ao(t10, eJ), Do(t10, [{ key: "blockAt", value: function(e21, t11, n10, r10) { + return new YU(r10, this.length, n10, this.height, this.deco || 0); + } }, { key: "lineAt", value: function(e21, t11, n10, r10, o10) { + return this.blockAt(0, n10, r10, o10); + } }, { key: "forEachLine", value: function(e21, t11, n10, r10, o10, i10) { + e21 <= o10 + this.length && t11 >= o10 && i10(this.blockAt(0, n10, r10, o10)); + } }, { key: "updateHeight", value: function(e21) { + var t11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n10 = arguments.length > 3 ? arguments[3] : void 0; + return n10 && n10.from <= t11 && n10.more && this.setHeight(e21, n10.heights[n10.index++]), this.outdated = false, this; + } }, { key: "toString", value: function() { + return "block(".concat(this.length, ")"); + } }]), t10; + }(); + var nJ = function(e20) { + function t10(e21, n10) { + var r10; + return No(this, t10), (r10 = _o(this, t10, [e21, n10, null])).collapsed = 0, r10.widgetHeight = 0, r10.breaks = 0, r10; + } + return Ao(t10, tJ), Do(t10, [{ key: "blockAt", value: function(e21, t11, n10, r10) { + return new YU(r10, this.length, n10, this.height, this.breaks); + } }, { key: "replace", value: function(e21, n10, r10) { + var o10 = r10[0]; + return 1 == r10.length && (o10 instanceof t10 || o10 instanceof rJ && 4 & o10.flags) && Math.abs(this.length - o10.length) < 10 ? (o10 instanceof rJ ? o10 = new t10(o10.length, this.height) : o10.height = this.height, this.outdated || (o10.outdated = false), o10) : eJ.of(r10); + } }, { key: "updateHeight", value: function(e21) { + var t11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n10 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], r10 = arguments.length > 3 ? arguments[3] : void 0; + return r10 && r10.from <= t11 && r10.more ? this.setHeight(e21, r10.heights[r10.index++]) : (n10 || this.outdated) && this.setHeight(e21, Math.max(this.widgetHeight, e21.heightForLine(this.length - this.collapsed)) + this.breaks * e21.lineHeight), this.outdated = false, this; + } }, { key: "toString", value: function() { + return "line(".concat(this.length).concat(this.collapsed ? -this.collapsed : "").concat(this.widgetHeight ? ":" + this.widgetHeight : "", ")"); + } }]), t10; + }(); + var rJ = function(e20) { + function t10(e21) { + return No(this, t10), _o(this, t10, [e21, 0]); + } + return Ao(t10, eJ), Do(t10, [{ key: "heightMetrics", value: function(e21, t11) { + var n10, r10 = e21.doc.lineAt(t11).number, o10 = e21.doc.lineAt(t11 + this.length).number, i10 = o10 - r10 + 1, a10 = 0; + if (e21.lineWrapping) { + var s10 = Math.min(this.height, e21.lineHeight * i10); + n10 = s10 / i10, this.length > i10 + 1 && (a10 = (this.height - s10) / (this.length - i10 - 1)); + } else + n10 = this.height / i10; + return { firstLine: r10, lastLine: o10, perLine: n10, perChar: a10 }; + } }, { key: "blockAt", value: function(e21, t11, n10, r10) { + var o10 = this.heightMetrics(t11, r10), i10 = o10.firstLine, a10 = o10.lastLine, s10 = o10.perLine, c10 = o10.perChar; + if (t11.lineWrapping) { + var l10 = r10 + Math.round(Math.max(0, Math.min(1, (e21 - n10) / this.height)) * this.length), u10 = t11.doc.lineAt(l10), f10 = s10 + u10.length * c10, d10 = Math.max(n10, e21 - f10 / 2); + return new YU(u10.from, u10.length, d10, f10, 0); + } + var h10 = Math.max(0, Math.min(a10 - i10, Math.floor((e21 - n10) / s10))), v10 = t11.doc.line(i10 + h10), p10 = v10.from, m10 = v10.length; + return new YU(p10, m10, n10 + s10 * h10, s10, 0); + } }, { key: "lineAt", value: function(e21, t11, n10, r10, o10) { + if (t11 == XU.ByHeight) + return this.blockAt(e21, n10, r10, o10); + if (t11 == XU.ByPosNoHeight) { + var i10 = n10.doc.lineAt(e21), a10 = i10.from, s10 = i10.to; + return new YU(a10, s10 - a10, 0, 0, 0); + } + var c10 = this.heightMetrics(n10, o10), l10 = c10.firstLine, u10 = c10.perLine, f10 = c10.perChar, d10 = n10.doc.lineAt(e21), h10 = u10 + d10.length * f10, v10 = d10.number - l10, p10 = r10 + u10 * v10 + f10 * (d10.from - o10 - v10); + return new YU(d10.from, d10.length, Math.max(r10, Math.min(p10, r10 + this.height - h10)), h10, 0); + } }, { key: "forEachLine", value: function(e21, t11, n10, r10, o10, i10) { + e21 = Math.max(e21, o10), t11 = Math.min(t11, o10 + this.length); + for (var a10 = this.heightMetrics(n10, o10), s10 = a10.firstLine, c10 = a10.perLine, l10 = a10.perChar, u10 = e21, f10 = r10; u10 <= t11; ) { + var d10 = n10.doc.lineAt(u10); + if (u10 == e21) { + var h10 = d10.number - s10; + f10 += c10 * h10 + l10 * (e21 - o10 - h10); + } + var v10 = c10 + l10 * d10.length; + i10(new YU(d10.from, d10.length, f10, v10, 0)), f10 += v10, u10 = d10.to + 1; + } + } }, { key: "replace", value: function(e21, n10, r10) { + var o10 = this.length - n10; + if (o10 > 0) { + var i10 = r10[r10.length - 1]; + i10 instanceof t10 ? r10[r10.length - 1] = new t10(i10.length + o10) : r10.push(null, new t10(o10 - 1)); + } + if (e21 > 0) { + var a10 = r10[0]; + a10 instanceof t10 ? r10[0] = new t10(e21 + a10.length) : r10.unshift(new t10(e21 - 1), null); + } + return eJ.of(r10); + } }, { key: "decomposeLeft", value: function(e21, n10) { + n10.push(new t10(e21 - 1), null); + } }, { key: "decomposeRight", value: function(e21, n10) { + n10.push(null, new t10(this.length - e21 - 1)); + } }, { key: "updateHeight", value: function(e21) { + var n10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, r10 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], o10 = arguments.length > 3 ? arguments[3] : void 0, i10 = n10 + this.length; + if (o10 && o10.from <= n10 + this.length && o10.more) { + var a10 = [], s10 = Math.max(n10, o10.from), c10 = -1; + for (o10.from > n10 && a10.push(new t10(o10.from - n10 - 1).updateHeight(e21, n10)); s10 <= i10 && o10.more; ) { + var l10 = e21.doc.lineAt(s10).length; + a10.length && a10.push(null); + var u10 = o10.heights[o10.index++]; + -1 == c10 ? c10 = u10 : Math.abs(u10 - c10) >= ZU && (c10 = -2); + var f10 = new nJ(l10, u10); + f10.outdated = false, a10.push(f10), s10 += l10 + 1; + } + s10 <= i10 && a10.push(null, new t10(i10 - s10).updateHeight(e21, s10)); + var d10 = eJ.of(a10); + return (c10 < 0 || Math.abs(d10.height - this.height) >= ZU || Math.abs(c10 - this.heightMetrics(e21, n10).perLine) >= ZU) && (e21.heightChanged = true), d10; + } + return (r10 || this.outdated) && (this.setHeight(e21, e21.heightForGap(n10, n10 + this.length)), this.outdated = false), this; + } }, { key: "toString", value: function() { + return "gap(".concat(this.length, ")"); + } }]), t10; + }(); + var oJ = function(e20) { + function t10(e21, n10, r10) { + var o10; + return No(this, t10), (o10 = _o(this, t10, [e21.length + n10 + r10.length, e21.height + r10.height, n10 | (e21.outdated || r10.outdated ? 2 : 0)])).left = e21, o10.right = r10, o10.size = e21.size + r10.size, o10; + } + return Ao(t10, eJ), Do(t10, [{ key: "break", get: function() { + return 1 & this.flags; + } }, { key: "blockAt", value: function(e21, t11, n10, r10) { + var o10 = n10 + this.left.height; + return e21 < o10 ? this.left.blockAt(e21, t11, n10, r10) : this.right.blockAt(e21, t11, o10, r10 + this.left.length + this.break); + } }, { key: "lineAt", value: function(e21, t11, n10, r10, o10) { + var i10 = r10 + this.left.height, a10 = o10 + this.left.length + this.break, s10 = t11 == XU.ByHeight ? e21 < i10 : e21 < a10, c10 = s10 ? this.left.lineAt(e21, t11, n10, r10, o10) : this.right.lineAt(e21, t11, n10, i10, a10); + if (this.break || (s10 ? c10.to < a10 : c10.from > a10)) + return c10; + var l10 = t11 == XU.ByPosNoHeight ? XU.ByPosNoHeight : XU.ByPos; + return s10 ? c10.join(this.right.lineAt(a10, l10, n10, i10, a10)) : this.left.lineAt(a10, l10, n10, r10, o10).join(c10); + } }, { key: "forEachLine", value: function(e21, t11, n10, r10, o10, i10) { + var a10 = r10 + this.left.height, s10 = o10 + this.left.length + this.break; + if (this.break) + e21 < s10 && this.left.forEachLine(e21, t11, n10, r10, o10, i10), t11 >= s10 && this.right.forEachLine(e21, t11, n10, a10, s10, i10); + else { + var c10 = this.lineAt(s10, XU.ByPos, n10, r10, o10); + e21 < c10.from && this.left.forEachLine(e21, c10.from - 1, n10, r10, o10, i10), c10.to >= e21 && c10.from <= t11 && i10(c10), t11 > c10.to && this.right.forEachLine(c10.to + 1, t11, n10, a10, s10, i10); + } + } }, { key: "replace", value: function(e21, t11, n10) { + var r10 = this.left.length + this.break; + if (t11 < r10) + return this.balanced(this.left.replace(e21, t11, n10), this.right); + if (e21 > this.left.length) + return this.balanced(this.left, this.right.replace(e21 - r10, t11 - r10, n10)); + var o10 = []; + e21 > 0 && this.decomposeLeft(e21, o10); + var i10, a10 = o10.length, s10 = bo(n10); + try { + for (s10.s(); !(i10 = s10.n()).done; ) { + var c10 = i10.value; + o10.push(c10); + } + } catch (e23) { + s10.e(e23); + } finally { + s10.f(); + } + if (e21 > 0 && iJ(o10, a10 - 1), t11 < this.length) { + var l10 = o10.length; + this.decomposeRight(t11, o10), iJ(o10, l10); + } + return eJ.of(o10); + } }, { key: "decomposeLeft", value: function(e21, t11) { + var n10 = this.left.length; + if (e21 <= n10) + return this.left.decomposeLeft(e21, t11); + t11.push(this.left), this.break && e21 >= ++n10 && t11.push(null), e21 > n10 && this.right.decomposeLeft(e21 - n10, t11); + } }, { key: "decomposeRight", value: function(e21, t11) { + var n10 = this.left.length, r10 = n10 + this.break; + if (e21 >= r10) + return this.right.decomposeRight(e21 - r10, t11); + e21 < n10 && this.left.decomposeRight(e21, t11), this.break && e21 < r10 && t11.push(null), t11.push(this.right); + } }, { key: "balanced", value: function(e21, t11) { + return e21.size > 2 * t11.size || t11.size > 2 * e21.size ? eJ.of(this.break ? [e21, null, t11] : [e21, t11]) : (this.left = e21, this.right = t11, this.height = e21.height + t11.height, this.outdated = e21.outdated || t11.outdated, this.size = e21.size + t11.size, this.length = e21.length + this.break + t11.length, this); + } }, { key: "updateHeight", value: function(e21) { + var t11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n10 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], r10 = arguments.length > 3 ? arguments[3] : void 0, o10 = this.left, i10 = this.right, a10 = t11 + o10.length + this.break, s10 = null; + return r10 && r10.from <= t11 + o10.length && r10.more ? s10 = o10 = o10.updateHeight(e21, t11, n10, r10) : o10.updateHeight(e21, t11, n10), r10 && r10.from <= a10 + i10.length && r10.more ? s10 = i10 = i10.updateHeight(e21, a10, n10, r10) : i10.updateHeight(e21, a10, n10), s10 ? this.balanced(o10, i10) : (this.height = this.left.height + this.right.height, this.outdated = false, this); + } }, { key: "toString", value: function() { + return this.left + (this.break ? " " : "-") + this.right; + } }]), t10; + }(); + function iJ(e20, t10) { + var n10, r10; + null == e20[t10] && (n10 = e20[t10 - 1]) instanceof rJ && (r10 = e20[t10 + 1]) instanceof rJ && e20.splice(t10 - 1, 3, new rJ(n10.length + 1 + r10.length)); + } + var aJ = function() { + function e20(t10, n10) { + No(this, e20), this.pos = t10, this.oracle = n10, this.nodes = [], this.lineStart = -1, this.lineEnd = -1, this.covering = null, this.writtenTo = t10; + } + return Do(e20, [{ key: "isCovered", get: function() { + return this.covering && this.nodes[this.nodes.length - 1] == this.covering; + } }, { key: "span", value: function(e21, t10) { + if (this.lineStart > -1) { + var n10 = Math.min(t10, this.lineEnd), r10 = this.nodes[this.nodes.length - 1]; + r10 instanceof nJ ? r10.length += n10 - this.pos : (n10 > this.pos || !this.isCovered) && this.nodes.push(new nJ(n10 - this.pos, -1)), this.writtenTo = n10, t10 > n10 && (this.nodes.push(null), this.writtenTo++, this.lineStart = -1); + } + this.pos = t10; + } }, { key: "point", value: function(e21, t10, n10) { + if (e21 < t10 || n10.heightRelevant) { + var r10 = n10.widget ? n10.widget.estimatedHeight : 0, o10 = n10.widget ? n10.widget.lineBreaks : 0; + r10 < 0 && (r10 = this.oracle.lineHeight); + var i10 = t10 - e21; + n10.block ? this.addBlock(new tJ(i10, r10, n10)) : (i10 || o10 || r10 >= 5) && this.addLineDeco(r10, o10, i10); + } else + t10 > e21 && this.span(e21, t10); + this.lineEnd > -1 && this.lineEnd < this.pos && (this.lineEnd = this.oracle.doc.lineAt(this.pos).to); + } }, { key: "enterLine", value: function() { + if (!(this.lineStart > -1)) { + var e21 = this.oracle.doc.lineAt(this.pos), t10 = e21.from, n10 = e21.to; + this.lineStart = t10, this.lineEnd = n10, this.writtenTo < t10 && ((this.writtenTo < t10 - 1 || null == this.nodes[this.nodes.length - 1]) && this.nodes.push(this.blankContent(this.writtenTo, t10 - 1)), this.nodes.push(null)), this.pos > t10 && this.nodes.push(new nJ(this.pos - t10, -1)), this.writtenTo = this.pos; + } + } }, { key: "blankContent", value: function(e21, t10) { + var n10 = new rJ(t10 - e21); + return this.oracle.doc.lineAt(e21).to == t10 && (n10.flags |= 4), n10; + } }, { key: "ensureLine", value: function() { + this.enterLine(); + var e21 = this.nodes.length ? this.nodes[this.nodes.length - 1] : null; + if (e21 instanceof nJ) + return e21; + var t10 = new nJ(0, -1); + return this.nodes.push(t10), t10; + } }, { key: "addBlock", value: function(e21) { + this.enterLine(); + var t10 = e21.deco; + t10 && t10.startSide > 0 && !this.isCovered && this.ensureLine(), this.nodes.push(e21), this.writtenTo = this.pos = this.pos + e21.length, t10 && t10.endSide > 0 && (this.covering = e21); + } }, { key: "addLineDeco", value: function(e21, t10, n10) { + var r10 = this.ensureLine(); + r10.length += n10, r10.collapsed += n10, r10.widgetHeight = Math.max(r10.widgetHeight, e21), r10.breaks += t10, this.writtenTo = this.pos = this.pos + n10; + } }, { key: "finish", value: function(e21) { + var t10 = 0 == this.nodes.length ? null : this.nodes[this.nodes.length - 1]; + !(this.lineStart > -1) || t10 instanceof nJ || this.isCovered ? (this.writtenTo < this.pos || null == t10) && this.nodes.push(this.blankContent(this.writtenTo, this.pos)) : this.nodes.push(new nJ(0, -1)); + var n10, r10 = e21, o10 = bo(this.nodes); + try { + for (o10.s(); !(n10 = o10.n()).done; ) { + var i10 = n10.value; + i10 instanceof nJ && i10.updateHeight(this.oracle, r10), r10 += i10 ? i10.length : 1; + } + } catch (e23) { + o10.e(e23); + } finally { + o10.f(); + } + return this.nodes; + } }], [{ key: "build", value: function(t10, n10, r10, o10) { + var i10 = new e20(r10, t10); + return xV.spans(n10, r10, o10, i10, 0), i10.finish(r10); + } }]), e20; + }(); + var sJ = function() { + function e20() { + No(this, e20), this.changes = []; + } + return Do(e20, [{ key: "compareRange", value: function() { + } }, { key: "comparePoint", value: function(e21, t10, n10, r10) { + (e21 < t10 || n10 && n10.heightRelevant || r10 && r10.heightRelevant) && ZH(e21, t10, this.changes, 5); + } }]), e20; + }(); + function cJ(e20, t10) { + for (var n10 = e20.getBoundingClientRect(), r10 = e20.ownerDocument, o10 = r10.defaultView || window, i10 = Math.max(0, n10.left), a10 = Math.min(o10.innerWidth, n10.right), s10 = Math.max(0, n10.top), c10 = Math.min(o10.innerHeight, n10.bottom), l10 = e20.parentNode; l10 && l10 != r10.body; ) + if (1 == l10.nodeType) { + var u10 = l10, f10 = window.getComputedStyle(u10); + if ((u10.scrollHeight > u10.clientHeight || u10.scrollWidth > u10.clientWidth) && "visible" != f10.overflow) { + var d10 = u10.getBoundingClientRect(); + i10 = Math.max(i10, d10.left), a10 = Math.min(a10, d10.right), s10 = Math.max(s10, d10.top), c10 = l10 == e20.parentNode ? d10.bottom : Math.min(c10, d10.bottom); + } + l10 = "absolute" == f10.position || "fixed" == f10.position ? u10.offsetParent : u10.parentNode; + } else { + if (11 != l10.nodeType) + break; + l10 = l10.host; + } + return { left: i10 - n10.left, right: Math.max(i10, a10) - n10.left, top: s10 - (n10.top + t10), bottom: Math.max(s10, c10) - (n10.top + t10) }; + } + function lJ(e20, t10) { + var n10 = e20.getBoundingClientRect(); + return { left: 0, right: n10.right - n10.left, top: t10, bottom: n10.bottom - (n10.top + t10) }; + } + var uJ = function() { + function e20(t10, n10, r10) { + No(this, e20), this.from = t10, this.to = n10, this.size = r10; + } + return Do(e20, [{ key: "draw", value: function(e21, t10) { + return KH.replace({ widget: new fJ(this.size * (t10 ? e21.scaleY : e21.scaleX), t10) }).range(this.from, this.to); + } }], [{ key: "same", value: function(e21, t10) { + if (e21.length != t10.length) + return false; + for (var n10 = 0; n10 < e21.length; n10++) { + var r10 = e21[n10], o10 = t10[n10]; + if (r10.from != o10.from || r10.to != o10.to || r10.size != o10.size) + return false; + } + return true; + } }]), e20; + }(); + var fJ = function(e20) { + function t10(e21, n10) { + var r10; + return No(this, t10), (r10 = _o(this, t10)).size = e21, r10.vertical = n10, r10; + } + return Ao(t10, UH), Do(t10, [{ key: "eq", value: function(e21) { + return e21.size == this.size && e21.vertical == this.vertical; + } }, { key: "toDOM", value: function() { + var e21 = document.createElement("div"); + return this.vertical ? e21.style.height = this.size + "px" : (e21.style.width = this.size + "px", e21.style.height = "2px", e21.style.display = "inline-block"), e21; + } }, { key: "estimatedHeight", get: function() { + return this.vertical ? this.size : -1; + } }]), t10; + }(); + var dJ = function() { + function e20(t10) { + var n10 = this; + No(this, e20), this.state = t10, this.pixelViewport = { left: 0, right: window.innerWidth, top: 0, bottom: 0 }, this.inView = true, this.paddingTop = 0, this.paddingBottom = 0, this.contentDOMWidth = 0, this.contentDOMHeight = 0, this.editorHeight = 0, this.editorWidth = 0, this.scrollTop = 0, this.scrolledToBottom = true, this.scaleX = 1, this.scaleY = 1, this.scrollAnchorPos = 0, this.scrollAnchorHeight = -1, this.scaler = gJ, this.scrollTarget = null, this.printing = false, this.mustMeasureContent = true, this.defaultTextDirection = rW.LTR, this.visibleRanges = [], this.mustEnforceCursorAssoc = false; + var r10 = t10.facet(WW).some(function(e21) { + return "function" != typeof e21 && "cm-lineWrapping" == e21.class; + }); + this.heightOracle = new GU(r10), this.stateDeco = t10.facet(UW).filter(function(e21) { + return "function" != typeof e21; + }), this.heightMap = eJ.empty().applyChanges(this.stateDeco, UL.empty, this.heightOracle.setDoc(t10.doc), [new eU(0, 0, 0, t10.doc.length)]), this.viewport = this.getViewport(0, null), this.updateViewportLines(), this.updateForViewport(), this.lineGaps = this.ensureLineGaps([]), this.lineGapDeco = KH.set(this.lineGaps.map(function(e21) { + return e21.draw(n10, false); + })), this.computeVisibleRanges(); + } + return Do(e20, [{ key: "updateForViewport", value: function() { + for (var e21 = this, t10 = [this.viewport], n10 = this.state.selection.main, r10 = function() { + var r11 = o10 ? n10.head : n10.anchor; + if (!t10.some(function(e23) { + var t11 = e23.from, n11 = e23.to; + return r11 >= t11 && r11 <= n11; + })) { + var i10 = e21.lineBlockAt(r11), a10 = i10.from, s10 = i10.to; + t10.push(new hJ(a10, s10)); + } + }, o10 = 0; o10 <= 1; o10++) + r10(); + this.viewports = t10.sort(function(e23, t11) { + return e23.from - t11.from; + }), this.scaler = this.heightMap.height <= 7e6 ? gJ : new yJ(this.heightOracle, this.heightMap, this.viewports); + } }, { key: "updateViewportLines", value: function() { + var e21 = this; + this.viewportLines = [], this.heightMap.forEachLine(this.viewport.from, this.viewport.to, this.heightOracle.setDoc(this.state.doc), 0, 0, function(t10) { + e21.viewportLines.push(1 == e21.scaler.scale ? t10 : bJ(t10, e21.scaler)); + }); + } }, { key: "update", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null; + this.state = e21.state; + var n10 = this.stateDeco; + this.stateDeco = this.state.facet(UW).filter(function(e23) { + return "function" != typeof e23; + }); + var r10, o10, i10, a10, s10 = e21.changedRanges, c10 = eU.extendWithRanges(s10, (r10 = n10, o10 = this.stateDeco, i10 = e21 ? e21.changes : yF.empty(this.state.doc.length), a10 = new sJ(), xV.compare(r10, o10, i10, a10, 0), a10.changes)), l10 = this.heightMap.height, u10 = this.scrolledToBottom ? null : this.scrollAnchorAt(this.scrollTop); + this.heightMap = this.heightMap.applyChanges(this.stateDeco, e21.startState.doc, this.heightOracle.setDoc(this.state.doc), c10), this.heightMap.height != l10 && (e21.flags |= 2), u10 ? (this.scrollAnchorPos = e21.changes.mapPos(u10.from, -1), this.scrollAnchorHeight = u10.top) : (this.scrollAnchorPos = -1, this.scrollAnchorHeight = this.heightMap.height); + var f10 = c10.length ? this.mapViewport(this.viewport, e21.changes) : this.viewport; + (t10 && (t10.range.head < f10.from || t10.range.head > f10.to) || !this.viewportIsAppropriate(f10)) && (f10 = this.getViewport(0, t10)); + var d10 = !e21.changes.empty || 2 & e21.flags || f10.from != this.viewport.from || f10.to != this.viewport.to; + this.viewport = f10, this.updateForViewport(), d10 && this.updateViewportLines(), (this.lineGaps.length || this.viewport.to - this.viewport.from > 4e3) && this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps, e21.changes))), e21.flags |= this.computeVisibleRanges(), t10 && (this.scrollTarget = t10), !this.mustEnforceCursorAssoc && e21.selectionSet && e21.view.lineWrapping && e21.state.selection.main.empty && e21.state.selection.main.assoc && !e21.state.facet(NW) && (this.mustEnforceCursorAssoc = true); + } }, { key: "measure", value: function(e21) { + var t10 = e21.contentDOM, n10 = window.getComputedStyle(t10), r10 = this.heightOracle, o10 = n10.whiteSpace; + this.defaultTextDirection = "rtl" == n10.direction ? rW.RTL : rW.LTR; + var i10 = this.heightOracle.mustRefreshForWrapping(o10), a10 = t10.getBoundingClientRect(), s10 = i10 || this.mustMeasureContent || this.contentDOMHeight != a10.height; + this.contentDOMHeight = a10.height, this.mustMeasureContent = false; + var c10 = 0, l10 = 0; + if (a10.width && a10.height) { + var u10 = oH(t10, a10), f10 = u10.scaleX, d10 = u10.scaleY; + this.scaleX == f10 && this.scaleY == d10 || (this.scaleX = f10, this.scaleY = d10, c10 |= 8, i10 = s10 = true); + } + var h10 = (parseInt(n10.paddingTop) || 0) * this.scaleY, v10 = (parseInt(n10.paddingBottom) || 0) * this.scaleY; + this.paddingTop == h10 && this.paddingBottom == v10 || (this.paddingTop = h10, this.paddingBottom = v10, c10 |= 10), this.editorWidth != e21.scrollDOM.clientWidth && (r10.lineWrapping && (s10 = true), this.editorWidth = e21.scrollDOM.clientWidth, c10 |= 8); + var p10 = e21.scrollDOM.scrollTop * this.scaleY; + this.scrollTop != p10 && (this.scrollAnchorHeight = -1, this.scrollTop = p10), this.scrolledToBottom = dH(e21.scrollDOM); + var m10 = (this.printing ? lJ : cJ)(t10, this.paddingTop), g10 = m10.top - this.pixelViewport.top, y10 = m10.bottom - this.pixelViewport.bottom; + this.pixelViewport = m10; + var b10 = this.pixelViewport.bottom > this.pixelViewport.top && this.pixelViewport.right > this.pixelViewport.left; + if (b10 != this.inView && (this.inView = b10, b10 && (s10 = true)), !this.inView && !this.scrollTarget) + return 0; + var k10 = a10.width; + if (this.contentDOMWidth == k10 && this.editorHeight == e21.scrollDOM.clientHeight || (this.contentDOMWidth = a10.width, this.editorHeight = e21.scrollDOM.clientHeight, c10 |= 8), s10) { + var w10 = e21.docView.measureVisibleLineHeights(this.viewport); + if (r10.mustRefreshForHeights(w10) && (i10 = true), i10 || r10.lineWrapping && Math.abs(k10 - this.contentDOMWidth) > r10.charWidth) { + var x10 = e21.docView.measureTextSize(), j10 = x10.lineHeight, S10 = x10.charWidth, C10 = x10.textHeight; + (i10 = j10 > 0 && r10.refresh(o10, j10, S10, C10, k10 / S10, w10)) && (e21.docView.minWidth = 0, c10 |= 8); + } + g10 > 0 && y10 > 0 ? l10 = Math.max(g10, y10) : g10 < 0 && y10 < 0 && (l10 = Math.min(g10, y10)), r10.heightChanged = false; + var $10, _10 = bo(this.viewports); + try { + for (_10.s(); !($10 = _10.n()).done; ) { + var O10 = $10.value, M10 = O10.from == this.viewport.from ? w10 : e21.docView.measureVisibleLineHeights(O10); + this.heightMap = (i10 ? eJ.empty().applyChanges(this.stateDeco, UL.empty, this.heightOracle, [new eU(0, 0, 0, e21.state.doc.length)]) : this.heightMap).updateHeight(r10, 0, i10, new QU(O10.from, M10)); + } + } catch (e23) { + _10.e(e23); + } finally { + _10.f(); + } + r10.heightChanged && (c10 |= 2); + } + var E10 = !this.viewportIsAppropriate(this.viewport, l10) || this.scrollTarget && (this.scrollTarget.range.head < this.viewport.from || this.scrollTarget.range.head > this.viewport.to); + return E10 && (this.viewport = this.getViewport(l10, this.scrollTarget)), this.updateForViewport(), (2 & c10 || E10) && this.updateViewportLines(), (this.lineGaps.length || this.viewport.to - this.viewport.from > 4e3) && this.updateLineGaps(this.ensureLineGaps(i10 ? [] : this.lineGaps, e21)), c10 |= this.computeVisibleRanges(), this.mustEnforceCursorAssoc && (this.mustEnforceCursorAssoc = false, e21.docView.enforceCursorAssoc()), c10; + } }, { key: "visibleTop", get: function() { + return this.scaler.fromDOM(this.pixelViewport.top); + } }, { key: "visibleBottom", get: function() { + return this.scaler.fromDOM(this.pixelViewport.bottom); + } }, { key: "getViewport", value: function(e21, t10) { + var n10 = 0.5 - Math.max(-0.5, Math.min(0.5, e21 / 1e3 / 2)), r10 = this.heightMap, o10 = this.heightOracle, i10 = this.visibleTop, a10 = this.visibleBottom, s10 = new hJ(r10.lineAt(i10 - 1e3 * n10, XU.ByHeight, o10, 0, 0).from, r10.lineAt(a10 + 1e3 * (1 - n10), XU.ByHeight, o10, 0, 0).to); + if (t10) { + var c10 = t10.range.head; + if (c10 < s10.from || c10 > s10.to) { + var l10, u10 = Math.min(this.editorHeight, this.pixelViewport.bottom - this.pixelViewport.top), f10 = r10.lineAt(c10, XU.ByPos, o10, 0, 0); + l10 = "center" == t10.y ? (f10.top + f10.bottom) / 2 - u10 / 2 : "start" == t10.y || "nearest" == t10.y && c10 < s10.from ? f10.top : f10.bottom - u10, s10 = new hJ(r10.lineAt(l10 - 500, XU.ByHeight, o10, 0, 0).from, r10.lineAt(l10 + u10 + 500, XU.ByHeight, o10, 0, 0).to); + } + } + return s10; + } }, { key: "mapViewport", value: function(e21, t10) { + var n10 = t10.mapPos(e21.from, -1), r10 = t10.mapPos(e21.to, 1); + return new hJ(this.heightMap.lineAt(n10, XU.ByPos, this.heightOracle, 0, 0).from, this.heightMap.lineAt(r10, XU.ByPos, this.heightOracle, 0, 0).to); + } }, { key: "viewportIsAppropriate", value: function(e21) { + var t10 = e21.from, n10 = e21.to, r10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0; + if (!this.inView) + return true; + var o10 = this.heightMap.lineAt(t10, XU.ByPos, this.heightOracle, 0, 0).top, i10 = this.heightMap.lineAt(n10, XU.ByPos, this.heightOracle, 0, 0).bottom, a10 = this.visibleTop, s10 = this.visibleBottom; + return (0 == t10 || o10 <= a10 - Math.max(10, Math.min(-r10, 250))) && (n10 == this.state.doc.length || i10 >= s10 + Math.max(10, Math.min(r10, 250))) && o10 > a10 - 2e3 && i10 < s10 + 2e3; + } }, { key: "mapLineGaps", value: function(e21, t10) { + if (!e21.length || t10.empty) + return e21; + var n10, r10 = [], o10 = bo(e21); + try { + for (o10.s(); !(n10 = o10.n()).done; ) { + var i10 = n10.value; + t10.touchesRange(i10.from, i10.to) || r10.push(new uJ(t10.mapPos(i10.from), t10.mapPos(i10.to), i10.size)); + } + } catch (e23) { + o10.e(e23); + } finally { + o10.f(); + } + return r10; + } }, { key: "ensureLineGaps", value: function(e21, t10) { + var n10 = this, r10 = this.heightOracle.lineWrapping, o10 = r10 ? 1e4 : 2e3, i10 = o10 >> 1, a10 = o10 << 1; + if (this.defaultTextDirection != rW.LTR && !r10) + return []; + var s10, c10 = [], l10 = function o11(a11, s11, l11, u11) { + if (!(s11 - a11 < i10)) { + var f11 = n10.state.selection.main, d11 = [f11.from]; + f11.empty || d11.push(f11.to); + for (var h11 = 0, v11 = d11; h11 < v11.length; h11++) { + var p11 = v11[h11]; + if (p11 > a11 && p11 < s11) + return o11(a11, p11 - 10, l11, u11), void o11(p11 + 10, s11, l11, u11); + } + var m11 = function(e23, t11) { + var n11, r11 = bo(e23); + try { + for (r11.s(); !(n11 = r11.n()).done; ) { + var o12 = n11.value; + if (t11(o12)) + return o12; + } + } catch (e24) { + r11.e(e24); + } finally { + r11.f(); + } + return; + }(e21, function(e23) { + return e23.from >= l11.from && e23.to <= l11.to && Math.abs(e23.from - a11) < i10 && Math.abs(e23.to - s11) < i10 && !d11.some(function(t11) { + return e23.from < t11 && e23.to > t11; + }); + }); + if (!m11) { + if (s11 < l11.to && t10 && r10 && t10.visibleRanges.some(function(e23) { + return e23.from <= s11 && e23.to >= s11; + })) { + var g11 = t10.moveToLineBoundary($F.cursor(s11), false, true).head; + g11 > a11 && (s11 = g11); + } + m11 = new uJ(a11, s11, n10.gapSize(l11, a11, s11, u11)); + } + c10.push(m11); + } + }, u10 = bo(this.viewportLines); + try { + for (u10.s(); !(s10 = u10.n()).done; ) { + var f10 = s10.value; + if (!(f10.length < a10)) { + var d10 = vJ(f10.from, f10.to, this.stateDeco); + if (!(d10.total < a10)) { + var h10 = this.scrollTarget ? this.scrollTarget.range.head : null, v10 = void 0, p10 = void 0; + if (r10) { + var m10 = o10 / this.heightOracle.lineLength * this.heightOracle.lineHeight, g10 = void 0, y10 = void 0; + if (null != h10) { + var b10 = mJ(d10, h10), k10 = ((this.visibleBottom - this.visibleTop) / 2 + m10) / f10.height; + g10 = b10 - k10, y10 = b10 + k10; + } else + g10 = (this.visibleTop - f10.top - m10) / f10.height, y10 = (this.visibleBottom - f10.top + m10) / f10.height; + v10 = pJ(d10, g10), p10 = pJ(d10, y10); + } else { + var w10 = d10.total * this.heightOracle.charWidth, x10 = o10 * this.heightOracle.charWidth, j10 = void 0, S10 = void 0; + if (null != h10) { + var C10 = mJ(d10, h10), $10 = ((this.pixelViewport.right - this.pixelViewport.left) / 2 + x10) / w10; + j10 = C10 - $10, S10 = C10 + $10; + } else + j10 = (this.pixelViewport.left - x10) / w10, S10 = (this.pixelViewport.right + x10) / w10; + v10 = pJ(d10, j10), p10 = pJ(d10, S10); + } + v10 > f10.from && l10(f10.from, v10, f10, d10), p10 < f10.to && l10(p10, f10.to, f10, d10); + } + } + } + } catch (e23) { + u10.e(e23); + } finally { + u10.f(); + } + return c10; + } }, { key: "gapSize", value: function(e21, t10, n10, r10) { + var o10 = mJ(r10, n10) - mJ(r10, t10); + return this.heightOracle.lineWrapping ? e21.height * o10 : r10.total * this.heightOracle.charWidth * o10; + } }, { key: "updateLineGaps", value: function(e21) { + var t10 = this; + uJ.same(e21, this.lineGaps) || (this.lineGaps = e21, this.lineGapDeco = KH.set(e21.map(function(e23) { + return e23.draw(t10, t10.heightOracle.lineWrapping); + }))); + } }, { key: "computeVisibleRanges", value: function() { + var e21 = this.stateDeco; + this.lineGaps.length && (e21 = e21.concat(this.lineGapDeco)); + var t10 = []; + xV.spans(e21, this.viewport.from, this.viewport.to, { span: function(e23, n11) { + t10.push({ from: e23, to: n11 }); + }, point: function() { + } }, 20); + var n10 = t10.length != this.visibleRanges.length || this.visibleRanges.some(function(e23, n11) { + return e23.from != t10[n11].from || e23.to != t10[n11].to; + }); + return this.visibleRanges = t10, n10 ? 4 : 0; + } }, { key: "lineBlockAt", value: function(e21) { + return e21 >= this.viewport.from && e21 <= this.viewport.to && this.viewportLines.find(function(t10) { + return t10.from <= e21 && t10.to >= e21; + }) || bJ(this.heightMap.lineAt(e21, XU.ByPos, this.heightOracle, 0, 0), this.scaler); + } }, { key: "lineBlockAtHeight", value: function(e21) { + return bJ(this.heightMap.lineAt(this.scaler.fromDOM(e21), XU.ByHeight, this.heightOracle, 0, 0), this.scaler); + } }, { key: "scrollAnchorAt", value: function(e21) { + var t10 = this.lineBlockAtHeight(e21 + 8); + return t10.from >= this.viewport.from || this.viewportLines[0].top - e21 > 200 ? t10 : this.viewportLines[0]; + } }, { key: "elementAtHeight", value: function(e21) { + return bJ(this.heightMap.blockAt(this.scaler.fromDOM(e21), this.heightOracle, 0, 0), this.scaler); + } }, { key: "docHeight", get: function() { + return this.scaler.toDOM(this.heightMap.height); + } }, { key: "contentHeight", get: function() { + return this.docHeight + this.paddingTop + this.paddingBottom; + } }]), e20; + }(); + var hJ = Do(function e4(t10, n10) { + No(this, e4), this.from = t10, this.to = n10; + }); + function vJ(e20, t10, n10) { + var r10 = [], o10 = e20, i10 = 0; + return xV.spans(n10, e20, t10, { span: function() { + }, point: function(e21, t11) { + e21 > o10 && (r10.push({ from: o10, to: e21 }), i10 += e21 - o10), o10 = t11; + } }, 20), o10 < t10 && (r10.push({ from: o10, to: t10 }), i10 += t10 - o10), { total: i10, ranges: r10 }; + } + function pJ(e20, t10) { + var n10 = e20.total, r10 = e20.ranges; + if (t10 <= 0) + return r10[0].from; + if (t10 >= 1) + return r10[r10.length - 1].to; + for (var o10 = Math.floor(n10 * t10), i10 = 0; ; i10++) { + var a10 = r10[i10], s10 = a10.from, c10 = a10.to - s10; + if (o10 <= c10) + return s10 + o10; + o10 -= c10; + } + } + function mJ(e20, t10) { + var n10, r10 = 0, o10 = bo(e20.ranges); + try { + for (o10.s(); !(n10 = o10.n()).done; ) { + var i10 = n10.value, a10 = i10.from, s10 = i10.to; + if (t10 <= s10) { + r10 += t10 - a10; + break; + } + r10 += s10 - a10; + } + } catch (e21) { + o10.e(e21); + } finally { + o10.f(); + } + return r10 / e20.total; + } + var gJ = { toDOM: function(e20) { + return e20; + }, fromDOM: function(e20) { + return e20; + }, scale: 1 }; + var yJ = function() { + function e20(t10, n10, r10) { + No(this, e20); + var o10 = 0, i10 = 0, a10 = 0; + this.viewports = r10.map(function(e21) { + var r11 = e21.from, i11 = e21.to, a11 = n10.lineAt(r11, XU.ByPos, t10, 0, 0).top, s11 = n10.lineAt(i11, XU.ByPos, t10, 0, 0).bottom; + return o10 += s11 - a11, { from: r11, to: i11, top: a11, bottom: s11, domTop: 0, domBottom: 0 }; + }), this.scale = (7e6 - o10) / (n10.height - o10); + var s10, c10 = bo(this.viewports); + try { + for (c10.s(); !(s10 = c10.n()).done; ) { + var l10 = s10.value; + l10.domTop = a10 + (l10.top - i10) * this.scale, a10 = l10.domBottom = l10.domTop + (l10.bottom - l10.top), i10 = l10.bottom; + } + } catch (e21) { + c10.e(e21); + } finally { + c10.f(); + } + } + return Do(e20, [{ key: "toDOM", value: function(e21) { + for (var t10 = 0, n10 = 0, r10 = 0; ; t10++) { + var o10 = t10 < this.viewports.length ? this.viewports[t10] : null; + if (!o10 || e21 < o10.top) + return r10 + (e21 - n10) * this.scale; + if (e21 <= o10.bottom) + return o10.domTop + (e21 - o10.top); + n10 = o10.bottom, r10 = o10.domBottom; + } + } }, { key: "fromDOM", value: function(e21) { + for (var t10 = 0, n10 = 0, r10 = 0; ; t10++) { + var o10 = t10 < this.viewports.length ? this.viewports[t10] : null; + if (!o10 || e21 < o10.domTop) + return n10 + (e21 - r10) / this.scale; + if (e21 <= o10.domBottom) + return o10.top + (e21 - o10.domTop); + n10 = o10.bottom, r10 = o10.domBottom; + } + } }]), e20; + }(); + function bJ(e20, t10) { + if (1 == t10.scale) + return e20; + var n10 = t10.toDOM(e20.top), r10 = t10.toDOM(e20.bottom); + return new YU(e20.from, e20.length, n10, r10 - n10, Array.isArray(e20._content) ? e20._content.map(function(e21) { + return bJ(e21, t10); + }) : e20._content); + } + var kJ = MF.define({ combine: function(e20) { + return e20.join(" "); + } }); + var wJ = MF.define({ combine: function(e20) { + return e20.indexOf(true) > -1; + } }); + var xJ = zV.newName(); + var jJ = zV.newName(); + var SJ = zV.newName(); + var CJ = { "&light": "." + jJ, "&dark": "." + SJ }; + function $J(e20, t10, n10) { + return new zV(t10, { finish: function(t11) { + return /&/.test(t11) ? t11.replace(/&\w*/, function(t12) { + if ("&" == t12) + return e20; + if (!n10 || !n10[t12]) + throw new RangeError("Unsupported selector: ".concat(t12)); + return n10[t12]; + }) : e20 + " " + t11; + } }); + } + var _J = $J("." + xJ, { "&": { position: "relative !important", boxSizing: "border-box", "&.cm-focused": { outline: "1px dotted #212121" }, display: "flex !important", flexDirection: "column" }, ".cm-scroller": { display: "flex !important", alignItems: "flex-start !important", fontFamily: "monospace", lineHeight: 1.4, height: "100%", overflowX: "auto", position: "relative", zIndex: 0 }, ".cm-content": { margin: 0, flexGrow: 2, flexShrink: 0, display: "block", whiteSpace: "pre", wordWrap: "normal", boxSizing: "border-box", minHeight: "100%", padding: "4px 0", outline: "none", "&[contenteditable=true]": { WebkitUserModify: "read-write-plaintext-only" } }, ".cm-lineWrapping": { whiteSpace_fallback: "pre-wrap", whiteSpace: "break-spaces", wordBreak: "break-word", overflowWrap: "anywhere", flexShrink: 1 }, "&light .cm-content": { caretColor: "black" }, "&dark .cm-content": { caretColor: "white" }, ".cm-line": { display: "block", padding: "0 2px 0 6px" }, ".cm-layer": { position: "absolute", left: 0, top: 0, contain: "size style", "& > *": { position: "absolute" } }, "&light .cm-selectionBackground": { background: "#d9d9d9" }, "&dark .cm-selectionBackground": { background: "#222" }, "&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground": { background: "#d7d4f0" }, "&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground": { background: "#233" }, ".cm-cursorLayer": { pointerEvents: "none" }, "&.cm-focused > .cm-scroller > .cm-cursorLayer": { animation: "steps(1) cm-blink 1.2s infinite" }, "@keyframes cm-blink": { "0%": {}, "50%": { opacity: 0 }, "100%": {} }, "@keyframes cm-blink2": { "0%": {}, "50%": { opacity: 0 }, "100%": {} }, ".cm-cursor, .cm-dropCursor": { borderLeft: "1.2px solid black", marginLeft: "-0.6px", pointerEvents: "none" }, ".cm-cursor": { display: "none" }, "&dark .cm-cursor": { borderLeftColor: "#444" }, ".cm-dropCursor": { position: "absolute" }, "&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor": { display: "block" }, ".cm-iso": { unicodeBidi: "isolate" }, ".cm-announced": { position: "fixed", top: "-10000px" }, "@media print": { ".cm-announced": { display: "none" } }, "&light .cm-activeLine": { backgroundColor: "#cceeff44" }, "&dark .cm-activeLine": { backgroundColor: "#99eeff33" }, "&light .cm-specialChar": { color: "red" }, "&dark .cm-specialChar": { color: "#f78" }, ".cm-gutters": { flexShrink: 0, display: "flex", height: "100%", boxSizing: "border-box", insetInlineStart: 0, zIndex: 200 }, "&light .cm-gutters": { backgroundColor: "#f5f5f5", color: "#6c6c6c", borderRight: "1px solid #ddd" }, "&dark .cm-gutters": { backgroundColor: "#333338", color: "#ccc" }, ".cm-gutter": { display: "flex !important", flexDirection: "column", flexShrink: 0, boxSizing: "border-box", minHeight: "100%", overflow: "hidden" }, ".cm-gutterElement": { boxSizing: "border-box" }, ".cm-lineNumbers .cm-gutterElement": { padding: "0 3px 0 5px", minWidth: "20px", textAlign: "right", whiteSpace: "nowrap" }, "&light .cm-activeLineGutter": { backgroundColor: "#e2f2ff" }, "&dark .cm-activeLineGutter": { backgroundColor: "#222227" }, ".cm-panels": { boxSizing: "border-box", position: "sticky", left: 0, right: 0 }, "&light .cm-panels": { backgroundColor: "#f5f5f5", color: "black" }, "&light .cm-panels-top": { borderBottom: "1px solid #ddd" }, "&light .cm-panels-bottom": { borderTop: "1px solid #ddd" }, "&dark .cm-panels": { backgroundColor: "#333338", color: "white" }, ".cm-tab": { display: "inline-block", overflow: "hidden", verticalAlign: "bottom" }, ".cm-widgetBuffer": { verticalAlign: "text-top", height: "1em", width: 0, display: "inline" }, ".cm-placeholder": { color: "#888", display: "inline-block", verticalAlign: "top" }, ".cm-highlightSpace:before": { content: "attr(data-display)", position: "absolute", pointerEvents: "none", color: "#888" }, ".cm-highlightTab": { backgroundImage: `url('data:image/svg+xml,')`, backgroundSize: "auto 100%", backgroundPosition: "right 90%", backgroundRepeat: "no-repeat" }, ".cm-trailingSpace": { backgroundColor: "#ff332255" }, ".cm-button": { verticalAlign: "middle", color: "inherit", fontSize: "70%", padding: ".2em 1em", borderRadius: "1px" }, "&light .cm-button": { backgroundImage: "linear-gradient(#eff1f5, #d9d9df)", border: "1px solid #888", "&:active": { backgroundImage: "linear-gradient(#b4b4b4, #d0d3d6)" } }, "&dark .cm-button": { backgroundImage: "linear-gradient(#393939, #111)", border: "1px solid #888", "&:active": { backgroundImage: "linear-gradient(#111, #333)" } }, ".cm-textfield": { verticalAlign: "middle", color: "inherit", fontSize: "70%", border: "1px solid silver", padding: ".2em .5em" }, "&light .cm-textfield": { backgroundColor: "white" }, "&dark .cm-textfield": { border: "1px solid #555", backgroundColor: "inherit" } }, CJ); + var OJ = "\uFFFF"; + var MJ = function() { + function e20(t10, n10) { + No(this, e20), this.points = t10, this.text = "", this.lineSeparator = n10.facet(mV.lineSeparator); + } + return Do(e20, [{ key: "append", value: function(e21) { + this.text += e21; + } }, { key: "lineBreak", value: function() { + this.text += OJ; + } }, { key: "readRange", value: function(e21, t10) { + if (!e21) + return this; + for (var n10 = e21.parentNode, r10 = e21; ; ) { + this.findPointBefore(n10, r10); + var o10 = this.text.length; + this.readNode(r10); + var i10 = r10.nextSibling; + if (i10 == t10) + break; + var a10 = pH.get(r10), s10 = pH.get(i10); + (a10 && s10 ? a10.breakAfter : (a10 ? a10.breakAfter : AJ(r10)) || AJ(i10) && ("BR" != r10.nodeName || r10.cmIgnore) && this.text.length > o10) && this.lineBreak(), r10 = i10; + } + return this.findPointBefore(n10, t10), this; + } }, { key: "readTextNode", value: function(e21) { + var t10, n10 = e21.nodeValue, r10 = bo(this.points); + try { + for (r10.s(); !(t10 = r10.n()).done; ) { + var o10 = t10.value; + o10.node == e21 && (o10.pos = this.text.length + Math.min(o10.offset, n10.length)); + } + } catch (e23) { + r10.e(e23); + } finally { + r10.f(); + } + for (var i10 = 0, a10 = this.lineSeparator ? null : /\r\n?|\n/g; ; ) { + var s10 = -1, c10 = 1, l10 = void 0; + if (this.lineSeparator ? (s10 = n10.indexOf(this.lineSeparator, i10), c10 = this.lineSeparator.length) : (l10 = a10.exec(n10)) && (s10 = l10.index, c10 = l10[0].length), this.append(n10.slice(i10, s10 < 0 ? n10.length : s10)), s10 < 0) + break; + if (this.lineBreak(), c10 > 1) { + var u10, f10 = bo(this.points); + try { + for (f10.s(); !(u10 = f10.n()).done; ) { + var d10 = u10.value; + d10.node == e21 && d10.pos > this.text.length && (d10.pos -= c10 - 1); + } + } catch (e23) { + f10.e(e23); + } finally { + f10.f(); + } + } + i10 = s10 + c10; + } + } }, { key: "readNode", value: function(e21) { + if (!e21.cmIgnore) { + var t10 = pH.get(e21), n10 = t10 && t10.overrideDOMText; + if (null != n10) { + this.findPointInside(e21, n10.length); + for (var r10 = n10.iter(); !r10.next().done; ) + r10.lineBreak ? this.lineBreak() : this.append(r10.value); + } else + 3 == e21.nodeType ? this.readTextNode(e21) : "BR" == e21.nodeName ? e21.nextSibling && this.lineBreak() : 1 == e21.nodeType && this.readRange(e21.firstChild, null); + } + } }, { key: "findPointBefore", value: function(e21, t10) { + var n10, r10 = bo(this.points); + try { + for (r10.s(); !(n10 = r10.n()).done; ) { + var o10 = n10.value; + o10.node == e21 && e21.childNodes[o10.offset] == t10 && (o10.pos = this.text.length); + } + } catch (e23) { + r10.e(e23); + } finally { + r10.f(); + } + } }, { key: "findPointInside", value: function(e21, t10) { + var n10, r10 = bo(this.points); + try { + for (r10.s(); !(n10 = r10.n()).done; ) { + var o10 = n10.value; + (3 == e21.nodeType ? o10.node == e21 : e21.contains(o10.node)) && (o10.pos = this.text.length + (EJ(e21, o10.node, o10.offset) ? t10 : 0)); + } + } catch (e23) { + r10.e(e23); + } finally { + r10.f(); + } + } }]), e20; + }(); + function EJ(e20, t10, n10) { + for (; ; ) { + if (!t10 || n10 < tH(t10)) + return false; + if (t10 == e20) + return true; + n10 = ZV(t10) + 1, t10 = t10.parentNode; + } + } + function AJ(e20) { + return 1 == e20.nodeType && /^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(e20.nodeName); + } + var PJ = Do(function e5(t10, n10) { + No(this, e5), this.node = t10, this.offset = n10, this.pos = -1; + }); + var TJ = Do(function e6(t10, n10, r10, o10) { + No(this, e6), this.typeOver = o10, this.bounds = null, this.text = ""; + var i10 = t10.docView, a10 = i10.impreciseHead, s10 = i10.impreciseAnchor; + if (t10.state.readOnly && n10 > -1) + this.newSel = null; + else if (n10 > -1 && (this.bounds = t10.docView.domBoundsAround(n10, r10, 0))) { + var c10 = a10 || s10 ? [] : function(e20) { + var t11 = []; + if (e20.root.activeElement != e20.contentDOM) + return t11; + var n11 = e20.observer.selectionRange, r11 = n11.anchorNode, o11 = n11.anchorOffset, i11 = n11.focusNode, a11 = n11.focusOffset; + r11 && (t11.push(new PJ(r11, o11)), i11 == r11 && a11 == o11 || t11.push(new PJ(i11, a11))); + return t11; + }(t10), l10 = new MJ(c10, t10.state); + l10.readRange(this.bounds.startDOM, this.bounds.endDOM), this.text = l10.text, this.newSel = function(e20, t11) { + if (0 == e20.length) + return null; + var n11 = e20[0].pos, r11 = 2 == e20.length ? e20[1].pos : n11; + return n11 > -1 && r11 > -1 ? $F.single(n11 + t11, r11 + t11) : null; + }(c10, this.bounds.from); + } else { + var u10 = t10.observer.selectionRange, f10 = a10 && a10.node == u10.focusNode && a10.offset == u10.focusOffset || !GV(t10.contentDOM, u10.focusNode) ? t10.state.selection.main.head : t10.docView.posFromDOM(u10.focusNode, u10.focusOffset), d10 = s10 && s10.node == u10.anchorNode && s10.offset == u10.anchorOffset || !GV(t10.contentDOM, u10.anchorNode) ? t10.state.selection.main.anchor : t10.docView.posFromDOM(u10.anchorNode, u10.anchorOffset), h10 = t10.viewport; + if (AH.ios && t10.state.selection.main.empty && f10 != d10 && (h10.from > 0 || h10.to < t10.state.doc.length)) { + var v10 = h10.from - Math.min(f10, d10), p10 = h10.to - Math.max(f10, d10); + 0 != v10 && 1 != v10 || 0 != p10 && -1 != p10 || (f10 = 0, d10 = t10.state.doc.length); + } + this.newSel = $F.single(d10, f10); + } + }); + function RJ(e20, t10) { + var n10, r10 = t10.newSel, o10 = e20.state.selection.main, i10 = e20.inputState.lastKeyTime > Date.now() - 100 ? e20.inputState.lastKeyCode : -1; + if (t10.bounds) { + var a10 = t10.bounds, s10 = a10.from, c10 = a10.to, l10 = o10.from, u10 = null; + (8 === i10 || AH.android && t10.text.length < c10 - s10) && (l10 = o10.to, u10 = "end"); + var f10 = function(e21, t11, n11, r11) { + var o11 = Math.min(e21.length, t11.length), i11 = 0; + for (; i11 < o11 && e21.charCodeAt(i11) == t11.charCodeAt(i11); ) + i11++; + if (i11 == o11 && e21.length == t11.length) + return null; + var a11 = e21.length, s11 = t11.length; + for (; a11 > 0 && s11 > 0 && e21.charCodeAt(a11 - 1) == t11.charCodeAt(s11 - 1); ) + a11--, s11--; + if ("end" == r11) { + n11 -= a11 + Math.max(0, i11 - Math.min(a11, s11)) - i11; + } + if (a11 < i11 && e21.length < t11.length) { + s11 = (i11 -= n11 <= i11 && n11 >= a11 ? i11 - n11 : 0) + (s11 - a11), a11 = i11; + } else if (s11 < i11) { + a11 = (i11 -= n11 <= i11 && n11 >= s11 ? i11 - n11 : 0) + (a11 - s11), s11 = i11; + } + return { from: i11, toA: a11, toB: s11 }; + }(e20.state.doc.sliceString(s10, c10, OJ), t10.text, l10 - s10, u10); + f10 && (AH.chrome && 13 == i10 && f10.toB == f10.from + 2 && t10.text.slice(f10.from, f10.toB) == OJ + OJ && f10.toB--, n10 = { from: s10 + f10.from, to: s10 + f10.toA, insert: UL.of(t10.text.slice(f10.from, f10.toB).split(OJ)) }); + } else + r10 && (!e20.hasFocus && e20.state.facet(zW) || r10.main.eq(o10)) && (r10 = null); + if (!n10 && !r10) + return false; + if (!n10 && t10.typeOver && !o10.empty && r10 && r10.main.empty ? n10 = { from: o10.from, to: o10.to, insert: e20.state.doc.slice(o10.from, o10.to) } : n10 && n10.from >= o10.from && n10.to <= o10.to && (n10.from != o10.from || n10.to != o10.to) && o10.to - o10.from - (n10.to - n10.from) <= 4 ? n10 = { from: o10.from, to: o10.to, insert: e20.state.doc.slice(o10.from, n10.from).append(n10.insert).append(e20.state.doc.slice(n10.to, o10.to)) } : (AH.mac || AH.android) && n10 && n10.from == n10.to && n10.from == o10.head - 1 && /^\. ?$/.test(n10.insert.toString()) && "off" == e20.contentDOM.getAttribute("autocorrect") ? (r10 && 2 == n10.insert.length && (r10 = $F.single(r10.main.anchor - 1, r10.main.head - 1)), n10 = { from: o10.from, to: o10.to, insert: UL.of([" "]) }) : AH.chrome && n10 && n10.from == n10.to && n10.from == o10.head && "\n " == n10.insert.toString() && e20.lineWrapping && (r10 && (r10 = $F.single(r10.main.anchor - 1, r10.main.head - 1)), n10 = { from: o10.from, to: o10.to, insert: UL.of([" "]) }), n10) { + if (AH.ios && e20.inputState.flushIOSKey()) + return true; + if (AH.android && (n10.from == o10.from && n10.to == o10.to && 1 == n10.insert.length && 2 == n10.insert.lines && uH(e20.contentDOM, "Enter", 13) || (n10.from == o10.from - 1 && n10.to == o10.to && 0 == n10.insert.length || 8 == i10 && n10.insert.length < n10.to - n10.from && n10.to > o10.head) && uH(e20.contentDOM, "Backspace", 8) || n10.from == o10.from && n10.to == o10.to + 1 && 0 == n10.insert.length && uH(e20.contentDOM, "Delete", 46))) + return true; + var d10, h10 = n10.insert.toString(); + e20.inputState.composing >= 0 && e20.inputState.composing++; + var v10 = function() { + return d10 || (d10 = function(e21, t11, n11) { + var r11, o11 = e21.state, i11 = o11.selection.main; + if (t11.from >= i11.from && t11.to <= i11.to && t11.to - t11.from >= (i11.to - i11.from) / 3 && (!n11 || n11.main.empty && n11.main.from == t11.from + t11.insert.length) && e21.inputState.composing < 0) { + var a11 = i11.from < t11.from ? o11.sliceDoc(i11.from, t11.from) : "", s11 = i11.to > t11.to ? o11.sliceDoc(t11.to, i11.to) : ""; + r11 = o11.replaceSelection(e21.state.toText(a11 + t11.insert.sliceString(0, void 0, e21.state.lineBreak) + s11)); + } else { + var c11 = o11.changes(t11), l11 = n11 && n11.main.to <= c11.newLength ? n11.main : void 0; + if (o11.selection.ranges.length > 1 && e21.inputState.composing >= 0 && t11.to <= i11.to && t11.to >= i11.to - 10) { + var u11, f11 = e21.state.sliceDoc(t11.from, t11.to), d11 = n11 && oU(e21, n11.main.head); + if (d11) { + var h11 = t11.insert.length - (t11.to - t11.from); + u11 = { from: d11.from, to: d11.to - h11 }; + } else + u11 = e21.state.doc.lineAt(i11.head); + var v11 = i11.to - t11.to, p11 = i11.to - i11.from; + r11 = o11.changeByRange(function(n12) { + if (n12.from == i11.from && n12.to == i11.to) + return { changes: c11, range: l11 || n12.map(c11) }; + var r12 = n12.to - v11, a12 = r12 - f11.length; + if (n12.to - n12.from != p11 || e21.state.sliceDoc(a12, r12) != f11 || n12.to >= u11.from && n12.from <= u11.to) + return { range: n12 }; + var s12 = o11.changes({ from: a12, to: r12, insert: t11.insert }), d12 = n12.to - i11.to; + return { changes: s12, range: l11 ? $F.range(Math.max(0, l11.anchor + d12), Math.max(0, l11.head + d12)) : n12.map(s12) }; + }); + } else + r11 = { changes: c11, selection: l11 && o11.selection.replaceRange(l11) }; + } + var m11 = "input.type"; + (e21.composing || e21.inputState.compositionPendingChange && e21.inputState.compositionEndedAt > Date.now() - 50) && (e21.inputState.compositionPendingChange = false, m11 += ".compose", e21.inputState.compositionFirstChange && (m11 += ".start", e21.inputState.compositionFirstChange = false)); + return o11.update(r11, { userEvent: m11, scrollIntoView: true }); + }(e20, n10, r10)); + }; + return e20.state.facet(PW).some(function(t11) { + return t11(e20, n10.from, n10.to, h10, v10); + }) || e20.dispatch(v10()), true; + } + if (r10 && !r10.main.eq(o10)) { + var p10 = false, m10 = "select"; + return e20.inputState.lastSelectionTime > Date.now() - 50 && ("select" == e20.inputState.lastSelectionOrigin && (p10 = true), m10 = e20.inputState.lastSelectionOrigin), e20.dispatch({ selection: r10, scrollIntoView: p10, userEvent: m10 }), true; + } + return false; + } + var NJ = { childList: true, characterData: true, subtree: true, attributes: true, characterDataOldValue: true }; + var IJ = AH.ie && AH.ie_version <= 11; + var DJ = function() { + function e20(t10) { + var n10 = this; + No(this, e20), this.view = t10, this.active = false, this.selectionRange = new aH(), this.selectionChanged = false, this.delayedFlush = -1, this.resizeTimeout = -1, this.queue = [], this.delayedAndroidKey = null, this.flushingAndroidKey = -1, this.lastChange = 0, this.scrollTargets = [], this.intersection = null, this.resizeScroll = null, this.intersecting = false, this.gapIntersection = null, this.gaps = [], this.parentCheck = -1, this.dom = t10.contentDOM, this.observer = new MutationObserver(function(e21) { + var r10, o10 = bo(e21); + try { + for (o10.s(); !(r10 = o10.n()).done; ) { + var i10 = r10.value; + n10.queue.push(i10); + } + } catch (e23) { + o10.e(e23); + } finally { + o10.f(); + } + (AH.ie && AH.ie_version <= 11 || AH.ios && t10.composing) && e21.some(function(e23) { + return "childList" == e23.type && e23.removedNodes.length || "characterData" == e23.type && e23.oldValue.length > e23.target.nodeValue.length; + }) ? n10.flushSoon() : n10.flush(); + }), IJ && (this.onCharData = function(e21) { + n10.queue.push({ target: e21.target, type: "characterData", oldValue: e21.prevValue }), n10.flushSoon(); + }), this.onSelectionChange = this.onSelectionChange.bind(this), this.onResize = this.onResize.bind(this), this.onPrint = this.onPrint.bind(this), this.onScroll = this.onScroll.bind(this), "function" == typeof ResizeObserver && (this.resizeScroll = new ResizeObserver(function() { + var e21; + (null === (e21 = n10.view.docView) || void 0 === e21 ? void 0 : e21.lastUpdate) < Date.now() - 75 && n10.onResize(); + }), this.resizeScroll.observe(t10.scrollDOM)), this.addWindowListeners(this.win = t10.win), this.start(), "function" == typeof IntersectionObserver && (this.intersection = new IntersectionObserver(function(e21) { + n10.parentCheck < 0 && (n10.parentCheck = setTimeout(n10.listenForScroll.bind(n10), 1e3)), e21.length > 0 && e21[e21.length - 1].intersectionRatio > 0 != n10.intersecting && (n10.intersecting = !n10.intersecting, n10.intersecting != n10.view.inView && n10.onScrollChanged(document.createEvent("Event"))); + }, { threshold: [0, 1e-3] }), this.intersection.observe(this.dom), this.gapIntersection = new IntersectionObserver(function(e21) { + e21.length > 0 && e21[e21.length - 1].intersectionRatio > 0 && n10.onScrollChanged(document.createEvent("Event")); + }, {})), this.listenForScroll(), this.readSelectionRange(); + } + return Do(e20, [{ key: "onScrollChanged", value: function(e21) { + this.view.inputState.runHandlers("scroll", e21), this.intersecting && this.view.measure(); + } }, { key: "onScroll", value: function(e21) { + this.intersecting && this.flush(false), this.onScrollChanged(e21); + } }, { key: "onResize", value: function() { + var e21 = this; + this.resizeTimeout < 0 && (this.resizeTimeout = setTimeout(function() { + e21.resizeTimeout = -1, e21.view.requestMeasure(); + }, 50)); + } }, { key: "onPrint", value: function() { + var e21 = this; + this.view.viewState.printing = true, this.view.measure(), setTimeout(function() { + e21.view.viewState.printing = false, e21.view.requestMeasure(); + }, 500); + } }, { key: "updateGaps", value: function(e21) { + if (this.gapIntersection && (e21.length != this.gaps.length || this.gaps.some(function(t11, n11) { + return t11 != e21[n11]; + }))) { + this.gapIntersection.disconnect(); + var t10, n10 = bo(e21); + try { + for (n10.s(); !(t10 = n10.n()).done; ) { + var r10 = t10.value; + this.gapIntersection.observe(r10); + } + } catch (e23) { + n10.e(e23); + } finally { + n10.f(); + } + this.gaps = e21; + } + } }, { key: "onSelectionChange", value: function(e21) { + var t10 = this.selectionChanged; + if (this.readSelectionRange() && !this.delayedAndroidKey) { + var n10 = this.view, r10 = this.selectionRange; + if (n10.state.facet(zW) ? n10.root.activeElement == this.dom : QV(n10.dom, r10)) { + var o10 = r10.anchorNode && n10.docView.nearest(r10.anchorNode); + o10 && o10.ignoreEvent(e21) ? t10 || (this.selectionChanged = false) : (AH.ie && AH.ie_version <= 11 || AH.android && AH.chrome) && !n10.state.selection.main.empty && r10.focusNode && XV(r10.focusNode, r10.focusOffset, r10.anchorNode, r10.anchorOffset) ? this.flushSoon() : this.flush(false); + } + } + } }, { key: "readSelectionRange", value: function() { + var e21 = this.view, t10 = AH.safari && 11 == e21.root.nodeType && function(e23) { + for (var t11 = e23.activeElement; t11 && t11.shadowRoot; ) + t11 = t11.shadowRoot.activeElement; + return t11; + }(this.dom.ownerDocument) == this.dom && function(e23) { + var t11 = null; + function n11(e24) { + e24.preventDefault(), e24.stopImmediatePropagation(), t11 = e24.getTargetRanges()[0]; + } + if (e23.contentDOM.addEventListener("beforeinput", n11, true), e23.dom.ownerDocument.execCommand("indent"), e23.contentDOM.removeEventListener("beforeinput", n11, true), !t11) + return null; + var r10 = t11.startContainer, o10 = t11.startOffset, i10 = t11.endContainer, a10 = t11.endOffset, s10 = e23.docView.domAtPos(e23.state.selection.main.anchor); + if (XV(s10.node, s10.offset, i10, a10)) { + var c10 = [i10, a10, r10, o10]; + r10 = c10[0], o10 = c10[1], i10 = c10[2], a10 = c10[3]; + } + return { anchorNode: r10, anchorOffset: o10, focusNode: i10, focusOffset: a10 }; + }(this.view) || KV(e21.root); + if (!t10 || this.selectionRange.eq(t10)) + return false; + var n10 = QV(this.dom, t10); + return n10 && !this.selectionChanged && e21.inputState.lastFocusTime > Date.now() - 200 && e21.inputState.lastTouchTime < Date.now() - 300 && function(e23, t11) { + var n11 = t11.focusNode, r10 = t11.focusOffset; + if (!n11 || t11.anchorNode != n11 || t11.anchorOffset != r10) + return false; + for (r10 = Math.min(r10, tH(n11)); ; ) + if (r10) { + if (1 != n11.nodeType) + return false; + var o10 = n11.childNodes[r10 - 1]; + "false" == o10.contentEditable ? r10-- : r10 = tH(n11 = o10); + } else { + if (n11 == e23) + return true; + r10 = ZV(n11), n11 = n11.parentNode; + } + }(this.dom, t10) ? (this.view.inputState.lastFocusTime = 0, e21.docView.updateSelection(), false) : (this.selectionRange.setRange(t10), n10 && (this.selectionChanged = true), true); + } }, { key: "setSelectionRange", value: function(e21, t10) { + this.selectionRange.set(e21.node, e21.offset, t10.node, t10.offset), this.selectionChanged = false; + } }, { key: "clearSelectionRange", value: function() { + this.selectionRange.set(null, 0, null, 0); + } }, { key: "listenForScroll", value: function() { + this.parentCheck = -1; + for (var e21 = 0, t10 = null, n10 = this.dom; n10; ) + if (1 == n10.nodeType) + !t10 && e21 < this.scrollTargets.length && this.scrollTargets[e21] == n10 ? e21++ : t10 || (t10 = this.scrollTargets.slice(0, e21)), t10 && t10.push(n10), n10 = n10.assignedSlot || n10.parentNode; + else { + if (11 != n10.nodeType) + break; + n10 = n10.host; + } + if (e21 < this.scrollTargets.length && !t10 && (t10 = this.scrollTargets.slice(0, e21)), t10) { + var r10, o10 = bo(this.scrollTargets); + try { + for (o10.s(); !(r10 = o10.n()).done; ) { + r10.value.removeEventListener("scroll", this.onScroll); + } + } catch (e23) { + o10.e(e23); + } finally { + o10.f(); + } + var i10, a10 = bo(this.scrollTargets = t10); + try { + for (a10.s(); !(i10 = a10.n()).done; ) { + i10.value.addEventListener("scroll", this.onScroll); + } + } catch (e23) { + a10.e(e23); + } finally { + a10.f(); + } + } + } }, { key: "ignore", value: function(e21) { + if (!this.active) + return e21(); + try { + return this.stop(), e21(); + } finally { + this.start(), this.clear(); + } + } }, { key: "start", value: function() { + this.active || (this.observer.observe(this.dom, NJ), IJ && this.dom.addEventListener("DOMCharacterDataModified", this.onCharData), this.active = true); + } }, { key: "stop", value: function() { + this.active && (this.active = false, this.observer.disconnect(), IJ && this.dom.removeEventListener("DOMCharacterDataModified", this.onCharData)); + } }, { key: "clear", value: function() { + this.processRecords(), this.queue.length = 0, this.selectionChanged = false; + } }, { key: "delayAndroidKey", value: function(e21, t10) { + var n10, r10 = this; + if (!this.delayedAndroidKey) { + this.flushingAndroidKey = this.view.win.requestAnimationFrame(function() { + var e23 = r10.delayedAndroidKey; + e23 && (r10.clearDelayedAndroidKey(), r10.view.inputState.lastKeyCode = e23.keyCode, r10.view.inputState.lastKeyTime = Date.now(), !r10.flush() && e23.force && uH(r10.dom, e23.key, e23.keyCode)); + }); + } + this.delayedAndroidKey && "Enter" != e21 || (this.delayedAndroidKey = { key: e21, keyCode: t10, force: this.lastChange < Date.now() - 50 || !!(null === (n10 = this.delayedAndroidKey) || void 0 === n10 ? void 0 : n10.force) }); + } }, { key: "clearDelayedAndroidKey", value: function() { + this.win.cancelAnimationFrame(this.flushingAndroidKey), this.delayedAndroidKey = null, this.flushingAndroidKey = -1; + } }, { key: "flushSoon", value: function() { + var e21 = this; + this.delayedFlush < 0 && (this.delayedFlush = this.view.win.requestAnimationFrame(function() { + e21.delayedFlush = -1, e21.flush(); + })); + } }, { key: "forceFlush", value: function() { + this.delayedFlush >= 0 && (this.view.win.cancelAnimationFrame(this.delayedFlush), this.delayedFlush = -1), this.flush(); + } }, { key: "pendingRecords", value: function() { + var e21, t10 = bo(this.observer.takeRecords()); + try { + for (t10.s(); !(e21 = t10.n()).done; ) { + var n10 = e21.value; + this.queue.push(n10); + } + } catch (e23) { + t10.e(e23); + } finally { + t10.f(); + } + return this.queue; + } }, { key: "processRecords", value: function() { + var e21 = this.pendingRecords(); + e21.length && (this.queue = []); + var t10, n10 = -1, r10 = -1, o10 = false, i10 = bo(e21); + try { + for (i10.s(); !(t10 = i10.n()).done; ) { + var a10 = t10.value, s10 = this.readMutation(a10); + s10 && (s10.typeOver && (o10 = true), -1 == n10 ? (n10 = s10.from, r10 = s10.to) : (n10 = Math.min(s10.from, n10), r10 = Math.max(s10.to, r10))); + } + } catch (e23) { + i10.e(e23); + } finally { + i10.f(); + } + return { from: n10, to: r10, typeOver: o10 }; + } }, { key: "readChange", value: function() { + var e21 = this.processRecords(), t10 = e21.from, n10 = e21.to, r10 = e21.typeOver, o10 = this.selectionChanged && QV(this.dom, this.selectionRange); + if (t10 < 0 && !o10) + return null; + t10 > -1 && (this.lastChange = Date.now()), this.view.inputState.lastFocusTime = 0, this.selectionChanged = false; + var i10 = new TJ(this.view, t10, n10, r10); + return this.view.docView.domChanged = { newSel: i10.newSel ? i10.newSel.main : null }, i10; + } }, { key: "flush", value: function() { + var e21 = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0]; + if (this.delayedFlush >= 0 || this.delayedAndroidKey) + return false; + e21 && this.readSelectionRange(); + var t10 = this.readChange(); + if (!t10) + return this.view.requestMeasure(), false; + var n10 = this.view.state, r10 = RJ(this.view, t10); + return this.view.state == n10 && this.view.update([]), r10; + } }, { key: "readMutation", value: function(e21) { + var t10 = this.view.docView.nearest(e21.target); + if (!t10 || t10.ignoreMutation(e21)) + return null; + if (t10.markDirty("attributes" == e21.type), "attributes" == e21.type && (t10.flags |= 4), "childList" == e21.type) { + var n10 = qJ(t10, e21.previousSibling || e21.target.previousSibling, -1), r10 = qJ(t10, e21.nextSibling || e21.target.nextSibling, 1); + return { from: n10 ? t10.posAfter(n10) : t10.posAtStart, to: r10 ? t10.posBefore(r10) : t10.posAtEnd, typeOver: false }; + } + return "characterData" == e21.type ? { from: t10.posAtStart, to: t10.posAtEnd, typeOver: e21.target.nodeValue == e21.oldValue } : null; + } }, { key: "setWindow", value: function(e21) { + e21 != this.win && (this.removeWindowListeners(this.win), this.win = e21, this.addWindowListeners(this.win)); + } }, { key: "addWindowListeners", value: function(e21) { + e21.addEventListener("resize", this.onResize), e21.addEventListener("beforeprint", this.onPrint), e21.addEventListener("scroll", this.onScroll), e21.document.addEventListener("selectionchange", this.onSelectionChange); + } }, { key: "removeWindowListeners", value: function(e21) { + e21.removeEventListener("scroll", this.onScroll), e21.removeEventListener("resize", this.onResize), e21.removeEventListener("beforeprint", this.onPrint), e21.document.removeEventListener("selectionchange", this.onSelectionChange); + } }, { key: "destroy", value: function() { + var e21, t10, n10; + this.stop(), null === (e21 = this.intersection) || void 0 === e21 || e21.disconnect(), null === (t10 = this.gapIntersection) || void 0 === t10 || t10.disconnect(), null === (n10 = this.resizeScroll) || void 0 === n10 || n10.disconnect(); + var r10, o10 = bo(this.scrollTargets); + try { + for (o10.s(); !(r10 = o10.n()).done; ) { + r10.value.removeEventListener("scroll", this.onScroll); + } + } catch (e23) { + o10.e(e23); + } finally { + o10.f(); + } + this.removeWindowListeners(this.win), clearTimeout(this.parentCheck), clearTimeout(this.resizeTimeout), this.win.cancelAnimationFrame(this.delayedFlush), this.win.cancelAnimationFrame(this.flushingAndroidKey); + } }]), e20; + }(); + function qJ(e20, t10, n10) { + for (; t10; ) { + var r10 = pH.get(t10); + if (r10 && r10.parent == e20) + return r10; + var o10 = t10.parentNode; + t10 = o10 != e20.dom ? o10 : n10 > 0 ? t10.nextSibling : t10.previousSibling; + } + return null; + } + var zJ = function() { + function e20() { + var t10 = this, n10 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + No(this, e20), this.plugins = [], this.pluginMap = /* @__PURE__ */ new Map(), this.editorAttrs = {}, this.contentAttrs = {}, this.bidiCache = [], this.destroyed = false, this.updateState = 2, this.measureScheduled = -1, this.measureRequests = [], this.contentDOM = document.createElement("div"), this.scrollDOM = document.createElement("div"), this.scrollDOM.tabIndex = -1, this.scrollDOM.className = "cm-scroller", this.scrollDOM.appendChild(this.contentDOM), this.announceDOM = document.createElement("div"), this.announceDOM.className = "cm-announced", this.announceDOM.setAttribute("aria-live", "polite"), this.dom = document.createElement("div"), this.dom.appendChild(this.announceDOM), this.dom.appendChild(this.scrollDOM), n10.parent && n10.parent.appendChild(this.dom); + var r10 = n10.dispatch; + this.dispatchTransactions = n10.dispatchTransactions || r10 && function(e21) { + return e21.forEach(function(e23) { + return r10(e23, t10); + }); + } || function(e21) { + return t10.update(e21); + }, this.dispatch = this.dispatch.bind(this), this._root = n10.root || function(e21) { + for (; e21; ) { + if (e21 && (9 == e21.nodeType || 11 == e21.nodeType && e21.host)) + return e21; + e21 = e21.assignedSlot || e21.parentNode; + } + return null; + }(n10.parent) || document, this.viewState = new dJ(n10.state || mV.create(n10)), n10.scrollTo && n10.scrollTo.is(DW) && (this.viewState.scrollTarget = n10.scrollTo.value.clip(this.viewState.state)), this.plugins = this.state.facet(LW).map(function(e21) { + return new VW(e21); + }); + var o10, i10 = bo(this.plugins); + try { + for (i10.s(); !(o10 = i10.n()).done; ) { + o10.value.update(this); + } + } catch (e21) { + i10.e(e21); + } finally { + i10.f(); + } + this.observer = new DJ(this), this.inputState = new kU(this), this.inputState.ensureHandlers(this.plugins), this.docView = new nU(this), this.mountStyles(), this.updateAttrs(), this.updateState = 0, this.requestMeasure(); + } + return Do(e20, [{ key: "state", get: function() { + return this.viewState.state; + } }, { key: "viewport", get: function() { + return this.viewState.viewport; + } }, { key: "visibleRanges", get: function() { + return this.viewState.visibleRanges; + } }, { key: "inView", get: function() { + return this.viewState.inView; + } }, { key: "composing", get: function() { + return this.inputState.composing > 0; + } }, { key: "compositionStarted", get: function() { + return this.inputState.composing >= 0; + } }, { key: "root", get: function() { + return this._root; + } }, { key: "win", get: function() { + return this.dom.ownerDocument.defaultView || window; + } }, { key: "dispatch", value: function() { + for (var e21, t10 = arguments.length, n10 = new Array(t10), r10 = 0; r10 < t10; r10++) + n10[r10] = arguments[r10]; + var o10 = 1 == n10.length && n10[0] instanceof iV ? n10 : 1 == n10.length && Array.isArray(n10[0]) ? n10[0] : [(e21 = this.state).update.apply(e21, n10)]; + this.dispatchTransactions(o10, this); + } }, { key: "update", value: function(e21) { + var t10 = this; + if (0 != this.updateState) + throw new Error("Calls to EditorView.update are not allowed while an update is in progress"); + var n10, r10, o10 = false, i10 = false, a10 = this.state, s10 = bo(e21); + try { + for (s10.s(); !(r10 = s10.n()).done; ) { + var c10 = r10.value; + if (c10.startState != a10) + throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state."); + a10 = c10.state; + } + } catch (e23) { + s10.e(e23); + } finally { + s10.f(); + } + if (this.destroyed) + this.viewState.state = a10; + else { + var l10 = this.hasFocus, u10 = 0, f10 = null; + e21.some(function(e23) { + return e23.annotation(HU); + }) ? (this.inputState.notifiedFocused = l10, u10 = 1) : l10 != this.inputState.notifiedFocused && (this.inputState.notifiedFocused = l10, (f10 = WU(a10, l10)) || (u10 = 1)); + var d10 = this.observer.delayedAndroidKey, h10 = null; + if (d10 ? (this.observer.clearDelayedAndroidKey(), ((h10 = this.observer.readChange()) && !this.state.doc.eq(a10.doc) || !this.state.selection.eq(a10.selection)) && (h10 = null)) : this.observer.clear(), a10.facet(mV.phrases) != this.state.facet(mV.phrases)) + return this.setState(a10); + n10 = tU.create(this, a10, e21), n10.flags |= u10; + var v10 = this.viewState.scrollTarget; + try { + this.updateState = 2; + var p10, m10 = bo(e21); + try { + for (m10.s(); !(p10 = m10.n()).done; ) { + var g10 = p10.value; + if (v10 && (v10 = v10.map(g10.changes)), g10.scrollIntoView) { + var y10 = g10.state.selection.main; + v10 = new IW(y10.empty ? y10 : $F.cursor(y10.head, y10.head > y10.anchor ? -1 : 1)); + } + var b10, k10 = bo(g10.effects); + try { + for (k10.s(); !(b10 = k10.n()).done; ) { + var w10 = b10.value; + w10.is(DW) && (v10 = w10.value.clip(this.state)); + } + } catch (e23) { + k10.e(e23); + } finally { + k10.f(); + } + } + } catch (e23) { + m10.e(e23); + } finally { + m10.f(); + } + this.viewState.update(n10, v10), this.bidiCache = FJ.update(this.bidiCache, n10.changes), n10.empty || (this.updatePlugins(n10), this.inputState.update(n10)), o10 = this.docView.update(n10), this.state.facet(ZW) != this.styleModules && this.mountStyles(), i10 = this.updateAttrs(), this.showAnnouncements(e21), this.docView.updateSelection(o10, e21.some(function(e23) { + return e23.isUserEvent("select.pointer"); + })); + } finally { + this.updateState = 0; + } + if (n10.startState.facet(kJ) != n10.state.facet(kJ) && (this.viewState.mustMeasureContent = true), (o10 || i10 || v10 || this.viewState.mustEnforceCursorAssoc || this.viewState.mustMeasureContent) && this.requestMeasure(), !n10.empty) { + var x10, j10 = bo(this.state.facet(AW)); + try { + for (j10.s(); !(x10 = j10.n()).done; ) { + var S10 = x10.value; + try { + S10(n10); + } catch (w11) { + qW(this.state, w11, "update listener"); + } + } + } catch (e23) { + j10.e(e23); + } finally { + j10.f(); + } + } + (f10 || h10) && Promise.resolve().then(function() { + f10 && t10.state == f10.startState && t10.dispatch(f10), h10 && !RJ(t10, h10) && d10.force && uH(t10.contentDOM, d10.key, d10.keyCode); + }); + } + } }, { key: "setState", value: function(e21) { + if (0 != this.updateState) + throw new Error("Calls to EditorView.setState are not allowed while an update is in progress"); + if (this.destroyed) + this.viewState.state = e21; + else { + this.updateState = 2; + var t10 = this.hasFocus; + try { + var n10, r10 = bo(this.plugins); + try { + for (r10.s(); !(n10 = r10.n()).done; ) { + n10.value.destroy(this); + } + } catch (e23) { + r10.e(e23); + } finally { + r10.f(); + } + this.viewState = new dJ(e21), this.plugins = e21.facet(LW).map(function(e23) { + return new VW(e23); + }), this.pluginMap.clear(); + var o10, i10 = bo(this.plugins); + try { + for (i10.s(); !(o10 = i10.n()).done; ) { + o10.value.update(this); + } + } catch (e23) { + i10.e(e23); + } finally { + i10.f(); + } + this.docView.destroy(), this.docView = new nU(this), this.inputState.ensureHandlers(this.plugins), this.mountStyles(), this.updateAttrs(), this.bidiCache = []; + } finally { + this.updateState = 0; + } + t10 && this.focus(), this.requestMeasure(); + } + } }, { key: "updatePlugins", value: function(e21) { + var t10 = e21.startState.facet(LW), n10 = e21.state.facet(LW); + if (t10 != n10) { + var r10, o10 = [], i10 = bo(n10); + try { + for (i10.s(); !(r10 = i10.n()).done; ) { + var a10 = r10.value, s10 = t10.indexOf(a10); + if (s10 < 0) + o10.push(new VW(a10)); + else { + var c10 = this.plugins[s10]; + c10.mustUpdate = e21, o10.push(c10); + } + } + } catch (e23) { + i10.e(e23); + } finally { + i10.f(); + } + var l10, u10 = bo(this.plugins); + try { + for (u10.s(); !(l10 = u10.n()).done; ) { + var f10 = l10.value; + f10.mustUpdate != e21 && f10.destroy(this); + } + } catch (e23) { + u10.e(e23); + } finally { + u10.f(); + } + this.plugins = o10, this.pluginMap.clear(); + } else { + var d10, h10 = bo(this.plugins); + try { + for (h10.s(); !(d10 = h10.n()).done; ) { + d10.value.mustUpdate = e21; + } + } catch (e23) { + h10.e(e23); + } finally { + h10.f(); + } + } + for (var v10 = 0; v10 < this.plugins.length; v10++) + this.plugins[v10].update(this); + t10 != n10 && this.inputState.ensureHandlers(this.plugins); + } }, { key: "measure", value: function() { + var e21 = this, t10 = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0]; + if (!this.destroyed) { + if (this.measureScheduled > -1 && this.win.cancelAnimationFrame(this.measureScheduled), this.observer.delayedAndroidKey) + return this.measureScheduled = -1, void this.requestMeasure(); + this.measureScheduled = 0, t10 && this.observer.forceFlush(); + var n10 = null, r10 = this.scrollDOM, o10 = r10.scrollTop * this.scaleY, i10 = this.viewState, a10 = i10.scrollAnchorPos, s10 = i10.scrollAnchorHeight; + Math.abs(o10 - this.viewState.scrollTop) > 1 && (s10 = -1), this.viewState.scrollAnchorHeight = -1; + try { + for (var c10 = 0; ; c10++) { + if (s10 < 0) + if (dH(r10)) + a10 = -1, s10 = this.viewState.heightMap.height; + else { + var l10 = this.viewState.scrollAnchorAt(o10); + a10 = l10.from, s10 = l10.top; + } + this.updateState = 1; + var u10 = this.viewState.measure(this); + if (!u10 && !this.measureRequests.length && null == this.viewState.scrollTarget) + break; + if (c10 > 5) { + console.warn(this.measureRequests.length ? "Measure loop restarted more than 5 times" : "Viewport failed to stabilize"); + break; + } + var f10 = []; + if (!(4 & u10)) { + var d10 = [f10, this.measureRequests]; + this.measureRequests = d10[0], f10 = d10[1]; + } + var h10 = f10.map(function(t11) { + try { + return t11.read(e21); + } catch (t12) { + return qW(e21.state, t12), LJ; + } + }), v10 = tU.create(this, this.state, []), p10 = false; + v10.flags |= u10, n10 ? n10.flags |= u10 : n10 = v10, this.updateState = 2, v10.empty || (this.updatePlugins(v10), this.inputState.update(v10), this.updateAttrs(), p10 = this.docView.update(v10)); + for (var m10 = 0; m10 < f10.length; m10++) + if (h10[m10] != LJ) + try { + var g10 = f10[m10]; + g10.write && g10.write(h10[m10], this); + } catch (e23) { + qW(this.state, e23); + } + if (p10 && this.docView.updateSelection(true), !v10.viewportChanged && 0 == this.measureRequests.length) { + if (this.viewState.editorHeight) { + if (this.viewState.scrollTarget) { + this.docView.scrollIntoView(this.viewState.scrollTarget), this.viewState.scrollTarget = null, s10 = -1; + continue; + } + var y10 = (a10 < 0 ? this.viewState.heightMap.height : this.viewState.lineBlockAt(a10).top) - s10; + if (y10 > 1 || y10 < -1) { + o10 += y10, r10.scrollTop = o10 / this.scaleY, s10 = -1; + continue; + } + } + break; + } + } + } finally { + this.updateState = 0, this.measureScheduled = -1; + } + if (n10 && !n10.empty) { + var b10, k10 = bo(this.state.facet(AW)); + try { + for (k10.s(); !(b10 = k10.n()).done; ) { + (0, b10.value)(n10); + } + } catch (e23) { + k10.e(e23); + } finally { + k10.f(); + } + } + } + } }, { key: "themeClasses", get: function() { + return xJ + " " + (this.state.facet(wJ) ? SJ : jJ) + " " + this.state.facet(kJ); + } }, { key: "updateAttrs", value: function() { + var e21 = this, t10 = VJ(this, HW, { class: "cm-editor" + (this.hasFocus ? " cm-focused " : " ") + this.themeClasses }), n10 = { spellcheck: "false", autocorrect: "off", autocapitalize: "off", translate: "no", contenteditable: this.state.facet(zW) ? "true" : "false", class: "cm-content", style: "".concat(AH.tabSize, ": ").concat(this.state.tabSize), role: "textbox", "aria-multiline": "true" }; + this.state.readOnly && (n10["aria-readonly"] = "true"), VJ(this, WW, n10); + var r10 = this.observer.ignore(function() { + var r11 = FH(e21.contentDOM, e21.contentAttrs, n10), o10 = FH(e21.dom, e21.editorAttrs, t10); + return r11 || o10; + }); + return this.editorAttrs = t10, this.contentAttrs = n10, r10; + } }, { key: "showAnnouncements", value: function(t10) { + var n10, r10 = true, o10 = bo(t10); + try { + for (o10.s(); !(n10 = o10.n()).done; ) { + var i10, a10 = bo(n10.value.effects); + try { + for (a10.s(); !(i10 = a10.n()).done; ) { + var s10 = i10.value; + if (s10.is(e20.announce)) + r10 && (this.announceDOM.textContent = ""), r10 = false, this.announceDOM.appendChild(document.createElement("div")).textContent = s10.value; + } + } catch (e21) { + a10.e(e21); + } finally { + a10.f(); + } + } + } catch (e21) { + o10.e(e21); + } finally { + o10.f(); + } + } }, { key: "mountStyles", value: function() { + this.styleModules = this.state.facet(ZW); + var t10 = this.state.facet(e20.cspNonce); + zV.mount(this.root, this.styleModules.concat(_J).reverse(), t10 ? { nonce: t10 } : void 0); + } }, { key: "readMeasured", value: function() { + if (2 == this.updateState) + throw new Error("Reading the editor layout isn't allowed during an update"); + 0 == this.updateState && this.measureScheduled > -1 && this.measure(false); + } }, { key: "requestMeasure", value: function(e21) { + var t10 = this; + if (this.measureScheduled < 0 && (this.measureScheduled = this.win.requestAnimationFrame(function() { + return t10.measure(); + })), e21) { + if (this.measureRequests.indexOf(e21) > -1) + return; + if (null != e21.key) { + for (var n10 = 0; n10 < this.measureRequests.length; n10++) + if (this.measureRequests[n10].key === e21.key) + return void (this.measureRequests[n10] = e21); + } + this.measureRequests.push(e21); + } + } }, { key: "plugin", value: function(e21) { + var t10 = this.pluginMap.get(e21); + return (void 0 === t10 || t10 && t10.spec != e21) && this.pluginMap.set(e21, t10 = this.plugins.find(function(t11) { + return t11.spec == e21; + }) || null), t10 && t10.update(this).value; + } }, { key: "documentTop", get: function() { + return this.contentDOM.getBoundingClientRect().top + this.viewState.paddingTop; + } }, { key: "documentPadding", get: function() { + return { top: this.viewState.paddingTop, bottom: this.viewState.paddingBottom }; + } }, { key: "scaleX", get: function() { + return this.viewState.scaleX; + } }, { key: "scaleY", get: function() { + return this.viewState.scaleY; + } }, { key: "elementAtHeight", value: function(e21) { + return this.readMeasured(), this.viewState.elementAtHeight(e21); + } }, { key: "lineBlockAtHeight", value: function(e21) { + return this.readMeasured(), this.viewState.lineBlockAtHeight(e21); + } }, { key: "viewportLineBlocks", get: function() { + return this.viewState.viewportLines; + } }, { key: "lineBlockAt", value: function(e21) { + return this.viewState.lineBlockAt(e21); + } }, { key: "contentHeight", get: function() { + return this.viewState.contentHeight; + } }, { key: "moveByChar", value: function(e21, t10, n10) { + return bU(this, e21, gU(this, e21, t10, n10)); + } }, { key: "moveByGroup", value: function(e21, t10) { + var n10 = this; + return bU(this, e21, gU(this, e21, t10, function(t11) { + return function(e23, t12, n11) { + var r10 = e23.state.charCategorizer(t12), o10 = r10(n11); + return function(e24) { + var t13 = r10(e24); + return o10 == hV.Space && (o10 = t13), o10 == t13; + }; + }(n10, e21.head, t11); + })); + } }, { key: "visualLineSide", value: function(e21, t10) { + var n10 = this.bidiSpans(e21), r10 = this.textDirectionAt(e21.from), o10 = n10[t10 ? n10.length - 1 : 0]; + return $F.cursor(o10.side(t10, r10) + e21.from, o10.forward(!t10, r10) ? 1 : -1); + } }, { key: "moveToLineBoundary", value: function(e21, t10) { + return function(e23, t11, n10, r10) { + var o10 = mU(e23, t11.head), i10 = r10 && o10.type == JH.Text && (e23.lineWrapping || o10.widgetLineBreaks) ? e23.coordsAtPos(t11.assoc < 0 && t11.head > o10.from ? t11.head - 1 : t11.head) : null; + if (i10) { + var a10 = e23.dom.getBoundingClientRect(), s10 = e23.textDirectionAt(o10.from), c10 = e23.posAtCoords({ x: n10 == (s10 == rW.LTR) ? a10.right - 1 : a10.left + 1, y: (i10.top + i10.bottom) / 2 }); + if (null != c10) + return $F.cursor(c10, n10 ? -1 : 1); + } + return $F.cursor(n10 ? o10.to : o10.from, n10 ? -1 : 1); + }(this, e21, t10, !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]); + } }, { key: "moveVertically", value: function(e21, t10, n10) { + return bU(this, e21, function(e23, t11, n11, r10) { + var o10 = t11.head, i10 = n11 ? 1 : -1; + if (o10 == (n11 ? e23.state.doc.length : 0)) + return $F.cursor(o10, t11.assoc); + var a10, s10 = t11.goalColumn, c10 = e23.contentDOM.getBoundingClientRect(), l10 = e23.coordsAtPos(o10, t11.assoc || -1), u10 = e23.documentTop; + if (l10) + null == s10 && (s10 = l10.left - c10.left), a10 = i10 < 0 ? l10.top : l10.bottom; + else { + var f10 = e23.viewState.lineBlockAt(o10); + null == s10 && (s10 = Math.min(c10.right - c10.left, e23.defaultCharacterWidth * (o10 - f10.from))), a10 = (i10 < 0 ? f10.top : f10.bottom) + u10; + } + for (var d10 = c10.left + s10, h10 = null != r10 ? r10 : e23.viewState.heightOracle.textHeight >> 1, v10 = 0; ; v10 += 10) { + var p10 = a10 + (h10 + v10) * i10, m10 = vU(e23, { x: d10, y: p10 }, false, i10); + if (p10 < c10.top || p10 > c10.bottom || (i10 < 0 ? m10 < o10 : m10 > o10)) { + var g10 = e23.docView.coordsForChar(m10), y10 = !g10 || p10 < g10.top ? -1 : 1; + return $F.cursor(m10, y10, void 0, s10); + } + } + }(this, e21, t10, n10)); + } }, { key: "domAtPos", value: function(e21) { + return this.docView.domAtPos(e21); + } }, { key: "posAtDOM", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0; + return this.docView.posFromDOM(e21, t10); + } }, { key: "posAtCoords", value: function(e21) { + var t10 = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1]; + return this.readMeasured(), vU(this, e21, t10); + } }, { key: "coordsAtPos", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1; + this.readMeasured(); + var n10 = this.docView.coordsAt(e21, t10); + if (!n10 || n10.left == n10.right) + return n10; + var r10 = this.state.doc.lineAt(e21), o10 = this.bidiSpans(r10); + return nH(n10, o10[yW.find(o10, e21 - r10.from, -1, t10)].dir == rW.LTR == t10 > 0); + } }, { key: "coordsForChar", value: function(e21) { + return this.readMeasured(), this.docView.coordsForChar(e21); + } }, { key: "defaultCharacterWidth", get: function() { + return this.viewState.heightOracle.charWidth; + } }, { key: "defaultLineHeight", get: function() { + return this.viewState.heightOracle.lineHeight; + } }, { key: "textDirection", get: function() { + return this.viewState.defaultTextDirection; + } }, { key: "textDirectionAt", value: function(e21) { + return !this.state.facet(RW) || e21 < this.viewport.from || e21 > this.viewport.to ? this.textDirection : (this.readMeasured(), this.docView.textDirectionAt(e21)); + } }, { key: "lineWrapping", get: function() { + return this.viewState.heightOracle.lineWrapping; + } }, { key: "bidiSpans", value: function(e21) { + if (e21.length > BJ) + return jW(e21.length); + var t10, n10, r10 = this.textDirectionAt(e21.from), o10 = bo(this.bidiCache); + try { + for (o10.s(); !(n10 = o10.n()).done; ) { + var i10 = n10.value; + if (i10.from == e21.from && i10.dir == r10 && (i10.fresh || bW(i10.isolates, t10 = QW(this, e21)))) + return i10.order; + } + } catch (e23) { + o10.e(e23); + } finally { + o10.f(); + } + t10 || (t10 = QW(this, e21)); + var a10 = function(e23, t11, n11) { + if (!e23) + return [new yW(0, 0, t11 == iW ? 1 : 0)]; + if (t11 == oW && !n11.length && !gW.test(e23)) + return jW(e23.length); + if (n11.length) + for (; e23.length > kW.length; ) + kW[kW.length] = 256; + var r11 = [], o11 = t11 == oW ? 0 : 1; + return xW(e23, o11, o11, n11, 0, e23.length, r11), r11; + }(e21.text, r10, t10); + return this.bidiCache.push(new FJ(e21.from, e21.to, r10, t10, true, a10)), a10; + } }, { key: "hasFocus", get: function() { + var e21; + return (this.dom.ownerDocument.hasFocus() || AH.safari && (null === (e21 = this.inputState) || void 0 === e21 ? void 0 : e21.lastContextMenu) > Date.now() - 3e4) && this.root.activeElement == this.contentDOM; + } }, { key: "focus", value: function() { + var e21 = this; + this.observer.ignore(function() { + cH(e21.contentDOM), e21.docView.updateSelection(); + }); + } }, { key: "setRoot", value: function(e21) { + this._root != e21 && (this._root = e21, this.observer.setWindow((9 == e21.nodeType ? e21 : e21.ownerDocument).defaultView || window), this.mountStyles()); + } }, { key: "destroy", value: function() { + var e21, t10 = bo(this.plugins); + try { + for (t10.s(); !(e21 = t10.n()).done; ) { + e21.value.destroy(this); + } + } catch (e23) { + t10.e(e23); + } finally { + t10.f(); + } + this.plugins = [], this.inputState.destroy(), this.docView.destroy(), this.dom.remove(), this.observer.destroy(), this.measureScheduled > -1 && this.win.cancelAnimationFrame(this.measureScheduled), this.destroyed = true; + } }, { key: "scrollSnapshot", value: function() { + var e21 = this.scrollDOM, t10 = e21.scrollTop, n10 = e21.scrollLeft, r10 = this.viewState.scrollAnchorAt(t10); + return DW.of(new IW($F.cursor(r10.from), "start", "start", r10.top - t10, n10, true)); + } }], [{ key: "scrollIntoView", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + return DW.of(new IW("number" == typeof e21 ? $F.cursor(e21) : e21, t10.y, t10.x, t10.yMargin, t10.xMargin)); + } }, { key: "domEventHandlers", value: function(e21) { + return FW.define(function() { + return {}; + }, { eventHandlers: e21 }); + } }, { key: "domEventObservers", value: function(e21) { + return FW.define(function() { + return {}; + }, { eventObservers: e21 }); + } }, { key: "theme", value: function(e21, t10) { + var n10 = zV.newName(), r10 = [kJ.of(n10), ZW.of($J(".".concat(n10), e21))]; + return t10 && t10.dark && r10.push(wJ.of(true)), r10; + } }, { key: "baseTheme", value: function(e21) { + return LF.lowest(ZW.of($J("." + xJ, e21, CJ))); + } }, { key: "findFromDOM", value: function(e21) { + var t10, n10 = e21.querySelector(".cm-content"), r10 = n10 && pH.get(n10) || pH.get(e21); + return (null === (t10 = null == r10 ? void 0 : r10.rootView) || void 0 === t10 ? void 0 : t10.view) || null; + } }]), e20; + }(); + zJ.styleModule = ZW, zJ.inputHandler = PW, zJ.focusChangeEffect = TW, zJ.perLineTextDirection = RW, zJ.exceptionSink = EW, zJ.updateListener = AW, zJ.editable = zW, zJ.mouseSelectionStyle = MW, zJ.dragMovesSelection = OW, zJ.clickAddsSelectionRange = _W, zJ.decorations = UW, zJ.outerDecorations = JW, zJ.atomicRanges = KW, zJ.bidiIsolatedRanges = GW, zJ.scrollMargins = YW, zJ.darkTheme = wJ, zJ.cspNonce = MF.define({ combine: function(e20) { + return e20.length ? e20[0] : ""; + } }), zJ.contentAttributes = WW, zJ.editorAttributes = HW, zJ.lineWrapping = zJ.contentAttributes.of({ class: "cm-lineWrapping" }), zJ.announce = oV.define(); + var BJ = 4096; + var LJ = {}; + var FJ = function() { + function e20(t10, n10, r10, o10, i10, a10) { + No(this, e20), this.from = t10, this.to = n10, this.dir = r10, this.isolates = o10, this.fresh = i10, this.order = a10; + } + return Do(e20, null, [{ key: "update", value: function(t10, n10) { + if (n10.empty && !t10.some(function(e21) { + return e21.fresh; + })) + return t10; + for (var r10 = [], o10 = t10.length ? t10[t10.length - 1].dir : rW.LTR, i10 = Math.max(0, t10.length - 10); i10 < t10.length; i10++) { + var a10 = t10[i10]; + a10.dir != o10 || n10.touchesRange(a10.from, a10.to) || r10.push(new e20(n10.mapPos(a10.from, 1), n10.mapPos(a10.to, -1), a10.dir, a10.isolates, false, a10.order)); + } + return r10; + } }]), e20; + }(); + function VJ(e20, t10, n10) { + for (var r10 = e20.state.facet(t10), o10 = r10.length - 1; o10 >= 0; o10--) { + var i10 = r10[o10], a10 = "function" == typeof i10 ? i10(e20) : i10; + a10 && zH(a10, n10); + } + return n10; + } + var HJ = AH.mac ? "mac" : AH.windows ? "win" : AH.linux ? "linux" : "key"; + function WJ(e20, t10, n10) { + return t10.altKey && (e20 = "Alt-" + e20), t10.ctrlKey && (e20 = "Ctrl-" + e20), t10.metaKey && (e20 = "Meta-" + e20), false !== n10 && t10.shiftKey && (e20 = "Shift-" + e20), e20; + } + var UJ = LF.default(zJ.domEventHandlers({ keydown: function(e20, t10) { + return XJ(GJ(t10.state), e20, t10, "editor"); + } })); + var JJ = MF.define({ enables: UJ }); + var KJ = /* @__PURE__ */ new WeakMap(); + function GJ(e20) { + var t10 = e20.facet(JJ), n10 = KJ.get(t10); + return n10 || KJ.set(t10, n10 = function(e21) { + var t11, n11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : HJ, r10 = /* @__PURE__ */ Object.create(null), o10 = /* @__PURE__ */ Object.create(null), i10 = function(e23, t12) { + var n12 = o10[e23]; + if (null == n12) + o10[e23] = t12; + else if (n12 != t12) + throw new Error("Key binding " + e23 + " is used both as a regular binding and as a multi-stroke prefix"); + }, a10 = function(e23, t12, o11, a11, s11) { + for (var c11, l11, u11 = r10[e23] || (r10[e23] = /* @__PURE__ */ Object.create(null)), f11 = t12.split(/ (?!$)/).map(function(e24) { + return function(e25, t13) { + var n12, r11, o12, i11, a12 = e25.split(/-(?!$)/), s12 = a12[a12.length - 1]; + "Space" == s12 && (s12 = " "); + for (var c12 = 0; c12 < a12.length - 1; ++c12) { + var l12 = a12[c12]; + if (/^(cmd|meta|m)$/i.test(l12)) + i11 = true; + else if (/^a(lt)?$/i.test(l12)) + n12 = true; + else if (/^(c|ctrl|control)$/i.test(l12)) + r11 = true; + else if (/^s(hift)?$/i.test(l12)) + o12 = true; + else { + if (!/^mod$/i.test(l12)) + throw new Error("Unrecognized modifier name: " + l12); + "mac" == t13 ? i11 = true : r11 = true; + } + } + return n12 && (s12 = "Alt-" + s12), r11 && (s12 = "Ctrl-" + s12), i11 && (s12 = "Meta-" + s12), o12 && (s12 = "Shift-" + s12), s12; + }(e24, n11); + }), d11 = function() { + var t13 = f11.slice(0, h11).join(" "); + i10(t13, true), u11[t13] || (u11[t13] = { preventDefault: true, stopPropagation: false, run: [function(n12) { + var r11 = QJ = { view: n12, prefix: t13, scope: e23 }; + return setTimeout(function() { + QJ == r11 && (QJ = null); + }, YJ), true; + }] }); + }, h11 = 1; h11 < f11.length; h11++) + d11(); + var v11 = f11.join(" "); + i10(v11, false); + var p11 = u11[v11] || (u11[v11] = { preventDefault: false, stopPropagation: false, run: (null === (l11 = null === (c11 = u11._any) || void 0 === c11 ? void 0 : c11.run) || void 0 === l11 ? void 0 : l11.slice()) || [] }); + o11 && p11.run.push(o11), a11 && (p11.preventDefault = true), s11 && (p11.stopPropagation = true); + }, s10 = bo(e21); + try { + for (s10.s(); !(t11 = s10.n()).done; ) { + var c10 = t11.value, l10 = c10.scope ? c10.scope.split(" ") : ["editor"]; + if (c10.any) { + var u10, f10 = bo(l10); + try { + for (f10.s(); !(u10 = f10.n()).done; ) { + var d10 = u10.value, h10 = r10[d10] || (r10[d10] = /* @__PURE__ */ Object.create(null)); + for (var v10 in h10._any || (h10._any = { preventDefault: false, stopPropagation: false, run: [] }), h10) + h10[v10].run.push(c10.any); + } + } catch (e23) { + f10.e(e23); + } finally { + f10.f(); + } + } + var p10 = c10[n11] || c10.key; + if (p10) { + var m10, g10 = bo(l10); + try { + for (g10.s(); !(m10 = g10.n()).done; ) { + var y10 = m10.value; + a10(y10, p10, c10.run, c10.preventDefault, c10.stopPropagation), c10.shift && a10(y10, "Shift-" + p10, c10.shift, c10.preventDefault, c10.stopPropagation); + } + } catch (e23) { + g10.e(e23); + } finally { + g10.f(); + } + } + } + } catch (e23) { + s10.e(e23); + } finally { + s10.f(); + } + return r10; + }(t10.reduce(function(e21, t11) { + return e21.concat(t11); + }, []))), n10; + } + var QJ = null; + var YJ = 4e3; + function XJ(e20, t10, n10, r10) { + var o10 = function(e21) { + var t11 = !(HV && e21.metaKey && e21.shiftKey && !e21.ctrlKey && !e21.altKey || WV && e21.shiftKey && e21.key && 1 == e21.key.length || "Unidentified" == e21.key) && e21.key || (e21.shiftKey ? VV : FV)[e21.keyCode] || e21.key || "Unidentified"; + return "Esc" == t11 && (t11 = "Escape"), "Del" == t11 && (t11 = "Delete"), "Left" == t11 && (t11 = "ArrowLeft"), "Up" == t11 && (t11 = "ArrowUp"), "Right" == t11 && (t11 = "ArrowRight"), "Down" == t11 && (t11 = "ArrowDown"), t11; + }(t10), i10 = vF(dF(o10, 0)) == o10.length && " " != o10, a10 = "", s10 = false, c10 = false, l10 = false; + QJ && QJ.view == n10 && QJ.scope == r10 && (a10 = QJ.prefix + " ", CU.indexOf(t10.keyCode) < 0 && (c10 = true, QJ = null)); + var u10, f10, d10 = /* @__PURE__ */ new Set(), h10 = function(e21) { + if (e21) { + var r11, o11 = bo(e21.run); + try { + for (o11.s(); !(r11 = o11.n()).done; ) { + var i11 = r11.value; + if (!d10.has(i11) && (d10.add(i11), i11(n10, t10))) + return e21.stopPropagation && (l10 = true), true; + } + } catch (e23) { + o11.e(e23); + } finally { + o11.f(); + } + e21.preventDefault && (e21.stopPropagation && (l10 = true), c10 = true); + } + return false; + }, v10 = e20[r10]; + return v10 && (h10(v10[a10 + WJ(o10, t10, !i10)]) ? s10 = true : i10 && (t10.altKey || t10.metaKey || t10.ctrlKey) && !(AH.windows && t10.ctrlKey && t10.altKey) && (u10 = FV[t10.keyCode]) && u10 != o10 ? (h10(v10[a10 + WJ(u10, t10, true)]) || t10.shiftKey && (f10 = VV[t10.keyCode]) != o10 && f10 != u10 && h10(v10[a10 + WJ(f10, t10, false)])) && (s10 = true) : i10 && t10.shiftKey && h10(v10[a10 + WJ(o10, t10, true)]) && (s10 = true), !s10 && h10(v10._any) && (s10 = true)), c10 && (s10 = true), s10 && l10 && t10.stopPropagation(), s10; + } + var ZJ = function() { + function e20(t10, n10, r10, o10, i10) { + No(this, e20), this.className = t10, this.left = n10, this.top = r10, this.width = o10, this.height = i10; + } + return Do(e20, [{ key: "draw", value: function() { + var e21 = document.createElement("div"); + return e21.className = this.className, this.adjust(e21), e21; + } }, { key: "update", value: function(e21, t10) { + return t10.className == this.className && (this.adjust(e21), true); + } }, { key: "adjust", value: function(e21) { + e21.style.left = this.left + "px", e21.style.top = this.top + "px", null != this.width && (e21.style.width = this.width + "px"), e21.style.height = this.height + "px"; + } }, { key: "eq", value: function(e21) { + return this.left == e21.left && this.top == e21.top && this.width == e21.width && this.height == e21.height && this.className == e21.className; + } }], [{ key: "forRange", value: function(t10, n10, r10) { + if (r10.empty) { + var o10 = t10.coordsAtPos(r10.head, r10.assoc || 1); + if (!o10) + return []; + var i10 = eK(t10); + return [new e20(n10, o10.left - i10.left, o10.top - i10.top, null, o10.bottom - o10.top)]; + } + return nK(t10, n10, r10); + } }]), e20; + }(); + function eK(e20) { + var t10 = e20.scrollDOM.getBoundingClientRect(); + return { left: (e20.textDirection == rW.LTR ? t10.left : t10.right - e20.scrollDOM.clientWidth * e20.scaleX) - e20.scrollDOM.scrollLeft * e20.scaleX, top: t10.top - e20.scrollDOM.scrollTop * e20.scaleY }; + } + function tK(e20, t10, n10) { + var r10 = $F.cursor(t10); + return { from: Math.max(n10.from, e20.moveToLineBoundary(r10, false, true).from), to: Math.min(n10.to, e20.moveToLineBoundary(r10, true, true).from), type: JH.Text }; + } + function nK(e20, t10, n10) { + if (n10.to <= e20.viewport.from || n10.from >= e20.viewport.to) + return []; + var r10 = Math.max(n10.from, e20.viewport.from), o10 = Math.min(n10.to, e20.viewport.to), i10 = e20.textDirection == rW.LTR, a10 = e20.contentDOM, s10 = a10.getBoundingClientRect(), c10 = eK(e20), l10 = a10.querySelector(".cm-line"), u10 = l10 && window.getComputedStyle(l10), f10 = s10.left + (u10 ? parseInt(u10.paddingLeft) + Math.min(0, parseInt(u10.textIndent)) : 0), d10 = s10.right - (u10 ? parseInt(u10.paddingRight) : 0), h10 = mU(e20, r10), v10 = mU(e20, o10), p10 = h10.type == JH.Text ? h10 : null, m10 = v10.type == JH.Text ? v10 : null; + if (p10 && (e20.lineWrapping || h10.widgetLineBreaks) && (p10 = tK(e20, r10, p10)), m10 && (e20.lineWrapping || v10.widgetLineBreaks) && (m10 = tK(e20, o10, m10)), p10 && m10 && p10.from == m10.from) + return w10(x10(n10.from, n10.to, p10)); + var g10 = p10 ? x10(n10.from, null, p10) : j10(h10, false), y10 = m10 ? x10(null, n10.to, m10) : j10(v10, true), b10 = []; + return (p10 || h10).to < (m10 || v10).from - (p10 && m10 ? 1 : 0) || h10.widgetLineBreaks > 1 && g10.bottom + e20.defaultLineHeight / 2 < y10.top ? b10.push(k10(f10, g10.bottom, d10, y10.top)) : g10.bottom < y10.top && e20.elementAtHeight((g10.bottom + y10.top) / 2).type == JH.Text && (g10.bottom = y10.top = (g10.bottom + y10.top) / 2), w10(g10).concat(b10).concat(w10(y10)); + function k10(e21, n11, r11, o11) { + return new ZJ(t10, e21 - c10.left, n11 - c10.top - 0.01, r11 - e21, o11 - n11 + 0.01); + } + function w10(e21) { + for (var t11 = e21.top, n11 = e21.bottom, r11 = e21.horizontal, o11 = [], i11 = 0; i11 < r11.length; i11 += 2) + o11.push(k10(r11[i11], t11, r11[i11 + 1], n11)); + return o11; + } + function x10(t11, n11, r11) { + var o11 = 1e9, a11 = -1e9, s11 = []; + function c11(t12, n12, c12, l12, u12) { + var h12 = e20.coordsAtPos(t12, t12 == r11.to ? -2 : 2), v12 = e20.coordsAtPos(c12, c12 == r11.from ? 2 : -2); + h12 && v12 && (o11 = Math.min(h12.top, v12.top, o11), a11 = Math.max(h12.bottom, v12.bottom, a11), u12 == rW.LTR ? s11.push(i10 && n12 ? f10 : h12.left, i10 && l12 ? d10 : v12.right) : s11.push(!i10 && l12 ? f10 : v12.left, !i10 && n12 ? d10 : h12.right)); + } + var l11, u11 = null != t11 ? t11 : r11.from, h11 = null != n11 ? n11 : r11.to, v11 = bo(e20.visibleRanges); + try { + for (v11.s(); !(l11 = v11.n()).done; ) { + var p11 = l11.value; + if (p11.to > u11 && p11.from < h11) + for (var m11 = Math.max(p11.from, u11), g11 = Math.min(p11.to, h11); ; ) { + var y11, b11 = e20.state.doc.lineAt(m11), k11 = bo(e20.bidiSpans(b11)); + try { + for (k11.s(); !(y11 = k11.n()).done; ) { + var w11 = y11.value, x11 = w11.from + b11.from, j11 = w11.to + b11.from; + if (x11 >= g11) + break; + j11 > m11 && c11(Math.max(x11, m11), null == t11 && x11 <= u11, Math.min(j11, g11), null == n11 && j11 >= h11, w11.dir); + } + } catch (e21) { + k11.e(e21); + } finally { + k11.f(); + } + if ((m11 = b11.to + 1) >= g11) + break; + } + } + } catch (e21) { + v11.e(e21); + } finally { + v11.f(); + } + return 0 == s11.length && c11(u11, null == t11, h11, null == n11, e20.textDirection), { top: o11, bottom: a11, horizontal: s11 }; + } + function j10(e21, t11) { + var n11 = s10.top + (t11 ? e21.top : e21.bottom); + return { top: n11, bottom: n11, horizontal: [] }; + } + } + var rK = function() { + function e20(t10, n10) { + No(this, e20), this.view = t10, this.layer = n10, this.drawn = [], this.scaleX = 1, this.scaleY = 1, this.measureReq = { read: this.measure.bind(this), write: this.draw.bind(this) }, this.dom = t10.scrollDOM.appendChild(document.createElement("div")), this.dom.classList.add("cm-layer"), n10.above && this.dom.classList.add("cm-layer-above"), n10.class && this.dom.classList.add(n10.class), this.scale(), this.dom.setAttribute("aria-hidden", "true"), this.setOrder(t10.state), t10.requestMeasure(this.measureReq), n10.mount && n10.mount(this.dom, t10); + } + return Do(e20, [{ key: "update", value: function(e21) { + e21.startState.facet(oK) != e21.state.facet(oK) && this.setOrder(e21.state), (this.layer.update(e21, this.dom) || e21.geometryChanged) && (this.scale(), e21.view.requestMeasure(this.measureReq)); + } }, { key: "setOrder", value: function(e21) { + for (var t10 = 0, n10 = e21.facet(oK); t10 < n10.length && n10[t10] != this.layer; ) + t10++; + this.dom.style.zIndex = String((this.layer.above ? 150 : -1) - t10); + } }, { key: "measure", value: function() { + return this.layer.markers(this.view); + } }, { key: "scale", value: function() { + var e21 = this.view, t10 = e21.scaleX, n10 = e21.scaleY; + t10 == this.scaleX && n10 == this.scaleY || (this.scaleX = t10, this.scaleY = n10, this.dom.style.transform = "scale(".concat(1 / t10, ", ").concat(1 / n10, ")")); + } }, { key: "draw", value: function(e21) { + var t10 = this; + if (e21.length != this.drawn.length || e21.some(function(e23, n11) { + return r11 = e23, o11 = t10.drawn[n11], !(r11.constructor == o11.constructor && r11.eq(o11)); + var r11, o11; + })) { + var n10, r10 = this.dom.firstChild, o10 = 0, i10 = bo(e21); + try { + for (i10.s(); !(n10 = i10.n()).done; ) { + var a10 = n10.value; + a10.update && r10 && a10.constructor && this.drawn[o10].constructor && a10.update(r10, this.drawn[o10]) ? (r10 = r10.nextSibling, o10++) : this.dom.insertBefore(a10.draw(), r10); + } + } catch (e23) { + i10.e(e23); + } finally { + i10.f(); + } + for (; r10; ) { + var s10 = r10.nextSibling; + r10.remove(), r10 = s10; + } + this.drawn = e21; + } + } }, { key: "destroy", value: function() { + this.layer.destroy && this.layer.destroy(this.dom, this.view), this.dom.remove(); + } }]), e20; + }(); + var oK = MF.define(); + function iK(e20) { + return [FW.define(function(t10) { + return new rK(t10, e20); + }), oK.of(e20)]; + } + var aK = !AH.ios; + var sK = MF.define({ combine: function(e20) { + return gV(e20, { cursorBlinkRate: 1200, drawRangeCursor: true }, { cursorBlinkRate: function(e21, t10) { + return Math.min(e21, t10); + }, drawRangeCursor: function(e21, t10) { + return e21 || t10; + } }); + } }); + function cK() { + var e20 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + return [sK.of(e20), uK, dK, vK, NW.of(true)]; + } + function lK(e20) { + return e20.startState.facet(sK) != e20.state.facet(sK); + } + var uK = iK({ above: true, markers: function(e20) { + var t10, n10 = e20.state, r10 = n10.facet(sK), o10 = [], i10 = bo(n10.selection.ranges); + try { + for (i10.s(); !(t10 = i10.n()).done; ) { + var a10 = t10.value, s10 = a10 == n10.selection.main; + if (a10.empty ? !s10 || aK : r10.drawRangeCursor) { + var c10, l10 = s10 ? "cm-cursor cm-cursor-primary" : "cm-cursor cm-cursor-secondary", u10 = a10.empty ? a10 : $F.cursor(a10.head, a10.head > a10.anchor ? -1 : 1), f10 = bo(ZJ.forRange(e20, l10, u10)); + try { + for (f10.s(); !(c10 = f10.n()).done; ) { + var d10 = c10.value; + o10.push(d10); + } + } catch (e21) { + f10.e(e21); + } finally { + f10.f(); + } + } + } + } catch (e21) { + i10.e(e21); + } finally { + i10.f(); + } + return o10; + }, update: function(e20, t10) { + e20.transactions.some(function(e21) { + return e21.selection; + }) && (t10.style.animationName = "cm-blink" == t10.style.animationName ? "cm-blink2" : "cm-blink"); + var n10 = lK(e20); + return n10 && fK(e20.state, t10), e20.docChanged || e20.selectionSet || n10; + }, mount: function(e20, t10) { + fK(t10.state, e20); + }, class: "cm-cursorLayer" }); + function fK(e20, t10) { + t10.style.animationDuration = e20.facet(sK).cursorBlinkRate + "ms"; + } + var dK = iK({ above: false, markers: function(e20) { + return e20.state.selection.ranges.map(function(t10) { + return t10.empty ? [] : ZJ.forRange(e20, "cm-selectionBackground", t10); + }).reduce(function(e21, t10) { + return e21.concat(t10); + }); + }, update: function(e20, t10) { + return e20.docChanged || e20.selectionSet || e20.viewportChanged || lK(e20); + }, class: "cm-selectionLayer" }); + var hK = { ".cm-line": { "& ::selection": { backgroundColor: "transparent !important" }, "&::selection": { backgroundColor: "transparent !important" } } }; + aK && (hK[".cm-line"].caretColor = "transparent !important", hK[".cm-content"] = { caretColor: "transparent !important" }); + var vK = LF.highest(zJ.theme(hK)); + var pK = oV.define({ map: function(e20, t10) { + return null == e20 ? null : t10.mapPos(e20); + } }); + var mK = NF.define({ create: function() { + return null; + }, update: function(e20, t10) { + return null != e20 && (e20 = t10.changes.mapPos(e20)), t10.effects.reduce(function(e21, t11) { + return t11.is(pK) ? t11.value : e21; + }, e20); + } }); + var gK = FW.fromClass(function() { + function e20(t10) { + No(this, e20), this.view = t10, this.cursor = null, this.measureReq = { read: this.readPos.bind(this), write: this.drawCursor.bind(this) }; + } + return Do(e20, [{ key: "update", value: function(e21) { + var t10, n10 = e21.state.field(mK); + null == n10 ? null != this.cursor && (null === (t10 = this.cursor) || void 0 === t10 || t10.remove(), this.cursor = null) : (this.cursor || (this.cursor = this.view.scrollDOM.appendChild(document.createElement("div")), this.cursor.className = "cm-dropCursor"), (e21.startState.field(mK) != n10 || e21.docChanged || e21.geometryChanged) && this.view.requestMeasure(this.measureReq)); + } }, { key: "readPos", value: function() { + var e21 = this.view, t10 = e21.state.field(mK), n10 = null != t10 && e21.coordsAtPos(t10); + if (!n10) + return null; + var r10 = e21.scrollDOM.getBoundingClientRect(); + return { left: n10.left - r10.left + e21.scrollDOM.scrollLeft * e21.scaleX, top: n10.top - r10.top + e21.scrollDOM.scrollTop * e21.scaleY, height: n10.bottom - n10.top }; + } }, { key: "drawCursor", value: function(e21) { + if (this.cursor) { + var t10 = this.view, n10 = t10.scaleX, r10 = t10.scaleY; + e21 ? (this.cursor.style.left = e21.left / n10 + "px", this.cursor.style.top = e21.top / r10 + "px", this.cursor.style.height = e21.height / r10 + "px") : this.cursor.style.left = "-100000px"; + } + } }, { key: "destroy", value: function() { + this.cursor && this.cursor.remove(); + } }, { key: "setDropPos", value: function(e21) { + this.view.state.field(mK) != e21 && this.view.dispatch({ effects: pK.of(e21) }); + } }]), e20; + }(), { eventObservers: { dragover: function(e20) { + this.setDropPos(this.view.posAtCoords({ x: e20.clientX, y: e20.clientY })); + }, dragleave: function(e20) { + e20.target != this.view.contentDOM && this.view.contentDOM.contains(e20.relatedTarget) || this.setDropPos(null); + }, dragend: function() { + this.setDropPos(null); + }, drop: function() { + this.setDropPos(null); + } } }); + function yK(e20, t10, n10, r10, o10) { + t10.lastIndex = 0; + for (var i10, a10 = e20.iterRange(n10, r10), s10 = n10; !a10.next().done; s10 += a10.value.length) + if (!a10.lineBreak) + for (; i10 = t10.exec(a10.value); ) + o10(s10 + i10.index, i10); + } + var bK = function() { + function e20(t10) { + No(this, e20); + var n10 = t10.regexp, r10 = t10.decoration, o10 = t10.decorate, i10 = t10.boundary, a10 = t10.maxLength, s10 = void 0 === a10 ? 1e3 : a10; + if (!n10.global) + throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set"); + if (this.regexp = n10, o10) + this.addMatch = function(e21, t11, n11, r11) { + return o10(r11, n11, n11 + e21[0].length, e21, t11); + }; + else if ("function" == typeof r10) + this.addMatch = function(e21, t11, n11, o11) { + var i11 = r10(e21, t11, n11); + i11 && o11(n11, n11 + e21[0].length, i11); + }; + else { + if (!r10) + throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator"); + this.addMatch = function(e21, t11, n11, o11) { + return o11(n11, n11 + e21[0].length, r10); + }; + } + this.boundary = i10, this.maxLength = s10; + } + return Do(e20, [{ key: "createDeco", value: function(e21) { + var t10, n10 = this, r10 = new jV(), o10 = r10.add.bind(r10), i10 = bo(function(e23, t11) { + var n11 = e23.visibleRanges; + if (1 == n11.length && n11[0].from == e23.viewport.from && n11[0].to == e23.viewport.to) + return n11; + var r11, o11 = [], i11 = bo(n11); + try { + for (i11.s(); !(r11 = i11.n()).done; ) { + var a11 = r11.value, s11 = a11.from, c11 = a11.to; + s11 = Math.max(e23.state.doc.lineAt(s11).from, s11 - t11), c11 = Math.min(e23.state.doc.lineAt(c11).to, c11 + t11), o11.length && o11[o11.length - 1].to >= s11 ? o11[o11.length - 1].to = c11 : o11.push({ from: s11, to: c11 }); + } + } catch (e24) { + i11.e(e24); + } finally { + i11.f(); + } + return o11; + }(e21, this.maxLength)); + try { + for (i10.s(); !(t10 = i10.n()).done; ) { + var a10 = t10.value, s10 = a10.from, c10 = a10.to; + yK(e21.state.doc, this.regexp, s10, c10, function(t11, r11) { + return n10.addMatch(r11, e21, t11, o10); + }); + } + } catch (e23) { + i10.e(e23); + } finally { + i10.f(); + } + return r10.finish(); + } }, { key: "updateDeco", value: function(e21, t10) { + var n10 = 1e9, r10 = -1; + return e21.docChanged && e21.changes.iterChanges(function(t11, o10, i10, a10) { + a10 > e21.view.viewport.from && i10 < e21.view.viewport.to && (n10 = Math.min(i10, n10), r10 = Math.max(a10, r10)); + }), e21.viewportChanged || r10 - n10 > 1e3 ? this.createDeco(e21.view) : r10 > -1 ? this.updateRange(e21.view, t10.map(e21.changes), n10, r10) : t10; + } }, { key: "updateRange", value: function(e21, t10, n10, r10) { + var o10, i10 = this, a10 = bo(e21.visibleRanges); + try { + var s10 = function() { + var a11 = o10.value, s11 = Math.max(a11.from, n10), c10 = Math.min(a11.to, r10); + if (c10 > s11) { + var l10 = e21.state.doc.lineAt(s11), u10 = l10.to < c10 ? e21.state.doc.lineAt(c10) : l10, f10 = Math.max(a11.from, l10.from), d10 = Math.min(a11.to, u10.to); + if (i10.boundary) { + for (; s11 > l10.from; s11--) + if (i10.boundary.test(l10.text[s11 - 1 - l10.from])) { + f10 = s11; + break; + } + for (; c10 < u10.to; c10++) + if (i10.boundary.test(u10.text[c10 - u10.from])) { + d10 = c10; + break; + } + } + var h10, v10 = [], p10 = function(e23, t11, n11) { + return v10.push(n11.range(e23, t11)); + }; + if (l10 == u10) + for (i10.regexp.lastIndex = f10 - l10.from; (h10 = i10.regexp.exec(l10.text)) && h10.index < d10 - l10.from; ) + i10.addMatch(h10, e21, h10.index + l10.from, p10); + else + yK(e21.state.doc, i10.regexp, f10, d10, function(t11, n11) { + return i10.addMatch(n11, e21, t11, p10); + }); + t10 = t10.update({ filterFrom: f10, filterTo: d10, filter: function(e23, t11) { + return e23 < f10 || t11 > d10; + }, add: v10 }); + } + }; + for (a10.s(); !(o10 = a10.n()).done; ) + s10(); + } catch (e23) { + a10.e(e23); + } finally { + a10.f(); + } + return t10; + } }]), e20; + }(); + var kK = null != /x/.unicode ? "gu" : "g"; + var wK = new RegExp("[\0-\b\n-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]", kK); + var xK = { 0: "null", 7: "bell", 8: "backspace", 10: "newline", 11: "vertical tab", 13: "carriage return", 27: "escape", 8203: "zero width space", 8204: "zero width non-joiner", 8205: "zero width joiner", 8206: "left-to-right mark", 8207: "right-to-left mark", 8232: "line separator", 8237: "left-to-right override", 8238: "right-to-left override", 8294: "left-to-right isolate", 8295: "right-to-left isolate", 8297: "pop directional isolate", 8233: "paragraph separator", 65279: "zero width no-break space", 65532: "object replacement" }; + var jK = null; + var SK = MF.define({ combine: function(e20) { + var t10 = gV(e20, { render: null, specialChars: wK, addSpecialChars: null }); + return (t10.replaceTabs = !function() { + var e21; + if (null == jK && "undefined" != typeof document && document.body) { + var t11 = document.body.style; + jK = null != (null !== (e21 = t11.tabSize) && void 0 !== e21 ? e21 : t11.MozTabSize); + } + return jK || false; + }()) && (t10.specialChars = new RegExp(" |" + t10.specialChars.source, kK)), t10.addSpecialChars && (t10.specialChars = new RegExp(t10.specialChars.source + "|" + t10.addSpecialChars.source, kK)), t10; + } }); + function CK() { + var e20 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + return [SK.of(e20), $K || ($K = FW.fromClass(function() { + function e21(t10) { + No(this, e21), this.view = t10, this.decorations = KH.none, this.decorationCache = /* @__PURE__ */ Object.create(null), this.decorator = this.makeDecorator(t10.state.facet(SK)), this.decorations = this.decorator.createDeco(t10); + } + return Do(e21, [{ key: "makeDecorator", value: function(e23) { + var t10 = this; + return new bK({ regexp: e23.specialChars, decoration: function(n10, r10, o10) { + var i10 = r10.state.doc, a10 = dF(n10[0], 0); + if (9 == a10) { + var s10 = i10.lineAt(o10), c10 = r10.state.tabSize, l10 = RV(s10.text, c10, o10 - s10.from); + return KH.replace({ widget: new OK((c10 - l10 % c10) * t10.view.defaultCharacterWidth / t10.view.scaleX) }); + } + return t10.decorationCache[a10] || (t10.decorationCache[a10] = KH.replace({ widget: new _K(e23, a10) })); + }, boundary: e23.replaceTabs ? void 0 : /[^]/ }); + } }, { key: "update", value: function(e23) { + var t10 = e23.state.facet(SK); + e23.startState.facet(SK) != t10 ? (this.decorator = this.makeDecorator(t10), this.decorations = this.decorator.createDeco(e23.view)) : this.decorations = this.decorator.updateDeco(e23, this.decorations); + } }]), e21; + }(), { decorations: function(e21) { + return e21.decorations; + } }))]; + } + var $K = null; + var _K = function(e20) { + function t10(e21, n10) { + var r10; + return No(this, t10), (r10 = _o(this, t10)).options = e21, r10.code = n10, r10; + } + return Ao(t10, UH), Do(t10, [{ key: "eq", value: function(e21) { + return e21.code == this.code; + } }, { key: "toDOM", value: function(e21) { + var t11 = function(e23) { + return e23 >= 32 ? "\u2022" : 10 == e23 ? "\u2424" : String.fromCharCode(9216 + e23); + }(this.code), n10 = e21.state.phrase("Control character") + " " + (xK[this.code] || "0x" + this.code.toString(16)), r10 = this.options.render && this.options.render(this.code, n10, t11); + if (r10) + return r10; + var o10 = document.createElement("span"); + return o10.textContent = t11, o10.title = n10, o10.setAttribute("aria-label", n10), o10.className = "cm-specialChar", o10; + } }, { key: "ignoreEvent", value: function() { + return false; + } }]), t10; + }(); + var OK = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), (n10 = _o(this, t10)).width = e21, n10; + } + return Ao(t10, UH), Do(t10, [{ key: "eq", value: function(e21) { + return e21.width == this.width; + } }, { key: "toDOM", value: function() { + var e21 = document.createElement("span"); + return e21.textContent = " ", e21.className = "cm-tab", e21.style.width = this.width + "px", e21; + } }, { key: "ignoreEvent", value: function() { + return false; + } }]), t10; + }(); + var MK = KH.line({ class: "cm-activeLine" }); + var EK = FW.fromClass(function() { + function e20(t10) { + No(this, e20), this.decorations = this.getDeco(t10); + } + return Do(e20, [{ key: "update", value: function(e21) { + (e21.docChanged || e21.selectionSet) && (this.decorations = this.getDeco(e21.view)); + } }, { key: "getDeco", value: function(e21) { + var t10, n10 = -1, r10 = [], o10 = bo(e21.state.selection.ranges); + try { + for (o10.s(); !(t10 = o10.n()).done; ) { + var i10 = t10.value, a10 = e21.lineBlockAt(i10.head); + a10.from > n10 && (r10.push(MK.range(a10.from)), n10 = a10.from); + } + } catch (e23) { + o10.e(e23); + } finally { + o10.f(); + } + return KH.set(r10); + } }]), e20; + }(), { decorations: function(e20) { + return e20.decorations; + } }); + var AK = 2e3; + function PK(e20, t10) { + var n10 = e20.posAtCoords({ x: t10.clientX, y: t10.clientY }, false), r10 = e20.state.doc.lineAt(n10), o10 = n10 - r10.from, i10 = o10 > AK ? -1 : o10 == r10.length ? function(e21, t11) { + var n11 = e21.coordsAtPos(e21.viewport.from); + return n11 ? Math.round(Math.abs((n11.left - t11) / e21.defaultCharacterWidth)) : -1; + }(e20, t10.clientX) : RV(r10.text, e20.state.tabSize, n10 - r10.from); + return { line: r10.number, col: i10, off: o10 }; + } + function TK(e20, t10) { + var n10 = PK(e20, t10), r10 = e20.state.selection; + return n10 ? { update: function(e21) { + if (e21.docChanged) { + var t11 = e21.changes.mapPos(e21.startState.doc.line(n10.line).from), o10 = e21.state.doc.lineAt(t11); + n10 = { line: o10.number, col: n10.col, off: Math.min(n10.off, o10.length) }, r10 = r10.map(e21.changes); + } + }, get: function(t11, o10, i10) { + var a10 = PK(e20, t11); + if (!a10) + return r10; + var s10 = function(e21, t12, n11) { + var r11 = Math.min(t12.line, n11.line), o11 = Math.max(t12.line, n11.line), i11 = []; + if (t12.off > AK || n11.off > AK || t12.col < 0 || n11.col < 0) + for (var a11 = Math.min(t12.off, n11.off), s11 = Math.max(t12.off, n11.off), c10 = r11; c10 <= o11; c10++) { + var l10 = e21.doc.line(c10); + l10.length <= s11 && i11.push($F.range(l10.from + a11, l10.to + s11)); + } + else + for (var u10 = Math.min(t12.col, n11.col), f10 = Math.max(t12.col, n11.col), d10 = r11; d10 <= o11; d10++) { + var h10 = e21.doc.line(d10), v10 = NV(h10.text, u10, e21.tabSize, true); + if (v10 < 0) + i11.push($F.cursor(h10.to)); + else { + var p10 = NV(h10.text, f10, e21.tabSize); + i11.push($F.range(h10.from + v10, h10.from + p10)); + } + } + return i11; + }(e20.state, n10, a10); + return s10.length ? i10 ? $F.create(s10.concat(r10.ranges)) : $F.create(s10) : r10; + } } : null; + } + function RK(e20) { + var t10 = (null == e20 ? void 0 : e20.eventFilter) || function(e21) { + return e21.altKey && 0 == e21.button; + }; + return zJ.mouseSelectionStyle.of(function(e21, n10) { + return t10(n10) ? TK(e21, n10) : null; + }); + } + var NK = { Alt: [18, function(e20) { + return !!e20.altKey; + }], Control: [17, function(e20) { + return !!e20.ctrlKey; + }], Shift: [16, function(e20) { + return !!e20.shiftKey; + }], Meta: [91, function(e20) { + return !!e20.metaKey; + }] }; + var IK = { style: "cursor: crosshair" }; + function DK() { + var e20 = jo(NK[(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).key || "Alt"], 2), t10 = e20[0], n10 = e20[1], r10 = FW.fromClass(function() { + function e21(t11) { + No(this, e21), this.view = t11, this.isDown = false; + } + return Do(e21, [{ key: "set", value: function(e23) { + this.isDown != e23 && (this.isDown = e23, this.view.update([])); + } }]), e21; + }(), { eventObservers: { keydown: function(e21) { + this.set(e21.keyCode == t10 || n10(e21)); + }, keyup: function(e21) { + e21.keyCode != t10 && n10(e21) || this.set(false); + }, mousemove: function(e21) { + this.set(n10(e21)); + } } }); + return [r10, zJ.contentAttributes.of(function(e21) { + var t11; + return (null === (t11 = e21.plugin(r10)) || void 0 === t11 ? void 0 : t11.isDown) ? IK : null; + })]; + } + var qK = "-10000px"; + var zK = function() { + function e20(t10, n10, r10) { + No(this, e20), this.facet = n10, this.createTooltipView = r10, this.input = t10.state.facet(n10), this.tooltips = this.input.filter(function(e21) { + return e21; + }), this.tooltipViews = this.tooltips.map(r10); + } + return Do(e20, [{ key: "update", value: function(e21, t10) { + var n10, r10 = e21.state.facet(this.facet), o10 = r10.filter(function(e23) { + return e23; + }); + if (r10 === this.input) { + var i10, a10 = bo(this.tooltipViews); + try { + for (a10.s(); !(i10 = a10.n()).done; ) { + var s10 = i10.value; + s10.update && s10.update(e21); + } + } catch (e23) { + a10.e(e23); + } finally { + a10.f(); + } + return false; + } + for (var c10 = [], l10 = t10 ? [] : null, u10 = 0; u10 < o10.length; u10++) { + var f10 = o10[u10], d10 = -1; + if (f10) { + for (var h10 = 0; h10 < this.tooltips.length; h10++) { + var v10 = this.tooltips[h10]; + v10 && v10.create == f10.create && (d10 = h10); + } + if (d10 < 0) + c10[u10] = this.createTooltipView(f10), l10 && (l10[u10] = !!f10.above); + else { + var p10 = c10[u10] = this.tooltipViews[d10]; + l10 && (l10[u10] = t10[d10]), p10.update && p10.update(e21); + } + } + } + var m10, g10 = bo(this.tooltipViews); + try { + for (g10.s(); !(m10 = g10.n()).done; ) { + var y10 = m10.value; + c10.indexOf(y10) < 0 && (y10.dom.remove(), null === (n10 = y10.destroy) || void 0 === n10 || n10.call(y10)); + } + } catch (e23) { + g10.e(e23); + } finally { + g10.f(); + } + return t10 && (l10.forEach(function(e23, n11) { + return t10[n11] = e23; + }), t10.length = l10.length), this.input = r10, this.tooltips = o10, this.tooltipViews = c10, true; + } }]), e20; + }(); + function BK(e20) { + var t10 = e20.win; + return { top: 0, left: 0, bottom: t10.innerHeight, right: t10.innerWidth }; + } + var LK = MF.define({ combine: function(e20) { + var t10, n10, r10; + return { position: AH.ios ? "absolute" : (null === (t10 = e20.find(function(e21) { + return e21.position; + })) || void 0 === t10 ? void 0 : t10.position) || "fixed", parent: (null === (n10 = e20.find(function(e21) { + return e21.parent; + })) || void 0 === n10 ? void 0 : n10.parent) || null, tooltipSpace: (null === (r10 = e20.find(function(e21) { + return e21.tooltipSpace; + })) || void 0 === r10 ? void 0 : r10.tooltipSpace) || BK }; + } }); + var FK = /* @__PURE__ */ new WeakMap(); + var VK = FW.fromClass(function() { + function e20(t10) { + var n10 = this; + No(this, e20), this.view = t10, this.above = [], this.inView = true, this.madeAbsolute = false, this.lastTransaction = 0, this.measureTimeout = -1; + var r10 = t10.state.facet(LK); + this.position = r10.position, this.parent = r10.parent, this.classes = t10.themeClasses, this.createContainer(), this.measureReq = { read: this.readMeasure.bind(this), write: this.writeMeasure.bind(this), key: this }, this.manager = new zK(t10, UK, function(e21) { + return n10.createTooltip(e21); + }), this.intersectionObserver = "function" == typeof IntersectionObserver ? new IntersectionObserver(function(e21) { + Date.now() > n10.lastTransaction - 50 && e21.length > 0 && e21[e21.length - 1].intersectionRatio < 1 && n10.measureSoon(); + }, { threshold: [1] }) : null, this.observeIntersection(), t10.win.addEventListener("resize", this.measureSoon = this.measureSoon.bind(this)), this.maybeMeasure(); + } + return Do(e20, [{ key: "createContainer", value: function() { + this.parent ? (this.container = document.createElement("div"), this.container.style.position = "relative", this.container.className = this.view.themeClasses, this.parent.appendChild(this.container)) : this.container = this.view.dom; + } }, { key: "observeIntersection", value: function() { + if (this.intersectionObserver) { + this.intersectionObserver.disconnect(); + var e21, t10 = bo(this.manager.tooltipViews); + try { + for (t10.s(); !(e21 = t10.n()).done; ) { + var n10 = e21.value; + this.intersectionObserver.observe(n10.dom); + } + } catch (e23) { + t10.e(e23); + } finally { + t10.f(); + } + } + } }, { key: "measureSoon", value: function() { + var e21 = this; + this.measureTimeout < 0 && (this.measureTimeout = setTimeout(function() { + e21.measureTimeout = -1, e21.maybeMeasure(); + }, 50)); + } }, { key: "update", value: function(e21) { + e21.transactions.length && (this.lastTransaction = Date.now()); + var t10 = this.manager.update(e21, this.above); + t10 && this.observeIntersection(); + var n10 = t10 || e21.geometryChanged, r10 = e21.state.facet(LK); + if (r10.position != this.position && !this.madeAbsolute) { + this.position = r10.position; + var o10, i10 = bo(this.manager.tooltipViews); + try { + for (i10.s(); !(o10 = i10.n()).done; ) { + o10.value.dom.style.position = this.position; + } + } catch (e23) { + i10.e(e23); + } finally { + i10.f(); + } + n10 = true; + } + if (r10.parent != this.parent) { + this.parent && this.container.remove(), this.parent = r10.parent, this.createContainer(); + var a10, s10 = bo(this.manager.tooltipViews); + try { + for (s10.s(); !(a10 = s10.n()).done; ) { + var c10 = a10.value; + this.container.appendChild(c10.dom); + } + } catch (e23) { + s10.e(e23); + } finally { + s10.f(); + } + n10 = true; + } else + this.parent && this.view.themeClasses != this.classes && (this.classes = this.container.className = this.view.themeClasses); + n10 && this.maybeMeasure(); + } }, { key: "createTooltip", value: function(e21) { + var t10 = e21.create(this.view); + if (t10.dom.classList.add("cm-tooltip"), e21.arrow && !t10.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")) { + var n10 = document.createElement("div"); + n10.className = "cm-tooltip-arrow", t10.dom.appendChild(n10); + } + return t10.dom.style.position = this.position, t10.dom.style.top = qK, t10.dom.style.left = "0px", this.container.appendChild(t10.dom), t10.mount && t10.mount(this.view), t10; + } }, { key: "destroy", value: function() { + var e21, t10; + this.view.win.removeEventListener("resize", this.measureSoon); + var n10, r10 = bo(this.manager.tooltipViews); + try { + for (r10.s(); !(n10 = r10.n()).done; ) { + var o10 = n10.value; + o10.dom.remove(), null === (e21 = o10.destroy) || void 0 === e21 || e21.call(o10); + } + } catch (e23) { + r10.e(e23); + } finally { + r10.f(); + } + this.parent && this.container.remove(), null === (t10 = this.intersectionObserver) || void 0 === t10 || t10.disconnect(), clearTimeout(this.measureTimeout); + } }, { key: "readMeasure", value: function() { + var e21 = this, t10 = this.view.dom.getBoundingClientRect(), n10 = 1, r10 = 1, o10 = false; + if ("fixed" == this.position && this.manager.tooltipViews.length) { + var i10 = this.manager.tooltipViews[0].dom; + if (AH.gecko) + o10 = i10.offsetParent != this.container.ownerDocument.body; + else if (i10.style.top == qK && "0px" == i10.style.left) { + var a10 = i10.getBoundingClientRect(); + o10 = Math.abs(a10.top + 1e4) > 1 || Math.abs(a10.left) > 1; + } + } + if (o10 || "absolute" == this.position) + if (this.parent) { + var s10 = this.parent.getBoundingClientRect(); + s10.width && s10.height && (n10 = s10.width / this.parent.offsetWidth, r10 = s10.height / this.parent.offsetHeight); + } else { + var c10 = this.view.viewState; + n10 = c10.scaleX, r10 = c10.scaleY; + } + return { editor: t10, parent: this.parent ? this.container.getBoundingClientRect() : t10, pos: this.manager.tooltips.map(function(t11, n11) { + var r11 = e21.manager.tooltipViews[n11]; + return r11.getCoords ? r11.getCoords(t11.pos) : e21.view.coordsAtPos(t11.pos); + }), size: this.manager.tooltipViews.map(function(e23) { + return e23.dom.getBoundingClientRect(); + }), space: this.view.state.facet(LK).tooltipSpace(this.view), scaleX: n10, scaleY: r10, makeAbsolute: o10 }; + } }, { key: "writeMeasure", value: function(e21) { + var t10; + if (e21.makeAbsolute) { + this.madeAbsolute = true, this.position = "absolute"; + var n10, r10 = bo(this.manager.tooltipViews); + try { + for (r10.s(); !(n10 = r10.n()).done; ) { + n10.value.dom.style.position = "absolute"; + } + } catch (e23) { + r10.e(e23); + } finally { + r10.f(); + } + } + for (var o10 = e21.editor, i10 = e21.space, a10 = e21.scaleX, s10 = e21.scaleY, c10 = [], l10 = 0; l10 < this.manager.tooltips.length; l10++) { + var u10 = this.manager.tooltips[l10], f10 = this.manager.tooltipViews[l10], d10 = f10.dom, h10 = e21.pos[l10], v10 = e21.size[l10]; + if (!h10 || h10.bottom <= Math.max(o10.top, i10.top) || h10.top >= Math.min(o10.bottom, i10.bottom) || h10.right < Math.max(o10.left, i10.left) - 0.1 || h10.left > Math.min(o10.right, i10.right) + 0.1) + d10.style.top = qK; + else { + var p10 = u10.arrow ? f10.dom.querySelector(".cm-tooltip-arrow") : null, m10 = p10 ? 7 : 0, g10 = v10.right - v10.left, y10 = null !== (t10 = FK.get(f10)) && void 0 !== t10 ? t10 : v10.bottom - v10.top, b10 = f10.offset || WK, k10 = this.view.textDirection == rW.LTR, w10 = v10.width > i10.right - i10.left ? k10 ? i10.left : i10.right - v10.width : k10 ? Math.min(h10.left - (p10 ? 14 : 0) + b10.x, i10.right - g10) : Math.max(i10.left, h10.left - g10 + (p10 ? 14 : 0) - b10.x), x10 = this.above[l10]; + !u10.strictSide && (x10 ? h10.top - (v10.bottom - v10.top) - b10.y < i10.top : h10.bottom + (v10.bottom - v10.top) + b10.y > i10.bottom) && x10 == i10.bottom - h10.bottom > h10.top - i10.top && (x10 = this.above[l10] = !x10); + var j10 = (x10 ? h10.top - i10.top : i10.bottom - h10.bottom) - m10; + if (j10 < y10 && false !== f10.resize) { + if (j10 < this.view.defaultLineHeight) { + d10.style.top = qK; + continue; + } + FK.set(f10, y10), d10.style.height = (y10 = j10) / s10 + "px"; + } else + d10.style.height && (d10.style.height = ""); + var S10 = x10 ? h10.top - y10 - m10 - b10.y : h10.bottom + m10 + b10.y, C10 = w10 + g10; + if (true !== f10.overlap) { + var $10, _10 = bo(c10); + try { + for (_10.s(); !($10 = _10.n()).done; ) { + var O10 = $10.value; + O10.left < C10 && O10.right > w10 && O10.top < S10 + y10 && O10.bottom > S10 && (S10 = x10 ? O10.top - y10 - 2 - m10 : O10.bottom + m10 + 2); + } + } catch (e23) { + _10.e(e23); + } finally { + _10.f(); + } + } + if ("absolute" == this.position ? (d10.style.top = (S10 - e21.parent.top) / s10 + "px", d10.style.left = (w10 - e21.parent.left) / a10 + "px") : (d10.style.top = S10 / s10 + "px", d10.style.left = w10 / a10 + "px"), p10) { + var M10 = h10.left + (k10 ? b10.x : -b10.x) - (w10 + 14 - 7); + p10.style.left = M10 / a10 + "px"; + } + true !== f10.overlap && c10.push({ left: w10, top: S10, right: C10, bottom: S10 + y10 }), d10.classList.toggle("cm-tooltip-above", x10), d10.classList.toggle("cm-tooltip-below", !x10), f10.positioned && f10.positioned(e21.space); + } + } + } }, { key: "maybeMeasure", value: function() { + if (this.manager.tooltips.length && (this.view.inView && this.view.requestMeasure(this.measureReq), this.inView != this.view.inView && (this.inView = this.view.inView, !this.inView))) { + var e21, t10 = bo(this.manager.tooltipViews); + try { + for (t10.s(); !(e21 = t10.n()).done; ) { + e21.value.dom.style.top = qK; + } + } catch (e23) { + t10.e(e23); + } finally { + t10.f(); + } + } + } }]), e20; + }(), { eventObservers: { scroll: function() { + this.maybeMeasure(); + } } }); + var HK = zJ.baseTheme({ ".cm-tooltip": { zIndex: 100, boxSizing: "border-box" }, "&light .cm-tooltip": { border: "1px solid #bbb", backgroundColor: "#f5f5f5" }, "&light .cm-tooltip-section:not(:first-child)": { borderTop: "1px solid #bbb" }, "&dark .cm-tooltip": { backgroundColor: "#333338", color: "white" }, ".cm-tooltip-arrow": { height: "".concat(7, "px"), width: "".concat(14, "px"), position: "absolute", zIndex: -1, overflow: "hidden", "&:before, &:after": { content: "''", position: "absolute", width: 0, height: 0, borderLeft: "".concat(7, "px solid transparent"), borderRight: "".concat(7, "px solid transparent") }, ".cm-tooltip-above &": { bottom: "-".concat(7, "px"), "&:before": { borderTop: "".concat(7, "px solid #bbb") }, "&:after": { borderTop: "".concat(7, "px solid #f5f5f5"), bottom: "1px" } }, ".cm-tooltip-below &": { top: "-".concat(7, "px"), "&:before": { borderBottom: "".concat(7, "px solid #bbb") }, "&:after": { borderBottom: "".concat(7, "px solid #f5f5f5"), top: "1px" } } }, "&dark .cm-tooltip .cm-tooltip-arrow": { "&:before": { borderTopColor: "#333338", borderBottomColor: "#333338" }, "&:after": { borderTopColor: "transparent", borderBottomColor: "transparent" } } }); + var WK = { x: 0, y: 0 }; + var UK = MF.define({ enables: [VK, HK] }); + var JK = MF.define(); + var KK = function() { + function e20(t10) { + var n10 = this; + No(this, e20), this.view = t10, this.mounted = false, this.dom = document.createElement("div"), this.dom.classList.add("cm-tooltip-hover"), this.manager = new zK(t10, JK, function(e21) { + return n10.createHostedView(e21); + }); + } + return Do(e20, [{ key: "createHostedView", value: function(e21) { + var t10 = e21.create(this.view); + return t10.dom.classList.add("cm-tooltip-section"), this.dom.appendChild(t10.dom), this.mounted && t10.mount && t10.mount(this.view), t10; + } }, { key: "mount", value: function(e21) { + var t10, n10 = bo(this.manager.tooltipViews); + try { + for (n10.s(); !(t10 = n10.n()).done; ) { + var r10 = t10.value; + r10.mount && r10.mount(e21); + } + } catch (e23) { + n10.e(e23); + } finally { + n10.f(); + } + this.mounted = true; + } }, { key: "positioned", value: function(e21) { + var t10, n10 = bo(this.manager.tooltipViews); + try { + for (n10.s(); !(t10 = n10.n()).done; ) { + var r10 = t10.value; + r10.positioned && r10.positioned(e21); + } + } catch (e23) { + n10.e(e23); + } finally { + n10.f(); + } + } }, { key: "update", value: function(e21) { + this.manager.update(e21); + } }, { key: "destroy", value: function() { + var e21, t10, n10 = bo(this.manager.tooltipViews); + try { + for (n10.s(); !(t10 = n10.n()).done; ) { + var r10 = t10.value; + null === (e21 = r10.destroy) || void 0 === e21 || e21.call(r10); + } + } catch (e23) { + n10.e(e23); + } finally { + n10.f(); + } + } }, { key: "passProp", value: function(e21) { + var t10, n10 = void 0, r10 = bo(this.manager.tooltipViews); + try { + for (r10.s(); !(t10 = r10.n()).done; ) { + var o10 = t10.value[e21]; + if (void 0 !== o10) { + if (void 0 === n10) + n10 = o10; + else if (n10 !== o10) + return; + } + } + } catch (e23) { + r10.e(e23); + } finally { + r10.f(); + } + return n10; + } }, { key: "offset", get: function() { + return this.passProp("offset"); + } }, { key: "getCoords", get: function() { + return this.passProp("getCoords"); + } }, { key: "overlap", get: function() { + return this.passProp("overlap"); + } }, { key: "resize", get: function() { + return this.passProp("resize"); + } }], [{ key: "create", value: function(t10) { + return new e20(t10); + } }]), e20; + }(); + var GK = UK.compute([JK], function(e20) { + var t10 = e20.facet(JK).filter(function(e21) { + return e21; + }); + return 0 === t10.length ? null : { pos: Math.min.apply(Math, Bo(t10.map(function(e21) { + return e21.pos; + }))), end: Math.max.apply(Math, Bo(t10.map(function(e21) { + var t11; + return null !== (t11 = e21.end) && void 0 !== t11 ? t11 : e21.pos; + }))), create: KK.create, above: t10[0].above, arrow: t10.some(function(e21) { + return e21.arrow; + }) }; + }); + var QK = function() { + function e20(t10, n10, r10, o10, i10) { + No(this, e20), this.view = t10, this.source = n10, this.field = r10, this.setHover = o10, this.hoverTime = i10, this.hoverTimeout = -1, this.restartTimeout = -1, this.pending = null, this.lastMove = { x: 0, y: 0, target: t10.dom, time: 0 }, this.checkHover = this.checkHover.bind(this), t10.dom.addEventListener("mouseleave", this.mouseleave = this.mouseleave.bind(this)), t10.dom.addEventListener("mousemove", this.mousemove = this.mousemove.bind(this)); + } + return Do(e20, [{ key: "update", value: function() { + var e21 = this; + this.pending && (this.pending = null, clearTimeout(this.restartTimeout), this.restartTimeout = setTimeout(function() { + return e21.startHover(); + }, 20)); + } }, { key: "active", get: function() { + return this.view.state.field(this.field); + } }, { key: "checkHover", value: function() { + if (this.hoverTimeout = -1, !this.active) { + var e21 = Date.now() - this.lastMove.time; + e21 < this.hoverTime ? this.hoverTimeout = setTimeout(this.checkHover, this.hoverTime - e21) : this.startHover(); + } + } }, { key: "startHover", value: function() { + var e21 = this; + clearTimeout(this.restartTimeout); + var t10 = this.view, n10 = this.lastMove, r10 = t10.docView.nearest(n10.target); + if (r10) { + var o10, i10 = 1; + if (r10 instanceof RH) + o10 = r10.posAtStart; + else { + if (null == (o10 = t10.posAtCoords(n10))) + return; + var a10 = t10.coordsAtPos(o10); + if (!a10 || n10.y < a10.top || n10.y > a10.bottom || n10.x < a10.left - t10.defaultCharacterWidth || n10.x > a10.right + t10.defaultCharacterWidth) + return; + var s10 = t10.bidiSpans(t10.state.doc.lineAt(o10)).find(function(e23) { + return e23.from <= o10 && e23.to >= o10; + }), c10 = s10 && s10.dir == rW.RTL ? -1 : 1; + i10 = n10.x < a10.left ? -c10 : c10; + } + var l10 = this.source(t10, o10, i10); + if (null == l10 ? void 0 : l10.then) { + var u10 = this.pending = { pos: o10 }; + l10.then(function(n11) { + e21.pending == u10 && (e21.pending = null, n11 && t10.dispatch({ effects: e21.setHover.of(n11) })); + }, function(e23) { + return qW(t10.state, e23, "hover tooltip"); + }); + } else + l10 && t10.dispatch({ effects: this.setHover.of(l10) }); + } + } }, { key: "tooltip", get: function() { + var e21 = this.view.plugin(VK), t10 = e21 ? e21.manager.tooltips.findIndex(function(e23) { + return e23.create == KK.create; + }) : -1; + return t10 > -1 ? e21.manager.tooltipViews[t10] : null; + } }, { key: "mousemove", value: function(e21) { + var t10; + this.lastMove = { x: e21.clientX, y: e21.clientY, target: e21.target, time: Date.now() }, this.hoverTimeout < 0 && (this.hoverTimeout = setTimeout(this.checkHover, this.hoverTime)); + var n10 = this.active, r10 = this.tooltip; + if (n10 && r10 && !function(e23, t11) { + var n11 = e23.getBoundingClientRect(); + return t11.clientX >= n11.left - YK && t11.clientX <= n11.right + YK && t11.clientY >= n11.top - YK && t11.clientY <= n11.bottom + YK; + }(r10.dom, e21) || this.pending) { + var o10 = (n10 || this.pending).pos, i10 = null !== (t10 = null == n10 ? void 0 : n10.end) && void 0 !== t10 ? t10 : o10; + (o10 == i10 ? this.view.posAtCoords(this.lastMove) == o10 : function(e23, t11, n11, r11, o11, i11) { + var a10 = e23.scrollDOM.getBoundingClientRect(), s10 = e23.documentTop + e23.documentPadding.top + e23.contentHeight; + if (a10.left > r11 || a10.right < r11 || a10.top > o11 || Math.min(a10.bottom, s10) < o11) + return false; + var c10 = e23.posAtCoords({ x: r11, y: o11 }, false); + return c10 >= t11 && c10 <= n11; + }(this.view, o10, i10, e21.clientX, e21.clientY)) || (this.view.dispatch({ effects: this.setHover.of(null) }), this.pending = null); + } + } }, { key: "mouseleave", value: function(e21) { + if (clearTimeout(this.hoverTimeout), this.hoverTimeout = -1, this.active) { + var t10 = this.tooltip; + t10 && t10.dom.contains(e21.relatedTarget) ? this.watchTooltipLeave(t10.dom) : this.view.dispatch({ effects: this.setHover.of(null) }); + } + } }, { key: "watchTooltipLeave", value: function(e21) { + var t10 = this; + e21.addEventListener("mouseleave", function n10(r10) { + e21.removeEventListener("mouseleave", n10), t10.active && !t10.view.dom.contains(r10.relatedTarget) && t10.view.dispatch({ effects: t10.setHover.of(null) }); + }); + } }, { key: "destroy", value: function() { + clearTimeout(this.hoverTimeout), this.view.dom.removeEventListener("mouseleave", this.mouseleave), this.view.dom.removeEventListener("mousemove", this.mousemove); + } }]), e20; + }(); + var YK = 4; + function XK(e20) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, n10 = oV.define(), r10 = NF.define({ create: function() { + return null; + }, update: function(e21, r11) { + if (e21 && (t10.hideOnChange && (r11.docChanged || r11.selection) || t10.hideOn && t10.hideOn(r11, e21))) + return null; + if (e21 && r11.docChanged) { + var o10 = r11.changes.mapPos(e21.pos, -1, mF.TrackDel); + if (null == o10) + return null; + var i10 = Object.assign(/* @__PURE__ */ Object.create(null), e21); + i10.pos = o10, null != e21.end && (i10.end = r11.changes.mapPos(e21.end)), e21 = i10; + } + var a10, s10 = bo(r11.effects); + try { + for (s10.s(); !(a10 = s10.n()).done; ) { + var c10 = a10.value; + c10.is(n10) && (e21 = c10.value), c10.is(eG) && (e21 = null); + } + } catch (e23) { + s10.e(e23); + } finally { + s10.f(); + } + return e21; + }, provide: function(e21) { + return JK.from(e21); + } }); + return [r10, FW.define(function(o10) { + return new QK(o10, e20, r10, n10, t10.hoverTime || 300); + }), GK]; + } + function ZK(e20, t10) { + var n10 = e20.plugin(VK); + if (!n10) + return null; + var r10 = n10.manager.tooltips.indexOf(t10); + return r10 < 0 ? null : n10.manager.tooltipViews[r10]; + } + var eG = oV.define(); + var tG = MF.define({ combine: function(e20) { + var t10, n10, r10, o10 = bo(e20); + try { + for (o10.s(); !(r10 = o10.n()).done; ) { + var i10 = r10.value; + t10 = t10 || i10.topContainer, n10 = n10 || i10.bottomContainer; + } + } catch (e21) { + o10.e(e21); + } finally { + o10.f(); + } + return { topContainer: t10, bottomContainer: n10 }; + } }); + function nG(e20, t10) { + var n10 = e20.plugin(rG), r10 = n10 ? n10.specs.indexOf(t10) : -1; + return r10 > -1 ? n10.panels[r10] : null; + } + var rG = FW.fromClass(function() { + function e20(t10) { + No(this, e20), this.input = t10.state.facet(aG), this.specs = this.input.filter(function(e21) { + return e21; + }), this.panels = this.specs.map(function(e21) { + return e21(t10); + }); + var n10 = t10.state.facet(tG); + this.top = new oG(t10, true, n10.topContainer), this.bottom = new oG(t10, false, n10.bottomContainer), this.top.sync(this.panels.filter(function(e21) { + return e21.top; + })), this.bottom.sync(this.panels.filter(function(e21) { + return !e21.top; + })); + var r10, o10 = bo(this.panels); + try { + for (o10.s(); !(r10 = o10.n()).done; ) { + var i10 = r10.value; + i10.dom.classList.add("cm-panel"), i10.mount && i10.mount(); + } + } catch (e21) { + o10.e(e21); + } finally { + o10.f(); + } + } + return Do(e20, [{ key: "update", value: function(e21) { + var t10 = e21.state.facet(tG); + this.top.container != t10.topContainer && (this.top.sync([]), this.top = new oG(e21.view, true, t10.topContainer)), this.bottom.container != t10.bottomContainer && (this.bottom.sync([]), this.bottom = new oG(e21.view, false, t10.bottomContainer)), this.top.syncClasses(), this.bottom.syncClasses(); + var n10 = e21.state.facet(aG); + if (n10 != this.input) { + var r10, o10 = n10.filter(function(e23) { + return e23; + }), i10 = [], a10 = [], s10 = [], c10 = [], l10 = bo(o10); + try { + for (l10.s(); !(r10 = l10.n()).done; ) { + var u10 = r10.value, f10 = this.specs.indexOf(u10), d10 = void 0; + f10 < 0 ? (d10 = u10(e21.view), c10.push(d10)) : (d10 = this.panels[f10]).update && d10.update(e21), i10.push(d10), (d10.top ? a10 : s10).push(d10); + } + } catch (e23) { + l10.e(e23); + } finally { + l10.f(); + } + this.specs = o10, this.panels = i10, this.top.sync(a10), this.bottom.sync(s10); + for (var h10 = 0, v10 = c10; h10 < v10.length; h10++) { + var p10 = v10[h10]; + p10.dom.classList.add("cm-panel"), p10.mount && p10.mount(); + } + } else { + var m10, g10 = bo(this.panels); + try { + for (g10.s(); !(m10 = g10.n()).done; ) { + var y10 = m10.value; + y10.update && y10.update(e21); + } + } catch (e23) { + g10.e(e23); + } finally { + g10.f(); + } + } + } }, { key: "destroy", value: function() { + this.top.sync([]), this.bottom.sync([]); + } }]), e20; + }(), { provide: function(e20) { + return zJ.scrollMargins.of(function(t10) { + var n10 = t10.plugin(e20); + return n10 && { top: n10.top.scrollMargin(), bottom: n10.bottom.scrollMargin() }; + }); + } }); + var oG = function() { + function e20(t10, n10, r10) { + No(this, e20), this.view = t10, this.top = n10, this.container = r10, this.dom = void 0, this.classes = "", this.panels = [], this.syncClasses(); + } + return Do(e20, [{ key: "sync", value: function(e21) { + var t10, n10 = bo(this.panels); + try { + for (n10.s(); !(t10 = n10.n()).done; ) { + var r10 = t10.value; + r10.destroy && e21.indexOf(r10) < 0 && r10.destroy(); + } + } catch (e23) { + n10.e(e23); + } finally { + n10.f(); + } + this.panels = e21, this.syncDOM(); + } }, { key: "syncDOM", value: function() { + if (0 != this.panels.length) { + if (!this.dom) { + this.dom = document.createElement("div"), this.dom.className = this.top ? "cm-panels cm-panels-top" : "cm-panels cm-panels-bottom", this.dom.style[this.top ? "top" : "bottom"] = "0"; + var e21 = this.container || this.view.dom; + e21.insertBefore(this.dom, this.top ? e21.firstChild : null); + } + var t10, n10 = this.dom.firstChild, r10 = bo(this.panels); + try { + for (r10.s(); !(t10 = r10.n()).done; ) { + var o10 = t10.value; + if (o10.dom.parentNode == this.dom) { + for (; n10 != o10.dom; ) + n10 = iG(n10); + n10 = n10.nextSibling; + } else + this.dom.insertBefore(o10.dom, n10); + } + } catch (e23) { + r10.e(e23); + } finally { + r10.f(); + } + for (; n10; ) + n10 = iG(n10); + } else + this.dom && (this.dom.remove(), this.dom = void 0); + } }, { key: "scrollMargin", value: function() { + return !this.dom || this.container ? 0 : Math.max(0, this.top ? this.dom.getBoundingClientRect().bottom - Math.max(0, this.view.scrollDOM.getBoundingClientRect().top) : Math.min(innerHeight, this.view.scrollDOM.getBoundingClientRect().bottom) - this.dom.getBoundingClientRect().top); + } }, { key: "syncClasses", value: function() { + if (this.container && this.classes != this.view.themeClasses) { + var e21, t10 = bo(this.classes.split(" ")); + try { + for (t10.s(); !(e21 = t10.n()).done; ) { + var n10 = e21.value; + n10 && this.container.classList.remove(n10); + } + } catch (e23) { + t10.e(e23); + } finally { + t10.f(); + } + var r10, o10 = bo((this.classes = this.view.themeClasses).split(" ")); + try { + for (o10.s(); !(r10 = o10.n()).done; ) { + var i10 = r10.value; + i10 && this.container.classList.add(i10); + } + } catch (e23) { + o10.e(e23); + } finally { + o10.f(); + } + } + } }]), e20; + }(); + function iG(e20) { + var t10 = e20.nextSibling; + return e20.remove(), t10; + } + var aG = MF.define({ enables: rG }); + var sG = function(e20) { + function t10() { + return No(this, t10), _o(this, t10, arguments); + } + return Ao(t10, yV), Do(t10, [{ key: "compare", value: function(e21) { + return this == e21 || this.constructor == e21.constructor && this.eq(e21); + } }, { key: "eq", value: function(e21) { + return false; + } }, { key: "destroy", value: function(e21) { + } }]), t10; + }(); + sG.prototype.elementClass = "", sG.prototype.toDOM = void 0, sG.prototype.mapMode = mF.TrackBefore, sG.prototype.startSide = sG.prototype.endSide = -1, sG.prototype.point = true; + var cG = MF.define(); + var lG = { class: "", renderEmptyElements: false, elementStyle: "", markers: function() { + return xV.empty; + }, lineMarker: function() { + return null; + }, widgetMarker: function() { + return null; + }, lineMarkerChange: null, initialSpacer: null, updateSpacer: null, domEventHandlers: {} }; + var uG = MF.define(); + function fG(e20) { + return [hG(), uG.of(Object.assign(Object.assign({}, lG), e20))]; + } + var dG = MF.define({ combine: function(e20) { + return e20.some(function(e21) { + return e21; + }); + } }); + function hG(e20) { + var t10 = [vG]; + return e20 && false === e20.fixed && t10.push(dG.of(true)), t10; + } + var vG = FW.fromClass(function() { + function e20(t10) { + No(this, e20), this.view = t10, this.prevViewport = t10.viewport, this.dom = document.createElement("div"), this.dom.className = "cm-gutters", this.dom.setAttribute("aria-hidden", "true"), this.dom.style.minHeight = this.view.contentHeight / this.view.scaleY + "px", this.gutters = t10.state.facet(uG).map(function(e21) { + return new yG(t10, e21); + }); + var n10, r10 = bo(this.gutters); + try { + for (r10.s(); !(n10 = r10.n()).done; ) { + var o10 = n10.value; + this.dom.appendChild(o10.dom); + } + } catch (e21) { + r10.e(e21); + } finally { + r10.f(); + } + this.fixed = !t10.state.facet(dG), this.fixed && (this.dom.style.position = "sticky"), this.syncGutters(false), t10.scrollDOM.insertBefore(this.dom, t10.contentDOM); + } + return Do(e20, [{ key: "update", value: function(e21) { + if (this.updateGutters(e21)) { + var t10 = this.prevViewport, n10 = e21.view.viewport, r10 = Math.min(t10.to, n10.to) - Math.max(t10.from, n10.from); + this.syncGutters(r10 < 0.8 * (n10.to - n10.from)); + } + e21.geometryChanged && (this.dom.style.minHeight = this.view.contentHeight + "px"), this.view.state.facet(dG) != !this.fixed && (this.fixed = !this.fixed, this.dom.style.position = this.fixed ? "sticky" : ""), this.prevViewport = e21.view.viewport; + } }, { key: "syncGutters", value: function(e21) { + var t10 = this, n10 = this.dom.nextSibling; + e21 && this.dom.remove(); + var r10, o10 = xV.iter(this.view.state.facet(cG), this.view.viewport.from), i10 = [], a10 = this.gutters.map(function(e23) { + return new gG(e23, t10.view.viewport, -t10.view.documentPadding.top); + }), s10 = bo(this.view.viewportLineBlocks); + try { + for (s10.s(); !(r10 = s10.n()).done; ) { + var c10 = r10.value; + if (i10.length && (i10 = []), Array.isArray(c10.type)) { + var l10, u10 = true, f10 = bo(c10.type); + try { + for (f10.s(); !(l10 = f10.n()).done; ) { + var d10 = l10.value; + if (d10.type == JH.Text && u10) { + mG(o10, i10, d10.from); + var h10, v10 = bo(a10); + try { + for (v10.s(); !(h10 = v10.n()).done; ) { + h10.value.line(this.view, d10, i10); + } + } catch (e23) { + v10.e(e23); + } finally { + v10.f(); + } + u10 = false; + } else if (d10.widget) { + var p10, m10 = bo(a10); + try { + for (m10.s(); !(p10 = m10.n()).done; ) { + p10.value.widget(this.view, d10); + } + } catch (e23) { + m10.e(e23); + } finally { + m10.f(); + } + } + } + } catch (e23) { + f10.e(e23); + } finally { + f10.f(); + } + } else if (c10.type == JH.Text) { + mG(o10, i10, c10.from); + var g10, y10 = bo(a10); + try { + for (y10.s(); !(g10 = y10.n()).done; ) { + g10.value.line(this.view, c10, i10); + } + } catch (e23) { + y10.e(e23); + } finally { + y10.f(); + } + } else if (c10.widget) { + var b10, k10 = bo(a10); + try { + for (k10.s(); !(b10 = k10.n()).done; ) { + b10.value.widget(this.view, c10); + } + } catch (e23) { + k10.e(e23); + } finally { + k10.f(); + } + } + } + } catch (e23) { + s10.e(e23); + } finally { + s10.f(); + } + var w10, x10 = bo(a10); + try { + for (x10.s(); !(w10 = x10.n()).done; ) { + w10.value.finish(); + } + } catch (e23) { + x10.e(e23); + } finally { + x10.f(); + } + e21 && this.view.scrollDOM.insertBefore(this.dom, n10); + } }, { key: "updateGutters", value: function(e21) { + var t10 = e21.startState.facet(uG), n10 = e21.state.facet(uG), r10 = e21.docChanged || e21.heightChanged || e21.viewportChanged || !xV.eq(e21.startState.facet(cG), e21.state.facet(cG), e21.view.viewport.from, e21.view.viewport.to); + if (t10 == n10) { + var o10, i10 = bo(this.gutters); + try { + for (i10.s(); !(o10 = i10.n()).done; ) { + o10.value.update(e21) && (r10 = true); + } + } catch (e23) { + i10.e(e23); + } finally { + i10.f(); + } + } else { + r10 = true; + var a10, s10 = [], c10 = bo(n10); + try { + for (c10.s(); !(a10 = c10.n()).done; ) { + var l10 = a10.value, u10 = t10.indexOf(l10); + u10 < 0 ? s10.push(new yG(this.view, l10)) : (this.gutters[u10].update(e21), s10.push(this.gutters[u10])); + } + } catch (e23) { + c10.e(e23); + } finally { + c10.f(); + } + var f10, d10 = bo(this.gutters); + try { + for (d10.s(); !(f10 = d10.n()).done; ) { + var h10 = f10.value; + h10.dom.remove(), s10.indexOf(h10) < 0 && h10.destroy(); + } + } catch (e23) { + d10.e(e23); + } finally { + d10.f(); + } + for (var v10 = 0, p10 = s10; v10 < p10.length; v10++) { + var m10 = p10[v10]; + this.dom.appendChild(m10.dom); + } + this.gutters = s10; + } + return r10; + } }, { key: "destroy", value: function() { + var e21, t10 = bo(this.gutters); + try { + for (t10.s(); !(e21 = t10.n()).done; ) { + e21.value.destroy(); + } + } catch (e23) { + t10.e(e23); + } finally { + t10.f(); + } + this.dom.remove(); + } }]), e20; + }(), { provide: function(e20) { + return zJ.scrollMargins.of(function(t10) { + var n10 = t10.plugin(e20); + return n10 && 0 != n10.gutters.length && n10.fixed ? t10.textDirection == rW.LTR ? { left: n10.dom.offsetWidth * t10.scaleX } : { right: n10.dom.offsetWidth * t10.scaleX } : null; + }); + } }); + function pG(e20) { + return Array.isArray(e20) ? e20 : [e20]; + } + function mG(e20, t10, n10) { + for (; e20.value && e20.from <= n10; ) + e20.from == n10 && t10.push(e20.value), e20.next(); + } + var gG = function() { + function e20(t10, n10, r10) { + No(this, e20), this.gutter = t10, this.height = r10, this.i = 0, this.cursor = xV.iter(t10.markers, n10.from); + } + return Do(e20, [{ key: "addElement", value: function(e21, t10, n10) { + var r10 = this.gutter, o10 = (t10.top - this.height) / e21.scaleY, i10 = t10.height / e21.scaleY; + if (this.i == r10.elements.length) { + var a10 = new bG(e21, i10, o10, n10); + r10.elements.push(a10), r10.dom.appendChild(a10.dom); + } else + r10.elements[this.i].update(e21, i10, o10, n10); + this.height = t10.bottom, this.i++; + } }, { key: "line", value: function(e21, t10, n10) { + var r10 = []; + mG(this.cursor, r10, t10.from), n10.length && (r10 = r10.concat(n10)); + var o10 = this.gutter.config.lineMarker(e21, t10, r10); + o10 && r10.unshift(o10); + var i10 = this.gutter; + (0 != r10.length || i10.config.renderEmptyElements) && this.addElement(e21, t10, r10); + } }, { key: "widget", value: function(e21, t10) { + var n10 = this.gutter.config.widgetMarker(e21, t10.widget, t10); + n10 && this.addElement(e21, t10, [n10]); + } }, { key: "finish", value: function() { + for (var e21 = this.gutter; e21.elements.length > this.i; ) { + var t10 = e21.elements.pop(); + e21.dom.removeChild(t10.dom), t10.destroy(); + } + } }]), e20; + }(); + var yG = function() { + function e20(t10, n10) { + var r10 = this; + No(this, e20), this.view = t10, this.config = n10, this.elements = [], this.spacer = null, this.dom = document.createElement("div"), this.dom.className = "cm-gutter" + (this.config.class ? " " + this.config.class : ""); + var o10 = function(e21) { + r10.dom.addEventListener(e21, function(o11) { + var i11, a10 = o11.target; + if (a10 != r10.dom && r10.dom.contains(a10)) { + for (; a10.parentNode != r10.dom; ) + a10 = a10.parentNode; + var s10 = a10.getBoundingClientRect(); + i11 = (s10.top + s10.bottom) / 2; + } else + i11 = o11.clientY; + var c10 = t10.lineBlockAtHeight(i11 - t10.documentTop); + n10.domEventHandlers[e21](t10, c10, o11) && o11.preventDefault(); + }); + }; + for (var i10 in n10.domEventHandlers) + o10(i10); + this.markers = pG(n10.markers(t10)), n10.initialSpacer && (this.spacer = new bG(t10, 0, 0, [n10.initialSpacer(t10)]), this.dom.appendChild(this.spacer.dom), this.spacer.dom.style.cssText += "visibility: hidden; pointer-events: none"); + } + return Do(e20, [{ key: "update", value: function(e21) { + var t10 = this.markers; + if (this.markers = pG(this.config.markers(e21.view)), this.spacer && this.config.updateSpacer) { + var n10 = this.config.updateSpacer(this.spacer.markers[0], e21); + n10 != this.spacer.markers[0] && this.spacer.update(e21.view, 0, 0, [n10]); + } + var r10 = e21.view.viewport; + return !xV.eq(this.markers, t10, r10.from, r10.to) || !!this.config.lineMarkerChange && this.config.lineMarkerChange(e21); + } }, { key: "destroy", value: function() { + var e21, t10 = bo(this.elements); + try { + for (t10.s(); !(e21 = t10.n()).done; ) { + e21.value.destroy(); + } + } catch (e23) { + t10.e(e23); + } finally { + t10.f(); + } + } }]), e20; + }(); + var bG = function() { + function e20(t10, n10, r10, o10) { + No(this, e20), this.height = -1, this.above = 0, this.markers = [], this.dom = document.createElement("div"), this.dom.className = "cm-gutterElement", this.update(t10, n10, r10, o10); + } + return Do(e20, [{ key: "update", value: function(e21, t10, n10, r10) { + this.height != t10 && (this.height = t10, this.dom.style.height = t10 + "px"), this.above != n10 && (this.dom.style.marginTop = (this.above = n10) ? n10 + "px" : ""), function(e23, t11) { + if (e23.length != t11.length) + return false; + for (var n11 = 0; n11 < e23.length; n11++) + if (!e23[n11].compare(t11[n11])) + return false; + return true; + }(this.markers, r10) || this.setMarkers(e21, r10); + } }, { key: "setMarkers", value: function(e21, t10) { + for (var n10 = "cm-gutterElement", r10 = this.dom.firstChild, o10 = 0, i10 = 0; ; ) { + var a10 = i10, s10 = o10 < t10.length ? t10[o10++] : null, c10 = false; + if (s10) { + var l10 = s10.elementClass; + l10 && (n10 += " " + l10); + for (var u10 = i10; u10 < this.markers.length; u10++) + if (this.markers[u10].compare(s10)) { + a10 = u10, c10 = true; + break; + } + } else + a10 = this.markers.length; + for (; i10 < a10; ) { + var f10 = this.markers[i10++]; + if (f10.toDOM) { + f10.destroy(r10); + var d10 = r10.nextSibling; + r10.remove(), r10 = d10; + } + } + if (!s10) + break; + s10.toDOM && (c10 ? r10 = r10.nextSibling : this.dom.insertBefore(s10.toDOM(e21), r10)), c10 && i10++; + } + this.dom.className = n10, this.markers = t10; + } }, { key: "destroy", value: function() { + this.setMarkers(null, []); + } }]), e20; + }(); + var kG = MF.define(); + var wG = MF.define({ combine: function(e20) { + return gV(e20, { formatNumber: String, domEventHandlers: {} }, { domEventHandlers: function(e21, t10) { + var n10 = Object.assign({}, e21), r10 = function() { + var e23 = n10[o10], r11 = t10[o10]; + n10[o10] = e23 ? function(t11, n11, o11) { + return e23(t11, n11, o11) || r11(t11, n11, o11); + } : r11; + }; + for (var o10 in t10) + r10(); + return n10; + } }); + } }); + var xG = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), (n10 = _o(this, t10)).number = e21, n10; + } + return Ao(t10, sG), Do(t10, [{ key: "eq", value: function(e21) { + return this.number == e21.number; + } }, { key: "toDOM", value: function() { + return document.createTextNode(this.number); + } }]), t10; + }(); + function jG(e20, t10) { + return e20.state.facet(wG).formatNumber(t10, e20.state); + } + var SG = uG.compute([wG], function(e20) { + return { class: "cm-lineNumbers", renderEmptyElements: false, markers: function(e21) { + return e21.state.facet(kG); + }, lineMarker: function(e21, t10, n10) { + return n10.some(function(e23) { + return e23.toDOM; + }) ? null : new xG(jG(e21, e21.state.doc.lineAt(t10.from).number)); + }, widgetMarker: function() { + return null; + }, lineMarkerChange: function(e21) { + return e21.startState.facet(wG) != e21.state.facet(wG); + }, initialSpacer: function(e21) { + return new xG(jG(e21, $G(e21.state.doc.lines))); + }, updateSpacer: function(e21, t10) { + var n10 = jG(t10.view, $G(t10.view.state.doc.lines)); + return n10 == e21.number ? e21 : new xG(n10); + }, domEventHandlers: e20.facet(wG).domEventHandlers }; + }); + function CG() { + var e20 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + return [wG.of(e20), hG(), SG]; + } + function $G(e20) { + for (var t10 = 9; t10 < e20; ) + t10 = 10 * t10 + 9; + return t10; + } + var _G = new (function(e20) { + function t10() { + var e21; + return No(this, t10), (e21 = _o(this, t10, arguments)).elementClass = "cm-activeLineGutter", e21; + } + return Ao(t10, sG), Do(t10); + }())(); + var OG = cG.compute(["selection"], function(e20) { + var t10, n10 = [], r10 = -1, o10 = bo(e20.selection.ranges); + try { + for (o10.s(); !(t10 = o10.n()).done; ) { + var i10 = t10.value, a10 = e20.doc.lineAt(i10.head).from; + a10 > r10 && (r10 = a10, n10.push(_G.range(a10))); + } + } catch (e21) { + o10.e(e21); + } finally { + o10.f(); + } + return xV.of(n10); + }); + var MG = 0; + var EG = Do(function e7(t10, n10) { + No(this, e7), this.from = t10, this.to = n10; + }); + var AG = function() { + function e20() { + var t10 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + No(this, e20), this.id = MG++, this.perNode = !!t10.perNode, this.deserialize = t10.deserialize || function() { + throw new Error("This node type doesn't define a deserialize function"); + }; + } + return Do(e20, [{ key: "add", value: function(e21) { + var t10 = this; + if (this.perNode) + throw new RangeError("Can't add per-node props to node types"); + return "function" != typeof e21 && (e21 = RG.match(e21)), function(n10) { + var r10 = e21(n10); + return void 0 === r10 ? null : [t10, r10]; + }; + } }]), e20; + }(); + AG.closedBy = new AG({ deserialize: function(e20) { + return e20.split(" "); + } }), AG.openedBy = new AG({ deserialize: function(e20) { + return e20.split(" "); + } }), AG.group = new AG({ deserialize: function(e20) { + return e20.split(" "); + } }), AG.contextHash = new AG({ perNode: true }), AG.lookAhead = new AG({ perNode: true }), AG.mounted = new AG({ perNode: true }); + var PG = function() { + function e20(t10, n10, r10) { + No(this, e20), this.tree = t10, this.overlay = n10, this.parser = r10; + } + return Do(e20, null, [{ key: "get", value: function(e21) { + return e21 && e21.props && e21.props[AG.mounted.id]; + } }]), e20; + }(); + var TG = /* @__PURE__ */ Object.create(null); + var RG = function() { + function e20(t10, n10, r10) { + var o10 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0; + No(this, e20), this.name = t10, this.props = n10, this.id = r10, this.flags = o10; + } + return Do(e20, [{ key: "prop", value: function(e21) { + return this.props[e21.id]; + } }, { key: "isTop", get: function() { + return (1 & this.flags) > 0; + } }, { key: "isSkipped", get: function() { + return (2 & this.flags) > 0; + } }, { key: "isError", get: function() { + return (4 & this.flags) > 0; + } }, { key: "isAnonymous", get: function() { + return (8 & this.flags) > 0; + } }, { key: "is", value: function(e21) { + if ("string" == typeof e21) { + if (this.name == e21) + return true; + var t10 = this.prop(AG.group); + return !!t10 && t10.indexOf(e21) > -1; + } + return this.id == e21; + } }], [{ key: "define", value: function(t10) { + var n10 = t10.props && t10.props.length ? /* @__PURE__ */ Object.create(null) : TG, r10 = (t10.top ? 1 : 0) | (t10.skipped ? 2 : 0) | (t10.error ? 4 : 0) | (null == t10.name ? 8 : 0), o10 = new e20(t10.name || "", n10, t10.id, r10); + if (t10.props) { + var i10, a10 = bo(t10.props); + try { + for (a10.s(); !(i10 = a10.n()).done; ) { + var s10 = i10.value; + if (Array.isArray(s10) || (s10 = s10(o10)), s10) { + if (s10[0].perNode) + throw new RangeError("Can't store a per-node prop on a node type"); + n10[s10[0].id] = s10[1]; + } + } + } catch (e21) { + a10.e(e21); + } finally { + a10.f(); + } + } + return o10; + } }, { key: "match", value: function(e21) { + var t10 = /* @__PURE__ */ Object.create(null); + for (var n10 in e21) { + var r10, o10 = bo(n10.split(" ")); + try { + for (o10.s(); !(r10 = o10.n()).done; ) { + var i10 = r10.value; + t10[i10] = e21[n10]; + } + } catch (e23) { + o10.e(e23); + } finally { + o10.f(); + } + } + return function(e23) { + for (var n11 = e23.prop(AG.group), r11 = -1; r11 < (n11 ? n11.length : 0); r11++) { + var o11 = t10[r11 < 0 ? e23.name : n11[r11]]; + if (o11) + return o11; + } + }; + } }]), e20; + }(); + RG.none = new RG("", /* @__PURE__ */ Object.create(null), 0, 8); + var NG; + var IG = function() { + function e20(t10) { + No(this, e20), this.types = t10; + for (var n10 = 0; n10 < t10.length; n10++) + if (t10[n10].id != n10) + throw new RangeError("Node type ids should correspond to array positions when creating a node set"); + } + return Do(e20, [{ key: "extend", value: function() { + for (var t10 = [], n10 = arguments.length, r10 = new Array(n10), o10 = 0; o10 < n10; o10++) + r10[o10] = arguments[o10]; + var i10, a10 = bo(this.types); + try { + for (a10.s(); !(i10 = a10.n()).done; ) { + var s10, c10 = i10.value, l10 = null, u10 = bo(r10); + try { + for (u10.s(); !(s10 = u10.n()).done; ) { + var f10 = (0, s10.value)(c10); + f10 && (l10 || (l10 = Object.assign({}, c10.props)), l10[f10[0].id] = f10[1]); + } + } catch (e21) { + u10.e(e21); + } finally { + u10.f(); + } + t10.push(l10 ? new RG(c10.name, l10, c10.id, c10.flags) : c10); + } + } catch (e21) { + a10.e(e21); + } finally { + a10.f(); + } + return new e20(t10); + } }]), e20; + }(); + var DG = /* @__PURE__ */ new WeakMap(); + var qG = /* @__PURE__ */ new WeakMap(); + !function(e20) { + e20[e20.ExcludeBuffers = 1] = "ExcludeBuffers", e20[e20.IncludeAnonymous = 2] = "IncludeAnonymous", e20[e20.IgnoreMounts = 4] = "IgnoreMounts", e20[e20.IgnoreOverlays = 8] = "IgnoreOverlays"; + }(NG || (NG = {})); + var zG = function() { + function e20(t10, n10, r10, o10, i10) { + if (No(this, e20), this.type = t10, this.children = n10, this.positions = r10, this.length = o10, this.props = null, i10 && i10.length) { + this.props = /* @__PURE__ */ Object.create(null); + var a10, s10 = bo(i10); + try { + for (s10.s(); !(a10 = s10.n()).done; ) { + var c10 = jo(a10.value, 2), l10 = c10[0], u10 = c10[1]; + this.props["number" == typeof l10 ? l10 : l10.id] = u10; + } + } catch (e21) { + s10.e(e21); + } finally { + s10.f(); + } + } + } + return Do(e20, [{ key: "toString", value: function() { + var e21 = PG.get(this); + if (e21 && !e21.overlay) + return e21.tree.toString(); + var t10, n10 = "", r10 = bo(this.children); + try { + for (r10.s(); !(t10 = r10.n()).done; ) { + var o10 = t10.value.toString(); + o10 && (n10 && (n10 += ","), n10 += o10); + } + } catch (e23) { + r10.e(e23); + } finally { + r10.f(); + } + return this.type.name ? (/\W/.test(this.type.name) && !this.type.isError ? JSON.stringify(this.type.name) : this.type.name) + (n10.length ? "(" + n10 + ")" : "") : n10; + } }, { key: "cursor", value: function() { + var e21 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0; + return new XG(this.topNode, e21); + } }, { key: "cursorAt", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n10 = DG.get(this) || this.topNode, r10 = new XG(n10); + return r10.moveTo(e21, t10), DG.set(this, r10._tree), r10; + } }, { key: "topNode", get: function() { + return new WG(this, 0, 0, null); + } }, { key: "resolve", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n10 = VG(DG.get(this) || this.topNode, e21, t10, false); + return DG.set(this, n10), n10; + } }, { key: "resolveInner", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n10 = VG(qG.get(this) || this.topNode, e21, t10, true); + return qG.set(this, n10), n10; + } }, { key: "resolveStack", value: function(e21) { + return function(e23, t10, n10) { + for (var r10 = e23.resolveInner(t10, n10), o10 = null, i10 = r10 instanceof WG ? r10 : r10.context.parent; i10; i10 = i10.parent) + if (i10.index < 0) { + var a10 = i10.parent; + (o10 || (o10 = [r10])).push(a10.resolve(t10, n10)), i10 = a10; + } else { + var s10 = PG.get(i10.tree); + if (s10 && s10.overlay && s10.overlay[0].from <= t10 && s10.overlay[s10.overlay.length - 1].to >= t10) { + var c10 = new WG(s10.tree, s10.overlay[0].from + i10.from, -1, i10); + (o10 || (o10 = [r10])).push(VG(c10, t10, n10, false)); + } + } + return o10 ? QG(o10) : r10; + }(this, e21, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0); + } }, { key: "iterate", value: function(e21) { + for (var t10 = e21.enter, n10 = e21.leave, r10 = e21.from, o10 = void 0 === r10 ? 0 : r10, i10 = e21.to, a10 = void 0 === i10 ? this.length : i10, s10 = e21.mode || 0, c10 = (s10 & NG.IncludeAnonymous) > 0, l10 = this.cursor(s10 | NG.IncludeAnonymous); ; ) { + var u10 = false; + if (l10.from <= a10 && l10.to >= o10 && (!c10 && l10.type.isAnonymous || false !== t10(l10))) { + if (l10.firstChild()) + continue; + u10 = true; + } + for (; u10 && n10 && (c10 || !l10.type.isAnonymous) && n10(l10), !l10.nextSibling(); ) { + if (!l10.parent()) + return; + u10 = true; + } + } + } }, { key: "prop", value: function(e21) { + return e21.perNode ? this.props ? this.props[e21.id] : void 0 : this.type.prop(e21); + } }, { key: "propValues", get: function() { + var e21 = []; + if (this.props) + for (var t10 in this.props) + e21.push([+t10, this.props[t10]]); + return e21; + } }, { key: "balance", value: function() { + var t10 = this, n10 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + return this.children.length <= 8 ? this : rQ(RG.none, this.children, this.positions, 0, this.children.length, 0, this.length, function(n11, r10, o10) { + return new e20(t10.type, n11, r10, o10, t10.propValues); + }, n10.makeTree || function(t11, n11, r10) { + return new e20(RG.none, t11, n11, r10); + }); + } }], [{ key: "build", value: function(e21) { + return eQ(e21); + } }]), e20; + }(); + zG.empty = new zG(RG.none, [], [], 0); + var BG = function() { + function e20(t10, n10) { + No(this, e20), this.buffer = t10, this.index = n10; + } + return Do(e20, [{ key: "id", get: function() { + return this.buffer[this.index - 4]; + } }, { key: "start", get: function() { + return this.buffer[this.index - 3]; + } }, { key: "end", get: function() { + return this.buffer[this.index - 2]; + } }, { key: "size", get: function() { + return this.buffer[this.index - 1]; + } }, { key: "pos", get: function() { + return this.index; + } }, { key: "next", value: function() { + this.index -= 4; + } }, { key: "fork", value: function() { + return new e20(this.buffer, this.index); + } }]), e20; + }(); + var LG = function() { + function e20(t10, n10, r10) { + No(this, e20), this.buffer = t10, this.length = n10, this.set = r10; + } + return Do(e20, [{ key: "type", get: function() { + return RG.none; + } }, { key: "toString", value: function() { + for (var e21 = [], t10 = 0; t10 < this.buffer.length; ) + e21.push(this.childString(t10)), t10 = this.buffer[t10 + 3]; + return e21.join(","); + } }, { key: "childString", value: function(e21) { + var t10 = this.buffer[e21], n10 = this.buffer[e21 + 3], r10 = this.set.types[t10], o10 = r10.name; + if (/\W/.test(o10) && !r10.isError && (o10 = JSON.stringify(o10)), n10 == (e21 += 4)) + return o10; + for (var i10 = []; e21 < n10; ) + i10.push(this.childString(e21)), e21 = this.buffer[e21 + 3]; + return o10 + "(" + i10.join(",") + ")"; + } }, { key: "findChild", value: function(e21, t10, n10, r10, o10) { + for (var i10 = this.buffer, a10 = -1, s10 = e21; s10 != t10 && !(FG(o10, r10, i10[s10 + 1], i10[s10 + 2]) && (a10 = s10, n10 > 0)); s10 = i10[s10 + 3]) + ; + return a10; + } }, { key: "slice", value: function(t10, n10, r10) { + for (var o10 = this.buffer, i10 = new Uint16Array(n10 - t10), a10 = 0, s10 = t10, c10 = 0; s10 < n10; ) { + i10[c10++] = o10[s10++], i10[c10++] = o10[s10++] - r10; + var l10 = i10[c10++] = o10[s10++] - r10; + i10[c10++] = o10[s10++] - t10, a10 = Math.max(a10, l10); + } + return new e20(i10, a10, this.set); + } }]), e20; + }(); + function FG(e20, t10, n10, r10) { + switch (e20) { + case -2: + return n10 < t10; + case -1: + return r10 >= t10 && n10 < t10; + case 0: + return n10 < t10 && r10 > t10; + case 1: + return n10 <= t10 && r10 > t10; + case 2: + return r10 > t10; + case 4: + return true; + } + } + function VG(e20, t10, n10, r10) { + for (var o10; e20.from == e20.to || (n10 < 1 ? e20.from >= t10 : e20.from > t10) || (n10 > -1 ? e20.to <= t10 : e20.to < t10); ) { + var i10 = !r10 && e20 instanceof WG && e20.index < 0 ? null : e20.parent; + if (!i10) + return e20; + e20 = i10; + } + var a10 = r10 ? 0 : NG.IgnoreOverlays; + if (r10) + for (var s10 = e20, c10 = s10.parent; c10; c10 = (s10 = c10).parent) + s10 instanceof WG && s10.index < 0 && (null === (o10 = c10.enter(t10, n10, a10)) || void 0 === o10 ? void 0 : o10.from) != s10.from && (e20 = c10); + for (; ; ) { + var l10 = e20.enter(t10, n10, a10); + if (!l10) + return e20; + e20 = l10; + } + } + var HG = function() { + function e20() { + No(this, e20); + } + return Do(e20, [{ key: "cursor", value: function() { + return new XG(this, arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0); + } }, { key: "getChild", value: function(e21) { + var t10 = UG(this, e21, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null); + return t10.length ? t10[0] : null; + } }, { key: "getChildren", value: function(e21) { + return UG(this, e21, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null); + } }, { key: "resolve", value: function(e21) { + return VG(this, e21, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, false); + } }, { key: "resolveInner", value: function(e21) { + return VG(this, e21, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, true); + } }, { key: "matchContext", value: function(e21) { + return JG(this, e21); + } }, { key: "enterUnfinishedNodesBefore", value: function(e21) { + for (var t10 = this.childBefore(e21), n10 = this; t10; ) { + var r10 = t10.lastChild; + if (!r10 || r10.to != t10.to) + break; + r10.type.isError && r10.from == r10.to ? (n10 = t10, t10 = r10.prevSibling) : t10 = r10; + } + return n10; + } }, { key: "node", get: function() { + return this; + } }, { key: "next", get: function() { + return this.parent; + } }]), e20; + }(); + var WG = function(e20) { + function t10(e21, n10, r10, o10) { + var i10; + return No(this, t10), (i10 = _o(this, t10))._tree = e21, i10.from = n10, i10.index = r10, i10._parent = o10, i10; + } + return Ao(t10, HG), Do(t10, [{ key: "type", get: function() { + return this._tree.type; + } }, { key: "name", get: function() { + return this._tree.type.name; + } }, { key: "to", get: function() { + return this.from + this._tree.length; + } }, { key: "nextChild", value: function(e21, n10, r10, o10) { + for (var i10 = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0, a10 = this; ; ) { + for (var s10 = a10._tree, c10 = s10.children, l10 = s10.positions, u10 = n10 > 0 ? c10.length : -1; e21 != u10; e21 += n10) { + var f10 = c10[e21], d10 = l10[e21] + a10.from; + if (FG(o10, r10, d10, d10 + f10.length)) { + if (f10 instanceof LG) { + if (i10 & NG.ExcludeBuffers) + continue; + var h10 = f10.findChild(0, f10.buffer.length, n10, r10 - d10, o10); + if (h10 > -1) + return new GG(new KG(a10, f10, e21, d10), null, h10); + } else if (i10 & NG.IncludeAnonymous || !f10.type.isAnonymous || ZG(f10)) { + var v10 = void 0; + if (!(i10 & NG.IgnoreMounts) && (v10 = PG.get(f10)) && !v10.overlay) + return new t10(v10.tree, d10, e21, a10); + var p10 = new t10(f10, d10, e21, a10); + return i10 & NG.IncludeAnonymous || !p10.type.isAnonymous ? p10 : p10.nextChild(n10 < 0 ? f10.children.length - 1 : 0, n10, r10, o10); + } + } + } + if (i10 & NG.IncludeAnonymous || !a10.type.isAnonymous) + return null; + if (e21 = a10.index >= 0 ? a10.index + n10 : n10 < 0 ? -1 : a10._parent._tree.children.length, !(a10 = a10._parent)) + return null; + } + } }, { key: "firstChild", get: function() { + return this.nextChild(0, 1, 0, 4); + } }, { key: "lastChild", get: function() { + return this.nextChild(this._tree.children.length - 1, -1, 0, 4); + } }, { key: "childAfter", value: function(e21) { + return this.nextChild(0, 1, e21, 2); + } }, { key: "childBefore", value: function(e21) { + return this.nextChild(this._tree.children.length - 1, -1, e21, -2); + } }, { key: "enter", value: function(e21, n10) { + var r10, o10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0; + if (!(o10 & NG.IgnoreOverlays) && (r10 = PG.get(this._tree)) && r10.overlay) { + var i10, a10 = e21 - this.from, s10 = bo(r10.overlay); + try { + for (s10.s(); !(i10 = s10.n()).done; ) { + var c10 = i10.value, l10 = c10.from, u10 = c10.to; + if ((n10 > 0 ? l10 <= a10 : l10 < a10) && (n10 < 0 ? u10 >= a10 : u10 > a10)) + return new t10(r10.tree, r10.overlay[0].from + this.from, -1, this); + } + } catch (e23) { + s10.e(e23); + } finally { + s10.f(); + } + } + return this.nextChild(0, 1, e21, n10, o10); + } }, { key: "nextSignificantParent", value: function() { + for (var e21 = this; e21.type.isAnonymous && e21._parent; ) + e21 = e21._parent; + return e21; + } }, { key: "parent", get: function() { + return this._parent ? this._parent.nextSignificantParent() : null; + } }, { key: "nextSibling", get: function() { + return this._parent && this.index >= 0 ? this._parent.nextChild(this.index + 1, 1, 0, 4) : null; + } }, { key: "prevSibling", get: function() { + return this._parent && this.index >= 0 ? this._parent.nextChild(this.index - 1, -1, 0, 4) : null; + } }, { key: "tree", get: function() { + return this._tree; + } }, { key: "toTree", value: function() { + return this._tree; + } }, { key: "toString", value: function() { + return this._tree.toString(); + } }]), t10; + }(); + function UG(e20, t10, n10, r10) { + var o10 = e20.cursor(), i10 = []; + if (!o10.firstChild()) + return i10; + if (null != n10) { + for (; !o10.type.is(n10); ) + if (!o10.nextSibling()) + return i10; + } + for (; ; ) { + if (null != r10 && o10.type.is(r10)) + return i10; + if (o10.type.is(t10) && i10.push(o10.node), !o10.nextSibling()) + return null == r10 ? i10 : []; + } + } + function JG(e20, t10) { + for (var n10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : t10.length - 1, r10 = e20.parent; n10 >= 0; r10 = r10.parent) { + if (!r10) + return false; + if (!r10.type.isAnonymous) { + if (t10[n10] && t10[n10] != r10.name) + return false; + n10--; + } + } + return true; + } + var KG = Do(function e8(t10, n10, r10, o10) { + No(this, e8), this.parent = t10, this.buffer = n10, this.index = r10, this.start = o10; + }); + var GG = function(e20) { + function t10(e21, n10, r10) { + var o10; + return No(this, t10), (o10 = _o(this, t10)).context = e21, o10._parent = n10, o10.index = r10, o10.type = e21.buffer.set.types[e21.buffer.buffer[r10]], o10; + } + return Ao(t10, HG), Do(t10, [{ key: "name", get: function() { + return this.type.name; + } }, { key: "from", get: function() { + return this.context.start + this.context.buffer.buffer[this.index + 1]; + } }, { key: "to", get: function() { + return this.context.start + this.context.buffer.buffer[this.index + 2]; + } }, { key: "child", value: function(e21, n10, r10) { + var o10 = this.context.buffer, i10 = o10.findChild(this.index + 4, o10.buffer[this.index + 3], e21, n10 - this.context.start, r10); + return i10 < 0 ? null : new t10(this.context, this, i10); + } }, { key: "firstChild", get: function() { + return this.child(1, 0, 4); + } }, { key: "lastChild", get: function() { + return this.child(-1, 0, 4); + } }, { key: "childAfter", value: function(e21) { + return this.child(1, e21, 2); + } }, { key: "childBefore", value: function(e21) { + return this.child(-1, e21, -2); + } }, { key: "enter", value: function(e21, n10) { + if ((arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0) & NG.ExcludeBuffers) + return null; + var r10 = this.context.buffer, o10 = r10.findChild(this.index + 4, r10.buffer[this.index + 3], n10 > 0 ? 1 : -1, e21 - this.context.start, n10); + return o10 < 0 ? null : new t10(this.context, this, o10); + } }, { key: "parent", get: function() { + return this._parent || this.context.parent.nextSignificantParent(); + } }, { key: "externalSibling", value: function(e21) { + return this._parent ? null : this.context.parent.nextChild(this.context.index + e21, e21, 0, 4); + } }, { key: "nextSibling", get: function() { + var e21 = this.context.buffer, n10 = e21.buffer[this.index + 3]; + return n10 < (this._parent ? e21.buffer[this._parent.index + 3] : e21.buffer.length) ? new t10(this.context, this._parent, n10) : this.externalSibling(1); + } }, { key: "prevSibling", get: function() { + var e21 = this.context.buffer, n10 = this._parent ? this._parent.index + 4 : 0; + return this.index == n10 ? this.externalSibling(-1) : new t10(this.context, this._parent, e21.findChild(n10, this.index, -1, 0, 4)); + } }, { key: "tree", get: function() { + return null; + } }, { key: "toTree", value: function() { + var e21 = [], t11 = [], n10 = this.context.buffer, r10 = this.index + 4, o10 = n10.buffer[this.index + 3]; + if (o10 > r10) { + var i10 = n10.buffer[this.index + 1]; + e21.push(n10.slice(r10, o10, i10)), t11.push(0); + } + return new zG(this.type, e21, t11, this.to - this.from); + } }, { key: "toString", value: function() { + return this.context.buffer.childString(this.index); + } }]), t10; + }(); + function QG(e20) { + if (!e20.length) + return null; + for (var t10 = 0, n10 = e20[0], r10 = 1; r10 < e20.length; r10++) { + var o10 = e20[r10]; + (o10.from > n10.from || o10.to < n10.to) && (n10 = o10, t10 = r10); + } + var i10 = n10 instanceof WG && n10.index < 0 ? null : n10.parent, a10 = e20.slice(); + return i10 ? a10[t10] = i10 : a10.splice(t10, 1), new YG(a10, n10); + } + var YG = function() { + function e20(t10, n10) { + No(this, e20), this.heads = t10, this.node = n10; + } + return Do(e20, [{ key: "next", get: function() { + return QG(this.heads); + } }]), e20; + }(); + var XG = function() { + function e20(t10) { + var n10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0; + if (No(this, e20), this.mode = n10, this.buffer = null, this.stack = [], this.index = 0, this.bufferNode = null, t10 instanceof WG) + this.yieldNode(t10); + else { + this._tree = t10.context.parent, this.buffer = t10.context; + for (var r10 = t10._parent; r10; r10 = r10._parent) + this.stack.unshift(r10.index); + this.bufferNode = t10, this.yieldBuf(t10.index); + } + } + return Do(e20, [{ key: "name", get: function() { + return this.type.name; + } }, { key: "yieldNode", value: function(e21) { + return !!e21 && (this._tree = e21, this.type = e21.type, this.from = e21.from, this.to = e21.to, true); + } }, { key: "yieldBuf", value: function(e21, t10) { + this.index = e21; + var n10 = this.buffer, r10 = n10.start, o10 = n10.buffer; + return this.type = t10 || o10.set.types[o10.buffer[e21]], this.from = r10 + o10.buffer[e21 + 1], this.to = r10 + o10.buffer[e21 + 2], true; + } }, { key: "yield", value: function(e21) { + return !!e21 && (e21 instanceof WG ? (this.buffer = null, this.yieldNode(e21)) : (this.buffer = e21.context, this.yieldBuf(e21.index, e21.type))); + } }, { key: "toString", value: function() { + return this.buffer ? this.buffer.buffer.childString(this.index) : this._tree.toString(); + } }, { key: "enterChild", value: function(e21, t10, n10) { + if (!this.buffer) + return this.yield(this._tree.nextChild(e21 < 0 ? this._tree._tree.children.length - 1 : 0, e21, t10, n10, this.mode)); + var r10 = this.buffer.buffer, o10 = r10.findChild(this.index + 4, r10.buffer[this.index + 3], e21, t10 - this.buffer.start, n10); + return !(o10 < 0) && (this.stack.push(this.index), this.yieldBuf(o10)); + } }, { key: "firstChild", value: function() { + return this.enterChild(1, 0, 4); + } }, { key: "lastChild", value: function() { + return this.enterChild(-1, 0, 4); + } }, { key: "childAfter", value: function(e21) { + return this.enterChild(1, e21, 2); + } }, { key: "childBefore", value: function(e21) { + return this.enterChild(-1, e21, -2); + } }, { key: "enter", value: function(e21, t10) { + var n10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : this.mode; + return this.buffer ? !(n10 & NG.ExcludeBuffers) && this.enterChild(1, e21, t10) : this.yield(this._tree.enter(e21, t10, n10)); + } }, { key: "parent", value: function() { + if (!this.buffer) + return this.yieldNode(this.mode & NG.IncludeAnonymous ? this._tree._parent : this._tree.parent); + if (this.stack.length) + return this.yieldBuf(this.stack.pop()); + var e21 = this.mode & NG.IncludeAnonymous ? this.buffer.parent : this.buffer.parent.nextSignificantParent(); + return this.buffer = null, this.yieldNode(e21); + } }, { key: "sibling", value: function(e21) { + if (!this.buffer) + return !!this._tree._parent && this.yield(this._tree.index < 0 ? null : this._tree._parent.nextChild(this._tree.index + e21, e21, 0, 4, this.mode)); + var t10 = this.buffer.buffer, n10 = this.stack.length - 1; + if (e21 < 0) { + var r10 = n10 < 0 ? 0 : this.stack[n10] + 4; + if (this.index != r10) + return this.yieldBuf(t10.findChild(r10, this.index, -1, 0, 4)); + } else { + var o10 = t10.buffer[this.index + 3]; + if (o10 < (n10 < 0 ? t10.buffer.length : t10.buffer[this.stack[n10] + 3])) + return this.yieldBuf(o10); + } + return n10 < 0 && this.yield(this.buffer.parent.nextChild(this.buffer.index + e21, e21, 0, 4, this.mode)); + } }, { key: "nextSibling", value: function() { + return this.sibling(1); + } }, { key: "prevSibling", value: function() { + return this.sibling(-1); + } }, { key: "atLastNode", value: function(e21) { + var t10, n10, r10 = this.buffer; + if (r10) { + if (e21 > 0) { + if (this.index < r10.buffer.buffer.length) + return false; + } else + for (var o10 = 0; o10 < this.index; o10++) + if (r10.buffer.buffer[o10 + 3] < this.index) + return false; + t10 = r10.index, n10 = r10.parent; + } else { + var i10 = this._tree; + t10 = i10.index, n10 = i10._parent; + } + for (; n10; t10 = (a10 = n10).index, n10 = a10._parent, a10) { + var a10; + if (t10 > -1) + for (var s10 = t10 + e21, c10 = e21 < 0 ? -1 : n10._tree.children.length; s10 != c10; s10 += e21) { + var l10 = n10._tree.children[s10]; + if (this.mode & NG.IncludeAnonymous || l10 instanceof LG || !l10.type.isAnonymous || ZG(l10)) + return false; + } + } + return true; + } }, { key: "move", value: function(e21, t10) { + if (t10 && this.enterChild(e21, 0, 4)) + return true; + for (; ; ) { + if (this.sibling(e21)) + return true; + if (this.atLastNode(e21) || !this.parent()) + return false; + } + } }, { key: "next", value: function() { + var e21 = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0]; + return this.move(1, e21); + } }, { key: "prev", value: function() { + var e21 = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0]; + return this.move(-1, e21); + } }, { key: "moveTo", value: function(e21) { + for (var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0; (this.from == this.to || (t10 < 1 ? this.from >= e21 : this.from > e21) || (t10 > -1 ? this.to <= e21 : this.to < e21)) && this.parent(); ) + ; + for (; this.enterChild(1, e21, t10); ) + ; + return this; + } }, { key: "node", get: function() { + if (!this.buffer) + return this._tree; + var e21 = this.bufferNode, t10 = null, n10 = 0; + if (e21 && e21.context == this.buffer) + e: + for (var r10 = this.index, o10 = this.stack.length; o10 >= 0; ) { + for (var i10 = e21; i10; i10 = i10._parent) + if (i10.index == r10) { + if (r10 == this.index) + return i10; + t10 = i10, n10 = o10 + 1; + break e; + } + r10 = this.stack[--o10]; + } + for (var a10 = n10; a10 < this.stack.length; a10++) + t10 = new GG(this.buffer, t10, this.stack[a10]); + return this.bufferNode = new GG(this.buffer, t10, this.index); + } }, { key: "tree", get: function() { + return this.buffer ? null : this._tree._tree; + } }, { key: "iterate", value: function(e21, t10) { + for (var n10 = 0; ; ) { + var r10 = false; + if (this.type.isAnonymous || false !== e21(this)) { + if (this.firstChild()) { + n10++; + continue; + } + this.type.isAnonymous || (r10 = true); + } + for (; r10 && t10 && t10(this), r10 = this.type.isAnonymous, !this.nextSibling(); ) { + if (!n10) + return; + this.parent(), n10--, r10 = true; + } + } + } }, { key: "matchContext", value: function(e21) { + if (!this.buffer) + return JG(this.node, e21); + for (var t10 = this.buffer.buffer, n10 = t10.set.types, r10 = e21.length - 1, o10 = this.stack.length - 1; r10 >= 0; o10--) { + if (o10 < 0) + return JG(this.node, e21, r10); + var i10 = n10[t10.buffer[this.stack[o10]]]; + if (!i10.isAnonymous) { + if (e21[r10] && e21[r10] != i10.name) + return false; + r10--; + } + } + return true; + } }]), e20; + }(); + function ZG(e20) { + return e20.children.some(function(e21) { + return e21 instanceof LG || !e21.type.isAnonymous || ZG(e21); + }); + } + function eQ(e20) { + var t10, n10 = e20.buffer, r10 = e20.nodeSet, o10 = e20.maxBufferLength, i10 = void 0 === o10 ? 1024 : o10, a10 = e20.reused, s10 = void 0 === a10 ? [] : a10, c10 = e20.minRepeatType, l10 = void 0 === c10 ? r10.types.length : c10, u10 = Array.isArray(n10) ? new BG(n10, n10.length) : n10, f10 = r10.types, d10 = 0, h10 = 0; + function v10(e21, t11, n11, o11, a11, c11) { + for (var b11 = u10.id, k11 = u10.start, w11 = u10.end, x10 = u10.size, j10 = h10; x10 < 0; ) { + if (u10.next(), -1 == x10) { + var S10 = s10[b11]; + return n11.push(S10), void o11.push(k11 - e21); + } + if (-3 == x10) + return void (d10 = b11); + if (-4 == x10) + return void (h10 = b11); + throw new RangeError("Unrecognized record size: ".concat(x10)); + } + var C10, $10, _10 = f10[b11], O10 = k11 - e21; + if (w11 - k11 <= i10 && ($10 = function(e23, t12) { + var n12 = u10.fork(), r11 = 0, o12 = 0, a12 = 0, s11 = n12.end - i10, c12 = { size: 0, start: 0, skip: 0 }; + e: + for (var f11 = n12.pos - e23; n12.pos > f11; ) { + var d11 = n12.size; + if (n12.id == t12 && d11 >= 0) + c12.size = r11, c12.start = o12, c12.skip = a12, a12 += 4, r11 += 4, n12.next(); + else { + var h11 = n12.pos - d11; + if (d11 < 0 || h11 < f11 || n12.start < s11) + break; + var v11 = n12.id >= l10 ? 4 : 0, p11 = n12.start; + for (n12.next(); n12.pos > h11; ) { + if (n12.size < 0) { + if (-3 != n12.size) + break e; + v11 += 4; + } else + n12.id >= l10 && (v11 += 4); + n12.next(); + } + o12 = p11, r11 += d11, a12 += v11; + } + } + (t12 < 0 || r11 == e23) && (c12.size = r11, c12.start = o12, c12.skip = a12); + return c12.size > 4 ? c12 : void 0; + }(u10.pos - t11, a11))) { + for (var M10 = new Uint16Array($10.size - $10.skip), E10 = u10.pos - $10.size, A10 = M10.length; u10.pos > E10; ) + A10 = y10($10.start, M10, A10); + C10 = new LG(M10, w11 - $10.start, r10), O10 = $10.start - e21; + } else { + var P10 = u10.pos - x10; + u10.next(); + for (var T8 = [], R8 = [], N8 = b11 >= l10 ? b11 : -1, I10 = 0, D10 = w11; u10.pos > P10; ) + N8 >= 0 && u10.id == N8 && u10.size >= 0 ? (u10.end <= D10 - i10 && (m10(T8, R8, k11, I10, u10.end, D10, N8, j10), I10 = T8.length, D10 = u10.end), u10.next()) : c11 > 2500 ? p10(k11, P10, T8, R8) : v10(k11, P10, T8, R8, N8, c11 + 1); + if (N8 >= 0 && I10 > 0 && I10 < T8.length && m10(T8, R8, k11, I10, k11, D10, N8, j10), T8.reverse(), R8.reverse(), N8 > -1 && I10 > 0) { + var q10 = /* @__PURE__ */ function(e23) { + return function(t12, n12, r11) { + var o12, i11, a12 = 0, s11 = t12.length - 1; + if (s11 >= 0 && (o12 = t12[s11]) instanceof zG) { + if (!s11 && o12.type == e23 && o12.length == r11) + return o12; + (i11 = o12.prop(AG.lookAhead)) && (a12 = n12[s11] + o12.length + i11); + } + return g10(e23, t12, n12, r11, a12); + }; + }(_10); + C10 = rQ(_10, T8, R8, 0, T8.length, 0, w11 - k11, q10, q10); + } else + C10 = g10(_10, T8, R8, w11 - k11, j10 - w11); + } + n11.push(C10), o11.push(O10); + } + function p10(e21, t11, n11, o11) { + for (var a11 = [], s11 = 0, c11 = -1; u10.pos > t11; ) { + var l11 = u10.id, f11 = u10.start, d11 = u10.end; + if (u10.size > 4) + u10.next(); + else { + if (c11 > -1 && f11 < c11) + break; + c11 < 0 && (c11 = d11 - i10), a11.push(l11, f11, d11), s11++, u10.next(); + } + } + if (s11) { + for (var h11 = new Uint16Array(4 * s11), v11 = a11[a11.length - 2], p11 = a11.length - 3, m11 = 0; p11 >= 0; p11 -= 3) + h11[m11++] = a11[p11], h11[m11++] = a11[p11 + 1] - v11, h11[m11++] = a11[p11 + 2] - v11, h11[m11++] = m11; + n11.push(new LG(h11, a11[2] - v11, r10)), o11.push(v11 - e21); + } + } + function m10(e21, t11, n11, o11, i11, a11, s11, c11) { + for (var l11 = [], u11 = []; e21.length > o11; ) + l11.push(e21.pop()), u11.push(t11.pop() + n11 - i11); + e21.push(g10(r10.types[s11], l11, u11, a11 - i11, c11 - a11)), t11.push(i11 - n11); + } + function g10(e21, t11, n11, r11) { + var o11 = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0, i11 = arguments.length > 5 ? arguments[5] : void 0; + if (d10) { + var a11 = [AG.contextHash, d10]; + i11 = i11 ? [a11].concat(i11) : [a11]; + } + if (o11 > 25) { + var s11 = [AG.lookAhead, o11]; + i11 = i11 ? [s11].concat(i11) : [s11]; + } + return new zG(e21, t11, n11, r11, i11); + } + function y10(e21, t11, n11) { + var r11 = u10.id, o11 = u10.start, i11 = u10.end, a11 = u10.size; + if (u10.next(), a11 >= 0 && r11 < l10) { + var s11 = n11; + if (a11 > 4) + for (var c11 = u10.pos - (a11 - 4); u10.pos > c11; ) + n11 = y10(e21, t11, n11); + t11[--n11] = s11, t11[--n11] = i11 - e21, t11[--n11] = o11 - e21, t11[--n11] = r11; + } else + -3 == a11 ? d10 = r11 : -4 == a11 && (h10 = r11); + return n11; + } + for (var b10 = [], k10 = []; u10.pos > 0; ) + v10(e20.start || 0, e20.bufferStart || 0, b10, k10, -1, 0); + var w10 = null !== (t10 = e20.length) && void 0 !== t10 ? t10 : b10.length ? k10[0] + b10[0].length : 0; + return new zG(f10[e20.topID], b10.reverse(), k10.reverse(), w10); + } + var tQ = /* @__PURE__ */ new WeakMap(); + function nQ(e20, t10) { + if (!e20.isAnonymous || t10 instanceof LG || t10.type != e20) + return 1; + var n10 = tQ.get(t10); + if (null == n10) { + n10 = 1; + var r10, o10 = bo(t10.children); + try { + for (o10.s(); !(r10 = o10.n()).done; ) { + var i10 = r10.value; + if (i10.type != e20 || !(i10 instanceof zG)) { + n10 = 1; + break; + } + n10 += nQ(e20, i10); + } + } catch (e21) { + o10.e(e21); + } finally { + o10.f(); + } + tQ.set(t10, n10); + } + return n10; + } + function rQ(e20, t10, n10, r10, o10, i10, a10, s10, c10) { + for (var l10 = 0, u10 = r10; u10 < o10; u10++) + l10 += nQ(e20, t10[u10]); + var f10 = Math.ceil(1.5 * l10 / 8), d10 = [], h10 = []; + return function t11(n11, r11, o11, a11, s11) { + for (var l11 = o11; l11 < a11; ) { + var u11 = l11, v10 = r11[l11], p10 = nQ(e20, n11[l11]); + for (l11++; l11 < a11; l11++) { + var m10 = nQ(e20, n11[l11]); + if (p10 + m10 >= f10) + break; + p10 += m10; + } + if (l11 == u11 + 1) { + if (p10 > f10) { + var g10 = n11[u11]; + t11(g10.children, g10.positions, 0, g10.children.length, r11[u11] + s11); + continue; + } + d10.push(n11[u11]); + } else { + var y10 = r11[l11 - 1] + n11[l11 - 1].length - v10; + d10.push(rQ(e20, n11, r11, u11, l11, v10, y10, null, c10)); + } + h10.push(v10 + s11 - i10); + } + }(t10, n10, r10, o10, 0), (s10 || c10)(d10, h10, a10); + } + var oQ = function() { + function e20(t10, n10, r10, o10) { + var i10 = arguments.length > 4 && void 0 !== arguments[4] && arguments[4], a10 = arguments.length > 5 && void 0 !== arguments[5] && arguments[5]; + No(this, e20), this.from = t10, this.to = n10, this.tree = r10, this.offset = o10, this.open = (i10 ? 1 : 0) | (a10 ? 2 : 0); + } + return Do(e20, [{ key: "openStart", get: function() { + return (1 & this.open) > 0; + } }, { key: "openEnd", get: function() { + return (2 & this.open) > 0; + } }], [{ key: "addTree", value: function(t10) { + var n10, r10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [], o10 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], i10 = [new e20(0, t10.length, t10, 0, false, o10)], a10 = bo(r10); + try { + for (a10.s(); !(n10 = a10.n()).done; ) { + var s10 = n10.value; + s10.to > t10.length && i10.push(s10); + } + } catch (e21) { + a10.e(e21); + } finally { + a10.f(); + } + return i10; + } }, { key: "applyChanges", value: function(t10, n10) { + var r10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 128; + if (!n10.length) + return t10; + for (var o10 = [], i10 = 1, a10 = t10.length ? t10[0] : null, s10 = 0, c10 = 0, l10 = 0; ; s10++) { + var u10 = s10 < n10.length ? n10[s10] : null, f10 = u10 ? u10.fromA : 1e9; + if (f10 - c10 >= r10) + for (; a10 && a10.from < f10; ) { + var d10 = a10; + if (c10 >= d10.from || f10 <= d10.to || l10) { + var h10 = Math.max(d10.from, c10) - l10, v10 = Math.min(d10.to, f10) - l10; + d10 = h10 >= v10 ? null : new e20(h10, v10, d10.tree, d10.offset + l10, s10 > 0, !!u10); + } + if (d10 && o10.push(d10), a10.to > f10) + break; + a10 = i10 < t10.length ? t10[i10++] : null; + } + if (!u10) + break; + c10 = u10.toA, l10 = u10.toA - u10.toB; + } + return o10; + } }]), e20; + }(); + var iQ = function() { + function e20() { + No(this, e20); + } + return Do(e20, [{ key: "startParse", value: function(e21, t10, n10) { + return "string" == typeof e21 && (e21 = new aQ(e21)), n10 = n10 ? n10.length ? n10.map(function(e23) { + return new EG(e23.from, e23.to); + }) : [new EG(0, 0)] : [new EG(0, e21.length)], this.createParse(e21, t10 || [], n10); + } }, { key: "parse", value: function(e21, t10, n10) { + for (var r10 = this.startParse(e21, t10, n10); ; ) { + var o10 = r10.advance(); + if (o10) + return o10; + } + } }]), e20; + }(); + var aQ = function() { + function e20(t10) { + No(this, e20), this.string = t10; + } + return Do(e20, [{ key: "length", get: function() { + return this.string.length; + } }, { key: "chunk", value: function(e21) { + return this.string.slice(e21); + } }, { key: "lineChunks", get: function() { + return false; + } }, { key: "read", value: function(e21, t10) { + return this.string.slice(e21, t10); + } }]), e20; + }(); + new AG({ perNode: true }); + var sQ = 0; + var cQ = function() { + function e20(t10, n10, r10) { + No(this, e20), this.set = t10, this.base = n10, this.modified = r10, this.id = sQ++; + } + return Do(e20, null, [{ key: "define", value: function(t10) { + if (null == t10 ? void 0 : t10.base) + throw new Error("Can not derive from a modified tag"); + var n10 = new e20([], null, []); + if (n10.set.push(n10), t10) { + var r10, o10 = bo(t10.set); + try { + for (o10.s(); !(r10 = o10.n()).done; ) { + var i10 = r10.value; + n10.set.push(i10); + } + } catch (e21) { + o10.e(e21); + } finally { + o10.f(); + } + } + return n10; + } }, { key: "defineModifier", value: function() { + var e21 = new uQ(); + return function(t10) { + return t10.modified.indexOf(e21) > -1 ? t10 : uQ.get(t10.base || t10, t10.modified.concat(e21).sort(function(e23, t11) { + return e23.id - t11.id; + })); + }; + } }]), e20; + }(); + var lQ = 0; + var uQ = function() { + function e20() { + No(this, e20), this.instances = [], this.id = lQ++; + } + return Do(e20, null, [{ key: "get", value: function(t10, n10) { + if (!n10.length) + return t10; + var r10 = n10[0].instances.find(function(e21) { + return e21.base == t10 && (r11 = n10, o11 = e21.modified, r11.length == o11.length && r11.every(function(e23, t11) { + return e23 == o11[t11]; + })); + var r11, o11; + }); + if (r10) + return r10; + var o10, i10 = [], a10 = new cQ(i10, t10, n10), s10 = bo(n10); + try { + for (s10.s(); !(o10 = s10.n()).done; ) { + o10.value.instances.push(a10); + } + } catch (e21) { + s10.e(e21); + } finally { + s10.f(); + } + var c10, l10 = function(e21) { + for (var t11 = [[]], n11 = 0; n11 < e21.length; n11++) + for (var r11 = 0, o11 = t11.length; r11 < o11; r11++) + t11.push(t11[r11].concat(e21[n11])); + return t11.sort(function(e23, t12) { + return t12.length - e23.length; + }); + }(n10), u10 = bo(t10.set); + try { + for (u10.s(); !(c10 = u10.n()).done; ) { + var f10 = c10.value; + if (!f10.modified.length) { + var d10, h10 = bo(l10); + try { + for (h10.s(); !(d10 = h10.n()).done; ) { + var v10 = d10.value; + i10.push(e20.get(f10, v10)); + } + } catch (e21) { + h10.e(e21); + } finally { + h10.f(); + } + } + } + } catch (e21) { + u10.e(e21); + } finally { + u10.f(); + } + return a10; + } }]), e20; + }(); + function fQ(e20) { + var t10 = /* @__PURE__ */ Object.create(null); + for (var n10 in e20) { + var r10 = e20[n10]; + Array.isArray(r10) || (r10 = [r10]); + var o10, i10 = bo(n10.split(" ")); + try { + for (i10.s(); !(o10 = i10.n()).done; ) { + var a10 = o10.value; + if (a10) { + for (var s10 = [], c10 = 2, l10 = a10, u10 = 0; ; ) { + if ("..." == l10 && u10 > 0 && u10 + 3 == a10.length) { + c10 = 1; + break; + } + var f10 = /^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(l10); + if (!f10) + throw new RangeError("Invalid path: " + a10); + if (s10.push("*" == f10[0] ? "" : '"' == f10[0][0] ? JSON.parse(f10[0]) : f10[0]), (u10 += f10[0].length) == a10.length) + break; + var d10 = a10[u10++]; + if (u10 == a10.length && "!" == d10) { + c10 = 0; + break; + } + if ("/" != d10) + throw new RangeError("Invalid path: " + a10); + l10 = a10.slice(u10); + } + var h10 = s10.length - 1, v10 = s10[h10]; + if (!v10) + throw new RangeError("Invalid path: " + a10); + var p10 = new hQ(r10, c10, h10 > 0 ? s10.slice(0, h10) : null); + t10[v10] = p10.sort(t10[v10]); + } + } + } catch (e21) { + i10.e(e21); + } finally { + i10.f(); + } + } + return dQ.add(t10); + } + var dQ = new AG(); + var hQ = function() { + function e20(t10, n10, r10, o10) { + No(this, e20), this.tags = t10, this.mode = n10, this.context = r10, this.next = o10; + } + return Do(e20, [{ key: "opaque", get: function() { + return 0 == this.mode; + } }, { key: "inherit", get: function() { + return 1 == this.mode; + } }, { key: "sort", value: function(e21) { + return !e21 || e21.depth < this.depth ? (this.next = e21, this) : (e21.next = this.sort(e21.next), e21); + } }, { key: "depth", get: function() { + return this.context ? this.context.length : 0; + } }]), e20; + }(); + function vQ(e20, t10) { + var n10, r10 = /* @__PURE__ */ Object.create(null), o10 = bo(e20); + try { + for (o10.s(); !(n10 = o10.n()).done; ) { + var i10 = n10.value; + if (Array.isArray(i10.tag)) { + var a10, s10 = bo(i10.tag); + try { + for (s10.s(); !(a10 = s10.n()).done; ) { + var c10 = a10.value; + r10[c10.id] = i10.class; + } + } catch (e21) { + s10.e(e21); + } finally { + s10.f(); + } + } else + r10[i10.tag.id] = i10.class; + } + } catch (e21) { + o10.e(e21); + } finally { + o10.f(); + } + var l10 = t10 || {}, u10 = l10.scope, f10 = l10.all, d10 = void 0 === f10 ? null : f10; + return { style: function(e21) { + var t11, n11 = d10, o11 = bo(e21); + try { + for (o11.s(); !(t11 = o11.n()).done; ) { + var i11, a11 = bo(t11.value.set); + try { + for (a11.s(); !(i11 = a11.n()).done; ) { + var s11 = i11.value, c11 = r10[s11.id]; + if (c11) { + n11 = n11 ? n11 + " " + c11 : c11; + break; + } + } + } catch (e23) { + a11.e(e23); + } finally { + a11.f(); + } + } + } catch (e23) { + o11.e(e23); + } finally { + o11.f(); + } + return n11; + }, scope: u10 }; + } + function pQ(e20, t10, n10) { + var r10 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0, o10 = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : e20.length, i10 = new mQ(r10, Array.isArray(t10) ? t10 : [t10], n10); + i10.highlightRange(e20.cursor(), r10, o10, "", i10.highlighters), i10.flush(o10); + } + hQ.empty = new hQ([], 2, null); + var mQ = function() { + function e20(t10, n10, r10) { + No(this, e20), this.at = t10, this.highlighters = n10, this.span = r10, this.class = ""; + } + return Do(e20, [{ key: "startSpan", value: function(e21, t10) { + t10 != this.class && (this.flush(e21), e21 > this.at && (this.at = e21), this.class = t10); + } }, { key: "flush", value: function(e21) { + e21 > this.at && this.class && this.span(this.at, e21, this.class); + } }, { key: "highlightRange", value: function(e21, t10, n10, r10, o10) { + var i10 = e21.type, a10 = e21.from, s10 = e21.to; + if (!(a10 >= n10 || s10 <= t10)) { + i10.isTop && (o10 = this.highlighters.filter(function(e23) { + return !e23.scope || e23.scope(i10); + })); + var c10 = r10, l10 = function(e23) { + var t11 = e23.type.prop(dQ); + for (; t11 && t11.context && !e23.matchContext(t11.context); ) + t11 = t11.next; + return t11 || null; + }(e21) || hQ.empty, u10 = function(e23, t11) { + var n11, r11 = null, o11 = bo(e23); + try { + for (o11.s(); !(n11 = o11.n()).done; ) { + var i11 = n11.value.style(t11); + i11 && (r11 = r11 ? r11 + " " + i11 : i11); + } + } catch (e24) { + o11.e(e24); + } finally { + o11.f(); + } + return r11; + }(o10, l10.tags); + if (u10 && (c10 && (c10 += " "), c10 += u10, 1 == l10.mode && (r10 += (r10 ? " " : "") + u10)), this.startSpan(Math.max(t10, a10), c10), !l10.opaque) { + var f10 = e21.tree && e21.tree.prop(AG.mounted); + if (f10 && f10.overlay) { + for (var d10 = e21.node.enter(f10.overlay[0].from + a10, 1), h10 = this.highlighters.filter(function(e23) { + return !e23.scope || e23.scope(f10.tree.type); + }), v10 = e21.firstChild(), p10 = 0, m10 = a10; ; p10++) { + var g10 = p10 < f10.overlay.length ? f10.overlay[p10] : null, y10 = g10 ? g10.from + a10 : s10, b10 = Math.max(t10, m10), k10 = Math.min(n10, y10); + if (b10 < k10 && v10) + for (; e21.from < k10 && (this.highlightRange(e21, b10, k10, r10, o10), this.startSpan(Math.min(k10, e21.to), c10), !(e21.to >= y10) && e21.nextSibling()); ) + ; + if (!g10 || y10 > n10) + break; + (m10 = g10.to + a10) > t10 && (this.highlightRange(d10.cursor(), Math.max(t10, g10.from + a10), Math.min(n10, m10), "", h10), this.startSpan(Math.min(n10, m10), c10)); + } + v10 && e21.parent(); + } else if (e21.firstChild()) { + f10 && (r10 = ""); + do { + if (!(e21.to <= t10)) { + if (e21.from >= n10) + break; + this.highlightRange(e21, t10, n10, r10, o10), this.startSpan(Math.min(n10, e21.to), c10); + } + } while (e21.nextSibling()); + e21.parent(); + } + } + } + } }]), e20; + }(); + var gQ; + var yQ = cQ.define; + var bQ = yQ(); + var kQ = yQ(); + var wQ = yQ(kQ); + var xQ = yQ(kQ); + var jQ = yQ(); + var SQ = yQ(jQ); + var CQ = yQ(jQ); + var $Q = yQ(); + var _Q = yQ($Q); + var OQ = yQ(); + var MQ = yQ(); + var EQ = yQ(); + var AQ = yQ(EQ); + var PQ = yQ(); + var TQ = { comment: bQ, lineComment: yQ(bQ), blockComment: yQ(bQ), docComment: yQ(bQ), name: kQ, variableName: yQ(kQ), typeName: wQ, tagName: yQ(wQ), propertyName: xQ, attributeName: yQ(xQ), className: yQ(kQ), labelName: yQ(kQ), namespace: yQ(kQ), macroName: yQ(kQ), literal: jQ, string: SQ, docString: yQ(SQ), character: yQ(SQ), attributeValue: yQ(SQ), number: CQ, integer: yQ(CQ), float: yQ(CQ), bool: yQ(jQ), regexp: yQ(jQ), escape: yQ(jQ), color: yQ(jQ), url: yQ(jQ), keyword: OQ, self: yQ(OQ), null: yQ(OQ), atom: yQ(OQ), unit: yQ(OQ), modifier: yQ(OQ), operatorKeyword: yQ(OQ), controlKeyword: yQ(OQ), definitionKeyword: yQ(OQ), moduleKeyword: yQ(OQ), operator: MQ, derefOperator: yQ(MQ), arithmeticOperator: yQ(MQ), logicOperator: yQ(MQ), bitwiseOperator: yQ(MQ), compareOperator: yQ(MQ), updateOperator: yQ(MQ), definitionOperator: yQ(MQ), typeOperator: yQ(MQ), controlOperator: yQ(MQ), punctuation: EQ, separator: yQ(EQ), bracket: AQ, angleBracket: yQ(AQ), squareBracket: yQ(AQ), paren: yQ(AQ), brace: yQ(AQ), content: $Q, heading: _Q, heading1: yQ(_Q), heading2: yQ(_Q), heading3: yQ(_Q), heading4: yQ(_Q), heading5: yQ(_Q), heading6: yQ(_Q), contentSeparator: yQ($Q), list: yQ($Q), quote: yQ($Q), emphasis: yQ($Q), strong: yQ($Q), link: yQ($Q), monospace: yQ($Q), strikethrough: yQ($Q), inserted: yQ(), deleted: yQ(), changed: yQ(), invalid: yQ(), meta: PQ, documentMeta: yQ(PQ), annotation: yQ(PQ), processingInstruction: yQ(PQ), definition: cQ.defineModifier(), constant: cQ.defineModifier(), function: cQ.defineModifier(), standard: cQ.defineModifier(), local: cQ.defineModifier(), special: cQ.defineModifier() }; + vQ([{ tag: TQ.link, class: "tok-link" }, { tag: TQ.heading, class: "tok-heading" }, { tag: TQ.emphasis, class: "tok-emphasis" }, { tag: TQ.strong, class: "tok-strong" }, { tag: TQ.keyword, class: "tok-keyword" }, { tag: TQ.atom, class: "tok-atom" }, { tag: TQ.bool, class: "tok-bool" }, { tag: TQ.url, class: "tok-url" }, { tag: TQ.labelName, class: "tok-labelName" }, { tag: TQ.inserted, class: "tok-inserted" }, { tag: TQ.deleted, class: "tok-deleted" }, { tag: TQ.literal, class: "tok-literal" }, { tag: TQ.string, class: "tok-string" }, { tag: TQ.number, class: "tok-number" }, { tag: [TQ.regexp, TQ.escape, TQ.special(TQ.string)], class: "tok-string2" }, { tag: TQ.variableName, class: "tok-variableName" }, { tag: TQ.local(TQ.variableName), class: "tok-variableName tok-local" }, { tag: TQ.definition(TQ.variableName), class: "tok-variableName tok-definition" }, { tag: TQ.special(TQ.variableName), class: "tok-variableName2" }, { tag: TQ.definition(TQ.propertyName), class: "tok-propertyName tok-definition" }, { tag: TQ.typeName, class: "tok-typeName" }, { tag: TQ.namespace, class: "tok-namespace" }, { tag: TQ.className, class: "tok-className" }, { tag: TQ.macroName, class: "tok-macroName" }, { tag: TQ.propertyName, class: "tok-propertyName" }, { tag: TQ.operator, class: "tok-operator" }, { tag: TQ.comment, class: "tok-comment" }, { tag: TQ.meta, class: "tok-meta" }, { tag: TQ.invalid, class: "tok-invalid" }, { tag: TQ.punctuation, class: "tok-punctuation" }]); + var RQ = new AG(); + var NQ = new AG(); + var IQ = function() { + function e20(t10, n10) { + var r10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : [], o10 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : ""; + No(this, e20), this.data = t10, this.name = o10, mV.prototype.hasOwnProperty("tree") || Object.defineProperty(mV.prototype, "tree", { get: function() { + return zQ(this); + } }), this.parser = n10, this.extension = [KQ.of(this), mV.languageData.of(function(e21, t11, n11) { + var r11 = DQ(e21, t11, n11), o11 = r11.type.prop(RQ); + if (!o11) + return []; + var i10 = e21.facet(o11), a10 = r11.type.prop(NQ); + if (a10) { + var s10, c10 = r11.resolve(t11 - r11.from, n11), l10 = bo(a10); + try { + for (l10.s(); !(s10 = l10.n()).done; ) { + var u10 = s10.value; + if (u10.test(c10, e21)) { + var f10 = e21.facet(u10.facet); + return "replace" == u10.type ? f10 : f10.concat(i10); + } + } + } catch (e23) { + l10.e(e23); + } finally { + l10.f(); + } + } + return i10; + })].concat(r10); + } + return Do(e20, [{ key: "isActiveAt", value: function(e21, t10) { + return DQ(e21, t10, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : -1).type.prop(RQ) == this.data; + } }, { key: "findRegions", value: function(e21) { + var t10 = this, n10 = e21.facet(KQ); + if ((null == n10 ? void 0 : n10.data) == this.data) + return [{ from: 0, to: e21.doc.length }]; + if (!n10 || !n10.allowsNesting) + return []; + var r10 = []; + return function e23(n11, o10) { + if (n11.prop(RQ) != t10.data) { + var i10 = n11.prop(AG.mounted); + if (i10) { + if (i10.tree.prop(RQ) == t10.data) { + if (i10.overlay) { + var a10, s10 = bo(i10.overlay); + try { + for (s10.s(); !(a10 = s10.n()).done; ) { + var c10 = a10.value; + r10.push({ from: c10.from + o10, to: c10.to + o10 }); + } + } catch (e24) { + s10.e(e24); + } finally { + s10.f(); + } + } else + r10.push({ from: o10, to: o10 + n11.length }); + return; + } + if (i10.overlay) { + var l10 = r10.length; + if (e23(i10.tree, i10.overlay[0].from + o10), r10.length > l10) + return; + } + } + for (var u10 = 0; u10 < n11.children.length; u10++) { + var f10 = n11.children[u10]; + f10 instanceof zG && e23(f10, n11.positions[u10] + o10); + } + } else + r10.push({ from: o10, to: o10 + n11.length }); + }(zQ(e21), 0), r10; + } }, { key: "allowsNesting", get: function() { + return true; + } }]), e20; + }(); + function DQ(e20, t10, n10) { + var r10 = e20.facet(KQ), o10 = zQ(e20).topNode; + if (!r10 || r10.allowsNesting) + for (var i10 = o10; i10; i10 = i10.enter(t10, n10, NG.ExcludeBuffers)) + i10.type.isTop && (o10 = i10); + return o10; + } + IQ.setState = oV.define(); + var qQ = function(e20) { + function t10(e21, n10, r10) { + var o10; + return No(this, t10), (o10 = _o(this, t10, [e21, n10, [], r10])).parser = n10, o10; + } + return Ao(t10, IQ), Do(t10, [{ key: "configure", value: function(e21, n10) { + return new t10(this.data, this.parser.configure(e21), n10 || this.name); + } }, { key: "allowsNesting", get: function() { + return this.parser.hasWrappers(); + } }], [{ key: "define", value: function(e21) { + var n10, r10 = (n10 = e21.languageData, MF.define({ combine: n10 ? function(e23) { + return e23.concat(n10); + } : void 0 })); + return new t10(r10, e21.parser.configure({ props: [RQ.add(function(e23) { + return e23.isTop ? r10 : void 0; + })] }), e21.name); + } }]), t10; + }(); + function zQ(e20) { + var t10 = e20.field(IQ.state, false); + return t10 ? t10.tree : zG.empty; + } + var BQ = function() { + function e20(t10) { + No(this, e20), this.doc = t10, this.cursorPos = 0, this.string = "", this.cursor = t10.iter(); + } + return Do(e20, [{ key: "length", get: function() { + return this.doc.length; + } }, { key: "syncTo", value: function(e21) { + return this.string = this.cursor.next(e21 - this.cursorPos).value, this.cursorPos = e21 + this.string.length, this.cursorPos - this.string.length; + } }, { key: "chunk", value: function(e21) { + return this.syncTo(e21), this.string; + } }, { key: "lineChunks", get: function() { + return true; + } }, { key: "read", value: function(e21, t10) { + var n10 = this.cursorPos - this.string.length; + return e21 < n10 || t10 >= this.cursorPos ? this.doc.sliceString(e21, t10) : this.string.slice(e21 - n10, t10 - n10); + } }]), e20; + }(); + var LQ = null; + var FQ = function() { + function e20(t10, n10) { + var r10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : [], o10 = arguments.length > 3 ? arguments[3] : void 0, i10 = arguments.length > 4 ? arguments[4] : void 0, a10 = arguments.length > 5 ? arguments[5] : void 0, s10 = arguments.length > 6 ? arguments[6] : void 0, c10 = arguments.length > 7 ? arguments[7] : void 0; + No(this, e20), this.parser = t10, this.state = n10, this.fragments = r10, this.tree = o10, this.treeLen = i10, this.viewport = a10, this.skipped = s10, this.scheduleOn = c10, this.parse = null, this.tempSkipped = []; + } + return Do(e20, [{ key: "startParse", value: function() { + return this.parser.startParse(new BQ(this.state.doc), this.fragments); + } }, { key: "work", value: function(e21, t10) { + var n10 = this; + return null != t10 && t10 >= this.state.doc.length && (t10 = void 0), this.tree != zG.empty && this.isDone(null != t10 ? t10 : this.state.doc.length) ? (this.takeTree(), true) : this.withContext(function() { + var r10; + if ("number" == typeof e21) { + var o10 = Date.now() + e21; + e21 = function() { + return Date.now() > o10; + }; + } + for (n10.parse || (n10.parse = n10.startParse()), null != t10 && (null == n10.parse.stoppedAt || n10.parse.stoppedAt > t10) && t10 < n10.state.doc.length && n10.parse.stopAt(t10); ; ) { + var i10 = n10.parse.advance(); + if (i10) { + if (n10.fragments = n10.withoutTempSkipped(oQ.addTree(i10, n10.fragments, null != n10.parse.stoppedAt)), n10.treeLen = null !== (r10 = n10.parse.stoppedAt) && void 0 !== r10 ? r10 : n10.state.doc.length, n10.tree = i10, n10.parse = null, !(n10.treeLen < (null != t10 ? t10 : n10.state.doc.length))) + return true; + n10.parse = n10.startParse(); + } + if (e21()) + return false; + } + }); + } }, { key: "takeTree", value: function() { + var e21, t10, n10 = this; + this.parse && (e21 = this.parse.parsedPos) >= this.treeLen && ((null == this.parse.stoppedAt || this.parse.stoppedAt > e21) && this.parse.stopAt(e21), this.withContext(function() { + for (; !(t10 = n10.parse.advance()); ) + ; + }), this.treeLen = e21, this.tree = t10, this.fragments = this.withoutTempSkipped(oQ.addTree(this.tree, this.fragments, true)), this.parse = null); + } }, { key: "withContext", value: function(e21) { + var t10 = LQ; + LQ = this; + try { + return e21(); + } finally { + LQ = t10; + } + } }, { key: "withoutTempSkipped", value: function(e21) { + for (var t10; t10 = this.tempSkipped.pop(); ) + e21 = VQ(e21, t10.from, t10.to); + return e21; + } }, { key: "changes", value: function(t10, n10) { + var r10 = this.fragments, o10 = this.tree, i10 = this.treeLen, a10 = this.viewport, s10 = this.skipped; + if (this.takeTree(), !t10.empty) { + var c10 = []; + if (t10.iterChangedRanges(function(e21, t11, n11, r11) { + return c10.push({ fromA: e21, toA: t11, fromB: n11, toB: r11 }); + }), r10 = oQ.applyChanges(r10, c10), o10 = zG.empty, i10 = 0, a10 = { from: t10.mapPos(a10.from, -1), to: t10.mapPos(a10.to, 1) }, this.skipped.length) { + s10 = []; + var l10, u10 = bo(this.skipped); + try { + for (u10.s(); !(l10 = u10.n()).done; ) { + var f10 = l10.value, d10 = t10.mapPos(f10.from, 1), h10 = t10.mapPos(f10.to, -1); + d10 < h10 && s10.push({ from: d10, to: h10 }); + } + } catch (e21) { + u10.e(e21); + } finally { + u10.f(); + } + } + } + return new e20(this.parser, n10, r10, o10, i10, a10, s10, this.scheduleOn); + } }, { key: "updateViewport", value: function(e21) { + if (this.viewport.from == e21.from && this.viewport.to == e21.to) + return false; + this.viewport = e21; + for (var t10 = this.skipped.length, n10 = 0; n10 < this.skipped.length; n10++) { + var r10 = this.skipped[n10], o10 = r10.from, i10 = r10.to; + o10 < e21.to && i10 > e21.from && (this.fragments = VQ(this.fragments, o10, i10), this.skipped.splice(n10--, 1)); + } + return !(this.skipped.length >= t10) && (this.reset(), true); + } }, { key: "reset", value: function() { + this.parse && (this.takeTree(), this.parse = null); + } }, { key: "skipUntilInView", value: function(e21, t10) { + this.skipped.push({ from: e21, to: t10 }); + } }, { key: "isDone", value: function(e21) { + e21 = Math.min(e21, this.state.doc.length); + var t10 = this.fragments; + return this.treeLen >= e21 && t10.length && 0 == t10[0].from && t10[0].to >= e21; + } }], [{ key: "create", value: function(t10, n10, r10) { + return new e20(t10, n10, [], zG.empty, 0, r10, [], null); + } }, { key: "getSkippingParser", value: function(e21) { + return new (function(t10) { + function n10() { + return No(this, n10), _o(this, n10, arguments); + } + return Ao(n10, iQ), Do(n10, [{ key: "createParse", value: function(t11, n11, r10) { + var o10 = r10[0].from, i10 = r10[r10.length - 1].to; + return { parsedPos: o10, advance: function() { + var t12 = LQ; + if (t12) { + var n12, a10 = bo(r10); + try { + for (a10.s(); !(n12 = a10.n()).done; ) { + var s10 = n12.value; + t12.tempSkipped.push(s10); + } + } catch (e23) { + a10.e(e23); + } finally { + a10.f(); + } + e21 && (t12.scheduleOn = t12.scheduleOn ? Promise.all([t12.scheduleOn, e21]) : e21); + } + return this.parsedPos = i10, new zG(RG.none, [], [], i10 - o10); + }, stoppedAt: null, stopAt: function() { + } }; + } }]), n10; + }())(); + } }, { key: "get", value: function() { + return LQ; + } }]), e20; + }(); + function VQ(e20, t10, n10) { + return oQ.applyChanges(e20, [{ fromA: t10, toA: n10, fromB: t10, toB: n10 }]); + } + var HQ = function() { + function e20(t10) { + No(this, e20), this.context = t10, this.tree = t10.tree; + } + return Do(e20, [{ key: "apply", value: function(t10) { + if (!t10.docChanged && this.tree == this.context.tree) + return this; + var n10 = this.context.changes(t10.changes, t10.state), r10 = this.context.treeLen == t10.startState.doc.length ? void 0 : Math.max(t10.changes.mapPos(this.context.treeLen), n10.viewport.to); + return n10.work(20, r10) || n10.takeTree(), new e20(n10); + } }], [{ key: "init", value: function(t10) { + var n10 = Math.min(3e3, t10.doc.length), r10 = FQ.create(t10.facet(KQ).parser, t10, { from: 0, to: n10 }); + return r10.work(20, n10) || r10.takeTree(), new e20(r10); + } }]), e20; + }(); + IQ.state = NF.define({ create: HQ.init, update: function(e20, t10) { + var n10, r10 = bo(t10.effects); + try { + for (r10.s(); !(n10 = r10.n()).done; ) { + var o10 = n10.value; + if (o10.is(IQ.setState)) + return o10.value; + } + } catch (e21) { + r10.e(e21); + } finally { + r10.f(); + } + return t10.startState.facet(KQ) != t10.state.facet(KQ) ? HQ.init(t10.state) : e20.apply(t10); + } }); + var WQ = function(e20) { + var t10 = setTimeout(function() { + return e20(); + }, 500); + return function() { + return clearTimeout(t10); + }; + }; + "undefined" != typeof requestIdleCallback && (WQ = function(e20) { + var t10 = -1, n10 = setTimeout(function() { + t10 = requestIdleCallback(e20, { timeout: 400 }); + }, 100); + return function() { + return t10 < 0 ? clearTimeout(n10) : cancelIdleCallback(t10); + }; + }); + var UQ = "undefined" != typeof navigator && (null === (gQ = navigator.scheduling) || void 0 === gQ ? void 0 : gQ.isInputPending) ? function() { + return navigator.scheduling.isInputPending(); + } : null; + var JQ = FW.fromClass(function() { + function e20(t10) { + No(this, e20), this.view = t10, this.working = null, this.workScheduled = 0, this.chunkEnd = -1, this.chunkBudget = -1, this.work = this.work.bind(this), this.scheduleWork(); + } + return Do(e20, [{ key: "update", value: function(e21) { + var t10 = this.view.state.field(IQ.state).context; + (t10.updateViewport(e21.view.viewport) || this.view.viewport.to > t10.treeLen) && this.scheduleWork(), (e21.docChanged || e21.selectionSet) && (this.view.hasFocus && (this.chunkBudget += 50), this.scheduleWork()), this.checkAsyncSchedule(t10); + } }, { key: "scheduleWork", value: function() { + if (!this.working) { + var e21 = this.view.state, t10 = e21.field(IQ.state); + t10.tree == t10.context.tree && t10.context.isDone(e21.doc.length) || (this.working = WQ(this.work)); + } + } }, { key: "work", value: function(e21) { + this.working = null; + var t10 = Date.now(); + if (this.chunkEnd < t10 && (this.chunkEnd < 0 || this.view.hasFocus) && (this.chunkEnd = t10 + 3e4, this.chunkBudget = 3e3), !(this.chunkBudget <= 0)) { + var n10 = this.view, r10 = n10.state, o10 = n10.viewport.to, i10 = r10.field(IQ.state); + if (i10.tree != i10.context.tree || !i10.context.isDone(o10 + 1e5)) { + var a10 = Date.now() + Math.min(this.chunkBudget, 100, e21 && !UQ ? Math.max(25, e21.timeRemaining() - 5) : 1e9), s10 = i10.context.treeLen < o10 && r10.doc.length > o10 + 1e3, c10 = i10.context.work(function() { + return UQ && UQ() || Date.now() > a10; + }, o10 + (s10 ? 0 : 1e5)); + this.chunkBudget -= Date.now() - t10, (c10 || this.chunkBudget <= 0) && (i10.context.takeTree(), this.view.dispatch({ effects: IQ.setState.of(new HQ(i10.context)) })), this.chunkBudget > 0 && (!c10 || s10) && this.scheduleWork(), this.checkAsyncSchedule(i10.context); + } + } + } }, { key: "checkAsyncSchedule", value: function(e21) { + var t10 = this; + e21.scheduleOn && (this.workScheduled++, e21.scheduleOn.then(function() { + return t10.scheduleWork(); + }).catch(function(e23) { + return qW(t10.view.state, e23); + }).then(function() { + return t10.workScheduled--; + }), e21.scheduleOn = null); + } }, { key: "destroy", value: function() { + this.working && this.working(); + } }, { key: "isWorking", value: function() { + return !!(this.working || this.workScheduled > 0); + } }]), e20; + }(), { eventHandlers: { focus: function() { + this.scheduleWork(); + } } }); + var KQ = MF.define({ combine: function(e20) { + return e20.length ? e20[0] : null; + }, enables: function(e20) { + return [IQ.state, JQ, zJ.contentAttributes.compute([e20], function(t10) { + var n10 = t10.facet(e20); + return n10 && n10.name ? { "data-language": n10.name } : {}; + })]; + } }); + var GQ = Do(function e9(t10) { + var n10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : []; + No(this, e9), this.language = t10, this.support = n10, this.extension = [t10, n10]; + }); + var QQ = MF.define(); + var YQ = MF.define({ combine: function(e20) { + if (!e20.length) + return " "; + var t10 = e20[0]; + if (!t10 || /\S/.test(t10) || Array.from(t10).some(function(e21) { + return e21 != t10[0]; + })) + throw new Error("Invalid indent unit: " + JSON.stringify(e20[0])); + return t10; + } }); + function XQ(e20) { + var t10 = e20.facet(YQ); + return 9 == t10.charCodeAt(0) ? e20.tabSize * t10.length : t10.length; + } + function ZQ(e20, t10) { + var n10 = "", r10 = e20.tabSize, o10 = e20.facet(YQ)[0]; + if (" " == o10) { + for (; t10 >= r10; ) + n10 += " ", t10 -= r10; + o10 = " "; + } + for (var i10 = 0; i10 < t10; i10++) + n10 += o10; + return n10; + } + function eY(e20, t10) { + e20 instanceof mV && (e20 = new tY(e20)); + var n10, r10 = bo(e20.state.facet(QQ)); + try { + for (r10.s(); !(n10 = r10.n()).done; ) { + var o10 = (0, n10.value)(e20, t10); + if (void 0 !== o10) + return o10; + } + } catch (e21) { + r10.e(e21); + } finally { + r10.f(); + } + var i10 = zQ(e20.state); + return i10.length >= t10 ? function(e21, t11, n11) { + var r11 = t11.resolveStack(n11), o11 = r11.node.enterUnfinishedNodesBefore(n11); + if (o11 != r11.node) { + for (var i11 = [], a10 = o11; a10 != r11.node; a10 = a10.parent) + i11.push(a10); + for (var s10 = i11.length - 1; s10 >= 0; s10--) + r11 = { node: i11[s10], next: r11 }; + } + return rY(r11, e21, n11); + }(e20, i10, t10) : null; + } + var tY = function() { + function e20(t10) { + var n10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + No(this, e20), this.state = t10, this.options = n10, this.unit = XQ(t10); + } + return Do(e20, [{ key: "lineAt", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, n10 = this.state.doc.lineAt(e21), r10 = this.options, o10 = r10.simulateBreak, i10 = r10.simulateDoubleBreak; + return null != o10 && o10 >= n10.from && o10 <= n10.to ? i10 && o10 == e21 ? { text: "", from: e21 } : (t10 < 0 ? o10 < e21 : o10 <= e21) ? { text: n10.text.slice(o10 - n10.from), from: o10 } : { text: n10.text.slice(0, o10 - n10.from), from: n10.from } : n10; + } }, { key: "textAfterPos", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1; + if (this.options.simulateDoubleBreak && e21 == this.options.simulateBreak) + return ""; + var n10 = this.lineAt(e21, t10), r10 = n10.text, o10 = n10.from; + return r10.slice(e21 - o10, Math.min(r10.length, e21 + 100 - o10)); + } }, { key: "column", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, n10 = this.lineAt(e21, t10), r10 = n10.text, o10 = n10.from, i10 = this.countColumn(r10, e21 - o10), a10 = this.options.overrideIndentation ? this.options.overrideIndentation(o10) : -1; + return a10 > -1 && (i10 += a10 - this.countColumn(r10, r10.search(/\S|$/))), i10; + } }, { key: "countColumn", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : e21.length; + return RV(e21, this.state.tabSize, t10); + } }, { key: "lineIndent", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, n10 = this.lineAt(e21, t10), r10 = n10.text, o10 = n10.from, i10 = this.options.overrideIndentation; + if (i10) { + var a10 = i10(o10); + if (a10 > -1) + return a10; + } + return this.countColumn(r10, r10.search(/\S|$/)); + } }, { key: "simulatedBreak", get: function() { + return this.options.simulateBreak || null; + } }]), e20; + }(); + var nY = new AG(); + function rY(e20, t10, n10) { + for (var r10 = e20; r10; r10 = r10.next) { + var o10 = oY(r10.node); + if (o10) + return o10(aY.create(t10, n10, r10)); + } + return 0; + } + function oY(e20) { + var t10 = e20.type.prop(nY); + if (t10) + return t10; + var n10, r10 = e20.firstChild; + if (r10 && (n10 = r10.type.prop(AG.closedBy))) { + var o10 = e20.lastChild, i10 = o10 && n10.indexOf(o10.name) > -1; + return function(e21) { + return function(e23, t11, n11, r11, o11) { + var i11 = e23.textAfter, a10 = i11.match(/^\s*/)[0].length, s10 = r11 && i11.slice(a10, a10 + r11.length) == r11 || o11 == e23.pos + a10, c10 = t11 ? function(e24) { + var t12 = e24.node, n12 = t12.childAfter(t12.from), r12 = t12.lastChild; + if (!n12) + return null; + for (var o12 = e24.options.simulateBreak, i12 = e24.state.doc.lineAt(n12.from), a11 = null == o12 || o12 <= i12.from ? i12.to : Math.min(i12.to, o12), s11 = n12.to; ; ) { + var c11 = t12.childAfter(s11); + if (!c11 || c11 == r12) + return null; + if (!c11.type.isSkipped) + return c11.from < a11 ? n12 : null; + s11 = c11.to; + } + }(e23) : null; + return c10 ? s10 ? e23.column(c10.from) : e23.column(c10.to) : e23.baseIndent + (s10 ? 0 : e23.unit * n11); + }(e21, true, 1, void 0, i10 && !function(e23) { + return e23.pos == e23.options.simulateBreak && e23.options.simulateDoubleBreak; + }(e21) ? o10.from : void 0); + }; + } + return null == e20.parent ? iY : null; + } + function iY() { + return 0; + } + var aY = function(e20) { + function t10(e21, n10, r10) { + var o10; + return No(this, t10), (o10 = _o(this, t10, [e21.state, e21.options])).base = e21, o10.pos = n10, o10.context = r10, o10; + } + return Ao(t10, tY), Do(t10, [{ key: "node", get: function() { + return this.context.node; + } }, { key: "textAfter", get: function() { + return this.textAfterPos(this.pos); + } }, { key: "baseIndent", get: function() { + return this.baseIndentFor(this.node); + } }, { key: "baseIndentFor", value: function(e21) { + for (var t11 = this.state.doc.lineAt(e21.from); ; ) { + for (var n10 = e21.resolve(t11.from); n10.parent && n10.parent.from == n10.from; ) + n10 = n10.parent; + if (sY(n10, e21)) + break; + t11 = this.state.doc.lineAt(n10.from); + } + return this.lineIndent(t11.from); + } }, { key: "continue", value: function() { + return rY(this.context.next, this.base, this.pos); + } }], [{ key: "create", value: function(e21, n10, r10) { + return new t10(e21, n10, r10); + } }]), t10; + }(); + function sY(e20, t10) { + for (var n10 = t10; n10; n10 = n10.parent) + if (e20 == n10) + return true; + return false; + } + function cY() { + var e20 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t10 = e20.except, n10 = e20.units, r10 = void 0 === n10 ? 1 : n10; + return function(e21) { + var n11 = t10 && t10.test(e21.textAfter); + return e21.baseIndent + (n11 ? 0 : r10 * e21.unit); + }; + } + var lY = 200; + var uY = MF.define(); + var fY = new AG(); + function dY(e20, t10, n10) { + var r10, o10 = bo(e20.facet(uY)); + try { + for (o10.s(); !(r10 = o10.n()).done; ) { + var i10 = (0, r10.value)(e20, t10, n10); + if (i10) + return i10; + } + } catch (e21) { + o10.e(e21); + } finally { + o10.f(); + } + return function(e21, t11, n11) { + var r11 = zQ(e21); + if (r11.length < n11) + return null; + for (var o11, i11, a10 = null, s10 = r11.resolveStack(n11, 1); s10; s10 = s10.next) { + var c10 = s10.node; + if (!(c10.to <= n11 || c10.from > n11)) { + if (a10 && c10.from < t11) + break; + var l10 = c10.type.prop(fY); + if (l10 && (c10.to < r11.length - 50 || r11.length == e21.doc.length || (i11 = void 0, !(i11 = (o11 = c10).lastChild) || i11.to != o11.to || !i11.type.isError))) { + var u10 = l10(c10, e21); + u10 && u10.from <= n11 && u10.from >= t11 && u10.to > n11 && (a10 = u10); + } + } + } + return a10; + }(e20, t10, n10); + } + function hY(e20, t10) { + var n10 = t10.mapPos(e20.from, 1), r10 = t10.mapPos(e20.to, -1); + return n10 >= r10 ? void 0 : { from: n10, to: r10 }; + } + var vY = oV.define({ map: hY }); + var pY = oV.define({ map: hY }); + function mY(e20) { + var t10, n10 = [], r10 = bo(e20.state.selection.ranges); + try { + var o10 = function() { + var r11 = t10.value.head; + if (n10.some(function(e21) { + return e21.from <= r11 && e21.to >= r11; + })) + return 1; + n10.push(e20.lineBlockAt(r11)); + }; + for (r10.s(); !(t10 = r10.n()).done; ) + o10(); + } catch (e21) { + r10.e(e21); + } finally { + r10.f(); + } + return n10; + } + var gY = NF.define({ create: function() { + return KH.none; + }, update: function(e20, t10) { + e20 = e20.map(t10.changes); + var n10, r10 = bo(t10.effects); + try { + var o10 = function() { + var r11 = n10.value; + if (r11.is(vY) && !function(e21, t11, n11) { + var r12 = false; + return e21.between(t11, t11, function(e23, o12) { + e23 == t11 && o12 == n11 && (r12 = true); + }), r12; + }(e20, r11.value.from, r11.value.to)) { + var o11 = t10.state.facet(jY).preparePlaceholder, i11 = o11 ? KH.replace({ widget: new _Y(o11(t10.state, r11.value)) }) : $Y; + e20 = e20.update({ add: [i11.range(r11.value.from, r11.value.to)] }); + } else + r11.is(pY) && (e20 = e20.update({ filter: function(e21, t11) { + return r11.value.from != e21 || r11.value.to != t11; + }, filterFrom: r11.value.from, filterTo: r11.value.to })); + }; + for (r10.s(); !(n10 = r10.n()).done; ) + o10(); + } catch (e21) { + r10.e(e21); + } finally { + r10.f(); + } + if (t10.selection) { + var i10 = false, a10 = t10.selection.main.head; + e20.between(a10, a10, function(e21, t11) { + e21 < a10 && t11 > a10 && (i10 = true); + }), i10 && (e20 = e20.update({ filterFrom: a10, filterTo: a10, filter: function(e21, t11) { + return t11 <= a10 || e21 >= a10; + } })); + } + return e20; + }, provide: function(e20) { + return zJ.decorations.from(e20); + }, toJSON: function(e20, t10) { + var n10 = []; + return e20.between(0, t10.doc.length, function(e21, t11) { + n10.push(e21, t11); + }), n10; + }, fromJSON: function(e20) { + if (!Array.isArray(e20) || e20.length % 2) + throw new RangeError("Invalid JSON for fold state"); + for (var t10 = [], n10 = 0; n10 < e20.length; ) { + var r10 = e20[n10++], o10 = e20[n10++]; + if ("number" != typeof r10 || "number" != typeof o10) + throw new RangeError("Invalid JSON for fold state"); + t10.push($Y.range(r10, o10)); + } + return KH.set(t10, true); + } }); + function yY(e20, t10, n10) { + var r10, o10 = null; + return null === (r10 = e20.field(gY, false)) || void 0 === r10 || r10.between(t10, n10, function(e21, t11) { + (!o10 || o10.from > e21) && (o10 = { from: e21, to: t11 }); + }), o10; + } + function bY(e20, t10) { + return e20.field(gY, false) ? t10 : t10.concat(oV.appendConfig.of(SY())); + } + function kY(e20, t10) { + var n10 = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2], r10 = e20.state.doc.lineAt(t10.from).number, o10 = e20.state.doc.lineAt(t10.to).number; + return zJ.announce.of("".concat(e20.state.phrase(n10 ? "Folded lines" : "Unfolded lines"), " ").concat(r10, " ").concat(e20.state.phrase("to"), " ").concat(o10, ".")); + } + var wY = [{ key: "Ctrl-Shift-[", mac: "Cmd-Alt-[", run: function(e20) { + var t10, n10 = bo(mY(e20)); + try { + for (n10.s(); !(t10 = n10.n()).done; ) { + var r10 = t10.value, o10 = dY(e20.state, r10.from, r10.to); + if (o10) + return e20.dispatch({ effects: bY(e20.state, [vY.of(o10), kY(e20, o10)]) }), true; + } + } catch (e21) { + n10.e(e21); + } finally { + n10.f(); + } + return false; + } }, { key: "Ctrl-Shift-]", mac: "Cmd-Alt-]", run: function(e20) { + if (!e20.state.field(gY, false)) + return false; + var t10, n10 = [], r10 = bo(mY(e20)); + try { + for (r10.s(); !(t10 = r10.n()).done; ) { + var o10 = t10.value, i10 = yY(e20.state, o10.from, o10.to); + i10 && n10.push(pY.of(i10), kY(e20, i10, false)); + } + } catch (e21) { + r10.e(e21); + } finally { + r10.f(); + } + return n10.length && e20.dispatch({ effects: n10 }), n10.length > 0; + } }, { key: "Ctrl-Alt-[", run: function(e20) { + for (var t10 = e20.state, n10 = [], r10 = 0; r10 < t10.doc.length; ) { + var o10 = e20.lineBlockAt(r10), i10 = dY(t10, o10.from, o10.to); + i10 && n10.push(vY.of(i10)), r10 = (i10 ? e20.lineBlockAt(i10.to) : o10).to + 1; + } + return n10.length && e20.dispatch({ effects: bY(e20.state, n10) }), !!n10.length; + } }, { key: "Ctrl-Alt-]", run: function(e20) { + var t10 = e20.state.field(gY, false); + if (!t10 || !t10.size) + return false; + var n10 = []; + return t10.between(0, e20.state.doc.length, function(e21, t11) { + n10.push(pY.of({ from: e21, to: t11 })); + }), e20.dispatch({ effects: n10 }), true; + } }]; + var xY = { placeholderDOM: null, preparePlaceholder: null, placeholderText: "\u2026" }; + var jY = MF.define({ combine: function(e20) { + return gV(e20, xY); + } }); + function SY(e20) { + var t10 = [gY, AY]; + return e20 && t10.push(jY.of(e20)), t10; + } + function CY(e20, t10) { + var n10 = e20.state, r10 = n10.facet(jY), o10 = function(t11) { + var n11 = e20.lineBlockAt(e20.posAtDOM(t11.target)), r11 = yY(e20.state, n11.from, n11.to); + r11 && e20.dispatch({ effects: pY.of(r11) }), t11.preventDefault(); + }; + if (r10.placeholderDOM) + return r10.placeholderDOM(e20, o10, t10); + var i10 = document.createElement("span"); + return i10.textContent = r10.placeholderText, i10.setAttribute("aria-label", n10.phrase("folded code")), i10.title = n10.phrase("unfold"), i10.className = "cm-foldPlaceholder", i10.onclick = o10, i10; + } + var $Y = KH.replace({ widget: new (function(e20) { + function t10() { + return No(this, t10), _o(this, t10, arguments); + } + return Ao(t10, UH), Do(t10, [{ key: "toDOM", value: function(e21) { + return CY(e21, null); + } }]), t10; + }())() }); + var _Y = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), (n10 = _o(this, t10)).value = e21, n10; + } + return Ao(t10, UH), Do(t10, [{ key: "eq", value: function(e21) { + return this.value == e21.value; + } }, { key: "toDOM", value: function(e21) { + return CY(e21, this.value); + } }]), t10; + }(); + var OY = { openText: "\u2304", closedText: "\u203A", markerDOM: null, domEventHandlers: {}, foldingChanged: function() { + return false; + } }; + var MY = function(e20) { + function t10(e21, n10) { + var r10; + return No(this, t10), (r10 = _o(this, t10)).config = e21, r10.open = n10, r10; + } + return Ao(t10, sG), Do(t10, [{ key: "eq", value: function(e21) { + return this.config == e21.config && this.open == e21.open; + } }, { key: "toDOM", value: function(e21) { + if (this.config.markerDOM) + return this.config.markerDOM(this.open); + var t11 = document.createElement("span"); + return t11.textContent = this.open ? this.config.openText : this.config.closedText, t11.title = e21.state.phrase(this.open ? "Fold line" : "Unfold line"), t11; + } }]), t10; + }(); + function EY() { + var e20 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t10 = Object.assign(Object.assign({}, OY), e20), n10 = new MY(t10, true), r10 = new MY(t10, false), o10 = FW.fromClass(function() { + function e21(t11) { + No(this, e21), this.from = t11.viewport.from, this.markers = this.buildMarkers(t11); + } + return Do(e21, [{ key: "update", value: function(e23) { + (e23.docChanged || e23.viewportChanged || e23.startState.facet(KQ) != e23.state.facet(KQ) || e23.startState.field(gY, false) != e23.state.field(gY, false) || zQ(e23.startState) != zQ(e23.state) || t10.foldingChanged(e23)) && (this.markers = this.buildMarkers(e23.view)); + } }, { key: "buildMarkers", value: function(e23) { + var t11, o11 = new jV(), i11 = bo(e23.viewportLineBlocks); + try { + for (i11.s(); !(t11 = i11.n()).done; ) { + var a10 = t11.value, s10 = yY(e23.state, a10.from, a10.to) ? r10 : dY(e23.state, a10.from, a10.to) ? n10 : null; + s10 && o11.add(a10.from, a10.from, s10); + } + } catch (e24) { + i11.e(e24); + } finally { + i11.f(); + } + return o11.finish(); + } }]), e21; + }()), i10 = t10.domEventHandlers; + return [o10, fG({ class: "cm-foldGutter", markers: function(e21) { + var t11; + return (null === (t11 = e21.plugin(o10)) || void 0 === t11 ? void 0 : t11.markers) || xV.empty; + }, initialSpacer: function() { + return new MY(t10, false); + }, domEventHandlers: Object.assign(Object.assign({}, i10), { click: function(e21, t11, n11) { + if (i10.click && i10.click(e21, t11, n11)) + return true; + var r11 = yY(e21.state, t11.from, t11.to); + if (r11) + return e21.dispatch({ effects: pY.of(r11) }), true; + var o11 = dY(e21.state, t11.from, t11.to); + return !!o11 && (e21.dispatch({ effects: vY.of(o11) }), true); + } }) }), SY()]; + } + var AY = zJ.baseTheme({ ".cm-foldPlaceholder": { backgroundColor: "#eee", border: "1px solid #ddd", color: "#888", borderRadius: ".2em", margin: "0 1px", padding: "0 1px", cursor: "pointer" }, ".cm-foldGutter span": { padding: "0 1px", cursor: "pointer" } }); + var PY = function() { + function e20(t10, n10) { + var r10; + function o10(e21) { + var t11 = zV.newName(); + return (r10 || (r10 = /* @__PURE__ */ Object.create(null)))["." + t11] = e21, t11; + } + No(this, e20), this.specs = t10; + var i10 = "string" == typeof n10.all ? n10.all : n10.all ? o10(n10.all) : void 0, a10 = n10.scope; + this.scope = a10 instanceof IQ ? function(e21) { + return e21.prop(RQ) == a10.data; + } : a10 ? function(e21) { + return e21 == a10; + } : void 0, this.style = vQ(t10.map(function(e21) { + return { tag: e21.tag, class: e21.class || o10(Object.assign({}, e21, { tag: null })) }; + }), { all: i10 }).style, this.module = r10 ? new zV(r10) : null, this.themeType = n10.themeType; + } + return Do(e20, null, [{ key: "define", value: function(t10, n10) { + return new e20(t10, n10 || {}); + } }]), e20; + }(); + var TY = MF.define(); + var RY = MF.define({ combine: function(e20) { + return e20.length ? [e20[0]] : null; + } }); + function NY(e20) { + var t10 = e20.facet(TY); + return t10.length ? t10 : e20.facet(RY); + } + function IY(e20, t10) { + var n10, r10 = [qY]; + return e20 instanceof PY && (e20.module && r10.push(zJ.styleModule.of(e20.module)), n10 = e20.themeType), (null == t10 ? void 0 : t10.fallback) ? r10.push(RY.of(e20)) : n10 ? r10.push(TY.computeN([zJ.darkTheme], function(t11) { + return t11.facet(zJ.darkTheme) == ("dark" == n10) ? [e20] : []; + })) : r10.push(TY.of(e20)), r10; + } + var DY = function() { + function e20(t10) { + No(this, e20), this.markCache = /* @__PURE__ */ Object.create(null), this.tree = zQ(t10.state), this.decorations = this.buildDeco(t10, NY(t10.state)); + } + return Do(e20, [{ key: "update", value: function(e21) { + var t10 = zQ(e21.state), n10 = NY(e21.state), r10 = n10 != NY(e21.startState); + t10.length < e21.view.viewport.to && !r10 && t10.type == this.tree.type ? this.decorations = this.decorations.map(e21.changes) : (t10 != this.tree || e21.viewportChanged || r10) && (this.tree = t10, this.decorations = this.buildDeco(e21.view, n10)); + } }, { key: "buildDeco", value: function(e21, t10) { + var n10 = this; + if (!t10 || !this.tree.length) + return KH.none; + var r10, o10 = new jV(), i10 = bo(e21.visibleRanges); + try { + for (i10.s(); !(r10 = i10.n()).done; ) { + var a10 = r10.value, s10 = a10.from, c10 = a10.to; + pQ(this.tree, t10, function(e23, t11, r11) { + o10.add(e23, t11, n10.markCache[r11] || (n10.markCache[r11] = KH.mark({ class: r11 }))); + }, s10, c10); + } + } catch (e23) { + i10.e(e23); + } finally { + i10.f(); + } + return o10.finish(); + } }]), e20; + }(); + var qY = LF.high(FW.fromClass(DY, { decorations: function(e20) { + return e20.decorations; + } })); + var zY = PY.define([{ tag: TQ.meta, color: "#404740" }, { tag: TQ.link, textDecoration: "underline" }, { tag: TQ.heading, textDecoration: "underline", fontWeight: "bold" }, { tag: TQ.emphasis, fontStyle: "italic" }, { tag: TQ.strong, fontWeight: "bold" }, { tag: TQ.strikethrough, textDecoration: "line-through" }, { tag: TQ.keyword, color: "#708" }, { tag: [TQ.atom, TQ.bool, TQ.url, TQ.contentSeparator, TQ.labelName], color: "#219" }, { tag: [TQ.literal, TQ.inserted], color: "#164" }, { tag: [TQ.string, TQ.deleted], color: "#a11" }, { tag: [TQ.regexp, TQ.escape, TQ.special(TQ.string)], color: "#e40" }, { tag: TQ.definition(TQ.variableName), color: "#00f" }, { tag: TQ.local(TQ.variableName), color: "#30a" }, { tag: [TQ.typeName, TQ.namespace], color: "#085" }, { tag: TQ.className, color: "#167" }, { tag: [TQ.special(TQ.variableName), TQ.macroName], color: "#256" }, { tag: TQ.definition(TQ.propertyName), color: "#00c" }, { tag: TQ.comment, color: "#940" }, { tag: TQ.invalid, color: "#f00" }]); + var BY = zJ.baseTheme({ "&.cm-focused .cm-matchingBracket": { backgroundColor: "#328c8252" }, "&.cm-focused .cm-nonmatchingBracket": { backgroundColor: "#bb555544" } }); + var LY = 1e4; + var FY = "()[]{}"; + var VY = MF.define({ combine: function(e20) { + return gV(e20, { afterCursor: true, brackets: FY, maxScanDistance: LY, renderMatch: UY }); + } }); + var HY = KH.mark({ class: "cm-matchingBracket" }); + var WY = KH.mark({ class: "cm-nonmatchingBracket" }); + function UY(e20) { + var t10 = [], n10 = e20.matched ? HY : WY; + return t10.push(n10.range(e20.start.from, e20.start.to)), e20.end && t10.push(n10.range(e20.end.from, e20.end.to)), t10; + } + var JY = NF.define({ create: function() { + return KH.none; + }, update: function(e20, t10) { + if (!t10.docChanged && !t10.selection) + return e20; + var n10, r10 = [], o10 = t10.state.facet(VY), i10 = bo(t10.state.selection.ranges); + try { + for (i10.s(); !(n10 = i10.n()).done; ) { + var a10 = n10.value; + if (a10.empty) { + var s10 = ZY(t10.state, a10.head, -1, o10) || a10.head > 0 && ZY(t10.state, a10.head - 1, 1, o10) || o10.afterCursor && (ZY(t10.state, a10.head, 1, o10) || a10.head < t10.state.doc.length && ZY(t10.state, a10.head + 1, -1, o10)); + s10 && (r10 = r10.concat(o10.renderMatch(s10, t10.state))); + } + } + } catch (e21) { + i10.e(e21); + } finally { + i10.f(); + } + return KH.set(r10, true); + }, provide: function(e20) { + return zJ.decorations.from(e20); + } }); + var KY = [JY, BY]; + function GY() { + var e20 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + return [VY.of(e20), KY]; + } + var QY = new AG(); + function YY(e20, t10, n10) { + var r10 = e20.prop(t10 < 0 ? AG.openedBy : AG.closedBy); + if (r10) + return r10; + if (1 == e20.name.length) { + var o10 = n10.indexOf(e20.name); + if (o10 > -1 && o10 % 2 == (t10 < 0 ? 1 : 0)) + return [n10[o10 + t10]]; + } + return null; + } + function XY(e20) { + var t10 = e20.type.prop(QY); + return t10 ? t10(e20.node) : e20; + } + function ZY(e20, t10, n10) { + for (var r10 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}, o10 = r10.maxScanDistance || LY, i10 = r10.brackets || FY, a10 = zQ(e20), s10 = a10.resolveInner(t10, n10), c10 = s10; c10; c10 = c10.parent) { + var l10 = YY(c10.type, n10, i10); + if (l10 && c10.from < c10.to) { + var u10 = XY(c10); + if (u10 && (n10 > 0 ? t10 >= u10.from && t10 < u10.to : t10 > u10.from && t10 <= u10.to)) + return eX(e20, t10, n10, c10, u10, l10, i10); + } + } + return function(e21, t11, n11, r11, o11, i11, a11) { + var s11 = n11 < 0 ? e21.sliceDoc(t11 - 1, t11) : e21.sliceDoc(t11, t11 + 1), c11 = a11.indexOf(s11); + if (c11 < 0 || c11 % 2 == 0 != n11 > 0) + return null; + for (var l11 = { from: n11 < 0 ? t11 - 1 : t11, to: n11 > 0 ? t11 + 1 : t11 }, u11 = e21.doc.iterRange(t11, n11 > 0 ? e21.doc.length : 0), f10 = 0, d10 = 0; !u11.next().done && d10 <= i11; ) { + var h10 = u11.value; + n11 < 0 && (d10 += h10.length); + for (var v10 = t11 + d10 * n11, p10 = n11 > 0 ? 0 : h10.length - 1, m10 = n11 > 0 ? h10.length : -1; p10 != m10; p10 += n11) { + var g10 = a11.indexOf(h10[p10]); + if (!(g10 < 0 || r11.resolveInner(v10 + p10, 1).type != o11)) + if (g10 % 2 == 0 == n11 > 0) + f10++; + else { + if (1 == f10) + return { start: l11, end: { from: v10 + p10, to: v10 + p10 + 1 }, matched: g10 >> 1 == c11 >> 1 }; + f10--; + } + } + n11 > 0 && (d10 += h10.length); + } + return u11.done ? { start: l11, matched: false } : null; + }(e20, t10, n10, a10, s10.type, o10, i10); + } + function eX(e20, t10, n10, r10, o10, i10, a10) { + var s10 = r10.parent, c10 = { from: o10.from, to: o10.to }, l10 = 0, u10 = null == s10 ? void 0 : s10.cursor(); + if (u10 && (n10 < 0 ? u10.childBefore(r10.from) : u10.childAfter(r10.to))) + do { + if (n10 < 0 ? u10.to <= r10.from : u10.from >= r10.to) { + if (0 == l10 && i10.indexOf(u10.type.name) > -1 && u10.from < u10.to) { + var f10 = XY(u10); + return { start: c10, end: f10 ? { from: f10.from, to: f10.to } : void 0, matched: true }; + } + if (YY(u10.type, n10, a10)) + l10++; + else if (YY(u10.type, -n10, a10)) { + if (0 == l10) { + var d10 = XY(u10); + return { start: c10, end: d10 && d10.from < d10.to ? { from: d10.from, to: d10.to } : void 0, matched: false }; + } + l10--; + } + } + } while (n10 < 0 ? u10.prevSibling() : u10.nextSibling()); + return { start: c10, matched: false }; + } + for (tX = /* @__PURE__ */ Object.create(null), nX = [RG.none], rX = [], oX = /* @__PURE__ */ Object.create(null), iX = /* @__PURE__ */ Object.create(null), aX = 0, sX = [["variable", "variableName"], ["variable-2", "variableName.special"], ["string-2", "string.special"], ["def", "variableName.definition"], ["tag", "tagName"], ["attribute", "attributeName"], ["type", "typeName"], ["builtin", "variableName.standard"], ["qualifier", "modifier"], ["error", "invalid"], ["header", "heading"], ["property", "propertyName"]]; aX < sX.length; aX++) { + cX = jo(sX[aX], 2), lX = cX[0], uX = cX[1]; + iX[lX] = dX(tX, uX); + } + var cX; + var lX; + var uX; + var tX; + var nX; + var rX; + var oX; + var iX; + var aX; + var sX; + function fX(e20, t10) { + rX.indexOf(e20) > -1 || (rX.push(e20), console.warn(t10)); + } + function dX(e20, t10) { + var n10, r10 = [], o10 = bo(t10.split(" ")); + try { + for (o10.s(); !(n10 = o10.n()).done; ) { + var i10, a10 = n10.value, s10 = [], c10 = bo(a10.split(".")); + try { + for (c10.s(); !(i10 = c10.n()).done; ) { + var l10 = i10.value, u10 = e20[l10] || TQ[l10]; + u10 ? "function" == typeof u10 ? s10.length ? s10 = s10.map(u10) : fX(l10, "Modifier ".concat(l10, " used at start of tag")) : s10.length ? fX(l10, "Tag ".concat(l10, " used as modifier")) : s10 = Array.isArray(u10) ? u10 : [u10] : fX(l10, "Unknown highlighting tag ".concat(l10)); + } + } catch (e21) { + c10.e(e21); + } finally { + c10.f(); + } + var f10, d10 = bo(s10); + try { + for (d10.s(); !(f10 = d10.n()).done; ) { + var h10 = f10.value; + r10.push(h10); + } + } catch (e21) { + d10.e(e21); + } finally { + d10.f(); + } + } + } catch (e21) { + o10.e(e21); + } finally { + o10.f(); + } + if (!r10.length) + return 0; + var v10 = t10.replace(/ /g, "_"), p10 = v10 + " " + r10.map(function(e21) { + return e21.id; + }), m10 = oX[p10]; + if (m10) + return m10.id; + var g10 = oX[p10] = RG.define({ id: nX.length, name: v10, props: [fQ(qo({}, v10, r10))] }); + return nX.push(g10), g10.id; + } + rW.RTL, rW.LTR; + function hX(e20, t10) { + return function(n10) { + var r10 = n10.state, o10 = n10.dispatch; + if (r10.readOnly) + return false; + var i10 = e20(t10, r10); + return !!i10 && (o10(r10.update(i10)), true); + }; + } + var vX = hX(kX, 0); + var pX = hX(bX, 0); + var mX = hX(function(e20, t10) { + return bX(e20, t10, function(e21) { + var t11, n10 = [], r10 = bo(e21.selection.ranges); + try { + for (r10.s(); !(t11 = r10.n()).done; ) { + var o10 = t11.value, i10 = e21.doc.lineAt(o10.from), a10 = o10.to <= i10.to ? i10 : e21.doc.lineAt(o10.to), s10 = n10.length - 1; + s10 >= 0 && n10[s10].to > i10.from ? n10[s10].to = a10.to : n10.push({ from: i10.from + /^\s*/.exec(i10.text)[0].length, to: a10.to }); + } + } catch (e23) { + r10.e(e23); + } finally { + r10.f(); + } + return n10; + }(t10)); + }, 0); + function gX(e20, t10) { + var n10 = e20.languageDataAt("commentTokens", t10); + return n10.length ? n10[0] : {}; + } + var yX = 50; + function bX(e20, t10) { + var n10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : t10.selection.ranges, r10 = n10.map(function(e21) { + return gX(t10, e21.from).block; + }); + if (!r10.every(function(e21) { + return e21; + })) + return null; + var o10 = n10.map(function(e21, n11) { + return function(e23, t11, n12, r11) { + var o11, i11, a11 = t11.open, s11 = t11.close, c11 = e23.sliceDoc(n12 - yX, n12), l11 = e23.sliceDoc(r11, r11 + yX), u11 = /\s*$/.exec(c11)[0].length, f11 = /^\s*/.exec(l11)[0].length, d10 = c11.length - u11; + if (c11.slice(d10 - a11.length, d10) == a11 && l11.slice(f11, f11 + s11.length) == s11) + return { open: { pos: n12 - u11, margin: u11 && 1 }, close: { pos: r11 + f11, margin: f11 && 1 } }; + r11 - n12 <= 2 * yX ? o11 = i11 = e23.sliceDoc(n12, r11) : (o11 = e23.sliceDoc(n12, n12 + yX), i11 = e23.sliceDoc(r11 - yX, r11)); + var h10 = /^\s*/.exec(o11)[0].length, v10 = /\s*$/.exec(i11)[0].length, p10 = i11.length - v10 - s11.length; + return o11.slice(h10, h10 + a11.length) == a11 && i11.slice(p10, p10 + s11.length) == s11 ? { open: { pos: n12 + h10 + a11.length, margin: /\s/.test(o11.charAt(h10 + a11.length)) ? 1 : 0 }, close: { pos: r11 - v10 - s11.length, margin: /\s/.test(i11.charAt(p10 - 1)) ? 1 : 0 } } : null; + }(t10, r10[n11], e21.from, e21.to); + }); + if (2 != e20 && !o10.every(function(e21) { + return e21; + })) + return { changes: t10.changes(n10.map(function(e21, t11) { + return o10[t11] ? [] : [{ from: e21.from, insert: r10[t11].open + " " }, { from: e21.to, insert: " " + r10[t11].close }]; + })) }; + if (1 != e20 && o10.some(function(e21) { + return e21; + })) { + for (var i10, a10 = [], s10 = 0; s10 < o10.length; s10++) + if (i10 = o10[s10]) { + var c10 = r10[s10], l10 = i10, u10 = l10.open, f10 = l10.close; + a10.push({ from: u10.pos - c10.open.length, to: u10.pos + u10.margin }, { from: f10.pos - f10.margin, to: f10.pos + c10.close.length }); + } + return { changes: a10 }; + } + return null; + } + function kX(e20, t10) { + var n10, r10 = [], o10 = -1, i10 = bo(arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : t10.selection.ranges); + try { + for (i10.s(); !(n10 = i10.n()).done; ) { + var a10 = n10.value, s10 = a10.from, c10 = a10.to, l10 = r10.length, u10 = 1e9, f10 = gX(t10, s10).line; + if (f10) { + for (var d10 = s10; d10 <= c10; ) { + var h10 = t10.doc.lineAt(d10); + if (h10.from > o10 && (s10 == c10 || c10 > h10.from)) { + o10 = h10.from; + var v10 = /^\s*/.exec(h10.text)[0].length, p10 = v10 == h10.length, m10 = h10.text.slice(v10, v10 + f10.length) == f10 ? v10 : -1; + v10 < h10.text.length && v10 < u10 && (u10 = v10), r10.push({ line: h10, comment: m10, token: f10, indent: v10, empty: p10, single: false }); + } + d10 = h10.to + 1; + } + if (u10 < 1e9) + for (var g10 = l10; g10 < r10.length; g10++) + r10[g10].indent < r10[g10].line.text.length && (r10[g10].indent = u10); + r10.length == l10 + 1 && (r10[l10].single = true); + } + } + } catch (e21) { + i10.e(e21); + } finally { + i10.f(); + } + if (2 != e20 && r10.some(function(e21) { + return e21.comment < 0 && (!e21.empty || e21.single); + })) { + var y10, b10 = [], k10 = bo(r10); + try { + for (k10.s(); !(y10 = k10.n()).done; ) { + var w10 = y10.value, x10 = w10.line, j10 = w10.token, S10 = w10.indent, C10 = w10.empty; + !w10.single && C10 || b10.push({ from: x10.from + S10, insert: j10 + " " }); + } + } catch (e21) { + k10.e(e21); + } finally { + k10.f(); + } + var $10 = t10.changes(b10); + return { changes: $10, selection: t10.selection.map($10, 1) }; + } + if (1 != e20 && r10.some(function(e21) { + return e21.comment >= 0; + })) { + var _10, O10 = [], M10 = bo(r10); + try { + for (M10.s(); !(_10 = M10.n()).done; ) { + var E10 = _10.value, A10 = E10.line, P10 = E10.comment, T8 = E10.token; + if (P10 >= 0) { + var R8 = A10.from + P10, N8 = R8 + T8.length; + " " == A10.text[N8 - A10.from] && N8++, O10.push({ from: R8, to: N8 }); + } + } + } catch (e21) { + M10.e(e21); + } finally { + M10.f(); + } + return { changes: O10 }; + } + return null; + } + var wX = tV.define(); + var xX = tV.define(); + var jX = MF.define(); + var SX = MF.define({ combine: function(e20) { + return gV(e20, { minDepth: 100, newGroupDelay: 500, joinToEvent: function(e21, t10) { + return t10; + } }, { minDepth: Math.max, newGroupDelay: Math.min, joinToEvent: function(e21, t10) { + return function(n10, r10) { + return e21(n10, r10) || t10(n10, r10); + }; + } }); + } }); + var CX = NF.define({ create: function() { + return WX.empty; + }, update: function(e20, t10) { + var n10 = t10.state.facet(SX), r10 = t10.annotation(wX); + if (r10) { + var o10 = NX.fromTransaction(t10, r10.selection), i10 = r10.side, a10 = 0 == i10 ? e20.undone : e20.done; + return a10 = o10 ? IX(a10, a10.length, n10.minDepth, o10) : BX(a10, t10.startState.selection), new WX(0 == i10 ? r10.rest : a10, 0 == i10 ? a10 : r10.rest); + } + var s10 = t10.annotation(xX); + if ("full" != s10 && "before" != s10 || (e20 = e20.isolate()), false === t10.annotation(iV.addToHistory)) + return t10.changes.empty ? e20 : e20.addMapping(t10.changes.desc); + var c10 = NX.fromTransaction(t10), l10 = t10.annotation(iV.time), u10 = t10.annotation(iV.userEvent); + return c10 ? e20 = e20.addChanges(c10, l10, u10, n10, t10) : t10.selection && (e20 = e20.addSelection(t10.startState.selection, l10, u10, n10.newGroupDelay)), "full" != s10 && "after" != s10 || (e20 = e20.isolate()), e20; + }, toJSON: function(e20) { + return { done: e20.done.map(function(e21) { + return e21.toJSON(); + }), undone: e20.undone.map(function(e21) { + return e21.toJSON(); + }) }; + }, fromJSON: function(e20) { + return new WX(e20.done.map(NX.fromJSON), e20.undone.map(NX.fromJSON)); + } }); + function $X() { + var e20 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + return [CX, SX.of(e20), zJ.domEventHandlers({ beforeinput: function(e21, t10) { + var n10 = "historyUndo" == e21.inputType ? OX : "historyRedo" == e21.inputType ? MX : null; + return !!n10 && (e21.preventDefault(), n10(t10)); + } })]; + } + function _X(e20, t10) { + return function(n10) { + var r10 = n10.state, o10 = n10.dispatch; + if (!t10 && r10.readOnly) + return false; + var i10 = r10.field(CX, false); + if (!i10) + return false; + var a10 = i10.pop(e20, r10, t10); + return !!a10 && (o10(a10), true); + }; + } + var OX = _X(0, false); + var MX = _X(1, false); + var EX = _X(0, true); + var AX = _X(1, true); + function PX(e20) { + return function(t10) { + var n10 = t10.field(CX, false); + if (!n10) + return 0; + var r10 = 0 == e20 ? n10.done : n10.undone; + return r10.length - (r10.length && !r10[0].changes ? 1 : 0); + }; + } + var TX = PX(0); + var RX = PX(1); + var NX = function() { + function e20(t10, n10, r10, o10, i10) { + No(this, e20), this.changes = t10, this.effects = n10, this.mapped = r10, this.startSelection = o10, this.selectionsAfter = i10; + } + return Do(e20, [{ key: "setSelAfter", value: function(t10) { + return new e20(this.changes, this.effects, this.mapped, this.startSelection, t10); + } }, { key: "toJSON", value: function() { + var e21, t10, n10; + return { changes: null === (e21 = this.changes) || void 0 === e21 ? void 0 : e21.toJSON(), mapped: null === (t10 = this.mapped) || void 0 === t10 ? void 0 : t10.toJSON(), startSelection: null === (n10 = this.startSelection) || void 0 === n10 ? void 0 : n10.toJSON(), selectionsAfter: this.selectionsAfter.map(function(e23) { + return e23.toJSON(); + }) }; + } }], [{ key: "fromJSON", value: function(t10) { + return new e20(t10.changes && yF.fromJSON(t10.changes), [], t10.mapped && gF.fromJSON(t10.mapped), t10.startSelection && $F.fromJSON(t10.startSelection), t10.selectionsAfter.map($F.fromJSON)); + } }, { key: "fromTransaction", value: function(t10, n10) { + var r10, o10 = qX, i10 = bo(t10.startState.facet(jX)); + try { + for (i10.s(); !(r10 = i10.n()).done; ) { + var a10 = (0, r10.value)(t10); + a10.length && (o10 = o10.concat(a10)); + } + } catch (e21) { + i10.e(e21); + } finally { + i10.f(); + } + return !o10.length && t10.changes.empty ? null : new e20(t10.changes.invert(t10.startState.doc), o10, void 0, n10 || t10.startState.selection, qX); + } }, { key: "selection", value: function(t10) { + return new e20(void 0, qX, void 0, void 0, t10); + } }]), e20; + }(); + function IX(e20, t10, n10, r10) { + var o10 = t10 + 1 > n10 + 20 ? t10 - n10 - 1 : 0, i10 = e20.slice(o10, t10); + return i10.push(r10), i10; + } + function DX(e20, t10) { + return e20.length ? t10.length ? e20.concat(t10) : e20 : t10; + } + var qX = []; + var zX = 200; + function BX(e20, t10) { + if (e20.length) { + var n10 = e20[e20.length - 1], r10 = n10.selectionsAfter.slice(Math.max(0, n10.selectionsAfter.length - zX)); + return r10.length && r10[r10.length - 1].eq(t10) ? e20 : (r10.push(t10), IX(e20, e20.length - 1, 1e9, n10.setSelAfter(r10))); + } + return [NX.selection([t10])]; + } + function LX(e20) { + var t10 = e20[e20.length - 1], n10 = e20.slice(); + return n10[e20.length - 1] = t10.setSelAfter(t10.selectionsAfter.slice(0, t10.selectionsAfter.length - 1)), n10; + } + function FX(e20, t10) { + if (!e20.length) + return e20; + for (var n10 = e20.length, r10 = qX; n10; ) { + var o10 = VX(e20[n10 - 1], t10, r10); + if (o10.changes && !o10.changes.empty || o10.effects.length) { + var i10 = e20.slice(0, n10); + return i10[n10 - 1] = o10, i10; + } + t10 = o10.mapped, n10--, r10 = o10.selectionsAfter; + } + return r10.length ? [NX.selection(r10)] : qX; + } + function VX(e20, t10, n10) { + var r10 = DX(e20.selectionsAfter.length ? e20.selectionsAfter.map(function(e21) { + return e21.map(t10); + }) : qX, n10); + if (!e20.changes) + return NX.selection(r10); + var o10 = e20.changes.map(t10), i10 = t10.mapDesc(e20.changes, true), a10 = e20.mapped ? e20.mapped.composeDesc(i10) : i10; + return new NX(o10, oV.mapEffects(e20.effects, t10), a10, e20.startSelection.map(i10), r10); + } + var HX = /^(input\.type|delete)($|\.)/; + var WX = function() { + function e20(t10, n10) { + var r10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, o10 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : void 0; + No(this, e20), this.done = t10, this.undone = n10, this.prevTime = r10, this.prevUserEvent = o10; + } + return Do(e20, [{ key: "isolate", value: function() { + return this.prevTime ? new e20(this.done, this.undone) : this; + } }, { key: "addChanges", value: function(t10, n10, r10, o10, i10) { + var a10 = this.done, s10 = a10[a10.length - 1]; + return a10 = s10 && s10.changes && !s10.changes.empty && t10.changes && (!r10 || HX.test(r10)) && (!s10.selectionsAfter.length && n10 - this.prevTime < o10.newGroupDelay && o10.joinToEvent(i10, function(e21, t11) { + var n11 = [], r11 = false; + return e21.iterChangedRanges(function(e23, t12) { + return n11.push(e23, t12); + }), t11.iterChangedRanges(function(e23, t12, o11, i11) { + for (var a11 = 0; a11 < n11.length; ) { + var s11 = n11[a11++], c10 = n11[a11++]; + i11 >= s11 && o11 <= c10 && (r11 = true); + } + }), r11; + }(s10.changes, t10.changes)) || "input.type.compose" == r10) ? IX(a10, a10.length - 1, o10.minDepth, new NX(t10.changes.compose(s10.changes), DX(t10.effects, s10.effects), s10.mapped, s10.startSelection, qX)) : IX(a10, a10.length, o10.minDepth, t10), new e20(a10, qX, n10, r10); + } }, { key: "addSelection", value: function(t10, n10, r10, o10) { + var i10, a10, s10 = this.done.length ? this.done[this.done.length - 1].selectionsAfter : qX; + return s10.length > 0 && n10 - this.prevTime < o10 && r10 == this.prevUserEvent && r10 && /^select($|\.)/.test(r10) && (i10 = s10[s10.length - 1], a10 = t10, i10.ranges.length == a10.ranges.length && 0 === i10.ranges.filter(function(e21, t11) { + return e21.empty != a10.ranges[t11].empty; + }).length) ? this : new e20(BX(this.done, t10), this.undone, n10, r10); + } }, { key: "addMapping", value: function(t10) { + return new e20(FX(this.done, t10), FX(this.undone, t10), this.prevTime, this.prevUserEvent); + } }, { key: "pop", value: function(e21, t10, n10) { + var r10 = 0 == e21 ? this.done : this.undone; + if (0 == r10.length) + return null; + var o10 = r10[r10.length - 1], i10 = o10.selectionsAfter[0] || t10.selection; + if (n10 && o10.selectionsAfter.length) + return t10.update({ selection: o10.selectionsAfter[o10.selectionsAfter.length - 1], annotations: wX.of({ side: e21, rest: LX(r10), selection: i10 }), userEvent: 0 == e21 ? "select.undo" : "select.redo", scrollIntoView: true }); + if (o10.changes) { + var a10 = 1 == r10.length ? qX : r10.slice(0, r10.length - 1); + return o10.mapped && (a10 = FX(a10, o10.mapped)), t10.update({ changes: o10.changes, selection: o10.startSelection, effects: o10.effects, annotations: wX.of({ side: e21, rest: a10, selection: i10 }), filter: false, userEvent: 0 == e21 ? "undo" : "redo", scrollIntoView: true }); + } + return null; + } }]), e20; + }(); + WX.empty = new WX(qX, qX); + var UX = [{ key: "Mod-z", run: OX, preventDefault: true }, { key: "Mod-y", mac: "Mod-Shift-z", run: MX, preventDefault: true }, { linux: "Ctrl-Shift-z", run: MX, preventDefault: true }, { key: "Mod-u", run: EX, preventDefault: true }, { key: "Alt-u", mac: "Mod-Shift-u", run: AX, preventDefault: true }]; + function JX(e20, t10) { + return $F.create(e20.ranges.map(t10), e20.mainIndex); + } + function KX(e20, t10) { + return e20.update({ selection: t10, scrollIntoView: true, userEvent: "select" }); + } + function GX(e20, t10) { + var n10 = e20.state, r10 = e20.dispatch, o10 = JX(n10.selection, t10); + return !o10.eq(n10.selection, true) && (r10(KX(n10, o10)), true); + } + function QX(e20, t10) { + return $F.cursor(t10 ? e20.to : e20.from); + } + function YX(e20, t10) { + return GX(e20, function(n10) { + return n10.empty ? e20.moveByChar(n10, t10) : QX(n10, t10); + }); + } + function XX(e20) { + return e20.textDirectionAt(e20.state.selection.main.head) == rW.LTR; + } + var ZX = function(e20) { + return YX(e20, !XX(e20)); + }; + var eZ = function(e20) { + return YX(e20, XX(e20)); + }; + function tZ(e20, t10) { + return GX(e20, function(n10) { + return n10.empty ? e20.moveByGroup(n10, t10) : QX(n10, t10); + }); + } + function nZ(e20, t10, n10) { + if (t10.type.prop(n10)) + return true; + var r10 = t10.to - t10.from; + return r10 && (r10 > 2 || /[^\s,.;:]/.test(e20.sliceDoc(t10.from, t10.to))) || t10.firstChild; + } + function rZ(e20, t10, n10) { + for (var r10 = zQ(e20).resolveInner(t10.head), o10 = n10 ? AG.closedBy : AG.openedBy, i10 = t10.head; ; ) { + var a10 = n10 ? r10.childAfter(i10) : r10.childBefore(i10); + if (!a10) + break; + nZ(e20, a10, o10) ? r10 = a10 : i10 = n10 ? a10.to : a10.from; + } + var s10, c10; + return c10 = r10.type.prop(o10) && (s10 = n10 ? ZY(e20, r10.from, 1) : ZY(e20, r10.to, -1)) && s10.matched ? n10 ? s10.end.to : s10.end.from : n10 ? r10.to : r10.from, $F.cursor(c10, n10 ? -1 : 1); + } + function oZ(e20, t10) { + return GX(e20, function(n10) { + if (!n10.empty) + return QX(n10, t10); + var r10 = e20.moveVertically(n10, t10); + return r10.head != n10.head ? r10 : e20.moveToLineBoundary(n10, t10); + }); + } + var iZ = function(e20) { + return oZ(e20, false); + }; + var aZ = function(e20) { + return oZ(e20, true); + }; + function sZ(e20) { + var t10, n10 = e20.scrollDOM.clientHeight < e20.scrollDOM.scrollHeight - 2, r10 = 0, o10 = 0; + if (n10) { + var i10, a10 = bo(e20.state.facet(zJ.scrollMargins)); + try { + for (a10.s(); !(i10 = a10.n()).done; ) { + var s10 = (0, i10.value)(e20); + (null == s10 ? void 0 : s10.top) && (r10 = Math.max(null == s10 ? void 0 : s10.top, r10)), (null == s10 ? void 0 : s10.bottom) && (o10 = Math.max(null == s10 ? void 0 : s10.bottom, o10)); + } + } catch (e21) { + a10.e(e21); + } finally { + a10.f(); + } + t10 = e20.scrollDOM.clientHeight - r10 - o10; + } else + t10 = (e20.dom.ownerDocument.defaultView || window).innerHeight; + return { marginTop: r10, marginBottom: o10, selfScroll: n10, height: Math.max(e20.defaultLineHeight, t10 - 5) }; + } + function cZ(e20, t10) { + var n10, r10 = sZ(e20), o10 = e20.state, i10 = JX(o10.selection, function(n11) { + return n11.empty ? e20.moveVertically(n11, t10, r10.height) : QX(n11, t10); + }); + if (i10.eq(o10.selection)) + return false; + if (r10.selfScroll) { + var a10 = e20.coordsAtPos(o10.selection.main.head), s10 = e20.scrollDOM.getBoundingClientRect(), c10 = s10.top + r10.marginTop, l10 = s10.bottom - r10.marginBottom; + a10 && a10.top > c10 && a10.bottom < l10 && (n10 = zJ.scrollIntoView(i10.main.head, { y: "start", yMargin: a10.top - c10 })); + } + return e20.dispatch(KX(o10, i10), { effects: n10 }), true; + } + var lZ = function(e20) { + return cZ(e20, false); + }; + var uZ = function(e20) { + return cZ(e20, true); + }; + function fZ(e20, t10, n10) { + var r10 = e20.lineBlockAt(t10.head), o10 = e20.moveToLineBoundary(t10, n10); + if (o10.head == t10.head && o10.head != (n10 ? r10.to : r10.from) && (o10 = e20.moveToLineBoundary(t10, n10, false)), !n10 && o10.head == r10.from && r10.length) { + var i10 = /^\s*/.exec(e20.state.sliceDoc(r10.from, Math.min(r10.from + 100, r10.to)))[0].length; + i10 && t10.head != r10.from + i10 && (o10 = $F.cursor(r10.from + i10)); + } + return o10; + } + function dZ(e20, t10) { + var n10 = JX(e20.state.selection, function(e21) { + var n11 = t10(e21); + return $F.range(e21.anchor, n11.head, n11.goalColumn, n11.bidiLevel || void 0); + }); + return !n10.eq(e20.state.selection) && (e20.dispatch(KX(e20.state, n10)), true); + } + function hZ(e20, t10) { + return dZ(e20, function(n10) { + return e20.moveByChar(n10, t10); + }); + } + var vZ = function(e20) { + return hZ(e20, !XX(e20)); + }; + var pZ = function(e20) { + return hZ(e20, XX(e20)); + }; + function mZ(e20, t10) { + return dZ(e20, function(n10) { + return e20.moveByGroup(n10, t10); + }); + } + function gZ(e20, t10) { + return dZ(e20, function(n10) { + return e20.moveVertically(n10, t10); + }); + } + var yZ = function(e20) { + return gZ(e20, false); + }; + var bZ = function(e20) { + return gZ(e20, true); + }; + function kZ(e20, t10) { + return dZ(e20, function(n10) { + return e20.moveVertically(n10, t10, sZ(e20).height); + }); + } + var wZ = function(e20) { + return kZ(e20, false); + }; + var xZ = function(e20) { + return kZ(e20, true); + }; + var jZ = function(e20) { + var t10 = e20.state; + return (0, e20.dispatch)(KX(t10, { anchor: 0 })), true; + }; + var SZ = function(e20) { + var t10 = e20.state; + return (0, e20.dispatch)(KX(t10, { anchor: t10.doc.length })), true; + }; + var CZ = function(e20) { + var t10 = e20.state; + return (0, e20.dispatch)(KX(t10, { anchor: t10.selection.main.anchor, head: 0 })), true; + }; + var $Z = function(e20) { + var t10 = e20.state; + return (0, e20.dispatch)(KX(t10, { anchor: t10.selection.main.anchor, head: t10.doc.length })), true; + }; + function _Z(e20, t10) { + if (e20.state.readOnly) + return false; + var n10 = "delete.selection", r10 = e20.state, o10 = r10.changeByRange(function(r11) { + var o11 = r11.from, i10 = r11.to; + if (o11 == i10) { + var a10 = t10(r11); + a10 < o11 ? (n10 = "delete.backward", a10 = OZ(e20, a10, false)) : a10 > o11 && (n10 = "delete.forward", a10 = OZ(e20, a10, true)), o11 = Math.min(o11, a10), i10 = Math.max(i10, a10); + } else + o11 = OZ(e20, o11, false), i10 = OZ(e20, i10, true); + return o11 == i10 ? { range: r11 } : { changes: { from: o11, to: i10 }, range: $F.cursor(o11, o11 < r11.head ? -1 : 1) }; + }); + return !o10.changes.empty && (e20.dispatch(r10.update(o10, { scrollIntoView: true, userEvent: n10, effects: "delete.selection" == n10 ? zJ.announce.of(r10.phrase("Selection deleted")) : void 0 })), true); + } + function OZ(e20, t10, n10) { + if (e20 instanceof zJ) { + var r10, o10 = bo(e20.state.facet(zJ.atomicRanges).map(function(t11) { + return t11(e20); + })); + try { + for (o10.s(); !(r10 = o10.n()).done; ) { + r10.value.between(t10, t10, function(e21, r11) { + e21 < t10 && r11 > t10 && (t10 = n10 ? r11 : e21); + }); + } + } catch (e21) { + o10.e(e21); + } finally { + o10.f(); + } + } + return t10; + } + var MZ = function(e20, t10) { + return _Z(e20, function(n10) { + var r10, o10, i10 = n10.from, a10 = e20.state, s10 = a10.doc.lineAt(i10); + if (!t10 && i10 > s10.from && i10 < s10.from + 200 && !/[^ \t]/.test(r10 = s10.text.slice(0, i10 - s10.from))) { + if (" " == r10[r10.length - 1]) + return i10 - 1; + for (var c10 = RV(r10, a10.tabSize) % XQ(a10) || XQ(a10), l10 = 0; l10 < c10 && " " == r10[r10.length - 1 - l10]; l10++) + i10--; + o10 = i10; + } else + (o10 = sF(s10.text, i10 - s10.from, t10, t10) + s10.from) == i10 && s10.number != (t10 ? a10.doc.lines : 1) ? o10 += t10 ? 1 : -1 : !t10 && /[\ufe00-\ufe0f]/.test(s10.text.slice(o10 - s10.from, i10 - s10.from)) && (o10 = sF(s10.text, o10 - s10.from, false, false) + s10.from); + return o10; + }); + }; + var EZ = function(e20) { + return MZ(e20, false); + }; + var AZ = function(e20) { + return MZ(e20, true); + }; + var PZ = function(e20, t10) { + return _Z(e20, function(n10) { + for (var r10 = n10.head, o10 = e20.state, i10 = o10.doc.lineAt(r10), a10 = o10.charCategorizer(r10), s10 = null; ; ) { + if (r10 == (t10 ? i10.to : i10.from)) { + r10 == n10.head && i10.number != (t10 ? o10.doc.lines : 1) && (r10 += t10 ? 1 : -1); + break; + } + var c10 = sF(i10.text, r10 - i10.from, t10) + i10.from, l10 = i10.text.slice(Math.min(r10, c10) - i10.from, Math.max(r10, c10) - i10.from), u10 = a10(l10); + if (null != s10 && u10 != s10) + break; + " " == l10 && r10 == n10.head || (s10 = u10), r10 = c10; + } + return r10; + }); + }; + var TZ = function(e20) { + return PZ(e20, false); + }; + function RZ(e20) { + var t10, n10 = [], r10 = -1, o10 = bo(e20.selection.ranges); + try { + for (o10.s(); !(t10 = o10.n()).done; ) { + var i10 = t10.value, a10 = e20.doc.lineAt(i10.from), s10 = e20.doc.lineAt(i10.to); + if (i10.empty || i10.to != s10.from || (s10 = e20.doc.lineAt(i10.to - 1)), r10 >= a10.number) { + var c10 = n10[n10.length - 1]; + c10.to = s10.to, c10.ranges.push(i10); + } else + n10.push({ from: a10.from, to: s10.to, ranges: [i10] }); + r10 = s10.number + 1; + } + } catch (e21) { + o10.e(e21); + } finally { + o10.f(); + } + return n10; + } + function NZ(e20, t10, n10) { + if (e20.readOnly) + return false; + var r10, o10 = [], i10 = [], a10 = bo(RZ(e20)); + try { + for (a10.s(); !(r10 = a10.n()).done; ) { + var s10 = r10.value; + if (n10 ? s10.to != e20.doc.length : 0 != s10.from) { + var c10 = e20.doc.lineAt(n10 ? s10.to + 1 : s10.from - 1), l10 = c10.length + 1; + if (n10) { + o10.push({ from: s10.to, to: c10.to }, { from: s10.from, insert: c10.text + e20.lineBreak }); + var u10, f10 = bo(s10.ranges); + try { + for (f10.s(); !(u10 = f10.n()).done; ) { + var d10 = u10.value; + i10.push($F.range(Math.min(e20.doc.length, d10.anchor + l10), Math.min(e20.doc.length, d10.head + l10))); + } + } catch (e21) { + f10.e(e21); + } finally { + f10.f(); + } + } else { + o10.push({ from: c10.from, to: s10.from }, { from: s10.to, insert: e20.lineBreak + c10.text }); + var h10, v10 = bo(s10.ranges); + try { + for (v10.s(); !(h10 = v10.n()).done; ) { + var p10 = h10.value; + i10.push($F.range(p10.anchor - l10, p10.head - l10)); + } + } catch (e21) { + v10.e(e21); + } finally { + v10.f(); + } + } + } + } + } catch (e21) { + a10.e(e21); + } finally { + a10.f(); + } + return !!o10.length && (t10(e20.update({ changes: o10, scrollIntoView: true, selection: $F.create(i10, e20.selection.mainIndex), userEvent: "move.line" })), true); + } + function IZ(e20, t10, n10) { + if (e20.readOnly) + return false; + var r10, o10 = [], i10 = bo(RZ(e20)); + try { + for (i10.s(); !(r10 = i10.n()).done; ) { + var a10 = r10.value; + n10 ? o10.push({ from: a10.from, insert: e20.doc.slice(a10.from, a10.to) + e20.lineBreak }) : o10.push({ from: a10.to, insert: e20.lineBreak + e20.doc.slice(a10.from, a10.to) }); + } + } catch (e21) { + i10.e(e21); + } finally { + i10.f(); + } + return t10(e20.update({ changes: o10, scrollIntoView: true, userEvent: "input.copyline" })), true; + } + var DZ = zZ(false); + var qZ = zZ(true); + function zZ(e20) { + return function(t10) { + var n10 = t10.state, r10 = t10.dispatch; + if (n10.readOnly) + return false; + var o10 = n10.changeByRange(function(t11) { + var r11 = t11.from, o11 = t11.to, i10 = n10.doc.lineAt(r11), a10 = !e20 && r11 == o11 && function(e21, t12) { + if (/\(\)|\[\]|\{\}/.test(e21.sliceDoc(t12 - 1, t12 + 1))) + return { from: t12, to: t12 }; + var n11, r12 = zQ(e21).resolveInner(t12), o12 = r12.childBefore(t12), i11 = r12.childAfter(t12); + return o12 && i11 && o12.to <= t12 && i11.from >= t12 && (n11 = o12.type.prop(AG.closedBy)) && n11.indexOf(i11.name) > -1 && e21.doc.lineAt(o12.to).from == e21.doc.lineAt(i11.from).from && !/\S/.test(e21.sliceDoc(o12.to, i11.from)) ? { from: o12.to, to: i11.from } : null; + }(n10, r11); + e20 && (r11 = o11 = (o11 <= i10.to ? i10 : n10.doc.lineAt(o11)).to); + var s10 = new tY(n10, { simulateBreak: r11, simulateDoubleBreak: !!a10 }), c10 = eY(s10, r11); + for (null == c10 && (c10 = RV(/^\s*/.exec(n10.doc.lineAt(r11).text)[0], n10.tabSize)); o11 < i10.to && /\s/.test(i10.text[o11 - i10.from]); ) + o11++; + a10 ? (r11 = a10.from, o11 = a10.to) : r11 > i10.from && r11 < i10.from + 100 && !/\S/.test(i10.text.slice(0, r11)) && (r11 = i10.from); + var l10 = ["", ZQ(n10, c10)]; + return a10 && l10.push(ZQ(n10, s10.lineIndent(i10.from, -1))), { changes: { from: r11, to: o11, insert: UL.of(l10) }, range: $F.cursor(r11 + 1 + l10[1].length) }; + }); + return r10(n10.update(o10, { scrollIntoView: true, userEvent: "input" })), true; + }; + } + function BZ(e20, t10) { + var n10 = -1; + return e20.changeByRange(function(r10) { + for (var o10 = [], i10 = r10.from; i10 <= r10.to; ) { + var a10 = e20.doc.lineAt(i10); + a10.number > n10 && (r10.empty || r10.to > a10.from) && (t10(a10, o10, r10), n10 = a10.number), i10 = a10.to + 1; + } + var s10 = e20.changes(o10); + return { changes: o10, range: $F.range(s10.mapPos(r10.anchor, 1), s10.mapPos(r10.head, 1)) }; + }); + } + var LZ = function(e20) { + var t10 = e20.state, n10 = e20.dispatch; + return !t10.readOnly && (n10(t10.update(BZ(t10, function(e21, n11) { + n11.push({ from: e21.from, insert: t10.facet(YQ) }); + }), { userEvent: "input.indent" })), true); + }; + var FZ = function(e20) { + var t10 = e20.state, n10 = e20.dispatch; + return !t10.readOnly && (n10(t10.update(BZ(t10, function(e21, n11) { + var r10 = /^\s*/.exec(e21.text)[0]; + if (r10) { + for (var o10 = RV(r10, t10.tabSize), i10 = 0, a10 = ZQ(t10, Math.max(0, o10 - XQ(t10))); i10 < r10.length && i10 < a10.length && r10.charCodeAt(i10) == a10.charCodeAt(i10); ) + i10++; + n11.push({ from: e21.from + i10, to: e21.from + r10.length, insert: a10.slice(i10) }); + } + }), { userEvent: "delete.dedent" })), true); + }; + var VZ = [{ key: "Ctrl-b", run: ZX, shift: vZ, preventDefault: true }, { key: "Ctrl-f", run: eZ, shift: pZ }, { key: "Ctrl-p", run: iZ, shift: yZ }, { key: "Ctrl-n", run: aZ, shift: bZ }, { key: "Ctrl-a", run: function(e20) { + return GX(e20, function(t10) { + return $F.cursor(e20.lineBlockAt(t10.head).from, 1); + }); + }, shift: function(e20) { + return dZ(e20, function(t10) { + return $F.cursor(e20.lineBlockAt(t10.head).from); + }); + } }, { key: "Ctrl-e", run: function(e20) { + return GX(e20, function(t10) { + return $F.cursor(e20.lineBlockAt(t10.head).to, -1); + }); + }, shift: function(e20) { + return dZ(e20, function(t10) { + return $F.cursor(e20.lineBlockAt(t10.head).to); + }); + } }, { key: "Ctrl-d", run: AZ }, { key: "Ctrl-h", run: EZ }, { key: "Ctrl-k", run: function(e20) { + return _Z(e20, function(t10) { + var n10 = e20.lineBlockAt(t10.head).to; + return t10.head < n10 ? n10 : Math.min(e20.state.doc.length, t10.head + 1); + }); + } }, { key: "Ctrl-Alt-h", run: TZ }, { key: "Ctrl-o", run: function(e20) { + var t10 = e20.state, n10 = e20.dispatch; + if (t10.readOnly) + return false; + var r10 = t10.changeByRange(function(e21) { + return { changes: { from: e21.from, to: e21.to, insert: UL.of(["", ""]) }, range: $F.cursor(e21.from) }; + }); + return n10(t10.update(r10, { scrollIntoView: true, userEvent: "input" })), true; + } }, { key: "Ctrl-t", run: function(e20) { + var t10 = e20.state, n10 = e20.dispatch; + if (t10.readOnly) + return false; + var r10 = t10.changeByRange(function(e21) { + if (!e21.empty || 0 == e21.from || e21.from == t10.doc.length) + return { range: e21 }; + var n11 = e21.from, r11 = t10.doc.lineAt(n11), o10 = n11 == r11.from ? n11 - 1 : sF(r11.text, n11 - r11.from, false) + r11.from, i10 = n11 == r11.to ? n11 + 1 : sF(r11.text, n11 - r11.from, true) + r11.from; + return { changes: { from: o10, to: i10, insert: t10.doc.slice(n11, i10).append(t10.doc.slice(o10, n11)) }, range: $F.cursor(i10) }; + }); + return !r10.changes.empty && (n10(t10.update(r10, { scrollIntoView: true, userEvent: "move.character" })), true); + } }, { key: "Ctrl-v", run: uZ }]; + var HZ = [{ key: "ArrowLeft", run: ZX, shift: vZ, preventDefault: true }, { key: "Mod-ArrowLeft", mac: "Alt-ArrowLeft", run: function(e20) { + return tZ(e20, !XX(e20)); + }, shift: function(e20) { + return mZ(e20, !XX(e20)); + }, preventDefault: true }, { mac: "Cmd-ArrowLeft", run: function(e20) { + return GX(e20, function(t10) { + return fZ(e20, t10, !XX(e20)); + }); + }, shift: function(e20) { + return dZ(e20, function(t10) { + return fZ(e20, t10, !XX(e20)); + }); + }, preventDefault: true }, { key: "ArrowRight", run: eZ, shift: pZ, preventDefault: true }, { key: "Mod-ArrowRight", mac: "Alt-ArrowRight", run: function(e20) { + return tZ(e20, XX(e20)); + }, shift: function(e20) { + return mZ(e20, XX(e20)); + }, preventDefault: true }, { mac: "Cmd-ArrowRight", run: function(e20) { + return GX(e20, function(t10) { + return fZ(e20, t10, XX(e20)); + }); + }, shift: function(e20) { + return dZ(e20, function(t10) { + return fZ(e20, t10, XX(e20)); + }); + }, preventDefault: true }, { key: "ArrowUp", run: iZ, shift: yZ, preventDefault: true }, { mac: "Cmd-ArrowUp", run: jZ, shift: CZ }, { mac: "Ctrl-ArrowUp", run: lZ, shift: wZ }, { key: "ArrowDown", run: aZ, shift: bZ, preventDefault: true }, { mac: "Cmd-ArrowDown", run: SZ, shift: $Z }, { mac: "Ctrl-ArrowDown", run: uZ, shift: xZ }, { key: "PageUp", run: lZ, shift: wZ }, { key: "PageDown", run: uZ, shift: xZ }, { key: "Home", run: function(e20) { + return GX(e20, function(t10) { + return fZ(e20, t10, false); + }); + }, shift: function(e20) { + return dZ(e20, function(t10) { + return fZ(e20, t10, false); + }); + }, preventDefault: true }, { key: "Mod-Home", run: jZ, shift: CZ }, { key: "End", run: function(e20) { + return GX(e20, function(t10) { + return fZ(e20, t10, true); + }); + }, shift: function(e20) { + return dZ(e20, function(t10) { + return fZ(e20, t10, true); + }); + }, preventDefault: true }, { key: "Mod-End", run: SZ, shift: $Z }, { key: "Enter", run: DZ }, { key: "Mod-a", run: function(e20) { + var t10 = e20.state; + return (0, e20.dispatch)(t10.update({ selection: { anchor: 0, head: t10.doc.length }, userEvent: "select" })), true; + } }, { key: "Backspace", run: EZ, shift: EZ }, { key: "Delete", run: AZ }, { key: "Mod-Backspace", mac: "Alt-Backspace", run: TZ }, { key: "Mod-Delete", mac: "Alt-Delete", run: function(e20) { + return PZ(e20, true); + } }, { mac: "Mod-Backspace", run: function(e20) { + return _Z(e20, function(t10) { + var n10 = e20.moveToLineBoundary(t10, false).head; + return t10.head > n10 ? n10 : Math.max(0, t10.head - 1); + }); + } }, { mac: "Mod-Delete", run: function(e20) { + return _Z(e20, function(t10) { + var n10 = e20.moveToLineBoundary(t10, true).head; + return t10.head < n10 ? n10 : Math.min(e20.state.doc.length, t10.head + 1); + }); + } }].concat(VZ.map(function(e20) { + return { mac: e20.key, run: e20.run, shift: e20.shift }; + })); + var WZ = [{ key: "Alt-ArrowLeft", mac: "Ctrl-ArrowLeft", run: function(e20) { + return GX(e20, function(t10) { + return rZ(e20.state, t10, !XX(e20)); + }); + }, shift: function(e20) { + return dZ(e20, function(t10) { + return rZ(e20.state, t10, !XX(e20)); + }); + } }, { key: "Alt-ArrowRight", mac: "Ctrl-ArrowRight", run: function(e20) { + return GX(e20, function(t10) { + return rZ(e20.state, t10, XX(e20)); + }); + }, shift: function(e20) { + return dZ(e20, function(t10) { + return rZ(e20.state, t10, XX(e20)); + }); + } }, { key: "Alt-ArrowUp", run: function(e20) { + return NZ(e20.state, e20.dispatch, false); + } }, { key: "Shift-Alt-ArrowUp", run: function(e20) { + return IZ(e20.state, e20.dispatch, false); + } }, { key: "Alt-ArrowDown", run: function(e20) { + return NZ(e20.state, e20.dispatch, true); + } }, { key: "Shift-Alt-ArrowDown", run: function(e20) { + return IZ(e20.state, e20.dispatch, true); + } }, { key: "Escape", run: function(e20) { + var t10 = e20.state, n10 = e20.dispatch, r10 = t10.selection, o10 = null; + return r10.ranges.length > 1 ? o10 = $F.create([r10.main]) : r10.main.empty || (o10 = $F.create([$F.cursor(r10.main.head)])), !!o10 && (n10(KX(t10, o10)), true); + } }, { key: "Mod-Enter", run: qZ }, { key: "Alt-l", mac: "Ctrl-l", run: function(e20) { + var t10 = e20.state, n10 = e20.dispatch, r10 = RZ(t10).map(function(e21) { + var n11 = e21.from, r11 = e21.to; + return $F.range(n11, Math.min(r11 + 1, t10.doc.length)); + }); + return n10(t10.update({ selection: $F.create(r10), userEvent: "select" })), true; + } }, { key: "Mod-i", run: function(e20) { + var t10 = e20.state, n10 = e20.dispatch, r10 = JX(t10.selection, function(e21) { + for (var n11, r11 = zQ(t10).resolveStack(e21.from, 1); r11; r11 = r11.next) { + var o10 = r11.node; + if ((o10.from < e21.from && o10.to >= e21.to || o10.to > e21.to && o10.from <= e21.from) && (null === (n11 = o10.parent) || void 0 === n11 ? void 0 : n11.parent)) + return $F.range(o10.to, o10.from); + } + return e21; + }); + return n10(KX(t10, r10)), true; + }, preventDefault: true }, { key: "Mod-[", run: FZ }, { key: "Mod-]", run: LZ }, { key: "Mod-Alt-\\", run: function(e20) { + var t10 = e20.state, n10 = e20.dispatch; + if (t10.readOnly) + return false; + var r10 = /* @__PURE__ */ Object.create(null), o10 = new tY(t10, { overrideIndentation: function(e21) { + var t11 = r10[e21]; + return null == t11 ? -1 : t11; + } }), i10 = BZ(t10, function(e21, n11, i11) { + var a10 = eY(o10, e21.from); + if (null != a10) { + /\S/.test(e21.text) || (a10 = 0); + var s10 = /^\s*/.exec(e21.text)[0], c10 = ZQ(t10, a10); + (s10 != c10 || i11.from < e21.from + s10.length) && (r10[e21.from] = a10, n11.push({ from: e21.from, to: e21.from + s10.length, insert: c10 })); + } + }); + return i10.changes.empty || n10(t10.update(i10, { userEvent: "indent" })), true; + } }, { key: "Shift-Mod-k", run: function(e20) { + if (e20.state.readOnly) + return false; + var t10 = e20.state, n10 = t10.changes(RZ(t10).map(function(e21) { + var n11 = e21.from, r11 = e21.to; + return n11 > 0 ? n11-- : r11 < t10.doc.length && r11++, { from: n11, to: r11 }; + })), r10 = JX(t10.selection, function(t11) { + return e20.moveVertically(t11, true); + }).map(n10); + return e20.dispatch({ changes: n10, selection: r10, scrollIntoView: true, userEvent: "delete.line" }), true; + } }, { key: "Shift-Mod-\\", run: function(e20) { + return function(e21, t10, n10) { + var r10 = false, o10 = JX(e21.selection, function(t11) { + var o11 = ZY(e21, t11.head, -1) || ZY(e21, t11.head, 1) || t11.head > 0 && ZY(e21, t11.head - 1, 1) || t11.head < e21.doc.length && ZY(e21, t11.head + 1, -1); + if (!o11 || !o11.end) + return t11; + r10 = true; + var i10 = o11.start.from == t11.head ? o11.end.to : o11.end.from; + return n10 ? $F.range(t11.anchor, i10) : $F.cursor(i10); + }); + return !!r10 && (t10(KX(e21, o10)), true); + }(e20.state, e20.dispatch, false); + } }, { key: "Mod-/", run: function(e20) { + var t10 = e20.state, n10 = t10.doc.lineAt(t10.selection.main.from), r10 = gX(e20.state, n10.from); + return r10.line ? vX(e20) : !!r10.block && mX(e20); + } }, { key: "Alt-A", run: pX }].concat(HZ); + var UZ = { key: "Tab", run: LZ, shift: FZ }; + function JZ() { + var e20 = arguments[0]; + "string" == typeof e20 && (e20 = document.createElement(e20)); + var t10 = 1, n10 = arguments[1]; + if (n10 && "object" == Ho(n10) && null == n10.nodeType && !Array.isArray(n10)) { + for (var r10 in n10) + if (Object.prototype.hasOwnProperty.call(n10, r10)) { + var o10 = n10[r10]; + "string" == typeof o10 ? e20.setAttribute(r10, o10) : null != o10 && (e20[r10] = o10); + } + t10++; + } + for (; t10 < arguments.length; t10++) + KZ(e20, arguments[t10]); + return e20; + } + function KZ(e20, t10) { + if ("string" == typeof t10) + e20.appendChild(document.createTextNode(t10)); + else if (null == t10) + ; + else if (null != t10.nodeType) + e20.appendChild(t10); + else { + if (!Array.isArray(t10)) + throw new RangeError("Unsupported child node: " + t10); + for (var n10 = 0; n10 < t10.length; n10++) + KZ(e20, t10[n10]); + } + } + var GZ = Do(function e10(t10, n10, r10) { + No(this, e10), this.from = t10, this.to = n10, this.diagnostic = r10; + }); + var QZ = function() { + function e20(t10, n10, r10) { + No(this, e20), this.diagnostics = t10, this.panel = n10, this.selected = r10; + } + return Do(e20, null, [{ key: "init", value: function(t10, n10, r10) { + var o10 = t10, i10 = r10.facet(u0).markerFilter; + i10 && (o10 = i10(o10)); + var a10 = KH.set(o10.map(function(e21) { + return e21.from == e21.to || e21.from == e21.to - 1 && r10.doc.lineAt(e21.from).to == e21.from ? KH.widget({ widget: new h0(e21), diagnostic: e21 }).range(e21.from) : KH.mark({ attributes: { class: "cm-lintRange cm-lintRange-" + e21.severity + (e21.markClass ? " " + e21.markClass : "") }, diagnostic: e21 }).range(e21.from, e21.to); + }), true); + return new e20(a10, n10, YZ(a10)); + } }]), e20; + }(); + function YZ(e20) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null, n10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, r10 = null; + return e20.between(n10, 1e9, function(e21, n11, o10) { + var i10 = o10.spec; + if (!t10 || i10.diagnostic == t10) + return r10 = new GZ(e21, n11, i10.diagnostic), false; + }), r10; + } + function XZ(e20, t10) { + var n10 = e20.startState.doc.lineAt(t10.pos); + return !(!e20.effects.some(function(e21) { + return e21.is(e0); + }) && !e20.changes.touchesRange(n10.from, n10.to)); + } + function ZZ(e20, t10) { + return e20.field(r0, false) ? t10 : t10.concat(oV.appendConfig.of(_0)); + } + var e0 = oV.define(); + var t0 = oV.define(); + var n0 = oV.define(); + var r0 = NF.define({ create: function() { + return new QZ(KH.none, null, null); + }, update: function(e20, t10) { + if (t10.docChanged) { + var n10 = e20.diagnostics.map(t10.changes), r10 = null; + if (e20.selected) { + var o10 = t10.changes.mapPos(e20.selected.from, 1); + r10 = YZ(n10, e20.selected.diagnostic, o10) || YZ(n10, null, o10); + } + e20 = new QZ(n10, e20.panel, r10); + } + var i10, a10 = bo(t10.effects); + try { + for (a10.s(); !(i10 = a10.n()).done; ) { + var s10 = i10.value; + s10.is(e0) ? e20 = QZ.init(s10.value, e20.panel, t10.state) : s10.is(t0) ? e20 = new QZ(e20.diagnostics, s10.value ? p0.open : null, e20.selected) : s10.is(n0) && (e20 = new QZ(e20.diagnostics, e20.panel, s10.value)); + } + } catch (e21) { + a10.e(e21); + } finally { + a10.f(); + } + return e20; + }, provide: function(e20) { + return [aG.from(e20, function(e21) { + return e21.panel; + }), zJ.decorations.from(e20, function(e21) { + return e21.diagnostics; + })]; + } }); + var o0 = KH.mark({ class: "cm-lintRange cm-lintRange-active" }); + function i0(e20, t10, n10) { + var r10 = e20.state.field(r0).diagnostics, o10 = [], i10 = 2e8, a10 = 0; + r10.between(t10 - (n10 < 0 ? 1 : 0), t10 + (n10 > 0 ? 1 : 0), function(e21, r11, s11) { + var c10 = s11.spec; + t10 >= e21 && t10 <= r11 && (e21 == r11 || (t10 > e21 || n10 > 0) && (t10 < r11 || n10 < 0)) && (o10.push(c10.diagnostic), i10 = Math.min(e21, i10), a10 = Math.max(r11, a10)); + }); + var s10 = e20.state.facet(u0).tooltipFilter; + return s10 && (o10 = s10(o10)), o10.length ? { pos: i10, end: a10, above: e20.state.doc.lineAt(i10).to < a10, create: function() { + return { dom: a0(e20, o10) }; + } } : null; + } + function a0(e20, t10) { + return JZ("ul", { class: "cm-tooltip-lint" }, t10.map(function(t11) { + return d0(e20, t11, false); + })); + } + var s0 = function(e20) { + var t10 = e20.state.field(r0, false); + return !(!t10 || !t10.panel) && (e20.dispatch({ effects: t0.of(false) }), true); + }; + var c0 = [{ key: "Mod-Shift-m", run: function(e20) { + var t10 = e20.state.field(r0, false); + t10 && t10.panel || e20.dispatch({ effects: ZZ(e20.state, [t0.of(true)]) }); + var n10 = nG(e20, p0.open); + return n10 && n10.dom.querySelector(".cm-panel-lint ul").focus(), true; + }, preventDefault: true }, { key: "F8", run: function(e20) { + var t10 = e20.state.field(r0, false); + if (!t10) + return false; + var n10 = e20.state.selection.main, r10 = t10.diagnostics.iter(n10.to + 1); + return !(!r10.value && (!(r10 = t10.diagnostics.iter(0)).value || r10.from == n10.from && r10.to == n10.to)) && (e20.dispatch({ selection: { anchor: r10.from, head: r10.to }, scrollIntoView: true }), true); + } }]; + var l0 = FW.fromClass(function() { + function e20(t10) { + No(this, e20), this.view = t10, this.timeout = -1, this.set = true; + var n10 = t10.state.facet(u0).delay; + this.lintTime = Date.now() + n10, this.run = this.run.bind(this), this.timeout = setTimeout(this.run, n10); + } + return Do(e20, [{ key: "run", value: function() { + var e21 = this, t10 = Date.now(); + if (t10 < this.lintTime - 10) + this.timeout = setTimeout(this.run, this.lintTime - t10); + else { + this.set = false; + var n10 = this.view.state, r10 = n10.facet(u0).sources; + Promise.all(r10.map(function(t11) { + return Promise.resolve(t11(e21.view)); + })).then(function(t11) { + var r11 = t11.reduce(function(e23, t12) { + return e23.concat(t12); + }); + e21.view.state.doc == n10.doc && e21.view.dispatch(function(e23, t12) { + return { effects: ZZ(e23, [e0.of(t12)]) }; + }(e21.view.state, r11)); + }, function(t11) { + qW(e21.view.state, t11); + }); + } + } }, { key: "update", value: function(e21) { + var t10 = e21.state.facet(u0); + (e21.docChanged || t10 != e21.startState.facet(u0) || t10.needsRefresh && t10.needsRefresh(e21)) && (this.lintTime = Date.now() + t10.delay, this.set || (this.set = true, this.timeout = setTimeout(this.run, t10.delay))); + } }, { key: "force", value: function() { + this.set && (this.lintTime = Date.now(), this.run()); + } }, { key: "destroy", value: function() { + clearTimeout(this.timeout); + } }]), e20; + }()); + var u0 = MF.define({ combine: function(e20) { + return Object.assign({ sources: e20.map(function(e21) { + return e21.source; + }) }, gV(e20.map(function(e21) { + return e21.config; + }), { delay: 750, markerFilter: null, tooltipFilter: null, needsRefresh: null }, { needsRefresh: function(e21, t10) { + return e21 ? t10 ? function(n10) { + return e21(n10) || t10(n10); + } : e21 : t10; + } })); + } }); + function f0(e20) { + var t10 = []; + if (e20) { + var n10, r10 = bo(e20); + try { + e: + for (r10.s(); !(n10 = r10.n()).done; ) { + for (var o10 = n10.value.name, i10 = function() { + var e21 = o10[a10]; + if (/[a-zA-Z]/.test(e21) && !t10.some(function(t11) { + return t11.toLowerCase() == e21.toLowerCase(); + })) + return t10.push(e21), 1; + }, a10 = 0; a10 < o10.length; a10++) + if (i10()) + continue e; + t10.push(""); + } + } catch (e21) { + r10.e(e21); + } finally { + r10.f(); + } + } + return t10; + } + function d0(e20, t10, n10) { + var r10, o10 = n10 ? f0(t10.actions) : []; + return JZ("li", { class: "cm-diagnostic cm-diagnostic-" + t10.severity }, JZ("span", { class: "cm-diagnosticText" }, t10.renderMessage ? t10.renderMessage() : t10.message), null === (r10 = t10.actions) || void 0 === r10 ? void 0 : r10.map(function(n11, r11) { + var i10 = false, a10 = function(r12) { + if (r12.preventDefault(), !i10) { + i10 = true; + var o11 = YZ(e20.state.field(r0).diagnostics, t10); + o11 && n11.apply(e20, o11.from, o11.to); + } + }, s10 = n11.name, c10 = o10[r11] ? s10.indexOf(o10[r11]) : -1, l10 = c10 < 0 ? s10 : [s10.slice(0, c10), JZ("u", s10.slice(c10, c10 + 1)), s10.slice(c10 + 1)]; + return JZ("button", { type: "button", class: "cm-diagnosticAction", onclick: a10, onmousedown: a10, "aria-label": " Action: ".concat(s10).concat(c10 < 0 ? "" : ' (access key "'.concat(o10[r11], ')"'), ".") }, l10); + }), t10.source && JZ("div", { class: "cm-diagnosticSource" }, t10.source)); + } + var h0 = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), (n10 = _o(this, t10)).diagnostic = e21, n10; + } + return Ao(t10, UH), Do(t10, [{ key: "eq", value: function(e21) { + return e21.diagnostic == this.diagnostic; + } }, { key: "toDOM", value: function() { + return JZ("span", { class: "cm-lintPoint cm-lintPoint-" + this.diagnostic.severity }); + } }]), t10; + }(); + var v0 = Do(function e11(t10, n10) { + No(this, e11), this.diagnostic = n10, this.id = "item_" + Math.floor(4294967295 * Math.random()).toString(16), this.dom = d0(t10, n10, true), this.dom.id = this.id, this.dom.setAttribute("role", "option"); + }); + var p0 = function() { + function e20(t10) { + var n10 = this; + No(this, e20), this.view = t10, this.items = []; + this.list = JZ("ul", { tabIndex: 0, role: "listbox", "aria-label": this.view.state.phrase("Diagnostics"), onkeydown: function(e21) { + if (27 == e21.keyCode) + s0(n10.view), n10.view.focus(); + else if (38 == e21.keyCode || 33 == e21.keyCode) + n10.moveSelection((n10.selectedIndex - 1 + n10.items.length) % n10.items.length); + else if (40 == e21.keyCode || 34 == e21.keyCode) + n10.moveSelection((n10.selectedIndex + 1) % n10.items.length); + else if (36 == e21.keyCode) + n10.moveSelection(0); + else if (35 == e21.keyCode) + n10.moveSelection(n10.items.length - 1); + else if (13 == e21.keyCode) + n10.view.focus(); + else { + if (!(e21.keyCode >= 65 && e21.keyCode <= 90 && n10.selectedIndex >= 0)) + return; + for (var r10 = n10.items[n10.selectedIndex].diagnostic, o10 = f0(r10.actions), i10 = 0; i10 < o10.length; i10++) + if (o10[i10].toUpperCase().charCodeAt(0) == e21.keyCode) { + var a10 = YZ(n10.view.state.field(r0).diagnostics, r10); + a10 && r10.actions[i10].apply(t10, a10.from, a10.to); + } + } + e21.preventDefault(); + }, onclick: function(e21) { + for (var t11 = 0; t11 < n10.items.length; t11++) + n10.items[t11].dom.contains(e21.target) && n10.moveSelection(t11); + } }), this.dom = JZ("div", { class: "cm-panel-lint" }, this.list, JZ("button", { type: "button", name: "close", "aria-label": this.view.state.phrase("close"), onclick: function() { + return s0(n10.view); + } }, "\xD7")), this.update(); + } + return Do(e20, [{ key: "selectedIndex", get: function() { + var e21 = this.view.state.field(r0).selected; + if (!e21) + return -1; + for (var t10 = 0; t10 < this.items.length; t10++) + if (this.items[t10].diagnostic == e21.diagnostic) + return t10; + return -1; + } }, { key: "update", value: function() { + var e21 = this, t10 = this.view.state.field(r0), n10 = t10.diagnostics, r10 = t10.selected, o10 = 0, i10 = false, a10 = null; + for (n10.between(0, this.view.state.doc.length, function(t11, n11, s10) { + for (var c10, l10 = s10.spec, u10 = -1, f10 = o10; f10 < e21.items.length; f10++) + if (e21.items[f10].diagnostic == l10.diagnostic) { + u10 = f10; + break; + } + u10 < 0 ? (c10 = new v0(e21.view, l10.diagnostic), e21.items.splice(o10, 0, c10), i10 = true) : (c10 = e21.items[u10], u10 > o10 && (e21.items.splice(o10, u10 - o10), i10 = true)), r10 && c10.diagnostic == r10.diagnostic ? c10.dom.hasAttribute("aria-selected") || (c10.dom.setAttribute("aria-selected", "true"), a10 = c10) : c10.dom.hasAttribute("aria-selected") && c10.dom.removeAttribute("aria-selected"), o10++; + }); o10 < this.items.length && !(1 == this.items.length && this.items[0].diagnostic.from < 0); ) + i10 = true, this.items.pop(); + 0 == this.items.length && (this.items.push(new v0(this.view, { from: -1, to: -1, severity: "info", message: this.view.state.phrase("No diagnostics") })), i10 = true), a10 ? (this.list.setAttribute("aria-activedescendant", a10.id), this.view.requestMeasure({ key: this, read: function() { + return { sel: a10.dom.getBoundingClientRect(), panel: e21.list.getBoundingClientRect() }; + }, write: function(t11) { + var n11 = t11.sel, r11 = t11.panel, o11 = r11.height / e21.list.offsetHeight; + n11.top < r11.top ? e21.list.scrollTop -= (r11.top - n11.top) / o11 : n11.bottom > r11.bottom && (e21.list.scrollTop += (n11.bottom - r11.bottom) / o11); + } })) : this.selectedIndex < 0 && this.list.removeAttribute("aria-activedescendant"), i10 && this.sync(); + } }, { key: "sync", value: function() { + var e21 = this.list.firstChild; + function t10() { + var t11 = e21; + e21 = t11.nextSibling, t11.remove(); + } + var n10, r10 = bo(this.items); + try { + for (r10.s(); !(n10 = r10.n()).done; ) { + var o10 = n10.value; + if (o10.dom.parentNode == this.list) { + for (; e21 != o10.dom; ) + t10(); + e21 = o10.dom.nextSibling; + } else + this.list.insertBefore(o10.dom, e21); + } + } catch (e23) { + r10.e(e23); + } finally { + r10.f(); + } + for (; e21; ) + t10(); + } }, { key: "moveSelection", value: function(e21) { + if (!(this.selectedIndex < 0)) { + var t10 = YZ(this.view.state.field(r0).diagnostics, this.items[e21].diagnostic); + t10 && this.view.dispatch({ selection: { anchor: t10.from, head: t10.to }, scrollIntoView: true, effects: n0.of(t10) }); + } + } }], [{ key: "open", value: function(t10) { + return new e20(t10); + } }]), e20; + }(); + function m0(e20) { + return `url('data:image/svg+xml, 1 && void 0 !== arguments[1] ? arguments[1] : 'viewBox="0 0 40 40"', ">").concat(encodeURIComponent(e20), "')"); + } + function g0(e20) { + return m0(''), 'width="6" height="3"'); + } + var y0 = zJ.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: 0.7 }, ".cm-lintRange": { backgroundPosition: "left bottom", backgroundRepeat: "repeat-x", paddingBottom: "0.7px" }, ".cm-lintRange-error": { backgroundImage: g0("#d11") }, ".cm-lintRange-warning": { backgroundImage: g0("orange") }, ".cm-lintRange-info": { backgroundImage: g0("#999") }, ".cm-lintRange-hint": { backgroundImage: g0("#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 } } }); + function b0(e20) { + return "error" == e20 ? 4 : "warning" == e20 ? 3 : "info" == e20 ? 2 : 1; + } + var k0 = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), (n10 = _o(this, t10)).diagnostics = e21, n10.severity = e21.reduce(function(e23, t11) { + return b0(e23) < b0(t11.severity) ? t11.severity : e23; + }, "hint"), n10; + } + return Ao(t10, sG), Do(t10, [{ key: "toDOM", value: function(e21) { + var t11 = document.createElement("div"); + t11.className = "cm-lint-marker cm-lint-marker-" + this.severity; + var n10 = this.diagnostics, r10 = e21.state.facet(O0).tooltipFilter; + return r10 && (n10 = r10(n10)), n10.length && (t11.onmouseover = function() { + return function(e23, t12, n11) { + function r11() { + var r12 = e23.elementAtHeight(t12.getBoundingClientRect().top + 5 - e23.documentTop); + e23.coordsAtPos(r12.from) && e23.dispatch({ effects: S0.of({ pos: r12.from, above: false, create: function() { + return { dom: a0(e23, n11), getCoords: function() { + return t12.getBoundingClientRect(); + } }; + } }) }), t12.onmouseout = t12.onmousemove = null, function(e24, t13) { + var n12 = function n13(r13) { + var o11 = t13.getBoundingClientRect(); + if (!(r13.clientX > o11.left - 10 && r13.clientX < o11.right + 10 && r13.clientY > o11.top - 10 && r13.clientY < o11.bottom + 10)) { + for (var i11 = r13.target; i11; i11 = i11.parentNode) + if (1 == i11.nodeType && i11.classList.contains("cm-tooltip-lint")) + return; + window.removeEventListener("mousemove", n13), e24.state.field(C0) && e24.dispatch({ effects: S0.of(null) }); + } + }; + window.addEventListener("mousemove", n12); + }(e23, t12); + } + var o10 = e23.state.facet(O0), i10 = o10.hoverTime, a10 = setTimeout(r11, i10); + t12.onmouseout = function() { + clearTimeout(a10), t12.onmouseout = t12.onmousemove = null; + }, t12.onmousemove = function() { + clearTimeout(a10), a10 = setTimeout(r11, i10); + }; + }(e21, t11, n10); + }), t11; + } }]), t10; + }(); + function w0(e20, t10) { + var n10, r10 = /* @__PURE__ */ Object.create(null), o10 = bo(t10); + try { + for (o10.s(); !(n10 = o10.n()).done; ) { + var i10 = n10.value, a10 = e20.lineAt(i10.from); + (r10[a10.from] || (r10[a10.from] = [])).push(i10); + } + } catch (e21) { + o10.e(e21); + } finally { + o10.f(); + } + var s10 = []; + for (var c10 in r10) + s10.push(new k0(r10[c10]).range(+c10)); + return xV.of(s10, true); + } + var x0 = fG({ class: "cm-gutter-lint", markers: function(e20) { + return e20.state.field(j0); + } }); + var j0 = NF.define({ create: function() { + return xV.empty; + }, update: function(e20, t10) { + e20 = e20.map(t10.changes); + var n10, r10 = t10.state.facet(O0).markerFilter, o10 = bo(t10.effects); + try { + for (o10.s(); !(n10 = o10.n()).done; ) { + var i10 = n10.value; + if (i10.is(e0)) { + var a10 = i10.value; + r10 && (a10 = r10(a10 || [])), e20 = w0(t10.state.doc, a10.slice(0)); + } + } + } catch (e21) { + o10.e(e21); + } finally { + o10.f(); + } + return e20; + } }); + var S0 = oV.define(); + var C0 = NF.define({ create: function() { + return null; + }, update: function(e20, t10) { + return e20 && t10.docChanged && (e20 = XZ(t10, e20) ? null : Object.assign(Object.assign({}, e20), { pos: t10.changes.mapPos(e20.pos) })), t10.effects.reduce(function(e21, t11) { + return t11.is(S0) ? t11.value : e21; + }, e20); + }, provide: function(e20) { + return UK.from(e20); + } }); + var $0 = zJ.baseTheme({ ".cm-gutter-lint": { width: "1.4em", "& .cm-gutterElement": { padding: ".2em" } }, ".cm-lint-marker": { width: "1em", height: "1em" }, ".cm-lint-marker-info": { content: m0('') }, ".cm-lint-marker-warning": { content: m0('') }, ".cm-lint-marker-error": { content: m0('') } }); + var _0 = [r0, zJ.decorations.compute([r0], function(e20) { + var t10 = e20.field(r0), n10 = t10.selected, r10 = t10.panel; + return n10 && r10 && n10.from != n10.to ? KH.set([o0.range(n10.from, n10.to)]) : KH.none; + }), XK(i0, { hideOn: XZ }), y0]; + var O0 = MF.define({ combine: function(e20) { + return gV(e20, { hoverTime: 300, markerFilter: null, tooltipFilter: null }); + } }); + function M0() { + var e20 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + return [O0.of(e20), j0, x0, $0, C0]; + } + var E0 = function() { + function e20(t10, n10, r10, o10, i10, a10, s10, c10, l10) { + var u10 = arguments.length > 9 && void 0 !== arguments[9] ? arguments[9] : 0, f10 = arguments.length > 10 ? arguments[10] : void 0; + No(this, e20), this.p = t10, this.stack = n10, this.state = r10, this.reducePos = o10, this.pos = i10, this.score = a10, this.buffer = s10, this.bufferBase = c10, this.curContext = l10, this.lookAhead = u10, this.parent = f10; + } + return Do(e20, [{ key: "toString", value: function() { + return "[".concat(this.stack.filter(function(e21, t10) { + return t10 % 3 == 0; + }).concat(this.state), "]@").concat(this.pos).concat(this.score ? "!" + this.score : ""); + } }, { key: "context", get: function() { + return this.curContext ? this.curContext.context : null; + } }, { key: "pushState", value: function(e21, t10) { + this.stack.push(this.state, t10, this.bufferBase + this.buffer.length), this.state = e21; + } }, { key: "reduce", value: function(e21) { + var t10, n10 = e21 >> 19, r10 = 65535 & e21, o10 = this.p.parser, i10 = o10.dynamicPrecedence(r10); + if (i10 && (this.score += i10), 0 == n10) + return this.pushState(o10.getGoto(this.state, r10, true), this.reducePos), r10 < o10.minRepeatTerm && this.storeNode(r10, this.reducePos, this.reducePos, 4, true), void this.reduceContext(r10, this.reducePos); + var a10 = this.stack.length - 3 * (n10 - 1) - (262144 & e21 ? 6 : 0), s10 = a10 ? this.stack[a10 - 2] : this.p.ranges[0].from, c10 = this.reducePos - s10; + c10 >= 2e3 && !(null === (t10 = this.p.parser.nodeSet.types[r10]) || void 0 === t10 ? void 0 : t10.isAnonymous) && (s10 == this.p.lastBigReductionStart ? (this.p.bigReductionCount++, this.p.lastBigReductionSize = c10) : this.p.lastBigReductionSize < c10 && (this.p.bigReductionCount = 1, this.p.lastBigReductionStart = s10, this.p.lastBigReductionSize = c10)); + var l10 = a10 ? this.stack[a10 - 1] : 0, u10 = this.bufferBase + this.buffer.length - l10; + if (r10 < o10.minRepeatTerm || 131072 & e21) { + var f10 = o10.stateFlag(this.state, 1) ? this.pos : this.reducePos; + this.storeNode(r10, s10, f10, u10 + 4, true); + } + if (262144 & e21) + this.state = this.stack[a10]; + else { + var d10 = this.stack[a10 - 3]; + this.state = o10.getGoto(d10, r10, true); + } + for (; this.stack.length > a10; ) + this.stack.pop(); + this.reduceContext(r10, s10); + } }, { key: "storeNode", value: function(e21, t10, n10) { + var r10 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 4, o10 = arguments.length > 4 && void 0 !== arguments[4] && arguments[4]; + if (0 == e21 && (!this.stack.length || this.stack[this.stack.length - 1] < this.buffer.length + this.bufferBase)) { + var i10 = this, a10 = this.buffer.length; + if (0 == a10 && i10.parent && (a10 = i10.bufferBase - i10.parent.bufferBase, i10 = i10.parent), a10 > 0 && 0 == i10.buffer[a10 - 4] && i10.buffer[a10 - 1] > -1) { + if (t10 == n10) + return; + if (i10.buffer[a10 - 2] >= t10) + return void (i10.buffer[a10 - 2] = n10); + } + } + if (o10 && this.pos != n10) { + var s10 = this.buffer.length; + if (s10 > 0 && 0 != this.buffer[s10 - 4]) + for (; s10 > 0 && this.buffer[s10 - 2] > n10; ) + this.buffer[s10] = this.buffer[s10 - 4], this.buffer[s10 + 1] = this.buffer[s10 - 3], this.buffer[s10 + 2] = this.buffer[s10 - 2], this.buffer[s10 + 3] = this.buffer[s10 - 1], s10 -= 4, r10 > 4 && (r10 -= 4); + this.buffer[s10] = e21, this.buffer[s10 + 1] = t10, this.buffer[s10 + 2] = n10, this.buffer[s10 + 3] = r10; + } else + this.buffer.push(e21, t10, n10, r10); + } }, { key: "shift", value: function(e21, t10, n10, r10) { + if (131072 & e21) + this.pushState(65535 & e21, this.pos); + else if (0 == (262144 & e21)) { + var o10 = e21, i10 = this.p.parser; + (r10 > this.pos || t10 <= i10.maxNode) && (this.pos = r10, i10.stateFlag(o10, 1) || (this.reducePos = r10)), this.pushState(o10, n10), this.shiftContext(t10, n10), t10 <= i10.maxNode && this.buffer.push(t10, n10, r10, 4); + } else + this.pos = r10, this.shiftContext(t10, n10), t10 <= this.p.parser.maxNode && this.buffer.push(t10, n10, r10, 4); + } }, { key: "apply", value: function(e21, t10, n10, r10) { + 65536 & e21 ? this.reduce(e21) : this.shift(e21, t10, n10, r10); + } }, { key: "useNode", value: function(e21, t10) { + var n10 = this.p.reused.length - 1; + (n10 < 0 || this.p.reused[n10] != e21) && (this.p.reused.push(e21), n10++); + var r10 = this.pos; + this.reducePos = this.pos = r10 + e21.length, this.pushState(t10, r10), this.buffer.push(n10, r10, this.reducePos, -1), this.curContext && this.updateContext(this.curContext.tracker.reuse(this.curContext.context, e21, this, this.p.stream.reset(this.pos - e21.length))); + } }, { key: "split", value: function() { + for (var t10 = this, n10 = t10.buffer.length; n10 > 0 && t10.buffer[n10 - 2] > t10.reducePos; ) + n10 -= 4; + for (var r10 = t10.buffer.slice(n10), o10 = t10.bufferBase + n10; t10 && o10 == t10.bufferBase; ) + t10 = t10.parent; + return new e20(this.p, this.stack.slice(), this.state, this.reducePos, this.pos, this.score, r10, o10, this.curContext, this.lookAhead, t10); + } }, { key: "recoverByDelete", value: function(e21, t10) { + var n10 = e21 <= this.p.parser.maxNode; + n10 && this.storeNode(e21, this.pos, t10, 4), this.storeNode(0, this.pos, t10, n10 ? 8 : 4), this.pos = this.reducePos = t10, this.score -= 190; + } }, { key: "canShift", value: function(e21) { + for (var t10 = new P0(this); ; ) { + var n10 = this.p.parser.stateSlot(t10.state, 4) || this.p.parser.hasAction(t10.state, e21); + if (0 == n10) + return false; + if (0 == (65536 & n10)) + return true; + t10.reduce(n10); + } + } }, { key: "recoverByInsert", value: function(e21) { + if (this.stack.length >= 300) + return []; + var t10 = this.p.parser.nextStates(this.state); + if (t10.length > 8 || this.stack.length >= 120) { + for (var n10, r10 = [], o10 = 0; o10 < t10.length; o10 += 2) + (n10 = t10[o10 + 1]) != this.state && this.p.parser.hasAction(n10, e21) && r10.push(t10[o10], n10); + if (this.stack.length < 120) + for (var i10 = function() { + var e23 = t10[a10 + 1]; + r10.some(function(t11, n11) { + return 1 & n11 && t11 == e23; + }) || r10.push(t10[a10], e23); + }, a10 = 0; r10.length < 8 && a10 < t10.length; a10 += 2) + i10(); + t10 = r10; + } + for (var s10 = [], c10 = 0; c10 < t10.length && s10.length < 4; c10 += 2) { + var l10 = t10[c10 + 1]; + if (l10 != this.state) { + var u10 = this.split(); + u10.pushState(l10, this.pos), u10.storeNode(0, u10.pos, u10.pos, 4, true), u10.shiftContext(t10[c10], this.pos), u10.reducePos = this.pos, u10.score -= 200, s10.push(u10); + } + } + return s10; + } }, { key: "forceReduce", value: function() { + var e21 = this.p.parser, t10 = e21.stateSlot(this.state, 5); + if (0 == (65536 & t10)) + return false; + if (!e21.validAction(this.state, t10)) { + var n10 = t10 >> 19, r10 = 65535 & t10, o10 = this.stack.length - 3 * n10; + if (o10 < 0 || e21.getGoto(this.stack[o10], r10, false) < 0) { + var i10 = this.findForcedReduction(); + if (null == i10) + return false; + t10 = i10; + } + this.storeNode(0, this.pos, this.pos, 4, true), this.score -= 100; + } + return this.reducePos = this.pos, this.reduce(t10), true; + } }, { key: "findForcedReduction", value: function() { + var e21 = this, t10 = this.p.parser, n10 = []; + return function r10(o10, i10) { + if (!n10.includes(o10)) + return n10.push(o10), t10.allActions(o10, function(n11) { + if (393216 & n11) + ; + else if (65536 & n11) { + var o11 = (n11 >> 19) - i10; + if (o11 > 1) { + var a10 = 65535 & n11, s10 = e21.stack.length - 3 * o11; + if (s10 >= 0 && t10.getGoto(e21.stack[s10], a10, false) >= 0) + return o11 << 19 | 65536 | a10; + } + } else { + var c10 = r10(n11, i10 + 1); + if (null != c10) + return c10; + } + }); + }(this.state, 0); + } }, { key: "forceAll", value: function() { + for (; !this.p.parser.stateFlag(this.state, 2); ) + if (!this.forceReduce()) { + this.storeNode(0, this.pos, this.pos, 4, true); + break; + } + return this; + } }, { key: "deadEnd", get: function() { + if (3 != this.stack.length) + return false; + var e21 = this.p.parser; + return 65535 == e21.data[e21.stateSlot(this.state, 1)] && !e21.stateSlot(this.state, 4); + } }, { key: "restart", value: function() { + this.storeNode(0, this.pos, this.pos, 4, true), this.state = this.stack[0], this.stack.length = 0; + } }, { key: "sameState", value: function(e21) { + if (this.state != e21.state || this.stack.length != e21.stack.length) + return false; + for (var t10 = 0; t10 < this.stack.length; t10 += 3) + if (this.stack[t10] != e21.stack[t10]) + return false; + return true; + } }, { key: "parser", get: function() { + return this.p.parser; + } }, { key: "dialectEnabled", value: function(e21) { + return this.p.parser.dialect.flags[e21]; + } }, { key: "shiftContext", value: function(e21, t10) { + this.curContext && this.updateContext(this.curContext.tracker.shift(this.curContext.context, e21, this, this.p.stream.reset(t10))); + } }, { key: "reduceContext", value: function(e21, t10) { + this.curContext && this.updateContext(this.curContext.tracker.reduce(this.curContext.context, e21, this, this.p.stream.reset(t10))); + } }, { key: "emitContext", value: function() { + var e21 = this.buffer.length - 1; + (e21 < 0 || -3 != this.buffer[e21]) && this.buffer.push(this.curContext.hash, this.pos, this.pos, -3); + } }, { key: "emitLookAhead", value: function() { + var e21 = this.buffer.length - 1; + (e21 < 0 || -4 != this.buffer[e21]) && this.buffer.push(this.lookAhead, this.pos, this.pos, -4); + } }, { key: "updateContext", value: function(e21) { + if (e21 != this.curContext.context) { + var t10 = new A0(this.curContext.tracker, e21); + t10.hash != this.curContext.hash && this.emitContext(), this.curContext = t10; + } + } }, { key: "setLookAhead", value: function(e21) { + e21 > this.lookAhead && (this.emitLookAhead(), this.lookAhead = e21); + } }, { key: "close", value: function() { + this.curContext && this.curContext.tracker.strict && this.emitContext(), this.lookAhead > 0 && this.emitLookAhead(); + } }], [{ key: "start", value: function(t10, n10) { + var r10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, o10 = t10.parser.context; + return new e20(t10, [], n10, r10, r10, 0, [], 0, o10 ? new A0(o10, o10.start) : null, 0, null); + } }]), e20; + }(); + var A0 = Do(function e12(t10, n10) { + No(this, e12), this.tracker = t10, this.context = n10, this.hash = t10.strict ? t10.hash(n10) : 0; + }); + var P0 = function() { + function e20(t10) { + No(this, e20), this.start = t10, this.state = t10.state, this.stack = t10.stack, this.base = this.stack.length; + } + return Do(e20, [{ key: "reduce", value: function(e21) { + var t10 = 65535 & e21, n10 = e21 >> 19; + 0 == n10 ? (this.stack == this.start.stack && (this.stack = this.stack.slice()), this.stack.push(this.state, 0, 0), this.base += 3) : this.base -= 3 * (n10 - 1); + var r10 = this.start.p.parser.getGoto(this.stack[this.base - 3], t10, true); + this.state = r10; + } }]), e20; + }(); + var T0 = function() { + function e20(t10, n10, r10) { + No(this, e20), this.stack = t10, this.pos = n10, this.index = r10, this.buffer = t10.buffer, 0 == this.index && this.maybeNext(); + } + return Do(e20, [{ key: "maybeNext", value: function() { + var e21 = this.stack.parent; + null != e21 && (this.index = this.stack.bufferBase - e21.bufferBase, this.stack = e21, this.buffer = e21.buffer); + } }, { key: "id", get: function() { + return this.buffer[this.index - 4]; + } }, { key: "start", get: function() { + return this.buffer[this.index - 3]; + } }, { key: "end", get: function() { + return this.buffer[this.index - 2]; + } }, { key: "size", get: function() { + return this.buffer[this.index - 1]; + } }, { key: "next", value: function() { + this.index -= 4, this.pos -= 4, 0 == this.index && this.maybeNext(); + } }, { key: "fork", value: function() { + return new e20(this.stack, this.pos, this.index); + } }], [{ key: "create", value: function(t10) { + var n10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : t10.bufferBase + t10.buffer.length; + return new e20(t10, n10, n10 - t10.bufferBase); + } }]), e20; + }(); + function R0(e20) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : Uint16Array; + if ("string" != typeof e20) + return e20; + for (var n10 = null, r10 = 0, o10 = 0; r10 < e20.length; ) { + for (var i10 = 0; ; ) { + var a10 = e20.charCodeAt(r10++), s10 = false; + if (126 == a10) { + i10 = 65535; + break; + } + a10 >= 92 && a10--, a10 >= 34 && a10--; + var c10 = a10 - 32; + if (c10 >= 46 && (c10 -= 46, s10 = true), i10 += c10, s10) + break; + i10 *= 46; + } + n10 ? n10[o10++] = i10 : n10 = new t10(i10); + } + return n10; + } + var N0 = Do(function e13() { + No(this, e13), this.start = -1, this.value = -1, this.end = -1, this.extended = -1, this.lookAhead = 0, this.mask = 0, this.context = 0; + }); + var I0 = new N0(); + var D0 = function() { + function e20(t10, n10) { + No(this, e20), this.input = t10, this.ranges = n10, this.chunk = "", this.chunkOff = 0, this.chunk2 = "", this.chunk2Pos = 0, this.next = -1, this.token = I0, this.rangeIndex = 0, this.pos = this.chunkPos = n10[0].from, this.range = n10[0], this.end = n10[n10.length - 1].to, this.readNext(); + } + return Do(e20, [{ key: "resolveOffset", value: function(e21, t10) { + for (var n10 = this.range, r10 = this.rangeIndex, o10 = this.pos + e21; o10 < n10.from; ) { + if (!r10) + return null; + var i10 = this.ranges[--r10]; + o10 -= n10.from - i10.to, n10 = i10; + } + for (; t10 < 0 ? o10 > n10.to : o10 >= n10.to; ) { + if (r10 == this.ranges.length - 1) + return null; + var a10 = this.ranges[++r10]; + o10 += a10.from - n10.to, n10 = a10; + } + return o10; + } }, { key: "clipPos", value: function(e21) { + if (e21 >= this.range.from && e21 < this.range.to) + return e21; + var t10, n10 = bo(this.ranges); + try { + for (n10.s(); !(t10 = n10.n()).done; ) { + var r10 = t10.value; + if (r10.to > e21) + return Math.max(e21, r10.from); + } + } catch (e23) { + n10.e(e23); + } finally { + n10.f(); + } + return this.end; + } }, { key: "peek", value: function(e21) { + var t10, n10, r10 = this.chunkOff + e21; + if (r10 >= 0 && r10 < this.chunk.length) + t10 = this.pos + e21, n10 = this.chunk.charCodeAt(r10); + else { + var o10 = this.resolveOffset(e21, 1); + if (null == o10) + return -1; + if ((t10 = o10) >= this.chunk2Pos && t10 < this.chunk2Pos + this.chunk2.length) + n10 = this.chunk2.charCodeAt(t10 - this.chunk2Pos); + else { + for (var i10 = this.rangeIndex, a10 = this.range; a10.to <= t10; ) + a10 = this.ranges[++i10]; + this.chunk2 = this.input.chunk(this.chunk2Pos = t10), t10 + this.chunk2.length > a10.to && (this.chunk2 = this.chunk2.slice(0, a10.to - t10)), n10 = this.chunk2.charCodeAt(0); + } + } + return t10 >= this.token.lookAhead && (this.token.lookAhead = t10 + 1), n10; + } }, { key: "acceptToken", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n10 = t10 ? this.resolveOffset(t10, -1) : this.pos; + if (null == n10 || n10 < this.token.start) + throw new RangeError("Token end out of bounds"); + this.token.value = e21, this.token.end = n10; + } }, { key: "getChunk", value: function() { + if (this.pos >= this.chunk2Pos && this.pos < this.chunk2Pos + this.chunk2.length) { + var e21 = this.chunk, t10 = this.chunkPos; + this.chunk = this.chunk2, this.chunkPos = this.chunk2Pos, this.chunk2 = e21, this.chunk2Pos = t10, this.chunkOff = this.pos - this.chunkPos; + } else { + this.chunk2 = this.chunk, this.chunk2Pos = this.chunkPos; + var n10 = this.input.chunk(this.pos), r10 = this.pos + n10.length; + this.chunk = r10 > this.range.to ? n10.slice(0, this.range.to - this.pos) : n10, this.chunkPos = this.pos, this.chunkOff = 0; + } + } }, { key: "readNext", value: function() { + return this.chunkOff >= this.chunk.length && (this.getChunk(), this.chunkOff == this.chunk.length) ? this.next = -1 : this.next = this.chunk.charCodeAt(this.chunkOff); + } }, { key: "advance", value: function() { + var e21 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1; + for (this.chunkOff += e21; this.pos + e21 >= this.range.to; ) { + if (this.rangeIndex == this.ranges.length - 1) + return this.setDone(); + e21 -= this.range.to - this.pos, this.range = this.ranges[++this.rangeIndex], this.pos = this.range.from; + } + return this.pos += e21, this.pos >= this.token.lookAhead && (this.token.lookAhead = this.pos + 1), this.readNext(); + } }, { key: "setDone", value: function() { + return this.pos = this.chunkPos = this.end, this.range = this.ranges[this.rangeIndex = this.ranges.length - 1], this.chunk = "", this.next = -1; + } }, { key: "reset", value: function(e21, t10) { + if (t10 ? (this.token = t10, t10.start = e21, t10.lookAhead = e21 + 1, t10.value = t10.extended = -1) : this.token = I0, this.pos != e21) { + if (this.pos = e21, e21 == this.end) + return this.setDone(), this; + for (; e21 < this.range.from; ) + this.range = this.ranges[--this.rangeIndex]; + for (; e21 >= this.range.to; ) + this.range = this.ranges[++this.rangeIndex]; + e21 >= this.chunkPos && e21 < this.chunkPos + this.chunk.length ? this.chunkOff = e21 - this.chunkPos : (this.chunk = "", this.chunkOff = 0), this.readNext(); + } + return this; + } }, { key: "read", value: function(e21, t10) { + if (e21 >= this.chunkPos && t10 <= this.chunkPos + this.chunk.length) + return this.chunk.slice(e21 - this.chunkPos, t10 - this.chunkPos); + if (e21 >= this.chunk2Pos && t10 <= this.chunk2Pos + this.chunk2.length) + return this.chunk2.slice(e21 - this.chunk2Pos, t10 - this.chunk2Pos); + if (e21 >= this.range.from && t10 <= this.range.to) + return this.input.read(e21, t10); + var n10, r10 = "", o10 = bo(this.ranges); + try { + for (o10.s(); !(n10 = o10.n()).done; ) { + var i10 = n10.value; + if (i10.from >= t10) + break; + i10.to > e21 && (r10 += this.input.read(Math.max(i10.from, e21), Math.min(i10.to, t10))); + } + } catch (e23) { + o10.e(e23); + } finally { + o10.f(); + } + return r10; + } }]), e20; + }(); + var q0 = function() { + function e20(t10, n10) { + No(this, e20), this.data = t10, this.id = n10; + } + return Do(e20, [{ key: "token", value: function(e21, t10) { + var n10 = t10.p.parser; + !function(e23, t11, n11, r10, o10, i10) { + var a10 = 0, s10 = 1 << r10, c10 = n11.p.parser.dialect; + e: + for (; 0 != (s10 & e23[a10]); ) { + for (var l10 = e23[a10 + 1], u10 = a10 + 3; u10 < l10; u10 += 2) + if ((e23[u10 + 1] & s10) > 0) { + var f10 = e23[u10]; + if (c10.allows(f10) && (-1 == t11.token.value || t11.token.value == f10 || B0(f10, t11.token.value, o10, i10))) { + t11.acceptToken(f10); + break; + } + } + var d10 = t11.next, h10 = 0, v10 = e23[a10 + 2]; + if (!(t11.next < 0 && v10 > h10 && 65535 == e23[l10 + 3 * v10 - 3])) { + for (; h10 < v10; ) { + var p10 = h10 + v10 >> 1, m10 = l10 + p10 + (p10 << 1), g10 = e23[m10], y10 = e23[m10 + 1] || 65536; + if (d10 < g10) + v10 = p10; + else { + if (!(d10 >= y10)) { + a10 = e23[m10 + 2], t11.advance(); + continue e; + } + h10 = p10 + 1; + } + } + break; + } + a10 = e23[l10 + 3 * v10 - 1]; + } + }(this.data, e21, t10, this.id, n10.data, n10.tokenPrecTable); + } }]), e20; + }(); + function z0(e20, t10, n10) { + for (var r10, o10 = t10; 65535 != (r10 = e20[o10]); o10++) + if (r10 == n10) + return o10 - t10; + return -1; + } + function B0(e20, t10, n10, r10) { + var o10 = z0(n10, r10, t10); + return o10 < 0 || z0(n10, r10, e20) < o10; + } + q0.prototype.contextual = q0.prototype.fallback = q0.prototype.extend = false, q0.prototype.fallback = q0.prototype.extend = false; + var L0 = "undefined" != typeof process && process.env && /\bparse\b/.test(process.env.LOG); + var F0 = null; + function V0(e20, t10, n10) { + var r10 = e20.cursor(NG.IncludeAnonymous); + for (r10.moveTo(t10); ; ) + if (!(n10 < 0 ? r10.childBefore(t10) : r10.childAfter(t10))) + for (; ; ) { + if ((n10 < 0 ? r10.to < t10 : r10.from > t10) && !r10.type.isError) + return n10 < 0 ? Math.max(0, Math.min(r10.to - 1, t10 - 25)) : Math.min(e20.length, Math.max(r10.from + 1, t10 + 25)); + if (n10 < 0 ? r10.prevSibling() : r10.nextSibling()) + break; + if (!r10.parent()) + return n10 < 0 ? 0 : e20.length; + } + } + var H0 = function() { + function e20(t10, n10) { + No(this, e20), this.fragments = t10, this.nodeSet = n10, this.i = 0, this.fragment = null, this.safeFrom = -1, this.safeTo = -1, this.trees = [], this.start = [], this.index = [], this.nextFragment(); + } + return Do(e20, [{ key: "nextFragment", value: function() { + var e21 = this.fragment = this.i == this.fragments.length ? null : this.fragments[this.i++]; + if (e21) { + for (this.safeFrom = e21.openStart ? V0(e21.tree, e21.from + e21.offset, 1) - e21.offset : e21.from, this.safeTo = e21.openEnd ? V0(e21.tree, e21.to + e21.offset, -1) - e21.offset : e21.to; this.trees.length; ) + this.trees.pop(), this.start.pop(), this.index.pop(); + this.trees.push(e21.tree), this.start.push(-e21.offset), this.index.push(0), this.nextStart = this.safeFrom; + } else + this.nextStart = 1e9; + } }, { key: "nodeAt", value: function(e21) { + if (e21 < this.nextStart) + return null; + for (; this.fragment && this.safeTo <= e21; ) + this.nextFragment(); + if (!this.fragment) + return null; + for (; ; ) { + var t10 = this.trees.length - 1; + if (t10 < 0) + return this.nextFragment(), null; + var n10 = this.trees[t10], r10 = this.index[t10]; + if (r10 != n10.children.length) { + var o10 = n10.children[r10], i10 = this.start[t10] + n10.positions[r10]; + if (i10 > e21) + return this.nextStart = i10, null; + if (o10 instanceof zG) { + if (i10 == e21) { + if (i10 < this.safeFrom) + return null; + var a10 = i10 + o10.length; + if (a10 <= this.safeTo) { + var s10 = o10.prop(AG.lookAhead); + if (!s10 || a10 + s10 < this.fragment.to) + return o10; + } + } + this.index[t10]++, i10 + o10.length >= Math.max(this.safeFrom, e21) && (this.trees.push(o10), this.start.push(i10), this.index.push(0)); + } else + this.index[t10]++, this.nextStart = i10 + o10.length; + } else + this.trees.pop(), this.start.pop(), this.index.pop(); + } + } }]), e20; + }(); + var W0 = function() { + function e20(t10, n10) { + No(this, e20), this.stream = n10, this.tokens = [], this.mainToken = null, this.actions = [], this.tokens = t10.tokenizers.map(function(e21) { + return new N0(); + }); + } + return Do(e20, [{ key: "getActions", value: function(e21) { + for (var t10 = 0, n10 = null, r10 = e21.p.parser, o10 = r10.tokenizers, i10 = r10.stateSlot(e21.state, 3), a10 = e21.curContext ? e21.curContext.hash : 0, s10 = 0, c10 = 0; c10 < o10.length; c10++) + if (0 != (1 << c10 & i10)) { + var l10 = o10[c10], u10 = this.tokens[c10]; + if ((!n10 || l10.fallback) && ((l10.contextual || u10.start != e21.pos || u10.mask != i10 || u10.context != a10) && (this.updateCachedToken(u10, l10, e21), u10.mask = i10, u10.context = a10), u10.lookAhead > u10.end + 25 && (s10 = Math.max(u10.lookAhead, s10)), 0 != u10.value)) { + var f10 = t10; + if (u10.extended > -1 && (t10 = this.addActions(e21, u10.extended, u10.end, t10)), t10 = this.addActions(e21, u10.value, u10.end, t10), !l10.extend && (n10 = u10, t10 > f10)) + break; + } + } + for (; this.actions.length > t10; ) + this.actions.pop(); + return s10 && e21.setLookAhead(s10), n10 || e21.pos != this.stream.end || ((n10 = new N0()).value = e21.p.parser.eofTerm, n10.start = n10.end = e21.pos, t10 = this.addActions(e21, n10.value, n10.end, t10)), this.mainToken = n10, this.actions; + } }, { key: "getMainToken", value: function(e21) { + if (this.mainToken) + return this.mainToken; + var t10 = new N0(), n10 = e21.pos, r10 = e21.p; + return t10.start = n10, t10.end = Math.min(n10 + 1, r10.stream.end), t10.value = n10 == r10.stream.end ? r10.parser.eofTerm : 0, t10; + } }, { key: "updateCachedToken", value: function(e21, t10, n10) { + var r10 = this.stream.clipPos(n10.pos); + if (t10.token(this.stream.reset(r10, e21), n10), e21.value > -1) { + for (var o10 = n10.p.parser, i10 = 0; i10 < o10.specialized.length; i10++) + if (o10.specialized[i10] == e21.value) { + var a10 = o10.specializers[i10](this.stream.read(e21.start, e21.end), n10); + if (a10 >= 0 && n10.p.parser.dialect.allows(a10 >> 1)) { + 0 == (1 & a10) ? e21.value = a10 >> 1 : e21.extended = a10 >> 1; + break; + } + } + } else + e21.value = 0, e21.end = this.stream.clipPos(r10 + 1); + } }, { key: "putAction", value: function(e21, t10, n10, r10) { + for (var o10 = 0; o10 < r10; o10 += 3) + if (this.actions[o10] == e21) + return r10; + return this.actions[r10++] = e21, this.actions[r10++] = t10, this.actions[r10++] = n10, r10; + } }, { key: "addActions", value: function(e21, t10, n10, r10) { + for (var o10 = e21.state, i10 = e21.p.parser, a10 = i10.data, s10 = 0; s10 < 2; s10++) + for (var c10 = i10.stateSlot(o10, s10 ? 2 : 1); ; c10 += 3) { + if (65535 == a10[c10]) { + if (1 != a10[c10 + 1]) { + 0 == r10 && 2 == a10[c10 + 1] && (r10 = this.putAction(Q0(a10, c10 + 2), t10, n10, r10)); + break; + } + c10 = Q0(a10, c10 + 2); + } + a10[c10] == t10 && (r10 = this.putAction(Q0(a10, c10 + 1), t10, n10, r10)); + } + return r10; + } }]), e20; + }(); + var U0 = function() { + function e20(t10, n10, r10, o10) { + No(this, e20), this.parser = t10, this.input = n10, this.ranges = o10, this.recovering = 0, this.nextStackID = 9812, this.minStackPos = 0, this.reused = [], this.stoppedAt = null, this.lastBigReductionStart = -1, this.lastBigReductionSize = 0, this.bigReductionCount = 0, this.stream = new D0(n10, o10), this.tokens = new W0(t10, this.stream), this.topTerm = t10.top[1]; + var i10 = o10[0].from; + this.stacks = [E0.start(this, t10.top[0], i10)], this.fragments = r10.length && this.stream.end - i10 > 4 * t10.bufferLength ? new H0(r10, t10.nodeSet) : null; + } + return Do(e20, [{ key: "parsedPos", get: function() { + return this.minStackPos; + } }, { key: "advance", value: function() { + var e21, t10, n10 = this.stacks, r10 = this.minStackPos, o10 = this.stacks = []; + if (this.bigReductionCount > 300 && 1 == n10.length) { + for (var i10 = jo(n10, 1)[0]; i10.forceReduce() && i10.stack.length && i10.stack[i10.stack.length - 2] >= this.lastBigReductionStart; ) + ; + this.bigReductionCount = this.lastBigReductionSize = 0; + } + for (var a10 = 0; a10 < n10.length; a10++) + for (var s10 = n10[a10]; ; ) { + if (this.tokens.mainToken = null, s10.pos > r10) + o10.push(s10); + else { + if (this.advanceStack(s10, o10, n10)) + continue; + e21 || (e21 = [], t10 = []), e21.push(s10); + var c10 = this.tokens.getMainToken(s10); + t10.push(c10.value, c10.end); + } + break; + } + if (!o10.length) { + var l10 = e21 && function(e23) { + var t11, n11 = null, r11 = bo(e23); + try { + for (r11.s(); !(t11 = r11.n()).done; ) { + var o11 = t11.value, i11 = o11.p.stoppedAt; + (o11.pos == o11.p.stream.end || null != i11 && o11.pos > i11) && o11.p.parser.stateFlag(o11.state, 2) && (!n11 || n11.score < o11.score) && (n11 = o11); + } + } catch (e24) { + r11.e(e24); + } finally { + r11.f(); + } + return n11; + }(e21); + if (l10) + return L0 && console.log("Finish with " + this.stackID(l10)), this.stackToTree(l10); + if (this.parser.strict) + throw L0 && e21 && console.log("Stuck with token " + (this.tokens.mainToken ? this.parser.getName(this.tokens.mainToken.value) : "none")), new SyntaxError("No parse at " + r10); + this.recovering || (this.recovering = 5); + } + if (this.recovering && e21) { + var u10 = null != this.stoppedAt && e21[0].pos > this.stoppedAt ? e21[0] : this.runRecovery(e21, t10, o10); + if (u10) + return L0 && console.log("Force-finish " + this.stackID(u10)), this.stackToTree(u10.forceAll()); + } + if (this.recovering) { + var f10 = 1 == this.recovering ? 1 : 3 * this.recovering; + if (o10.length > f10) + for (o10.sort(function(e23, t11) { + return t11.score - e23.score; + }); o10.length > f10; ) + o10.pop(); + o10.some(function(e23) { + return e23.reducePos > r10; + }) && this.recovering--; + } else if (o10.length > 1) { + e: + for (var d10 = 0; d10 < o10.length - 1; d10++) + for (var h10 = o10[d10], v10 = d10 + 1; v10 < o10.length; v10++) { + var p10 = o10[v10]; + if (h10.sameState(p10) || h10.buffer.length > 500 && p10.buffer.length > 500) { + if (!((h10.score - p10.score || h10.buffer.length - p10.buffer.length) > 0)) { + o10.splice(d10--, 1); + continue e; + } + o10.splice(v10--, 1); + } + } + o10.length > 12 && o10.splice(12, o10.length - 12); + } + this.minStackPos = o10[0].pos; + for (var m10 = 1; m10 < o10.length; m10++) + o10[m10].pos < this.minStackPos && (this.minStackPos = o10[m10].pos); + return null; + } }, { key: "stopAt", value: function(e21) { + if (null != this.stoppedAt && this.stoppedAt < e21) + throw new RangeError("Can't move stoppedAt forward"); + this.stoppedAt = e21; + } }, { key: "advanceStack", value: function(e21, t10, n10) { + var r10 = e21.pos, o10 = this.parser, i10 = L0 ? this.stackID(e21) + " -> " : ""; + if (null != this.stoppedAt && r10 > this.stoppedAt) + return e21.forceReduce() ? e21 : null; + if (this.fragments) + for (var a10 = e21.curContext && e21.curContext.tracker.strict, s10 = a10 ? e21.curContext.hash : 0, c10 = this.fragments.nodeAt(r10); c10; ) { + var l10 = this.parser.nodeSet.types[c10.type.id] == c10.type ? o10.getGoto(e21.state, c10.type.id) : -1; + if (l10 > -1 && c10.length && (!a10 || (c10.prop(AG.contextHash) || 0) == s10)) + return e21.useNode(c10, l10), L0 && console.log(i10 + this.stackID(e21) + " (via reuse of ".concat(o10.getName(c10.type.id), ")")), true; + if (!(c10 instanceof zG) || 0 == c10.children.length || c10.positions[0] > 0) + break; + var u10 = c10.children[0]; + if (!(u10 instanceof zG && 0 == c10.positions[0])) + break; + c10 = u10; + } + var f10 = o10.stateSlot(e21.state, 4); + if (f10 > 0) + return e21.reduce(f10), L0 && console.log(i10 + this.stackID(e21) + " (via always-reduce ".concat(o10.getName(65535 & f10), ")")), true; + if (e21.stack.length >= 8400) + for (; e21.stack.length > 6e3 && e21.forceReduce(); ) + ; + for (var d10 = this.tokens.getActions(e21), h10 = 0; h10 < d10.length; ) { + var v10 = d10[h10++], p10 = d10[h10++], m10 = d10[h10++], g10 = h10 == d10.length || !n10, y10 = g10 ? e21 : e21.split(), b10 = this.tokens.mainToken; + if (y10.apply(v10, p10, b10 ? b10.start : y10.pos, m10), L0 && console.log(i10 + this.stackID(y10) + " (via ".concat(0 == (65536 & v10) ? "shift" : "reduce of ".concat(o10.getName(65535 & v10)), " for ").concat(o10.getName(p10), " @ ").concat(r10).concat(y10 == e21 ? "" : ", split", ")")), g10) + return true; + y10.pos > r10 ? t10.push(y10) : n10.push(y10); + } + return false; + } }, { key: "advanceFully", value: function(e21, t10) { + for (var n10 = e21.pos; ; ) { + if (!this.advanceStack(e21, null, null)) + return false; + if (e21.pos > n10) + return J0(e21, t10), true; + } + } }, { key: "runRecovery", value: function(e21, t10, n10) { + for (var r10 = null, o10 = false, i10 = 0; i10 < e21.length; i10++) { + var a10 = e21[i10], s10 = t10[i10 << 1], c10 = t10[1 + (i10 << 1)], l10 = L0 ? this.stackID(a10) + " -> " : ""; + if (a10.deadEnd) { + if (o10) + continue; + if (o10 = true, a10.restart(), L0 && console.log(l10 + this.stackID(a10) + " (restarted)"), this.advanceFully(a10, n10)) + continue; + } + for (var u10 = a10.split(), f10 = l10, d10 = 0; u10.forceReduce() && d10 < 10; d10++) { + if (L0 && console.log(f10 + this.stackID(u10) + " (via force-reduce)"), this.advanceFully(u10, n10)) + break; + L0 && (f10 = this.stackID(u10) + " -> "); + } + var h10, v10 = bo(a10.recoverByInsert(s10)); + try { + for (v10.s(); !(h10 = v10.n()).done; ) { + var p10 = h10.value; + L0 && console.log(l10 + this.stackID(p10) + " (via recover-insert)"), this.advanceFully(p10, n10); + } + } catch (e23) { + v10.e(e23); + } finally { + v10.f(); + } + this.stream.end > a10.pos ? (c10 == a10.pos && (c10++, s10 = 0), a10.recoverByDelete(s10, c10), L0 && console.log(l10 + this.stackID(a10) + " (via recover-delete ".concat(this.parser.getName(s10), ")")), J0(a10, n10)) : (!r10 || r10.score < a10.score) && (r10 = a10); + } + return r10; + } }, { key: "stackToTree", value: function(e21) { + return e21.close(), zG.build({ buffer: T0.create(e21), nodeSet: this.parser.nodeSet, topID: this.topTerm, maxBufferLength: this.parser.bufferLength, reused: this.reused, start: this.ranges[0].from, length: e21.pos - this.ranges[0].from, minRepeatType: this.parser.minRepeatTerm }); + } }, { key: "stackID", value: function(e21) { + var t10 = (F0 || (F0 = /* @__PURE__ */ new WeakMap())).get(e21); + return t10 || F0.set(e21, t10 = String.fromCodePoint(this.nextStackID++)), t10 + e21; + } }]), e20; + }(); + function J0(e20, t10) { + for (var n10 = 0; n10 < t10.length; n10++) { + var r10 = t10[n10]; + if (r10.pos == e20.pos && r10.sameState(e20)) + return void (t10[n10].score < e20.score && (t10[n10] = e20)); + } + t10.push(e20); + } + var K0 = function() { + function e20(t10, n10, r10) { + No(this, e20), this.source = t10, this.flags = n10, this.disabled = r10; + } + return Do(e20, [{ key: "allows", value: function(e21) { + return !this.disabled || 0 == this.disabled[e21]; + } }]), e20; + }(); + var G0 = function(e20) { + function t10(e21) { + var n10, r10; + if (No(this, t10), (r10 = _o(this, t10)).wrappers = [], 14 != e21.version) + throw new RangeError("Parser version (".concat(e21.version, ") doesn't match runtime version (", 14, ")")); + var o10 = e21.nodeNames.split(" "); + r10.minRepeatTerm = o10.length; + for (var i10 = 0; i10 < e21.repeatNodeCount; i10++) + o10.push(""); + for (var a10 = Object.keys(e21.topRules).map(function(t11) { + return e21.topRules[t11][1]; + }), s10 = [], c10 = 0; c10 < o10.length; c10++) + s10.push([]); + function l10(e23, t11, n11) { + s10[e23].push([t11, t11.deserialize(String(n11))]); + } + if (e21.nodeProps) { + var u10, f10 = bo(e21.nodeProps); + try { + for (f10.s(); !(u10 = f10.n()).done; ) { + var d10 = u10.value, h10 = d10[0]; + "string" == typeof h10 && (h10 = AG[h10]); + for (var v10 = 1; v10 < d10.length; ) { + var p10 = d10[v10++]; + if (p10 >= 0) + l10(p10, h10, d10[v10++]); + else { + for (var m10 = d10[v10 + -p10], g10 = -p10; g10 > 0; g10--) + l10(d10[v10++], h10, m10); + v10++; + } + } + } + } catch (e23) { + f10.e(e23); + } finally { + f10.f(); + } + } + r10.nodeSet = new IG(o10.map(function(t11, n11) { + return RG.define({ name: n11 >= r10.minRepeatTerm ? void 0 : t11, id: n11, props: s10[n11], top: a10.indexOf(n11) > -1, error: 0 == n11, skipped: e21.skippedNodes && e21.skippedNodes.indexOf(n11) > -1 }); + })), e21.propSources && (r10.nodeSet = (n10 = r10.nodeSet).extend.apply(n10, Bo(e21.propSources))), r10.strict = false, r10.bufferLength = 1024; + var y10 = R0(e21.tokenData); + r10.context = e21.context, r10.specializerSpecs = e21.specialized || [], r10.specialized = new Uint16Array(r10.specializerSpecs.length); + for (var b10 = 0; b10 < r10.specializerSpecs.length; b10++) + r10.specialized[b10] = r10.specializerSpecs[b10].term; + return r10.specializers = r10.specializerSpecs.map(Y0), r10.states = R0(e21.states, Uint32Array), r10.data = R0(e21.stateData), r10.goto = R0(e21.goto), r10.maxTerm = e21.maxTerm, r10.tokenizers = e21.tokenizers.map(function(e23) { + return "number" == typeof e23 ? new q0(y10, e23) : e23; + }), r10.topRules = e21.topRules, r10.dialects = e21.dialects || {}, r10.dynamicPrecedences = e21.dynamicPrecedences || null, r10.tokenPrecTable = e21.tokenPrec, r10.termNames = e21.termNames || null, r10.maxNode = r10.nodeSet.types.length - 1, r10.dialect = r10.parseDialect(), r10.top = r10.topRules[Object.keys(r10.topRules)[0]], r10; + } + return Ao(t10, iQ), Do(t10, [{ key: "createParse", value: function(e21, t11, n10) { + var r10, o10 = new U0(this, e21, t11, n10), i10 = bo(this.wrappers); + try { + for (i10.s(); !(r10 = i10.n()).done; ) { + o10 = (0, r10.value)(o10, e21, t11, n10); + } + } catch (e23) { + i10.e(e23); + } finally { + i10.f(); + } + return o10; + } }, { key: "getGoto", value: function(e21, t11) { + var n10 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], r10 = this.goto; + if (t11 >= r10[0]) + return -1; + for (var o10 = r10[t11 + 1]; ; ) { + var i10 = r10[o10++], a10 = 1 & i10, s10 = r10[o10++]; + if (a10 && n10) + return s10; + for (var c10 = o10 + (i10 >> 1); o10 < c10; o10++) + if (r10[o10] == e21) + return s10; + if (a10) + return -1; + } + } }, { key: "hasAction", value: function(e21, t11) { + for (var n10 = this.data, r10 = 0; r10 < 2; r10++) + for (var o10, i10 = this.stateSlot(e21, r10 ? 2 : 1); ; i10 += 3) { + if (65535 == (o10 = n10[i10])) { + if (1 != n10[i10 + 1]) { + if (2 == n10[i10 + 1]) + return Q0(n10, i10 + 2); + break; + } + o10 = n10[i10 = Q0(n10, i10 + 2)]; + } + if (o10 == t11 || 0 == o10) + return Q0(n10, i10 + 1); + } + return 0; + } }, { key: "stateSlot", value: function(e21, t11) { + return this.states[6 * e21 + t11]; + } }, { key: "stateFlag", value: function(e21, t11) { + return (this.stateSlot(e21, 0) & t11) > 0; + } }, { key: "validAction", value: function(e21, t11) { + return !!this.allActions(e21, function(e23) { + return e23 == t11 || null; + }); + } }, { key: "allActions", value: function(e21, t11) { + for (var n10 = this.stateSlot(e21, 4), r10 = n10 ? t11(n10) : void 0, o10 = this.stateSlot(e21, 1); null == r10; o10 += 3) { + if (65535 == this.data[o10]) { + if (1 != this.data[o10 + 1]) + break; + o10 = Q0(this.data, o10 + 2); + } + r10 = t11(Q0(this.data, o10 + 1)); + } + return r10; + } }, { key: "nextStates", value: function(e21) { + for (var t11 = this, n10 = [], r10 = function(e23) { + if (65535 == t11.data[e23]) { + if (1 != t11.data[e23 + 1]) + return o10 = e23, 1; + e23 = Q0(t11.data, e23 + 2); + } + if (0 == (1 & t11.data[e23 + 2])) { + var r11 = t11.data[e23 + 1]; + n10.some(function(e24, t12) { + return 1 & t12 && e24 == r11; + }) || n10.push(t11.data[e23], r11); + } + o10 = e23; + }, o10 = this.stateSlot(e21, 1); !r10(o10); o10 += 3) + ; + return n10; + } }, { key: "configure", value: function(e21) { + var n10, r10 = Object.assign(Object.create(t10.prototype), this); + if (e21.props && (r10.nodeSet = (n10 = this.nodeSet).extend.apply(n10, Bo(e21.props))), e21.top) { + var o10 = this.topRules[e21.top]; + if (!o10) + throw new RangeError("Invalid top rule name ".concat(e21.top)); + r10.top = o10; + } + return e21.tokenizers && (r10.tokenizers = this.tokenizers.map(function(t11) { + var n11 = e21.tokenizers.find(function(e23) { + return e23.from == t11; + }); + return n11 ? n11.to : t11; + })), e21.specializers && (r10.specializers = this.specializers.slice(), r10.specializerSpecs = this.specializerSpecs.map(function(t11, n11) { + var o11 = e21.specializers.find(function(e23) { + return e23.from == t11.external; + }); + if (!o11) + return t11; + var i10 = Object.assign(Object.assign({}, t11), { external: o11.to }); + return r10.specializers[n11] = Y0(i10), i10; + })), e21.contextTracker && (r10.context = e21.contextTracker), e21.dialect && (r10.dialect = this.parseDialect(e21.dialect)), null != e21.strict && (r10.strict = e21.strict), e21.wrap && (r10.wrappers = r10.wrappers.concat(e21.wrap)), null != e21.bufferLength && (r10.bufferLength = e21.bufferLength), r10; + } }, { key: "hasWrappers", value: function() { + return this.wrappers.length > 0; + } }, { key: "getName", value: function(e21) { + return this.termNames ? this.termNames[e21] : String(e21 <= this.maxNode && this.nodeSet.types[e21].name || e21); + } }, { key: "eofTerm", get: function() { + return this.maxNode + 1; + } }, { key: "topNode", get: function() { + return this.nodeSet.types[this.top[1]]; + } }, { key: "dynamicPrecedence", value: function(e21) { + var t11 = this.dynamicPrecedences; + return null == t11 ? 0 : t11[e21] || 0; + } }, { key: "parseDialect", value: function(e21) { + var t11 = Object.keys(this.dialects), n10 = t11.map(function() { + return false; + }); + if (e21) { + var r10, o10 = bo(e21.split(" ")); + try { + for (o10.s(); !(r10 = o10.n()).done; ) { + var i10 = r10.value, a10 = t11.indexOf(i10); + a10 >= 0 && (n10[a10] = true); + } + } catch (e23) { + o10.e(e23); + } finally { + o10.f(); + } + } + for (var s10 = null, c10 = 0; c10 < t11.length; c10++) + if (!n10[c10]) + for (var l10, u10 = this.dialects[t11[c10]]; 65535 != (l10 = this.data[u10++]); ) + (s10 || (s10 = new Uint8Array(this.maxTerm + 1)))[l10] = 1; + return new K0(e21, n10, s10); + } }], [{ key: "deserialize", value: function(e21) { + return new t10(e21); + } }]), t10; + }(); + function Q0(e20, t10) { + return e20[t10] | e20[t10 + 1] << 16; + } + function Y0(e20) { + if (e20.external) { + var t10 = e20.extend ? 1 : 0; + return function(n10, r10) { + return e20.external(n10, r10) << 1 | t10; + }; + } + return e20.get; + } + var X0 = fQ({ String: TQ.string, Number: TQ.number, "True False": TQ.bool, PropertyName: TQ.propertyName, Null: TQ.null, ",": TQ.separator, "[ ]": TQ.squareBracket, "{ }": TQ.brace }); + var Z0 = G0.deserialize({ version: 14, states: "$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#CjOOQO'#Cp'#CpQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CrOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59U,59UO!iQPO,59UOVQPO,59QOqQPO'#CkO!nQPO,59^OOQO1G.k1G.kOVQPO'#ClO!vQPO,59aOOQO1G.p1G.pOOQO1G.l1G.lOOQO,59V,59VOOQO-E6i-E6iOOQO,59W,59WOOQO-E6j-E6j", stateData: "#O~OcOS~OQSORSOSSOTSOWQO]ROePO~OVXOeUO~O[[O~PVOg^O~Oh_OVfX~OVaO~OhbO[iX~O[dO~Oh_OVfa~OhbO[ia~O", goto: "!kjPPPPPPkPPkqwPPk{!RPPP!XP!ePP!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R", nodeNames: "\u26A0 JsonText True False Null Number String } { Object Property PropertyName ] [ Array", maxTerm: 25, nodeProps: [["openedBy", 7, "{", 12, "["], ["closedBy", 8, "}", 13, "]"]], propSources: [X0], 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~!]Oc~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Oe~~#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!]~$zOh~~$}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~&yOg~~'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 }); + var e1 = qQ.define({ name: "json", parser: Z0.configure({ props: [nY.add({ Object: cY({ except: /^\s*\}/ }), Array: cY({ except: /^\s*\]/ }) }), fY.add({ "Object Array": function(e20) { + var t10 = e20.firstChild, n10 = e20.lastChild; + return t10 && t10.to < n10.from ? { from: t10.to, to: n10.type.isError ? e20.to : n10.from } : null; + } })] }), languageData: { closeBrackets: { brackets: ["[", "{", '"'] }, indentOnInput: /^\s*[\}\]]$/ } }); + var t1 = "function" == typeof String.prototype.normalize ? function(e20) { + return e20.normalize("NFKD"); + } : function(e20) { + return e20; + }; + var n1 = function() { + function e20(t10, n10) { + var r10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, o10 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : t10.length, i10 = arguments.length > 4 ? arguments[4] : void 0, a10 = arguments.length > 5 ? arguments[5] : void 0; + No(this, e20), this.test = a10, this.value = { from: 0, to: 0 }, this.done = false, this.matches = [], this.buffer = "", this.bufferPos = 0, this.iter = t10.iterRange(r10, o10), this.bufferStart = r10, this.normalize = i10 ? function(e21) { + return i10(t1(e21)); + } : t1, this.query = this.normalize(n10); + } + return Do(e20, [{ key: "peek", value: function() { + 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 dF(this.buffer, this.bufferPos); + } }, { key: "next", value: function() { + for (; this.matches.length; ) + this.matches.pop(); + return this.nextOverlapping(); + } }, { key: "nextOverlapping", value: function() { + for (; ; ) { + var e21 = this.peek(); + if (e21 < 0) + return this.done = true, this; + var t10 = hF(e21), n10 = this.bufferStart + this.bufferPos; + this.bufferPos += vF(e21); + for (var r10 = this.normalize(t10), o10 = 0, i10 = n10; ; o10++) { + var a10 = r10.charCodeAt(o10), s10 = this.match(a10, i10); + if (o10 == r10.length - 1) { + if (s10) + return this.value = s10, this; + break; + } + i10 == n10 && o10 < t10.length && t10.charCodeAt(o10) == a10 && i10++; + } + } + } }, { key: "match", value: function(e21, t10) { + for (var n10 = null, r10 = 0; r10 < this.matches.length; r10 += 2) { + var o10 = this.matches[r10], i10 = false; + this.query.charCodeAt(o10) == e21 && (o10 == this.query.length - 1 ? n10 = { from: this.matches[r10 + 1], to: t10 + 1 } : (this.matches[r10]++, i10 = true)), i10 || (this.matches.splice(r10, 2), r10 -= 2); + } + return this.query.charCodeAt(0) == e21 && (1 == this.query.length ? n10 = { from: t10, to: t10 + 1 } : this.matches.push(1, t10)), n10 && this.test && !this.test(n10.from, n10.to, this.buffer, this.bufferStart) && (n10 = null), n10; + } }]), e20; + }(); + "undefined" != typeof Symbol && (n1.prototype[Symbol.iterator] = function() { + return this; + }); + var r1 = { from: -1, to: -1, match: /.*/.exec("") }; + var o1 = "gm" + (null == /x/.unicode ? "" : "u"); + var i1 = function() { + function e20(t10, n10, r10) { + var o10 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0, i10 = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : t10.length; + if (No(this, e20), this.text = t10, this.to = i10, this.curLine = "", this.done = false, this.value = r1, /\\[sWDnr]|\n|\r|\[\^/.test(n10)) + return new c1(t10, n10, r10, o10, i10); + this.re = new RegExp(n10, o1 + ((null == r10 ? void 0 : r10.ignoreCase) ? "i" : "")), this.test = null == r10 ? void 0 : r10.test, this.iter = t10.iter(); + var a10 = t10.lineAt(o10); + this.curLineStart = a10.from, this.matchPos = l1(t10, o10), this.getLine(this.curLineStart); + } + return Do(e20, [{ key: "getLine", value: function(e21) { + this.iter.next(e21), 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()); + } }, { key: "nextLine", value: function() { + this.curLineStart = this.curLineStart + this.curLine.length + 1, this.curLineStart > this.to ? this.curLine = "" : this.getLine(0); + } }, { key: "next", value: function() { + for (var e21 = this.matchPos - this.curLineStart; ; ) { + this.re.lastIndex = e21; + var t10 = this.matchPos <= this.to && this.re.exec(this.curLine); + if (t10) { + var n10 = this.curLineStart + t10.index, r10 = n10 + t10[0].length; + if (this.matchPos = l1(this.text, r10 + (n10 == r10 ? 1 : 0)), n10 == this.curLineStart + this.curLine.length && this.nextLine(), (n10 < r10 || n10 > this.value.to) && (!this.test || this.test(n10, r10, t10))) + return this.value = { from: n10, to: r10, match: t10 }, this; + e21 = this.matchPos - this.curLineStart; + } else { + if (!(this.curLineStart + this.curLine.length < this.to)) + return this.done = true, this; + this.nextLine(), e21 = 0; + } + } + } }]), e20; + }(); + var a1 = /* @__PURE__ */ new WeakMap(); + var s1 = function() { + function e20(t10, n10) { + No(this, e20), this.from = t10, this.text = n10; + } + return Do(e20, [{ key: "to", get: function() { + return this.from + this.text.length; + } }], [{ key: "get", value: function(t10, n10, r10) { + var o10 = a1.get(t10); + if (!o10 || o10.from >= r10 || o10.to <= n10) { + var i10 = new e20(n10, t10.sliceString(n10, r10)); + return a1.set(t10, i10), i10; + } + if (o10.from == n10 && o10.to == r10) + return o10; + var a10 = o10.text, s10 = o10.from; + return s10 > n10 && (a10 = t10.sliceString(n10, s10) + a10, s10 = n10), o10.to < r10 && (a10 += t10.sliceString(o10.to, r10)), a1.set(t10, new e20(s10, a10)), new e20(n10, a10.slice(n10 - s10, r10 - s10)); + } }]), e20; + }(); + var c1 = function() { + function e20(t10, n10, r10, o10, i10) { + No(this, e20), this.text = t10, this.to = i10, this.done = false, this.value = r1, this.matchPos = l1(t10, o10), this.re = new RegExp(n10, o1 + ((null == r10 ? void 0 : r10.ignoreCase) ? "i" : "")), this.test = null == r10 ? void 0 : r10.test, this.flat = s1.get(t10, o10, this.chunkEnd(o10 + 5e3)); + } + return Do(e20, [{ key: "chunkEnd", value: function(e21) { + return e21 >= this.to ? this.to : this.text.lineAt(e21).to; + } }, { key: "next", value: function() { + for (; ; ) { + var e21 = this.re.lastIndex = this.matchPos - this.flat.from, t10 = this.re.exec(this.flat.text); + if (t10 && !t10[0] && t10.index == e21 && (this.re.lastIndex = e21 + 1, t10 = this.re.exec(this.flat.text)), t10) { + var n10 = this.flat.from + t10.index, r10 = n10 + t10[0].length; + if ((this.flat.to >= this.to || t10.index + t10[0].length <= this.flat.text.length - 10) && (!this.test || this.test(n10, r10, t10))) + return this.value = { from: n10, to: r10, match: t10 }, this.matchPos = l1(this.text, r10 + (n10 == r10 ? 1 : 0)), this; + } + if (this.flat.to == this.to) + return this.done = true, this; + this.flat = s1.get(this.text, this.flat.from, this.chunkEnd(this.flat.from + 2 * this.flat.text.length)); + } + } }]), e20; + }(); + function l1(e20, t10) { + if (t10 >= e20.length) + return t10; + for (var n10, r10 = e20.lineAt(t10); t10 < r10.to && (n10 = r10.text.charCodeAt(t10 - r10.from)) >= 56320 && n10 < 57344; ) + t10++; + return t10; + } + function u1(e20) { + var t10 = JZ("input", { class: "cm-textfield", name: "line", value: String(e20.state.doc.lineAt(e20.state.selection.main.head).number) }); + function n10() { + var n11 = /^([+-])?(\d+)?(:\d+)?(%)?$/.exec(t10.value); + if (n11) { + var r10 = e20.state, o10 = r10.doc.lineAt(r10.selection.main.head), i10 = jo(n11, 5), a10 = i10[1], s10 = i10[2], c10 = i10[3], l10 = i10[4], u10 = c10 ? +c10.slice(1) : 0, f10 = s10 ? +s10 : o10.number; + if (s10 && l10) { + var d10 = f10 / 100; + a10 && (d10 = d10 * ("-" == a10 ? -1 : 1) + o10.number / r10.doc.lines), f10 = Math.round(r10.doc.lines * d10); + } else + s10 && a10 && (f10 = f10 * ("-" == a10 ? -1 : 1) + o10.number); + var h10 = r10.doc.line(Math.max(1, Math.min(r10.doc.lines, f10))), v10 = $F.cursor(h10.from + Math.max(0, Math.min(u10, h10.length))); + e20.dispatch({ effects: [f1.of(false), zJ.scrollIntoView(v10.from, { y: "center" })], selection: v10 }), e20.focus(); + } + } + return { dom: JZ("form", { class: "cm-gotoLine", onkeydown: function(t11) { + 27 == t11.keyCode ? (t11.preventDefault(), e20.dispatch({ effects: f1.of(false) }), e20.focus()) : 13 == t11.keyCode && (t11.preventDefault(), n10()); + }, onsubmit: function(e21) { + e21.preventDefault(), n10(); + } }, JZ("label", e20.state.phrase("Go to line"), ": ", t10), " ", JZ("button", { class: "cm-button", type: "submit" }, e20.state.phrase("go"))) }; + } + "undefined" != typeof Symbol && (i1.prototype[Symbol.iterator] = c1.prototype[Symbol.iterator] = function() { + return this; + }); + var f1 = oV.define(); + var d1 = NF.define({ create: function() { + return true; + }, update: function(e20, t10) { + var n10, r10 = bo(t10.effects); + try { + for (r10.s(); !(n10 = r10.n()).done; ) { + var o10 = n10.value; + o10.is(f1) && (e20 = o10.value); + } + } catch (e21) { + r10.e(e21); + } finally { + r10.f(); + } + return e20; + }, provide: function(e20) { + return aG.from(e20, function(e21) { + return e21 ? u1 : null; + }); + } }); + var h1 = zJ.baseTheme({ ".cm-panel.cm-gotoLine": { padding: "2px 6px 4px", "& label": { fontSize: "80%" } } }); + var v1 = { highlightWordAroundCursor: false, minSelectionLength: 1, maxMatches: 100, wholeWords: false }; + var p1 = MF.define({ combine: function(e20) { + return gV(e20, v1, { highlightWordAroundCursor: function(e21, t10) { + return e21 || t10; + }, minSelectionLength: Math.min, maxMatches: Math.min }); + } }); + var m1 = KH.mark({ class: "cm-selectionMatch" }); + var g1 = KH.mark({ class: "cm-selectionMatch cm-selectionMatch-main" }); + function y1(e20, t10, n10, r10) { + return !(0 != n10 && e20(t10.sliceDoc(n10 - 1, n10)) == hV.Word || r10 != t10.doc.length && e20(t10.sliceDoc(r10, r10 + 1)) == hV.Word); + } + var b1 = FW.fromClass(function() { + function e20(t10) { + No(this, e20), this.decorations = this.getDeco(t10); + } + return Do(e20, [{ key: "update", value: function(e21) { + (e21.selectionSet || e21.docChanged || e21.viewportChanged) && (this.decorations = this.getDeco(e21.view)); + } }, { key: "getDeco", value: function(e21) { + var t10 = e21.state.facet(p1), n10 = e21.state, r10 = n10.selection; + if (r10.ranges.length > 1) + return KH.none; + var o10, i10 = r10.main, a10 = null; + if (i10.empty) { + if (!t10.highlightWordAroundCursor) + return KH.none; + var s10 = n10.wordAt(i10.head); + if (!s10) + return KH.none; + a10 = n10.charCategorizer(i10.head), o10 = n10.sliceDoc(s10.from, s10.to); + } else { + var c10 = i10.to - i10.from; + if (c10 < t10.minSelectionLength || c10 > 200) + return KH.none; + if (t10.wholeWords) { + if (o10 = n10.sliceDoc(i10.from, i10.to), !y1(a10 = n10.charCategorizer(i10.head), n10, i10.from, i10.to) || !function(e23, t11, n11, r11) { + return e23(t11.sliceDoc(n11, n11 + 1)) == hV.Word && e23(t11.sliceDoc(r11 - 1, r11)) == hV.Word; + }(a10, n10, i10.from, i10.to)) + return KH.none; + } else if (!(o10 = n10.sliceDoc(i10.from, i10.to).trim())) + return KH.none; + } + var l10, u10 = [], f10 = bo(e21.visibleRanges); + try { + for (f10.s(); !(l10 = f10.n()).done; ) + for (var d10 = l10.value, h10 = new n1(n10.doc, o10, d10.from, d10.to); !h10.next().done; ) { + var v10 = h10.value, p10 = v10.from, m10 = v10.to; + if ((!a10 || y1(a10, n10, p10, m10)) && (i10.empty && p10 <= i10.from && m10 >= i10.to ? u10.push(g1.range(p10, m10)) : (p10 >= i10.to || m10 <= i10.from) && u10.push(m1.range(p10, m10)), u10.length > t10.maxMatches)) + return KH.none; + } + } catch (e23) { + f10.e(e23); + } finally { + f10.f(); + } + return KH.set(u10); + } }]), e20; + }(), { decorations: function(e20) { + return e20.decorations; + } }); + var k1 = zJ.baseTheme({ ".cm-selectionMatch": { backgroundColor: "#99ff7780" }, ".cm-searchMatch .cm-selectionMatch": { backgroundColor: "transparent" } }); + var w1 = MF.define({ combine: function(e20) { + return gV(e20, { top: false, caseSensitive: false, literal: false, regexp: false, wholeWord: false, createPanel: function(e21) { + return new Y1(e21); + }, scrollToMatch: function(e21) { + return zJ.scrollIntoView(e21); + } }); + } }); + function x1(e20) { + return e20 ? [w1.of(e20), r2] : r2; + } + var j1 = function() { + function e20(t10) { + No(this, e20), this.search = t10.search, this.caseSensitive = !!t10.caseSensitive, this.literal = !!t10.literal, this.regexp = !!t10.regexp, this.replace = t10.replace || "", this.valid = !!this.search && (!this.regexp || function(e21) { + try { + return new RegExp(e21, o1), true; + } catch (e23) { + return false; + } + }(this.search)), this.unquoted = this.unquote(this.search), this.wholeWord = !!t10.wholeWord; + } + return Do(e20, [{ key: "unquote", value: function(e21) { + return this.literal ? e21 : e21.replace(/\\([nrt\\])/g, function(e23, t10) { + return "n" == t10 ? "\n" : "r" == t10 ? "\r" : "t" == t10 ? " " : "\\"; + }); + } }, { key: "eq", value: function(e21) { + return this.search == e21.search && this.replace == e21.replace && this.caseSensitive == e21.caseSensitive && this.regexp == e21.regexp && this.wholeWord == e21.wholeWord; + } }, { key: "create", value: function() { + return this.regexp ? new E1(this) : new $1(this); + } }, { key: "getCursor", value: function(e21) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n10 = arguments.length > 2 ? arguments[2] : void 0, r10 = e21.doc ? e21 : mV.create({ doc: e21 }); + return null == n10 && (n10 = r10.doc.length), this.regexp ? _1(this, r10, t10, n10) : C1(this, r10, t10, n10); + } }]), e20; + }(); + var S1 = Do(function e14(t10) { + No(this, e14), this.spec = t10; + }); + function C1(e20, t10, n10, r10) { + return new n1(t10.doc, e20.unquoted, n10, r10, e20.caseSensitive ? void 0 : function(e21) { + return e21.toLowerCase(); + }, e20.wholeWord ? /* @__PURE__ */ function(e21, t11) { + return function(n11, r11, o10, i10) { + return (i10 > n11 || i10 + o10.length < r11) && (i10 = Math.max(0, n11 - 2), o10 = e21.sliceString(i10, Math.min(e21.length, r11 + 2))), !(t11(O1(o10, n11 - i10)) == hV.Word && t11(M1(o10, n11 - i10)) == hV.Word || t11(M1(o10, r11 - i10)) == hV.Word && t11(O1(o10, r11 - i10)) == hV.Word); + }; + }(t10.doc, t10.charCategorizer(t10.selection.main.head)) : void 0); + } + var $1 = function(e20) { + function t10(e21) { + return No(this, t10), _o(this, t10, [e21]); + } + return Ao(t10, S1), Do(t10, [{ key: "nextMatch", value: function(e21, t11, n10) { + var r10 = C1(this.spec, e21, n10, e21.doc.length).nextOverlapping(); + return r10.done && (r10 = C1(this.spec, e21, 0, t11).nextOverlapping()), r10.done ? null : r10.value; + } }, { key: "prevMatchInRange", value: function(e21, t11, n10) { + for (var r10 = n10; ; ) { + for (var o10 = Math.max(t11, r10 - 1e4 - this.spec.unquoted.length), i10 = C1(this.spec, e21, o10, r10), a10 = null; !i10.nextOverlapping().done; ) + a10 = i10.value; + if (a10) + return a10; + if (o10 == t11) + return null; + r10 -= 1e4; + } + } }, { key: "prevMatch", value: function(e21, t11, n10) { + return this.prevMatchInRange(e21, 0, t11) || this.prevMatchInRange(e21, n10, e21.doc.length); + } }, { key: "getReplacement", value: function(e21) { + return this.spec.unquote(this.spec.replace); + } }, { key: "matchAll", value: function(e21, t11) { + for (var n10 = C1(this.spec, e21, 0, e21.doc.length), r10 = []; !n10.next().done; ) { + if (r10.length >= t11) + return null; + r10.push(n10.value); + } + return r10; + } }, { key: "highlight", value: function(e21, t11, n10, r10) { + for (var o10 = C1(this.spec, e21, Math.max(0, t11 - this.spec.unquoted.length), Math.min(n10 + this.spec.unquoted.length, e21.doc.length)); !o10.next().done; ) + r10(o10.value.from, o10.value.to); + } }]), t10; + }(); + function _1(e20, t10, n10, r10) { + return new i1(t10.doc, e20.search, { ignoreCase: !e20.caseSensitive, test: e20.wholeWord ? (o10 = t10.charCategorizer(t10.selection.main.head), function(e21, t11, n11) { + return !n11[0].length || (o10(O1(n11.input, n11.index)) != hV.Word || o10(M1(n11.input, n11.index)) != hV.Word) && (o10(M1(n11.input, n11.index + n11[0].length)) != hV.Word || o10(O1(n11.input, n11.index + n11[0].length)) != hV.Word); + }) : void 0 }, n10, r10); + var o10; + } + function O1(e20, t10) { + return e20.slice(sF(e20, t10, false), t10); + } + function M1(e20, t10) { + return e20.slice(t10, sF(e20, t10)); + } + var E1 = function(e20) { + function t10() { + return No(this, t10), _o(this, t10, arguments); + } + return Ao(t10, S1), Do(t10, [{ key: "nextMatch", value: function(e21, t11, n10) { + var r10 = _1(this.spec, e21, n10, e21.doc.length).next(); + return r10.done && (r10 = _1(this.spec, e21, 0, t11).next()), r10.done ? null : r10.value; + } }, { key: "prevMatchInRange", value: function(e21, t11, n10) { + for (var r10 = 1; ; r10++) { + for (var o10 = Math.max(t11, n10 - 1e4 * r10), i10 = _1(this.spec, e21, o10, n10), a10 = null; !i10.next().done; ) + a10 = i10.value; + if (a10 && (o10 == t11 || a10.from > o10 + 10)) + return a10; + if (o10 == t11) + return null; + } + } }, { key: "prevMatch", value: function(e21, t11, n10) { + return this.prevMatchInRange(e21, 0, t11) || this.prevMatchInRange(e21, n10, e21.doc.length); + } }, { key: "getReplacement", value: function(e21) { + return this.spec.unquote(this.spec.replace).replace(/\$([$&\d+])/g, function(t11, n10) { + return "$" == n10 ? "$" : "&" == n10 ? e21.match[0] : "0" != n10 && +n10 < e21.match.length ? e21.match[n10] : t11; + }); + } }, { key: "matchAll", value: function(e21, t11) { + for (var n10 = _1(this.spec, e21, 0, e21.doc.length), r10 = []; !n10.next().done; ) { + if (r10.length >= t11) + return null; + r10.push(n10.value); + } + return r10; + } }, { key: "highlight", value: function(e21, t11, n10, r10) { + for (var o10 = _1(this.spec, e21, Math.max(0, t11 - 250), Math.min(n10 + 250, e21.doc.length)); !o10.next().done; ) + r10(o10.value.from, o10.value.to); + } }]), t10; + }(); + var A1 = oV.define(); + var P1 = oV.define(); + var T1 = NF.define({ create: function(e20) { + return new R1(W1(e20).create(), null); + }, update: function(e20, t10) { + var n10, r10 = bo(t10.effects); + try { + for (r10.s(); !(n10 = r10.n()).done; ) { + var o10 = n10.value; + o10.is(A1) ? e20 = new R1(o10.value.create(), e20.panel) : o10.is(P1) && (e20 = new R1(e20.query, o10.value ? H1 : null)); + } + } catch (e21) { + r10.e(e21); + } finally { + r10.f(); + } + return e20; + }, provide: function(e20) { + return aG.from(e20, function(e21) { + return e21.panel; + }); + } }); + var R1 = Do(function e15(t10, n10) { + No(this, e15), this.query = t10, this.panel = n10; + }); + var N1 = KH.mark({ class: "cm-searchMatch" }); + var I1 = KH.mark({ class: "cm-searchMatch cm-searchMatch-selected" }); + var D1 = FW.fromClass(function() { + function e20(t10) { + No(this, e20), this.view = t10, this.decorations = this.highlight(t10.state.field(T1)); + } + return Do(e20, [{ key: "update", value: function(e21) { + var t10 = e21.state.field(T1); + (t10 != e21.startState.field(T1) || e21.docChanged || e21.selectionSet || e21.viewportChanged) && (this.decorations = this.highlight(t10)); + } }, { key: "highlight", value: function(e21) { + var t10 = e21.query; + if (!e21.panel || !t10.spec.valid) + return KH.none; + for (var n10 = this.view, r10 = new jV(), o10 = 0, i10 = n10.visibleRanges, a10 = i10.length; o10 < a10; o10++) { + for (var s10 = i10[o10], c10 = s10.from, l10 = s10.to; o10 < a10 - 1 && l10 > i10[o10 + 1].from - 500; ) + l10 = i10[++o10].to; + t10.highlight(n10.state, c10, l10, function(e23, t11) { + var o11 = n10.state.selection.ranges.some(function(n11) { + return n11.from == e23 && n11.to == t11; + }); + r10.add(e23, t11, o11 ? I1 : N1); + }); + } + return r10.finish(); + } }]), e20; + }(), { decorations: function(e20) { + return e20.decorations; + } }); + function q1(e20) { + return function(t10) { + var n10 = t10.state.field(T1, false); + return n10 && n10.query.spec.valid ? e20(t10, n10) : K1(t10); + }; + } + var z1 = q1(function(e20, t10) { + var n10 = t10.query, r10 = e20.state.selection.main.to, o10 = n10.nextMatch(e20.state, r10, r10); + if (!o10) + return false; + var i10 = $F.single(o10.from, o10.to), a10 = e20.state.facet(w1); + return e20.dispatch({ selection: i10, effects: [t2(e20, o10), a10.scrollToMatch(i10.main, e20)], userEvent: "select.search" }), J1(e20), true; + }); + var B1 = q1(function(e20, t10) { + var n10 = t10.query, r10 = e20.state, o10 = r10.selection.main.from, i10 = n10.prevMatch(r10, o10, o10); + if (!i10) + return false; + var a10 = $F.single(i10.from, i10.to), s10 = e20.state.facet(w1); + return e20.dispatch({ selection: a10, effects: [t2(e20, i10), s10.scrollToMatch(a10.main, e20)], userEvent: "select.search" }), J1(e20), true; + }); + var L1 = q1(function(e20, t10) { + var n10 = t10.query.matchAll(e20.state, 1e3); + return !(!n10 || !n10.length) && (e20.dispatch({ selection: $F.create(n10.map(function(e21) { + return $F.range(e21.from, e21.to); + })), userEvent: "select.search.matches" }), true); + }); + var F1 = q1(function(e20, t10) { + var n10 = t10.query, r10 = e20.state, o10 = r10.selection.main, i10 = o10.from, a10 = o10.to; + if (r10.readOnly) + return false; + var s10 = n10.nextMatch(r10, i10, i10); + if (!s10) + return false; + var c10, l10, u10 = [], f10 = []; + if (s10.from == i10 && s10.to == a10 && (l10 = r10.toText(n10.getReplacement(s10)), u10.push({ from: s10.from, to: s10.to, insert: l10 }), s10 = n10.nextMatch(r10, s10.from, s10.to), f10.push(zJ.announce.of(r10.phrase("replaced match on line $", r10.doc.lineAt(i10).number) + "."))), s10) { + var d10 = 0 == u10.length || u10[0].from >= s10.to ? 0 : s10.to - s10.from - l10.length; + c10 = $F.single(s10.from - d10, s10.to - d10), f10.push(t2(e20, s10)), f10.push(r10.facet(w1).scrollToMatch(c10.main, e20)); + } + return e20.dispatch({ changes: u10, selection: c10, effects: f10, userEvent: "input.replace" }), true; + }); + var V1 = q1(function(e20, t10) { + var n10 = t10.query; + if (e20.state.readOnly) + return false; + var r10 = n10.matchAll(e20.state, 1e9).map(function(e21) { + return { from: e21.from, to: e21.to, insert: n10.getReplacement(e21) }; + }); + if (!r10.length) + return false; + var o10 = e20.state.phrase("replaced $ matches", r10.length) + "."; + return e20.dispatch({ changes: r10, effects: zJ.announce.of(o10), userEvent: "input.replace.all" }), true; + }); + function H1(e20) { + return e20.state.facet(w1).createPanel(e20); + } + function W1(e20, t10) { + var n10, r10, o10, i10, a10, s10 = e20.selection.main, c10 = s10.empty || s10.to > s10.from + 100 ? "" : e20.sliceDoc(s10.from, s10.to); + if (t10 && !c10) + return t10; + var l10 = e20.facet(w1); + return new j1({ search: (null !== (n10 = null == t10 ? void 0 : t10.literal) && void 0 !== n10 ? n10 : l10.literal) ? c10 : c10.replace(/\n/g, "\\n"), caseSensitive: null !== (r10 = null == t10 ? void 0 : t10.caseSensitive) && void 0 !== r10 ? r10 : l10.caseSensitive, literal: null !== (o10 = null == t10 ? void 0 : t10.literal) && void 0 !== o10 ? o10 : l10.literal, regexp: null !== (i10 = null == t10 ? void 0 : t10.regexp) && void 0 !== i10 ? i10 : l10.regexp, wholeWord: null !== (a10 = null == t10 ? void 0 : t10.wholeWord) && void 0 !== a10 ? a10 : l10.wholeWord }); + } + function U1(e20) { + var t10 = nG(e20, H1); + return t10 && t10.dom.querySelector("[main-field]"); + } + function J1(e20) { + var t10 = U1(e20); + t10 && t10 == e20.root.activeElement && t10.select(); + } + var K1 = function(e20) { + var t10 = e20.state.field(T1, false); + if (t10 && t10.panel) { + var n10 = U1(e20); + if (n10 && n10 != e20.root.activeElement) { + var r10 = W1(e20.state, t10.query.spec); + r10.valid && e20.dispatch({ effects: A1.of(r10) }), n10.focus(), n10.select(); + } + } else + e20.dispatch({ effects: [P1.of(true), t10 ? A1.of(W1(e20.state, t10.query.spec)) : oV.appendConfig.of(r2)] }); + return true; + }; + var G1 = function(e20) { + var t10 = e20.state.field(T1, false); + if (!t10 || !t10.panel) + return false; + var n10 = nG(e20, H1); + return n10 && n10.dom.contains(e20.root.activeElement) && e20.focus(), e20.dispatch({ effects: P1.of(false) }), true; + }; + var Q1 = [{ key: "Mod-f", run: K1, scope: "editor search-panel" }, { key: "F3", run: z1, shift: B1, scope: "editor search-panel", preventDefault: true }, { key: "Mod-g", run: z1, shift: B1, scope: "editor search-panel", preventDefault: true }, { key: "Escape", run: G1, scope: "editor search-panel" }, { key: "Mod-Shift-l", run: function(e20) { + var t10 = e20.state, n10 = e20.dispatch, r10 = t10.selection; + if (r10.ranges.length > 1 || r10.main.empty) + return false; + for (var o10 = r10.main, i10 = o10.from, a10 = o10.to, s10 = [], c10 = 0, l10 = new n1(t10.doc, t10.sliceDoc(i10, a10)); !l10.next().done; ) { + if (s10.length > 1e3) + return false; + l10.value.from == i10 && (c10 = s10.length), s10.push($F.range(l10.value.from, l10.value.to)); + } + return n10(t10.update({ selection: $F.create(s10, c10), userEvent: "select.search.matches" })), true; + } }, { key: "Mod-Alt-g", run: function(e20) { + var t10 = nG(e20, u1); + if (!t10) { + var n10 = [f1.of(true)]; + null == e20.state.field(d1, false) && n10.push(oV.appendConfig.of([d1, h1])), e20.dispatch({ effects: n10 }), t10 = nG(e20, u1); + } + return t10 && t10.dom.querySelector("input").select(), true; + } }, { key: "Mod-d", run: function(e20) { + var t10 = e20.state, n10 = e20.dispatch, r10 = t10.selection.ranges; + if (r10.some(function(e21) { + return e21.from === e21.to; + })) + return function(e21) { + var t11 = e21.state, n11 = e21.dispatch, r11 = t11.selection, o11 = $F.create(r11.ranges.map(function(e23) { + return t11.wordAt(e23.head) || $F.cursor(e23.head); + }), r11.mainIndex); + return !o11.eq(r11) && (n11(t11.update({ selection: o11 })), true); + }({ state: t10, dispatch: n10 }); + var o10 = t10.sliceDoc(r10[0].from, r10[0].to); + if (t10.selection.ranges.some(function(e21) { + return t10.sliceDoc(e21.from, e21.to) != o10; + })) + return false; + var i10 = function(e21, t11) { + for (var n11, r11 = e21.selection, o11 = r11.main, i11 = r11.ranges, a10 = e21.wordAt(o11.head), s10 = a10 && a10.from == o11.from && a10.to == o11.to, c10 = function(n12, r12) { + if (r12.next(), !r12.done) { + if (n12 && i11.some(function(e23) { + return e23.from == r12.value.from; + })) + return l10 = n12, u10 = r12, 0; + if (s10) { + var o12 = e21.wordAt(r12.value.from); + if (!o12 || o12.from != r12.value.from || o12.to != r12.value.to) + return l10 = n12, u10 = r12, 0; + } + return { v: r12.value }; + } + if (n12) + return { v: null }; + r12 = new n1(e21.doc, t11, 0, Math.max(0, i11[i11.length - 1].from - 1)), l10 = n12 = true, u10 = r12; + }, l10 = false, u10 = new n1(e21.doc, t11, i11[i11.length - 1].to); ; ) + if (0 !== (n11 = c10(l10, u10)) && n11) + return n11.v; + }(t10, o10); + return !!i10 && (n10(t10.update({ selection: t10.selection.addRange($F.range(i10.from, i10.to), false), effects: zJ.scrollIntoView(i10.to) })), true); + }, preventDefault: true }]; + var Y1 = function() { + function e20(t10) { + var n10 = this; + No(this, e20), this.view = t10; + var r10 = this.query = t10.state.field(T1).query.spec; + function o10(e21, t11, n11) { + return JZ("button", { class: "cm-button", name: e21, onclick: t11, type: "button" }, n11); + } + this.commit = this.commit.bind(this), this.searchField = JZ("input", { value: r10.search, placeholder: X1(t10, "Find"), "aria-label": X1(t10, "Find"), class: "cm-textfield", name: "search", form: "", "main-field": "true", onchange: this.commit, onkeyup: this.commit }), this.replaceField = JZ("input", { value: r10.replace, placeholder: X1(t10, "Replace"), "aria-label": X1(t10, "Replace"), class: "cm-textfield", name: "replace", form: "", onchange: this.commit, onkeyup: this.commit }), this.caseField = JZ("input", { type: "checkbox", name: "case", form: "", checked: r10.caseSensitive, onchange: this.commit }), this.reField = JZ("input", { type: "checkbox", name: "re", form: "", checked: r10.regexp, onchange: this.commit }), this.wordField = JZ("input", { type: "checkbox", name: "word", form: "", checked: r10.wholeWord, onchange: this.commit }), this.dom = JZ("div", { onkeydown: function(e21) { + return n10.keydown(e21); + }, class: "cm-search" }, [this.searchField, o10("next", function() { + return z1(t10); + }, [X1(t10, "next")]), o10("prev", function() { + return B1(t10); + }, [X1(t10, "previous")]), o10("select", function() { + return L1(t10); + }, [X1(t10, "all")]), JZ("label", null, [this.caseField, X1(t10, "match case")]), JZ("label", null, [this.reField, X1(t10, "regexp")]), JZ("label", null, [this.wordField, X1(t10, "by word")])].concat(Bo(t10.state.readOnly ? [] : [JZ("br"), this.replaceField, o10("replace", function() { + return F1(t10); + }, [X1(t10, "replace")]), o10("replaceAll", function() { + return V1(t10); + }, [X1(t10, "replace all")])]), [JZ("button", { name: "close", onclick: function() { + return G1(t10); + }, "aria-label": X1(t10, "close"), type: "button" }, ["\xD7"])])); + } + return Do(e20, [{ key: "commit", value: function() { + var e21 = new j1({ search: this.searchField.value, caseSensitive: this.caseField.checked, regexp: this.reField.checked, wholeWord: this.wordField.checked, replace: this.replaceField.value }); + e21.eq(this.query) || (this.query = e21, this.view.dispatch({ effects: A1.of(e21) })); + } }, { key: "keydown", value: function(e21) { + !function(e23, t10, n10) { + return XJ(GJ(e23.state), t10, e23, n10); + }(this.view, e21, "search-panel") ? 13 == e21.keyCode && e21.target == this.searchField ? (e21.preventDefault(), (e21.shiftKey ? B1 : z1)(this.view)) : 13 == e21.keyCode && e21.target == this.replaceField && (e21.preventDefault(), F1(this.view)) : e21.preventDefault(); + } }, { key: "update", value: function(e21) { + var t10, n10 = bo(e21.transactions); + try { + for (n10.s(); !(t10 = n10.n()).done; ) { + var r10, o10 = bo(t10.value.effects); + try { + for (o10.s(); !(r10 = o10.n()).done; ) { + var i10 = r10.value; + i10.is(A1) && !i10.value.eq(this.query) && this.setQuery(i10.value); + } + } catch (e23) { + o10.e(e23); + } finally { + o10.f(); + } + } + } catch (e23) { + n10.e(e23); + } finally { + n10.f(); + } + } }, { key: "setQuery", value: function(e21) { + this.query = e21, this.searchField.value = e21.search, this.replaceField.value = e21.replace, this.caseField.checked = e21.caseSensitive, this.reField.checked = e21.regexp, this.wordField.checked = e21.wholeWord; + } }, { key: "mount", value: function() { + this.searchField.select(); + } }, { key: "pos", get: function() { + return 80; + } }, { key: "top", get: function() { + return this.view.state.facet(w1).top; + } }]), e20; + }(); + function X1(e20, t10) { + return e20.state.phrase(t10); + } + var Z1 = 30; + var e22 = /[\s\.,:;?!]/; + function t2(e20, t10) { + var n10 = t10.from, r10 = t10.to, o10 = e20.state.doc.lineAt(n10), i10 = e20.state.doc.lineAt(r10).to, a10 = Math.max(o10.from, n10 - Z1), s10 = Math.min(i10, r10 + Z1), c10 = e20.state.sliceDoc(a10, s10); + if (a10 != o10.from) { + for (var l10 = 0; l10 < Z1; l10++) + if (!e22.test(c10[l10 + 1]) && e22.test(c10[l10])) { + c10 = c10.slice(l10); + break; + } + } + if (s10 != i10) { + for (var u10 = c10.length - 1; u10 > c10.length - Z1; u10--) + if (!e22.test(c10[u10 - 1]) && e22.test(c10[u10])) { + c10 = c10.slice(0, u10); + break; + } + } + return zJ.announce.of("".concat(e20.state.phrase("current match"), ". ").concat(c10, " ").concat(e20.state.phrase("on line"), " ").concat(o10.number, ".")); + } + var n2 = zJ.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" } }); + var r2 = [T1, LF.low(D1), n2]; + var o2 = function() { + function e20(t10, n10, r10) { + No(this, e20), this.state = t10, this.pos = n10, this.explicit = r10, this.abortListeners = []; + } + return Do(e20, [{ key: "tokenBefore", value: function(e21) { + for (var t10 = zQ(this.state).resolveInner(this.pos, -1); t10 && e21.indexOf(t10.name) < 0; ) + t10 = t10.parent; + return t10 ? { from: t10.from, to: this.pos, text: this.state.sliceDoc(t10.from, this.pos), type: t10.type } : null; + } }, { key: "matchBefore", value: function(e21) { + var t10 = this.state.doc.lineAt(this.pos), n10 = Math.max(t10.from, this.pos - 250), r10 = t10.text.slice(n10 - t10.from, this.pos - t10.from), o10 = r10.search(l2(e21, false)); + return o10 < 0 ? null : { from: n10 + o10, to: this.pos, text: r10.slice(o10) }; + } }, { key: "aborted", get: function() { + return null == this.abortListeners; + } }, { key: "addEventListener", value: function(e21, t10) { + "abort" == e21 && this.abortListeners && this.abortListeners.push(t10); + } }]), e20; + }(); + function i2(e20) { + var t10 = Object.keys(e20).join(""), n10 = /\w/.test(t10); + return n10 && (t10 = t10.replace(/\w/g, "")), "[".concat(n10 ? "\\w" : "").concat(t10.replace(/[^\w\s]/g, "\\$&"), "]"); + } + function a2(e20) { + var t10 = e20.map(function(e21) { + return "string" == typeof e21 ? { label: e21 } : e21; + }), n10 = t10.every(function(e21) { + return /^\w+$/.test(e21.label); + }) ? [/\w*$/, /\w+$/] : function(e21) { + var t11, n11 = /* @__PURE__ */ Object.create(null), r11 = /* @__PURE__ */ Object.create(null), o11 = bo(e21); + try { + for (o11.s(); !(t11 = o11.n()).done; ) { + var i11 = t11.value.label; + n11[i11[0]] = true; + for (var a10 = 1; a10 < i11.length; a10++) + r11[i11[a10]] = true; + } + } catch (e23) { + o11.e(e23); + } finally { + o11.f(); + } + var s10 = i2(n11) + i2(r11) + "*$"; + return [new RegExp("^" + s10), new RegExp(s10)]; + }(t10), r10 = jo(n10, 2), o10 = r10[0], i10 = r10[1]; + return function(e21) { + var n11 = e21.matchBefore(i10); + return n11 || e21.explicit ? { from: n11 ? n11.from : e21.pos, options: t10, validFor: o10 } : null; + }; + } + var s2 = Do(function e16(t10, n10, r10, o10) { + No(this, e16), this.completion = t10, this.source = n10, this.match = r10, this.score = o10; + }); + function c2(e20) { + return e20.selection.main.from; + } + function l2(e20, t10) { + var n10, r10 = e20.source, o10 = t10 && "^" != r10[0], i10 = "$" != r10[r10.length - 1]; + return o10 || i10 ? new RegExp("".concat(o10 ? "^" : "", "(?:").concat(r10, ")").concat(i10 ? "$" : ""), null !== (n10 = e20.flags) && void 0 !== n10 ? n10 : e20.ignoreCase ? "i" : "") : e20; + } + var u2 = tV.define(); + var f2 = /* @__PURE__ */ new WeakMap(); + function d2(e20) { + if (!Array.isArray(e20)) + return e20; + var t10 = f2.get(e20); + return t10 || f2.set(e20, t10 = a2(e20)), t10; + } + var h2 = oV.define(); + var v2 = oV.define(); + var p2 = function() { + function e20(t10) { + No(this, e20), this.pattern = t10, this.chars = [], this.folded = [], this.any = [], this.precise = [], this.byWord = [], this.score = 0, this.matched = []; + for (var n10 = 0; n10 < t10.length; ) { + var r10 = dF(t10, n10), o10 = vF(r10); + this.chars.push(r10); + var i10 = t10.slice(n10, n10 + o10), a10 = i10.toUpperCase(); + this.folded.push(dF(a10 == i10 ? i10.toLowerCase() : a10, 0)), n10 += o10; + } + this.astral = t10.length != this.chars.length; + } + return Do(e20, [{ key: "ret", value: function(e21, t10) { + return this.score = e21, this.matched = t10, true; + } }, { key: "match", value: function(e21) { + if (0 == this.pattern.length) + return this.ret(-100, []); + if (e21.length < this.pattern.length) + return false; + var t10 = this.chars, n10 = this.folded, r10 = this.any, o10 = this.precise, i10 = this.byWord; + if (1 == t10.length) { + var a10 = dF(e21, 0), s10 = vF(a10), c10 = s10 == e21.length ? 0 : -100; + if (a10 == t10[0]) + ; + else { + if (a10 != n10[0]) + return false; + c10 += -200; + } + return this.ret(c10, [0, s10]); + } + var l10 = e21.indexOf(this.pattern); + if (0 == l10) + return this.ret(e21.length == this.pattern.length ? 0 : -100, [0, this.pattern.length]); + var u10 = t10.length, f10 = 0; + if (l10 < 0) { + for (var d10 = 0, h10 = Math.min(e21.length, 200); d10 < h10 && f10 < u10; ) { + var v10 = dF(e21, d10); + v10 != t10[f10] && v10 != n10[f10] || (r10[f10++] = d10), d10 += vF(v10); + } + if (f10 < u10) + return false; + } + for (var p10 = 0, m10 = 0, g10 = false, y10 = 0, b10 = -1, k10 = -1, w10 = /[a-z]/.test(e21), x10 = true, j10 = 0, S10 = Math.min(e21.length, 200), C10 = 0; j10 < S10 && m10 < u10; ) { + var $10 = dF(e21, j10); + l10 < 0 && (p10 < u10 && $10 == t10[p10] && (o10[p10++] = j10), y10 < u10 && ($10 == t10[y10] || $10 == n10[y10] ? (0 == y10 && (b10 = j10), k10 = j10 + 1, y10++) : y10 = 0)); + var _10 = void 0, O10 = $10 < 255 ? $10 >= 48 && $10 <= 57 || $10 >= 97 && $10 <= 122 ? 2 : $10 >= 65 && $10 <= 90 ? 1 : 0 : (_10 = hF($10)) != _10.toLowerCase() ? 1 : _10 != _10.toUpperCase() ? 2 : 0; + (!j10 || 1 == O10 && w10 || 0 == C10 && 0 != O10) && (t10[m10] == $10 || n10[m10] == $10 && (g10 = true) ? i10[m10++] = j10 : i10.length && (x10 = false)), C10 = O10, j10 += vF($10); + } + return m10 == u10 && 0 == i10[0] && x10 ? this.result((g10 ? -200 : 0) - 100, i10, e21) : y10 == u10 && 0 == b10 ? this.ret(-200 - e21.length + (k10 == e21.length ? 0 : -100), [0, k10]) : l10 > -1 ? this.ret(-700 - e21.length, [l10, l10 + this.pattern.length]) : y10 == u10 ? this.ret(-900 - e21.length, [b10, k10]) : m10 == u10 ? this.result((g10 ? -200 : 0) - 100 - 700 + (x10 ? 0 : -1100), i10, e21) : 2 != t10.length && this.result((r10[0] ? -700 : 0) - 200 - 1100, r10, e21); + } }, { key: "result", value: function(e21, t10, n10) { + var r10, o10 = [], i10 = 0, a10 = bo(t10); + try { + for (a10.s(); !(r10 = a10.n()).done; ) { + var s10 = r10.value, c10 = s10 + (this.astral ? vF(dF(n10, s10)) : 1); + i10 && o10[i10 - 1] == s10 ? o10[i10 - 1] = c10 : (o10[i10++] = s10, o10[i10++] = c10); + } + } catch (e23) { + a10.e(e23); + } finally { + a10.f(); + } + return this.ret(e21 - n10.length, o10); + } }]), e20; + }(); + var m2 = MF.define({ combine: function(e20) { + return gV(e20, { activateOnTyping: true, selectOnOpen: true, override: null, closeOnBlur: true, maxRenderedOptions: 100, defaultKeymap: true, tooltipClass: function() { + return ""; + }, optionClass: function() { + return ""; + }, aboveCursor: false, icons: true, addToOptions: [], positionInfo: y2, compareCompletions: function(e21, t10) { + return e21.label.localeCompare(t10.label); + }, interactionDelay: 75, updateSyncTime: 100 }, { defaultKeymap: function(e21, t10) { + return e21 && t10; + }, closeOnBlur: function(e21, t10) { + return e21 && t10; + }, icons: function(e21, t10) { + return e21 && t10; + }, tooltipClass: function(e21, t10) { + return function(n10) { + return g2(e21(n10), t10(n10)); + }; + }, optionClass: function(e21, t10) { + return function(n10) { + return g2(e21(n10), t10(n10)); + }; + }, addToOptions: function(e21, t10) { + return e21.concat(t10); + } }); + } }); + function g2(e20, t10) { + return e20 ? t10 ? e20 + " " + t10 : e20 : t10; + } + function y2(e20, t10, n10, r10, o10, i10) { + var a10, s10, c10 = e20.textDirection == rW.RTL, l10 = c10, u10 = false, f10 = "top", d10 = t10.left - o10.left, h10 = o10.right - t10.right, v10 = r10.right - r10.left, p10 = r10.bottom - r10.top; + if (l10 && d10 < Math.min(v10, h10) ? l10 = false : !l10 && h10 < Math.min(v10, d10) && (l10 = true), v10 <= (l10 ? d10 : h10)) + a10 = Math.max(o10.top, Math.min(n10.top, o10.bottom - p10)) - t10.top, s10 = Math.min(400, l10 ? d10 : h10); + else { + u10 = true, s10 = Math.min(400, (c10 ? t10.right : o10.right - t10.left) - 30); + var m10 = o10.bottom - t10.bottom; + m10 >= p10 || m10 > t10.top ? a10 = n10.bottom - t10.top : (f10 = "bottom", a10 = t10.bottom - n10.top); + } + var g10 = (t10.bottom - t10.top) / i10.offsetHeight, y10 = (t10.right - t10.left) / i10.offsetWidth; + return { style: "".concat(f10, ": ").concat(a10 / g10, "px; max-width: ").concat(s10 / y10, "px"), class: "cm-completionInfo-" + (u10 ? c10 ? "left-narrow" : "right-narrow" : l10 ? "left" : "right") }; + } + function b2(e20, t10, n10) { + if (e20 <= n10) + return { from: 0, to: e20 }; + if (t10 < 0 && (t10 = 0), t10 <= e20 >> 1) { + var r10 = Math.floor(t10 / n10); + return { from: r10 * n10, to: (r10 + 1) * n10 }; + } + var o10 = Math.floor((e20 - t10) / n10); + return { from: e20 - (o10 + 1) * n10, to: e20 - o10 * n10 }; + } + var k2 = function() { + function e20(t10, n10, r10) { + var o10 = this; + No(this, e20), this.view = t10, this.stateField = n10, this.applyCompletion = r10, this.info = null, this.infoDestroy = null, this.placeInfoReq = { read: function() { + return o10.measureInfo(); + }, write: function(e21) { + return o10.placeInfo(e21); + }, key: this }, this.space = null, this.currentClass = ""; + var i10 = t10.state.field(n10), a10 = i10.open, s10 = a10.options, c10 = a10.selected, l10 = t10.state.facet(m2); + this.optionContent = function(e21) { + var t11 = e21.addToOptions.slice(); + return e21.icons && t11.push({ render: function(e23) { + var t12, n11 = document.createElement("div"); + return n11.classList.add("cm-completionIcon"), e23.type && (t12 = n11.classList).add.apply(t12, Bo(e23.type.split(/\s+/g).map(function(e24) { + return "cm-completionIcon-" + e24; + }))), n11.setAttribute("aria-hidden", "true"), n11; + }, position: 20 }), t11.push({ render: function(e23, t12, n11, r11) { + var o11 = document.createElement("span"); + o11.className = "cm-completionLabel"; + for (var i11 = e23.displayLabel || e23.label, a11 = 0, s11 = 0; s11 < r11.length; ) { + var c11 = r11[s11++], l11 = r11[s11++]; + c11 > a11 && o11.appendChild(document.createTextNode(i11.slice(a11, c11))); + var u10 = o11.appendChild(document.createElement("span")); + u10.appendChild(document.createTextNode(i11.slice(c11, l11))), u10.className = "cm-completionMatchedText", a11 = l11; + } + return a11 < i11.length && o11.appendChild(document.createTextNode(i11.slice(a11))), o11; + }, position: 50 }, { render: function(e23) { + if (!e23.detail) + return null; + var t12 = document.createElement("span"); + return t12.className = "cm-completionDetail", t12.textContent = e23.detail, t12; + }, position: 80 }), t11.sort(function(e23, t12) { + return e23.position - t12.position; + }).map(function(e23) { + return e23.render; + }); + }(l10), this.optionClass = l10.optionClass, this.tooltipClass = l10.tooltipClass, this.range = b2(s10.length, c10, l10.maxRenderedOptions), this.dom = document.createElement("div"), this.dom.className = "cm-tooltip-autocomplete", this.updateTooltipClass(t10.state), this.dom.addEventListener("mousedown", function(e21) { + for (var r11, i11 = t10.state.field(n10).open.options, a11 = e21.target; a11 && a11 != o10.dom; a11 = a11.parentNode) + if ("LI" == a11.nodeName && (r11 = /-(\d+)$/.exec(a11.id)) && +r11[1] < i11.length) + return o10.applyCompletion(t10, i11[+r11[1]]), void e21.preventDefault(); + }), this.dom.addEventListener("focusout", function(e21) { + var n11 = t10.state.field(o10.stateField, false); + n11 && n11.tooltip && t10.state.facet(m2).closeOnBlur && e21.relatedTarget != t10.contentDOM && t10.dispatch({ effects: v2.of(null) }); + }), this.showOptions(s10, i10.id); + } + return Do(e20, [{ key: "mount", value: function() { + this.updateSel(); + } }, { key: "showOptions", value: function(e21, t10) { + var n10 = this; + this.list && this.list.remove(), this.list = this.dom.appendChild(this.createListBox(e21, t10, this.range)), this.list.addEventListener("scroll", function() { + n10.info && n10.view.requestMeasure(n10.placeInfoReq); + }); + } }, { key: "update", value: function(e21) { + var t10, n10 = e21.state.field(this.stateField), r10 = e21.startState.field(this.stateField); + if (this.updateTooltipClass(e21.state), n10 != r10) { + var o10 = n10.open, i10 = o10.options, a10 = o10.selected, s10 = o10.disabled; + r10.open && r10.open.options == i10 || (this.range = b2(i10.length, a10, e21.state.facet(m2).maxRenderedOptions), this.showOptions(i10, n10.id)), this.updateSel(), s10 != (null === (t10 = r10.open) || void 0 === t10 ? void 0 : t10.disabled) && this.dom.classList.toggle("cm-tooltip-autocomplete-disabled", !!s10); + } + } }, { key: "updateTooltipClass", value: function(e21) { + var t10 = this.tooltipClass(e21); + if (t10 != this.currentClass) { + var n10, r10 = bo(this.currentClass.split(" ")); + try { + for (r10.s(); !(n10 = r10.n()).done; ) { + var o10 = n10.value; + o10 && this.dom.classList.remove(o10); + } + } catch (e23) { + r10.e(e23); + } finally { + r10.f(); + } + var i10, a10 = bo(t10.split(" ")); + try { + for (a10.s(); !(i10 = a10.n()).done; ) { + var s10 = i10.value; + s10 && this.dom.classList.add(s10); + } + } catch (e23) { + a10.e(e23); + } finally { + a10.f(); + } + this.currentClass = t10; + } + } }, { key: "positioned", value: function(e21) { + this.space = e21, this.info && this.view.requestMeasure(this.placeInfoReq); + } }, { key: "updateSel", value: function() { + var e21 = this, t10 = this.view.state.field(this.stateField), n10 = t10.open; + if ((n10.selected > -1 && n10.selected < this.range.from || n10.selected >= this.range.to) && (this.range = b2(n10.options.length, n10.selected, this.view.state.facet(m2).maxRenderedOptions), this.showOptions(n10.options, t10.id)), this.updateSelectedOption(n10.selected)) { + this.destroyInfo(); + var r10 = n10.options[n10.selected].completion, o10 = r10.info; + if (!o10) + return; + var i10 = "string" == typeof o10 ? document.createTextNode(o10) : o10(r10); + if (!i10) + return; + "then" in i10 ? i10.then(function(n11) { + n11 && e21.view.state.field(e21.stateField, false) == t10 && e21.addInfoPane(n11, r10); + }).catch(function(t11) { + return qW(e21.view.state, t11, "completion info"); + }) : this.addInfoPane(i10, r10); + } + } }, { key: "addInfoPane", value: function(e21, t10) { + this.destroyInfo(); + var n10 = this.info = document.createElement("div"); + if (n10.className = "cm-tooltip cm-completionInfo", null != e21.nodeType) + n10.appendChild(e21), this.infoDestroy = null; + else { + var r10 = e21.dom, o10 = e21.destroy; + n10.appendChild(r10), this.infoDestroy = o10 || null; + } + this.dom.appendChild(n10), this.view.requestMeasure(this.placeInfoReq); + } }, { key: "updateSelectedOption", value: function(e21) { + for (var t10 = null, n10 = this.list.firstChild, r10 = this.range.from; n10; n10 = n10.nextSibling, r10++) + "LI" == n10.nodeName && n10.id ? r10 == e21 ? n10.hasAttribute("aria-selected") || (n10.setAttribute("aria-selected", "true"), t10 = n10) : n10.hasAttribute("aria-selected") && n10.removeAttribute("aria-selected") : r10--; + return t10 && function(e23, t11) { + var n11 = e23.getBoundingClientRect(), r11 = t11.getBoundingClientRect(), o10 = n11.height / e23.offsetHeight; + r11.top < n11.top ? e23.scrollTop -= (n11.top - r11.top) / o10 : r11.bottom > n11.bottom && (e23.scrollTop += (r11.bottom - n11.bottom) / o10); + }(this.list, t10), t10; + } }, { key: "measureInfo", value: function() { + var e21 = this.dom.querySelector("[aria-selected]"); + if (!e21 || !this.info) + return null; + var t10 = this.dom.getBoundingClientRect(), n10 = this.info.getBoundingClientRect(), r10 = e21.getBoundingClientRect(), o10 = this.space; + if (!o10) { + var i10 = this.dom.ownerDocument.defaultView || window; + o10 = { left: 0, top: 0, right: i10.innerWidth, bottom: i10.innerHeight }; + } + return r10.top > Math.min(o10.bottom, t10.bottom) - 10 || r10.bottom < Math.max(o10.top, t10.top) + 10 ? null : this.view.state.facet(m2).positionInfo(this.view, t10, r10, n10, o10, this.dom); + } }, { key: "placeInfo", value: function(e21) { + this.info && (e21 ? (e21.style && (this.info.style.cssText = e21.style), this.info.className = "cm-tooltip cm-completionInfo " + (e21.class || "")) : this.info.style.cssText = "top: -1e6px"); + } }, { key: "createListBox", value: function(e21, t10, n10) { + var r10 = document.createElement("ul"); + r10.id = t10, r10.setAttribute("role", "listbox"), r10.setAttribute("aria-expanded", "true"), r10.setAttribute("aria-label", this.view.state.phrase("Completions")); + for (var o10 = null, i10 = n10.from; i10 < n10.to; i10++) { + var a10 = e21[i10], s10 = a10.completion, c10 = a10.match, l10 = s10.section; + if (l10) { + var u10 = "string" == typeof l10 ? l10 : l10.name; + if (u10 != o10 && (i10 > n10.from || 0 == n10.from)) + if (o10 = u10, "string" != typeof l10 && l10.header) + r10.appendChild(l10.header(l10)); + else + r10.appendChild(document.createElement("completion-section")).textContent = u10; + } + var f10 = r10.appendChild(document.createElement("li")); + f10.id = t10 + "-" + i10, f10.setAttribute("role", "option"); + var d10 = this.optionClass(s10); + d10 && (f10.className = d10); + var h10, v10 = bo(this.optionContent); + try { + for (v10.s(); !(h10 = v10.n()).done; ) { + var p10 = (0, h10.value)(s10, this.view.state, this.view, c10); + p10 && f10.appendChild(p10); + } + } catch (e23) { + v10.e(e23); + } finally { + v10.f(); + } + } + return n10.from && r10.classList.add("cm-completionListIncompleteTop"), n10.to < e21.length && r10.classList.add("cm-completionListIncompleteBottom"), r10; + } }, { key: "destroyInfo", value: function() { + this.info && (this.infoDestroy && this.infoDestroy(), this.info.remove(), this.info = null); + } }, { key: "destroy", value: function() { + this.destroyInfo(); + } }]), e20; + }(); + function w2(e20, t10) { + return function(n10) { + return new k2(n10, e20, t10); + }; + } + function x2(e20) { + return 100 * (e20.boost || 0) + (e20.apply ? 10 : 0) + (e20.info ? 5 : 0) + (e20.type ? 1 : 0); + } + var j2 = function() { + function e20(t10, n10, r10, o10, i10, a10) { + No(this, e20), this.options = t10, this.attrs = n10, this.tooltip = r10, this.timestamp = o10, this.selected = i10, this.disabled = a10; + } + return Do(e20, [{ key: "setSelected", value: function(t10, n10) { + return t10 == this.selected || t10 >= this.options.length ? this : new e20(this.options, $2(n10, t10), this.tooltip, this.timestamp, t10, this.disabled); + } }, { key: "map", value: function(t10) { + return new e20(this.options, this.attrs, Object.assign(Object.assign({}, this.tooltip), { pos: t10.mapPos(this.tooltip.pos) }), this.timestamp, this.selected, this.disabled); + } }], [{ key: "build", value: function(t10, n10, r10, o10, i10) { + var a10 = function(e21, t11) { + var n11, r11 = [], o11 = null, i11 = function(e23) { + r11.push(e23); + var t12 = e23.completion.section; + if (t12) { + o11 || (o11 = []); + var n12 = "string" == typeof t12 ? t12 : t12.name; + o11.some(function(e24) { + return e24.name == n12; + }) || o11.push("string" == typeof t12 ? { name: n12 } : t12); + } + }, a11 = bo(e21); + try { + for (a11.s(); !(n11 = a11.n()).done; ) { + var s11 = n11.value; + if (s11.hasResult()) { + var c11 = s11.result.getMatch; + if (false === s11.result.filter) { + var l11, u10 = bo(s11.result.options); + try { + for (u10.s(); !(l11 = u10.n()).done; ) { + var f10 = l11.value; + i11(new s2(f10, s11.source, c11 ? c11(f10) : [], 1e9 - r11.length)); + } + } catch (e23) { + u10.e(e23); + } finally { + u10.f(); + } + } else { + var d10, h10 = new p2(t11.sliceDoc(s11.from, s11.to)), v10 = bo(s11.result.options); + try { + for (v10.s(); !(d10 = v10.n()).done; ) { + var p10 = d10.value; + if (h10.match(p10.label)) { + var m10 = p10.displayLabel ? c11 ? c11(p10, h10.matched) : [] : h10.matched; + i11(new s2(p10, s11.source, m10, h10.score + (p10.boost || 0))); + } + } + } catch (e23) { + v10.e(e23); + } finally { + v10.f(); + } + } + } + } + } catch (e23) { + a11.e(e23); + } finally { + a11.f(); + } + if (o11) { + var g10, y10 = /* @__PURE__ */ Object.create(null), b10 = 0, k10 = bo(o11.sort(function(e23, t12) { + var n12, r12; + return (null !== (n12 = e23.rank) && void 0 !== n12 ? n12 : 1e9) - (null !== (r12 = t12.rank) && void 0 !== r12 ? r12 : 1e9) || (e23.name < t12.name ? -1 : 1); + })); + try { + for (k10.s(); !(g10 = k10.n()).done; ) { + var w10 = g10.value; + b10 -= 1e5, y10[w10.name] = b10; + } + } catch (e23) { + k10.e(e23); + } finally { + k10.f(); + } + var x10, j10 = bo(r11); + try { + for (j10.s(); !(x10 = j10.n()).done; ) { + var S10 = x10.value, C10 = S10.completion.section; + C10 && (S10.score += y10["string" == typeof C10 ? C10 : C10.name]); + } + } catch (e23) { + j10.e(e23); + } finally { + j10.f(); + } + } + var $10, _10 = [], O10 = null, M10 = t11.facet(m2).compareCompletions, E10 = bo(r11.sort(function(e23, t12) { + return t12.score - e23.score || M10(e23.completion, t12.completion); + })); + try { + for (E10.s(); !($10 = E10.n()).done; ) { + var A10 = $10.value, P10 = A10.completion; + !O10 || O10.label != P10.label || O10.detail != P10.detail || null != O10.type && null != P10.type && O10.type != P10.type || O10.apply != P10.apply || O10.boost != P10.boost ? _10.push(A10) : x2(A10.completion) > x2(O10) && (_10[_10.length - 1] = A10), O10 = A10.completion; + } + } catch (e23) { + E10.e(e23); + } finally { + E10.f(); + } + return _10; + }(t10, n10); + if (!a10.length) + return o10 && t10.some(function(e21) { + return 1 == e21.state; + }) ? new e20(o10.options, o10.attrs, o10.tooltip, o10.timestamp, o10.selected, true) : null; + var s10 = n10.facet(m2).selectOnOpen ? 0 : -1; + if (o10 && o10.selected != s10 && -1 != o10.selected) { + for (var c10 = o10.options[o10.selected].completion, l10 = 0; l10 < a10.length; l10++) + if (a10[l10].completion == c10) { + s10 = l10; + break; + } + } + return new e20(a10, $2(r10, s10), { pos: t10.reduce(function(e21, t11) { + return t11.hasResult() ? Math.min(e21, t11.from) : e21; + }, 1e8), create: N2, above: i10.aboveCursor }, o10 ? o10.timestamp : Date.now(), s10, false); + } }]), e20; + }(); + var S2 = function() { + function e20(t10, n10, r10) { + No(this, e20), this.active = t10, this.id = n10, this.open = r10; + } + return Do(e20, [{ key: "update", value: function(t10) { + var n10 = this, r10 = t10.state, o10 = r10.facet(m2), i10 = (o10.override || r10.languageDataAt("autocomplete", c2(r10)).map(d2)).map(function(e21) { + return (n10.active.find(function(t11) { + return t11.source == e21; + }) || new M2(e21, n10.active.some(function(e23) { + return 0 != e23.state; + }) ? 1 : 0)).update(t10, o10); + }); + i10.length == this.active.length && i10.every(function(e21, t11) { + return e21 == n10.active[t11]; + }) && (i10 = this.active); + var a10 = this.open; + a10 && t10.docChanged && (a10 = a10.map(t10.changes)), t10.selection || i10.some(function(e21) { + return e21.hasResult() && t10.changes.touchesRange(e21.from, e21.to); + }) || !function(e21, t11) { + if (e21 == t11) + return true; + for (var n11 = 0, r11 = 0; ; ) { + for (; n11 < e21.length && !e21[n11].hasResult; ) + n11++; + for (; r11 < t11.length && !t11[r11].hasResult; ) + r11++; + var o11 = n11 == e21.length, i11 = r11 == t11.length; + if (o11 || i11) + return o11 == i11; + if (e21[n11++].result != t11[r11++].result) + return false; + } + }(i10, this.active) ? a10 = j2.build(i10, r10, this.id, a10, o10) : a10 && a10.disabled && !i10.some(function(e21) { + return 1 == e21.state; + }) && (a10 = null), !a10 && i10.every(function(e21) { + return 1 != e21.state; + }) && i10.some(function(e21) { + return e21.hasResult(); + }) && (i10 = i10.map(function(e21) { + return e21.hasResult() ? new M2(e21.source, 0) : e21; + })); + var s10, c10 = bo(t10.effects); + try { + for (c10.s(); !(s10 = c10.n()).done; ) { + var l10 = s10.value; + l10.is(P2) && (a10 = a10 && a10.setSelected(l10.value, this.id)); + } + } catch (e21) { + c10.e(e21); + } finally { + c10.f(); + } + return i10 == this.active && a10 == this.open ? this : new e20(i10, this.id, a10); + } }, { key: "tooltip", get: function() { + return this.open ? this.open.tooltip : null; + } }, { key: "attrs", get: function() { + return this.open ? this.open.attrs : C2; + } }], [{ key: "start", value: function() { + return new e20(_2, "cm-ac-" + Math.floor(2e6 * Math.random()).toString(36), null); + } }]), e20; + }(); + var C2 = { "aria-autocomplete": "list" }; + function $2(e20, t10) { + var n10 = { "aria-autocomplete": "list", "aria-haspopup": "listbox", "aria-controls": e20 }; + return t10 > -1 && (n10["aria-activedescendant"] = e20 + "-" + t10), n10; + } + var _2 = []; + function O2(e20) { + return e20.isUserEvent("input.type") ? "input" : e20.isUserEvent("delete.backward") ? "delete" : null; + } + var M2 = function() { + function e20(t10, n10) { + var r10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : -1; + No(this, e20), this.source = t10, this.state = n10, this.explicitPos = r10; + } + return Do(e20, [{ key: "hasResult", value: function() { + return false; + } }, { key: "update", value: function(t10, n10) { + var r10 = O2(t10), o10 = this; + r10 ? o10 = o10.handleUserEvent(t10, r10, n10) : t10.docChanged ? o10 = o10.handleChange(t10) : t10.selection && 0 != o10.state && (o10 = new e20(o10.source, 0)); + var i10, a10 = bo(t10.effects); + try { + for (a10.s(); !(i10 = a10.n()).done; ) { + var s10 = i10.value; + if (s10.is(h2)) + o10 = new e20(o10.source, 1, s10.value ? c2(t10.state) : -1); + else if (s10.is(v2)) + o10 = new e20(o10.source, 0); + else if (s10.is(A2)) { + var c10, l10 = bo(s10.value); + try { + for (l10.s(); !(c10 = l10.n()).done; ) { + var u10 = c10.value; + u10.source == o10.source && (o10 = u10); + } + } catch (e21) { + l10.e(e21); + } finally { + l10.f(); + } + } + } + } catch (e21) { + a10.e(e21); + } finally { + a10.f(); + } + return o10; + } }, { key: "handleUserEvent", value: function(t10, n10, r10) { + return "delete" != n10 && r10.activateOnTyping ? new e20(this.source, 1) : this.map(t10.changes); + } }, { key: "handleChange", value: function(t10) { + return t10.changes.touchesRange(c2(t10.startState)) ? new e20(this.source, 0) : this.map(t10.changes); + } }, { key: "map", value: function(t10) { + return t10.empty || this.explicitPos < 0 ? this : new e20(this.source, this.state, t10.mapPos(this.explicitPos)); + } }]), e20; + }(); + var E2 = function(e20) { + function t10(e21, n10, r10, o10, i10) { + var a10; + return No(this, t10), (a10 = _o(this, t10, [e21, 2, n10])).result = r10, a10.from = o10, a10.to = i10, a10; + } + return Ao(t10, M2), Do(t10, [{ key: "hasResult", value: function() { + return true; + } }, { key: "handleUserEvent", value: function(e21, n10, r10) { + var o10, i10 = e21.changes.mapPos(this.from), a10 = e21.changes.mapPos(this.to, 1), s10 = c2(e21.state); + if ((this.explicitPos < 0 ? s10 <= i10 : s10 < this.from) || s10 > a10 || "delete" == n10 && c2(e21.startState) == this.from) + return new M2(this.source, "input" == n10 && r10.activateOnTyping ? 1 : 0); + var c10, l10 = this.explicitPos < 0 ? -1 : e21.changes.mapPos(this.explicitPos); + return function(e23, t11, n11, r11) { + if (!e23) + return false; + var o11 = t11.sliceDoc(n11, r11); + return "function" == typeof e23 ? e23(o11, n11, r11, t11) : l2(e23, true).test(o11); + }(this.result.validFor, e21.state, i10, a10) ? new t10(this.source, l10, this.result, i10, a10) : this.result.update && (c10 = this.result.update(this.result, i10, a10, new o2(e21.state, s10, l10 >= 0))) ? new t10(this.source, l10, c10, c10.from, null !== (o10 = c10.to) && void 0 !== o10 ? o10 : c2(e21.state)) : new M2(this.source, 1, l10); + } }, { key: "handleChange", value: function(e21) { + return e21.changes.touchesRange(this.from, this.to) ? new M2(this.source, 0) : this.map(e21.changes); + } }, { key: "map", value: function(e21) { + return e21.empty ? this : new t10(this.source, this.explicitPos < 0 ? -1 : e21.mapPos(this.explicitPos), this.result, e21.mapPos(this.from), e21.mapPos(this.to, 1)); + } }]), t10; + }(); + var A2 = oV.define({ map: function(e20, t10) { + return e20.map(function(e21) { + return e21.map(t10); + }); + } }); + var P2 = oV.define(); + var T2 = NF.define({ create: function() { + return S2.start(); + }, update: function(e20, t10) { + return e20.update(t10); + }, provide: function(e20) { + return [UK.from(e20, function(e21) { + return e21.tooltip; + }), zJ.contentAttributes.from(e20, function(e21) { + return e21.attrs; + })]; + } }); + function R2(e20, t10) { + var n10 = t10.completion.apply || t10.completion.label, r10 = e20.state.field(T2).active.find(function(e21) { + return e21.source == t10.source; + }); + return r10 instanceof E2 && ("string" == typeof n10 ? e20.dispatch(Object.assign(Object.assign({}, function(e21, t11, n11, r11) { + var o10 = e21.selection.main, i10 = n11 - o10.from, a10 = r11 - o10.from; + return Object.assign(Object.assign({}, e21.changeByRange(function(s10) { + return s10 != o10 && n11 != r11 && e21.sliceDoc(s10.from + i10, s10.from + a10) != e21.sliceDoc(n11, r11) ? { range: s10 } : { changes: { from: s10.from + i10, to: r11 == o10.from ? s10.to : s10.from + a10, insert: t11 }, range: $F.cursor(s10.from + i10 + t11.length) }; + })), { scrollIntoView: true, userEvent: "input.complete" }); + }(e20.state, n10, r10.from, r10.to)), { annotations: u2.of(t10.completion) })) : n10(e20, t10.completion, r10.from, r10.to), true); + } + var N2 = w2(T2, R2); + function I2(e20) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "option"; + return function(n10) { + var r10 = n10.state.field(T2, false); + if (!r10 || !r10.open || r10.open.disabled || Date.now() - r10.open.timestamp < n10.state.facet(m2).interactionDelay) + return false; + var o10, i10 = 1; + "page" == t10 && (o10 = ZK(n10, r10.open.tooltip)) && (i10 = Math.max(2, Math.floor(o10.dom.offsetHeight / o10.dom.querySelector("li").offsetHeight) - 1)); + var a10 = r10.open.options.length, s10 = r10.open.selected > -1 ? r10.open.selected + i10 * (e20 ? 1 : -1) : e20 ? 0 : a10 - 1; + return s10 < 0 ? s10 = "page" == t10 ? 0 : a10 - 1 : s10 >= a10 && (s10 = "page" == t10 ? a10 - 1 : 0), n10.dispatch({ effects: P2.of(s10) }), true; + }; + } + var D2 = Do(function e17(t10, n10) { + No(this, e17), this.active = t10, this.context = n10, this.time = Date.now(), this.updates = [], this.done = void 0; + }); + var q2 = FW.fromClass(function() { + function e20(t10) { + No(this, e20), this.view = t10, this.debounceUpdate = -1, this.running = [], this.debounceAccept = -1, this.composing = 0; + var n10, r10 = bo(t10.state.field(T2).active); + try { + for (r10.s(); !(n10 = r10.n()).done; ) { + var o10 = n10.value; + 1 == o10.state && this.startQuery(o10); + } + } catch (e21) { + r10.e(e21); + } finally { + r10.f(); + } + } + return Do(e20, [{ key: "update", value: function(e21) { + var t10 = this, n10 = e21.state.field(T2); + if (e21.selectionSet || e21.docChanged || e21.startState.field(T2) != n10) { + for (var r10 = e21.transactions.some(function(e23) { + return (e23.selection || e23.docChanged) && !O2(e23); + }), o10 = 0; o10 < this.running.length; o10++) { + var i10 = this.running[o10]; + if (r10 || i10.updates.length + e21.transactions.length > 50 && Date.now() - i10.time > 1e3) { + var a10, s10 = bo(i10.context.abortListeners); + try { + for (s10.s(); !(a10 = s10.n()).done; ) { + var c10 = a10.value; + try { + c10(); + } catch (e23) { + qW(this.view.state, e23); + } + } + } catch (e23) { + s10.e(e23); + } finally { + s10.f(); + } + i10.context.abortListeners = null, this.running.splice(o10--, 1); + } else { + var l10; + (l10 = i10.updates).push.apply(l10, Bo(e21.transactions)); + } + } + if (this.debounceUpdate > -1 && clearTimeout(this.debounceUpdate), this.debounceUpdate = n10.active.some(function(e23) { + return 1 == e23.state && !t10.running.some(function(t11) { + return t11.active.source == e23.source; + }); + }) ? setTimeout(function() { + return t10.startUpdate(); + }, 50) : -1, 0 != this.composing) { + var u10, f10 = bo(e21.transactions); + try { + for (f10.s(); !(u10 = f10.n()).done; ) { + var d10 = u10.value; + "input" == O2(d10) ? this.composing = 2 : 2 == this.composing && d10.selection && (this.composing = 3); + } + } catch (e23) { + f10.e(e23); + } finally { + f10.f(); + } + } + } + } }, { key: "startUpdate", value: function() { + var e21 = this; + this.debounceUpdate = -1; + var t10, n10 = bo(this.view.state.field(T2).active); + try { + var r10 = function() { + var n11 = t10.value; + 1 != n11.state || e21.running.some(function(e23) { + return e23.active.source == n11.source; + }) || e21.startQuery(n11); + }; + for (n10.s(); !(t10 = n10.n()).done; ) + r10(); + } catch (e23) { + n10.e(e23); + } finally { + n10.f(); + } + } }, { key: "startQuery", value: function(e21) { + var t10 = this, n10 = this.view.state, r10 = c2(n10), o10 = new o2(n10, r10, e21.explicitPos == r10), i10 = new D2(e21, o10); + this.running.push(i10), Promise.resolve(e21.source(o10)).then(function(e23) { + i10.context.aborted || (i10.done = e23 || null, t10.scheduleAccept()); + }, function(e23) { + t10.view.dispatch({ effects: v2.of(null) }), qW(t10.view.state, e23); + }); + } }, { key: "scheduleAccept", value: function() { + var e21 = this; + this.running.every(function(e23) { + return void 0 !== e23.done; + }) ? this.accept() : this.debounceAccept < 0 && (this.debounceAccept = setTimeout(function() { + return e21.accept(); + }, this.view.state.facet(m2).updateSyncTime)); + } }, { key: "accept", value: function() { + var e21, t10 = this; + this.debounceAccept > -1 && clearTimeout(this.debounceAccept), this.debounceAccept = -1; + for (var n10 = [], r10 = this.view.state.facet(m2), o10 = function(o11) { + var a10 = t10.running[o11]; + if (void 0 === a10.done) + return i10 = o11, 0; + if (t10.running.splice(o11--, 1), a10.done) { + var s10, c10 = new E2(a10.active.source, a10.active.explicitPos, a10.done, a10.done.from, null !== (e21 = a10.done.to) && void 0 !== e21 ? e21 : c2(a10.updates.length ? a10.updates[0].startState : t10.view.state)), l10 = bo(a10.updates); + try { + for (l10.s(); !(s10 = l10.n()).done; ) { + var u10 = s10.value; + c10 = c10.update(u10, r10); + } + } catch (e23) { + l10.e(e23); + } finally { + l10.f(); + } + if (c10.hasResult()) + return n10.push(c10), i10 = o11, 0; + } + var f10 = t10.view.state.field(T2).active.find(function(e23) { + return e23.source == a10.active.source; + }); + if (f10 && 1 == f10.state) + if (null == a10.done) { + var d10, h10 = new M2(a10.active.source, 0), v10 = bo(a10.updates); + try { + for (v10.s(); !(d10 = v10.n()).done; ) { + var p10 = d10.value; + h10 = h10.update(p10, r10); + } + } catch (e23) { + v10.e(e23); + } finally { + v10.f(); + } + 1 != h10.state && n10.push(h10); + } else + t10.startQuery(f10); + i10 = o11; + }, i10 = 0; i10 < this.running.length; i10++) + o10(i10); + n10.length && this.view.dispatch({ effects: A2.of(n10) }); + } }]), e20; + }(), { eventHandlers: { blur: function(e20) { + var t10 = this.view.state.field(T2, false); + if (t10 && t10.tooltip && this.view.state.facet(m2).closeOnBlur) { + var n10 = t10.open && ZK(this.view, t10.open.tooltip); + n10 && n10.dom.contains(e20.relatedTarget) || this.view.dispatch({ effects: v2.of(null) }); + } + }, compositionstart: function() { + this.composing = 1; + }, compositionend: function() { + var e20 = this; + 3 == this.composing && setTimeout(function() { + return e20.view.dispatch({ effects: h2.of(false) }); + }, 20), this.composing = 0; + } } }); + var z2 = zJ.baseTheme({ ".cm-tooltip.cm-tooltip-autocomplete": { "& > ul": { fontFamily: "monospace", whiteSpace: "nowrap", overflow: "hidden auto", maxWidth_fallback: "700px", maxWidth: "min(700px, 95vw)", minWidth: "250px", maxHeight: "10em", height: "100%", listStyle: "none", margin: 0, padding: 0, "& > li, & > completion-section": { padding: "1px 3px", lineHeight: 1.2 }, "& > li": { overflowX: "hidden", textOverflow: "ellipsis", cursor: "pointer" }, "& > completion-section": { display: "list-item", borderBottom: "1px solid silver", paddingLeft: "0.5em", opacity: 0.7 } } }, "&light .cm-tooltip-autocomplete ul li[aria-selected]": { background: "#17c", color: "white" }, "&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]": { background: "#777" }, "&dark .cm-tooltip-autocomplete ul li[aria-selected]": { background: "#347", color: "white" }, "&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]": { background: "#444" }, ".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after": { content: '"\xB7\xB7\xB7"', opacity: 0.5, display: "block", textAlign: "center" }, ".cm-tooltip.cm-completionInfo": { position: "absolute", padding: "3px 9px", width: "max-content", maxWidth: "".concat(400, "px"), boxSizing: "border-box" }, ".cm-completionInfo.cm-completionInfo-left": { right: "100%" }, ".cm-completionInfo.cm-completionInfo-right": { left: "100%" }, ".cm-completionInfo.cm-completionInfo-left-narrow": { right: "".concat(30, "px") }, ".cm-completionInfo.cm-completionInfo-right-narrow": { left: "".concat(30, "px") }, "&light .cm-snippetField": { backgroundColor: "#00000022" }, "&dark .cm-snippetField": { backgroundColor: "#ffffff22" }, ".cm-snippetFieldPosition": { verticalAlign: "text-top", width: 0, height: "1.15em", display: "inline-block", margin: "0 -0.7px -.7em", borderLeft: "1.4px dotted #888" }, ".cm-completionMatchedText": { textDecoration: "underline" }, ".cm-completionDetail": { marginLeft: "0.5em", fontStyle: "italic" }, ".cm-completionIcon": { fontSize: "90%", width: ".8em", display: "inline-block", textAlign: "center", paddingRight: ".6em", opacity: "0.6", boxSizing: "content-box" }, ".cm-completionIcon-function, .cm-completionIcon-method": { "&:after": { content: "'\u0192'" } }, ".cm-completionIcon-class": { "&:after": { content: "'\u25CB'" } }, ".cm-completionIcon-interface": { "&:after": { content: "'\u25CC'" } }, ".cm-completionIcon-variable": { "&:after": { content: "'\u{1D465}'" } }, ".cm-completionIcon-constant": { "&:after": { content: "'\u{1D436}'" } }, ".cm-completionIcon-type": { "&:after": { content: "'\u{1D461}'" } }, ".cm-completionIcon-enum": { "&:after": { content: "'\u222A'" } }, ".cm-completionIcon-property": { "&:after": { content: "'\u25A1'" } }, ".cm-completionIcon-keyword": { "&:after": { content: "'\u{1F511}\uFE0E'" } }, ".cm-completionIcon-namespace": { "&:after": { content: "'\u25A2'" } }, ".cm-completionIcon-text": { "&:after": { content: "'abc'", fontSize: "50%", verticalAlign: "middle" } } }); + var B2 = { brackets: ["(", "[", "{", "'", '"'], before: ")]}:;>", stringPrefixes: [] }; + var L2 = oV.define({ map: function(e20, t10) { + var n10 = t10.mapPos(e20, -1, mF.TrackAfter); + return null == n10 ? void 0 : n10; + } }); + var F2 = new (function(e20) { + function t10() { + return No(this, t10), _o(this, t10, arguments); + } + return Ao(t10, yV), Do(t10); + }())(); + F2.startSide = 1, F2.endSide = -1; + var V2 = NF.define({ create: function() { + return xV.empty; + }, update: function(e20, t10) { + if (e20 = e20.map(t10.changes), t10.selection) { + var n10 = t10.state.doc.lineAt(t10.selection.main.head); + e20 = e20.update({ filter: function(e21) { + return e21 >= n10.from && e21 <= n10.to; + } }); + } + var r10, o10 = bo(t10.effects); + try { + for (o10.s(); !(r10 = o10.n()).done; ) { + var i10 = r10.value; + i10.is(L2) && (e20 = e20.update({ add: [F2.range(i10.value, i10.value + 1)] })); + } + } catch (e21) { + o10.e(e21); + } finally { + o10.f(); + } + return e20; + } }); + var H2 = "()[]{}<>"; + function W2(e20) { + for (var t10 = 0; t10 < H2.length; t10 += 2) + if (H2.charCodeAt(t10) == e20) + return H2.charAt(t10 + 1); + return hF(e20 < 128 ? e20 : e20 + 1); + } + function U2(e20, t10) { + return e20.languageDataAt("closeBrackets", t10)[0] || B2; + } + var J2 = "object" == ("undefined" == typeof navigator ? "undefined" : Ho(navigator)) && /Android\b/.test(navigator.userAgent); + var K2 = zJ.inputHandler.of(function(e20, t10, n10, r10) { + if ((J2 ? e20.composing : e20.compositionStarted) || e20.state.readOnly) + return false; + var o10 = e20.state.selection.main; + if (r10.length > 2 || 2 == r10.length && 1 == vF(dF(r10, 0)) || t10 != o10.from || n10 != o10.to) + return false; + var i10 = function(e21, t11) { + var n11, r11 = U2(e21, e21.selection.main.head), o11 = r11.brackets || B2.brackets, i11 = bo(o11); + try { + for (i11.s(); !(n11 = i11.n()).done; ) { + var a10 = n11.value, s10 = W2(dF(a10, 0)); + if (t11 == a10) + return s10 == a10 ? e42(e21, a10, o11.indexOf(a10 + a10 + a10) > -1, r11) : X2(e21, a10, s10, r11.before || B2.before); + if (t11 == s10 && Q2(e21, e21.selection.main.from)) + return Z2(e21, a10, s10); + } + } catch (e23) { + i11.e(e23); + } finally { + i11.f(); + } + return null; + }(e20.state, r10); + return !!i10 && (e20.dispatch(i10), true); + }); + var G2 = [{ key: "Backspace", run: function(e20) { + var t10 = e20.state, n10 = e20.dispatch; + if (t10.readOnly) + return false; + var r10 = U2(t10, t10.selection.main.head).brackets || B2.brackets, o10 = null, i10 = t10.changeByRange(function(e21) { + if (e21.empty) { + var n11, i11 = function(e23, t11) { + var n12 = e23.sliceString(t11 - 2, t11); + return vF(dF(n12, 0)) == n12.length ? n12 : n12.slice(1); + }(t10.doc, e21.head), a10 = bo(r10); + try { + for (a10.s(); !(n11 = a10.n()).done; ) { + var s10 = n11.value; + if (s10 == i11 && Y2(t10.doc, e21.head) == W2(dF(s10, 0))) + return { changes: { from: e21.head - s10.length, to: e21.head + s10.length }, range: $F.cursor(e21.head - s10.length) }; + } + } catch (e23) { + a10.e(e23); + } finally { + a10.f(); + } + } + return { range: o10 = e21 }; + }); + return o10 || n10(t10.update(i10, { scrollIntoView: true, userEvent: "delete.backward" })), !o10; + } }]; + function Q2(e20, t10) { + var n10 = false; + return e20.field(V2).between(0, e20.doc.length, function(e21) { + e21 == t10 && (n10 = true); + }), n10; + } + function Y2(e20, t10) { + var n10 = e20.sliceString(t10, t10 + 2); + return n10.slice(0, vF(dF(n10, 0))); + } + function X2(e20, t10, n10, r10) { + var o10 = null, i10 = e20.changeByRange(function(i11) { + if (!i11.empty) + return { changes: [{ insert: t10, from: i11.from }, { insert: n10, from: i11.to }], effects: L2.of(i11.to + t10.length), range: $F.range(i11.anchor + t10.length, i11.head + t10.length) }; + var a10 = Y2(e20.doc, i11.head); + return !a10 || /\s/.test(a10) || r10.indexOf(a10) > -1 ? { changes: { insert: t10 + n10, from: i11.head }, effects: L2.of(i11.head + t10.length), range: $F.cursor(i11.head + t10.length) } : { range: o10 = i11 }; + }); + return o10 ? null : e20.update(i10, { scrollIntoView: true, userEvent: "input.type" }); + } + function Z2(e20, t10, n10) { + var r10 = null, o10 = e20.changeByRange(function(t11) { + return t11.empty && Y2(e20.doc, t11.head) == n10 ? { changes: { from: t11.head, to: t11.head + n10.length, insert: n10 }, range: $F.cursor(t11.head + n10.length) } : r10 = { range: t11 }; + }); + return r10 ? null : e20.update(o10, { scrollIntoView: true, userEvent: "input.type" }); + } + function e42(e20, t10, n10, r10) { + var o10 = r10.stringPrefixes || B2.stringPrefixes, i10 = null, a10 = e20.changeByRange(function(r11) { + if (!r11.empty) + return { changes: [{ insert: t10, from: r11.from }, { insert: t10, from: r11.to }], effects: L2.of(r11.to + t10.length), range: $F.range(r11.anchor + t10.length, r11.head + t10.length) }; + var a11, s10 = r11.head, c10 = Y2(e20.doc, s10); + if (c10 == t10) { + if (t4(e20, s10)) + return { changes: { insert: t10 + t10, from: s10 }, effects: L2.of(s10 + t10.length), range: $F.cursor(s10 + t10.length) }; + if (Q2(e20, s10)) { + var l10 = n10 && e20.sliceDoc(s10, s10 + 3 * t10.length) == t10 + t10 + t10 ? t10 + t10 + t10 : t10; + return { changes: { from: s10, to: s10 + l10.length, insert: l10 }, range: $F.cursor(s10 + l10.length) }; + } + } else { + if (n10 && e20.sliceDoc(s10 - 2 * t10.length, s10) == t10 + t10 && (a11 = n4(e20, s10 - 2 * t10.length, o10)) > -1 && t4(e20, a11)) + return { changes: { insert: t10 + t10 + t10 + t10, from: s10 }, effects: L2.of(s10 + t10.length), range: $F.cursor(s10 + t10.length) }; + if (e20.charCategorizer(s10)(c10) != hV.Word && n4(e20, s10, o10) > -1 && !function(e21, t11, n11, r12) { + for (var o11 = zQ(e21).resolveInner(t11, -1), i11 = r12.reduce(function(e23, t12) { + return Math.max(e23, t12.length); + }, 0), a12 = 0; a12 < 5; a12++) { + var s11 = e21.sliceDoc(o11.from, Math.min(o11.to, o11.from + n11.length + i11)), c11 = s11.indexOf(n11); + if (!c11 || c11 > -1 && r12.indexOf(s11.slice(0, c11)) > -1) { + for (var l11 = o11.firstChild; l11 && l11.from == o11.from && l11.to - l11.from > n11.length + c11; ) { + if (e21.sliceDoc(l11.to - n11.length, l11.to) == n11) + return false; + l11 = l11.firstChild; + } + return true; + } + var u10 = o11.to == t11 && o11.parent; + if (!u10) + break; + o11 = u10; + } + return false; + }(e20, s10, t10, o10)) + return { changes: { insert: t10 + t10, from: s10 }, effects: L2.of(s10 + t10.length), range: $F.cursor(s10 + t10.length) }; + } + return { range: i10 = r11 }; + }); + return i10 ? null : e20.update(a10, { scrollIntoView: true, userEvent: "input.type" }); + } + function t4(e20, t10) { + var n10 = zQ(e20).resolveInner(t10 + 1); + return n10.parent && n10.from == t10; + } + function n4(e20, t10, n10) { + var r10 = e20.charCategorizer(t10); + if (r10(e20.sliceDoc(t10 - 1, t10)) != hV.Word) + return t10; + var o10, i10 = bo(n10); + try { + for (i10.s(); !(o10 = i10.n()).done; ) { + var a10 = o10.value, s10 = t10 - a10.length; + if (e20.sliceDoc(s10, t10) == a10 && r10(e20.sliceDoc(s10 - 1, s10)) != hV.Word) + return s10; + } + } catch (e21) { + i10.e(e21); + } finally { + i10.f(); + } + return -1; + } + function r4() { + var e20 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + return [T2, m2.of(e20), q2, i4, z2]; + } + var o4 = [{ key: "Ctrl-Space", run: function(e20) { + return !!e20.state.field(T2, false) && (e20.dispatch({ effects: h2.of(true) }), true); + } }, { key: "Escape", run: function(e20) { + var t10 = e20.state.field(T2, false); + return !(!t10 || !t10.active.some(function(e21) { + return 0 != e21.state; + })) && (e20.dispatch({ effects: v2.of(null) }), true); + } }, { key: "ArrowDown", run: I2(true) }, { key: "ArrowUp", run: I2(false) }, { key: "PageDown", run: I2(true, "page") }, { key: "PageUp", run: I2(false, "page") }, { key: "Enter", run: function(e20) { + var t10 = e20.state.field(T2, false); + return !(e20.state.readOnly || !t10 || !t10.open || t10.open.selected < 0 || t10.open.disabled || Date.now() - t10.open.timestamp < e20.state.facet(m2).interactionDelay) && R2(e20, t10.open.options[t10.open.selected]); + } }]; + var i4 = LF.highest(JJ.computeN([m2], function(e20) { + return e20.facet(m2).defaultKeymap ? [o4] : []; + })); + function a4(e20) { + mi(e20, "svelte-hhcn0f", '.jse-status-bar.svelte-hhcn0f.svelte-hhcn0f{background:var(--jse-panel-background, #ebebeb);color:var(--jse-panel-color-readonly, #b2b2b2);font-family:var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace);font-size:var(--jse-font-size-mono, 14px);margin:0;border-top:var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7));border-left:var(--jse-main-border, 1px solid #d7d7d7);border-right:var(--jse-main-border, 1px solid #d7d7d7);display:flex;gap:var(--jse-padding, 10px)}.jse-status-bar.svelte-hhcn0f.svelte-hhcn0f:last-child{border-bottom:var(--jse-main-border, 1px solid #d7d7d7)}.jse-status-bar.svelte-hhcn0f .jse-status-bar-info.svelte-hhcn0f{padding:2px}'); + } + function s4(e20) { + var t10, n10, r10; + return { c: function() { + t10 = ji("div"), n10 = Ci("Line: "), r10 = Ci(e20[0]), Ai(t10, "class", "jse-status-bar-info svelte-hhcn0f"); + }, m: function(e21, o10) { + ki(e21, t10, o10), pi(t10, n10), pi(t10, r10); + }, p: function(e21, t11) { + 1 & t11 && Ni(r10, e21[0]); + }, d: function(e21) { + e21 && wi(t10); + } }; + } + function c4(e20) { + var t10, n10, r10; + return { c: function() { + t10 = ji("div"), n10 = Ci("Column: "), r10 = Ci(e20[1]), Ai(t10, "class", "jse-status-bar-info svelte-hhcn0f"); + }, m: function(e21, o10) { + ki(e21, t10, o10), pi(t10, n10), pi(t10, r10); + }, p: function(e21, t11) { + 2 & t11 && Ni(r10, e21[1]); + }, d: function(e21) { + e21 && wi(t10); + } }; + } + function l4(e20) { + var t10, n10, r10, o10; + return { c: function() { + t10 = ji("div"), n10 = Ci("Selection: "), r10 = Ci(e20[2]), o10 = Ci(" characters"), Ai(t10, "class", "jse-status-bar-info svelte-hhcn0f"); + }, m: function(e21, i10) { + ki(e21, t10, i10), pi(t10, n10), pi(t10, r10), pi(t10, o10); + }, p: function(e21, t11) { + 4 & t11 && Ni(r10, e21[2]); + }, d: function(e21) { + e21 && wi(t10); + } }; + } + function u4(e20) { + var t10, n10, r10, o10 = void 0 !== e20[0] && s4(e20), i10 = void 0 !== e20[1] && c4(e20), a10 = void 0 !== e20[2] && e20[2] > 0 && l4(e20); + return { c: function() { + t10 = ji("div"), o10 && o10.c(), n10 = $i(), i10 && i10.c(), r10 = $i(), a10 && a10.c(), Ai(t10, "class", "jse-status-bar svelte-hhcn0f"); + }, m: function(e21, s10) { + ki(e21, t10, s10), o10 && o10.m(t10, null), pi(t10, n10), i10 && i10.m(t10, null), pi(t10, r10), a10 && a10.m(t10, null); + }, p: function(e21, s10) { + var c10 = jo(s10, 1)[0]; + void 0 !== e21[0] ? o10 ? o10.p(e21, c10) : ((o10 = s4(e21)).c(), o10.m(t10, n10)) : o10 && (o10.d(1), o10 = null), void 0 !== e21[1] ? i10 ? i10.p(e21, c10) : ((i10 = c4(e21)).c(), i10.m(t10, r10)) : i10 && (i10.d(1), i10 = null), void 0 !== e21[2] && e21[2] > 0 ? a10 ? a10.p(e21, c10) : ((a10 = l4(e21)).c(), a10.m(t10, null)) : a10 && (a10.d(1), a10 = null); + }, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10), o10 && o10.d(), i10 && i10.d(), a10 && a10.d(); + } }; + } + function f4(e20, t10, n10) { + var r10, o10, i10, a10, s10, c10 = t10.editorState; + return e20.$$set = function(e21) { + "editorState" in e21 && n10(3, c10 = e21.editorState); + }, e20.$$.update = function() { + var t11, l10, u10; + 8 & e20.$$.dirty && n10(4, r10 = null === (t11 = c10) || void 0 === t11 || null === (t11 = t11.selection) || void 0 === t11 || null === (t11 = t11.main) || void 0 === t11 ? void 0 : t11.head); + 24 & e20.$$.dirty && n10(5, o10 = r10 ? null === (l10 = c10) || void 0 === l10 || null === (l10 = l10.doc) || void 0 === l10 ? void 0 : l10.lineAt(r10) : void 0); + (32 & e20.$$.dirty && n10(0, i10 = o10 ? o10.number : void 0), 48 & e20.$$.dirty && n10(1, a10 = void 0 !== o10 && void 0 !== r10 ? r10 - o10.from + 1 : void 0), 8 & e20.$$.dirty) && n10(2, s10 = null === (u10 = c10) || void 0 === u10 || null === (u10 = u10.selection) || void 0 === u10 || null === (u10 = u10.ranges) || void 0 === u10 ? void 0 : u10.reduce(function(e21, t12) { + return e21 + t12.to - t12.from; + }, 0)); + }, [i10, a10, s10, c10, r10, o10]; + } + var d4 = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, f4, u4, Xo, { editorState: 3 }, a4), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + var h4 = PY.define([{ tag: TQ.propertyName, color: "var(--internal-key-color)" }, { tag: TQ.number, color: "var(--internal-value-color-number)" }, { tag: TQ.bool, color: "var(--internal-value-color-boolean)" }, { tag: TQ.string, color: "var(--internal-value-color-string)" }, { tag: TQ.keyword, color: "var(--internal-value-color-null)" }]); + var v4 = IY(h4); + var p4 = h4.style; + function m4(e20) { + var t10 = e20.selection.main.head; + return e20.doc.lineAt(t10); + } + function g4(e20, t10) { + var n10 = 0; + e: + for (var r10 = 0; r10 < e20.length; r10++) + switch (e20[r10]) { + case " ": + n10 += 1; + continue e; + case " ": + n10 += t10 - n10 % t10; + continue e; + case "\r": + continue e; + default: + break e; + } + return n10; + } + h4.style = function(e20) { + return p4(e20 || []); + }; + var y4 = MF.define({ combine: function(e20) { + return gV(e20, { highlightActiveBlock: true, hideFirstIndent: false, markerType: "fullScope", thickness: 1 }); + } }); + var b4 = function() { + function e20(t10, n10, r10, o10) { + No(this, e20), this.lines = t10, this.state = n10, this.map = /* @__PURE__ */ new Map(), this.unitWidth = r10, this.markerType = o10; + var i10, a10 = bo(this.lines); + try { + for (a10.s(); !(i10 = a10.n()).done; ) { + var s10 = i10.value; + this.add(s10); + } + } catch (e21) { + a10.e(e21); + } finally { + a10.f(); + } + this.state.facet(y4).highlightActiveBlock && this.findAndSetActiveLines(); + } + return Do(e20, [{ key: "has", value: function(e21) { + return this.map.has("number" == typeof e21 ? e21 : e21.number); + } }, { key: "get", value: function(e21) { + var t10 = this.map.get("number" == typeof e21 ? e21 : e21.number); + if (!t10) + throw new Error("Line not found in indentation map"); + return t10; + } }, { key: "set", value: function(e21, t10, n10) { + var r10 = !e21.text.trim().length, o10 = { line: e21, col: t10, level: n10, empty: r10 }; + return this.map.set(o10.line.number, o10), o10; + } }, { key: "add", value: function(e21) { + if (this.has(e21)) + return this.get(e21); + if (!e21.length || !e21.text.trim().length) { + if (1 === e21.number) + return this.set(e21, 0, 0); + if (e21.number === this.state.doc.lines) { + var t10 = this.closestNonEmpty(e21, -1); + return this.set(e21, 0, t10.level); + } + var n10 = this.closestNonEmpty(e21, -1), r10 = this.closestNonEmpty(e21, 1); + return n10.level >= r10.level && "codeOnly" !== this.markerType ? this.set(e21, 0, n10.level) : n10.empty && 0 === n10.level && 0 !== r10.level ? this.set(e21, 0, 0) : r10.level > n10.level ? this.set(e21, 0, n10.level + 1) : this.set(e21, 0, r10.level); + } + var o10 = g4(e21.text, this.state.tabSize), i10 = Math.floor(o10 / this.unitWidth); + return this.set(e21, o10, i10); + } }, { key: "closestNonEmpty", value: function(e21, t10) { + for (var n10 = e21.number + t10; -1 === t10 ? n10 >= 1 : n10 <= this.state.doc.lines; ) { + if (this.has(n10)) { + var r10 = this.get(n10); + if (!r10.empty) + return r10; + } + var o10 = this.state.doc.line(n10); + if (o10.text.trim().length) { + var i10 = g4(o10.text, this.state.tabSize), a10 = Math.floor(i10 / this.unitWidth); + return this.set(o10, i10, a10); + } + n10 += t10; + } + var s10 = this.state.doc.line(-1 === t10 ? 1 : this.state.doc.lines); + return this.set(s10, 0, 0); + } }, { key: "findAndSetActiveLines", value: function() { + var e21 = m4(this.state); + if (this.has(e21)) { + var t10 = this.get(e21); + if (this.has(t10.line.number + 1)) { + var n10 = this.get(t10.line.number + 1); + n10.level > t10.level && (t10 = n10); + } + if (this.has(t10.line.number - 1)) { + var r10 = this.get(t10.line.number - 1); + r10.level > t10.level && (t10 = r10); + } + if (0 !== t10.level) { + var o10, i10; + for (t10.active = t10.level, o10 = t10.line.number; o10 > 1; o10--) + if (this.has(o10 - 1)) { + var a10 = this.get(o10 - 1); + if (a10.level < t10.level) + break; + a10.active = t10.level; + } + for (i10 = t10.line.number; i10 < this.state.doc.lines; i10++) + if (this.has(i10 + 1)) { + var s10 = this.get(i10 + 1); + if (s10.level < t10.level) + break; + s10.active = t10.level; + } + } + } + } }]), e20; + }(); + function k4(e20) { + var t10 = { light: "#F0F1F2", dark: "#2B3245", activeLight: "#E4E5E6", activeDark: "#3C445C" }, n10 = t10; + return e20 && (n10 = Object.assign(Object.assign({}, t10), e20)), zJ.baseTheme({ "&light": { "--indent-marker-bg-color": n10.light, "--indent-marker-active-bg-color": n10.activeLight }, "&dark": { "--indent-marker-bg-color": n10.dark, "--indent-marker-active-bg-color": n10.activeDark }, ".cm-line": { position: "relative" }, ".cm-indent-markers::before": { content: '""', position: "absolute", top: 0, left: 0, right: 0, bottom: 0, background: "var(--indent-markers)", pointerEvents: "none", zIndex: "-1" } }); + } + function w4(e20, t10, n10, r10, o10) { + var i10 = "repeating-linear-gradient(to right, var(".concat(e20, ") 0 ").concat(t10, "px, transparent ").concat(t10, "px ").concat(n10, "ch)"); + return "".concat(i10, " ").concat(r10 * n10, ".5ch/calc(").concat(n10 * o10, "ch - 1px) no-repeat"); + } + function x4(e20, t10, n10, r10) { + var o10 = e20.level, i10 = e20.active; + if (n10 && 0 === o10) + return []; + var a10 = n10 ? 1 : 0, s10 = []; + if (void 0 !== i10) { + var c10 = i10 - a10 - 1; + c10 > 0 && s10.push(w4("--indent-marker-bg-color", r10, t10, a10, c10)), s10.push(w4("--indent-marker-active-bg-color", r10, t10, i10 - 1, 1)), i10 !== o10 && s10.push(w4("--indent-marker-bg-color", r10, t10, i10, o10 - i10)); + } else + s10.push(w4("--indent-marker-bg-color", r10, t10, a10, o10 - a10)); + return s10.join(","); + } + var j4 = function() { + function e20(t10) { + No(this, e20), this.view = t10, this.unitWidth = XQ(t10.state), this.currentLineNumber = m4(t10.state).number, this.generate(t10.state); + } + return Do(e20, [{ key: "update", value: function(e21) { + var t10 = XQ(e21.state), n10 = t10 !== this.unitWidth; + n10 && (this.unitWidth = t10); + var r10 = m4(e21.state).number, o10 = r10 !== this.currentLineNumber; + this.currentLineNumber = r10; + var i10 = e21.state.facet(y4).highlightActiveBlock && o10; + (e21.docChanged || e21.viewportChanged || n10 || i10) && this.generate(e21.state); + } }, { key: "generate", value: function(e21) { + var t10, n10 = new jV(), r10 = function(e23) { + var t11, n11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : e23.state, r11 = /* @__PURE__ */ new Set(), o11 = bo(e23.visibleRanges); + try { + for (o11.s(); !(t11 = o11.n()).done; ) + for (var i11 = t11.value, a11 = i11.from, s11 = i11.to, c11 = a11; c11 <= s11; ) { + var l11 = n11.doc.lineAt(c11); + r11.has(l11) || r11.add(l11), c11 = l11.to + 1; + } + } catch (e24) { + o11.e(e24); + } finally { + o11.f(); + } + return r11; + }(this.view, e21), o10 = e21.facet(y4), i10 = o10.hideFirstIndent, a10 = o10.markerType, s10 = o10.thickness, c10 = new b4(r10, e21, this.unitWidth, a10), l10 = bo(r10); + try { + for (l10.s(); !(t10 = l10.n()).done; ) { + var u10 = t10.value, f10 = c10.get(u10.number); + if (null == f10 ? void 0 : f10.level) { + var d10 = x4(f10, this.unitWidth, i10, s10); + n10.add(u10.from, u10.from, KH.line({ class: "cm-indent-markers", attributes: { style: "--indent-markers: ".concat(d10) } })); + } + } + } catch (e23) { + l10.e(e23); + } finally { + l10.f(); + } + this.decorations = n10.finish(); + } }]), e20; + }(); + function S4() { + var e20 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + return [y4.of(e20), k4(e20.colors), FW.fromClass(j4, { decorations: function(e21) { + return e21.decorations; + } })]; + } + var C4 = function() { + function e20(t10) { + No(this, e20), this.view = t10, this.indentUnit = XQ(t10.state), this.initialPaddingLeft = null, this.generate(t10.state); + } + return Do(e20, [{ key: "update", value: function(e21) { + var t10 = XQ(e21.state); + (t10 !== this.indentUnit || e21.docChanged || e21.viewportChanged) && (this.indentUnit = t10, this.generate(e21.state)); + } }, { key: "generate", value: function(e21) { + var t10 = this, n10 = new jV(); + this.initialPaddingLeft ? this.addStyleToBuilder(n10, e21, this.initialPaddingLeft) : this.view.requestMeasure({ read: function(r10) { + var o10 = r10.contentDOM.querySelector(".cm-line"); + o10 && (t10.initialPaddingLeft = window.getComputedStyle(o10).getPropertyValue("padding-left"), t10.addStyleToBuilder(n10, e21, t10.initialPaddingLeft)), t10.decorations = n10.finish(); + } }), this.decorations = n10.finish(); + } }, { key: "addStyleToBuilder", value: function(e21, t10, n10) { + var r10, o10 = bo(this.getVisibleLines(t10)); + try { + for (o10.s(); !(r10 = o10.n()).done; ) { + var i10 = r10.value, a10 = this.getIndentSize(i10), s10 = "calc(".concat(a10 + this.indentUnit, "ch + ").concat(n10, ")"); + e21.add(i10.from, i10.from, KH.line({ attributes: { style: "padding-left: ".concat(s10, "; text-indent: -").concat(a10 + this.indentUnit, "ch;") } })); + } + } catch (e23) { + o10.e(e23); + } finally { + o10.f(); + } + } }, { key: "getVisibleLines", value: function(e21) { + var t10, n10 = /* @__PURE__ */ new Set(), r10 = null, o10 = bo(this.view.visibleRanges); + try { + for (o10.s(); !(t10 = o10.n()).done; ) + for (var i10 = t10.value, a10 = i10.from, s10 = i10.to, c10 = a10; c10 <= s10; ) { + var l10 = e21.doc.lineAt(c10); + r10 !== l10 && (n10.add(l10), r10 = l10), c10 = l10.to + 1; + } + } catch (e23) { + o10.e(e23); + } finally { + o10.f(); + } + return n10; + } }, { key: "getIndentSize", value: function(e21) { + return e21.text.length - e21.text.trimStart().length; + } }]), e20; + }(); + var $4 = [FW.fromClass(C4, { decorations: function(e20) { + return e20.decorations; + } })]; + function _4(e20) { + mi(e20, "svelte-a0poeb", '.jse-text-mode.svelte-a0poeb.svelte-a0poeb{--internal-key-color:var(--jse-key-color, #1a1a1a);--internal-value-color-number:var(--jse-value-color-number, #ee422e);--internal-value-color-boolean:var(--jse-value-color-boolean, #ff8c00);--internal-value-color-string:var(--jse-value-color-string, #008000);--internal-value-color-null:var(--jse-value-color-null, #004ed0);flex:1;box-sizing:border-box;display:flex;flex-direction:column;background:var(--jse-background-color, #fff)}.jse-text-mode.no-main-menu.svelte-a0poeb.svelte-a0poeb{border-top:var(--jse-main-border, 1px solid #d7d7d7)}.jse-text-mode.svelte-a0poeb .jse-contents.svelte-a0poeb{flex:1;display:flex;position:relative;flex-direction:column;overflow:hidden;min-width:0;min-height:0;border-left:var(--jse-main-border, 1px solid #d7d7d7);border-right:var(--jse-main-border, 1px solid #d7d7d7)}.jse-text-mode.svelte-a0poeb .jse-contents.svelte-a0poeb:last-child{border-bottom:var(--jse-main-border, 1px solid #d7d7d7)}.jse-text-mode.svelte-a0poeb .jse-contents.jse-hidden.svelte-a0poeb{visibility:hidden;position:absolute;top:0;left:0}.jse-text-mode.svelte-a0poeb .jse-contents.svelte-a0poeb .cm-editor{flex:1;overflow:hidden}.jse-text-mode.svelte-a0poeb .jse-contents.svelte-a0poeb .cm-editor .cm-scroller{font-family:var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace);font-size:var(--jse-font-size-mono, 14px);line-height:var(--jse-line-height, calc(1em + 4px));color:var(--jse-delimiter-color, rgba(0, 0, 0, 0.38))}.jse-text-mode.svelte-a0poeb .jse-contents.svelte-a0poeb .cm-editor .cm-gutters{background:var(--jse-panel-background, #ebebeb);color:var(--jse-panel-color-readonly, #b2b2b2);border-right:var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7))}.jse-text-mode.svelte-a0poeb .jse-contents.svelte-a0poeb .cm-editor .cm-activeLine,.jse-text-mode.svelte-a0poeb .jse-contents.svelte-a0poeb .cm-editor .cm-activeLineGutter{background:var(--jse-active-line-background-color, rgba(0, 0, 0, 0.06))}.jse-text-mode.svelte-a0poeb .jse-contents.svelte-a0poeb .cm-editor .cm-selectionBackground{background:var(--jse-selection-background-color, #d3d3d3)}.jse-text-mode.svelte-a0poeb .jse-contents.svelte-a0poeb .cm-editor .cm-searchMatch{background-color:var(--jse-search-match-color, #ffe665);outline:var(--jse-search-match-outline, 1px solid #ffd700)}.jse-text-mode.svelte-a0poeb .jse-contents.svelte-a0poeb .cm-editor .cm-searchMatch.cm-searchMatch-selected{background-color:var(--jse-search-match-active-color, #ffd700);outline:var(--jse-search-match-active-outline, 1px solid #e1be00)}.jse-text-mode.svelte-a0poeb .jse-contents.svelte-a0poeb .cm-editor .cm-selectionMatch{background-color:var(--jse-search-match-background-color, rgba(153, 255, 119, 0.5019607843))}.jse-text-mode.svelte-a0poeb .jse-contents.svelte-a0poeb .cm-editor .cm-foldPlaceholder{background:var(--jse-tag-background, rgba(0, 0, 0, 0.2));color:var(--jse-tag-color, var(--jse-text-color-inverse, #fff));border:none;padding:0 var(--jse-padding, 10px)}.jse-text-mode.svelte-a0poeb .jse-contents.svelte-a0poeb .cm-editor .cm-tooltip{font-size:var(--jse-font-size, 16px);font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);color:var(--jse-tooltip-color, var(--jse-text-color, #4d4d4d));background:var(--jse-tooltip-background, var(--jse-modal-background, #f5f5f5));border:var(--jse-tooltip-border, var(--jse-main-border, 1px solid #d7d7d7))}.jse-text-mode.svelte-a0poeb .jse-contents.svelte-a0poeb .cm-editor .cm-diagnosticAction{background:var(--jse-tooltip-action-button-color, var(--jse-text-color-inverse, #fff));background:var(--jse-tooltip-action-button-background, #4d4d4d)}.jse-text-mode.svelte-a0poeb .jse-contents.svelte-a0poeb .cm-editor .cm-panels{border-bottom:var(--jse-panel-border, var(--jse-main-border, 1px solid #d7d7d7))}.jse-text-mode.svelte-a0poeb .jse-contents.svelte-a0poeb .cm-editor .cm-search{background:var(--jse-panel-background, #ebebeb);color:var(--jse-panel-color, var(--jse-text-color, #4d4d4d));font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px)}.jse-text-mode.svelte-a0poeb .jse-contents.svelte-a0poeb .cm-editor .cm-search input{font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size-text-mode-search, 80%);color:var(--jse-input-color, var(--jse-text-color, #4d4d4d));border:var(--jse-input-border, 1px solid #d8dbdf);background:var(--jse-input-background, var(--jse-background-color, #fff));margin-right:2px}.jse-text-mode.svelte-a0poeb .jse-contents.svelte-a0poeb .cm-editor .cm-search button{font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size-text-mode-search, 80%);color:var(--jse-panel-button-color, inherit);background:var(--jse-panel-button-background, transparent);border:none;cursor:pointer;text-transform:capitalize;padding:calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px);margin:0}.jse-text-mode.svelte-a0poeb .jse-contents.svelte-a0poeb .cm-editor .cm-search button:hover{color:var(--panel-button-color-highlight, var(--jse-text-color, #4d4d4d));background:var(--jse-panel-button-background-highlight, #e0e0e0)}.jse-text-mode.svelte-a0poeb .jse-contents.svelte-a0poeb .cm-editor .cm-search label{font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size-text-mode-search, 80%);padding-left:var(--jse-padding, 10px)}.jse-text-mode.svelte-a0poeb .jse-contents.svelte-a0poeb .cm-editor .cm-search label input{margin-right:2px}.jse-text-mode.svelte-a0poeb .jse-contents.svelte-a0poeb .cm-editor .cm-search button[name="close"]{width:32px;height:32px;font-size:24px;line-height:24px;padding:0;right:0;top:-4px}.jse-text-mode.svelte-a0poeb .jse-contents.svelte-a0poeb .cm-editor .cm-cursor-primary{border-color:var(--jse-text-color, #4d4d4d)}.jse-text-mode.svelte-a0poeb .jse-contents .jse-loading-space.svelte-a0poeb{flex:1}.jse-text-mode.svelte-a0poeb .jse-contents .jse-loading.svelte-a0poeb{flex:2;text-align:center;color:var(--jse-panel-color-readonly, #b2b2b2);box-sizing:border-box;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px)}.jse-text-mode.svelte-a0poeb .jse-contents.jse-preview.svelte-a0poeb{flex:1;font-family:var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace);font-size:var(--jse-font-size-mono, 14px);color:var(--jse-panel-color-readonly, #b2b2b2);overflow:auto;white-space:pre-wrap;word-break:break-word;padding:2px}'); + } + function O4(e20) { + var t10 = e20.slice(), n10 = 0 === t10[11].length; + return t10[98] = n10, t10; + } + function M4(e20) { + var t10, n10; + return t10 = new WL({ props: { readOnly: e20[1], onFormat: e20[17], onCompact: e20[18], onSort: e20[19], onTransform: e20[20], onToggleSearch: e20[21], onUndo: e20[22], onRedo: e20[23], canFormat: !e20[98], canCompact: !e20[98], canSort: !e20[98], canTransform: !e20[98], canUndo: e20[12], canRedo: e20[13], onRenderMenu: e20[4] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 2 & n11[0] && (r10.readOnly = e21[1]), 2048 & n11[0] && (r10.canFormat = !e21[98]), 2048 & n11[0] && (r10.canCompact = !e21[98]), 2048 & n11[0] && (r10.canSort = !e21[98]), 2048 & n11[0] && (r10.canTransform = !e21[98]), 4096 & n11[0] && (r10.canUndo = e21[12]), 8192 & n11[0] && (r10.canRedo = e21[13]), 16 & n11[0] && (r10.onRenderMenu = e21[4]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function E4(e20) { + var t10; + return { c: function() { + (t10 = ji("div")).innerHTML = '
loading...
', Ai(t10, "class", "jse-contents svelte-a0poeb"); + }, m: function(e21, n10) { + ki(e21, t10, n10); + }, p: Wo, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function A4(e20) { + var t10, n10, r10, o10, i10, a10 = e20[97] && P4(e20), s10 = !e20[97] && T4(e20); + return { c: function() { + t10 = ji("div"), n10 = $i(), a10 && a10.c(), r10 = $i(), s10 && s10.c(), o10 = _i(), Ai(t10, "class", "jse-contents svelte-a0poeb"), zi(t10, "jse-hidden", e20[97]); + }, m: function(c10, l10) { + ki(c10, t10, l10), e20[52](t10), ki(c10, n10, l10), a10 && a10.m(c10, l10), ki(c10, r10, l10), s10 && s10.m(c10, l10), ki(c10, o10, l10), i10 = true; + }, p: function(e21, n11) { + (!i10 || 268438016 & n11[0]) && zi(t10, "jse-hidden", e21[97]), e21[97] ? a10 ? (a10.p(e21, n11), 2560 & n11[0] && wa(a10, 1)) : ((a10 = P4(e21)).c(), wa(a10, 1), a10.m(r10.parentNode, r10)) : a10 && (ba(), xa(a10, 1, 1, function() { + a10 = null; + }), ka()), e21[97] ? s10 && (ba(), xa(s10, 1, 1, function() { + s10 = null; + }), ka()) : s10 ? (s10.p(e21, n11), 2560 & n11[0] && wa(s10, 1)) : ((s10 = T4(e21)).c(), wa(s10, 1), s10.m(o10.parentNode, o10)); + }, i: function(e21) { + i10 || (wa(a10), wa(s10), i10 = true); + }, o: function(e21) { + xa(a10), xa(s10), i10 = false; + }, d: function(i11) { + i11 && (wi(t10), wi(n10), wi(r10), wi(o10)), e20[52](null), a10 && a10.d(i11), s10 && s10.d(i11); + } }; + } + function P4(e20) { + var t10, n10, r10, o10, i10, a10 = tM(e20[11] || "", fs) + ""; + return t10 = new IN({ props: { icon: TP, type: "error", message: "The JSON document is larger than ".concat(FL(ps, 1024), ", ") + "and may crash your browser when loading it in text mode. Actual size: ".concat(FL(e20[11].length, 1024), "."), actions: [{ text: "Open anyway", title: "Open the document in text mode. This may freeze or crash your browser.", onClick: e20[24] }, { text: "Open in tree mode", title: "Open the document in tree mode. Tree mode can handle large documents.", onClick: e20[25] }, { text: "Cancel", title: "Cancel opening this large document.", onClick: e20[26] }], onClose: e20[5] } }), { c: function() { + Pa(t10.$$.fragment), n10 = $i(), r10 = ji("div"), o10 = Ci(a10), Ai(r10, "class", "jse-contents jse-preview svelte-a0poeb"); + }, m: function(e21, a11) { + Ta(t10, e21, a11), ki(e21, n10, a11), ki(e21, r10, a11), pi(r10, o10), i10 = true; + }, p: function(e21, n11) { + var r11 = {}; + 2048 & n11[0] && (r11.message = "The JSON document is larger than ".concat(FL(ps, 1024), ", ") + "and may crash your browser when loading it in text mode. Actual size: ".concat(FL(e21[11].length, 1024), ".")), t10.$set(r11), (!i10 || 2048 & n11[0]) && a10 !== (a10 = tM(e21[11] || "", fs) + "") && Ni(o10, a10); + }, i: function(e21) { + i10 || (wa(t10.$$.fragment, e21), i10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), i10 = false; + }, d: function(e21) { + e21 && (wi(n10), wi(r10)), Ra(t10, e21); + } }; + } + function T4(e20) { + var t10, n10, r10, o10, i10, a10 = !e20[14] && e20[0] && oO(e20[11]), s10 = e20[3] && R4(e20), c10 = e20[14] && N4(e20), l10 = a10 && I4(e20); + return o10 = new JN({ props: { validationErrors: e20[10], selectError: e20[27] } }), { c: function() { + s10 && s10.c(), t10 = $i(), c10 && c10.c(), n10 = $i(), l10 && l10.c(), r10 = $i(), Pa(o10.$$.fragment); + }, m: function(e21, a11) { + s10 && s10.m(e21, a11), ki(e21, t10, a11), c10 && c10.m(e21, a11), ki(e21, n10, a11), l10 && l10.m(e21, a11), ki(e21, r10, a11), Ta(o10, e21, a11), i10 = true; + }, p: function(e21, i11) { + e21[3] ? s10 ? (s10.p(e21, i11), 8 & i11[0] && wa(s10, 1)) : ((s10 = R4(e21)).c(), wa(s10, 1), s10.m(t10.parentNode, t10)) : s10 && (ba(), xa(s10, 1, 1, function() { + s10 = null; + }), ka()), e21[14] ? c10 ? (c10.p(e21, i11), 16384 & i11[0] && wa(c10, 1)) : ((c10 = N4(e21)).c(), wa(c10, 1), c10.m(n10.parentNode, n10)) : c10 && (ba(), xa(c10, 1, 1, function() { + c10 = null; + }), ka()), 18433 & i11[0] && (a10 = !e21[14] && e21[0] && oO(e21[11])), a10 ? l10 ? (l10.p(e21, i11), 18433 & i11[0] && wa(l10, 1)) : ((l10 = I4(e21)).c(), wa(l10, 1), l10.m(r10.parentNode, r10)) : l10 && (ba(), xa(l10, 1, 1, function() { + l10 = null; + }), ka()); + var u10 = {}; + 1024 & i11[0] && (u10.validationErrors = e21[10]), o10.$set(u10); + }, i: function(e21) { + i10 || (wa(s10), wa(c10), wa(l10), wa(o10.$$.fragment, e21), i10 = true); + }, o: function(e21) { + xa(s10), xa(c10), xa(l10), xa(o10.$$.fragment, e21), i10 = false; + }, d: function(e21) { + e21 && (wi(t10), wi(n10), wi(r10)), s10 && s10.d(e21), c10 && c10.d(e21), l10 && l10.d(e21), Ra(o10, e21); + } }; + } + function R4(e20) { + var t10, n10; + return t10 = new d4({ props: { editorState: e20[8] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 256 & n11[0] && (r10.editorState = e21[8]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function N4(e20) { + var t10, n10; + return t10 = new IN({ props: { type: "error", icon: TP, message: e20[14].message, actions: e20[15], onClick: e20[29], onClose: e20[5] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 16384 & n11[0] && (r10.message = e21[14].message), 32768 & n11[0] && (r10.actions = e21[15]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function I4(e20) { + var t10, n10; + return t10 = new IN({ props: { type: "success", message: "Do you want to format the JSON?", actions: [{ icon: xz, text: "Format", title: "Format JSON: add proper indentation and new lines (Ctrl+I)", onClick: e20[17] }, { icon: MP, text: "No thanks", title: "Close this message", onClick: e20[53] }], onClose: e20[5] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 1 & n11[0] && (r10.actions = [{ icon: xz, text: "Format", title: "Format JSON: add proper indentation and new lines (Ctrl+I)", onClick: e21[17] }, { icon: MP, text: "No thanks", title: "Close this message", onClick: e21[53] }]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function D4(e20) { + var t10, n10, r10, o10, i10, a10 = e20[2] && M4(O4(e20)), s10 = [A4, E4], c10 = []; + function l10(e21, t11) { + return 0 === t11 ? function(e23) { + var t12 = e23.slice(), n11 = t12[28](t12[11], t12[9]); + return t12[97] = n11, t12; + }(e21) : e21; + } + return r10 = function(e21, t11) { + return e21[16] ? 1 : 0; + }(e20), o10 = c10[r10] = s10[r10](l10(e20, r10)), { c: function() { + t10 = ji("div"), a10 && a10.c(), n10 = $i(), o10.c(), Ai(t10, "class", "jse-text-mode svelte-a0poeb"), zi(t10, "no-main-menu", !e20[2]); + }, m: function(o11, s11) { + ki(o11, t10, s11), a10 && a10.m(t10, null), pi(t10, n10), c10[r10].m(t10, null), e20[54](t10), i10 = true; + }, p: function(e21, s11) { + e21[2] ? a10 ? (a10.p(O4(e21), s11), 4 & s11[0] && wa(a10, 1)) : ((a10 = M4(O4(e21))).c(), wa(a10, 1), a10.m(t10, n10)) : a10 && (ba(), xa(a10, 1, 1, function() { + a10 = null; + }), ka()), o10.p(l10(e21, r10), s11), (!i10 || 4 & s11[0]) && zi(t10, "no-main-menu", !e21[2]); + }, i: function(e21) { + i10 || (wa(a10), wa(o10), i10 = true); + }, o: function(e21) { + xa(a10), xa(o10), i10 = false; + }, d: function(n11) { + n11 && wi(t10), a10 && a10.d(), c10[r10].d(), e20[54](null); + } }; + } + function q4(e20) { + return { from: e20.from || 0, to: e20.to || 0, message: e20.message || "", actions: e20.actions, severity: e20.severity }; + } + function z4(e20, t10, n10) { + var r10, o10, i10, a10, s10, c10, l10 = t10.readOnly, u10 = t10.mainMenuBar, f10 = t10.statusBar, d10 = t10.askToFormat, h10 = t10.externalContent, v10 = t10.externalSelection, p10 = t10.indentation, m10 = t10.tabSize, g10 = t10.escapeUnicodeCharacters, y10 = t10.parser, b10 = t10.validator, k10 = t10.validationParser, w10 = t10.onChange, x10 = t10.onChangeMode, j10 = t10.onSelect, S10 = t10.onError, C10 = t10.onFocus, $10 = t10.onBlur, _10 = t10.onRenderMenu, O10 = t10.onSortModal, M10 = t10.onTransformModal, E10 = Da("jsoneditor:TextMode"), A10 = { key: "Mod-i", run: Q10, shift: Y10, preventDefault: true }, P10 = "undefined" == typeof window; + E10("isSSR:", P10); + var T8 = false, R8 = [], N8 = new VF(), I10 = new VF(), D10 = new VF(), q10 = new VF(), z10 = new VF(), B10 = h10, L10 = Y_(B10, p10, y10), F10 = g10; + Gi(xo(ko().mark(function e21() { + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + if (!P10) { + e23.next = 2; + break; + } + return e23.abrupt("return"); + case 2: + try { + s10 = re2({ target: i10, initialText: be2(L10, T8) ? "" : r10.escapeValue(L10), readOnly: l10, indentation: p10 }); + } catch (e24) { + console.error(e24); + } + case 3: + case "end": + return e23.stop(); + } + }, e21); + }))), Qi(function() { + s10 && (E10("Destroy CodeMirror editor"), s10.destroy()); + }); + var V10 = false, H10 = false, W10 = A$(), U10 = A$(); + function J10() { + s10 && (E10("focus"), s10.focus()); + } + var K10 = false; + function G10(e21) { + E10("patch", e21); + var t11 = y10.parse(L10), n11 = rc(t11, e21), r11 = vc(t11, e21); + return se2({ text: y10.stringify(n11, null, p10) }), { json: n11, previousJson: t11, undo: r11, redo: e21 }; + } + function Q10() { + if (E10("format"), l10) + return false; + try { + var e21 = y10.parse(L10); + return se2({ text: y10.stringify(e21, null, p10) }), n10(0, d10 = true), true; + } catch (e23) { + S10(e23); + } + return false; + } + function Y10() { + if (E10("compact"), l10) + return false; + try { + var e21 = y10.parse(L10); + return se2({ text: y10.stringify(e21) }), n10(0, d10 = false), true; + } catch (e23) { + S10(e23); + } + return false; + } + function X10() { + if (E10("repair"), !l10) + try { + se2({ text: Hl(L10) }), n10(51, ke2 = $s), n10(14, we2 = null); + } catch (e21) { + S10(e21); + } + } + function Z10(e21) { + var t11 = e21.id, n11 = e21.rootPath, r11 = e21.onTransform, o11 = e21.onClose; + try { + var i11 = y10.parse(L10); + K10 = true, M10({ id: t11 || U10, json: i11, rootPath: n11 || [], onTransform: function(e23) { + r11 ? r11({ operations: e23, json: i11, transformedJson: rc(i11, e23) }) : (E10("onTransform", e23), G10(e23)); + }, onClose: function() { + K10 = false, J10(), o11 && o11(); + } }); + } catch (e23) { + S10(e23); + } + } + function ee2(e21, t11) { + E10("setSelection", { anchor: e21, head: t11 }), s10 && s10.dispatch(s10.state.update({ selection: { anchor: e21, head: t11 }, scrollIntoView: true })); + } + function te2(e21, t11) { + if (1 === t11.state.selection.ranges.length) { + var n11 = t11.state.selection.ranges[0], r11 = L10.slice(n11.from, n11.to); + if ("{" === r11 || "[" === r11) { + var o11 = bc.parse(L10), i11 = Object.keys(o11.pointers).find(function(e23) { + var t12; + return (null === (t12 = o11.pointers[e23].value) || void 0 === t12 ? void 0 : t12.pos) === n11.from; + }), a11 = o11.pointers[i11]; + if (i11 && a11 && a11.value && a11.valueEnd) + E10("pointer found, selecting inner contents of path:", i11, a11), ee2(a11.value.pos + 1, a11.valueEnd.pos - 1); + } + } + } + function ne2() { + return function(e21) { + var t11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + return [u0.of({ source: e21, config: t11 }), l0, _0]; + }(xe2, { delay: 300 }); + } + function re2(e21) { + var t11 = e21.target, r11 = e21.initialText, o11 = e21.readOnly, i11 = e21.indentation; + E10("Create CodeMirror editor", { readOnly: o11, indentation: i11 }); + var a11, l11, u11 = mV.create({ doc: r11, selection: ce2(v10), extensions: [JJ.of([UZ, A10]), N8.of(ne2()), M0(), CG(), OG, CK(), $X(), EY(), cK(), [mK, gK], mV.allowMultipleSelections.of(true), mV.transactionFilter.of(function(e23) { + if (!e23.docChanged || !e23.isUserEvent("input.type") && !e23.isUserEvent("input.complete")) + return e23; + var t12 = e23.startState.languageDataAt("indentOnInput", e23.startState.selection.main.head); + if (!t12.length) + return e23; + var n11 = e23.newDoc, r12 = e23.newSelection.main.head, o12 = n11.lineAt(r12); + if (r12 > o12.from + lY) + return e23; + var i12 = n11.sliceString(o12.from, r12); + if (!t12.some(function(e24) { + return e24.test(i12); + })) + return e23; + var a12, s11 = e23.state, c11 = -1, l12 = [], u12 = bo(s11.selection.ranges); + try { + for (u12.s(); !(a12 = u12.n()).done; ) { + var f11 = a12.value.head, d11 = s11.doc.lineAt(f11); + if (d11.from != c11) { + c11 = d11.from; + var h11 = eY(s11, d11.from); + if (null != h11) { + var v11 = /^\s*/.exec(d11.text)[0], p11 = ZQ(s11, h11); + v11 != p11 && l12.push({ from: d11.from, to: d11.from + v11.length, insert: p11 }); + } + } + } + } catch (e24) { + u12.e(e24); + } finally { + u12.f(); + } + return l12.length ? [e23, { changes: l12, sequential: true }] : e23; + }), IY(zY, { fallback: true }), GY(), [K2, V2], r4(), RK(), DK(), EK, (l11 = [k1, b1], a11 && l11.push(p1.of(a11)), l11), JJ.of([].concat(G2, Bo(WZ), Q1, UX, wY, o4, c0)), v4, S4({ hideFirstIndent: true }), zJ.domEventHandlers({ dblclick: te2 }), zJ.updateListener.of(function(e23) { + n10(8, c10 = e23.state), e23.docChanged ? pe2() : e23.selectionSet && ye2(); + }), new GQ(e1), x1({ top: true }), I10.of(mV.readOnly.of(o11)), q10.of(mV.tabSize.of(m10)), D10.of(he2(i11)), z10.of(zJ.theme({}, { dark: oe2() })), zJ.lineWrapping, $4] }); + return s10 = new zJ({ state: u11, parent: t11 }); + } + function oe2() { + return !!i10 && getComputedStyle(i10).getPropertyValue("--jse-theme").includes("dark"); + } + function ie2(e21) { + var t11 = e21.path, n11 = e21.message, o11 = function(e23, t12) { + try { + var n12 = bc.parse(e23), r11 = Zs(t12), o12 = n12.pointers[r11]; + if (o12) + return { path: t12, line: o12.key ? o12.key.line : o12.value ? o12.value.line : 0, column: o12.key ? o12.key.column : o12.value ? o12.value.column : 0, from: o12.key ? o12.key.pos : o12.value ? o12.value.pos : 0, to: o12.keyEnd ? o12.keyEnd.pos : o12.valueEnd ? o12.valueEnd.pos : 0 }; + } catch (e24) { + console.error(e24); + } + return { path: t12, line: 0, column: 0, from: 0, to: 0 }; + }(r10.escapeValue(L10), t11); + return { path: t11, line: o11.line, column: o11.column, from: o11.from, to: o11.to, message: n11, severity: Za.warning, actions: [] }; + } + function ae2(e21, t11) { + var n11 = e21.line, r11 = e21.column, o11 = e21.position, i11 = e21.message; + return { path: [], line: n11, column: r11, from: o11, to: o11, severity: Za.error, message: i11, actions: t11 && !l10 ? [{ name: "Auto repair", apply: function() { + return X10(); + } }] : null }; + } + function se2(e21) { + var t11 = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], o11 = Y_(e21, p10, y10), i11 = !Ow(e21, B10), a11 = B10; + B10 = e21, n10(11, L10 = o11), E10("setCodeMirrorContent", { isChanged: i11, forceUpdate: t11 }), s10 && (i11 || t11) && (be2(L10, T8) || s10.dispatch({ changes: { from: 0, to: s10.state.doc.length, insert: r10.escapeValue(L10) } }), ve2(), i11 && ge2(B10, a11)); + } + function ce2(e21) { + return bE(e21) ? $F.fromJSON(e21) : void 0; + } + function le2() { + return (le2 = xo(ko().mark(function e21() { + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + return E10("refresh"), e23.next = 3, fe2(); + case 3: + case "end": + return e23.stop(); + } + }, e21); + }))).apply(this, arguments); + } + function ue2() { + if (s10) { + var e21 = s10 ? r10.unescapeValue(s10.state.doc.toString()) : "", t11 = e21 !== L10; + if (E10("onChangeCodeMirrorValue", { isChanged: t11 }), t11) { + var o11 = B10; + n10(11, L10 = e21), B10 = { text: L10 }, ve2(), ge2(B10, o11), ca().then(ye2); + } + } + } + function fe2() { + return de2.apply(this, arguments); + } + function de2() { + return (de2 = xo(ko().mark(function e21() { + var t11; + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + return e23.next = 2, ca(); + case 2: + s10 && (t11 = oe2(), E10("updateTheme", { dark: t11 }), s10.dispatch({ effects: [z10.reconfigure(zJ.theme({}, { dark: t11 }))] })); + case 3: + case "end": + return e23.stop(); + } + }, e21); + }))).apply(this, arguments); + } + function he2(e21) { + return YQ.of("number" == typeof e21 ? " ".repeat(e21) : e21); + } + function ve2() { + n10(12, V10 = TX(s10.state) > 0), n10(13, H10 = RX(s10.state) > 0), E10({ canUndo: V10, canRedo: H10 }); + } + Qi(function() { + me2(); + }), ON({ onMount: Gi, onDestroy: Qi, getWindow: function() { + return SO(a10); + }, hasFocus: function() { + return K10 && document.hasFocus() || CO(a10); + }, onFocus: C10, onBlur: function() { + me2(), $10(); + } }); + var pe2 = Vy(ue2, 300); + function me2() { + pe2.flush(); + } + function ge2(e21, t11) { + w10 && w10(e21, t11, { contentErrors: je2(), patchResult: null }); + } + function ye2() { + j10(Ro({ type: Ya.text }, c10.selection.toJSON())); + } + function be2(e21, t11) { + return !!e21 && e21.length > ps && !t11; + } + var ke2 = $s, we2 = null; + function xe2() { + if (be2(L10, T8)) + return []; + var e21 = je2(); + return uI(e21) ? [q4(ae2(e21.parseError, e21.isRepairable))] : fI(e21) ? e21.validationErrors.map(ie2).map(q4) : []; + } + function je2() { + E10("validate:start"), me2(); + var e21 = Se2(r10.escapeValue(L10), b10, y10, k10); + return uI(e21) ? (n10(51, ke2 = e21.isRepairable ? _s : "invalid"), n10(14, we2 = e21.parseError), n10(10, R8 = [])) : (n10(51, ke2 = $s), n10(14, we2 = null), n10(10, R8 = (null == e21 ? void 0 : e21.validationErrors) || [])), E10("validate:end"), e21; + } + var Se2 = CB($N); + function Ce2() { + we2 && function(e21) { + E10("select parse error", e21); + var t11 = ae2(e21, false); + ee2(null != t11.from ? t11.from : 0, null != t11.to ? t11.to : 0), J10(); + }(we2); + } + var $e2 = { icon: fP, text: "Show me", title: "Move to the parse error location", onClick: Ce2 }; + return e20.$$set = function(e21) { + "readOnly" in e21 && n10(1, l10 = e21.readOnly), "mainMenuBar" in e21 && n10(2, u10 = e21.mainMenuBar), "statusBar" in e21 && n10(3, f10 = e21.statusBar), "askToFormat" in e21 && n10(0, d10 = e21.askToFormat), "externalContent" in e21 && n10(30, h10 = e21.externalContent), "externalSelection" in e21 && n10(31, v10 = e21.externalSelection), "indentation" in e21 && n10(32, p10 = e21.indentation), "tabSize" in e21 && n10(33, m10 = e21.tabSize), "escapeUnicodeCharacters" in e21 && n10(34, g10 = e21.escapeUnicodeCharacters), "parser" in e21 && n10(35, y10 = e21.parser), "validator" in e21 && n10(36, b10 = e21.validator), "validationParser" in e21 && n10(37, k10 = e21.validationParser), "onChange" in e21 && n10(38, w10 = e21.onChange), "onChangeMode" in e21 && n10(39, x10 = e21.onChangeMode), "onSelect" in e21 && n10(40, j10 = e21.onSelect), "onError" in e21 && n10(41, S10 = e21.onError), "onFocus" in e21 && n10(42, C10 = e21.onFocus), "onBlur" in e21 && n10(43, $10 = e21.onBlur), "onRenderMenu" in e21 && n10(4, _10 = e21.onRenderMenu), "onSortModal" in e21 && n10(44, O10 = e21.onSortModal), "onTransformModal" in e21 && n10(45, M10 = e21.onTransformModal); + }, e20.$$.update = function() { + 8 & e20.$$.dirty[1] && (r10 = aO({ escapeControlCharacters: false, escapeUnicodeCharacters: g10 })), 1073741824 & e20.$$.dirty[0] && se2(h10), 1 & e20.$$.dirty[1] && function(e21) { + if (bE(e21)) { + var t11 = ce2(e21); + !s10 || !t11 || c10 && c10.selection.eq(t11) || (E10("applyExternalSelection", t11), s10.dispatch({ selection: t11 })); + } + }(v10), 32 & e20.$$.dirty[1] && function(e21) { + E10("updateLinter", e21), s10 && s10.dispatch({ effects: N8.reconfigure(ne2()) }); + }(b10), 2 & e20.$$.dirty[1] && function(e21) { + s10 && (E10("updateIndentation", e21), s10.dispatch({ effects: D10.reconfigure(he2(e21)) })); + }(p10), 4 & e20.$$.dirty[1] && function(e21) { + s10 && (E10("updateTabSize", e21), s10.dispatch({ effects: q10.reconfigure(mV.tabSize.of(e21)) })); + }(m10), 2 & e20.$$.dirty[0] && function(e21) { + s10 && (E10("updateReadOnly", e21), s10.dispatch({ effects: [I10.reconfigure(mV.readOnly.of(e21))] })); + }(l10), 524296 & e20.$$.dirty[1] && F10 !== g10 && (n10(50, F10 = g10), E10("forceUpdateText", { escapeUnicodeCharacters: g10 }), s10 && s10.dispatch({ changes: { from: 0, to: s10.state.doc.length, insert: r10.escapeValue(L10) } })), 2 & e20.$$.dirty[0] | 1048576 & e20.$$.dirty[1] && n10(15, o10 = ke2 !== _s || l10 ? [$e2] : [{ icon: uP, text: "Auto repair", title: "Automatically repair JSON", onClick: X10 }, $e2]); + }, [d10, l10, u10, f10, _10, J10, i10, a10, c10, T8, R8, L10, V10, H10, we2, o10, P10, Q10, Y10, function() { + var e21; + if (!l10) + try { + var t11 = y10.parse(L10); + K10 = true, O10({ id: W10, json: t11, rootPath: [], onSort: (e21 = xo(ko().mark(function e23(t12) { + var n11; + return ko().wrap(function(e24) { + for (; ; ) + switch (e24.prev = e24.next) { + case 0: + n11 = t12.operations, E10("onSort", n11), G10(n11); + case 3: + case "end": + return e24.stop(); + } + }, e23); + })), function(t12) { + return e21.apply(this, arguments); + }), onClose: function() { + K10 = false, J10(); + } }); + } catch (e23) { + S10(e23); + } + }, function() { + l10 || Z10({ rootPath: [] }); + }, function() { + s10 && (i10 && i10.querySelector(".cm-search") ? G1(s10) : K1(s10)); + }, function() { + l10 || s10 && (OX(s10), J10()); + }, function() { + l10 || s10 && (MX(s10), J10()); + }, function() { + n10(9, T8 = true), se2(h10, true); + }, function() { + x10(Qa.tree); + }, function() { + ue2(); + }, function(e21) { + E10("select validation error", e21); + var t11 = ie2(e21), n11 = t11.from, r11 = t11.to; + null !== n11 && null !== r11 && (ee2(n11, r11), J10()); + }, be2, Ce2, h10, v10, p10, m10, g10, y10, b10, k10, w10, x10, j10, S10, C10, $10, O10, M10, G10, Z10, function() { + return le2.apply(this, arguments); + }, je2, F10, ke2, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(6, i10 = e21); + }); + }, function() { + return n10(0, d10 = false); + }, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(7, a10 = e21); + }); + }]; + } + var B4 = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, z4, D4, Zo, { readOnly: 1, mainMenuBar: 2, statusBar: 3, askToFormat: 0, externalContent: 30, externalSelection: 31, indentation: 32, tabSize: 33, escapeUnicodeCharacters: 34, parser: 35, validator: 36, validationParser: 37, onChange: 38, onChangeMode: 39, onSelect: 40, onError: 41, onFocus: 42, onBlur: 43, onRenderMenu: 4, onSortModal: 44, onTransformModal: 45, focus: 5, patch: 46, openTransformModal: 47, refresh: 48, validate: 49 }, _4, [-1, -1, -1, -1]), n10; + } + return Ao(t10, Ia), Do(t10, [{ key: "focus", get: function() { + return this.$$.ctx[5]; + } }, { key: "patch", get: function() { + return this.$$.ctx[46]; + } }, { key: "openTransformModal", get: function() { + return this.$$.ctx[47]; + } }, { key: "refresh", get: function() { + return this.$$.ctx[48]; + } }, { key: "validate", get: function() { + return this.$$.ctx[49]; + } }]), t10; + }(); + function L4(e20) { + var t10, n10; + return t10 = new EI({ props: { items: e20[0] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 1 & jo(n11, 1)[0] && (r10.items = e21[0]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function F4(e20, t10, n10) { + var r10, o10, i10 = t10.json, a10 = t10.readOnly, s10 = t10.historyState, c10 = t10.onSort, l10 = t10.onTransform, u10 = t10.onContextMenu, f10 = t10.onUndo, d10 = t10.onRedo, h10 = t10.onRenderMenu; + return e20.$$set = function(e21) { + "json" in e21 && n10(1, i10 = e21.json), "readOnly" in e21 && n10(2, a10 = e21.readOnly), "historyState" in e21 && n10(3, s10 = e21.historyState), "onSort" in e21 && n10(4, c10 = e21.onSort), "onTransform" in e21 && n10(5, l10 = e21.onTransform), "onContextMenu" in e21 && n10(6, u10 = e21.onContextMenu), "onUndo" in e21 && n10(7, f10 = e21.onUndo), "onRedo" in e21 && n10(8, d10 = e21.onRedo), "onRenderMenu" in e21 && n10(9, h10 = e21.onRenderMenu); + }, e20.$$.update = function() { + 510 & e20.$$.dirty && n10(10, r10 = a10 ? [{ type: "space" }] : [{ type: "button", icon: kP, title: "Sort", className: "jse-sort", onClick: c10, disabled: a10 || void 0 === i10 }, { type: "button", icon: cP, title: "Transform contents (filter, sort, project)", className: "jse-transform", onClick: l10, disabled: a10 || void 0 === i10 }, { type: "button", icon: yP, title: xs, className: "jse-contextmenu", onClick: u10 }, { type: "separator" }, { type: "button", icon: vP, title: "Undo (Ctrl+Z)", className: "jse-undo", onClick: f10, disabled: !s10.canUndo }, { type: "button", icon: hP, title: "Redo (Ctrl+Shift+Z)", className: "jse-redo", onClick: d10, disabled: !s10.canRedo }, { type: "space" }]), 1536 & e20.$$.dirty && n10(0, o10 = h10(r10)); + }, [o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, r10]; + } + var V4 = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, F4, L4, Zo, { json: 1, readOnly: 2, historyState: 3, onSort: 4, onTransform: 5, onContextMenu: 6, onUndo: 7, onRedo: 8, onRenderMenu: 9 }), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function H4(e20, t10, n10) { + var r10 = e20.slice(); + return r10[9] = t10[n10], r10; + } + function W4(e20) { + var t10, n10, r10, o10 = [e20[9].props], i10 = e20[9].component; + function a10(e21, t11) { + var n11 = {}; + if (void 0 !== t11 && 1 & t11) + n11 = Ma(o10, [Ea(e21[9].props)]); + else + for (var r11 = 0; r11 < o10.length; r11 += 1) + n11 = Jo(n11, o10[r11]); + return { props: n11 }; + } + return i10 && (t10 = Li(i10, a10(e20))), { c: function() { + t10 && Pa(t10.$$.fragment), n10 = _i(); + }, m: function(e21, o11) { + t10 && Ta(t10, e21, o11), ki(e21, n10, o11), r10 = true; + }, p: function(e21, r11) { + if (1 & r11 && i10 !== (i10 = e21[9].component)) { + if (t10) { + ba(); + var s10 = t10; + xa(s10.$$.fragment, 1, 0, function() { + Ra(s10, 1); + }), ka(); + } + i10 ? (Pa((t10 = Li(i10, a10(e21, r11))).$$.fragment), wa(t10.$$.fragment, 1), Ta(t10, n10.parentNode, n10)) : t10 = null; + } else if (i10) { + var c10 = 1 & r11 ? Ma(o10, [Ea(e21[9].props)]) : {}; + t10.$set(c10); + } + }, i: function(e21) { + r10 || (t10 && wa(t10.$$.fragment, e21), r10 = true); + }, o: function(e21) { + t10 && xa(t10.$$.fragment, e21), r10 = false; + }, d: function(e21) { + e21 && wi(n10), t10 && Ra(t10, e21); + } }; + } + function U4(e20) { + var t10, n10, r10 = e20[9].component, o10 = W4(e20); + return { c: function() { + o10.c(), t10 = _i(); + }, m: function(e21, r11) { + o10.m(e21, r11), ki(e21, t10, r11), n10 = true; + }, p: function(e21, n11) { + 1 & n11 && Zo(r10, r10 = e21[9].component) ? (ba(), xa(o10, 1, 1, Wo), ka(), (o10 = W4(e21)).c(), wa(o10, 1), o10.m(t10.parentNode, t10)) : o10.p(e21, n11); + }, i: function(e21) { + n10 || (wa(o10), n10 = true); + }, o: function(e21) { + xa(o10), n10 = false; + }, d: function(e21) { + e21 && wi(t10), o10.d(e21); + } }; + } + function J4(e20) { + for (var t10, n10, r10 = Ca(e20[0]), o10 = [], i10 = 0; i10 < r10.length; i10 += 1) + o10[i10] = U4(H4(e20, r10, i10)); + var a10 = function(e21) { + return xa(o10[e21], 1, 1, function() { + o10[e21] = null; + }); + }; + return { c: function() { + for (var e21 = 0; e21 < o10.length; e21 += 1) + o10[e21].c(); + t10 = _i(); + }, m: function(e21, r11) { + for (var i11 = 0; i11 < o10.length; i11 += 1) + o10[i11] && o10[i11].m(e21, r11); + ki(e21, t10, r11), n10 = true; + }, p: function(e21, n11) { + var i11 = jo(n11, 1)[0]; + if (1 & i11) { + var s10; + for (r10 = Ca(e21[0]), s10 = 0; s10 < r10.length; s10 += 1) { + var c10 = H4(e21, r10, s10); + o10[s10] ? (o10[s10].p(c10, i11), wa(o10[s10], 1)) : (o10[s10] = U4(c10), o10[s10].c(), wa(o10[s10], 1), o10[s10].m(t10.parentNode, t10)); + } + for (ba(), s10 = r10.length; s10 < o10.length; s10 += 1) + a10(s10); + ka(); + } + }, i: function(e21) { + if (!n10) { + for (var t11 = 0; t11 < r10.length; t11 += 1) + wa(o10[t11]); + n10 = true; + } + }, o: function(e21) { + o10 = o10.filter(Boolean); + for (var t11 = 0; t11 < o10.length; t11 += 1) + xa(o10[t11]); + n10 = false; + }, d: function(e21) { + e21 && wi(t10), xi(o10, e21); + } }; + } + function K4(e20, t10, n10) { + var r10, o10, i10 = t10.path, a10 = t10.value, s10 = t10.context, c10 = t10.enforceString, l10 = t10.selection, u10 = t10.searchResultItems; + function f10(e21, t11) { + return s10.onPatch(function(e23, t12) { + return e23.flatMap(function(e24) { + if (Ds(e24)) { + var n11 = Xs(e24.path); + if (n11.length > 0) { + for (var r11 = [e24], o11 = Qk(n11); o11.length > 0 && !Ys(t12, o11); ) + r11.unshift({ op: "add", path: Zs(o11), value: {} }), o11 = Qk(o11); + return r11; + } + } + return e24; + }); + }(e21, s10.getJson()), t11); + } + return e20.$$set = function(e21) { + "path" in e21 && n10(1, i10 = e21.path), "value" in e21 && n10(2, a10 = e21.value), "context" in e21 && n10(3, s10 = e21.context), "enforceString" in e21 && n10(4, c10 = e21.enforceString), "selection" in e21 && n10(5, l10 = e21.selection), "searchResultItems" in e21 && n10(6, u10 = e21.searchResultItems); + }, e20.$$.update = function() { + 40 & e20.$$.dirty && n10(7, r10 = !s10.readOnly && pE(l10) && zE(l10)), 254 & e20.$$.dirty && n10(0, o10 = s10.onRenderValue({ path: i10, value: a10, readOnly: s10.readOnly, enforceString: c10, isEditing: r10, parser: s10.parser, normalization: s10.normalization, selection: l10, searchResultItems: u10, onPatch: f10, onPasteJson: s10.onPasteJson, onSelect: s10.onSelect, onFind: s10.onFind, findNextInside: s10.findNextInside, focus: s10.focus })); + }, [o10, i10, a10, s10, c10, l10, u10, r10]; + } + var G4 = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, K4, J4, Zo, { path: 1, value: 2, context: 3, enforceString: 4, selection: 5, searchResultItems: 6 }), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function Q4(e20) { + mi(e20, "svelte-1o4m3u7", '.jse-inline-value.svelte-1o4m3u7{font-family:var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace);font-size:var(--jse-font-size-mono, 14px);line-height:var(--jse-line-height, calc(1em + 4px));border:none;padding:0 calc(0.5 * var(--jse-padding, 10px));background:transparent;color:inherit;cursor:pointer}.jse-inline-value.svelte-1o4m3u7:hover{background:var(--jse-hover-background-color, rgba(0, 0, 0, 0.06))}.jse-inline-value.jse-selected.svelte-1o4m3u7{background:var(--jse-selection-background-color, #d3d3d3)}'); + } + function Y4(e20) { + var t10, n10, r10, o10, i10, a10 = tM(null !== (t10 = e20[2].stringify(e20[1])) && void 0 !== t10 ? t10 : "", 50) + ""; + return { c: function() { + n10 = ji("button"), r10 = Ci(a10), Ai(n10, "type", "button"), Ai(n10, "class", "jse-inline-value svelte-1o4m3u7"), zi(n10, "jse-selected", e20[3]); + }, m: function(t11, a11) { + ki(t11, n10, a11), pi(n10, r10), o10 || (i10 = Oi(n10, "dblclick", e20[5]), o10 = true); + }, p: function(e21, t11) { + var o11, i11 = jo(t11, 1)[0]; + 6 & i11 && a10 !== (a10 = tM(null !== (o11 = e21[2].stringify(e21[1])) && void 0 !== o11 ? o11 : "", 50) + "") && Ni(r10, a10), 8 & i11 && zi(n10, "jse-selected", e21[3]); + }, i: Wo, o: Wo, d: function(e21) { + e21 && wi(n10), o10 = false, i10(); + } }; + } + function X4(e20, t10, n10) { + var r10 = t10.path, o10 = t10.value, i10 = t10.parser, a10 = t10.isSelected, s10 = t10.onEdit; + return e20.$$set = function(e21) { + "path" in e21 && n10(0, r10 = e21.path), "value" in e21 && n10(1, o10 = e21.value), "parser" in e21 && n10(2, i10 = e21.parser), "isSelected" in e21 && n10(3, a10 = e21.isSelected), "onEdit" in e21 && n10(4, s10 = e21.onEdit); + }, [r10, o10, i10, a10, s10, function() { + return s10(r10); + }]; + } + var Z4 = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, X4, Y4, Zo, { path: 0, value: 1, parser: 2, isSelected: 3, onEdit: 4 }, Q4), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function e32(e20) { + mi(e20, "svelte-2v0aqj", ".jse-column-header.svelte-2v0aqj.svelte-2v0aqj{background:none;border:none;font-family:inherit;font-size:inherit;color:inherit;display:flex;gap:var(--jse-padding, 10px);padding:calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px)) calc(0.5 * var(--jse-padding, 10px));width:100%}.jse-column-header.svelte-2v0aqj.svelte-2v0aqj:hover{background:var(--jse-table-header-background-highlight, #e8e8e8)}.jse-column-header.svelte-2v0aqj.svelte-2v0aqj:not(.jse-column-header.jse-readonly){cursor:pointer}.jse-column-header.svelte-2v0aqj span.jse-column-sort-icon.svelte-2v0aqj{height:1em}"); + } + function t3(e20) { + var t10, n10, r10, o10; + return n10 = new jM({ props: { data: e20[1] === ts.asc ? gP : sP } }), { c: function() { + t10 = ji("span"), Pa(n10.$$.fragment), Ai(t10, "class", "jse-column-sort-icon svelte-2v0aqj"), Ai(t10, "title", r10 = "Currently sorted in ".concat(e20[2], " order")); + }, m: function(e21, r11) { + ki(e21, t10, r11), Ta(n10, t10, null), o10 = true; + }, p: function(e21, i10) { + var a10 = {}; + 2 & i10 && (a10.data = e21[1] === ts.asc ? gP : sP), n10.$set(a10), (!o10 || 4 & i10 && r10 !== (r10 = "Currently sorted in ".concat(e21[2], " order"))) && Ai(t10, "title", r10); + }, i: function(e21) { + o10 || (wa(n10.$$.fragment, e21), o10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), o10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(n10); + } }; + } + function n3(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10 = tM(e20[3], 50) + "", u10 = void 0 !== e20[1] && t3(e20); + return { c: function() { + t10 = ji("button"), n10 = ji("span"), r10 = Ci(l10), o10 = $i(), u10 && u10.c(), Ai(n10, "class", "jse-column-name"), Ai(t10, "type", "button"), Ai(t10, "class", "jse-column-header svelte-2v0aqj"), Ai(t10, "title", i10 = e20[0] ? e20[3] : e20[3] + " (Click to sort the data by this column)"), zi(t10, "jse-readonly", e20[0]); + }, m: function(i11, l11) { + ki(i11, t10, l11), pi(t10, n10), pi(n10, r10), pi(t10, o10), u10 && u10.m(t10, null), a10 = true, s10 || (c10 = Oi(t10, "click", e20[4]), s10 = true); + }, p: function(e21, n11) { + var o11 = jo(n11, 1)[0]; + (!a10 || 8 & o11) && l10 !== (l10 = tM(e21[3], 50) + "") && Ni(r10, l10), void 0 !== e21[1] ? u10 ? (u10.p(e21, o11), 2 & o11 && wa(u10, 1)) : ((u10 = t3(e21)).c(), wa(u10, 1), u10.m(t10, null)) : u10 && (ba(), xa(u10, 1, 1, function() { + u10 = null; + }), ka()), (!a10 || 9 & o11 && i10 !== (i10 = e21[0] ? e21[3] : e21[3] + " (Click to sort the data by this column)")) && Ai(t10, "title", i10), (!a10 || 1 & o11) && zi(t10, "jse-readonly", e21[0]); + }, i: function(e21) { + a10 || (wa(u10), a10 = true); + }, o: function(e21) { + xa(u10), a10 = false; + }, d: function(e21) { + e21 && wi(t10), u10 && u10.d(), s10 = false, c10(); + } }; + } + function r3(e20, t10, n10) { + var r10, o10, i10, a10 = t10.path, s10 = t10.sortedColumn, c10 = t10.readOnly, l10 = t10.onSort; + return e20.$$set = function(e21) { + "path" in e21 && n10(5, a10 = e21.path), "sortedColumn" in e21 && n10(6, s10 = e21.sortedColumn), "readOnly" in e21 && n10(0, c10 = e21.readOnly), "onSort" in e21 && n10(7, l10 = e21.onSort); + }, e20.$$.update = function() { + var t11; + (32 & e20.$$.dirty && n10(3, r10 = _w(a10) ? "values" : JO(a10)), 96 & e20.$$.dirty) && n10(1, o10 = s10 && Ow(a10, null === (t11 = s10) || void 0 === t11 ? void 0 : t11.path) ? s10.sortDirection : void 0); + 2 & e20.$$.dirty && n10(2, i10 = o10 ? Es[o10] : void 0); + }, [c10, o10, i10, r10, function() { + c10 || l10({ path: a10, sortDirection: o10 === ts.asc ? ts.desc : ts.asc }); + }, a10, s10, l10]; + } + var o3; + var i3; + var a3 = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, r3, n3, Zo, { path: 5, sortedColumn: 6, readOnly: 0, onSort: 7 }, e32), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function s3(e20, t10) { + return o3 || (i3 = /* @__PURE__ */ new WeakMap(), o3 = new ResizeObserver(function(e21) { + var t11, n10 = bo(e21); + try { + for (n10.s(); !(t11 = n10.n()).done; ) { + var r10 = t11.value, o10 = i3.get(r10.target); + o10 && o10(r10.target); + } + } catch (e23) { + n10.e(e23); + } finally { + n10.f(); + } + })), i3.set(e20, t10), o3.observe(e20), { destroy: function() { + i3.delete(e20), o3.unobserve(e20); + } }; + } + function c3(e20) { + var t10, n10; + return t10 = new qD({ props: { items: e20[2], onCloseContextMenu: e20[1], tip: e20[0] ? "Tip: you can open this context menu via right-click or with Ctrl+Q" : void 0 } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = jo(n11, 1)[0], o10 = {}; + 4 & r10 && (o10.items = e21[2]), 2 & r10 && (o10.onCloseContextMenu = e21[1]), 1 & r10 && (o10.tip = e21[0] ? "Tip: you can open this context menu via right-click or with Ctrl+Q" : void 0), t10.$set(o10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function l3(e20, t10, n10) { + var r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10 = t10.json, v10 = t10.documentState, p10 = t10.parser, m10 = t10.showTip, g10 = t10.onCloseContextMenu, y10 = t10.onRenderContextMenu, b10 = t10.onEditValue, k10 = t10.onEditRow, w10 = t10.onToggleEnforceString, x10 = t10.onCut, j10 = t10.onCopy, S10 = t10.onPaste, C10 = t10.onRemove, $10 = t10.onDuplicateRow, _10 = t10.onInsertBeforeRow, O10 = t10.onInsertAfterRow, M10 = t10.onRemoveRow; + return e20.$$set = function(e21) { + "json" in e21 && n10(3, h10 = e21.json), "documentState" in e21 && n10(4, v10 = e21.documentState), "parser" in e21 && n10(5, p10 = e21.parser), "showTip" in e21 && n10(0, m10 = e21.showTip), "onCloseContextMenu" in e21 && n10(1, g10 = e21.onCloseContextMenu), "onRenderContextMenu" in e21 && n10(6, y10 = e21.onRenderContextMenu), "onEditValue" in e21 && n10(7, b10 = e21.onEditValue), "onEditRow" in e21 && n10(8, k10 = e21.onEditRow), "onToggleEnforceString" in e21 && n10(9, w10 = e21.onToggleEnforceString), "onCut" in e21 && n10(10, x10 = e21.onCut), "onCopy" in e21 && n10(11, j10 = e21.onCopy), "onPaste" in e21 && n10(12, S10 = e21.onPaste), "onRemove" in e21 && n10(13, C10 = e21.onRemove), "onDuplicateRow" in e21 && n10(14, $10 = e21.onDuplicateRow), "onInsertBeforeRow" in e21 && n10(15, _10 = e21.onInsertBeforeRow), "onInsertAfterRow" in e21 && n10(16, O10 = e21.onInsertAfterRow), "onRemoveRow" in e21 && n10(17, M10 = e21.onRemoveRow); + }, e20.$$.update = function() { + 16 & e20.$$.dirty && n10(24, r10 = v10.selection), 8 & e20.$$.dirty && n10(26, o10 = void 0 !== h10), 16777216 & e20.$$.dirty && n10(19, i10 = !!r10), 16777224 & e20.$$.dirty && n10(25, a10 = void 0 !== h10 && r10 ? Ws(h10, JE(r10)) : void 0), 83886080 & e20.$$.dirty && n10(20, s10 = o10 && (mE(r10) || vE(r10) || pE(r10))), 83886080 & e20.$$.dirty && n10(23, c10 = o10 && null != r10 && ME(r10)), 41943040 & e20.$$.dirty && n10(21, l10 = c10 && !Ql(a10)), 50331696 & e20.$$.dirty && n10(22, u10 = null != r10 && void 0 !== a10 && oE(a10, v10.enforceStringMap, Zs(JE(r10)), p10)), 16514944 & e20.$$.dirty && n10(18, d10 = [{ type: "separator" }, { type: "row", items: [{ type: "column", items: [{ type: "label", text: "Table cell:" }, { type: "dropdown-button", main: { type: "button", onClick: function() { + return b10(); + }, icon: dP, text: "Edit", title: "Edit the value (Double-click on the value)", disabled: !c10 }, width: "11em", items: [{ type: "button", icon: dP, text: "Edit", title: "Edit the value (Double-click on the value)", onClick: function() { + return b10(); + }, disabled: !c10 }, { type: "button", icon: u10 ? iM : aM, text: "Enforce string", title: "Enforce keeping the value as string when it contains a numeric value", onClick: function() { + return w10(); + }, disabled: !l10 }] }, { type: "dropdown-button", main: { type: "button", onClick: function() { + return x10(true); + }, icon: eP, text: "Cut", title: "Cut selected contents, formatted with indentation (Ctrl+X)", disabled: !s10 }, width: "10em", items: [{ type: "button", icon: eP, text: "Cut formatted", title: "Cut selected contents, formatted with indentation (Ctrl+X)", onClick: function() { + return x10(true); + }, disabled: !s10 }, { type: "button", icon: eP, text: "Cut compacted", title: "Cut selected contents, without indentation (Ctrl+Shift+X)", onClick: function() { + return x10(false); + }, disabled: !s10 }] }, { type: "dropdown-button", main: { type: "button", onClick: function() { + return j10(true); + }, icon: CP, text: "Copy", title: "Copy selected contents, formatted with indentation (Ctrl+C)", disabled: !s10 }, width: "12em", items: [{ type: "button", icon: CP, text: "Copy formatted", title: "Copy selected contents, formatted with indentation (Ctrl+C)", onClick: function() { + return j10(false); + }, disabled: !s10 }, { type: "button", icon: CP, text: "Copy compacted", title: "Copy selected contents, without indentation (Ctrl+Shift+C)", onClick: function() { + return j10(false); + }, disabled: !s10 }] }, { type: "button", onClick: function() { + return S10(); + }, icon: XA, text: "Paste", title: "Paste clipboard contents (Ctrl+V)", disabled: !i10 }, { type: "button", onClick: function() { + return C10(); + }, icon: QA, text: "Remove", title: "Remove selected contents (Delete)", disabled: !s10 }] }, { type: "column", items: [{ type: "label", text: "Table row:" }, { type: "button", onClick: function() { + return k10(); + }, icon: dP, text: "Edit row", title: "Edit the current row", disabled: !s10 }, { type: "button", onClick: function() { + return $10(); + }, icon: AP, text: "Duplicate row", title: "Duplicate the current row", disabled: !i10 }, { type: "button", onClick: function() { + return _10(); + }, icon: $P, text: "Insert before", title: "Insert a row before the current row", disabled: !i10 }, { type: "button", onClick: function() { + return O10(); + }, icon: $P, text: "Insert after", title: "Insert a row after the current row", disabled: !i10 }, { type: "button", onClick: function() { + return M10(); + }, icon: QA, text: "Remove row", title: "Remove current row", disabled: !i10 }] }] }]), 262208 & e20.$$.dirty && n10(2, f10 = y10(d10)); + }, [m10, g10, f10, h10, v10, p10, y10, b10, k10, w10, x10, j10, S10, C10, $10, _10, O10, M10, d10, i10, s10, l10, u10, c10, r10, a10, o10]; + } + var u3 = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, l3, c3, Zo, { json: 3, documentState: 4, parser: 5, showTip: 0, onCloseContextMenu: 1, onRenderContextMenu: 6, onEditValue: 7, onEditRow: 8, onToggleEnforceString: 9, onCut: 10, onCopy: 11, onPaste: 12, onRemove: 13, onDuplicateRow: 14, onInsertBeforeRow: 15, onInsertAfterRow: 16, onRemoveRow: 17 }), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function f3(e20) { + mi(e20, "svelte-fxr3ye", '.jse-table-mode-welcome.svelte-fxr3ye.svelte-fxr3ye{flex:1;display:flex;flex-direction:column;overflow:auto;align-items:center;border-left:var(--jse-main-border, 1px solid #d7d7d7);border-right:var(--jse-main-border, 1px solid #d7d7d7)}.jse-table-mode-welcome.svelte-fxr3ye.svelte-fxr3ye:last-child{border-bottom:var(--jse-main-border, 1px solid #d7d7d7)}.jse-table-mode-welcome.svelte-fxr3ye .jse-space.jse-before.svelte-fxr3ye{flex:1}.jse-table-mode-welcome.svelte-fxr3ye .jse-nested-arrays.svelte-fxr3ye{display:flex;flex-direction:column;gap:var(--jse-padding, 10px);max-width:300px;margin:2em var(--jse-padding, 10px);font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px)}.jse-table-mode-welcome.svelte-fxr3ye .jse-nested-arrays .jse-nested-arrays-info.svelte-fxr3ye{color:var(--jse-panel-color-readonly, #b2b2b2)}.jse-table-mode-welcome.svelte-fxr3ye .jse-nested-arrays button.jse-nested-array-action.svelte-fxr3ye{border:none;background:transparent;color:inherit;cursor:pointer;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);padding:5px;margin:0;background:var(--jse-button-primary-background, var(--jse-theme-color, #3883fa));color:var(--jse-button-primary-color, #fff);padding:var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px));border-radius:3px;text-align:left}.jse-table-mode-welcome.svelte-fxr3ye .jse-nested-arrays button.jse-nested-array-action.svelte-fxr3ye:hover{background:var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff))}.jse-table-mode-welcome.svelte-fxr3ye .jse-nested-arrays button.jse-nested-array-action.svelte-fxr3ye:disabled{background:var(--jse-button-primary-background-disabled, #9d9d9d)}.jse-table-mode-welcome.svelte-fxr3ye .jse-nested-arrays button.jse-nested-array-action .jse-nested-array-count.svelte-fxr3ye{opacity:0.5;white-space:nowrap}.jse-table-mode-welcome.svelte-fxr3ye .jse-space.jse-after.svelte-fxr3ye{flex:2}'); + } + function d3(e20, t10, n10) { + var r10 = e20.slice(); + r10[14] = t10[n10]; + var o10 = r10[8](r10[14]); + return r10[15] = o10, r10; + } + function h3(e20) { + var t10, n10; + return { c: function() { + t10 = Ci(e20[6]), n10 = Ci(" cannot be opened in table mode."); + }, m: function(e21, r10) { + ki(e21, t10, r10), ki(e21, n10, r10); + }, p: function(e21, n11) { + 64 & n11 && Ni(t10, e21[6]); + }, d: function(e21) { + e21 && (wi(t10), wi(n10)); + } }; + } + function v3(e20) { + var t10; + return { c: function() { + t10 = Ci("An object cannot be opened in table mode. You can open a nested array instead, or open the\n document in tree mode."); + }, m: function(e21, n10) { + ki(e21, t10, n10); + }, p: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function p3(e20) { + var t10; + return { c: function() { + t10 = Ci("You can open the document in tree mode instead."); + }, m: function(e21, n10) { + ki(e21, t10, n10); + }, d: function(e21) { + e21 && wi(t10); + } }; + } + function m3(e20) { + var t10, n10, r10; + return { c: function() { + t10 = Ci("You can open the document in tree mode instead, or paste a JSON Array using "), (n10 = ji("b")).textContent = "Ctrl+V", r10 = Ci("."); + }, m: function(e21, o10) { + ki(e21, t10, o10), ki(e21, n10, o10), ki(e21, r10, o10); + }, d: function(e21) { + e21 && (wi(t10), wi(n10), wi(r10)); + } }; + } + function g3(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10 = JO(e20[14]) + "", p10 = e20[15] + "", m10 = 1 !== e20[15] ? "items" : "item"; + function g10() { + return e20[12](e20[14]); + } + return { c: function() { + t10 = ji("button"), n10 = Ci(e20[7]), r10 = Ci(' "'), o10 = Ci(v10), i10 = Ci('"\n '), a10 = ji("span"), s10 = Ci("("), c10 = Ci(p10), l10 = $i(), u10 = Ci(m10), f10 = Ci(")"), Ai(a10, "class", "jse-nested-array-count svelte-fxr3ye"), Ai(t10, "type", "button"), Ai(t10, "class", "jse-nested-array-action svelte-fxr3ye"); + }, m: function(e21, v11) { + ki(e21, t10, v11), pi(t10, n10), pi(t10, r10), pi(t10, o10), pi(t10, i10), pi(t10, a10), pi(a10, s10), pi(a10, c10), pi(a10, l10), pi(a10, u10), pi(a10, f10), d10 || (h10 = Oi(t10, "click", g10), d10 = true); + }, p: function(t11, r11) { + e20 = t11, 128 & r11 && Ni(n10, e20[7]), 8 & r11 && v10 !== (v10 = JO(e20[14]) + "") && Ni(o10, v10), 8 & r11 && p10 !== (p10 = e20[15] + "") && Ni(c10, p10), 8 & r11 && m10 !== (m10 = 1 !== e20[15] ? "items" : "item") && Ni(u10, m10); + }, d: function(e21) { + e21 && wi(t10), d10 = false, h10(); + } }; + } + function y3(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10, p10, m10, g10, y10; + function b10(e21, t11) { + return e21[5] ? v3 : h3; + } + var k10 = b10(e20), w10 = k10(e20); + function x10(e21, t11) { + return e21[4] && !e21[0] ? m3 : p3; + } + for (var j10 = x10(e20), S10 = j10(e20), C10 = Ca(e20[3]), $10 = [], _10 = 0; _10 < C10.length; _10 += 1) + $10[_10] = g3(d3(e20, C10, _10)); + return { c: function() { + t10 = ji("div"), n10 = ji("div"), r10 = $i(), o10 = ji("div"), i10 = ji("div"), a10 = Ci(e20[6]), s10 = $i(), c10 = ji("div"), w10.c(), l10 = $i(), S10.c(), u10 = $i(); + for (var g11 = 0; g11 < $10.length; g11 += 1) + $10[g11].c(); + f10 = $i(), d10 = ji("button"), h10 = Ci(e20[7]), v10 = Ci(" in tree mode"), p10 = $i(), m10 = ji("div"), Ai(n10, "class", "jse-space jse-before svelte-fxr3ye"), Ai(i10, "class", "jse-nested-arrays-title"), Ai(c10, "class", "jse-nested-arrays-info svelte-fxr3ye"), Ai(d10, "type", "button"), Ai(d10, "class", "jse-nested-array-action svelte-fxr3ye"), Ai(o10, "class", "jse-nested-arrays svelte-fxr3ye"), Ai(m10, "class", "jse-space jse-after svelte-fxr3ye"), Ai(t10, "class", "jse-table-mode-welcome svelte-fxr3ye"); + }, m: function(b11, k11) { + ki(b11, t10, k11), pi(t10, n10), pi(t10, r10), pi(t10, o10), pi(o10, i10), pi(i10, a10), pi(o10, s10), pi(o10, c10), w10.m(c10, null), pi(c10, l10), S10.m(c10, null), pi(o10, u10); + for (var x11 = 0; x11 < $10.length; x11 += 1) + $10[x11] && $10[x11].m(o10, null); + pi(o10, f10), pi(o10, d10), pi(d10, h10), pi(d10, v10), pi(t10, p10), pi(t10, m10), g10 || (y10 = Oi(d10, "click", e20[13]), g10 = true); + }, p: function(e21, t11) { + var n11 = jo(t11, 1)[0]; + if (64 & n11 && Ni(a10, e21[6]), k10 === (k10 = b10(e21)) && w10 ? w10.p(e21, n11) : (w10.d(1), (w10 = k10(e21)) && (w10.c(), w10.m(c10, l10))), j10 !== (j10 = x10(e21)) && (S10.d(1), (S10 = j10(e21)) && (S10.c(), S10.m(c10, null))), 394 & n11) { + var r11; + for (C10 = Ca(e21[3]), r11 = 0; r11 < C10.length; r11 += 1) { + var i11 = d3(e21, C10, r11); + $10[r11] ? $10[r11].p(i11, n11) : ($10[r11] = g3(i11), $10[r11].c(), $10[r11].m(o10, f10)); + } + for (; r11 < $10.length; r11 += 1) + $10[r11].d(1); + $10.length = C10.length; + } + 128 & n11 && Ni(h10, e21[7]); + }, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10), w10.d(), S10.d(), xi($10, e21), g10 = false, y10(); + } }; + } + function b3(e20, t10, n10) { + var r10, o10, i10, a10, s10, c10 = t10.text, l10 = t10.json, u10 = t10.readOnly, f10 = t10.parser, d10 = t10.openJSONEditorModal, h10 = t10.onChangeMode; + return e20.$$set = function(e21) { + "text" in e21 && n10(9, c10 = e21.text), "json" in e21 && n10(10, l10 = e21.json), "readOnly" in e21 && n10(0, u10 = e21.readOnly), "parser" in e21 && n10(11, f10 = e21.parser), "openJSONEditorModal" in e21 && n10(1, d10 = e21.openJSONEditorModal), "onChangeMode" in e21 && n10(2, h10 = e21.onChangeMode); + }, e20.$$.update = function() { + 1 & e20.$$.dirty && n10(7, r10 = u10 ? "View" : "Edit"), 1024 & e20.$$.dirty && n10(3, s10 = l10 ? function(e21) { + var t11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 2, n11 = []; + return function e23(r11, o11) { + Rs(r11) && o11.length < t11 && Object.keys(r11).forEach(function(t12) { + e23(r11[t12], o11.concat(t12)); + }), Ts(r11) && n11.push(o11); + }(e21, []), n11; + }(l10).slice(0, 99).filter(function(e21) { + return e21.length > 0; + }) : []), 8 & e20.$$.dirty && n10(5, o10 = !_w(s10)), 1536 & e20.$$.dirty && n10(4, i10 = void 0 === l10 && ("" === c10 || void 0 === c10)), 3120 & e20.$$.dirty && n10(6, a10 = o10 ? "Object with nested arrays" : i10 ? "An empty document" : Rs(l10) ? "An object" : Ts(l10) ? "An empty array" : "A ".concat(eu(l10, f10))); + }, [u10, d10, h10, s10, i10, o10, a10, r10, function(e21) { + return Ws(l10, e21).length; + }, c10, l10, f10, function(e21) { + return d10(e21); + }, function() { + return h10(Qa.tree); + }]; + } + var k3 = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, b3, y3, Zo, { text: 9, json: 10, readOnly: 0, parser: 11, openJSONEditorModal: 1, onChangeMode: 2 }, f3), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function w3(e20) { + mi(e20, "svelte-1nml1r3", ".jse-column-header.svelte-1nml1r3{background:none;border:none;font-family:inherit;font-size:inherit;color:inherit;display:flex;gap:var(--jse-padding, 10px);padding:calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px)) calc(0.5 * var(--jse-padding, 10px));width:100%}.jse-column-header.svelte-1nml1r3:hover{background:var(--jse-table-header-background-highlight, #e8e8e8)}.jse-column-header.svelte-1nml1r3:not(.jse-column-header.jse-readonly){cursor:pointer}"); + } + function x3(e20) { + var t10, n10, r10, o10, i10, a10; + return n10 = new jM({ props: { data: EP } }), { c: function() { + t10 = ji("button"), Pa(n10.$$.fragment), Ai(t10, "type", "button"), Ai(t10, "class", "jse-column-header svelte-1nml1r3"), Ai(t10, "title", r10 = "The Columns are created by sampling ".concat(e20[1], " items out of ").concat(e20[0], ". ") + "If you're missing a column, click here to sample all of the items instead of a subset. This is slower."); + }, m: function(r11, s10) { + ki(r11, t10, s10), Ta(n10, t10, null), o10 = true, i10 || (a10 = Oi(t10, "click", e20[3]), i10 = true); + }, p: function(e21, n11) { + var i11 = jo(n11, 1)[0]; + (!o10 || 3 & i11 && r10 !== (r10 = "The Columns are created by sampling ".concat(e21[1], " items out of ").concat(e21[0], ". ") + "If you're missing a column, click here to sample all of the items instead of a subset. This is slower.")) && Ai(t10, "title", r10); + }, i: function(e21) { + o10 || (wa(n10.$$.fragment, e21), o10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), o10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(n10), i10 = false, a10(); + } }; + } + function j3(e20, t10, n10) { + var r10 = t10.count, o10 = t10.maxSampleCount, i10 = t10.onRefresh; + return e20.$$set = function(e21) { + "count" in e21 && n10(0, r10 = e21.count), "maxSampleCount" in e21 && n10(1, o10 = e21.maxSampleCount), "onRefresh" in e21 && n10(2, i10 = e21.onRefresh); + }, [r10, o10, i10, function() { + return i10(); + }]; + } + var S3 = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, j3, x3, Zo, { count: 0, maxSampleCount: 1, onRefresh: 2 }, w3), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function C3(e20) { + mi(e20, "svelte-1bunebm", '.jse-table-mode.svelte-1bunebm.svelte-1bunebm{flex:1;display:flex;flex-direction:column;position:relative;background:var(--jse-background-color, #fff);min-width:0;min-height:0;font-family:var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace);font-size:var(--jse-font-size-mono, 14px);color:var(--jse-text-color, #4d4d4d);line-height:var(--jse-line-height, calc(1em + 4px))}.jse-table-mode.no-main-menu.svelte-1bunebm.svelte-1bunebm{border-top:var(--jse-main-border, 1px solid #d7d7d7)}.jse-table-mode.svelte-1bunebm .jse-hidden-input-label.svelte-1bunebm{position:fixed;right:0;top:0;width:0;height:0}.jse-table-mode.svelte-1bunebm .jse-hidden-input-label .jse-hidden-input.svelte-1bunebm{width:0;height:0;padding:0;border:0;outline:none}.jse-table-mode.svelte-1bunebm .jse-contents.svelte-1bunebm{flex:1;align-items:start;flex-direction:column;display:flex;overflow:auto;overflow-anchor:none;border-left:var(--jse-main-border, 1px solid #d7d7d7);border-right:var(--jse-main-border, 1px solid #d7d7d7)}.jse-table-mode.svelte-1bunebm .jse-contents.svelte-1bunebm:last-child{border-bottom:var(--jse-main-border, 1px solid #d7d7d7)}.jse-table-mode.svelte-1bunebm .jse-contents table.jse-table-main.svelte-1bunebm{border-collapse:collapse;border-spacing:0}.jse-table-mode.svelte-1bunebm .jse-contents table.jse-table-main .jse-table-invisible-start-section td.svelte-1bunebm,.jse-table-mode.svelte-1bunebm .jse-contents table.jse-table-main .jse-table-invisible-end-section td.svelte-1bunebm{margin:0;padding:0}.jse-table-mode.svelte-1bunebm .jse-contents table.jse-table-main .jse-table-invisible-end-section td.svelte-1bunebm{padding-bottom:var(--jse-padding, 10px)}.jse-table-mode.svelte-1bunebm .jse-contents table.jse-table-main .jse-table-row.svelte-1bunebm:hover{background-color:var(--jse-table-row-odd-background, rgba(0, 0, 0, 0.05))}.jse-table-mode.svelte-1bunebm .jse-contents table.jse-table-main .jse-table-row .jse-table-cell.svelte-1bunebm{padding:0 var(--jse-padding, 10px) 0 0;vertical-align:top;white-space:nowrap;height:var(--jse-line-height, calc(1em + 4px))}.jse-table-mode.svelte-1bunebm .jse-contents table.jse-table-main .jse-table-row .jse-table-cell.jse-table-cell-header.svelte-1bunebm,.jse-table-mode.svelte-1bunebm .jse-contents table.jse-table-main .jse-table-row .jse-table-cell.jse-table-cell-gutter.svelte-1bunebm{font-weight:normal;text-align:left;color:var(--jse-text-readonly, #8d8d8d);background:var(--jse-table-header-background, #f5f5f5)}.jse-table-mode.svelte-1bunebm .jse-contents table.jse-table-main .jse-table-row .jse-table-cell.jse-table-cell-header.svelte-1bunebm{padding:0;position:sticky;top:0}.jse-table-mode.svelte-1bunebm .jse-contents table.jse-table-main .jse-table-row .jse-table-cell.jse-table-cell-header .jse-table-root-error.svelte-1bunebm{padding:calc(0.5 * var(--jse-padding, 10px)) var(--jse-padding, 10px) calc(0.5 * var(--jse-padding, 10px)) calc(0.5 * var(--jse-padding, 10px))}.jse-table-mode.svelte-1bunebm .jse-contents table.jse-table-main .jse-table-row .jse-table-cell.jse-table-cell-gutter.svelte-1bunebm{padding:0 var(--jse-padding, 10px) 0 calc(0.5 * var(--jse-padding, 10px))}.jse-table-mode.svelte-1bunebm .jse-contents table.jse-table-main .jse-table-row .jse-table-cell.jse-selected-value.svelte-1bunebm>.jse-value{background:var(--jse-selection-background-color, #d3d3d3)}.jse-table-mode.svelte-1bunebm .jse-contents table.jse-table-main .jse-table-row .jse-table-cell.svelte-1bunebm div{display:inline-flex}.jse-table-mode.svelte-1bunebm .jse-contents table.jse-table-main .jse-table-row .jse-table-cell.svelte-1bunebm div.jse-value{overflow-wrap:normal;white-space:nowrap;vertical-align:top;display:inline-block}.jse-table-mode.svelte-1bunebm .jse-contents table.jse-table-main .jse-table-row .jse-table-cell .jse-context-menu-anchor.svelte-1bunebm{position:relative;vertical-align:top}.jse-table-mode.svelte-1bunebm .jse-contents.jse-contents-loading.svelte-1bunebm{align-items:unset}.jse-table-mode.svelte-1bunebm .jse-contents.jse-contents-loading .jse-loading-space.svelte-1bunebm{flex:1}.jse-table-mode.svelte-1bunebm .jse-contents.jse-contents-loading .jse-loading.svelte-1bunebm{flex:2;text-align:center;color:var(--jse-panel-color-readonly, #b2b2b2);box-sizing:border-box;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px)}'); + } + function $3(e20, t10, n10) { + var r10, o10 = e20.slice(); + o10[123] = t10[n10], o10[128] = n10; + var i10 = o10[23].startIndex + o10[128]; + o10[124] = i10; + var a10 = o10[22].rows[o10[124]]; + o10[125] = a10; + var s10 = NB([String(o10[124])], null === (r10 = o10[125]) || void 0 === r10 ? void 0 : r10.row); + return o10[126] = s10, o10; + } + function _3(e20, t10, n10) { + var r10, o10 = e20.slice(); + o10[129] = t10[n10], o10[135] = n10; + var i10 = [String(o10[124])].concat(o10[129]); + o10[130] = i10; + var a10 = Ws(o10[123], o10[129]); + o10[131] = a10; + var s10 = pE(o10[11].selection) && AE(o10[11].selection.path, o10[130]); + o10[132] = s10; + var c10 = null === (r10 = o10[125]) || void 0 === r10 ? void 0 : r10.columns[o10[135]]; + o10[133] = c10; + var l10 = NB(o10[130], o10[133]); + return o10[126] = l10, o10; + } + function O3(e20, t10, n10) { + var r10 = e20.slice(); + return r10[129] = t10[n10], r10; + } + function M3(e20) { + var t10, n10 = e20.slice(), r10 = NB([], null === (t10 = n10[22]) || void 0 === t10 ? void 0 : t10.root); + return n10[126] = r10, n10; + } + function E3(e20) { + var t10, n10; + return t10 = new V4({ props: { json: e20[8], readOnly: e20[0], historyState: e20[20], onSort: e20[41], onTransform: e20[42], onUndo: e20[43], onRedo: e20[44], onContextMenu: e20[33], onRenderMenu: e20[5] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 256 & n11[0] && (r10.json = e21[8]), 1 & n11[0] && (r10.readOnly = e21[0]), 1048576 & n11[0] && (r10.historyState = e21[20]), 32 & n11[0] && (r10.onRenderMenu = e21[5]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function A3(e20) { + var t10; + return { c: function() { + (t10 = ji("div")).innerHTML = '
loading...
', Ai(t10, "class", "jse-contents jse-contents-loading svelte-1bunebm"); + }, m: function(e21, n10) { + ki(e21, t10, n10); + }, p: Wo, i: Wo, o: Wo, d: function(e21) { + e21 && wi(t10); + } }; + } + function P3(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10 = [N3, R3, T3], f10 = []; + function d10(e21, t11) { + return e21[25] ? 0 : e21[17] && void 0 !== e21[16] && "" !== e21[16] ? 1 : 2; + } + return o10 = d10(e20), i10 = f10[o10] = u10[o10](e20), { c: function() { + t10 = ji("label"), n10 = ji("input"), r10 = $i(), i10.c(), a10 = _i(), Ai(n10, "type", "text"), n10.readOnly = true, Ai(n10, "tabindex", "-1"), Ai(n10, "class", "jse-hidden-input svelte-1bunebm"), Ai(t10, "class", "jse-hidden-input-label svelte-1bunebm"); + }, m: function(i11, u11) { + ki(i11, t10, u11), pi(t10, n10), e20[73](n10), ki(i11, r10, u11), f10[o10].m(i11, u11), ki(i11, a10, u11), s10 = true, c10 || (l10 = Oi(n10, "paste", e20[38]), c10 = true); + }, p: function(e21, t11) { + var n11 = o10; + (o10 = d10(e21)) === n11 ? f10[o10].p(e21, t11) : (ba(), xa(f10[n11], 1, 1, function() { + f10[n11] = null; + }), ka(), (i10 = f10[o10]) ? i10.p(e21, t11) : (i10 = f10[o10] = u10[o10](e21)).c(), wa(i10, 1), i10.m(a10.parentNode, a10)); + }, i: function(e21) { + s10 || (wa(i10), s10 = true); + }, o: function(e21) { + xa(i10), s10 = false; + }, d: function(n11) { + n11 && (wi(t10), wi(r10), wi(a10)), e20[73](null), f10[o10].d(n11), c10 = false, l10(); + } }; + } + function T3(e20) { + var t10, n10; + return t10 = new k3({ props: { text: e20[16], json: e20[8], readOnly: e20[0], parser: e20[2], openJSONEditorModal: e20[40], onChangeMode: e20[4] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 65536 & n11[0] && (r10.text = e21[16]), 256 & n11[0] && (r10.json = e21[8]), 1 & n11[0] && (r10.readOnly = e21[0]), 4 & n11[0] && (r10.parser = e21[2]), 16 & n11[0] && (r10.onChangeMode = e21[4]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function R3(e20) { + var t10, n10, r10, o10; + return t10 = new IN({ props: { type: "error", message: "The loaded JSON document is invalid and could not be repaired automatically.", actions: e20[0] ? [] : [{ icon: lP, text: "Repair manually", title: 'Open the document in "code" mode and repair it manually', onClick: e20[36] }] } }), r10 = new iL({ props: { text: e20[16], json: e20[8], indentation: e20[3], parser: e20[2] } }), { c: function() { + Pa(t10.$$.fragment), n10 = $i(), Pa(r10.$$.fragment); + }, m: function(e21, i10) { + Ta(t10, e21, i10), ki(e21, n10, i10), Ta(r10, e21, i10), o10 = true; + }, p: function(e21, n11) { + var o11 = {}; + 1 & n11[0] && (o11.actions = e21[0] ? [] : [{ icon: lP, text: "Repair manually", title: 'Open the document in "code" mode and repair it manually', onClick: e21[36] }]), t10.$set(o11); + var i10 = {}; + 65536 & n11[0] && (i10.text = e21[16]), 256 & n11[0] && (i10.json = e21[8]), 8 & n11[0] && (i10.indentation = e21[3]), 4 & n11[0] && (i10.parser = e21[2]), r10.$set(i10); + }, i: function(e21) { + o10 || (wa(t10.$$.fragment, e21), wa(r10.$$.fragment, e21), o10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), xa(r10.$$.fragment, e21), o10 = false; + }, d: function(e21) { + e21 && wi(n10), Ra(t10, e21), Ra(r10, e21); + } }; + } + function N3(e20) { + for (var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10, p10, m10, g10, y10, b10, k10, w10, x10, j10, S10, C10 = !_w(null === (t10 = e20[22]) || void 0 === t10 ? void 0 : t10.root), $10 = C10 && I3(M3(e20)), _10 = Ca(e20[10]), O10 = [], M10 = 0; M10 < _10.length; M10 += 1) + O10[M10] = q3(O3(e20, _10, M10)); + for (var E10 = function(e21) { + return xa(O10[e21], 1, 1, function() { + O10[e21] = null; + }); + }, A10 = e20[24] && z3(e20), P10 = Ca(e20[23].visibleItems), T8 = [], R8 = 0; R8 < P10.length; R8 += 1) + T8[R8] = K3($3(e20, P10, R8)); + var N8 = function(e21) { + return xa(T8[e21], 1, 1, function() { + T8[e21] = null; + }); + }, I10 = e20[18] && G3(e20), D10 = e20[19] && Q3(e20); + return w10 = new JN({ props: { validationErrors: e20[12], selectError: e20[39] } }), { c: function() { + n10 = ji("div"), r10 = ji("table"), o10 = ji("tbody"), i10 = ji("tr"), a10 = ji("th"), $10 && $10.c(), s10 = $i(); + for (var t11 = 0; t11 < O10.length; t11 += 1) + O10[t11].c(); + c10 = $i(), A10 && A10.c(), l10 = $i(), u10 = ji("tr"), f10 = ji("td"), h10 = $i(); + for (var x11 = 0; x11 < T8.length; x11 += 1) + T8[x11].c(); + v10 = $i(), p10 = ji("tr"), m10 = ji("td"), y10 = $i(), I10 && I10.c(), b10 = $i(), D10 && D10.c(), k10 = $i(), Pa(w10.$$.fragment), Ai(a10, "class", "jse-table-cell jse-table-cell-header svelte-1bunebm"), Ai(i10, "class", "jse-table-row jse-table-row-header svelte-1bunebm"), Ai(f10, "colspan", d10 = e20[10].length), Ai(f10, "class", "svelte-1bunebm"), Di(f10, "height", e20[23].startHeight + "px"), Ai(u10, "class", "jse-table-invisible-start-section"), Ai(m10, "colspan", g10 = e20[10].length), Ai(m10, "class", "svelte-1bunebm"), Di(m10, "height", e20[23].endHeight + "px"), Ai(p10, "class", "jse-table-invisible-end-section"), Ai(r10, "class", "jse-table-main svelte-1bunebm"), Ai(n10, "class", "jse-contents svelte-1bunebm"); + }, m: function(t11, d11) { + ki(t11, n10, d11), pi(n10, r10), pi(r10, o10), pi(o10, i10), pi(i10, a10), $10 && $10.m(a10, null), pi(i10, s10); + for (var g11 = 0; g11 < O10.length; g11 += 1) + O10[g11] && O10[g11].m(i10, null); + pi(i10, c10), A10 && A10.m(i10, null), pi(o10, l10), pi(o10, u10), pi(u10, f10), pi(o10, h10); + for (var C11 = 0; C11 < T8.length; C11 += 1) + T8[C11] && T8[C11].m(o10, null); + pi(o10, v10), pi(o10, p10), pi(p10, m10), e20[76](n10), ki(t11, y10, d11), I10 && I10.m(t11, d11), ki(t11, b10, d11), D10 && D10.m(t11, d11), ki(t11, k10, d11), Ta(w10, t11, d11), x10 = true, j10 || (S10 = [ci(s3.call(null, n10, e20[45])), Oi(n10, "scroll", e20[29])], j10 = true); + }, p: function(e21, t11) { + var n11; + if (4194304 & t11[0] && (C10 = !_w(null === (n11 = e21[22]) || void 0 === n11 ? void 0 : n11.root)), C10 ? $10 ? ($10.p(M3(e21), t11), 4194304 & t11[0] && wa($10, 1)) : (($10 = I3(M3(e21))).c(), wa($10, 1), $10.m(a10, null)) : $10 && (ba(), xa($10, 1, 1, function() { + $10 = null; + }), ka()), 268438529 & t11[0]) { + var r11; + for (_10 = Ca(e21[10]), r11 = 0; r11 < _10.length; r11 += 1) { + var s11 = O3(e21, _10, r11); + O10[r11] ? (O10[r11].p(s11, t11), wa(O10[r11], 1)) : (O10[r11] = q3(s11), O10[r11].c(), wa(O10[r11], 1), O10[r11].m(i10, c10)); + } + for (ba(), r11 = _10.length; r11 < O10.length; r11 += 1) + E10(r11); + ka(); + } + if (e21[24] ? A10 ? (A10.p(e21, t11), 16777216 & t11[0] && wa(A10, 1)) : ((A10 = z3(e21)).c(), wa(A10, 1), A10.m(i10, null)) : A10 && (ba(), xa(A10, 1, 1, function() { + A10 = null; + }), ka()), (!x10 || 1024 & t11[0] && d10 !== (d10 = e21[10].length)) && Ai(f10, "colspan", d10), 8388608 & t11[0] && Di(f10, "height", e21[23].startHeight + "px"), 165678085 & t11[0] | 33281 & t11[1]) { + var l11; + for (P10 = Ca(e21[23].visibleItems), l11 = 0; l11 < P10.length; l11 += 1) { + var u11 = $3(e21, P10, l11); + T8[l11] ? (T8[l11].p(u11, t11), wa(T8[l11], 1)) : (T8[l11] = K3(u11), T8[l11].c(), wa(T8[l11], 1), T8[l11].m(o10, v10)); + } + for (ba(), l11 = P10.length; l11 < T8.length; l11 += 1) + N8(l11); + ka(); + } + (!x10 || 1024 & t11[0] && g10 !== (g10 = e21[10].length)) && Ai(m10, "colspan", g10), 8388608 & t11[0] && Di(m10, "height", e21[23].endHeight + "px"), e21[18] ? I10 ? (I10.p(e21, t11), 262144 & t11[0] && wa(I10, 1)) : ((I10 = G3(e21)).c(), wa(I10, 1), I10.m(b10.parentNode, b10)) : I10 && (ba(), xa(I10, 1, 1, function() { + I10 = null; + }), ka()), e21[19] ? D10 ? (D10.p(e21, t11), 524288 & t11[0] && wa(D10, 1)) : ((D10 = Q3(e21)).c(), wa(D10, 1), D10.m(k10.parentNode, k10)) : D10 && (ba(), xa(D10, 1, 1, function() { + D10 = null; + }), ka()); + var h11 = {}; + 4096 & t11[0] && (h11.validationErrors = e21[12]), w10.$set(h11); + }, i: function(e21) { + if (!x10) { + wa($10); + for (var t11 = 0; t11 < _10.length; t11 += 1) + wa(O10[t11]); + wa(A10); + for (var n11 = 0; n11 < P10.length; n11 += 1) + wa(T8[n11]); + wa(I10), wa(D10), wa(w10.$$.fragment, e21), x10 = true; + } + }, o: function(e21) { + xa($10), O10 = O10.filter(Boolean); + for (var t11 = 0; t11 < O10.length; t11 += 1) + xa(O10[t11]); + xa(A10), T8 = T8.filter(Boolean); + for (var n11 = 0; n11 < T8.length; n11 += 1) + xa(T8[n11]); + xa(I10), xa(D10), xa(w10.$$.fragment, e21), x10 = false; + }, d: function(t11) { + t11 && (wi(n10), wi(y10), wi(b10), wi(k10)), $10 && $10.d(), xi(O10, t11), A10 && A10.d(), xi(T8, t11), e20[76](null), I10 && I10.d(t11), D10 && D10.d(t11), Ra(w10, t11), j10 = false, Qo(S10); + } }; + } + function I3(e20) { + var t10, n10, r10 = e20[126] && D3(e20); + return { c: function() { + r10 && r10.c(), t10 = _i(); + }, m: function(e21, o10) { + r10 && r10.m(e21, o10), ki(e21, t10, o10), n10 = true; + }, p: function(e21, n11) { + e21[126] ? r10 ? (r10.p(e21, n11), 4194304 & n11[0] && wa(r10, 1)) : ((r10 = D3(e21)).c(), wa(r10, 1), r10.m(t10.parentNode, t10)) : r10 && (ba(), xa(r10, 1, 1, function() { + r10 = null; + }), ka()); + }, i: function(e21) { + n10 || (wa(r10), n10 = true); + }, o: function(e21) { + xa(r10), n10 = false; + }, d: function(e21) { + e21 && wi(t10), r10 && r10.d(e21); + } }; + } + function D3(e20) { + var t10, n10, r10; + return n10 = new wq({ props: { validationError: e20[126], onExpand: LL } }), { c: function() { + t10 = ji("div"), Pa(n10.$$.fragment), Ai(t10, "class", "jse-table-root-error svelte-1bunebm"); + }, m: function(e21, o10) { + ki(e21, t10, o10), Ta(n10, t10, null), r10 = true; + }, p: function(e21, t11) { + var r11 = {}; + 4194304 & t11[0] && (r11.validationError = e21[126]), n10.$set(r11); + }, i: function(e21) { + r10 || (wa(n10.$$.fragment, e21), r10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), r10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(n10); + } }; + } + function q3(e20) { + var t10, n10, r10; + return n10 = new a3({ props: { path: e20[129], sortedColumn: e20[11].sortedColumn, readOnly: e20[0], onSort: e20[28] } }), { c: function() { + t10 = ji("th"), Pa(n10.$$.fragment), Ai(t10, "class", "jse-table-cell jse-table-cell-header svelte-1bunebm"); + }, m: function(e21, o10) { + ki(e21, t10, o10), Ta(n10, t10, null), r10 = true; + }, p: function(e21, t11) { + var r11 = {}; + 1024 & t11[0] && (r11.path = e21[129]), 2048 & t11[0] && (r11.sortedColumn = e21[11].sortedColumn), 1 & t11[0] && (r11.readOnly = e21[0]), n10.$set(r11); + }, i: function(e21) { + r10 || (wa(n10.$$.fragment, e21), r10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), r10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(n10); + } }; + } + function z3(e20) { + var t10, n10, r10; + return n10 = new S3({ props: { count: Array.isArray(e20[8]) ? e20[8].length : 0, maxSampleCount: e20[9], onRefresh: e20[74] } }), { c: function() { + t10 = ji("th"), Pa(n10.$$.fragment), Ai(t10, "class", "jse-table-cell jse-table-cell-header svelte-1bunebm"); + }, m: function(e21, o10) { + ki(e21, t10, o10), Ta(n10, t10, null), r10 = true; + }, p: function(e21, t11) { + var r11 = {}; + 256 & t11[0] && (r11.count = Array.isArray(e21[8]) ? e21[8].length : 0), 512 & t11[0] && (r11.maxSampleCount = e21[9]), 512 & t11[0] && (r11.onRefresh = e21[74]), n10.$set(r11); + }, i: function(e21) { + r10 || (wa(n10.$$.fragment, e21), r10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), r10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(n10); + } }; + } + function B3(e20) { + var t10, n10; + return t10 = new wq({ props: { validationError: e20[126], onExpand: LL } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 12582912 & n11[0] && (r10.validationError = e21[126]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function L3(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10 = e20[124] + "", l10 = e20[126] && B3(e20); + function u10() { + for (var t11, n11 = arguments.length, r11 = new Array(n11), o11 = 0; o11 < n11; o11++) + r11[o11] = arguments[o11]; + return (t11 = e20)[75].apply(t11, [e20[124]].concat(r11)); + } + return { c: function() { + t10 = ji("th"), n10 = Ci(c10), r10 = $i(), l10 && l10.c(), Ai(t10, "class", "jse-table-cell jse-table-cell-gutter svelte-1bunebm"); + }, m: function(e21, c11) { + ki(e21, t10, c11), pi(t10, n10), pi(t10, r10), l10 && l10.m(t10, null), i10 = true, a10 || (s10 = ci(o10 = s3.call(null, t10, u10)), a10 = true); + }, p: function(r11, a11) { + e20 = r11, (!i10 || 8388608 & a11[0]) && c10 !== (c10 = e20[124] + "") && Ni(n10, c10), e20[126] ? l10 ? (l10.p(e20, a11), 12582912 & a11[0] && wa(l10, 1)) : ((l10 = B3(e20)).c(), wa(l10, 1), l10.m(t10, null)) : l10 && (ba(), xa(l10, 1, 1, function() { + l10 = null; + }), ka()), o10 && Yo(o10.update) && 8388608 & a11[0] && o10.update.call(null, u10); + }, i: function(e21) { + i10 || (wa(l10), i10 = true); + }, o: function(e21) { + xa(l10), i10 = false; + }, d: function(e21) { + e21 && wi(t10), l10 && l10.d(), a10 = false, s10(); + } }; + } + function F3(e20) { + var t10, n10; + return t10 = new G4({ props: { path: e20[130], value: void 0 !== e20[131] ? e20[131] : "", enforceString: oE(e20[131], e20[11].enforceStringMap, Zs(e20[130]), e20[21].parser), selection: e20[132] ? e20[11].selection : null, searchResultItems: e20[27], context: e20[21] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 8389632 & n11[0] && (r10.path = e21[130]), 8389632 & n11[0] && (r10.value = void 0 !== e21[131] ? e21[131] : ""), 10488832 & n11[0] && (r10.enforceString = oE(e21[131], e21[11].enforceStringMap, Zs(e21[130]), e21[21].parser)), 8391680 & n11[0] && (r10.selection = e21[132] ? e21[11].selection : null), 2097152 & n11[0] && (r10.context = e21[21]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function V3(e20) { + var t10, n10; + return t10 = new Z4({ props: { path: e20[130], value: e20[131], parser: e20[2], isSelected: e20[132], onEdit: e20[40] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 8389632 & n11[0] && (r10.path = e21[130]), 8389632 & n11[0] && (r10.value = e21[131]), 4 & n11[0] && (r10.parser = e21[2]), 8391680 & n11[0] && (r10.isSelected = e21[132]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function H3(e20) { + var t10, n10, r10, o10; + return n10 = new XD({ props: { selected: true, onContextMenu: e20[31] } }), { c: function() { + t10 = ji("div"), Pa(n10.$$.fragment), r10 = $i(), Ai(t10, "class", "jse-context-menu-anchor svelte-1bunebm"); + }, m: function(e21, i10) { + ki(e21, t10, i10), Ta(n10, t10, null), ki(e21, r10, i10), o10 = true; + }, p: Wo, i: function(e21) { + o10 || (wa(n10.$$.fragment, e21), o10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), o10 = false; + }, d: function(e21) { + e21 && (wi(t10), wi(r10)), Ra(n10); + } }; + } + function W3(e20) { + var t10, n10; + return t10 = new wq({ props: { validationError: e20[126], onExpand: LL } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 12583936 & n11[0] && (r10.validationError = e21[126]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function U3(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10 = !e20[0] && e20[132] && !zE(e20[11].selection), u10 = [V3, F3], f10 = []; + function d10(e21, t11) { + return 8389632 & t11[0] && (n10 = null), null == n10 && (n10 = !!Ql(e21[131])), n10 ? 0 : 1; + } + r10 = d10(e20, [-1, -1, -1, -1, -1]), o10 = f10[r10] = u10[r10](e20); + var h10 = l10 && H3(e20), v10 = e20[126] && W3(e20); + return { c: function() { + t10 = ji("td"), o10.c(), i10 = _i(), h10 && h10.c(), a10 = _i(), v10 && v10.c(), Ai(t10, "class", "jse-table-cell svelte-1bunebm"), Ai(t10, "data-path", s10 = OO(e20[130])), zi(t10, "jse-selected-value", e20[132]); + }, m: function(e21, n11) { + ki(e21, t10, n11), f10[r10].m(t10, null), pi(t10, i10), h10 && h10.m(t10, null), pi(t10, a10), v10 && v10.m(t10, null), c10 = true; + }, p: function(e21, n11) { + var p10 = r10; + (r10 = d10(e21, n11)) === p10 ? f10[r10].p(e21, n11) : (ba(), xa(f10[p10], 1, 1, function() { + f10[p10] = null; + }), ka(), (o10 = f10[r10]) ? o10.p(e21, n11) : (o10 = f10[r10] = u10[r10](e21)).c(), wa(o10, 1), o10.m(t10, i10)), 8391681 & n11[0] && (l10 = !e21[0] && e21[132] && !zE(e21[11].selection)), l10 ? h10 ? (h10.p(e21, n11), 8391681 & n11[0] && wa(h10, 1)) : ((h10 = H3(e21)).c(), wa(h10, 1), h10.m(t10, a10)) : h10 && (ba(), xa(h10, 1, 1, function() { + h10 = null; + }), ka()), e21[126] ? v10 ? (v10.p(e21, n11), 12583936 & n11[0] && wa(v10, 1)) : ((v10 = W3(e21)).c(), wa(v10, 1), v10.m(t10, null)) : v10 && (ba(), xa(v10, 1, 1, function() { + v10 = null; + }), ka()), (!c10 || 8389632 & n11[0] && s10 !== (s10 = OO(e21[130]))) && Ai(t10, "data-path", s10), (!c10 || 8391680 & n11[0]) && zi(t10, "jse-selected-value", e21[132]); + }, i: function(e21) { + c10 || (wa(o10), wa(h10), wa(v10), c10 = true); + }, o: function(e21) { + xa(o10), xa(h10), xa(v10), c10 = false; + }, d: function(e21) { + e21 && wi(t10), f10[r10].d(), h10 && h10.d(), v10 && v10.d(); + } }; + } + function J3(e20) { + var t10; + return { c: function() { + Ai(t10 = ji("td"), "class", "jse-table-cell svelte-1bunebm"); + }, m: function(e21, n10) { + ki(e21, t10, n10); + }, d: function(e21) { + e21 && wi(t10); + } }; + } + function K3(e20) { + for (var t10, n10, r10, o10, i10 = e20[124], a10 = L3(e20), s10 = Ca(e20[10]), c10 = [], l10 = 0; l10 < s10.length; l10 += 1) + c10[l10] = U3(_3(e20, s10, l10)); + var u10 = function(e21) { + return xa(c10[e21], 1, 1, function() { + c10[e21] = null; + }); + }, f10 = e20[24] && J3(); + return { c: function() { + t10 = ji("tr"), a10.c(), n10 = $i(); + for (var e21 = 0; e21 < c10.length; e21 += 1) + c10[e21].c(); + r10 = $i(), f10 && f10.c(), Ai(t10, "class", "jse-table-row svelte-1bunebm"); + }, m: function(e21, i11) { + ki(e21, t10, i11), a10.m(t10, null), pi(t10, n10); + for (var s11 = 0; s11 < c10.length; s11 += 1) + c10[s11] && c10[s11].m(t10, null); + pi(t10, r10), f10 && f10.m(t10, null), o10 = true; + }, p: function(e21, o11) { + if (8388608 & o11[0] && Zo(i10, i10 = e21[124]) ? (ba(), xa(a10, 1, 1, Wo), ka(), (a10 = L3(e21)).c(), wa(a10, 1), a10.m(t10, n10)) : a10.p(e21, o11), 148900869 & o11[0] | 513 & o11[1]) { + var l11; + for (s10 = Ca(e21[10]), l11 = 0; l11 < s10.length; l11 += 1) { + var d10 = _3(e21, s10, l11); + c10[l11] ? (c10[l11].p(d10, o11), wa(c10[l11], 1)) : (c10[l11] = U3(d10), c10[l11].c(), wa(c10[l11], 1), c10[l11].m(t10, r10)); + } + for (ba(), l11 = s10.length; l11 < c10.length; l11 += 1) + u10(l11); + ka(); + } + e21[24] ? f10 || ((f10 = J3()).c(), f10.m(t10, null)) : f10 && (f10.d(1), f10 = null); + }, i: function(e21) { + if (!o10) { + wa(a10); + for (var t11 = 0; t11 < s10.length; t11 += 1) + wa(c10[t11]); + o10 = true; + } + }, o: function(e21) { + xa(a10), c10 = c10.filter(Boolean); + for (var t11 = 0; t11 < c10.length; t11 += 1) + xa(c10[t11]); + o10 = false; + }, d: function(e21) { + e21 && wi(t10), a10.d(e21), xi(c10, e21), f10 && f10.d(); + } }; + } + function G3(e20) { + var t10, n10; + return t10 = new IN({ props: { type: "info", message: "You pasted a JSON ".concat(Array.isArray(e20[18].contents) ? "array" : "object", " as text"), actions: [{ icon: uP, text: "Paste as JSON instead", title: "Paste the text as JSON instead of a single value", onMouseDown: e20[34] }, { text: "Leave as is", title: "Keep the pasted content as a single value", onClick: e20[35] }] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 262144 & n11[0] && (r10.message = "You pasted a JSON ".concat(Array.isArray(e21[18].contents) ? "array" : "object", " as text")), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function Q3(e20) { + var t10, n10; + return t10 = new IN({ props: { type: "success", message: "The loaded JSON document was invalid but is successfully repaired.", actions: e20[0] ? [] : [{ icon: PP, text: "Ok", title: "Accept the repaired document", onClick: e20[7] }, { icon: lP, text: "Repair manually instead", title: "Leave the document unchanged and repair it manually instead", onClick: e20[36] }], onClose: e20[6] } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 1 & n11[0] && (r10.actions = e21[0] ? [] : [{ icon: PP, text: "Ok", title: "Accept the repaired document", onClick: e21[7] }, { icon: lP, text: "Repair manually instead", title: "Leave the document unchanged and repair it manually instead", onClick: e21[36] }]), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function Y3(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10 = e20[1] && E3(e20), l10 = [P3, A3], u10 = []; + return r10 = function(e21, t11) { + return e21[26] ? 1 : 0; + }(e20), o10 = u10[r10] = l10[r10](e20), { c: function() { + t10 = ji("div"), c10 && c10.c(), n10 = $i(), o10.c(), Ai(t10, "role", "table"), Ai(t10, "class", "jse-table-mode svelte-1bunebm"), zi(t10, "no-main-menu", !e20[1]); + }, m: function(o11, l11) { + ki(o11, t10, l11), c10 && c10.m(t10, null), pi(t10, n10), u10[r10].m(t10, null), e20[77](t10), i10 = true, a10 || (s10 = [Oi(t10, "mousedown", e20[30]), Oi(t10, "keydown", e20[37]), Oi(t10, "contextmenu", e20[32])], a10 = true); + }, p: function(e21, r11) { + e21[1] ? c10 ? (c10.p(e21, r11), 2 & r11[0] && wa(c10, 1)) : ((c10 = E3(e21)).c(), wa(c10, 1), c10.m(t10, n10)) : c10 && (ba(), xa(c10, 1, 1, function() { + c10 = null; + }), ka()), o10.p(e21, r11), (!i10 || 2 & r11[0]) && zi(t10, "no-main-menu", !e21[1]); + }, i: function(e21) { + i10 || (wa(c10), wa(o10), i10 = true); + }, o: function(e21) { + xa(c10), xa(o10), i10 = false; + }, d: function(n11) { + n11 && wi(t10), c10 && c10.d(), u10[r10].d(), e20[77](null), a10 = false, Qo(s10); + } }; + } + var X3 = 18; + function Z3(e20, t10, n10) { + var r10, o10, i10, a10, s10 = Da("jsoneditor:TableMode"), c10 = Zi("simple-modal").open, l10 = Zi("absolute-popup"), u10 = l10.openAbsolutePopup, f10 = l10.closeAbsolutePopup, d10 = bN(), h10 = A$(), v10 = A$(), p10 = "undefined" == typeof window; + s10("isSSR:", p10); + var m10, g10, y10, b10, k10, w10, x10 = t10.readOnly, j10 = t10.externalContent, S10 = t10.externalSelection, C10 = t10.mainMenuBar, $10 = t10.escapeControlCharacters, _10 = t10.escapeUnicodeCharacters, O10 = t10.flattenColumns, M10 = t10.parser, E10 = t10.parseMemoizeOne, A10 = t10.validator, P10 = t10.validationParser, T8 = t10.indentation, R8 = t10.onChange, N8 = t10.onChangeMode, I10 = t10.onSelect, D10 = t10.onRenderValue, q10 = t10.onRenderMenu, z10 = t10.onRenderContextMenu, B10 = t10.onFocus, L10 = t10.onBlur, F10 = t10.onSortModal, V10 = t10.onTransformModal, H10 = t10.onJSONEditorModal; + ON({ onMount: Gi, onDestroy: Qi, getWindow: function() { + return SO(g10); + }, hasFocus: function() { + return G10 && document.hasFocus() || CO(g10); + }, onFocus: function() { + true, B10 && B10(); + }, onBlur: function() { + false, L10 && L10(); + } }); + var W10, U10 = void 0, J10 = 1e4, K10 = [], G10 = false, Q10 = {}, Y10 = 600, X10 = 0; + function Z10(e21) { + s10("updateSelection", e21); + var t11 = "function" == typeof e21 ? e21(te2.selection) || null : e21; + Ow(t11, te2.selection) || (n10(11, te2 = Ro(Ro({}, te2), {}, { selection: t11 })), I10(t11)); + } + function ee2(e21) { + te2.selection && void 0 !== e21 && (Ys(e21, KE(te2.selection)) && Ys(e21, JE(te2.selection)) || (s10("clearing selection: path does not exist anymore", te2.selection), n10(11, te2 = Ro(Ro({}, te2), {}, { selection: null })))); + } + var te2 = BM(), ne2 = false; + var re2, oe2 = xN({ onChange: function(e21) { + n10(20, ie2 = e21); + } }), ie2 = oe2.getState(); + function ae2(e21) { + var t11 = k10, r11 = J_(e21) ? e21.text !== w10 : !Ow(t11, e21.json); + if (s10("update external content", { isChanged: r11 }), r11) { + var o11 = { json: k10, text: w10 }, i11 = k10, a11 = te2, c11 = w10, l11 = ne2; + if (J_(e21)) + try { + n10(8, k10 = E10(e21.text)), n10(16, w10 = e21.text), n10(19, ne2 = false), n10(17, U10 = void 0); + } catch (t12) { + try { + n10(8, k10 = E10(Hl(e21.text))), n10(16, w10 = e21.text), n10(19, ne2 = true), n10(17, U10 = void 0); + } catch (r12) { + n10(8, k10 = void 0), n10(16, w10 = e21.text), n10(19, ne2 = false), n10(17, U10 = "" !== w10 ? H_(w10, t12.message || String(t12)) : void 0); + } + } + else + n10(8, k10 = e21.json), n10(16, w10 = void 0), n10(19, ne2 = false), n10(17, U10 = void 0); + ee2(k10), te2.sortedColumn && n10(11, te2 = Ro(Ro({}, te2), {}, { sortedColumn: null })), se2({ previousJson: i11, previousState: a11, previousText: c11, previousTextIsRepaired: l11 }); + ve2(o11, null); + } + } + function se2(e21) { + var t11 = e21.previousJson, n11 = e21.previousState, r11 = e21.previousText, o11 = e21.previousTextIsRepaired; + void 0 === t11 && void 0 === r11 || (void 0 !== k10 ? void 0 !== t11 ? oe2.add({ undo: { patch: [{ op: "replace", path: "", value: t11 }], state: PE(n11), json: void 0, text: r11, textIsRepaired: o11 }, redo: { patch: [{ op: "replace", path: "", value: k10 }], state: PE(te2), json: void 0, text: w10, textIsRepaired: ne2 } }) : oe2.add({ undo: { patch: void 0, json: void 0, text: r11, state: PE(n11), textIsRepaired: o11 }, redo: { patch: void 0, json: k10, state: PE(te2), text: w10, textIsRepaired: ne2 } }) : void 0 !== t11 && oe2.add({ undo: { patch: void 0, json: t11, state: PE(n11), text: r11, textIsRepaired: o11 }, redo: { patch: void 0, json: void 0, text: w10, textIsRepaired: ne2, state: PE(te2) } })); + } + var ce2 = [], le2 = CB(CN); + function ue2(e21, t11, r11, o11) { + jN(function() { + var i11; + try { + i11 = le2(e21, t11, r11, o11); + } catch (e23) { + i11 = [{ path: [], message: "Failed to validate: " + e23.message, severity: Za.warning }]; + } + Ow(i11, ce2) || (s10("validationErrors changed:", i11), n10(12, ce2 = i11)); + }, function(e23) { + return s10("validationErrors updated in ".concat(e23, " ms")); + }); + } + function fe2() { + return s10("validate"), U10 ? { parseError: U10, isRepairable: false } : (ue2(k10, A10, M10, P10), _w(ce2) ? null : { validationErrors: ce2 }); + } + function de2(e21, t11) { + if (s10("patch", e21, t11), void 0 === k10) + throw new Error("Cannot apply patch: no JSON"); + var r11 = { json: k10 }, o11 = k10, i11 = te2, a11 = ne2, c11 = hA(k10, e21), l11 = JM(k10, te2, e21).json, u11 = DB(te2, e21, K10), f11 = "function" == typeof t11 ? t11(l11, u11) : void 0; + n10(8, k10 = f11 && void 0 !== f11.json ? f11.json : l11); + var d11 = f11 && void 0 !== f11.state ? f11.state : u11; + n10(11, te2 = d11), n10(16, w10 = void 0), n10(19, ne2 = false), n10(18, W10 = void 0), n10(17, U10 = void 0), oe2.add({ undo: { patch: c11, json: void 0, text: void 0, state: PE(i11), textIsRepaired: a11 }, redo: { patch: e21, json: void 0, state: PE(d11), text: void 0, textIsRepaired: ne2 } }); + var h11 = { json: k10, previousJson: o11, undo: c11, redo: e21 }; + return ve2(r11, h11), h11; + } + function he2(e21, t11) { + return x10 ? { json: k10, previousJson: k10, redo: [], undo: [] } : de2(e21, t11); + } + function ve2(e21, t11) { + if ((void 0 !== e21.json || void 0 !== (null == e21 ? void 0 : e21.text)) && R8) { + if (void 0 !== w10) + R8({ text: w10, json: void 0 }, e21, { contentErrors: fe2(), patchResult: t11 }); + else if (void 0 !== k10) { + R8({ text: void 0, json: k10 }, e21, { contentErrors: fe2(), patchResult: t11 }); + } + } + } + function pe2(e21) { + s10("handleFind", e21); + } + function me2(e21) { + s10("pasted json as text", e21), n10(18, W10 = e21); + } + function ge2(e21) { + var t11 = parseInt(e21[0], 10), n11 = [String(t11 + 1)].concat(Bo(e21.slice(1))); + return Ys(k10, n11) ? RE(n11, false) : RE(e21, false); + } + function ye2() { + s10("focus"), b10 && (b10.focus(), b10.select()); + } + function be2() { + te2.selection || Z10(!Ts(k10) || _w(k10) || _w(K10) ? null : RE(["0"].concat(Bo(K10[0])), false)); + } + function ke2(e21) { + var t11 = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], n11 = AB(e21, K10, Q10, X3), r11 = n11 - X10, o11 = je2(e21); + if (s10("scrollTo", { path: e21, top: n11, scrollTop: X10, elem: o11 }), !y10) + return Promise.resolve(); + var i11 = y10.getBoundingClientRect(); + if (o11 && !t11) { + var a11 = o11.getBoundingClientRect(); + if (a11.bottom > i11.top && a11.top < i11.bottom) + return Promise.resolve(); + } + var c11 = -i11.height / 4; + return new Promise(o11 ? function(t12) { + d10(o11, { container: y10, offset: c11, duration: 300, callback: function() { + we2(e21), t12(); + } }); + } : function(o12) { + var i12; + d10(r11, { container: y10, offset: c11, duration: 300, callback: (i12 = xo(ko().mark(function r12() { + return ko().wrap(function(r13) { + for (; ; ) + switch (r13.prev = r13.next) { + case 0: + return r13.next = 2, ca(); + case 2: + if (AB(e21, K10, Q10, X3) === n11) { + r13.next = 8; + break; + } + return r13.next = 6, ke2(e21, t11); + case 6: + r13.next = 9; + break; + case 8: + we2(e21); + case 9: + o12(); + case 10: + case "end": + return r13.stop(); + } + }, r12); + })), function() { + return i12.apply(this, arguments); + }) }); + }); + } + function we2(e21) { + var t11 = je2(e21); + if (t11 && y10) { + var r11 = y10.getBoundingClientRect(), o11 = t11.getBoundingClientRect(); + if (o11.right > r11.right) { + var i11 = o11.right - r11.right; + n10(14, y10.scrollLeft += i11, y10); + } + if (o11.left < r11.left) { + var a11 = r11.left - o11.left; + n10(14, y10.scrollLeft -= a11, y10); + } + } + } + function xe2(e21) { + !function(e23) { + if (y10) { + var t11 = PB(e23, K10).rowIndex, r11 = AB(e23, K10, Q10, X3), o11 = r11 + (Q10[t11] || X3), i11 = y10.getBoundingClientRect(), a11 = X10, s11 = X10 + i11.height - 18; + if (o11 > s11) { + var c11 = o11 - s11; + n10(14, y10.scrollTop += c11, y10); + } + if (r11 < a11) { + var l11 = a11 - r11; + n10(14, y10.scrollTop -= l11, y10); + } + } + }(e21), we2(e21); + } + function je2(e21) { + return y10 ? y10.querySelector('td[data-path="'.concat(OO(e21), '"]')) : null; + } + function Se2(e21) { + var t11 = e21.anchor, n11 = e21.left, r11 = e21.top, o11 = e21.width, i11 = e21.height, a11 = e21.offsetTop, s11 = e21.offsetLeft, c11 = e21.showTip; + G10 = true; + var l11 = u10(u3, { json: k10, documentState: te2, parser: M10, showTip: c11, onEditValue: $e2, onEditRow: _e2, onToggleEnforceString: Oe2, onCut: Ae2, onCopy: Te2, onPaste: Ee2, onRemove: Ne2, onDuplicateRow: Ie2, onInsertBeforeRow: De2, onInsertAfterRow: qe2, onRemoveRow: ze2, onRenderContextMenu: z10, onCloseContextMenu: function() { + f10(l11), ye2(); + } }, { left: n11, top: r11, offsetTop: a11, offsetLeft: s11, width: o11, height: i11, anchor: t11, closeOnOuterClick: true, onClose: function() { + G10 = false, ye2(); + } }); + } + function Ce2(e21) { + if (!x10 && !zE(te2.selection)) { + if (e21 && (e21.stopPropagation(), e21.preventDefault()), e21 && "contextmenu" === e21.type && e21.target !== b10) + Se2({ left: e21.clientX, top: e21.clientY, width: Ms, height: Os, showTip: false }); + else { + var t11, n11 = null === (t11 = y10) || void 0 === t11 ? void 0 : t11.querySelector(".jse-table-cell.jse-selected-value"); + if (n11) + Se2({ anchor: n11, offsetTop: 2, width: Ms, height: Os, showTip: false }); + else { + var r11, o11 = null === (r11 = y10) || void 0 === r11 ? void 0 : r11.getBoundingClientRect(); + o11 && Se2({ top: o11.top + 2, left: o11.left + 2, width: Ms, height: Os, showTip: false }); + } + } + return false; + } + } + function $e2() { + if (!x10 && te2.selection) { + var e21 = JE(te2.selection); + Ql(Ws(k10, e21)) ? He2(e21) : Z10(RE(e21, true)); + } + } + function _e2() { + !x10 && te2.selection && He2(JE(te2.selection).slice(0, 1)); + } + function Oe2() { + if (!x10 && pE(te2.selection)) { + var e21 = te2.selection.path, t11 = Zs(e21), n11 = Ws(k10, e21), r11 = !oE(n11, te2.enforceStringMap, t11, M10), o11 = r11 ? String(n11) : ru(String(n11), M10); + s10("handleToggleEnforceString", { enforceString: r11, value: n11, updatedValue: o11 }), he2([{ op: "replace", path: t11, value: o11 }], function(e23, n12) { + return { state: UM(n12, t11, r11) }; + }); + } + } + function Me2() { + return (Me2 = xo(ko().mark(function e21() { + var t11, n11, r11, o11, i11; + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + if (s10("apply pasted json", W10), W10) { + e23.next = 3; + break; + } + return e23.abrupt("return"); + case 3: + r11 = (n11 = W10).path, o11 = n11.contents, AO(i11 = (null === (t11 = y10) || void 0 === t11 ? void 0 : t11.querySelector(".jse-editable-div")) || null) && i11.cancel(), he2([{ op: "replace", path: Zs(r11), value: o11 }]), setTimeout(ye2); + case 9: + case "end": + return e23.stop(); + } + }, e21); + }))).apply(this, arguments); + } + function Ee2() { + c10(nI, {}, Ro(Ro({}, gs), {}, { styleWindow: { width: "450px" } }), { onClose: function() { + return ye2(); + } }); + } + function Ae2(e21) { + return Pe2.apply(this, arguments); + } + function Pe2() { + return (Pe2 = xo(ko().mark(function e21(t11) { + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + return e23.next = 2, zB({ json: k10, documentState: te2, indentation: t11 ? T8 : void 0, readOnly: x10, parser: M10, onPatch: he2 }); + case 2: + case "end": + return e23.stop(); + } + }, e21); + }))).apply(this, arguments); + } + function Te2() { + return Re2.apply(this, arguments); + } + function Re2() { + return Re2 = xo(ko().mark(function e21() { + var t11, n11 = arguments; + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + if (t11 = !(n11.length > 0 && void 0 !== n11[0]) || n11[0], void 0 !== k10) { + e23.next = 3; + break; + } + return e23.abrupt("return"); + case 3: + return e23.next = 5, LB({ json: k10, documentState: te2, indentation: t11 ? T8 : void 0, parser: M10 }); + case 5: + case "end": + return e23.stop(); + } + }, e21); + })), Re2.apply(this, arguments); + } + function Ne2() { + HB({ json: k10, text: w10, documentState: te2, keepSelection: true, readOnly: x10, onChange: R8, onPatch: he2 }); + } + function Ie2() { + WB({ json: k10, documentState: te2, columns: K10, readOnly: x10, onPatch: he2 }); + } + function De2() { + UB({ json: k10, documentState: te2, columns: K10, readOnly: x10, onPatch: he2 }); + } + function qe2() { + JB({ json: k10, documentState: te2, columns: K10, readOnly: x10, onPatch: he2 }); + } + function ze2() { + KB({ json: k10, documentState: te2, columns: K10, readOnly: x10, onPatch: he2 }); + } + function Be2() { + return (Be2 = xo(ko().mark(function e21(t11) { + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + return e23.next = 2, QB({ char: t11, selectInside: false, refJsonEditor: g10, json: k10, selection: te2.selection, readOnly: x10, parser: M10, onPatch: he2, onReplaceJson: Le2, onSelect: Z10 }); + case 2: + case "end": + return e23.stop(); + } + }, e21); + }))).apply(this, arguments); + } + function Le2(e21, t11) { + var r11 = te2, o11 = k10, i11 = w10, a11 = { json: k10, text: w10 }, s11 = ne2, c11 = HM(k10, te2, [], uE), l11 = "function" == typeof t11 ? t11(e21, c11) : void 0; + n10(8, k10 = l11 && void 0 !== l11.json ? l11.json : e21), n10(11, te2 = l11 && void 0 !== l11.state ? l11.state : c11), n10(16, w10 = void 0), n10(19, ne2 = false), n10(17, U10 = void 0), ee2(k10), se2({ previousJson: o11, previousState: r11, previousText: i11, previousTextIsRepaired: s11 }); + ve2(a11, null); + } + function Fe2(e21, t11) { + s10("handleChangeText"); + var r11 = te2, o11 = k10, i11 = w10, a11 = { json: k10, text: w10 }, c11 = ne2; + try { + n10(8, k10 = E10(e21)), n10(11, te2 = HM(k10, te2, [], uE)), n10(16, w10 = void 0), n10(19, ne2 = false), n10(17, U10 = void 0); + } catch (t12) { + try { + n10(8, k10 = E10(Hl(e21))), n10(11, te2 = HM(k10, te2, [], uE)), n10(16, w10 = e21), n10(19, ne2 = true), n10(17, U10 = void 0); + } catch (r12) { + n10(8, k10 = void 0), n10(11, te2 = BM({ json: k10, expand: uE })), n10(16, w10 = e21), n10(19, ne2 = false), n10(17, U10 = "" !== w10 ? H_(w10, t12.message || String(t12)) : void 0); + } + } + if ("function" == typeof t11) { + var l11 = t11(k10, te2); + n10(8, k10 = l11 && l11.json ? l11.json : k10), n10(11, te2 = l11 && l11.state ? l11.state : te2); + } + ee2(k10), se2({ previousJson: o11, previousState: r11, previousText: i11, previousTextIsRepaired: c11 }); + ve2(a11, null); + } + function Ve2(e21) { + if (void 0 !== k10) { + var t11 = e21.id, n11 = e21.onTransform, r11 = e21.onClose, o11 = e21.rootPath || []; + G10 = true, V10({ id: t11 || v10, json: k10, rootPath: o11 || [], onTransform: function(e23) { + n11 ? n11({ operations: e23, json: k10, transformedJson: rc(k10, e23) }) : (s10("onTransform", o11, e23), he2(e23)); + }, onClose: function() { + G10 = false, ye2(), r11 && r11(); + } }); + } + } + function He2(e21) { + s10("openJSONEditorModal", { path: e21 }), G10 = true, H10({ content: { json: Ws(k10, e21) }, path: e21, onPatch: re2.onPatch, onClose: function() { + G10 = false, ye2(); + } }); + } + function We2(e21, t11) { + c10(HI, { text: e21, onParse: function(e23) { + return L_(e23, function(e24) { + return z_(e24, M10); + }); + }, onRepair: F_, onApply: t11 }, Ro(Ro({}, gs), {}, { styleWindow: { width: "600px", height: "500px" }, styleContent: { padding: 0, height: "100%" } }), { onClose: function() { + return ye2(); + } }); + } + function Ue2() { + if (!x10 && oe2.getState().canUndo) { + var e21 = oe2.undo(); + if (e21) { + var t11 = { json: k10, text: w10 }; + n10(8, k10 = e21.undo.patch ? rc(k10, e21.undo.patch) : e21.undo.json), n10(11, te2 = e21.undo.state), n10(16, w10 = e21.undo.text), n10(19, ne2 = e21.undo.textIsRepaired), n10(17, U10 = void 0), s10("undo", { item: e21, json: k10 }), ve2(t11, e21.undo.patch && e21.redo.patch ? { json: k10, previousJson: t11.json, redo: e21.undo.patch, undo: e21.redo.patch } : null), ye2(), te2.selection && ke2(JE(te2.selection), false); + } + } + } + function Je2() { + if (!x10 && oe2.getState().canRedo) { + var e21 = oe2.redo(); + if (e21) { + var t11 = { json: k10, text: w10 }; + n10(8, k10 = e21.redo.patch ? rc(k10, e21.redo.patch) : e21.redo.json), n10(11, te2 = e21.redo.state), n10(16, w10 = e21.redo.text), n10(19, ne2 = e21.redo.textIsRepaired), n10(17, U10 = void 0), s10("redo", { item: e21, json: k10 }), ve2(t11, e21.undo.patch && e21.redo.patch ? { json: k10, previousJson: t11.json, redo: e21.redo.patch, undo: e21.undo.patch } : null), ye2(), te2.selection && ke2(JE(te2.selection), false); + } + } + } + function Ke2(e21, t11) { + n10(70, Q10[t11] = e21.getBoundingClientRect().height, Q10); + } + return e20.$$set = function(e21) { + "readOnly" in e21 && n10(0, x10 = e21.readOnly), "externalContent" in e21 && n10(47, j10 = e21.externalContent), "externalSelection" in e21 && n10(48, S10 = e21.externalSelection), "mainMenuBar" in e21 && n10(1, C10 = e21.mainMenuBar), "escapeControlCharacters" in e21 && n10(49, $10 = e21.escapeControlCharacters), "escapeUnicodeCharacters" in e21 && n10(50, _10 = e21.escapeUnicodeCharacters), "flattenColumns" in e21 && n10(51, O10 = e21.flattenColumns), "parser" in e21 && n10(2, M10 = e21.parser), "parseMemoizeOne" in e21 && n10(52, E10 = e21.parseMemoizeOne), "validator" in e21 && n10(53, A10 = e21.validator), "validationParser" in e21 && n10(54, P10 = e21.validationParser), "indentation" in e21 && n10(3, T8 = e21.indentation), "onChange" in e21 && n10(55, R8 = e21.onChange), "onChangeMode" in e21 && n10(4, N8 = e21.onChangeMode), "onSelect" in e21 && n10(56, I10 = e21.onSelect), "onRenderValue" in e21 && n10(57, D10 = e21.onRenderValue), "onRenderMenu" in e21 && n10(5, q10 = e21.onRenderMenu), "onRenderContextMenu" in e21 && n10(58, z10 = e21.onRenderContextMenu), "onFocus" in e21 && n10(59, B10 = e21.onFocus), "onBlur" in e21 && n10(60, L10 = e21.onBlur), "onSortModal" in e21 && n10(61, F10 = e21.onSortModal), "onTransformModal" in e21 && n10(62, V10 = e21.onTransformModal), "onJSONEditorModal" in e21 && n10(63, H10 = e21.onJSONEditorModal); + }, e20.$$.update = function() { + 786432 & e20.$$.dirty[1] && n10(69, m10 = aO({ escapeControlCharacters: $10, escapeUnicodeCharacters: _10 })), 65536 & e20.$$.dirty[1] && ae2(j10), 131072 & e20.$$.dirty[1] && function(e21) { + Ow(te2.selection, e21) || (s10("applyExternalSelection", e21), (yE(e21) || null === e21) && Z10(e21)); + }(S10), 1792 & e20.$$.dirty[0] | 1048576 & e20.$$.dirty[1] && n10(10, K10 = Ts(k10) ? function(e21, t11) { + var n11, r11 = new Set(t11.map(Zs)), o11 = new Set(e21.map(Zs)), i11 = bo(r11); + try { + for (i11.s(); !(n11 = i11.n()).done; ) { + var a11 = n11.value; + o11.has(a11) || r11.delete(a11); + } + } catch (e23) { + i11.e(e23); + } finally { + i11.f(); + } + var s11, c11 = bo(o11); + try { + for (c11.s(); !(s11 = c11.n()).done; ) { + var l11 = s11.value; + r11.has(l11) || r11.add(l11); + } + } catch (e23) { + c11.e(e23); + } finally { + c11.f(); + } + return Bo(r11).map(Xs); + }(_B(k10, O10, J10), K10) : []), 1280 & e20.$$.dirty[0] && n10(25, r10 = k10 && !_w(K10)), 768 & e20.$$.dirty[0] && n10(24, o10 = Array.isArray(k10) && k10.length > J10), 256 & e20.$$.dirty[0] | 1792 & e20.$$.dirty[2] && n10(23, i10 = EB(X10, Y10, k10, Q10, X3)), 256 & e20.$$.dirty[0] && y10 && y10.scrollTo({ top: y10.scrollTop, left: y10.scrollLeft }), 2309 & e20.$$.dirty[0] | 67108864 & e20.$$.dirty[1] | 128 & e20.$$.dirty[2] && n10(21, re2 = { readOnly: x10, parser: M10, normalization: m10, getJson: function() { + return k10; + }, getDocumentState: function() { + return te2; + }, findElement: je2, findNextInside: ge2, focus: ye2, onPatch: he2, onSelect: Z10, onFind: pe2, onPasteJson: me2, onRenderValue: D10 }), 260 & e20.$$.dirty[0] | 12582912 & e20.$$.dirty[1] && ue2(k10, A10, M10, P10), 5120 & e20.$$.dirty[0] && n10(22, a10 = RB(ce2, K10)); + }, [x10, C10, M10, T8, N8, q10, ye2, function() { + if (ne2 && void 0 !== k10) { + var e21 = te2, t11 = k10, r11 = w10, o11 = { json: k10, text: w10 }, i11 = ne2; + n10(16, w10 = void 0), n10(19, ne2 = false), ee2(k10), se2({ previousJson: t11, previousState: e21, previousText: r11, previousTextIsRepaired: i11 }); + ve2(o11, null); + } + return { json: k10, text: w10 }; + }, k10, J10, K10, te2, ce2, g10, y10, b10, w10, U10, W10, ne2, ie2, re2, a10, i10, o10, r10, p10, void 0, function(e21) { + if (!x10) { + s10("onSortByHeader", e21); + var t11 = e21.sortDirection === ts.desc ? -1 : 1; + he2(Iz(k10, [], e21.path, t11), function(t12, n11) { + return { state: Ro(Ro({}, n11), {}, { sortedColumn: e21 }) }; + }); + } + }, function(e21) { + n10(72, X10 = e21.target.scrollTop); + }, function(e21) { + var t11 = e21.target, n11 = MO(t11); + if (n11) { + if (zE(te2.selection) && WE(k10, te2.selection, n11)) + return; + Z10(RE(n11, false)), e21.preventDefault(); + } + yO(t11, "BUTTON") || t11.isContentEditable || ye2(); + }, Se2, Ce2, function(e21) { + x10 || Se2({ anchor: $O(e21.target, "BUTTON"), offsetTop: 0, width: Ms, height: Os, showTip: true }); + }, function() { + return Me2.apply(this, arguments); + }, function() { + s10("clear pasted json"), n10(18, W10 = void 0), ye2(); + }, function() { + N8(Qa.text); + }, function(e21) { + var t11 = PO(e21); + if (s10("keydown", { combo: t11, key: e21.key }), "Ctrl+X" === t11 && (e21.preventDefault(), Ae2(true)), "Ctrl+Shift+X" === t11 && (e21.preventDefault(), Ae2(false)), "Ctrl+C" === t11 && (e21.preventDefault(), Te2(true)), "Ctrl+Shift+C" === t11 && (e21.preventDefault(), Te2(false)), "Ctrl+D" === t11 && e21.preventDefault(), "Delete" !== t11 && "Backspace" !== t11 || (e21.preventDefault(), Ne2()), "Insert" === t11 && e21.preventDefault(), "Ctrl+A" === t11 && e21.preventDefault(), "Ctrl+Q" === t11 && Ce2(e21), "ArrowLeft" === t11 && (e21.preventDefault(), be2(), te2.selection)) { + var n11 = function(e23, t12) { + var n12 = PB(JE(t12), e23), r12 = n12.rowIndex, o12 = n12.columnIndex; + return o12 > 0 ? RE(TB({ rowIndex: r12, columnIndex: o12 - 1 }, e23), false) : t12; + }(K10, te2.selection); + Z10(n11), xe2(JE(n11)); + } + if ("ArrowRight" === t11 && (e21.preventDefault(), be2(), te2.selection)) { + var r11 = function(e23, t12) { + var n12 = PB(JE(t12), e23), r12 = n12.rowIndex, o12 = n12.columnIndex; + return o12 < e23.length - 1 ? RE(TB({ rowIndex: r12, columnIndex: o12 + 1 }, e23), false) : t12; + }(K10, te2.selection); + Z10(r11), xe2(JE(r11)); + } + if ("ArrowUp" === t11 && (e21.preventDefault(), be2(), te2.selection)) { + var o11 = function(e23, t12) { + var n12 = PB(JE(t12), e23), r12 = n12.rowIndex, o12 = n12.columnIndex; + return r12 > 0 ? RE(TB({ rowIndex: r12 - 1, columnIndex: o12 }, e23), false) : t12; + }(K10, te2.selection); + Z10(o11), xe2(JE(o11)); + } + if ("ArrowDown" === t11 && (e21.preventDefault(), be2(), te2.selection)) { + var i11 = function(e23, t12, n12) { + var r12 = PB(JE(n12), t12), o12 = r12.rowIndex, i12 = r12.columnIndex; + return o12 < e23.length - 1 ? RE(TB({ rowIndex: o12 + 1, columnIndex: i12 }, t12), false) : n12; + }(k10, K10, te2.selection); + Z10(i11), xe2(JE(i11)); + } + if ("Enter" === t11 && te2.selection && pE(te2.selection)) { + e21.preventDefault(); + var a11 = te2.selection.path; + Ql(Ws(k10, a11)) ? He2(a11) : x10 || Z10(Ro(Ro({}, te2.selection), {}, { edit: true })); + } + if (1 === t11.replace(/^Shift\+/, "").length && te2.selection) + return e21.preventDefault(), void function(e23) { + Be2.apply(this, arguments); + }(e21.key); + if ("Ctrl+Enter" === t11 && pE(te2.selection)) { + var c11 = Ws(k10, te2.selection.path); + nu(c11) && window.open(String(c11), "_blank"); + } + "Escape" === t11 && te2.selection && (e21.preventDefault(), Z10(null)), "Ctrl+F" === t11 && e21.preventDefault(), "Ctrl+H" === t11 && e21.preventDefault(), "Ctrl+Z" === t11 && (e21.preventDefault(), Ue2()), "Ctrl+Shift+Z" === t11 && (e21.preventDefault(), Je2()); + }, function(e21) { + var t11; + e21.preventDefault(); + var n11 = null === (t11 = e21.clipboardData) || void 0 === t11 ? void 0 : t11.getData("text/plain"); + void 0 !== n11 && VB({ clipboardText: n11, json: k10, selection: te2.selection, readOnly: x10, parser: M10, onPatch: he2, onChangeText: Fe2, openRepairModal: We2 }); + }, function(e21) { + s10("select validation error", e21), Z10(RE(e21.path, false)), ke2(e21.path); + }, He2, function() { + !function(e21) { + x10 || void 0 === k10 || (G10 = true, F10({ id: h10, json: k10, rootPath: e21, onSort: function(t11) { + var n11 = t11.operations, r11 = t11.itemPath, o11 = t11.direction; + s10("onSort", n11, e21, r11, o11), he2(n11, function(e23, t12) { + return { state: Ro(Ro({}, t12), {}, { sortedColumn: { path: r11, sortDirection: -1 === o11 ? ts.desc : ts.asc } }) }; + }); + }, onClose: function() { + G10 = false, ye2(); + } })); + }([]); + }, function() { + Ve2({ rootPath: [] }); + }, Ue2, Je2, function(e21) { + n10(71, Y10 = e21.getBoundingClientRect().height); + }, Ke2, j10, S10, $10, _10, O10, E10, A10, P10, R8, I10, D10, z10, B10, L10, F10, V10, H10, fe2, de2, ke2, je2, Ve2, m10, Q10, Y10, X10, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(15, b10 = e21); + }); + }, function() { + return n10(9, J10 = 1 / 0); + }, function(e21, t11) { + return Ke2(t11, e21); + }, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(14, y10 = e21); + }); + }, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(13, g10 = e21); + }); + }]; + } + var e82 = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, Z3, Y3, Zo, { readOnly: 0, externalContent: 47, externalSelection: 48, mainMenuBar: 1, escapeControlCharacters: 49, escapeUnicodeCharacters: 50, flattenColumns: 51, parser: 2, parseMemoizeOne: 52, validator: 53, validationParser: 54, indentation: 3, onChange: 55, onChangeMode: 4, onSelect: 56, onRenderValue: 57, onRenderMenu: 5, onRenderContextMenu: 58, onFocus: 59, onBlur: 60, onSortModal: 61, onTransformModal: 62, onJSONEditorModal: 63, validate: 64, patch: 65, focus: 6, acceptAutoRepair: 7, scrollTo: 66, findElement: 67, openTransformModal: 68 }, C3, [-1, -1, -1, -1, -1]), n10; + } + return Ao(t10, Ia), Do(t10, [{ key: "validate", get: function() { + return this.$$.ctx[64]; + } }, { key: "patch", get: function() { + return this.$$.ctx[65]; + } }, { key: "focus", get: function() { + return this.$$.ctx[6]; + } }, { key: "acceptAutoRepair", get: function() { + return this.$$.ctx[7]; + } }, { key: "scrollTo", get: function() { + return this.$$.ctx[66]; + } }, { key: "findElement", get: function() { + return this.$$.ctx[67]; + } }, { key: "openTransformModal", get: function() { + return this.$$.ctx[68]; + } }]), t10; + }(); + function t8(e20) { + var t10, n10, r10 = { externalContent: e20[0], externalSelection: e20[1], readOnly: e20[2], indentation: e20[3], mainMenuBar: e20[6], navigationBar: e20[7], escapeControlCharacters: e20[10], escapeUnicodeCharacters: e20[11], parser: e20[13], parseMemoizeOne: e20[14], validator: e20[15], validationParser: e20[16], pathParser: e20[17], onError: e20[23], onChange: e20[18], onChangeMode: e20[19], onSelect: e20[20], onRenderValue: e20[21], onClassName: e20[22], onFocus: e20[24], onBlur: e20[25], onRenderMenu: e20[32], onRenderContextMenu: e20[33], onSortModal: e20[26], onTransformModal: e20[27], onJSONEditorModal: e20[28] }; + return t10 = new kL({ props: r10 }), e20[49](t10), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r11) { + Ta(t10, e21, r11), n10 = true; + }, p: function(e21, n11) { + var r11 = {}; + 1 & n11[0] && (r11.externalContent = e21[0]), 2 & n11[0] && (r11.externalSelection = e21[1]), 4 & n11[0] && (r11.readOnly = e21[2]), 8 & n11[0] && (r11.indentation = e21[3]), 64 & n11[0] && (r11.mainMenuBar = e21[6]), 128 & n11[0] && (r11.navigationBar = e21[7]), 1024 & n11[0] && (r11.escapeControlCharacters = e21[10]), 2048 & n11[0] && (r11.escapeUnicodeCharacters = e21[11]), 8192 & n11[0] && (r11.parser = e21[13]), 16384 & n11[0] && (r11.parseMemoizeOne = e21[14]), 32768 & n11[0] && (r11.validator = e21[15]), 65536 & n11[0] && (r11.validationParser = e21[16]), 131072 & n11[0] && (r11.pathParser = e21[17]), 8388608 & n11[0] && (r11.onError = e21[23]), 262144 & n11[0] && (r11.onChange = e21[18]), 524288 & n11[0] && (r11.onChangeMode = e21[19]), 1048576 & n11[0] && (r11.onSelect = e21[20]), 2097152 & n11[0] && (r11.onRenderValue = e21[21]), 4194304 & n11[0] && (r11.onClassName = e21[22]), 16777216 & n11[0] && (r11.onFocus = e21[24]), 33554432 & n11[0] && (r11.onBlur = e21[25]), 2 & n11[1] && (r11.onRenderMenu = e21[32]), 4 & n11[1] && (r11.onRenderContextMenu = e21[33]), 67108864 & n11[0] && (r11.onSortModal = e21[26]), 134217728 & n11[0] && (r11.onTransformModal = e21[27]), 268435456 & n11[0] && (r11.onJSONEditorModal = e21[28]), t10.$set(r11); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(n11) { + e20[49](null), Ra(t10, n11); + } }; + } + function n8(e20) { + var t10, n10, r10 = { externalContent: e20[0], externalSelection: e20[1], readOnly: e20[2], mainMenuBar: e20[6], escapeControlCharacters: e20[10], escapeUnicodeCharacters: e20[11], flattenColumns: e20[12], parser: e20[13], parseMemoizeOne: e20[14], validator: e20[15], validationParser: e20[16], indentation: e20[3], onChange: e20[18], onChangeMode: e20[19], onSelect: e20[20], onRenderValue: e20[21], onFocus: e20[24], onBlur: e20[25], onRenderMenu: e20[32], onRenderContextMenu: e20[33], onSortModal: e20[26], onTransformModal: e20[27], onJSONEditorModal: e20[28] }; + return t10 = new e82({ props: r10 }), e20[48](t10), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r11) { + Ta(t10, e21, r11), n10 = true; + }, p: function(e21, n11) { + var r11 = {}; + 1 & n11[0] && (r11.externalContent = e21[0]), 2 & n11[0] && (r11.externalSelection = e21[1]), 4 & n11[0] && (r11.readOnly = e21[2]), 64 & n11[0] && (r11.mainMenuBar = e21[6]), 1024 & n11[0] && (r11.escapeControlCharacters = e21[10]), 2048 & n11[0] && (r11.escapeUnicodeCharacters = e21[11]), 4096 & n11[0] && (r11.flattenColumns = e21[12]), 8192 & n11[0] && (r11.parser = e21[13]), 16384 & n11[0] && (r11.parseMemoizeOne = e21[14]), 32768 & n11[0] && (r11.validator = e21[15]), 65536 & n11[0] && (r11.validationParser = e21[16]), 8 & n11[0] && (r11.indentation = e21[3]), 262144 & n11[0] && (r11.onChange = e21[18]), 524288 & n11[0] && (r11.onChangeMode = e21[19]), 1048576 & n11[0] && (r11.onSelect = e21[20]), 2097152 & n11[0] && (r11.onRenderValue = e21[21]), 16777216 & n11[0] && (r11.onFocus = e21[24]), 33554432 & n11[0] && (r11.onBlur = e21[25]), 2 & n11[1] && (r11.onRenderMenu = e21[32]), 4 & n11[1] && (r11.onRenderContextMenu = e21[33]), 67108864 & n11[0] && (r11.onSortModal = e21[26]), 134217728 & n11[0] && (r11.onTransformModal = e21[27]), 268435456 & n11[0] && (r11.onJSONEditorModal = e21[28]), t10.$set(r11); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(n11) { + e20[48](null), Ra(t10, n11); + } }; + } + function r8(e20) { + var t10, n10, r10 = { externalContent: e20[0], externalSelection: e20[1], readOnly: e20[2], indentation: e20[3], tabSize: e20[4], mainMenuBar: e20[6], statusBar: e20[8], askToFormat: e20[9], escapeUnicodeCharacters: e20[11], parser: e20[13], validator: e20[15], validationParser: e20[16], onChange: e20[18], onSelect: e20[20], onChangeMode: e20[19], onError: e20[23], onFocus: e20[24], onBlur: e20[25], onRenderMenu: e20[32], onSortModal: e20[26], onTransformModal: e20[27] }; + return t10 = new B4({ props: r10 }), e20[47](t10), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r11) { + Ta(t10, e21, r11), n10 = true; + }, p: function(e21, n11) { + var r11 = {}; + 1 & n11[0] && (r11.externalContent = e21[0]), 2 & n11[0] && (r11.externalSelection = e21[1]), 4 & n11[0] && (r11.readOnly = e21[2]), 8 & n11[0] && (r11.indentation = e21[3]), 16 & n11[0] && (r11.tabSize = e21[4]), 64 & n11[0] && (r11.mainMenuBar = e21[6]), 256 & n11[0] && (r11.statusBar = e21[8]), 512 & n11[0] && (r11.askToFormat = e21[9]), 2048 & n11[0] && (r11.escapeUnicodeCharacters = e21[11]), 8192 & n11[0] && (r11.parser = e21[13]), 32768 & n11[0] && (r11.validator = e21[15]), 65536 & n11[0] && (r11.validationParser = e21[16]), 262144 & n11[0] && (r11.onChange = e21[18]), 1048576 & n11[0] && (r11.onSelect = e21[20]), 524288 & n11[0] && (r11.onChangeMode = e21[19]), 8388608 & n11[0] && (r11.onError = e21[23]), 16777216 & n11[0] && (r11.onFocus = e21[24]), 33554432 & n11[0] && (r11.onBlur = e21[25]), 2 & n11[1] && (r11.onRenderMenu = e21[32]), 67108864 & n11[0] && (r11.onSortModal = e21[26]), 134217728 & n11[0] && (r11.onTransformModal = e21[27]), t10.$set(r11); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(n11) { + e20[47](null), Ra(t10, n11); + } }; + } + function o8(e20) { + var t10, n10, r10, o10, i10, a10 = [r8, n8, t8], s10 = []; + function c10(e21, n11) { + return 32 & n11[0] && (t10 = null), null == t10 && (t10 = !(e21[5] !== Qa.text && "code" !== String(e21[5]))), t10 ? 0 : e21[5] === Qa.table ? 1 : 2; + } + return n10 = c10(e20, [-1, -1]), r10 = s10[n10] = a10[n10](e20), { c: function() { + r10.c(), o10 = _i(); + }, m: function(e21, t11) { + s10[n10].m(e21, t11), ki(e21, o10, t11), i10 = true; + }, p: function(e21, t11) { + var i11 = n10; + (n10 = c10(e21, t11)) === i11 ? s10[n10].p(e21, t11) : (ba(), xa(s10[i11], 1, 1, function() { + s10[i11] = null; + }), ka(), (r10 = s10[n10]) ? r10.p(e21, t11) : (r10 = s10[n10] = a10[n10](e21)).c(), wa(r10, 1), r10.m(o10.parentNode, o10)); + }, i: function(e21) { + i10 || (wa(r10), i10 = true); + }, o: function(e21) { + xa(r10), i10 = false; + }, d: function(e21) { + e21 && wi(o10), s10[n10].d(e21); + } }; + } + function i8(e20, t10, n10) { + var r10, o10, i10, a10, s10, c10, l10 = t10.content, u10 = t10.selection, f10 = t10.readOnly, d10 = t10.indentation, h10 = t10.tabSize, v10 = t10.mode, p10 = t10.mainMenuBar, m10 = t10.navigationBar, g10 = t10.statusBar, y10 = t10.askToFormat, b10 = t10.escapeControlCharacters, k10 = t10.escapeUnicodeCharacters, w10 = t10.flattenColumns, x10 = t10.parser, j10 = t10.parseMemoizeOne, S10 = t10.validator, C10 = t10.validationParser, $10 = t10.pathParser, _10 = t10.insideModal, O10 = t10.onChange, M10 = t10.onChangeMode, E10 = t10.onSelect, A10 = t10.onRenderValue, P10 = t10.onClassName, T8 = t10.onRenderMenu, R8 = t10.onRenderContextMenu, N8 = t10.onError, I10 = t10.onFocus, D10 = t10.onBlur, q10 = t10.onSortModal, z10 = t10.onTransformModal, B10 = t10.onJSONEditorModal, L10 = { type: "separator" }; + function F10() { + return (F10 = xo(ko().mark(function e21() { + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + if (!i10) { + e23.next = 3; + break; + } + return e23.next = 3, i10.refresh(); + case 3: + case "end": + return e23.stop(); + } + }, e21); + }))).apply(this, arguments); + } + return e20.$$set = function(e21) { + "content" in e21 && n10(0, l10 = e21.content), "selection" in e21 && n10(1, u10 = e21.selection), "readOnly" in e21 && n10(2, f10 = e21.readOnly), "indentation" in e21 && n10(3, d10 = e21.indentation), "tabSize" in e21 && n10(4, h10 = e21.tabSize), "mode" in e21 && n10(5, v10 = e21.mode), "mainMenuBar" in e21 && n10(6, p10 = e21.mainMenuBar), "navigationBar" in e21 && n10(7, m10 = e21.navigationBar), "statusBar" in e21 && n10(8, g10 = e21.statusBar), "askToFormat" in e21 && n10(9, y10 = e21.askToFormat), "escapeControlCharacters" in e21 && n10(10, b10 = e21.escapeControlCharacters), "escapeUnicodeCharacters" in e21 && n10(11, k10 = e21.escapeUnicodeCharacters), "flattenColumns" in e21 && n10(12, w10 = e21.flattenColumns), "parser" in e21 && n10(13, x10 = e21.parser), "parseMemoizeOne" in e21 && n10(14, j10 = e21.parseMemoizeOne), "validator" in e21 && n10(15, S10 = e21.validator), "validationParser" in e21 && n10(16, C10 = e21.validationParser), "pathParser" in e21 && n10(17, $10 = e21.pathParser), "insideModal" in e21 && n10(34, _10 = e21.insideModal), "onChange" in e21 && n10(18, O10 = e21.onChange), "onChangeMode" in e21 && n10(19, M10 = e21.onChangeMode), "onSelect" in e21 && n10(20, E10 = e21.onSelect), "onRenderValue" in e21 && n10(21, A10 = e21.onRenderValue), "onClassName" in e21 && n10(22, P10 = e21.onClassName), "onRenderMenu" in e21 && n10(35, T8 = e21.onRenderMenu), "onRenderContextMenu" in e21 && n10(36, R8 = e21.onRenderContextMenu), "onError" in e21 && n10(23, N8 = e21.onError), "onFocus" in e21 && n10(24, I10 = e21.onFocus), "onBlur" in e21 && n10(25, D10 = e21.onBlur), "onSortModal" in e21 && n10(26, q10 = e21.onSortModal), "onTransformModal" in e21 && n10(27, z10 = e21.onTransformModal), "onJSONEditorModal" in e21 && n10(28, B10 = e21.onJSONEditorModal); + }, e20.$$.update = function() { + 524320 & e20.$$.dirty[0] && n10(46, a10 = [{ type: "button", text: "text", title: "Switch to text mode (current mode: ".concat(v10, ")"), className: "jse-group-button jse-first" + (v10 === Qa.text || "code" === v10 ? " jse-selected" : ""), onClick: function() { + return M10(Qa.text); + } }, { type: "button", text: "tree", title: "Switch to tree mode (current mode: ".concat(v10, ")"), className: "jse-group-button " + (v10 === Qa.tree ? " jse-selected" : ""), onClick: function() { + return M10(Qa.tree); + } }, { type: "button", text: "table", title: "Switch to table mode (current mode: ".concat(v10, ")"), className: "jse-group-button jse-last" + (v10 === Qa.table ? " jse-selected" : ""), onClick: function() { + return M10(Qa.table); + } }]), 32 & e20.$$.dirty[0] | 32792 & e20.$$.dirty[1] && n10(32, s10 = function(e21) { + var t11 = rI(e21[0]) ? a10.concat(e21) : a10.concat(L10, e21); + return T8(t11, { mode: v10, modal: _10 }) || t11; + }), 34 & e20.$$.dirty[0] | 40 & e20.$$.dirty[1] && n10(33, c10 = function(e21) { + return R8(e21, { mode: v10, modal: _10, selection: u10 }) || e21; + }); + }, [l10, u10, f10, d10, h10, v10, p10, m10, g10, y10, b10, k10, w10, x10, j10, S10, C10, $10, O10, M10, E10, A10, P10, N8, I10, D10, q10, z10, B10, r10, o10, i10, s10, c10, _10, T8, R8, function(e21) { + if (r10) + return r10.patch(e21); + if (o10) + return o10.patch(e21); + if (i10) + return i10.patch(e21); + throw new Error('Method patch is not available in mode "'.concat(v10, '"')); + }, function(e21) { + if (r10) + return r10.expand(e21); + throw new Error('Method expand is not available in mode "'.concat(v10, '"')); + }, function(e21) { + if (i10) + i10.openTransformModal(e21); + else if (r10) + r10.openTransformModal(e21); + else { + if (!o10) + throw new Error('Method transform is not available in mode "'.concat(v10, '"')); + o10.openTransformModal(e21); + } + }, function() { + if (i10) + return i10.validate(); + if (r10) + return r10.validate(); + if (o10) + return o10.validate(); + throw new Error('Method validate is not available in mode "'.concat(v10, '"')); + }, function() { + return r10 ? r10.acceptAutoRepair() : l10; + }, function(e21) { + if (r10) + return r10.scrollTo(e21); + if (o10) + return o10.scrollTo(e21); + throw new Error('Method scrollTo is not available in mode "'.concat(v10, '"')); + }, function(e21) { + if (r10) + return r10.findElement(e21); + if (o10) + return o10.findElement(e21); + throw new Error('Method findElement is not available in mode "'.concat(v10, '"')); + }, function() { + i10 ? i10.focus() : r10 ? r10.focus() : o10 && o10.focus(); + }, function() { + return F10.apply(this, arguments); + }, a10, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(31, i10 = e21); + }); + }, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(30, o10 = e21); + }); + }, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(29, r10 = e21); + }); + }]; + } + var a8 = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, i8, o8, Xo, { content: 0, selection: 1, readOnly: 2, indentation: 3, tabSize: 4, mode: 5, mainMenuBar: 6, navigationBar: 7, statusBar: 8, askToFormat: 9, escapeControlCharacters: 10, escapeUnicodeCharacters: 11, flattenColumns: 12, parser: 13, parseMemoizeOne: 14, validator: 15, validationParser: 16, pathParser: 17, insideModal: 34, onChange: 18, onChangeMode: 19, onSelect: 20, onRenderValue: 21, onClassName: 22, onRenderMenu: 35, onRenderContextMenu: 36, onError: 23, onFocus: 24, onBlur: 25, onSortModal: 26, onTransformModal: 27, onJSONEditorModal: 28, patch: 37, expand: 38, transform: 39, validate: 40, acceptAutoRepair: 41, scrollTo: 42, findElement: 43, focus: 44, refresh: 45 }, null, [-1, -1]), n10; + } + return Ao(t10, Ia), Do(t10, [{ key: "patch", get: function() { + return this.$$.ctx[37]; + } }, { key: "expand", get: function() { + return this.$$.ctx[38]; + } }, { key: "transform", get: function() { + return this.$$.ctx[39]; + } }, { key: "validate", get: function() { + return this.$$.ctx[40]; + } }, { key: "acceptAutoRepair", get: function() { + return this.$$.ctx[41]; + } }, { key: "scrollTo", get: function() { + return this.$$.ctx[42]; + } }, { key: "findElement", get: function() { + return this.$$.ctx[43]; + } }, { key: "focus", get: function() { + return this.$$.ctx[44]; + } }, { key: "refresh", get: function() { + return this.$$.ctx[45]; + } }]), t10; + }(); + function s8(e20) { + mi(e20, "svelte-1m3nfgb", '.jse-modal.svelte-1m3nfgb.svelte-1m3nfgb{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);line-height:normal;background:var(--jse-modal-background, #f5f5f5);color:var(--jse-text-color, #4d4d4d)}.jse-modal.svelte-1m3nfgb .svelte-select{--border:var(--jse-svelte-select-border, 1px solid #d8dbdf);--item-is-active-bg:var(--jse-item-is-active-bg, #3883fa);--border-radius:var(--jse-svelte-select-border-radius, 3px);--background:var(--jse-svelte-select-background, #fff);--padding:var(--jse-svelte-select-padding, 0 10px);--multi-select-padding:var(--jse-svelte-select-multi-select-padding, 0 10px);--font-size:var(--jse-svelte-select-font-size, var(--jse-font-size, 16px));--height:36px;--multi-item-height:28px;--multi-item-margin:2px;--multi-item-padding:2px 8px;--multi-item-border-radius:6px;--indicator-top:8px}.jse-modal.svelte-1m3nfgb .jse-modal-contents.svelte-1m3nfgb{flex:1;display:flex;flex-direction:column;padding:20px;overflow:auto;min-width:0;min-height:0}.jse-modal.svelte-1m3nfgb .jse-modal-contents .jse-actions.svelte-1m3nfgb{display:flex;flex-direction:row;justify-content:flex-end;padding-top:var(--jse-padding, 10px)}.jse-modal.svelte-1m3nfgb .jse-modal-contents .jse-actions button.jse-primary.svelte-1m3nfgb{border:none;background:transparent;color:inherit;cursor:pointer;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);padding:5px;margin:0;background:var(--jse-button-primary-background, var(--jse-theme-color, #3883fa));color:var(--jse-button-primary-color, #fff);padding:var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px));border-radius:3px}.jse-modal.svelte-1m3nfgb .jse-modal-contents .jse-actions button.jse-primary.svelte-1m3nfgb:hover{background:var(--jse-button-primary-background-highlight, var(--jse-theme-color-highlight, #5f9dff))}.jse-modal.svelte-1m3nfgb .jse-modal-contents .jse-actions button.jse-primary.svelte-1m3nfgb:disabled{background:var(--jse-button-primary-background-disabled, #9d9d9d)}.bg.jse-modal-bg{width:100%;height:100%;top:0;left:0;background:var(--jse-overlay-background, rgba(0, 0, 0, 0.3))}.bg.jse-modal-bg .jse-modal-window-wrap{margin:0}.bg.jse-modal-bg .jse-modal-window{max-width:90%;margin:4rem auto 2rem auto;border-radius:2px}.bg.jse-modal-bg .jse-modal-window.jse-modal-window-sort{width:400px}.bg.jse-modal-bg .jse-modal-window.jse-modal-window-transform{width:1200px;height:1200px;max-height:80%;display:flex}.bg.jse-modal-bg .jse-modal-window.jse-modal-window-jsoneditor{width:800px;height:auto;min-height:500px;max-height:calc(100vh - 6rem);display:flex}.bg.jse-modal-bg .jse-modal-container{flex:1;display:flex;flex-direction:column;padding:0}.jse-modal.jse-jsoneditor-modal.svelte-1m3nfgb .jse-modal-contents.svelte-1m3nfgb{padding-top:0}.jse-modal.jse-jsoneditor-modal.svelte-1m3nfgb .jse-modal-contents .jse-label.svelte-1m3nfgb{font-weight:bold;display:block;box-sizing:border-box}.jse-modal.jse-jsoneditor-modal.svelte-1m3nfgb .jse-modal-contents .jse-label .jse-label-inner.svelte-1m3nfgb{margin-top:calc(2 * var(--jse-padding, 10px));margin-bottom:calc(0.5 * var(--jse-padding, 10px));box-sizing:border-box}.jse-modal.jse-jsoneditor-modal.svelte-1m3nfgb .jse-modal-contents .jse-label .jse-label-inner button.svelte-1m3nfgb{border:none;background:transparent;color:inherit;cursor:pointer;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);padding:5px;margin:0;font-weight:bold;padding:0}.jse-modal.jse-jsoneditor-modal.svelte-1m3nfgb .jse-modal-contents .jse-modal-inline-editor.svelte-1m3nfgb{flex:1;min-height:150px;min-width:0;display:flex;--jse-theme-color:var(--jse-modal-editor-theme-color, var(--jse-modal-theme-color, #707070));--jse-theme-color-highlight:var(--jse-modal-editor-theme-color-highlight, var(--jse-modal-theme-color-highlight, #646464))}.jse-modal.jse-jsoneditor-modal.svelte-1m3nfgb .jse-actions.svelte-1m3nfgb{gap:var(--jse-padding, 10px);align-items:center}.jse-modal.jse-jsoneditor-modal.svelte-1m3nfgb .jse-actions .jse-error.svelte-1m3nfgb{flex:1;color:var(--jse-error-color, #ee5341)}.jse-modal.jse-jsoneditor-modal.svelte-1m3nfgb .jse-actions button.jse-secondary.svelte-1m3nfgb{border:none;background:transparent;color:inherit;cursor:pointer;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);padding:5px;margin:0;background:var(--jse-button-secondary-background, #d3d3d3);color:var(--jse-button-secondary-color, var(--jse-text-color, #4d4d4d));padding:var(--jse-padding, 10px) calc(2 * var(--jse-padding, 10px));border-radius:3px}.jse-modal.jse-jsoneditor-modal.svelte-1m3nfgb .jse-actions button.jse-secondary.svelte-1m3nfgb:hover{background:var(--jse-button-secondary-background-highlight, #e1e1e1)}.jse-modal.jse-jsoneditor-modal.svelte-1m3nfgb .jse-actions button.jse-secondary.svelte-1m3nfgb:disabled{background:var(--jse-button-secondary-background-disabled, #9d9d9d)}.jse-modal.jse-jsoneditor-modal.svelte-1m3nfgb input.svelte-1m3nfgb{border:var(--jse-input-border, 1px solid #d8dbdf);outline:none;box-sizing:border-box;padding:calc(0.5 * var(--jse-padding, 10px));font-family:var(--jse-font-family-mono, consolas, menlo, monaco, "Ubuntu Mono", "source-code-pro", monospace);font-size:var(--jse-font-size-mono, 14px);color:inherit;background:var(--jse-input-background, var(--jse-background-color, #fff))}.jse-modal.jse-jsoneditor-modal.svelte-1m3nfgb input.svelte-1m3nfgb:focus{border:var(--jse-input-border-focus, 1px solid var(--jse-input-border-focus, var(--jse-theme-color, #3883fa)))}.jse-modal.jse-jsoneditor-modal.svelte-1m3nfgb input.svelte-1m3nfgb:read-only{background:var(--jse-input-background-readonly, transparent)}'); + } + function c8(e20) { + var t10, n10; + return { c: function() { + t10 = ji("div"), n10 = Ci(e20[22]), Ai(t10, "class", "jse-error svelte-1m3nfgb"); + }, m: function(e21, r10) { + ki(e21, t10, r10), pi(t10, n10); + }, p: function(e21, t11) { + 4194304 & t11[0] && Ni(n10, e21[22]); + }, d: function(e21) { + e21 && wi(t10); + } }; + } + function l8(e20) { + var t10, n10, r10, o10, i10, a10; + return n10 = new jM({ props: { data: nP } }), { c: function() { + t10 = ji("button"), Pa(n10.$$.fragment), r10 = Ci(" Back"), Ai(t10, "type", "button"), Ai(t10, "class", "jse-secondary svelte-1m3nfgb"); + }, m: function(s10, c10) { + ki(s10, t10, c10), Ta(n10, t10, null), pi(t10, r10), o10 = true, i10 || (a10 = Oi(t10, "click", e20[27]), i10 = true); + }, p: Wo, i: function(e21) { + o10 || (wa(n10.$$.fragment, e21), o10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), o10 = false; + }, d: function(e21) { + e21 && wi(t10), Ra(n10), i10 = false, a10(); + } }; + } + function u8(e20) { + var t10, n10, r10; + return { c: function() { + (t10 = ji("button")).textContent = "Close", Ai(t10, "type", "button"), Ai(t10, "class", "jse-primary svelte-1m3nfgb"); + }, m: function(o10, i10) { + ki(o10, t10, i10), n10 || (r10 = [Oi(t10, "click", e20[27]), ci(h8.call(null, t10))], n10 = true); + }, p: Wo, d: function(e21) { + e21 && wi(t10), n10 = false, Qo(r10); + } }; + } + function f8(e20) { + var t10, n10, r10; + return { c: function() { + (t10 = ji("button")).textContent = "Apply", Ai(t10, "type", "button"), Ai(t10, "class", "jse-primary svelte-1m3nfgb"); + }, m: function(o10, i10) { + ki(o10, t10, i10), n10 || (r10 = [Oi(t10, "click", e20[26]), ci(h8.call(null, t10))], n10 = true); + }, p: Wo, d: function(e21) { + e21 && wi(t10), n10 = false, Qo(r10); + } }; + } + function d8(e20) { + var t10, n10, r10, o10, i10, a10, s10, c10, l10, u10, f10, d10, h10, v10, p10, m10, g10, y10, b10; + n10 = new XN({ props: { title: "Edit nested content " + (e20[20].length > 1 ? " (".concat(e20[20].length, ")") : ""), onClose: e20[27] } }); + var k10 = { mode: e20[23].mode, content: e20[23].content, selection: e20[23].selection, readOnly: e20[0], indentation: e20[1], tabSize: e20[2], statusBar: e20[5], askToFormat: e20[6], mainMenuBar: e20[3], navigationBar: e20[4], escapeControlCharacters: e20[7], escapeUnicodeCharacters: e20[8], flattenColumns: e20[9], parser: e20[10], parseMemoizeOne: e20[24], validator: e20[11], validationParser: e20[12], pathParser: e20[13], insideModal: true, onError: e20[31], onChange: e20[28], onChangeMode: e20[30], onSelect: e20[29], onRenderValue: e20[14], onClassName: e20[15], onFocus: LL, onBlur: LL, onRenderMenu: e20[16], onRenderContextMenu: e20[17], onSortModal: e20[18], onTransformModal: e20[19], onJSONEditorModal: e20[32] }; + d10 = new a8({ props: k10 }), e20[37](d10); + var w10 = e20[22] && c8(e20), x10 = e20[20].length > 1 && l8(e20); + function j10(e21, t11) { + return e21[0] ? u8 : f8; + } + var S10 = j10(e20), C10 = S10(e20); + return { c: function() { + t10 = ji("div"), Pa(n10.$$.fragment), r10 = $i(), o10 = ji("div"), (i10 = ji("div")).innerHTML = '
Path
', a10 = $i(), s10 = ji("input"), c10 = $i(), (l10 = ji("div")).innerHTML = '
Contents
', u10 = $i(), f10 = ji("div"), Pa(d10.$$.fragment), h10 = $i(), v10 = ji("div"), w10 && w10.c(), p10 = $i(), x10 && x10.c(), m10 = $i(), C10.c(), Ai(i10, "class", "jse-label svelte-1m3nfgb"), Ai(s10, "class", "jse-path svelte-1m3nfgb"), Ai(s10, "type", "text"), s10.readOnly = true, Ai(s10, "title", "Selected path"), s10.value = e20[25], Ai(l10, "class", "jse-label svelte-1m3nfgb"), Ai(f10, "class", "jse-modal-inline-editor svelte-1m3nfgb"), Ai(v10, "class", "jse-actions svelte-1m3nfgb"), Ai(o10, "class", "jse-modal-contents svelte-1m3nfgb"), Ai(t10, "class", "jse-modal jse-jsoneditor-modal svelte-1m3nfgb"); + }, m: function(k11, j11) { + ki(k11, t10, j11), Ta(n10, t10, null), pi(t10, r10), pi(t10, o10), pi(o10, i10), pi(o10, a10), pi(o10, s10), pi(o10, c10), pi(o10, l10), pi(o10, u10), pi(o10, f10), Ta(d10, f10, null), pi(o10, h10), pi(o10, v10), w10 && w10.m(v10, null), pi(v10, p10), x10 && x10.m(v10, null), pi(v10, m10), C10.m(v10, null), g10 = true, y10 || (b10 = ci(BI.call(null, t10, e20[27])), y10 = true); + }, p: function(e21, t11) { + var r11 = {}; + 1048576 & t11[0] && (r11.title = "Edit nested content " + (e21[20].length > 1 ? " (".concat(e21[20].length, ")") : "")), n10.$set(r11), (!g10 || 33554432 & t11[0] && s10.value !== e21[25]) && (s10.value = e21[25]); + var o11 = {}; + 8388608 & t11[0] && (o11.mode = e21[23].mode), 8388608 & t11[0] && (o11.content = e21[23].content), 8388608 & t11[0] && (o11.selection = e21[23].selection), 1 & t11[0] && (o11.readOnly = e21[0]), 2 & t11[0] && (o11.indentation = e21[1]), 4 & t11[0] && (o11.tabSize = e21[2]), 32 & t11[0] && (o11.statusBar = e21[5]), 64 & t11[0] && (o11.askToFormat = e21[6]), 8 & t11[0] && (o11.mainMenuBar = e21[3]), 16 & t11[0] && (o11.navigationBar = e21[4]), 128 & t11[0] && (o11.escapeControlCharacters = e21[7]), 256 & t11[0] && (o11.escapeUnicodeCharacters = e21[8]), 512 & t11[0] && (o11.flattenColumns = e21[9]), 1024 & t11[0] && (o11.parser = e21[10]), 16777216 & t11[0] && (o11.parseMemoizeOne = e21[24]), 2048 & t11[0] && (o11.validator = e21[11]), 4096 & t11[0] && (o11.validationParser = e21[12]), 8192 & t11[0] && (o11.pathParser = e21[13]), 16384 & t11[0] && (o11.onRenderValue = e21[14]), 32768 & t11[0] && (o11.onClassName = e21[15]), 65536 & t11[0] && (o11.onRenderMenu = e21[16]), 131072 & t11[0] && (o11.onRenderContextMenu = e21[17]), 262144 & t11[0] && (o11.onSortModal = e21[18]), 524288 & t11[0] && (o11.onTransformModal = e21[19]), d10.$set(o11), e21[22] ? w10 ? w10.p(e21, t11) : ((w10 = c8(e21)).c(), w10.m(v10, p10)) : w10 && (w10.d(1), w10 = null), e21[20].length > 1 ? x10 ? (x10.p(e21, t11), 1048576 & t11[0] && wa(x10, 1)) : ((x10 = l8(e21)).c(), wa(x10, 1), x10.m(v10, m10)) : x10 && (ba(), xa(x10, 1, 1, function() { + x10 = null; + }), ka()), S10 === (S10 = j10(e21)) && C10 ? C10.p(e21, t11) : (C10.d(1), (C10 = S10(e21)) && (C10.c(), C10.m(v10, null))); + }, i: function(e21) { + g10 || (wa(n10.$$.fragment, e21), wa(d10.$$.fragment, e21), wa(x10), g10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), xa(d10.$$.fragment, e21), xa(x10), g10 = false; + }, d: function(r11) { + r11 && wi(t10), Ra(n10), e20[37](null), Ra(d10), w10 && w10.d(), x10 && x10.d(), C10.d(), y10 = false, b10(); + } }; + } + function h8(e20) { + e20.focus(); + } + function v8(e20, t10, n10) { + var r10, o10, i10, a10, s10, c10 = Da("jsoneditor:JSONEditorModal"), l10 = t10.content, u10 = t10.path, f10 = t10.onPatch, d10 = t10.readOnly, h10 = t10.indentation, v10 = t10.tabSize, p10 = t10.mainMenuBar, m10 = t10.navigationBar, g10 = t10.statusBar, y10 = t10.askToFormat, b10 = t10.escapeControlCharacters, k10 = t10.escapeUnicodeCharacters, w10 = t10.flattenColumns, x10 = t10.parser, j10 = t10.validator, S10 = t10.validationParser, C10 = t10.pathParser, $10 = t10.onRenderValue, _10 = t10.onClassName, O10 = t10.onRenderMenu, M10 = t10.onRenderContextMenu, E10 = t10.onSortModal, A10 = t10.onTransformModal, P10 = Zi("simple-modal").close, T8 = { mode: I10(l10), content: l10, selection: null, relativePath: u10 }, R8 = [T8], N8 = void 0; + function I10(e21) { + return K_(e21) && Ts(e21.json) ? Qa.table : Qa.tree; + } + function D10() { + var e21, t11 = (null === (e21 = vb(R8)) || void 0 === e21 ? void 0 : e21.selection) || null; + yE(t11) && s10.scrollTo(JE(t11)); + } + return e20.$$set = function(e21) { + "content" in e21 && n10(33, l10 = e21.content), "path" in e21 && n10(34, u10 = e21.path), "onPatch" in e21 && n10(35, f10 = e21.onPatch), "readOnly" in e21 && n10(0, d10 = e21.readOnly), "indentation" in e21 && n10(1, h10 = e21.indentation), "tabSize" in e21 && n10(2, v10 = e21.tabSize), "mainMenuBar" in e21 && n10(3, p10 = e21.mainMenuBar), "navigationBar" in e21 && n10(4, m10 = e21.navigationBar), "statusBar" in e21 && n10(5, g10 = e21.statusBar), "askToFormat" in e21 && n10(6, y10 = e21.askToFormat), "escapeControlCharacters" in e21 && n10(7, b10 = e21.escapeControlCharacters), "escapeUnicodeCharacters" in e21 && n10(8, k10 = e21.escapeUnicodeCharacters), "flattenColumns" in e21 && n10(9, w10 = e21.flattenColumns), "parser" in e21 && n10(10, x10 = e21.parser), "validator" in e21 && n10(11, j10 = e21.validator), "validationParser" in e21 && n10(12, S10 = e21.validationParser), "pathParser" in e21 && n10(13, C10 = e21.pathParser), "onRenderValue" in e21 && n10(14, $10 = e21.onRenderValue), "onClassName" in e21 && n10(15, _10 = e21.onClassName), "onRenderMenu" in e21 && n10(16, O10 = e21.onRenderMenu), "onRenderContextMenu" in e21 && n10(17, M10 = e21.onRenderContextMenu), "onSortModal" in e21 && n10(18, E10 = e21.onSortModal), "onTransformModal" in e21 && n10(19, A10 = e21.onTransformModal); + }, e20.$$.update = function() { + 1048576 & e20.$$.dirty[0] && n10(23, r10 = vb(R8) || T8), 1048576 & e20.$$.dirty[0] && n10(36, o10 = R8.flatMap(function(e21) { + return e21.relativePath; + })), 32 & e20.$$.dirty[1] && n10(25, i10 = _w(o10) ? "(document root)" : JO(o10)), 1024 & e20.$$.dirty[0] && n10(24, a10 = CB(x10.parse)); + }, [d10, h10, v10, p10, m10, g10, y10, b10, k10, w10, x10, j10, S10, C10, $10, _10, O10, M10, E10, A10, R8, s10, N8, r10, a10, i10, function() { + if (c10("handleApply"), !d10) + try { + n10(22, N8 = void 0); + var e21 = r10.relativePath, t11 = r10.content, o11 = [{ op: "replace", path: Zs(e21), value: Q_(t11, x10).json }]; + if (R8.length > 1) { + var i11 = { json: rc(Q_(R8[R8.length - 2].content, x10).json, o11) }, a11 = Ro(Ro({}, R8[R8.length - 2] || T8), {}, { content: i11 }); + n10(20, R8 = [].concat(Bo(R8.slice(0, R8.length - 2)), [a11])), ca().then(D10); + } else + f10(o11), P10(); + } catch (e23) { + n10(22, N8 = String(e23)); + } + }, function() { + c10("handleClose"), R8.length > 1 ? (n10(20, R8 = Qk(R8)), ca().then(D10), n10(22, N8 = void 0)) : P10(); + }, function(e21) { + c10("handleChange", e21); + var t11 = Ro(Ro({}, r10), {}, { content: e21 }); + n10(20, R8 = [].concat(Bo(Qk(R8)), [t11])); + }, function(e21) { + c10("handleChangeSelection", e21); + var t11 = Ro(Ro({}, r10), {}, { selection: e21 }); + n10(20, R8 = [].concat(Bo(Qk(R8)), [t11])); + }, function(e21) { + c10("handleChangeMode", e21); + var t11 = Ro(Ro({}, r10), {}, { mode: e21 }); + n10(20, R8 = [].concat(Bo(Qk(R8)), [t11])); + }, function(e21) { + n10(22, N8 = e21.toString()), console.error(e21); + }, function(e21) { + var t11 = e21.content, r11 = e21.path; + c10("handleJSONEditorModal", { content: t11, path: r11 }); + var o11 = { mode: I10(t11), content: t11, selection: null, relativePath: r11 }; + n10(20, R8 = [].concat(Bo(R8), [o11])); + }, l10, u10, f10, o10, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(21, s10 = e21); + }); + }]; + } + var p8 = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, v8, d8, Zo, { content: 33, path: 34, onPatch: 35, readOnly: 0, indentation: 1, tabSize: 2, mainMenuBar: 3, navigationBar: 4, statusBar: 5, askToFormat: 6, escapeControlCharacters: 7, escapeUnicodeCharacters: 8, flattenColumns: 9, parser: 10, validator: 11, validationParser: 12, pathParser: 13, onRenderValue: 14, onClassName: 15, onRenderMenu: 16, onRenderContextMenu: 17, onSortModal: 18, onTransformModal: 19 }, s8, [-1, -1]), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + function m8(e20, t10, n10) { + var r10 = Zi("simple-modal"); + return [r10.open, r10.close]; + } + var g8 = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, m8, null, Zo, { open: 0, close: 1 }), n10; + } + return Ao(t10, Ia), Do(t10, [{ key: "open", get: function() { + return this.$$.ctx[0]; + } }, { key: "close", get: function() { + return this.$$.ctx[1]; + } }]), t10; + }(); + function y8(e20) { + mi(e20, "svelte-ybuk0j", '.jse-main.svelte-ybuk0j{width:100%;height:100%;min-width:0;min-height:150px;font-family:var(--jse-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);font-size:var(--jse-font-size, 16px);line-height:normal;position:relative;display:flex;flex-direction:row}'); + } + function b8(e20) { + var t10, n10, r10 = { mode: e20[1], content: e20[0], selection: e20[2], readOnly: e20[3], indentation: e20[4], tabSize: e20[5], statusBar: e20[8], askToFormat: e20[9], mainMenuBar: e20[6], navigationBar: e20[7], escapeControlCharacters: e20[10], escapeUnicodeCharacters: e20[11], flattenColumns: e20[12], parser: e20[13], parseMemoizeOne: e20[27], validator: e20[14], validationParser: e20[15], pathParser: e20[16], insideModal: false, onError: e20[21], onChange: e20[28], onChangeMode: e20[32], onSelect: e20[29], onRenderValue: e20[17], onClassName: e20[18], onFocus: e20[30], onBlur: e20[31], onRenderMenu: e20[19], onRenderContextMenu: e20[20], onSortModal: e20[34], onTransformModal: e20[33], onJSONEditorModal: e20[35] }; + return t10 = new a8({ props: r10 }), e20[62](t10), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r11) { + Ta(t10, e21, r11), n10 = true; + }, p: function(e21, n11) { + var r11 = {}; + 2 & n11[0] && (r11.mode = e21[1]), 1 & n11[0] && (r11.content = e21[0]), 4 & n11[0] && (r11.selection = e21[2]), 8 & n11[0] && (r11.readOnly = e21[3]), 16 & n11[0] && (r11.indentation = e21[4]), 32 & n11[0] && (r11.tabSize = e21[5]), 256 & n11[0] && (r11.statusBar = e21[8]), 512 & n11[0] && (r11.askToFormat = e21[9]), 64 & n11[0] && (r11.mainMenuBar = e21[6]), 128 & n11[0] && (r11.navigationBar = e21[7]), 1024 & n11[0] && (r11.escapeControlCharacters = e21[10]), 2048 & n11[0] && (r11.escapeUnicodeCharacters = e21[11]), 4096 & n11[0] && (r11.flattenColumns = e21[12]), 8192 & n11[0] && (r11.parser = e21[13]), 134217728 & n11[0] && (r11.parseMemoizeOne = e21[27]), 16384 & n11[0] && (r11.validator = e21[14]), 32768 & n11[0] && (r11.validationParser = e21[15]), 65536 & n11[0] && (r11.pathParser = e21[16]), 2097152 & n11[0] && (r11.onError = e21[21]), 131072 & n11[0] && (r11.onRenderValue = e21[17]), 262144 & n11[0] && (r11.onClassName = e21[18]), 524288 & n11[0] && (r11.onRenderMenu = e21[19]), 1048576 & n11[0] && (r11.onRenderContextMenu = e21[20]), t10.$set(r11); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(n11) { + e20[62](null), Ra(t10, n11); + } }; + } + function k8(e20) { + var t10, n10, r10, o10, i10, a10 = e20[22]; + function s10(t11) { + e20[61](t11); + } + var c10 = {}; + void 0 !== e20[25] && (c10.open = e20[25]), t10 = new g8({ props: c10 }), na.push(function() { + return Aa(t10, "open", s10); + }); + var l10 = b8(e20); + return { c: function() { + Pa(t10.$$.fragment), r10 = $i(), o10 = ji("div"), l10.c(), Ai(o10, "class", "jse-main svelte-ybuk0j"), zi(o10, "jse-focus", e20[23]); + }, m: function(e21, n11) { + Ta(t10, e21, n11), ki(e21, r10, n11), ki(e21, o10, n11), l10.m(o10, null), i10 = true; + }, p: function(e21, r11) { + var s11 = {}; + !n10 && 33554432 & r11[0] && (n10 = true, s11.open = e21[25], ua(function() { + return n10 = false; + })), t10.$set(s11), 4194304 & r11[0] && Zo(a10, a10 = e21[22]) ? (ba(), xa(l10, 1, 1, Wo), ka(), (l10 = b8(e21)).c(), wa(l10, 1), l10.m(o10, null)) : l10.p(e21, r11), (!i10 || 8388608 & r11[0]) && zi(o10, "jse-focus", e21[23]); + }, i: function(e21) { + i10 || (wa(t10.$$.fragment, e21), wa(l10), i10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), xa(l10), i10 = false; + }, d: function(e21) { + e21 && (wi(r10), wi(o10)), Ra(t10, e21), l10.d(e21); + } }; + } + function w8(e20) { + var t10, n10; + return t10 = new rs({ props: { closeOnEsc: false, $$slots: { default: [k8] }, $$scope: { ctx: e20 } } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 201326591 & n11[0] | 8 & n11[2] && (r10.$$scope = { dirty: n11, ctx: e21 }), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function x8(e20) { + for (var t10, n10, r10, o10 = [{ show: null === (t10 = e20[26]) || void 0 === t10 ? void 0 : t10.component }, ks, { closeOnEsc: false }], i10 = { $$slots: { default: [w8] }, $$scope: { ctx: e20 } }, a10 = 0; a10 < o10.length; a10 += 1) + i10 = Jo(i10, o10[a10]); + return (n10 = new rs({ props: i10 })).$on("close", e20[36]), { c: function() { + Pa(n10.$$.fragment); + }, m: function(e21, t11) { + Ta(n10, e21, t11), r10 = true; + }, p: function(e21, t11) { + var r11, i11 = 67108864 & t11[0] ? Ma(o10, [{ show: null === (r11 = e21[26]) || void 0 === r11 ? void 0 : r11.component }, o10[1], o10[2]]) : {}; + 201326591 & t11[0] | 8 & t11[2] && (i11.$$scope = { dirty: t11, ctx: e21 }), n10.$set(i11); + }, i: function(e21) { + r10 || (wa(n10.$$.fragment, e21), r10 = true); + }, o: function(e21) { + xa(n10.$$.fragment, e21), r10 = false; + }, d: function(e21) { + Ra(n10, e21); + } }; + } + function j8(e20) { + var t10, n10; + return t10 = new UO({ props: { $$slots: { default: [x8] }, $$scope: { ctx: e20 } } }), { c: function() { + Pa(t10.$$.fragment); + }, m: function(e21, r10) { + Ta(t10, e21, r10), n10 = true; + }, p: function(e21, n11) { + var r10 = {}; + 268435455 & n11[0] | 8 & n11[2] && (r10.$$scope = { dirty: n11, ctx: e21 }), t10.$set(r10); + }, i: function(e21) { + n10 || (wa(t10.$$.fragment, e21), n10 = true); + }, o: function(e21) { + xa(t10.$$.fragment, e21), n10 = false; + }, d: function(e21) { + Ra(t10, e21); + } }; + } + function S8(e20, t10, n10) { + var r10, o10, i10, a10 = Da("jsoneditor:JSONEditor"), s10 = t10.content, c10 = void 0 === s10 ? { text: "" } : s10, l10 = t10.selection, u10 = void 0 === l10 ? null : l10, f10 = t10.readOnly, d10 = void 0 !== f10 && f10, h10 = t10.indentation, v10 = void 0 === h10 ? 2 : h10, p10 = t10.tabSize, m10 = void 0 === p10 ? 4 : p10, g10 = t10.mode, y10 = void 0 === g10 ? Qa.tree : g10, b10 = t10.mainMenuBar, k10 = void 0 === b10 || b10, w10 = t10.navigationBar, x10 = void 0 === w10 || w10, j10 = t10.statusBar, S10 = void 0 === j10 || j10, C10 = t10.askToFormat, $10 = void 0 === C10 || C10, _10 = t10.escapeControlCharacters, O10 = void 0 !== _10 && _10, M10 = t10.escapeUnicodeCharacters, E10 = void 0 !== M10 && M10, A10 = t10.flattenColumns, P10 = void 0 === A10 || A10, T8 = t10.parser, R8 = void 0 === T8 ? JSON : T8, N8 = t10.validator, I10 = void 0 === N8 ? null : N8, D10 = t10.validationParser, q10 = void 0 === D10 ? JSON : D10, z10 = t10.pathParser, B10 = void 0 === z10 ? { parse: KO, stringify: JO } : z10, L10 = t10.queryLanguages, F10 = void 0 === L10 ? [rM] : L10, V10 = t10.queryLanguageId, H10 = void 0 === V10 ? F10[0].id : V10, W10 = t10.onChangeQueryLanguage, U10 = void 0 === W10 ? LL : W10, J10 = t10.onChange, K10 = void 0 === J10 ? null : J10, G10 = t10.onSelect, Q10 = void 0 === G10 ? LL : G10, Y10 = t10.onRenderValue, X10 = void 0 === Y10 ? GA : Y10, Z10 = t10.onClassName, ee2 = void 0 === Z10 ? function() { + } : Z10, te2 = t10.onRenderMenu, ne2 = void 0 === te2 ? LL : te2, re2 = t10.onRenderContextMenu, oe2 = void 0 === re2 ? LL : re2, ie2 = t10.onChangeMode, ae2 = void 0 === ie2 ? LL : ie2, se2 = t10.onError, ce2 = void 0 === se2 ? function(e21) { + console.error(e21), alert(e21.toString()); + } : se2, le2 = t10.onFocus, ue2 = void 0 === le2 ? LL : le2, fe2 = t10.onBlur, de2 = void 0 === fe2 ? LL : fe2, he2 = Ps(), ve2 = false, pe2 = null, me2 = R8; + function ge2() { + return (ge2 = xo(ko().mark(function e21(t11) { + var r11; + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + if (a10("set"), !(r11 = W_(t11))) { + e23.next = 4; + break; + } + throw new Error(r11); + case 4: + return n10(22, he2 = Ps()), e23.next = 7, ca(); + case 7: + n10(0, c10 = t11); + case 8: + case "end": + return e23.stop(); + } + }, e21); + }))).apply(this, arguments); + } + function ye2() { + return (ye2 = xo(ko().mark(function e21(t11) { + var r11; + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + if (a10("update"), !(r11 = W_(t11))) { + e23.next = 4; + break; + } + throw new Error(r11); + case 4: + return n10(0, c10 = t11), e23.next = 7, ca(); + case 7: + case "end": + return e23.stop(); + } + }, e21); + }))).apply(this, arguments); + } + function be2() { + return be2 = xo(ko().mark(function e21(t11) { + var r11; + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + if (!J_(c10)) { + e23.next = 8; + break; + } + e23.prev = 1, n10(0, c10 = { json: R8.parse(c10.text), text: void 0 }), e23.next = 8; + break; + case 5: + throw e23.prev = 5, e23.t0 = e23.catch(1), new Error("Cannot apply patch: current document contains invalid JSON"); + case 8: + return r11 = o10.patch(t11), e23.next = 11, ca(); + case 11: + return e23.abrupt("return", r11); + case 12: + case "end": + return e23.stop(); + } + }, e21, null, [[1, 5]]); + })), be2.apply(this, arguments); + } + function ke2() { + return (ke2 = xo(ko().mark(function e21(t11) { + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + return n10(2, u10 = t11), e23.next = 3, ca(); + case 3: + case "end": + return e23.stop(); + } + }, e21); + }))).apply(this, arguments); + } + function we2() { + return (we2 = xo(ko().mark(function e21(t11) { + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + return o10.expand(t11), e23.next = 3, ca(); + case 3: + case "end": + return e23.stop(); + } + }, e21); + }))).apply(this, arguments); + } + function xe2() { + return xe2 = xo(ko().mark(function e21() { + var t11; + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + return t11 = o10.acceptAutoRepair(), e23.next = 3, ca(); + case 3: + return e23.abrupt("return", t11); + case 4: + case "end": + return e23.stop(); + } + }, e21); + })), xe2.apply(this, arguments); + } + function je2() { + return (je2 = xo(ko().mark(function e21(t11) { + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + return e23.next = 2, o10.scrollTo(t11); + case 2: + case "end": + return e23.stop(); + } + }, e21); + }))).apply(this, arguments); + } + function Se2() { + return Ce2.apply(this, arguments); + } + function Ce2() { + return (Ce2 = xo(ko().mark(function e21() { + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + return o10.focus(), e23.next = 3, ca(); + case 3: + case "end": + return e23.stop(); + } + }, e21); + }))).apply(this, arguments); + } + function $e2() { + return ($e2 = xo(ko().mark(function e21() { + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + return e23.next = 2, o10.refresh(); + case 2: + case "end": + return e23.stop(); + } + }, e21); + }))).apply(this, arguments); + } + function _e2() { + return (_e2 = xo(ko().mark(function e21(t11) { + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + return this.$set(t11), e23.next = 3, ca(); + case 3: + case "end": + return e23.stop(); + } + }, e21, this); + }))).apply(this, arguments); + } + function Oe2() { + return (Oe2 = xo(ko().mark(function e21() { + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + return this.$destroy(), e23.next = 3, ca(); + case 3: + case "end": + return e23.stop(); + } + }, e21, this); + }))).apply(this, arguments); + } + function Me2() { + return (Me2 = xo(ko().mark(function e21(t11) { + return ko().wrap(function(e23) { + for (; ; ) + switch (e23.prev = e23.next) { + case 0: + if (y10 !== t11) { + e23.next = 2; + break; + } + return e23.abrupt("return"); + case 2: + return n10(1, y10 = t11), e23.next = 5, ca(); + case 5: + return e23.next = 7, Se2(); + case 7: + ae2(t11); + case 8: + case "end": + return e23.stop(); + } + }, e21); + }))).apply(this, arguments); + } + function Ee2(e21) { + a10("handleChangeQueryLanguage", e21), n10(37, H10 = e21), U10(e21); + } + function Ae2(e21) { + var t11 = e21.id, n11 = e21.json, o11 = e21.rootPath, a11 = e21.onTransform, s11 = e21.onClose; + d10 || i10(PL, { id: t11, json: n11, rootPath: o11, indentation: v10, escapeControlCharacters: O10, escapeUnicodeCharacters: E10, parser: R8, parseMemoizeOne: r10, validationParser: q10, pathParser: B10, queryLanguages: F10, queryLanguageId: H10, onChangeQueryLanguage: Ee2, onRenderValue: X10, onRenderMenu: ne2, onRenderContextMenu: oe2, onClassName: ee2, onTransform: a11 }, bs, { onClose: s11 }); + } + function Pe2(e21) { + var t11 = e21.id, n11 = e21.json, r11 = e21.rootPath, o11 = e21.onSort, a11 = e21.onClose; + d10 || i10(BL, { id: t11, json: n11, rootPath: r11, onSort: o11 }, ys, { onClose: a11 }); + } + return e20.$$set = function(e21) { + "content" in e21 && n10(0, c10 = e21.content), "selection" in e21 && n10(2, u10 = e21.selection), "readOnly" in e21 && n10(3, d10 = e21.readOnly), "indentation" in e21 && n10(4, v10 = e21.indentation), "tabSize" in e21 && n10(5, m10 = e21.tabSize), "mode" in e21 && n10(1, y10 = e21.mode), "mainMenuBar" in e21 && n10(6, k10 = e21.mainMenuBar), "navigationBar" in e21 && n10(7, x10 = e21.navigationBar), "statusBar" in e21 && n10(8, S10 = e21.statusBar), "askToFormat" in e21 && n10(9, $10 = e21.askToFormat), "escapeControlCharacters" in e21 && n10(10, O10 = e21.escapeControlCharacters), "escapeUnicodeCharacters" in e21 && n10(11, E10 = e21.escapeUnicodeCharacters), "flattenColumns" in e21 && n10(12, P10 = e21.flattenColumns), "parser" in e21 && n10(13, R8 = e21.parser), "validator" in e21 && n10(14, I10 = e21.validator), "validationParser" in e21 && n10(15, q10 = e21.validationParser), "pathParser" in e21 && n10(16, B10 = e21.pathParser), "queryLanguages" in e21 && n10(38, F10 = e21.queryLanguages), "queryLanguageId" in e21 && n10(37, H10 = e21.queryLanguageId), "onChangeQueryLanguage" in e21 && n10(39, U10 = e21.onChangeQueryLanguage), "onChange" in e21 && n10(40, K10 = e21.onChange), "onSelect" in e21 && n10(41, Q10 = e21.onSelect), "onRenderValue" in e21 && n10(17, X10 = e21.onRenderValue), "onClassName" in e21 && n10(18, ee2 = e21.onClassName), "onRenderMenu" in e21 && n10(19, ne2 = e21.onRenderMenu), "onRenderContextMenu" in e21 && n10(20, oe2 = e21.onRenderContextMenu), "onChangeMode" in e21 && n10(42, ae2 = e21.onChangeMode), "onError" in e21 && n10(21, ce2 = e21.onError), "onFocus" in e21 && n10(43, ue2 = e21.onFocus), "onBlur" in e21 && n10(44, de2 = e21.onBlur); + }, e20.$$.update = function() { + if (8193 & e20.$$.dirty[0] | 536870912 & e20.$$.dirty[1] && !rO(R8, me2)) { + if (a10("parser changed, recreate editor"), K_(c10)) { + var t11 = me2.stringify(c10.json); + n10(0, c10 = { json: void 0 !== t11 ? R8.parse(t11) : void 0 }); + } + n10(60, me2 = R8), n10(22, he2 = Ps()); + } + if (1 & e20.$$.dirty[0]) { + var o11 = W_(c10); + o11 && console.error("Error: " + o11); + } + 8192 & e20.$$.dirty[0] && n10(27, r10 = CB(R8.parse)), 2 & e20.$$.dirty[0] && (a10("mode changed to", y10), "code" === y10 && console.warn('Deprecation warning: "code" mode is renamed to "text". Please use mode="text" instead.')); + }, [c10, y10, u10, d10, v10, m10, k10, x10, S10, $10, O10, E10, P10, R8, I10, q10, B10, X10, ee2, ne2, oe2, ce2, he2, ve2, o10, i10, pe2, r10, function(e21, t11, r11) { + n10(0, c10 = e21), K10 && K10(e21, t11, r11); + }, function(e21) { + n10(2, u10 = e21), Q10(e21); + }, function() { + n10(23, ve2 = true), ue2 && ue2(); + }, function() { + n10(23, ve2 = false), de2 && de2(); + }, function(e21) { + return Me2.apply(this, arguments); + }, Ae2, Pe2, function(e21) { + var t11 = e21.content, r11 = e21.path, o11 = e21.onPatch, i11 = e21.onClose; + a10("onJSONEditorModal", { content: t11, path: r11 }), n10(26, pe2 = { component: Ka(p8, { content: t11, path: r11, onPatch: o11, readOnly: d10, indentation: v10, tabSize: m10, mainMenuBar: k10, navigationBar: x10, statusBar: S10, askToFormat: $10, escapeControlCharacters: O10, escapeUnicodeCharacters: E10, flattenColumns: P10, parser: R8, validator: void 0, validationParser: q10, pathParser: B10, onRenderValue: X10, onClassName: ee2, onRenderMenu: ne2, onRenderContextMenu: oe2, onSortModal: Pe2, onTransformModal: Ae2 }), callbacks: { onClose: i11 } }); + }, function() { + var e21, t11; + null === (e21 = pe2) || void 0 === e21 || null === (e21 = e21.callbacks) || void 0 === e21 || null === (t11 = e21.onClose) || void 0 === t11 || t11.call(e21), n10(26, pe2 = null); + }, H10, F10, U10, K10, Q10, ae2, ue2, de2, function() { + return c10; + }, function(e21) { + return ge2.apply(this, arguments); + }, function(e21) { + return ye2.apply(this, arguments); + }, function(e21) { + return be2.apply(this, arguments); + }, function(e21) { + return ke2.apply(this, arguments); + }, function(e21) { + return we2.apply(this, arguments); + }, function(e21) { + o10.transform(e21); + }, function() { + return o10.validate(); + }, function() { + return xe2.apply(this, arguments); + }, function(e21) { + return je2.apply(this, arguments); + }, function(e21) { + return o10.findElement(e21); + }, Se2, function() { + return $e2.apply(this, arguments); + }, function(e21) { + return _e2.apply(this, arguments); + }, function() { + return Oe2.apply(this, arguments); + }, me2, function(e21) { + n10(25, i10 = e21); + }, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(24, o10 = e21); + }); + }]; + } + var C8 = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, S8, j8, Zo, { content: 0, selection: 2, readOnly: 3, indentation: 4, tabSize: 5, mode: 1, mainMenuBar: 6, navigationBar: 7, statusBar: 8, askToFormat: 9, escapeControlCharacters: 10, escapeUnicodeCharacters: 11, flattenColumns: 12, parser: 13, validator: 14, validationParser: 15, pathParser: 16, queryLanguages: 38, queryLanguageId: 37, onChangeQueryLanguage: 39, onChange: 40, onSelect: 41, onRenderValue: 17, onClassName: 18, onRenderMenu: 19, onRenderContextMenu: 20, onChangeMode: 42, onError: 21, onFocus: 43, onBlur: 44, get: 45, set: 46, update: 47, patch: 48, select: 49, expand: 50, transform: 51, validate: 52, acceptAutoRepair: 53, scrollTo: 54, findElement: 55, focus: 56, refresh: 57, updateProps: 58, destroy: 59 }, y8, [-1, -1, -1]), n10; + } + return Ao(t10, Ia), Do(t10, [{ key: "get", get: function() { + return this.$$.ctx[45]; + } }, { key: "set", get: function() { + return this.$$.ctx[46]; + } }, { key: "update", get: function() { + return this.$$.ctx[47]; + } }, { key: "patch", get: function() { + return this.$$.ctx[48]; + } }, { key: "select", get: function() { + return this.$$.ctx[49]; + } }, { key: "expand", get: function() { + return this.$$.ctx[50]; + } }, { key: "transform", get: function() { + return this.$$.ctx[51]; + } }, { key: "validate", get: function() { + return this.$$.ctx[52]; + } }, { key: "acceptAutoRepair", get: function() { + return this.$$.ctx[53]; + } }, { key: "scrollTo", get: function() { + return this.$$.ctx[54]; + } }, { key: "findElement", get: function() { + return this.$$.ctx[55]; + } }, { key: "focus", get: function() { + return this.$$.ctx[56]; + } }, { key: "refresh", get: function() { + return this.$$.ctx[57]; + } }, { key: "updateProps", get: function() { + return this.$$.ctx[58]; + } }, { key: "destroy", get: function() { + return this.$$.ctx[59]; + } }]), t10; + }(); + function $8(e20) { + mi(e20, "svelte-9wp3tj", ".jse-value.jse-string.svelte-9wp3tj{color:var(--jse-value-color-string, #008000)}.jse-value.jse-object.svelte-9wp3tj,.jse-value.jse-array.svelte-9wp3tj{min-width:16px;color:var(--jse-delimiter-color, rgba(0, 0, 0, 0.38))}.jse-value.jse-number.svelte-9wp3tj{color:var(--jse-value-color-number, #ee422e)}.jse-value.jse-boolean.svelte-9wp3tj{color:var(--jse-value-color-boolean, #ff8c00)}.jse-value.jse-null.svelte-9wp3tj{color:var(--jse-value-color-null, #004ed0)}.jse-value.jse-invalid.svelte-9wp3tj{color:var(--jse-text-color, #4d4d4d)}.jse-value.jse-url.svelte-9wp3tj{color:var(--jse-value-color-url, #008000);text-decoration:underline}.jse-enum-value.svelte-9wp3tj{background:var(--jse-hover-background-color, rgba(0, 0, 0, 0.06));border:none;padding:0;font-family:inherit;font-size:inherit;cursor:pointer;outline:none}.jse-enum-value.jse-selected.svelte-9wp3tj{background:var(--jse-selection-background-color, #d3d3d3);color:inherit}.jse-enum-value.jse-value.svelte-9wp3tj:focus{color:var(--jse-text-color, #4d4d4d)}.jse-json-node.jse-selected .jse-enum-value.svelte-9wp3tj{background:transparent}"); + } + function _8(e20, t10, n10) { + var r10 = e20.slice(); + return r10[13] = t10[n10], r10; + } + function O8(e20) { + var t10, n10, r10, o10 = e20[13].text + ""; + return { c: function() { + t10 = ji("option"), n10 = Ci(o10), t10.__value = r10 = e20[13].value, Ii(t10, t10.__value); + }, m: function(e21, r11) { + ki(e21, t10, r11), pi(t10, n10); + }, p: function(e21, i10) { + 4 & i10 && o10 !== (o10 = e21[13].text + "") && Ni(n10, o10), 4 & i10 && r10 !== (r10 = e21[13].value) && (t10.__value = r10, Ii(t10, t10.__value)); + }, d: function(e21) { + e21 && wi(t10); + } }; + } + function M8(e20) { + for (var t10, n10, r10, o10, i10 = Ca(e20[2]), a10 = [], s10 = 0; s10 < i10.length; s10 += 1) + a10[s10] = O8(_8(e20, i10, s10)); + return { c: function() { + t10 = ji("select"); + for (var r11 = 0; r11 < a10.length; r11 += 1) + a10[r11].c(); + Ai(t10, "class", n10 = si("jse-enum-value ".concat(QE(e20[4], e20[0]))) + " svelte-9wp3tj"), void 0 === e20[4] && la(function() { + return e20[10].call(t10); + }), zi(t10, "jse-selected", pE(e20[1])); + }, m: function(n11, i11) { + ki(n11, t10, i11); + for (var s11 = 0; s11 < a10.length; s11 += 1) + a10[s11] && a10[s11].m(t10, null); + qi(t10, e20[4], true), e20[11](t10), r10 || (o10 = [Oi(t10, "change", e20[10]), Oi(t10, "change", e20[5]), Oi(t10, "mousedown", E8)], r10 = true); + }, p: function(e21, r11) { + var o11 = jo(r11, 1)[0]; + if (4 & o11) { + var s11; + for (i10 = Ca(e21[2]), s11 = 0; s11 < i10.length; s11 += 1) { + var c10 = _8(e21, i10, s11); + a10[s11] ? a10[s11].p(c10, o11) : (a10[s11] = O8(c10), a10[s11].c(), a10[s11].m(t10, null)); + } + for (; s11 < a10.length; s11 += 1) + a10[s11].d(1); + a10.length = i10.length; + } + 17 & o11 && n10 !== (n10 = si("jse-enum-value ".concat(QE(e21[4], e21[0]))) + " svelte-9wp3tj") && Ai(t10, "class", n10), 16 & o11 && qi(t10, e21[4]), 19 & o11 && zi(t10, "jse-selected", pE(e21[1])); + }, i: Wo, o: Wo, d: function(n11) { + n11 && wi(t10), xi(a10, n11), e20[11](null), r10 = false, Qo(o10); + } }; + } + function E8(e20) { + e20.stopPropagation(); + } + function A8(e20, t10, n10) { + var r10, o10 = t10.path, i10 = t10.value, a10 = t10.parser, s10 = t10.readOnly, c10 = t10.selection, l10 = t10.onPatch, u10 = t10.options, f10 = i10; + return e20.$$set = function(e21) { + "path" in e21 && n10(6, o10 = e21.path), "value" in e21 && n10(7, i10 = e21.value), "parser" in e21 && n10(0, a10 = e21.parser), "readOnly" in e21 && n10(8, s10 = e21.readOnly), "selection" in e21 && n10(1, c10 = e21.selection), "onPatch" in e21 && n10(9, l10 = e21.onPatch), "options" in e21 && n10(2, u10 = e21.options); + }, e20.$$.update = function() { + 128 & e20.$$.dirty && n10(4, f10 = i10), 2 & e20.$$.dirty && function(e21) { + e21 && r10 && r10.focus(); + }(c10); + }, [a10, c10, u10, r10, f10, function(e21) { + e21.stopPropagation(), s10 || l10([{ op: "replace", path: Zs(o10), value: f10 }]); + }, o10, i10, s10, l10, function() { + var e21; + e21 = this.querySelector(":checked"), f10 = e21 && e21.__value, n10(4, f10), n10(7, i10); + }, function(e21) { + na[e21 ? "unshift" : "push"](function() { + n10(3, r10 = e21), n10(2, u10); + }); + }]; + } + var P8 = function(e20) { + function t10(e21) { + var n10; + return No(this, t10), Na(Eo(n10 = _o(this, t10)), e21, A8, M8, Zo, { path: 6, value: 7, parser: 0, readOnly: 8, selection: 1, onPatch: 9, options: 2 }, $8), n10; + } + return Ao(t10, Ia), Do(t10); + }(); + var I8; + var D8 = { exports: {} }; + var q8 = {}; + var z8 = {}; + var B8 = {}; + var L8 = {}; + var F8 = {}; + var V8 = {}; + function H8() { + return I8 || (I8 = 1, function(n10) { + Object.defineProperty(n10, "__esModule", { value: true }), n10.regexpCode = n10.getEsmExportName = n10.getProperty = n10.safeStringify = n10.stringify = n10.strConcat = n10.addCodeArg = n10.str = n10._ = n10.nil = n10._Code = n10.Name = n10.IDENTIFIER = n10._CodeOrName = void 0; + var r10 = Do(function e20() { + No(this, e20); + }); + n10._CodeOrName = r10, n10.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i; + var o10 = function(e20) { + function t10(e21) { + var r11; + if (No(this, t10), r11 = _o(this, t10), !n10.IDENTIFIER.test(e21)) + throw new Error("CodeGen: name must be a valid identifier"); + return r11.str = e21, r11; + } + return Ao(t10, e20), Do(t10, [{ key: "toString", value: function() { + return this.str; + } }, { key: "emptyStr", value: function() { + return false; + } }, { key: "names", get: function() { + return qo({}, this.str, 1); + } }]), t10; + }(r10); + n10.Name = o10; + var i10 = function(e20) { + function t10(e21) { + var n11; + return No(this, t10), (n11 = _o(this, t10))._items = "string" == typeof e21 ? [e21] : e21, n11; + } + return Ao(t10, e20), Do(t10, [{ key: "toString", value: function() { + return this.str; + } }, { key: "emptyStr", value: function() { + if (this._items.length > 1) + return false; + var e21 = this._items[0]; + return "" === e21 || '""' === e21; + } }, { key: "str", get: function() { + var e21; + return null !== (e21 = this._str) && void 0 !== e21 ? e21 : this._str = this._items.reduce(function(e23, t11) { + return "".concat(e23).concat(t11); + }, ""); + } }, { key: "names", get: function() { + var e21; + return null !== (e21 = this._names) && void 0 !== e21 ? e21 : this._names = this._items.reduce(function(e23, t11) { + return t11 instanceof o10 && (e23[t11.str] = (e23[t11.str] || 0) + 1), e23; + }, {}); + } }]), t10; + }(r10); + function a10(e20) { + for (var t10 = [e20[0]], n11 = 0, r11 = arguments.length, o11 = new Array(r11 > 1 ? r11 - 1 : 0), a11 = 1; a11 < r11; a11++) + o11[a11 - 1] = arguments[a11]; + for (; n11 < o11.length; ) + l10(t10, o11[n11]), t10.push(e20[++n11]); + return new i10(t10); + } + n10._Code = i10, n10.nil = new i10(""), n10._ = a10; + var s10 = new i10("+"); + function c10(e20) { + for (var t10 = [f10(e20[0])], n11 = 0, r11 = arguments.length, o11 = new Array(r11 > 1 ? r11 - 1 : 0), a11 = 1; a11 < r11; a11++) + o11[a11 - 1] = arguments[a11]; + for (; n11 < o11.length; ) + t10.push(s10), l10(t10, o11[n11]), t10.push(s10, f10(e20[++n11])); + return function(e21) { + var t11 = 1; + for (; t11 < e21.length - 1; ) { + if (e21[t11] === s10) { + var n12 = u10(e21[t11 - 1], e21[t11 + 1]); + if (void 0 !== n12) { + e21.splice(t11 - 1, 3, n12); + continue; + } + e21[t11++] = "+"; + } + t11++; + } + }(t10), new i10(t10); + } + function l10(e20, t10) { + var n11; + t10 instanceof i10 ? e20.push.apply(e20, Bo(t10._items)) : t10 instanceof o10 ? e20.push(t10) : e20.push("number" == typeof (n11 = t10) || "boolean" == typeof n11 || null === n11 ? n11 : f10(Array.isArray(n11) ? n11.join(",") : n11)); + } + function u10(e20, t10) { + if ('""' === t10) + return e20; + if ('""' === e20) + return t10; + if ("string" == typeof e20) { + if (t10 instanceof o10 || '"' !== e20[e20.length - 1]) + return; + return "string" != typeof t10 ? "".concat(e20.slice(0, -1)).concat(t10, '"') : '"' === t10[0] ? e20.slice(0, -1) + t10.slice(1) : void 0; + } + return "string" != typeof t10 || '"' !== t10[0] || e20 instanceof o10 ? void 0 : '"'.concat(e20).concat(t10.slice(1)); + } + function f10(e20) { + return JSON.stringify(e20).replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029"); + } + n10.str = c10, n10.addCodeArg = l10, n10.strConcat = function(t10, n11) { + return n11.emptyStr() ? t10 : t10.emptyStr() ? n11 : c10(e || (e = mo(["", "", ""])), t10, n11); + }, n10.stringify = function(e20) { + return new i10(f10(e20)); + }, n10.safeStringify = f10, n10.getProperty = function(e20) { + return "string" == typeof e20 && n10.IDENTIFIER.test(e20) ? new i10(".".concat(e20)) : a10(t || (t = mo(["[", "]"])), e20); + }, n10.getEsmExportName = function(e20) { + if ("string" == typeof e20 && n10.IDENTIFIER.test(e20)) + return new i10("".concat(e20)); + throw new Error("CodeGen: invalid export name: ".concat(e20, ", use explicit $id name mapping")); + }, n10.regexpCode = function(e20) { + return new i10(e20.toString()); + }; + }(V8)), V8; + } + var W8; + var U8; + var J8 = {}; + function K8() { + return W8 || (W8 = 1, function(e20) { + Object.defineProperty(e20, "__esModule", { value: true }), e20.ValueScope = e20.ValueScopeName = e20.Scope = e20.varKinds = e20.UsedValueState = void 0; + var t10, s10 = H8(), c10 = function(e21) { + function t11(e23) { + var n10; + return No(this, t11), (n10 = _o(this, t11, ['CodeGen: "code" for '.concat(e23, " not defined")])).value = e23.value, n10; + } + return Ao(t11, $o(Error)), Do(t11); + }(); + !function(e21) { + e21[e21.Started = 0] = "Started", e21[e21.Completed = 1] = "Completed"; + }(t10 = e20.UsedValueState || (e20.UsedValueState = {})), e20.varKinds = { const: new s10.Name("const"), let: new s10.Name("let"), var: new s10.Name("var") }; + var l10 = function() { + function e21() { + var t11 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, n10 = t11.prefixes, r10 = t11.parent; + No(this, e21), this._names = {}, this._prefixes = n10, this._parent = r10; + } + return Do(e21, [{ key: "toName", value: function(e23) { + return e23 instanceof s10.Name ? e23 : this.name(e23); + } }, { key: "name", value: function(e23) { + return new s10.Name(this._newName(e23)); + } }, { key: "_newName", value: function(e23) { + var t11 = this._names[e23] || this._nameGroup(e23); + return "".concat(e23).concat(t11.index++); + } }, { key: "_nameGroup", value: function(e23) { + var t11, n10; + if ((null === (n10 = null === (t11 = this._parent) || void 0 === t11 ? void 0 : t11._prefixes) || void 0 === n10 ? void 0 : n10.has(e23)) || this._prefixes && !this._prefixes.has(e23)) + throw new Error('CodeGen: prefix "'.concat(e23, '" is not allowed in this scope')); + return this._names[e23] = { prefix: e23, index: 0 }; + } }]), e21; + }(); + e20.Scope = l10; + var u10 = function(e21) { + function t11(e23, n10) { + var r10; + return No(this, t11), (r10 = _o(this, t11, [n10])).prefix = e23, r10; + } + return Ao(t11, e21), Do(t11, [{ key: "setValue", value: function(e23, t12) { + var r10 = t12.property, o10 = t12.itemIndex; + this.value = e23, this.scopePath = (0, s10._)(n || (n = mo([".", "[", "]"])), new s10.Name(r10), o10); + } }]), t11; + }(s10.Name); + e20.ValueScopeName = u10; + var f10 = (0, s10._)(r || (r = mo(["\n"], ["\\n"]))), d10 = function(n10) { + function r10(e21) { + var t11; + return No(this, r10), (t11 = _o(this, r10, [e21]))._values = {}, t11._scope = e21.scope, t11.opts = Ro(Ro({}, e21), {}, { _n: e21.lines ? f10 : s10.nil }), t11; + } + return Ao(r10, n10), Do(r10, [{ key: "get", value: function() { + return this._scope; + } }, { key: "name", value: function(e21) { + return new u10(e21, this._newName(e21)); + } }, { key: "value", value: function(e21, t11) { + var n11; + if (void 0 === t11.ref) + throw new Error("CodeGen: ref must be passed in value"); + var r11 = this.toName(e21), o10 = r11.prefix, i10 = null !== (n11 = t11.key) && void 0 !== n11 ? n11 : t11.ref, a10 = this._values[o10]; + if (a10) { + var s11 = a10.get(i10); + if (s11) + return s11; + } else + a10 = this._values[o10] = /* @__PURE__ */ new Map(); + a10.set(i10, r11); + var c11 = this._scope[o10] || (this._scope[o10] = []), l11 = c11.length; + return c11[l11] = t11.ref, r11.setValue(t11, { property: o10, itemIndex: l11 }), r11; + } }, { key: "getValue", value: function(e21, t11) { + var n11 = this._values[e21]; + if (n11) + return n11.get(t11); + } }, { key: "scopeRefs", value: function(e21) { + var t11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this._values; + return this._reduceValues(t11, function(t12) { + if (void 0 === t12.scopePath) + throw new Error('CodeGen: name "'.concat(t12, '" has no value')); + return (0, s10._)(o || (o = mo(["", "", ""])), e21, t12.scopePath); + }); + } }, { key: "scopeCode", value: function() { + var e21 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._values, t11 = arguments.length > 1 ? arguments[1] : void 0, n11 = arguments.length > 2 ? arguments[2] : void 0; + return this._reduceValues(e21, function(e23) { + if (void 0 === e23.value) + throw new Error('CodeGen: name "'.concat(e23, '" has no value')); + return e23.value.code; + }, t11, n11); + } }, { key: "_reduceValues", value: function(n11, r11) { + var o10 = this, l11 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, u11 = arguments.length > 3 ? arguments[3] : void 0, f11 = s10.nil, d11 = function() { + var d12 = n11[h10]; + if (!d12) + return 1; + var v10 = l11[h10] = l11[h10] || /* @__PURE__ */ new Map(); + d12.forEach(function(n12) { + if (!v10.has(n12)) { + v10.set(n12, t10.Started); + var l12 = r11(n12); + if (l12) { + var d13 = o10.opts.es5 ? e20.varKinds.var : e20.varKinds.const; + f11 = (0, s10._)(i || (i = mo(["", "", " ", " = ", ";", ""])), f11, d13, n12, l12, o10.opts._n); + } else { + if (!(l12 = null == u11 ? void 0 : u11(n12))) + throw new c10(n12); + f11 = (0, s10._)(a || (a = mo(["", "", "", ""])), f11, l12, o10.opts._n); + } + v10.set(n12, t10.Completed); + } + }); + }; + for (var h10 in n11) + d11(); + return f11; + } }]), r10; + }(l10); + e20.ValueScope = d10; + }(J8)), J8; + } + function G8() { + return U8 || (U8 = 1, function(e20) { + Object.defineProperty(e20, "__esModule", { value: true }), e20.or = e20.and = e20.not = e20.CodeGen = e20.operators = e20.varKinds = e20.ValueScopeName = e20.ValueScope = e20.Scope = e20.Name = e20.regexpCode = e20.stringify = e20.getProperty = e20.nil = e20.strConcat = e20.str = e20._ = void 0; + var t10 = H8(), n10 = K8(), r10 = H8(); + Object.defineProperty(e20, "_", { enumerable: true, get: function() { + return r10._; + } }), Object.defineProperty(e20, "str", { enumerable: true, get: function() { + return r10.str; + } }), Object.defineProperty(e20, "strConcat", { enumerable: true, get: function() { + return r10.strConcat; + } }), Object.defineProperty(e20, "nil", { enumerable: true, get: function() { + return r10.nil; + } }), Object.defineProperty(e20, "getProperty", { enumerable: true, get: function() { + return r10.getProperty; + } }), Object.defineProperty(e20, "stringify", { enumerable: true, get: function() { + return r10.stringify; + } }), Object.defineProperty(e20, "regexpCode", { enumerable: true, get: function() { + return r10.regexpCode; + } }), Object.defineProperty(e20, "Name", { enumerable: true, get: function() { + return r10.Name; + } }); + var o10 = K8(); + Object.defineProperty(e20, "Scope", { enumerable: true, get: function() { + return o10.Scope; + } }), Object.defineProperty(e20, "ValueScope", { enumerable: true, get: function() { + return o10.ValueScope; + } }), Object.defineProperty(e20, "ValueScopeName", { enumerable: true, get: function() { + return o10.ValueScopeName; + } }), Object.defineProperty(e20, "varKinds", { enumerable: true, get: function() { + return o10.varKinds; + } }), e20.operators = { GT: new t10._Code(">"), GTE: new t10._Code(">="), LT: new t10._Code("<"), LTE: new t10._Code("<="), EQ: new t10._Code("==="), NEQ: new t10._Code("!=="), NOT: new t10._Code("!"), OR: new t10._Code("||"), AND: new t10._Code("&&"), ADD: new t10._Code("+") }; + var i10 = function() { + function e21() { + No(this, e21); + } + return Do(e21, [{ key: "optimizeNodes", value: function() { + return this; + } }, { key: "optimizeNames", value: function(e23, t11) { + return this; + } }]), e21; + }(), a10 = function(e21) { + function r11(e23, t11, n11) { + var o11; + return No(this, r11), (o11 = _o(this, r11)).varKind = e23, o11.name = t11, o11.rhs = n11, o11; + } + return Ao(r11, e21), Do(r11, [{ key: "render", value: function(e23) { + var t11 = e23.es5, r12 = e23._n, o11 = t11 ? n10.varKinds.var : this.varKind, i11 = void 0 === this.rhs ? "" : " = ".concat(this.rhs); + return "".concat(o11, " ").concat(this.name).concat(i11, ";") + r12; + } }, { key: "optimizeNames", value: function(e23, t11) { + if (e23[this.name.str]) + return this.rhs && (this.rhs = I10(this.rhs, e23, t11)), this; + } }, { key: "names", get: function() { + return this.rhs instanceof t10._CodeOrName ? this.rhs.names : {}; + } }]), r11; + }(i10), h10 = function(e21) { + function n11(e23, t11, r11) { + var o11; + return No(this, n11), (o11 = _o(this, n11)).lhs = e23, o11.rhs = t11, o11.sideEffects = r11, o11; + } + return Ao(n11, e21), Do(n11, [{ key: "render", value: function(e23) { + var t11 = e23._n; + return "".concat(this.lhs, " = ").concat(this.rhs, ";") + t11; + } }, { key: "optimizeNames", value: function(e23, n12) { + if (!(this.lhs instanceof t10.Name) || e23[this.lhs.str] || this.sideEffects) + return this.rhs = I10(this.rhs, e23, n12), this; + } }, { key: "names", get: function() { + return N8(this.lhs instanceof t10.Name ? {} : Ro({}, this.lhs.names), this.rhs); + } }]), n11; + }(i10), v10 = function(e21) { + function t11(e23, n11, r11, o11) { + var i11; + return No(this, t11), (i11 = _o(this, t11, [e23, r11, o11])).op = n11, i11; + } + return Ao(t11, e21), Do(t11, [{ key: "render", value: function(e23) { + var t12 = e23._n; + return "".concat(this.lhs, " ").concat(this.op, "= ").concat(this.rhs, ";") + t12; + } }]), t11; + }(h10), p10 = function(e21) { + function t11(e23) { + var n11; + return No(this, t11), (n11 = _o(this, t11)).label = e23, n11.names = {}, n11; + } + return Ao(t11, e21), Do(t11, [{ key: "render", value: function(e23) { + var t12 = e23._n; + return "".concat(this.label, ":") + t12; + } }]), t11; + }(i10), m10 = function(e21) { + function t11(e23) { + var n11; + return No(this, t11), (n11 = _o(this, t11)).label = e23, n11.names = {}, n11; + } + return Ao(t11, e21), Do(t11, [{ key: "render", value: function(e23) { + var t12 = e23._n, n11 = this.label ? " ".concat(this.label) : ""; + return "break".concat(n11, ";") + t12; + } }]), t11; + }(i10), g10 = function(e21) { + function t11(e23) { + var n11; + return No(this, t11), (n11 = _o(this, t11)).error = e23, n11; + } + return Ao(t11, e21), Do(t11, [{ key: "render", value: function(e23) { + var t12 = e23._n; + return "throw ".concat(this.error, ";") + t12; + } }, { key: "names", get: function() { + return this.error.names; + } }]), t11; + }(i10), y10 = function(e21) { + function n11(e23) { + var t11; + return No(this, n11), (t11 = _o(this, n11)).code = e23, t11; + } + return Ao(n11, e21), Do(n11, [{ key: "render", value: function(e23) { + var t11 = e23._n; + return "".concat(this.code, ";") + t11; + } }, { key: "optimizeNodes", value: function() { + return "".concat(this.code) ? this : void 0; + } }, { key: "optimizeNames", value: function(e23, t11) { + return this.code = I10(this.code, e23, t11), this; + } }, { key: "names", get: function() { + return this.code instanceof t10._CodeOrName ? this.code.names : {}; + } }]), n11; + }(i10), b10 = function(e21) { + function t11() { + var e23, n11 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : []; + return No(this, t11), (e23 = _o(this, t11)).nodes = n11, e23; + } + return Ao(t11, e21), Do(t11, [{ key: "render", value: function(e23) { + return this.nodes.reduce(function(t12, n11) { + return t12 + n11.render(e23); + }, ""); + } }, { key: "optimizeNodes", value: function() { + for (var e23 = this.nodes, t12 = e23.length; t12--; ) { + var n11 = e23[t12].optimizeNodes(); + Array.isArray(n11) ? e23.splice.apply(e23, [t12, 1].concat(Bo(n11))) : n11 ? e23[t12] = n11 : e23.splice(t12, 1); + } + return e23.length > 0 ? this : void 0; + } }, { key: "optimizeNames", value: function(e23, t12) { + for (var n11 = this.nodes, r11 = n11.length; r11--; ) { + var o11 = n11[r11]; + o11.optimizeNames(e23, t12) || (D10(e23, o11.names), n11.splice(r11, 1)); + } + return n11.length > 0 ? this : void 0; + } }, { key: "names", get: function() { + return this.nodes.reduce(function(e23, t12) { + return R8(e23, t12.names); + }, {}); + } }]), t11; + }(i10), k10 = function(e21) { + function t11() { + return No(this, t11), _o(this, t11, arguments); + } + return Ao(t11, e21), Do(t11, [{ key: "render", value: function(e23) { + return "{" + e23._n + go(Mo(t11.prototype), "render", this).call(this, e23) + "}" + e23._n; + } }]), t11; + }(b10), w10 = function(e21) { + function t11() { + return No(this, t11), _o(this, t11, arguments); + } + return Ao(t11, e21), Do(t11); + }(b10), x10 = function(e21) { + function t11() { + return No(this, t11), _o(this, t11, arguments); + } + return Ao(t11, e21), Do(t11); + }(k10); + x10.kind = "else"; + var j10 = function(e21) { + function t11(e23, n11) { + var r11; + return No(this, t11), (r11 = _o(this, t11, [n11])).condition = e23, r11; + } + return Ao(t11, e21), Do(t11, [{ key: "render", value: function(e23) { + var n11 = "if(".concat(this.condition, ")") + go(Mo(t11.prototype), "render", this).call(this, e23); + return this.else && (n11 += "else " + this.else.render(e23)), n11; + } }, { key: "optimizeNodes", value: function() { + go(Mo(t11.prototype), "optimizeNodes", this).call(this); + var e23 = this.condition; + if (true === e23) + return this.nodes; + var n11 = this.else; + if (n11) { + var r11 = n11.optimizeNodes(); + n11 = this.else = Array.isArray(r11) ? new x10(r11) : r11; + } + return n11 ? false === e23 ? n11 instanceof t11 ? n11 : n11.nodes : this.nodes.length ? this : new t11(q10(e23), n11 instanceof t11 ? [n11] : n11.nodes) : false !== e23 && this.nodes.length ? this : void 0; + } }, { key: "optimizeNames", value: function(e23, n11) { + var r11; + if (this.else = null === (r11 = this.else) || void 0 === r11 ? void 0 : r11.optimizeNames(e23, n11), go(Mo(t11.prototype), "optimizeNames", this).call(this, e23, n11) || this.else) + return this.condition = I10(this.condition, e23, n11), this; + } }, { key: "names", get: function() { + var e23 = go(Mo(t11.prototype), "names", this); + return N8(e23, this.condition), this.else && R8(e23, this.else.names), e23; + } }]), t11; + }(k10); + j10.kind = "if"; + var S10 = function(e21) { + function t11() { + return No(this, t11), _o(this, t11, arguments); + } + return Ao(t11, e21), Do(t11); + }(k10); + S10.kind = "for"; + var C10 = function(e21) { + function t11(e23) { + var n11; + return No(this, t11), (n11 = _o(this, t11)).iteration = e23, n11; + } + return Ao(t11, e21), Do(t11, [{ key: "render", value: function(e23) { + return "for(".concat(this.iteration, ")") + go(Mo(t11.prototype), "render", this).call(this, e23); + } }, { key: "optimizeNames", value: function(e23, n11) { + if (go(Mo(t11.prototype), "optimizeNames", this).call(this, e23, n11)) + return this.iteration = I10(this.iteration, e23, n11), this; + } }, { key: "names", get: function() { + return R8(go(Mo(t11.prototype), "names", this), this.iteration.names); + } }]), t11; + }(S10), $10 = function(e21) { + function t11(e23, n11, r11, o11) { + var i11; + return No(this, t11), (i11 = _o(this, t11)).varKind = e23, i11.name = n11, i11.from = r11, i11.to = o11, i11; + } + return Ao(t11, e21), Do(t11, [{ key: "render", value: function(e23) { + var r11 = e23.es5 ? n10.varKinds.var : this.varKind, o11 = this.name, i11 = this.from, a11 = this.to; + return "for(".concat(r11, " ").concat(o11, "=").concat(i11, "; ").concat(o11, "<").concat(a11, "; ").concat(o11, "++)") + go(Mo(t11.prototype), "render", this).call(this, e23); + } }, { key: "names", get: function() { + var e23 = N8(go(Mo(t11.prototype), "names", this), this.from); + return N8(e23, this.to); + } }]), t11; + }(S10), _10 = function(e21) { + function t11(e23, n11, r11, o11) { + var i11; + return No(this, t11), (i11 = _o(this, t11)).loop = e23, i11.varKind = n11, i11.name = r11, i11.iterable = o11, i11; + } + return Ao(t11, e21), Do(t11, [{ key: "render", value: function(e23) { + return "for(".concat(this.varKind, " ").concat(this.name, " ").concat(this.loop, " ").concat(this.iterable, ")") + go(Mo(t11.prototype), "render", this).call(this, e23); + } }, { key: "optimizeNames", value: function(e23, n11) { + if (go(Mo(t11.prototype), "optimizeNames", this).call(this, e23, n11)) + return this.iterable = I10(this.iterable, e23, n11), this; + } }, { key: "names", get: function() { + return R8(go(Mo(t11.prototype), "names", this), this.iterable.names); + } }]), t11; + }(S10), O10 = function(e21) { + function t11(e23, n11, r11) { + var o11; + return No(this, t11), (o11 = _o(this, t11)).name = e23, o11.args = n11, o11.async = r11, o11; + } + return Ao(t11, e21), Do(t11, [{ key: "render", value: function(e23) { + var n11 = this.async ? "async " : ""; + return "".concat(n11, "function ").concat(this.name, "(").concat(this.args, ")") + go(Mo(t11.prototype), "render", this).call(this, e23); + } }]), t11; + }(k10); + O10.kind = "func"; + var M10 = function(e21) { + function t11() { + return No(this, t11), _o(this, t11, arguments); + } + return Ao(t11, e21), Do(t11, [{ key: "render", value: function(e23) { + return "return " + go(Mo(t11.prototype), "render", this).call(this, e23); + } }]), t11; + }(b10); + M10.kind = "return"; + var E10 = function(e21) { + function t11() { + return No(this, t11), _o(this, t11, arguments); + } + return Ao(t11, e21), Do(t11, [{ key: "render", value: function(e23) { + var n11 = "try" + go(Mo(t11.prototype), "render", this).call(this, e23); + return this.catch && (n11 += this.catch.render(e23)), this.finally && (n11 += this.finally.render(e23)), n11; + } }, { key: "optimizeNodes", value: function() { + var e23, n11; + return go(Mo(t11.prototype), "optimizeNodes", this).call(this), null === (e23 = this.catch) || void 0 === e23 || e23.optimizeNodes(), null === (n11 = this.finally) || void 0 === n11 || n11.optimizeNodes(), this; + } }, { key: "optimizeNames", value: function(e23, n11) { + var r11, o11; + return go(Mo(t11.prototype), "optimizeNames", this).call(this, e23, n11), null === (r11 = this.catch) || void 0 === r11 || r11.optimizeNames(e23, n11), null === (o11 = this.finally) || void 0 === o11 || o11.optimizeNames(e23, n11), this; + } }, { key: "names", get: function() { + var e23 = go(Mo(t11.prototype), "names", this); + return this.catch && R8(e23, this.catch.names), this.finally && R8(e23, this.finally.names), e23; + } }]), t11; + }(k10), A10 = function(e21) { + function t11(e23) { + var n11; + return No(this, t11), (n11 = _o(this, t11)).error = e23, n11; + } + return Ao(t11, e21), Do(t11, [{ key: "render", value: function(e23) { + return "catch(".concat(this.error, ")") + go(Mo(t11.prototype), "render", this).call(this, e23); + } }]), t11; + }(k10); + A10.kind = "catch"; + var P10 = function(e21) { + function t11() { + return No(this, t11), _o(this, t11, arguments); + } + return Ao(t11, e21), Do(t11, [{ key: "render", value: function(e23) { + return "finally" + go(Mo(t11.prototype), "render", this).call(this, e23); + } }]), t11; + }(k10); + P10.kind = "finally"; + var T8 = function() { + function r11(e21) { + var t11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + No(this, r11), this._values = {}, this._blockStarts = [], this._constants = {}, this.opts = Ro(Ro({}, t11), {}, { _n: t11.lines ? "\n" : "" }), this._extScope = e21, this._scope = new n10.Scope({ parent: e21 }), this._nodes = [new w10()]; + } + return Do(r11, [{ key: "toString", value: function() { + return this._root.render(this.opts); + } }, { key: "name", value: function(e21) { + return this._scope.name(e21); + } }, { key: "scopeName", value: function(e21) { + return this._extScope.name(e21); + } }, { key: "scopeValue", value: function(e21, t11) { + var n11 = this._extScope.value(e21, t11); + return (this._values[n11.prefix] || (this._values[n11.prefix] = /* @__PURE__ */ new Set())).add(n11), n11; + } }, { key: "getScopeValue", value: function(e21, t11) { + return this._extScope.getValue(e21, t11); + } }, { key: "scopeRefs", value: function(e21) { + return this._extScope.scopeRefs(e21, this._values); + } }, { key: "scopeCode", value: function() { + return this._extScope.scopeCode(this._values); + } }, { key: "_def", value: function(e21, t11, n11, r12) { + var o11 = this._scope.toName(t11); + return void 0 !== n11 && r12 && (this._constants[o11.str] = n11), this._leafNode(new a10(e21, o11, n11)), o11; + } }, { key: "const", value: function(e21, t11, r12) { + return this._def(n10.varKinds.const, e21, t11, r12); + } }, { key: "let", value: function(e21, t11, r12) { + return this._def(n10.varKinds.let, e21, t11, r12); + } }, { key: "var", value: function(e21, t11, r12) { + return this._def(n10.varKinds.var, e21, t11, r12); + } }, { key: "assign", value: function(e21, t11, n11) { + return this._leafNode(new h10(e21, t11, n11)); + } }, { key: "add", value: function(t11, n11) { + return this._leafNode(new v10(t11, e20.operators.ADD, n11)); + } }, { key: "code", value: function(e21) { + return "function" == typeof e21 ? e21() : e21 !== t10.nil && this._leafNode(new y10(e21)), this; + } }, { key: "object", value: function() { + for (var e21 = ["{"], n11 = arguments.length, r12 = new Array(n11), o11 = 0; o11 < n11; o11++) + r12[o11] = arguments[o11]; + for (var i11 = 0, a11 = r12; i11 < a11.length; i11++) { + var s10 = jo(a11[i11], 2), c10 = s10[0], l10 = s10[1]; + e21.length > 1 && e21.push(","), e21.push(c10), (c10 !== l10 || this.opts.es5) && (e21.push(":"), (0, t10.addCodeArg)(e21, l10)); + } + return e21.push("}"), new t10._Code(e21); + } }, { key: "if", value: function(e21, t11, n11) { + if (this._blockNode(new j10(e21)), t11 && n11) + this.code(t11).else().code(n11).endIf(); + else if (t11) + this.code(t11).endIf(); + else if (n11) + throw new Error('CodeGen: "else" body without "then" body'); + return this; + } }, { key: "elseIf", value: function(e21) { + return this._elseNode(new j10(e21)); + } }, { key: "else", value: function() { + return this._elseNode(new x10()); + } }, { key: "endIf", value: function() { + return this._endBlockNode(j10, x10); + } }, { key: "_for", value: function(e21, t11) { + return this._blockNode(e21), t11 && this.code(t11).endFor(), this; + } }, { key: "for", value: function(e21, t11) { + return this._for(new C10(e21), t11); + } }, { key: "forRange", value: function(e21, t11, r12, o11) { + var i11 = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : this.opts.es5 ? n10.varKinds.var : n10.varKinds.let, a11 = this._scope.toName(e21); + return this._for(new $10(i11, a11, t11, r12), function() { + return o11(a11); + }); + } }, { key: "forOf", value: function(e21, r12, o11) { + var i11 = this, a11 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : n10.varKinds.const, l10 = this._scope.toName(e21); + if (this.opts.es5) { + var u10 = r12 instanceof t10.Name ? r12 : this.var("_arr", r12); + return this.forRange("_i", 0, (0, t10._)(s || (s = mo(["", ".length"])), u10), function(e23) { + i11.var(l10, (0, t10._)(c || (c = mo(["", "[", "]"])), u10, e23)), o11(l10); + }); + } + return this._for(new _10("of", a11, l10, r12), function() { + return o11(l10); + }); + } }, { key: "forIn", value: function(e21, r12, o11) { + var i11 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : this.opts.es5 ? n10.varKinds.var : n10.varKinds.const; + if (this.opts.ownProperties) + return this.forOf(e21, (0, t10._)(l || (l = mo(["Object.keys(", ")"])), r12), o11); + var a11 = this._scope.toName(e21); + return this._for(new _10("in", i11, a11, r12), function() { + return o11(a11); + }); + } }, { key: "endFor", value: function() { + return this._endBlockNode(S10); + } }, { key: "label", value: function(e21) { + return this._leafNode(new p10(e21)); + } }, { key: "break", value: function(e21) { + return this._leafNode(new m10(e21)); + } }, { key: "return", value: function(e21) { + var t11 = new M10(); + if (this._blockNode(t11), this.code(e21), 1 !== t11.nodes.length) + throw new Error('CodeGen: "return" should have one node'); + return this._endBlockNode(M10); + } }, { key: "try", value: function(e21, t11, n11) { + if (!t11 && !n11) + throw new Error('CodeGen: "try" without "catch" and "finally"'); + var r12 = new E10(); + if (this._blockNode(r12), this.code(e21), t11) { + var o11 = this.name("e"); + this._currNode = r12.catch = new A10(o11), t11(o11); + } + return n11 && (this._currNode = r12.finally = new P10(), this.code(n11)), this._endBlockNode(A10, P10); + } }, { key: "throw", value: function(e21) { + return this._leafNode(new g10(e21)); + } }, { key: "block", value: function(e21, t11) { + return this._blockStarts.push(this._nodes.length), e21 && this.code(e21).endBlock(t11), this; + } }, { key: "endBlock", value: function(e21) { + var t11 = this._blockStarts.pop(); + if (void 0 === t11) + throw new Error("CodeGen: not in self-balancing block"); + var n11 = this._nodes.length - t11; + if (n11 < 0 || void 0 !== e21 && n11 !== e21) + throw new Error("CodeGen: wrong number of nodes: ".concat(n11, " vs ").concat(e21, " expected")); + return this._nodes.length = t11, this; + } }, { key: "func", value: function(e21) { + var n11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : t10.nil, r12 = arguments.length > 2 ? arguments[2] : void 0, o11 = arguments.length > 3 ? arguments[3] : void 0; + return this._blockNode(new O10(e21, n11, r12)), o11 && this.code(o11).endFunc(), this; + } }, { key: "endFunc", value: function() { + return this._endBlockNode(O10); + } }, { key: "optimize", value: function() { + for (var e21 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1; e21-- > 0; ) + this._root.optimizeNodes(), this._root.optimizeNames(this._root.names, this._constants); + } }, { key: "_leafNode", value: function(e21) { + return this._currNode.nodes.push(e21), this; + } }, { key: "_blockNode", value: function(e21) { + this._currNode.nodes.push(e21), this._nodes.push(e21); + } }, { key: "_endBlockNode", value: function(e21, t11) { + var n11 = this._currNode; + if (n11 instanceof e21 || t11 && n11 instanceof t11) + return this._nodes.pop(), this; + throw new Error('CodeGen: not in block "'.concat(t11 ? "".concat(e21.kind, "/").concat(t11.kind) : e21.kind, '"')); + } }, { key: "_elseNode", value: function(e21) { + var t11 = this._currNode; + if (!(t11 instanceof j10)) + throw new Error('CodeGen: "else" without "if"'); + return this._currNode = t11.else = e21, this; + } }, { key: "_root", get: function() { + return this._nodes[0]; + } }, { key: "_currNode", get: function() { + var e21 = this._nodes; + return e21[e21.length - 1]; + }, set: function(e21) { + var t11 = this._nodes; + t11[t11.length - 1] = e21; + } }]), r11; + }(); + function R8(e21, t11) { + for (var n11 in t11) + e21[n11] = (e21[n11] || 0) + (t11[n11] || 0); + return e21; + } + function N8(e21, n11) { + return n11 instanceof t10._CodeOrName ? R8(e21, n11.names) : e21; + } + function I10(e21, n11, r11) { + return e21 instanceof t10.Name ? i11(e21) : (o11 = e21) instanceof t10._Code && o11._items.some(function(e23) { + return e23 instanceof t10.Name && 1 === n11[e23.str] && void 0 !== r11[e23.str]; + }) ? new t10._Code(e21._items.reduce(function(e23, n12) { + return n12 instanceof t10.Name && (n12 = i11(n12)), n12 instanceof t10._Code ? e23.push.apply(e23, Bo(n12._items)) : e23.push(n12), e23; + }, [])) : e21; + var o11; + function i11(e23) { + var t11 = r11[e23.str]; + return void 0 === t11 || 1 !== n11[e23.str] ? e23 : (delete n11[e23.str], t11); + } + } + function D10(e21, t11) { + for (var n11 in t11) + e21[n11] = (e21[n11] || 0) - (t11[n11] || 0); + } + function q10(e21) { + return "boolean" == typeof e21 || "number" == typeof e21 || null === e21 ? !e21 : (0, t10._)(u || (u = mo(["!", ""])), F10(e21)); + } + e20.CodeGen = T8, e20.not = q10; + var z10 = L10(e20.operators.AND); + e20.and = function() { + for (var e21 = arguments.length, t11 = new Array(e21), n11 = 0; n11 < e21; n11++) + t11[n11] = arguments[n11]; + return t11.reduce(z10); + }; + var B10 = L10(e20.operators.OR); + function L10(e21) { + return function(n11, r11) { + return n11 === t10.nil ? r11 : r11 === t10.nil ? n11 : (0, t10._)(f || (f = mo(["", " ", " ", ""])), F10(n11), e21, F10(r11)); + }; + } + function F10(e21) { + return e21 instanceof t10.Name ? e21 : (0, t10._)(d || (d = mo(["(", ")"])), e21); + } + e20.or = function() { + for (var e21 = arguments.length, t11 = new Array(e21), n11 = 0; n11 < e21; n11++) + t11[n11] = arguments[n11]; + return t11.reduce(B10); + }; + }(F8)), F8; + } + var Q8 = {}; + !function(e20) { + Object.defineProperty(e20, "__esModule", { value: true }), e20.checkStrictMode = e20.getErrorPath = e20.Type = e20.useFunc = e20.setEvaluated = e20.evaluatedPropsToName = e20.mergeEvaluated = e20.eachItem = e20.unescapeJsonPointer = e20.escapeJsonPointer = e20.escapeFragment = e20.unescapeFragment = e20.schemaRefOrVal = e20.schemaHasRulesButRef = e20.schemaHasRules = e20.checkUnknownRules = e20.alwaysValidSchema = e20.toHash = void 0; + var t10 = G8(), n10 = H8(); + function r10(e21) { + var t11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : e21.schema, n11 = e21.opts, r11 = e21.self; + if (n11.strictSchema && "boolean" != typeof t11) { + var o11 = r11.RULES.keywords; + for (var i11 in t11) + o11[i11] || d10(e21, 'unknown keyword: "'.concat(i11, '"')); + } + } + function o10(e21, t11) { + if ("boolean" == typeof e21) + return !e21; + for (var n11 in e21) + if (t11[n11]) + return true; + return false; + } + function i10(e21) { + return "number" == typeof e21 ? "".concat(e21) : e21.replace(/~/g, "~0").replace(/\//g, "~1"); + } + function a10(e21) { + return e21.replace(/~1/g, "/").replace(/~0/g, "~"); + } + function s10(e21) { + var n11 = e21.mergeNames, r11 = e21.mergeToName, o11 = e21.mergeValues, i11 = e21.resultToName; + return function(e23, a11, s11, c11) { + var l11 = void 0 === s11 ? a11 : s11 instanceof t10.Name ? (a11 instanceof t10.Name ? n11(e23, a11, s11) : r11(e23, a11, s11), s11) : a11 instanceof t10.Name ? (r11(e23, s11, a11), a11) : o11(a11, s11); + return c11 !== t10.Name || l11 instanceof t10.Name ? l11 : i11(e23, l11); + }; + } + function c10(e21, n11) { + if (true === n11) + return e21.var("props", true); + var r11 = e21.var("props", (0, t10._)(C || (C = mo(["{}"])))); + return void 0 !== n11 && l10(e21, r11, n11), r11; + } + function l10(e21, n11, r11) { + Object.keys(r11).forEach(function(r12) { + return e21.assign((0, t10._)($ || ($ = mo(["", "", ""])), n11, (0, t10.getProperty)(r12)), true); + }); + } + e20.toHash = function(e21) { + var t11, n11 = {}, r11 = bo(e21); + try { + for (r11.s(); !(t11 = r11.n()).done; ) { + n11[t11.value] = true; + } + } catch (e23) { + r11.e(e23); + } finally { + r11.f(); + } + return n11; + }, e20.alwaysValidSchema = function(e21, t11) { + return "boolean" == typeof t11 ? t11 : 0 === Object.keys(t11).length || (r10(e21, t11), !o10(t11, e21.self.RULES.all)); + }, e20.checkUnknownRules = r10, e20.schemaHasRules = o10, e20.schemaHasRulesButRef = function(e21, t11) { + if ("boolean" == typeof e21) + return !e21; + for (var n11 in e21) + if ("$ref" !== n11 && t11.all[n11]) + return true; + return false; + }, e20.schemaRefOrVal = function(e21, n11, r11, o11) { + var i11 = e21.topSchemaRef, a11 = e21.schemaPath; + if (!o11) { + if ("number" == typeof n11 || "boolean" == typeof n11) + return n11; + if ("string" == typeof n11) + return (0, t10._)(h || (h = mo(["", ""])), n11); + } + return (0, t10._)(v || (v = mo(["", "", "", ""])), i11, a11, (0, t10.getProperty)(r11)); + }, e20.unescapeFragment = function(e21) { + return a10(decodeURIComponent(e21)); + }, e20.escapeFragment = function(e21) { + return encodeURIComponent(i10(e21)); + }, e20.escapeJsonPointer = i10, e20.unescapeJsonPointer = a10, e20.eachItem = function(e21, t11) { + if (Array.isArray(e21)) { + var n11, r11 = bo(e21); + try { + for (r11.s(); !(n11 = r11.n()).done; ) { + t11(n11.value); + } + } catch (e23) { + r11.e(e23); + } finally { + r11.f(); + } + } else + t11(e21); + }, e20.mergeEvaluated = { props: s10({ mergeNames: function(e21, n11, r11) { + return e21.if((0, t10._)(p || (p = mo(["", " !== true && ", " !== undefined"])), r11, n11), function() { + e21.if((0, t10._)(m || (m = mo(["", " === true"])), n11), function() { + return e21.assign(r11, true); + }, function() { + return e21.assign(r11, (0, t10._)(g || (g = mo(["", " || {}"])), r11)).code((0, t10._)(y || (y = mo(["Object.assign(", ", ", ")"])), r11, n11)); + }); + }); + }, mergeToName: function(e21, n11, r11) { + return e21.if((0, t10._)(b || (b = mo(["", " !== true"])), r11), function() { + true === n11 ? e21.assign(r11, true) : (e21.assign(r11, (0, t10._)(k || (k = mo(["", " || {}"])), r11)), l10(e21, r11, n11)); + }); + }, mergeValues: function(e21, t11) { + return true === e21 || Ro(Ro({}, e21), t11); + }, resultToName: c10 }), items: s10({ mergeNames: function(e21, n11, r11) { + return e21.if((0, t10._)(w || (w = mo(["", " !== true && ", " !== undefined"])), r11, n11), function() { + return e21.assign(r11, (0, t10._)(x || (x = mo(["", " === true ? true : ", " > ", " ? ", " : ", ""])), n11, r11, n11, r11, n11)); + }); + }, mergeToName: function(e21, n11, r11) { + return e21.if((0, t10._)(j || (j = mo(["", " !== true"])), r11), function() { + return e21.assign(r11, true === n11 || (0, t10._)(S || (S = mo(["", " > ", " ? ", " : ", ""])), r11, n11, r11, n11)); + }); + }, mergeValues: function(e21, t11) { + return true === e21 || Math.max(e21, t11); + }, resultToName: function(e21, t11) { + return e21.var("items", t11); + } }) }, e20.evaluatedPropsToName = c10, e20.setEvaluated = l10; + var u10, f10 = {}; + function d10(e21, t11) { + var n11 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : e21.opts.strictSchema; + if (n11) { + if (t11 = "strict mode: ".concat(t11), true === n11) + throw new Error(t11); + e21.self.logger.warn(t11); + } + } + e20.useFunc = function(e21, t11) { + return e21.scopeValue("func", { ref: t11, code: f10[t11.code] || (f10[t11.code] = new n10._Code(t11.code)) }); + }, function(e21) { + e21[e21.Num = 0] = "Num", e21[e21.Str = 1] = "Str"; + }(u10 = e20.Type || (e20.Type = {})), e20.getErrorPath = function(e21, n11, r11) { + if (e21 instanceof t10.Name) { + var o11 = n11 === u10.Num; + return r11 ? o11 ? (0, t10._)(_ || (_ = mo(['"[" + ', ' + "]"'])), e21) : (0, t10._)(O || (O = mo([`"['" + `, ` + "']"`])), e21) : o11 ? (0, t10._)(M || (M = mo(['"/" + ', ""])), e21) : (0, t10._)(E || (E = mo(['"/" + ', '.replace(/~/g, "~0").replace(/\\//g, "~1")'], ['"/" + ', '.replace(/~/g, "~0").replace(/\\\\//g, "~1")'])), e21); + } + return r11 ? (0, t10.getProperty)(e21).toString() : "/" + i10(e21); + }, e20.checkStrictMode = d10; + }(Q8); + var Y8; + var X8; + var Z8; + var e52 = {}; + function t5() { + if (Y8) + return e52; + Y8 = 1, Object.defineProperty(e52, "__esModule", { value: true }); + var e20 = G8(), t10 = { data: new e20.Name("data"), valCxt: new e20.Name("valCxt"), instancePath: new e20.Name("instancePath"), parentData: new e20.Name("parentData"), parentDataProperty: new e20.Name("parentDataProperty"), rootData: new e20.Name("rootData"), dynamicAnchors: new e20.Name("dynamicAnchors"), vErrors: new e20.Name("vErrors"), errors: new e20.Name("errors"), this: new e20.Name("this"), self: new e20.Name("self"), scope: new e20.Name("scope"), json: new e20.Name("json"), jsonPos: new e20.Name("jsonPos"), jsonLen: new e20.Name("jsonLen"), jsonPart: new e20.Name("jsonPart") }; + return e52.default = t10, e52; + } + function n5() { + return X8 || (X8 = 1, function(e20) { + Object.defineProperty(e20, "__esModule", { value: true }), e20.extendErrors = e20.resetErrorsCount = e20.reportExtraError = e20.reportError = e20.keyword$DataError = e20.keywordError = void 0; + var t10 = G8(), n10 = Q8, r10 = t5(); + function o10(e21, n11) { + var o11 = e21.const("err", n11); + e21.if((0, t10._)(H || (H = mo(["", " === null"])), r10.default.vErrors), function() { + return e21.assign(r10.default.vErrors, (0, t10._)(W || (W = mo(["[", "]"])), o11)); + }, (0, t10._)(U || (U = mo(["", ".push(", ")"])), r10.default.vErrors, o11)), e21.code((0, t10._)(J || (J = mo(["", "++"])), r10.default.errors)); + } + function i10(e21, n11) { + var r11 = e21.gen, o11 = e21.validateName; + e21.schemaEnv.$async ? r11.throw((0, t10._)(K || (K = mo(["new ", "(", ")"])), e21.ValidationError, n11)) : (r11.assign((0, t10._)(G || (G = mo(["", ".errors"])), o11), n11), r11.return(false)); + } + e20.keywordError = { message: function(e21) { + var n11 = e21.keyword; + return (0, t10.str)(A || (A = mo(['must pass "', '" keyword validation'])), n11); + } }, e20.keyword$DataError = { message: function(e21) { + var n11 = e21.keyword, r11 = e21.schemaType; + return r11 ? (0, t10.str)(P || (P = mo(['"', '" keyword must be ', " ($data)"])), n11, r11) : (0, t10.str)(T || (T = mo(['"', '" keyword is invalid ($data)'])), n11); + } }, e20.reportError = function(n11) { + var r11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : e20.keywordError, a11 = arguments.length > 2 ? arguments[2] : void 0, c11 = arguments.length > 3 ? arguments[3] : void 0, l11 = n11.it, u10 = l11.gen, f10 = l11.compositeRule, d10 = l11.allErrors, h10 = s10(n11, r11, a11); + (null != c11 ? c11 : f10 || d10) ? o10(u10, h10) : i10(l11, (0, t10._)(R || (R = mo(["[", "]"])), h10)); + }, e20.reportExtraError = function(t11) { + var n11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : e20.keywordError, a11 = arguments.length > 2 ? arguments[2] : void 0, c11 = t11.it, l11 = c11.gen, u10 = c11.compositeRule, f10 = c11.allErrors; + o10(l11, s10(t11, n11, a11)), u10 || f10 || i10(c11, r10.default.vErrors); + }, e20.resetErrorsCount = function(e21, n11) { + e21.assign(r10.default.errors, n11), e21.if((0, t10._)(N || (N = mo(["", " !== null"])), r10.default.vErrors), function() { + return e21.if(n11, function() { + return e21.assign((0, t10._)(I || (I = mo(["", ".length"])), r10.default.vErrors), n11); + }, function() { + return e21.assign(r10.default.vErrors, null); + }); + }); + }, e20.extendErrors = function(e21) { + var n11 = e21.gen, o11 = e21.keyword, i11 = e21.schemaValue, a11 = e21.data, s11 = e21.errsCount, c11 = e21.it; + if (void 0 === s11) + throw new Error("ajv implementation error"); + var l11 = n11.name("err"); + n11.forRange("i", s11, r10.default.errors, function(e23) { + n11.const(l11, (0, t10._)(D || (D = mo(["", "[", "]"])), r10.default.vErrors, e23)), n11.if((0, t10._)(q || (q = mo(["", ".instancePath === undefined"])), l11), function() { + return n11.assign((0, t10._)(z || (z = mo(["", ".instancePath"])), l11), (0, t10.strConcat)(r10.default.instancePath, c11.errorPath)); + }), n11.assign((0, t10._)(B || (B = mo(["", ".schemaPath"])), l11), (0, t10.str)(L || (L = mo(["", "/", ""])), c11.errSchemaPath, o11)), c11.opts.verbose && (n11.assign((0, t10._)(F || (F = mo(["", ".schema"])), l11), i11), n11.assign((0, t10._)(V || (V = mo(["", ".data"])), l11), a11)); + }); + }; + var a10 = { keyword: new t10.Name("keyword"), schemaPath: new t10.Name("schemaPath"), params: new t10.Name("params"), propertyName: new t10.Name("propertyName"), message: new t10.Name("message"), schema: new t10.Name("schema"), parentSchema: new t10.Name("parentSchema") }; + function s10(e21, n11, o11) { + return false === e21.it.createErrors ? (0, t10._)(Q || (Q = mo(["{}"]))) : function(e23, n12) { + var o12 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, i11 = e23.gen, s11 = e23.it, u10 = [c10(s11, o12), l10(e23, o12)]; + return function(e24, n13, o13) { + var i12 = n13.params, s12 = n13.message, c11 = e24.keyword, l11 = e24.data, u11 = e24.schemaValue, f10 = e24.it, d10 = f10.opts, h10 = f10.propertyName, v10 = f10.topSchemaRef, p10 = f10.schemaPath; + o13.push([a10.keyword, c11], [a10.params, "function" == typeof i12 ? i12(e24) : i12 || (0, t10._)(ee || (ee = mo(["{}"])))]), d10.messages && o13.push([a10.message, "function" == typeof s12 ? s12(e24) : s12]); + d10.verbose && o13.push([a10.schema, u11], [a10.parentSchema, (0, t10._)(te || (te = mo(["", "", ""])), v10, p10)], [r10.default.data, l11]); + h10 && o13.push([a10.propertyName, h10]); + }(e23, n12, u10), i11.object.apply(i11, u10); + }(e21, n11, o11); + } + function c10(e21, o11) { + var i11 = e21.errorPath, a11 = o11.instancePath, s11 = a11 ? (0, t10.str)(Y || (Y = mo(["", "", ""])), i11, (0, n10.getErrorPath)(a11, n10.Type.Str)) : i11; + return [r10.default.instancePath, (0, t10.strConcat)(r10.default.instancePath, s11)]; + } + function l10(e21, r11) { + var o11 = e21.keyword, i11 = e21.it.errSchemaPath, s11 = r11.schemaPath, c11 = r11.parentSchema ? i11 : (0, t10.str)(X || (X = mo(["", "/", ""])), i11, o11); + return s11 && (c11 = (0, t10.str)(Z || (Z = mo(["", "", ""])), c11, (0, n10.getErrorPath)(s11, n10.Type.Str))), [a10.schemaPath, c11]; + } + }(L8)), L8; + } + var r5 = {}; + var o5 = {}; + Object.defineProperty(o5, "__esModule", { value: true }), o5.getRules = o5.isJSONType = void 0; + var i5 = /* @__PURE__ */ new Set(["string", "number", "integer", "boolean", "null", "object", "array"]); + o5.isJSONType = function(e20) { + return "string" == typeof e20 && i5.has(e20); + }, o5.getRules = function() { + var e20 = { number: { type: "number", rules: [] }, string: { type: "string", rules: [] }, array: { type: "array", rules: [] }, object: { type: "object", rules: [] } }; + return { types: Ro(Ro({}, e20), {}, { integer: true, boolean: true, null: true }), rules: [{ rules: [] }, e20.number, e20.string, e20.array, e20.object], post: { rules: [] }, all: {}, keywords: {} }; + }; + var a5; + var s5 = {}; + function c5() { + if (a5) + return s5; + function e20(e21, n10) { + return n10.rules.some(function(n11) { + return t10(e21, n11); + }); + } + function t10(e21, t11) { + var n10; + return void 0 !== e21[t11.keyword] || (null === (n10 = t11.definition.implements) || void 0 === n10 ? void 0 : n10.some(function(t12) { + return void 0 !== e21[t12]; + })); + } + return a5 = 1, Object.defineProperty(s5, "__esModule", { value: true }), s5.shouldUseRule = s5.shouldUseGroup = s5.schemaHasRulesForType = void 0, s5.schemaHasRulesForType = function(t11, n10) { + var r10 = t11.schema, o10 = t11.self.RULES.types[n10]; + return o10 && true !== o10 && e20(r10, o10); + }, s5.shouldUseGroup = e20, s5.shouldUseRule = t10, s5; + } + !function(e20) { + Object.defineProperty(e20, "__esModule", { value: true }), e20.reportTypeError = e20.checkDataTypes = e20.checkDataType = e20.coerceAndCheckDataType = e20.getJSONTypes = e20.getSchemaTypes = e20.DataType = void 0; + var t10, n10 = o5, r10 = c5(), o10 = n5(), i10 = G8(), a10 = Q8; + function s10(e21) { + var t11 = Array.isArray(e21) ? e21 : e21 ? [e21] : []; + if (t11.every(n10.isJSONType)) + return t11; + throw new Error("type must be JSONType or JSONType[]: " + t11.join(",")); + } + !function(e21) { + e21[e21.Correct = 0] = "Correct", e21[e21.Wrong = 1] = "Wrong"; + }(t10 = e20.DataType || (e20.DataType = {})), e20.getSchemaTypes = function(e21) { + var t11 = s10(e21.type); + if (t11.includes("null")) { + if (false === e21.nullable) + throw new Error("type: null contradicts nullable: false"); + } else { + if (!t11.length && void 0 !== e21.nullable) + throw new Error('"nullable" cannot be used without "type"'); + true === e21.nullable && t11.push("null"); + } + return t11; + }, e20.getJSONTypes = s10, e20.coerceAndCheckDataType = function(e21, n11) { + var o11 = e21.gen, a11 = e21.data, s11 = e21.opts, l11 = function(e23, t11) { + return t11 ? e23.filter(function(e24) { + return c10.has(e24) || "array" === t11 && "array" === e24; + }) : []; + }(n11, s11.coerceTypes), f11 = n11.length > 0 && !(0 === l11.length && 1 === n11.length && (0, r10.schemaHasRulesForType)(e21, n11[0])); + if (f11) { + var h10 = u10(n11, a11, s11.strictNumbers, t10.Wrong); + o11.if(h10, function() { + l11.length ? function(e23, t11, n12) { + var r11 = e23.gen, o12 = e23.data, a12 = e23.opts, s12 = r11.let("dataType", (0, i10._)(re || (re = mo(["typeof ", ""])), o12)), l12 = r11.let("coerced", (0, i10._)(oe || (oe = mo(["undefined"])))); + "array" === a12.coerceTypes && r11.if((0, i10._)(ie || (ie = mo(["", " == 'object' && Array.isArray(", ") && ", ".length == 1"])), s12, o12, o12), function() { + return r11.assign(o12, (0, i10._)(ae || (ae = mo(["", "[0]"])), o12)).assign(s12, (0, i10._)(se || (se = mo(["typeof ", ""])), o12)).if(u10(t11, o12, a12.strictNumbers), function() { + return r11.assign(l12, o12); + }); + }); + r11.if((0, i10._)(ce || (ce = mo(["", " !== undefined"])), l12)); + var f12, h11 = bo(n12); + try { + for (h11.s(); !(f12 = h11.n()).done; ) { + var v10 = f12.value; + (c10.has(v10) || "array" === v10 && "array" === a12.coerceTypes) && p10(v10); + } + } catch (e24) { + h11.e(e24); + } finally { + h11.f(); + } + function p10(e24) { + switch (e24) { + case "string": + return void r11.elseIf((0, i10._)(ue || (ue = mo(["", ' == "number" || ', ' == "boolean"'])), s12, s12)).assign(l12, (0, i10._)(fe || (fe = mo(['"" + ', ""])), o12)).elseIf((0, i10._)(de || (de = mo(["", " === null"])), o12)).assign(l12, (0, i10._)(he || (he = mo(['""'])))); + case "number": + return void r11.elseIf((0, i10._)(ve || (ve = mo(["", ' == "boolean" || ', " === null\n || (", ' == "string" && ', " && ", " == +", ")"])), s12, o12, s12, o12, o12, o12)).assign(l12, (0, i10._)(pe || (pe = mo(["+", ""])), o12)); + case "integer": + return void r11.elseIf((0, i10._)(me || (me = mo(["", ' === "boolean" || ', " === null\n || (", ' === "string" && ', " && ", " == +", " && !(", " % 1))"])), s12, o12, s12, o12, o12, o12, o12)).assign(l12, (0, i10._)(ge || (ge = mo(["+", ""])), o12)); + case "boolean": + return void r11.elseIf((0, i10._)(ye || (ye = mo(["", ' === "false" || ', " === 0 || ", " === null"])), o12, o12, o12)).assign(l12, false).elseIf((0, i10._)(be || (be = mo(["", ' === "true" || ', " === 1"])), o12, o12)).assign(l12, true); + case "null": + return r11.elseIf((0, i10._)(ke || (ke = mo(["", ' === "" || ', " === 0 || ", " === false"])), o12, o12, o12)), void r11.assign(l12, null); + case "array": + r11.elseIf((0, i10._)(we || (we = mo(["", ' === "string" || ', ' === "number"\n || ', ' === "boolean" || ', " === null"])), s12, s12, s12, o12)).assign(l12, (0, i10._)(xe || (xe = mo(["[", "]"])), o12)); + } + } + r11.else(), d10(e23), r11.endIf(), r11.if((0, i10._)(le || (le = mo(["", " !== undefined"])), l12), function() { + r11.assign(o12, l12), function(e24, t12) { + var n13 = e24.gen, r12 = e24.parentData, o13 = e24.parentDataProperty; + n13.if((0, i10._)(je || (je = mo(["", " !== undefined"])), r12), function() { + return n13.assign((0, i10._)(Se || (Se = mo(["", "[", "]"])), r12, o13), t12); + }); + }(e23, l12); + }); + }(e21, n11, l11) : d10(e21); + }); + } + return f11; + }; + var c10 = /* @__PURE__ */ new Set(["string", "number", "integer", "boolean", "null"]); + function l10(e21, n11, r11) { + var o11, a11 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : t10.Correct, s11 = a11 === t10.Correct ? i10.operators.EQ : i10.operators.NEQ; + switch (e21) { + case "null": + return (0, i10._)(Ce || (Ce = mo(["", " ", " null"])), n11, s11); + case "array": + o11 = (0, i10._)($e || ($e = mo(["Array.isArray(", ")"])), n11); + break; + case "object": + o11 = (0, i10._)(_e || (_e = mo(["", " && typeof ", ' == "object" && !Array.isArray(', ")"])), n11, n11, n11); + break; + case "integer": + o11 = c11((0, i10._)(Oe || (Oe = mo(["!(", " % 1) && !isNaN(", ")"])), n11, n11)); + break; + case "number": + o11 = c11(); + break; + default: + return (0, i10._)(Me || (Me = mo(["typeof ", " ", " ", ""])), n11, s11, e21); + } + return a11 === t10.Correct ? o11 : (0, i10.not)(o11); + function c11() { + var e23 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : i10.nil; + return (0, i10.and)((0, i10._)(Ee || (Ee = mo(["typeof ", ' == "number"'])), n11), e23, r11 ? (0, i10._)(Ae || (Ae = mo(["isFinite(", ")"])), n11) : i10.nil); + } + } + function u10(e21, t11, n11, r11) { + if (1 === e21.length) + return l10(e21[0], t11, n11, r11); + var o11, s11 = (0, a10.toHash)(e21); + if (s11.array && s11.object) { + var c11 = (0, i10._)(Pe || (Pe = mo(["typeof ", ' != "object"'])), t11); + o11 = s11.null ? c11 : (0, i10._)(Te || (Te = mo(["!", " || ", ""])), t11, c11), delete s11.null, delete s11.array, delete s11.object; + } else + o11 = i10.nil; + for (var u11 in s11.number && delete s11.integer, s11) + o11 = (0, i10.and)(o11, l10(u11, t11, n11, r11)); + return o11; + } + e20.checkDataType = l10, e20.checkDataTypes = u10; + var f10 = { message: function(e21) { + var t11 = e21.schema; + return "must be ".concat(t11); + }, params: function(e21) { + var t11 = e21.schema, n11 = e21.schemaValue; + return "string" == typeof t11 ? (0, i10._)(Re || (Re = mo(["{type: ", "}"])), t11) : (0, i10._)(Ne || (Ne = mo(["{type: ", "}"])), n11); + } }; + function d10(e21) { + var t11 = function(e23) { + var t12 = e23.gen, n11 = e23.data, r11 = e23.schema, o11 = (0, a10.schemaRefOrVal)(e23, r11, "type"); + return { gen: t12, keyword: "type", data: n11, schema: r11.type, schemaCode: o11, schemaValue: o11, parentSchema: r11, params: {}, it: e23 }; + }(e21); + (0, o10.reportError)(t11, f10); + } + e20.reportTypeError = d10; + }(r5); + var l5; + var u5 = {}; + var f5; + var d5; + var h5 = {}; + var v5 = {}; + function p5() { + if (f5) + return v5; + f5 = 1, Object.defineProperty(v5, "__esModule", { value: true }), v5.validateUnion = v5.validateArray = v5.usePattern = v5.callValidateCode = v5.schemaProperties = v5.allSchemaProperties = v5.noPropertyInData = v5.propertyInData = v5.isOwnProperty = v5.hasPropFunc = v5.reportMissingProp = v5.checkMissingProp = v5.checkReportMissingProp = void 0; + var e20 = G8(), t10 = Q8, n10 = t5(), r10 = Q8; + function o10(t11) { + return t11.scopeValue("func", { ref: Object.prototype.hasOwnProperty, code: (0, e20._)(Fe || (Fe = mo(["Object.prototype.hasOwnProperty"]))) }); + } + function i10(t11, n11, r11) { + return (0, e20._)(Ve || (Ve = mo(["", ".call(", ", ", ")"])), o10(t11), n11, r11); + } + function a10(t11, n11, r11, o11) { + var a11 = (0, e20._)(Ue || (Ue = mo(["", "", " === undefined"])), n11, (0, e20.getProperty)(r11)); + return o11 ? (0, e20.or)(a11, (0, e20.not)(i10(t11, n11, r11))) : a11; + } + function s10(e21) { + return e21 ? Object.keys(e21).filter(function(e23) { + return "__proto__" !== e23; + }) : []; + } + v5.checkReportMissingProp = function(t11, n11) { + var r11 = t11.gen, o11 = t11.data, i11 = t11.it; + r11.if(a10(r11, o11, n11, i11.opts.ownProperties), function() { + t11.setParams({ missingProperty: (0, e20._)(Be || (Be = mo(["", ""])), n11) }, true), t11.error(); + }); + }, v5.checkMissingProp = function(t11, n11, r11) { + var o11 = t11.gen, i11 = t11.data, s11 = t11.it.opts; + return e20.or.apply(void 0, Bo(n11.map(function(t12) { + return (0, e20.and)(a10(o11, i11, t12, s11.ownProperties), (0, e20._)(Le || (Le = mo(["", " = ", ""])), r11, t12)); + }))); + }, v5.reportMissingProp = function(e21, t11) { + e21.setParams({ missingProperty: t11 }, true), e21.error(); + }, v5.hasPropFunc = o10, v5.isOwnProperty = i10, v5.propertyInData = function(t11, n11, r11, o11) { + var a11 = (0, e20._)(He || (He = mo(["", "", " !== undefined"])), n11, (0, e20.getProperty)(r11)); + return o11 ? (0, e20._)(We || (We = mo(["", " && ", ""])), a11, i10(t11, n11, r11)) : a11; + }, v5.noPropertyInData = a10, v5.allSchemaProperties = s10, v5.schemaProperties = function(e21, n11) { + return s10(n11).filter(function(r11) { + return !(0, t10.alwaysValidSchema)(e21, n11[r11]); + }); + }, v5.callValidateCode = function(t11, r11, o11, i11) { + var a11 = t11.schemaCode, s11 = t11.data, c11 = t11.it, l10 = c11.gen, u10 = c11.topSchemaRef, f10 = c11.schemaPath, d10 = c11.errorPath, h10 = t11.it, v10 = i11 ? (0, e20._)(Je || (Je = mo(["", ", ", ", ", "", ""])), a11, s11, u10, f10) : s11, p10 = [[n10.default.instancePath, (0, e20.strConcat)(n10.default.instancePath, d10)], [n10.default.parentData, h10.parentData], [n10.default.parentDataProperty, h10.parentDataProperty], [n10.default.rootData, n10.default.rootData]]; + h10.opts.dynamicRef && p10.push([n10.default.dynamicAnchors, n10.default.dynamicAnchors]); + var m10 = (0, e20._)(Ke || (Ke = mo(["", ", ", ""])), v10, l10.object.apply(l10, p10)); + return o11 !== e20.nil ? (0, e20._)(Ge || (Ge = mo(["", ".call(", ", ", ")"])), r11, o11, m10) : (0, e20._)(Qe || (Qe = mo(["", "(", ")"])), r11, m10); + }; + var c10 = (0, e20._)(Ye || (Ye = mo(["new RegExp"]))); + return v5.usePattern = function(t11, n11) { + var o11 = t11.gen, i11 = t11.it.opts, a11 = i11.unicodeRegExp ? "u" : "", s11 = i11.code.regExp, l10 = s11(n11, a11); + return o11.scopeValue("pattern", { key: l10.toString(), ref: l10, code: (0, e20._)(Xe || (Xe = mo(["", "(", ", ", ")"])), "new RegExp" === s11.code ? c10 : (0, r10.useFunc)(o11, s11), n11, a11) }); + }, v5.validateArray = function(n11) { + var r11 = n11.gen, o11 = n11.data, i11 = n11.keyword, a11 = n11.it, s11 = r11.name("valid"); + if (a11.allErrors) { + var c11 = r11.let("valid", true); + return l10(function() { + return r11.assign(c11, false); + }), c11; + } + return r11.var(s11, true), l10(function() { + return r11.break(); + }), s11; + function l10(a12) { + var c12 = r11.const("len", (0, e20._)(Ze || (Ze = mo(["", ".length"])), o11)); + r11.forRange("i", 0, c12, function(o12) { + n11.subschema({ keyword: i11, dataProp: o12, dataPropType: t10.Type.Num }, s11), r11.if((0, e20.not)(s11), a12); + }); + } + }, v5.validateUnion = function(n11) { + var r11 = n11.gen, o11 = n11.schema, i11 = n11.keyword, a11 = n11.it; + if (!Array.isArray(o11)) + throw new Error("ajv implementation error"); + if (!o11.some(function(e21) { + return (0, t10.alwaysValidSchema)(a11, e21); + }) || a11.opts.unevaluated) { + var s11 = r11.let("valid", false), c11 = r11.name("_valid"); + r11.block(function() { + return o11.forEach(function(t11, o12) { + var a12 = n11.subschema({ keyword: i11, schemaProp: o12, compositeRule: true }, c11); + r11.assign(s11, (0, e20._)(et || (et = mo(["", " || ", ""])), s11, c11)), n11.mergeValidEvaluated(a12, c11) || r11.if((0, e20.not)(s11)); + }); + }), n11.result(s11, function() { + return n11.reset(); + }, function() { + return n11.error(true); + }); + } + }, v5; + } + function m5() { + if (d5) + return h5; + d5 = 1, Object.defineProperty(h5, "__esModule", { value: true }), h5.validateKeywordUsage = h5.validSchemaType = h5.funcKeywordCode = h5.macroKeywordCode = void 0; + var e20 = G8(), t10 = t5(), n10 = p5(), r10 = n5(); + function o10(t11) { + var n11 = t11.gen, r11 = t11.data, o11 = t11.it; + n11.if(o11.parentData, function() { + return n11.assign(r11, (0, e20._)(st || (st = mo(["", "[", "]"])), o11.parentData, o11.parentDataProperty)); + }); + } + function i10(t11, n11, r11) { + if (void 0 === r11) + throw new Error('keyword "'.concat(n11, '" failed to compile')); + return t11.scopeValue("keyword", "function" == typeof r11 ? { ref: r11 } : { ref: r11, code: (0, e20.stringify)(r11) }); + } + return h5.macroKeywordCode = function(t11, n11) { + var r11 = t11.gen, o11 = t11.keyword, a10 = t11.schema, s10 = t11.parentSchema, c10 = t11.it, l10 = n11.macro.call(c10.self, a10, s10, c10), u10 = i10(r11, o11, l10); + false !== c10.opts.validateSchema && c10.self.validateSchema(l10, true); + var f10 = r11.name("valid"); + t11.subschema({ schema: l10, schemaPath: e20.nil, errSchemaPath: "".concat(c10.errSchemaPath, "/").concat(o11), topSchemaRef: u10, compositeRule: true }, f10), t11.pass(f10, function() { + return t11.error(true); + }); + }, h5.funcKeywordCode = function(a10, s10) { + var c10, l10 = a10.gen, u10 = a10.keyword, f10 = a10.schema, d10 = a10.parentSchema, h10 = a10.$data, v10 = a10.it; + !function(e21, t11) { + var n11 = e21.schemaEnv; + if (t11.async && !n11.$async) + throw new Error("async keyword in sync schema"); + }(v10, s10); + var p10 = !h10 && s10.compile ? s10.compile.call(v10.self, f10, d10, v10) : s10.validate, m10 = i10(l10, u10, p10), g10 = l10.let("valid"); + function y10() { + var r11 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : s10.async ? (0, e20._)(it || (it = mo(["await "]))) : e20.nil, o11 = v10.opts.passContext ? t10.default.this : t10.default.self, i11 = !("compile" in s10 && !h10 || false === s10.schema); + l10.assign(g10, (0, e20._)(at || (at = mo(["", "", ""])), r11, (0, n10.callValidateCode)(a10, m10, o11, i11)), s10.modifying); + } + function b10(t11) { + var n11; + l10.if((0, e20.not)(null !== (n11 = s10.valid) && void 0 !== n11 ? n11 : g10), t11); + } + a10.block$data(g10, function() { + if (false === s10.errors) + y10(), s10.modifying && o10(a10), b10(function() { + return a10.error(); + }); + else { + var n11 = s10.async ? function() { + var t11 = l10.let("ruleErrs", null); + return l10.try(function() { + return y10((0, e20._)(tt || (tt = mo(["await "])))); + }, function(n12) { + return l10.assign(g10, false).if((0, e20._)(nt || (nt = mo(["", " instanceof ", ""])), n12, v10.ValidationError), function() { + return l10.assign(t11, (0, e20._)(rt || (rt = mo(["", ".errors"])), n12)); + }, function() { + return l10.throw(n12); + }); + }), t11; + }() : (i11 = (0, e20._)(ot || (ot = mo(["", ".errors"])), m10), l10.assign(i11, null), y10(e20.nil), i11); + s10.modifying && o10(a10), b10(function() { + return function(n12, o11) { + var i12 = n12.gen; + i12.if((0, e20._)(ct || (ct = mo(["Array.isArray(", ")"])), o11), function() { + i12.assign(t10.default.vErrors, (0, e20._)(lt || (lt = mo(["", " === null ? ", " : ", ".concat(", ")"])), t10.default.vErrors, o11, t10.default.vErrors, o11)).assign(t10.default.errors, (0, e20._)(ut || (ut = mo(["", ".length"])), t10.default.vErrors)), (0, r10.extendErrors)(n12); + }, function() { + return n12.error(); + }); + }(a10, n11); + }); + } + var i11; + }), a10.ok(null !== (c10 = s10.valid) && void 0 !== c10 ? c10 : g10); + }, h5.validSchemaType = function(e21, t11) { + var n11 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; + return !t11.length || t11.some(function(t12) { + return "array" === t12 ? Array.isArray(e21) : "object" === t12 ? e21 && "object" == Ho(e21) && !Array.isArray(e21) : Ho(e21) == t12 || n11 && void 0 === e21; + }); + }, h5.validateKeywordUsage = function(e21, t11, n11) { + var r11 = e21.schema, o11 = e21.opts, i11 = e21.self, a10 = e21.errSchemaPath; + if (Array.isArray(t11.keyword) ? !t11.keyword.includes(n11) : t11.keyword !== n11) + throw new Error("ajv implementation error"); + var s10 = t11.dependencies; + if (null == s10 ? void 0 : s10.some(function(e23) { + return !Object.prototype.hasOwnProperty.call(r11, e23); + })) + throw new Error("parent schema must have dependencies of ".concat(n11, ": ").concat(s10.join(","))); + if (t11.validateSchema && !t11.validateSchema(r11[n11])) { + var c10 = 'keyword "'.concat(n11, '" value is invalid at path "').concat(a10, '": ') + i11.errorsText(t11.validateSchema.errors); + if ("log" !== o11.validateSchema) + throw new Error(c10); + i11.logger.error(c10); + } + }, h5; + } + var g5; + var y5 = {}; + var b5 = {}; + var k5 = function e18(t10, n10) { + if (t10 === n10) + return true; + if (t10 && n10 && "object" == Ho(t10) && "object" == Ho(n10)) { + if (t10.constructor !== n10.constructor) + return false; + var r10, o10, i10; + if (Array.isArray(t10)) { + if ((r10 = t10.length) != n10.length) + return false; + for (o10 = r10; 0 != o10--; ) + if (!e18(t10[o10], n10[o10])) + return false; + return true; + } + if (t10.constructor === RegExp) + return t10.source === n10.source && t10.flags === n10.flags; + if (t10.valueOf !== Object.prototype.valueOf) + return t10.valueOf() === n10.valueOf(); + if (t10.toString !== Object.prototype.toString) + return t10.toString() === n10.toString(); + if ((r10 = (i10 = Object.keys(t10)).length) !== Object.keys(n10).length) + return false; + for (o10 = r10; 0 != o10--; ) + if (!Object.prototype.hasOwnProperty.call(n10, i10[o10])) + return false; + for (o10 = r10; 0 != o10--; ) { + var a10 = i10[o10]; + if (!e18(t10[a10], n10[a10])) + return false; + } + return true; + } + return t10 != t10 && n10 != n10; + }; + var w5 = { exports: {} }; + var x5 = w5.exports = function(e20, t10, n10) { + "function" == typeof t10 && (n10 = t10, t10 = {}), j5(t10, "function" == typeof (n10 = t10.cb || n10) ? n10 : n10.pre || function() { + }, n10.post || function() { + }, e20, "", e20); + }; + function j5(e20, t10, n10, r10, o10, i10, a10, s10, c10, l10) { + if (r10 && "object" == Ho(r10) && !Array.isArray(r10)) { + for (var u10 in t10(r10, o10, i10, a10, s10, c10, l10), r10) { + var f10 = r10[u10]; + if (Array.isArray(f10)) { + if (u10 in x5.arrayKeywords) + for (var d10 = 0; d10 < f10.length; d10++) + j5(e20, t10, n10, f10[d10], o10 + "/" + u10 + "/" + d10, i10, o10, u10, r10, d10); + } else if (u10 in x5.propsKeywords) { + if (f10 && "object" == Ho(f10)) + for (var h10 in f10) + j5(e20, t10, n10, f10[h10], o10 + "/" + u10 + "/" + h10.replace(/~/g, "~0").replace(/\//g, "~1"), i10, o10, u10, r10, h10); + } else + (u10 in x5.keywords || e20.allKeys && !(u10 in x5.skipKeywords)) && j5(e20, t10, n10, f10, o10 + "/" + u10, i10, o10, u10, r10); + } + n10(r10, o10, i10, a10, s10, c10, l10); + } + } + x5.keywords = { additionalItems: true, items: true, contains: true, additionalProperties: true, propertyNames: true, not: true, if: true, then: true, else: true }, x5.arrayKeywords = { items: true, allOf: true, anyOf: true, oneOf: true }, x5.propsKeywords = { $defs: true, definitions: true, properties: true, patternProperties: true, dependencies: true }, x5.skipKeywords = { default: true, enum: true, const: true, required: true, maximum: true, minimum: true, exclusiveMaximum: true, exclusiveMinimum: true, multipleOf: true, maxLength: true, minLength: true, pattern: true, format: true, maxItems: true, minItems: true, uniqueItems: true, maxProperties: true, minProperties: true }; + var S5 = w5.exports; + Object.defineProperty(b5, "__esModule", { value: true }), b5.getSchemaRefs = b5.resolveUrl = b5.normalizeId = b5._getFullPath = b5.getFullPath = b5.inlineRef = void 0; + var C5 = Q8; + var $5 = k5; + var _5 = S5; + var O5 = /* @__PURE__ */ new Set(["type", "format", "pattern", "maxLength", "minLength", "maxProperties", "minProperties", "maxItems", "minItems", "maximum", "minimum", "uniqueItems", "multipleOf", "required", "enum", "const"]); + b5.inlineRef = function(e20) { + var t10 = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1]; + return "boolean" == typeof e20 || (true === t10 ? !E5(e20) : !!t10 && A5(e20) <= t10); + }; + var M5 = /* @__PURE__ */ new Set(["$ref", "$recursiveRef", "$recursiveAnchor", "$dynamicRef", "$dynamicAnchor"]); + function E5(e20) { + for (var t10 in e20) { + if (M5.has(t10)) + return true; + var n10 = e20[t10]; + if (Array.isArray(n10) && n10.some(E5)) + return true; + if ("object" == Ho(n10) && E5(n10)) + return true; + } + return false; + } + function A5(e20) { + var t10 = 0; + for (var n10 in e20) { + if ("$ref" === n10) + return 1 / 0; + if (t10++, !O5.has(n10) && ("object" == Ho(e20[n10]) && (0, C5.eachItem)(e20[n10], function(e21) { + return t10 += A5(e21); + }), t10 === 1 / 0)) + return 1 / 0; + } + return t10; + } + function P5(e20) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : ""; + false !== (arguments.length > 2 ? arguments[2] : void 0) && (t10 = N5(t10)); + var n10 = e20.parse(t10); + return T5(e20, n10); + } + function T5(e20, t10) { + return e20.serialize(t10).split("#")[0] + "#"; + } + b5.getFullPath = P5, b5._getFullPath = T5; + var R5 = /#\/?$/; + function N5(e20) { + return e20 ? e20.replace(R5, "") : ""; + } + b5.normalizeId = N5, b5.resolveUrl = function(e20, t10, n10) { + return n10 = N5(n10), e20.resolve(t10, n10); + }; + var I5; + var D5 = /^[a-z_][-a-z0-9._]*$/i; + function q5() { + if (I5) + return z8; + I5 = 1, Object.defineProperty(z8, "__esModule", { value: true }), z8.getData = z8.KeywordCxt = z8.validateFunctionCode = void 0; + var e20 = function() { + if (Z8) + return B8; + Z8 = 1, Object.defineProperty(B8, "__esModule", { value: true }), B8.boolOrEmptySchema = B8.topBoolOrEmptySchema = void 0; + var e21 = n5(), t11 = G8(), n11 = t5(), r11 = { message: "boolean schema is false" }; + function o11(t12, n12) { + var o12 = { gen: t12.gen, keyword: "false schema", data: t12.data, schema: false, schemaCode: false, schemaValue: false, params: {}, it: t12 }; + (0, e21.reportError)(o12, r11, void 0, n12); + } + return B8.topBoolOrEmptySchema = function(e23) { + var r12 = e23.gen, i11 = e23.schema, a11 = e23.validateName; + false === i11 ? o11(e23, false) : "object" == Ho(i11) && true === i11.$async ? r12.return(n11.default.data) : (r12.assign((0, t11._)(ne || (ne = mo(["", ".errors"])), a11), null), r12.return(true)); + }, B8.boolOrEmptySchema = function(e23, t12) { + var n12 = e23.gen; + false === e23.schema ? (n12.var(t12, false), o11(e23)) : n12.var(t12, true); + }, B8; + }(), t10 = r5, n10 = c5(), r10 = r5, o10 = function() { + if (l5) + return u5; + l5 = 1, Object.defineProperty(u5, "__esModule", { value: true }), u5.assignDefaults = void 0; + var e21 = G8(), t11 = Q8; + function n11(n12, r11, o11) { + var i11 = n12.gen, a11 = n12.compositeRule, s11 = n12.data, c11 = n12.opts; + if (void 0 !== o11) { + var l11 = (0, e21._)(Ie || (Ie = mo(["", "", ""])), s11, (0, e21.getProperty)(r11)); + if (a11) + (0, t11.checkStrictMode)(n12, "default is ignored for: ".concat(l11)); + else { + var u11 = (0, e21._)(De || (De = mo(["", " === undefined"])), l11); + "empty" === c11.useDefaults && (u11 = (0, e21._)(qe || (qe = mo(["", " || ", " === null || ", ' === ""'])), u11, l11, l11)), i11.if(u11, (0, e21._)(ze || (ze = mo(["", " = ", ""])), l11, (0, e21.stringify)(o11))); + } + } + } + return u5.assignDefaults = function(e23, t12) { + var r11 = e23.schema, o11 = r11.properties, i11 = r11.items; + if ("object" === t12 && o11) + for (var a11 in o11) + n11(e23, a11, o11[a11].default); + else + "array" === t12 && Array.isArray(i11) && i11.forEach(function(t13, r12) { + return n11(e23, r12, t13.default); + }); + }, u5; + }(), i10 = m5(), a10 = function() { + if (g5) + return y5; + g5 = 1, Object.defineProperty(y5, "__esModule", { value: true }), y5.extendSubschemaMode = y5.extendSubschemaData = y5.getSubschema = void 0; + var e21 = G8(), t11 = Q8; + return y5.getSubschema = function(n11, r11) { + var o11 = r11.keyword, i11 = r11.schemaProp, a11 = r11.schema, s11 = r11.schemaPath, c11 = r11.errSchemaPath, l11 = r11.topSchemaRef; + if (void 0 !== o11 && void 0 !== a11) + throw new Error('both "keyword" and "schema" passed, only one allowed'); + if (void 0 !== o11) { + var u11 = n11.schema[o11]; + return void 0 === i11 ? { schema: u11, schemaPath: (0, e21._)(ft || (ft = mo(["", "", ""])), n11.schemaPath, (0, e21.getProperty)(o11)), errSchemaPath: "".concat(n11.errSchemaPath, "/").concat(o11) } : { schema: u11[i11], schemaPath: (0, e21._)(dt || (dt = mo(["", "", "", ""])), n11.schemaPath, (0, e21.getProperty)(o11), (0, e21.getProperty)(i11)), errSchemaPath: "".concat(n11.errSchemaPath, "/").concat(o11, "/").concat((0, t11.escapeFragment)(i11)) }; + } + if (void 0 !== a11) { + if (void 0 === s11 || void 0 === c11 || void 0 === l11) + throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"'); + return { schema: a11, schemaPath: s11, topSchemaRef: l11, errSchemaPath: c11 }; + } + throw new Error('either "keyword" or "schema" must be passed'); + }, y5.extendSubschemaData = function(n11, r11, o11) { + var i11 = o11.dataProp, a11 = o11.dataPropType, s11 = o11.data, c11 = o11.dataTypes, l11 = o11.propertyName; + if (void 0 !== s11 && void 0 !== i11) + throw new Error('both "data" and "dataProp" passed, only one allowed'); + var u11 = r11.gen; + if (void 0 !== i11) { + var f11 = r11.errorPath, d11 = r11.dataPathArr, h11 = r11.opts; + v11(u11.let("data", (0, e21._)(ht || (ht = mo(["", "", ""])), r11.data, (0, e21.getProperty)(i11)), true)), n11.errorPath = (0, e21.str)(vt || (vt = mo(["", "", ""])), f11, (0, t11.getErrorPath)(i11, a11, h11.jsPropertySyntax)), n11.parentDataProperty = (0, e21._)(pt || (pt = mo(["", ""])), i11), n11.dataPathArr = [].concat(Bo(d11), [n11.parentDataProperty]); + } + function v11(e23) { + n11.data = e23, n11.dataLevel = r11.dataLevel + 1, n11.dataTypes = [], r11.definedProperties = /* @__PURE__ */ new Set(), n11.parentData = r11.data, n11.dataNames = [].concat(Bo(r11.dataNames), [e23]); + } + void 0 !== s11 && (v11(s11 instanceof e21.Name ? s11 : u11.let("data", s11, true)), void 0 !== l11 && (n11.propertyName = l11)), c11 && (n11.dataTypes = c11); + }, y5.extendSubschemaMode = function(e23, t12) { + var n11 = t12.jtdDiscriminator, r11 = t12.jtdMetadata, o11 = t12.compositeRule, i11 = t12.createErrors, a11 = t12.allErrors; + void 0 !== o11 && (e23.compositeRule = o11), void 0 !== i11 && (e23.createErrors = i11), void 0 !== a11 && (e23.allErrors = a11), e23.jtdDiscriminator = n11, e23.jtdMetadata = r11; + }, y5; + }(), s10 = G8(), c10 = t5(), l10 = b5, u10 = Q8, f10 = n5(); + function d10(e21, t11) { + var n11 = e21.gen, r11 = e21.validateName, o11 = e21.schema, i11 = e21.schemaEnv, a11 = e21.opts; + a11.code.es5 ? n11.func(r11, (0, s10._)(mt || (mt = mo(["", ", ", ""])), c10.default.data, c10.default.valCxt), i11.$async, function() { + n11.code((0, s10._)(gt || (gt = mo(['"use strict"; ', ""])), h10(o11, a11))), function(e23, t12) { + e23.if(c10.default.valCxt, function() { + e23.var(c10.default.instancePath, (0, s10._)(wt || (wt = mo(["", ".", ""])), c10.default.valCxt, c10.default.instancePath)), e23.var(c10.default.parentData, (0, s10._)(xt || (xt = mo(["", ".", ""])), c10.default.valCxt, c10.default.parentData)), e23.var(c10.default.parentDataProperty, (0, s10._)(jt || (jt = mo(["", ".", ""])), c10.default.valCxt, c10.default.parentDataProperty)), e23.var(c10.default.rootData, (0, s10._)(St || (St = mo(["", ".", ""])), c10.default.valCxt, c10.default.rootData)), t12.dynamicRef && e23.var(c10.default.dynamicAnchors, (0, s10._)(Ct || (Ct = mo(["", ".", ""])), c10.default.valCxt, c10.default.dynamicAnchors)); + }, function() { + e23.var(c10.default.instancePath, (0, s10._)($t || ($t = mo(['""'])))), e23.var(c10.default.parentData, (0, s10._)(_t || (_t = mo(["undefined"])))), e23.var(c10.default.parentDataProperty, (0, s10._)(Ot || (Ot = mo(["undefined"])))), e23.var(c10.default.rootData, c10.default.data), t12.dynamicRef && e23.var(c10.default.dynamicAnchors, (0, s10._)(Mt || (Mt = mo(["{}"])))); + }); + }(n11, a11), n11.code(t11); + }) : n11.func(r11, (0, s10._)(yt || (yt = mo(["", ", ", ""])), c10.default.data, function(e23) { + return (0, s10._)(bt || (bt = mo(["{", '="", ', ", ", ", ", "=", "", "}={}"])), c10.default.instancePath, c10.default.parentData, c10.default.parentDataProperty, c10.default.rootData, c10.default.data, e23.dynamicRef ? (0, s10._)(kt || (kt = mo([", ", "={}"])), c10.default.dynamicAnchors) : s10.nil); + }(a11)), i11.$async, function() { + return n11.code(h10(o11, a11)).code(t11); + }); + } + function h10(e21, t11) { + var n11 = "object" == Ho(e21) && e21[t11.schemaId]; + return n11 && (t11.code.source || t11.code.process) ? (0, s10._)(Dt || (Dt = mo(["/*# sourceURL=", " */"])), n11) : s10.nil; + } + function v10(t11, n11) { + m10(t11) && (g10(t11), p10(t11)) ? function(e21, t12) { + var n12 = e21.schema, r11 = e21.gen, o11 = e21.opts; + o11.$comment && n12.$comment && b10(e21); + (function(e23) { + var t13 = e23.schema[e23.opts.schemaId]; + t13 && (e23.baseId = (0, l10.resolveUrl)(e23.opts.uriResolver, e23.baseId, t13)); + })(e21), function(e23) { + if (e23.schema.$async && !e23.schemaEnv.$async) + throw new Error("async schema in sync schema"); + }(e21); + var i11 = r11.const("_errs", c10.default.errors); + y10(e21, i11), r11.var(t12, (0, s10._)(qt || (qt = mo(["", " === ", ""])), i11, c10.default.errors)); + }(t11, n11) : (0, e20.boolOrEmptySchema)(t11, n11); + } + function p10(e21) { + var t11 = e21.schema, n11 = e21.self; + if ("boolean" == typeof t11) + return !t11; + for (var r11 in t11) + if (n11.RULES.all[r11]) + return true; + return false; + } + function m10(e21) { + return "boolean" != typeof e21.schema; + } + function g10(e21) { + (0, u10.checkUnknownRules)(e21), function(e23) { + var t11 = e23.schema, n11 = e23.errSchemaPath, r11 = e23.opts, o11 = e23.self; + t11.$ref && r11.ignoreKeywordsWithRef && (0, u10.schemaHasRulesButRef)(t11, o11.RULES) && o11.logger.warn('$ref: keywords ignored in schema at path "'.concat(n11, '"')); + }(e21); + } + function y10(e21, n11) { + if (e21.opts.jtd) + return k10(e21, [], false, n11); + var r11 = (0, t10.getSchemaTypes)(e21.schema); + k10(e21, r11, !(0, t10.coerceAndCheckDataType)(e21, r11), n11); + } + function b10(e21) { + var t11 = e21.gen, n11 = e21.schemaEnv, r11 = e21.schema, o11 = e21.errSchemaPath, i11 = e21.opts, a11 = r11.$comment; + if (true === i11.$comment) + t11.code((0, s10._)(zt || (zt = mo(["", ".logger.log(", ")"])), c10.default.self, a11)); + else if ("function" == typeof i11.$comment) { + var l11 = (0, s10.str)(Bt || (Bt = mo(["", "/$comment"])), o11), u11 = t11.scopeValue("root", { ref: n11.root }); + t11.code((0, s10._)(Lt || (Lt = mo(["", ".opts.$comment(", ", ", ", ", ".schema)"])), c10.default.self, a11, l11, u11)); + } + } + function k10(e21, t11, o11, i11) { + var a11 = e21.gen, l11 = e21.schema, f11 = e21.data, d11 = e21.allErrors, h11 = e21.opts, v11 = e21.self.RULES; + function p11(u11) { + (0, n10.shouldUseGroup)(l11, u11) && (u11.type ? (a11.if((0, r10.checkDataType)(u11.type, f11, h11.strictNumbers)), w10(e21, u11), 1 === t11.length && t11[0] === u11.type && o11 && (a11.else(), (0, r10.reportTypeError)(e21)), a11.endIf()) : w10(e21, u11), d11 || a11.if((0, s10._)(Kt || (Kt = mo(["", " === ", ""])), c10.default.errors, i11 || 0))); + } + !l11.$ref || !h11.ignoreKeywordsWithRef && (0, u10.schemaHasRulesButRef)(l11, v11) ? (h11.jtd || function(e23, t12) { + if (e23.schemaEnv.meta || !e23.opts.strictTypes) + return; + (function(e24, t13) { + if (!t13.length) + return; + if (!e24.dataTypes.length) + return void (e24.dataTypes = t13); + t13.forEach(function(t14) { + j10(e24.dataTypes, t14) || S10(e24, 'type "'.concat(t14, '" not allowed by context "').concat(e24.dataTypes.join(","), '"')); + }), function(e25, t14) { + var n11, r11 = [], o12 = bo(e25.dataTypes); + try { + for (o12.s(); !(n11 = o12.n()).done; ) { + var i12 = n11.value; + j10(t14, i12) ? r11.push(i12) : t14.includes("integer") && "number" === i12 && r11.push("integer"); + } + } catch (e26) { + o12.e(e26); + } finally { + o12.f(); + } + e25.dataTypes = r11; + }(e24, t13); + })(e23, t12), e23.opts.allowUnionTypes || function(e24, t13) { + t13.length > 1 && (2 !== t13.length || !t13.includes("null")) && S10(e24, "use allowUnionTypes to allow union type keyword"); + }(e23, t12); + !function(e24, t13) { + var r11 = e24.self.RULES.all; + for (var o12 in r11) { + var i12 = r11[o12]; + if ("object" == Ho(i12) && (0, n10.shouldUseRule)(e24.schema, i12)) { + var a12 = i12.definition.type; + a12.length && !a12.some(function(e25) { + return x10(t13, e25); + }) && S10(e24, 'missing type "'.concat(a12.join(","), '" for keyword "').concat(o12, '"')); + } + } + }(e23, e23.dataTypes); + }(e21, t11), a11.block(function() { + var e23, t12 = bo(v11.rules); + try { + for (t12.s(); !(e23 = t12.n()).done; ) { + p11(e23.value); + } + } catch (e24) { + t12.e(e24); + } finally { + t12.f(); + } + p11(v11.post); + })) : a11.block(function() { + return $10(e21, "$ref", v11.all.$ref.definition); + }); + } + function w10(e21, t11) { + var r11 = e21.gen, i11 = e21.schema; + e21.opts.useDefaults && (0, o10.assignDefaults)(e21, t11.type), r11.block(function() { + var r12, o11 = bo(t11.rules); + try { + for (o11.s(); !(r12 = o11.n()).done; ) { + var a11 = r12.value; + (0, n10.shouldUseRule)(i11, a11) && $10(e21, a11.keyword, a11.definition, t11.type); + } + } catch (e23) { + o11.e(e23); + } finally { + o11.f(); + } + }); + } + function x10(e21, t11) { + return e21.includes(t11) || "number" === t11 && e21.includes("integer"); + } + function j10(e21, t11) { + return e21.includes(t11) || "integer" === t11 && e21.includes("number"); + } + function S10(e21, t11) { + var n11 = e21.schemaEnv.baseId + e21.errSchemaPath; + t11 += ' at "'.concat(n11, '" (strictTypes)'), (0, u10.checkStrictMode)(e21, t11, e21.opts.strictTypes); + } + z8.validateFunctionCode = function(t11) { + m10(t11) && (g10(t11), p10(t11)) ? function(e21) { + var t12 = e21.schema, n11 = e21.opts, r11 = e21.gen; + d10(e21, function() { + n11.$comment && t12.$comment && b10(e21), function(e23) { + var t13 = e23.schema, n12 = e23.opts; + void 0 !== t13.default && n12.useDefaults && n12.strictSchema && (0, u10.checkStrictMode)(e23, "default is ignored in the schema root"); + }(e21), r11.let(c10.default.vErrors, null), r11.let(c10.default.errors, 0), n11.unevaluated && function(e23) { + var t13 = e23.gen, n12 = e23.validateName; + e23.evaluated = t13.const("evaluated", (0, s10._)(Et || (Et = mo(["", ".evaluated"])), n12)), t13.if((0, s10._)(At || (At = mo(["", ".dynamicProps"])), e23.evaluated), function() { + return t13.assign((0, s10._)(Pt || (Pt = mo(["", ".props"])), e23.evaluated), (0, s10._)(Tt || (Tt = mo(["undefined"])))); + }), t13.if((0, s10._)(Rt || (Rt = mo(["", ".dynamicItems"])), e23.evaluated), function() { + return t13.assign((0, s10._)(Nt || (Nt = mo(["", ".items"])), e23.evaluated), (0, s10._)(It || (It = mo(["undefined"])))); + }); + }(e21), y10(e21), function(e23) { + var t13 = e23.gen, n12 = e23.schemaEnv, r12 = e23.validateName, o11 = e23.ValidationError, i11 = e23.opts; + n12.$async ? t13.if((0, s10._)(Ft || (Ft = mo(["", " === 0"])), c10.default.errors), function() { + return t13.return(c10.default.data); + }, function() { + return t13.throw((0, s10._)(Vt || (Vt = mo(["new ", "(", ")"])), o11, c10.default.vErrors)); + }) : (t13.assign((0, s10._)(Ht || (Ht = mo(["", ".errors"])), r12), c10.default.vErrors), i11.unevaluated && function(e24) { + var t14 = e24.gen, n13 = e24.evaluated, r13 = e24.props, o12 = e24.items; + r13 instanceof s10.Name && t14.assign((0, s10._)(Ut || (Ut = mo(["", ".props"])), n13), r13); + o12 instanceof s10.Name && t14.assign((0, s10._)(Jt || (Jt = mo(["", ".items"])), n13), o12); + }(e23), t13.return((0, s10._)(Wt || (Wt = mo(["", " === 0"])), c10.default.errors))); + }(e21); + }); + }(t11) : d10(t11, function() { + return (0, e20.topBoolOrEmptySchema)(t11); + }); + }; + var C10 = function() { + function e21(t11, n11, r11) { + if (No(this, e21), (0, i10.validateKeywordUsage)(t11, n11, r11), this.gen = t11.gen, this.allErrors = t11.allErrors, this.keyword = r11, this.data = t11.data, this.schema = t11.schema[r11], this.$data = n11.$data && t11.opts.$data && this.schema && this.schema.$data, this.schemaValue = (0, u10.schemaRefOrVal)(t11, this.schema, r11, this.$data), this.schemaType = n11.schemaType, this.parentSchema = t11.schema, this.params = {}, this.it = t11, this.def = n11, this.$data) + this.schemaCode = t11.gen.const("vSchema", M10(this.$data, t11)); + else if (this.schemaCode = this.schemaValue, !(0, i10.validSchemaType)(this.schema, n11.schemaType, n11.allowUndefined)) + throw new Error("".concat(r11, " value must be ").concat(JSON.stringify(n11.schemaType))); + ("code" in n11 ? n11.trackErrors : false !== n11.errors) && (this.errsCount = t11.gen.const("_errs", c10.default.errors)); + } + return Do(e21, [{ key: "result", value: function(e23, t11, n11) { + this.failResult((0, s10.not)(e23), t11, n11); + } }, { key: "failResult", value: function(e23, t11, n11) { + this.gen.if(e23), n11 ? n11() : this.error(), t11 ? (this.gen.else(), t11(), this.allErrors && this.gen.endIf()) : this.allErrors ? this.gen.endIf() : this.gen.else(); + } }, { key: "pass", value: function(e23, t11) { + this.failResult((0, s10.not)(e23), void 0, t11); + } }, { key: "fail", value: function(e23) { + if (void 0 === e23) + return this.error(), void (this.allErrors || this.gen.if(false)); + this.gen.if(e23), this.error(), this.allErrors ? this.gen.endIf() : this.gen.else(); + } }, { key: "fail$data", value: function(e23) { + if (!this.$data) + return this.fail(e23); + var t11 = this.schemaCode; + this.fail((0, s10._)(Gt || (Gt = mo(["", " !== undefined && (", ")"])), t11, (0, s10.or)(this.invalid$data(), e23))); + } }, { key: "error", value: function(e23, t11, n11) { + if (t11) + return this.setParams(t11), this._error(e23, n11), void this.setParams({}); + this._error(e23, n11); + } }, { key: "_error", value: function(e23, t11) { + (e23 ? f10.reportExtraError : f10.reportError)(this, this.def.error, t11); + } }, { key: "$dataError", value: function() { + (0, f10.reportError)(this, this.def.$dataError || f10.keyword$DataError); + } }, { key: "reset", value: function() { + if (void 0 === this.errsCount) + throw new Error('add "trackErrors" to keyword definition'); + (0, f10.resetErrorsCount)(this.gen, this.errsCount); + } }, { key: "ok", value: function(e23) { + this.allErrors || this.gen.if(e23); + } }, { key: "setParams", value: function(e23, t11) { + t11 ? Object.assign(this.params, e23) : this.params = e23; + } }, { key: "block$data", value: function(e23, t11) { + var n11 = this, r11 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : s10.nil; + this.gen.block(function() { + n11.check$data(e23, r11), t11(); + }); + } }, { key: "check$data", value: function() { + var e23 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : s10.nil, t11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : s10.nil; + if (this.$data) { + var n11 = this.gen, r11 = this.schemaCode, o11 = this.schemaType, i11 = this.def; + n11.if((0, s10.or)((0, s10._)(Qt || (Qt = mo(["", " === undefined"])), r11), t11)), e23 !== s10.nil && n11.assign(e23, true), (o11.length || i11.validateSchema) && (n11.elseIf(this.invalid$data()), this.$dataError(), e23 !== s10.nil && n11.assign(e23, false)), n11.else(); + } + } }, { key: "invalid$data", value: function() { + var e23 = this.gen, t11 = this.schemaCode, n11 = this.schemaType, o11 = this.def, i11 = this.it; + return (0, s10.or)(function() { + if (n11.length) { + if (!(t11 instanceof s10.Name)) + throw new Error("ajv implementation error"); + var e24 = Array.isArray(n11) ? n11 : [n11]; + return (0, s10._)(Yt || (Yt = mo(["", ""])), (0, r10.checkDataTypes)(e24, t11, i11.opts.strictNumbers, r10.DataType.Wrong)); + } + return s10.nil; + }(), function() { + if (o11.validateSchema) { + var n12 = e23.scopeValue("validate$data", { ref: o11.validateSchema }); + return (0, s10._)(Xt || (Xt = mo(["!", "(", ")"])), n12, t11); + } + return s10.nil; + }()); + } }, { key: "subschema", value: function(e23, t11) { + var n11 = (0, a10.getSubschema)(this.it, e23); + (0, a10.extendSubschemaData)(n11, this.it, e23), (0, a10.extendSubschemaMode)(n11, e23); + var r11 = Ro(Ro(Ro({}, this.it), n11), {}, { items: void 0, props: void 0 }); + return v10(r11, t11), r11; + } }, { key: "mergeEvaluated", value: function(e23, t11) { + var n11 = this.it, r11 = this.gen; + n11.opts.unevaluated && (true !== n11.props && void 0 !== e23.props && (n11.props = u10.mergeEvaluated.props(r11, e23.props, n11.props, t11)), true !== n11.items && void 0 !== e23.items && (n11.items = u10.mergeEvaluated.items(r11, e23.items, n11.items, t11))); + } }, { key: "mergeValidEvaluated", value: function(e23, t11) { + var n11 = this, r11 = this.it, o11 = this.gen; + if (r11.opts.unevaluated && (true !== r11.props || true !== r11.items)) + return o11.if(t11, function() { + return n11.mergeEvaluated(e23, s10.Name); + }), true; + } }]), e21; + }(); + function $10(e21, t11, n11, r11) { + var o11 = new C10(e21, n11, t11); + "code" in n11 ? n11.code(o11, r11) : o11.$data && n11.validate ? (0, i10.funcKeywordCode)(o11, n11) : "macro" in n11 ? (0, i10.macroKeywordCode)(o11, n11) : (n11.compile || n11.validate) && (0, i10.funcKeywordCode)(o11, n11); + } + z8.KeywordCxt = C10; + var _10 = /^\/(?:[^~]|~0|~1)*$/, O10 = /^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/; + function M10(e21, t11) { + var n11, r11, o11 = t11.dataLevel, i11 = t11.dataNames, a11 = t11.dataPathArr; + if ("" === e21) + return c10.default.rootData; + if ("/" === e21[0]) { + if (!_10.test(e21)) + throw new Error("Invalid JSON-pointer: ".concat(e21)); + n11 = e21, r11 = c10.default.rootData; + } else { + var l11 = O10.exec(e21); + if (!l11) + throw new Error("Invalid JSON-pointer: ".concat(e21)); + var f11 = +l11[1]; + if ("#" === (n11 = l11[2])) { + if (f11 >= o11) + throw new Error(m11("property/index", f11)); + return a11[o11 - f11]; + } + if (f11 > o11) + throw new Error(m11("data", f11)); + if (r11 = i11[o11 - f11], !n11) + return r11; + } + var d11, h11 = r11, v11 = bo(n11.split("/")); + try { + for (v11.s(); !(d11 = v11.n()).done; ) { + var p11 = d11.value; + p11 && (r11 = (0, s10._)(Zt || (Zt = mo(["", "", ""])), r11, (0, s10.getProperty)((0, u10.unescapeJsonPointer)(p11))), h11 = (0, s10._)(en || (en = mo(["", " && ", ""])), h11, r11)); + } + } catch (e23) { + v11.e(e23); + } finally { + v11.f(); + } + return h11; + function m11(e23, t12) { + return "Cannot access ".concat(e23, " ").concat(t12, " levels up, current level is ").concat(o11); + } + } + return z8.getData = M10, z8; + } + b5.getSchemaRefs = function(e20, t10) { + var n10 = this; + if ("boolean" == typeof e20) + return {}; + var r10 = this.opts, o10 = r10.schemaId, i10 = r10.uriResolver, a10 = N5(e20[o10] || t10), s10 = { "": a10 }, c10 = P5(i10, a10, false), l10 = {}, u10 = /* @__PURE__ */ new Set(); + return _5(e20, { allKeys: true }, function(e21, t11, r11, i11) { + if (void 0 !== i11) { + var a11 = c10 + t11, h10 = s10[i11]; + "string" == typeof e21[o10] && (h10 = v10.call(n10, e21[o10])), p10.call(n10, e21.$anchor), p10.call(n10, e21.$dynamicAnchor), s10[t11] = h10; + } + function v10(t12) { + var n11 = this.opts.uriResolver.resolve; + if (t12 = N5(h10 ? n11(h10, t12) : t12), u10.has(t12)) + throw d10(t12); + u10.add(t12); + var r12 = this.refs[t12]; + return "string" == typeof r12 && (r12 = this.refs[r12]), "object" == Ho(r12) ? f10(e21, r12.schema, t12) : t12 !== N5(a11) && ("#" === t12[0] ? (f10(e21, l10[t12], t12), l10[t12] = e21) : this.refs[t12] = a11), t12; + } + function p10(e23) { + if ("string" == typeof e23) { + if (!D5.test(e23)) + throw new Error('invalid anchor "'.concat(e23, '"')); + v10.call(this, "#".concat(e23)); + } + } + }), l10; + function f10(e21, t11, n11) { + if (void 0 !== t11 && !$5(e21, t11)) + throw d10(n11); + } + function d10(e21) { + return new Error('reference "'.concat(e21, '" resolves to more than one schema')); + } + }; + var z5; + var B5 = {}; + function L5() { + if (z5) + return B5; + z5 = 1, Object.defineProperty(B5, "__esModule", { value: true }); + var e20 = function(e21) { + function t10(e23) { + var n10; + return No(this, t10), (n10 = _o(this, t10, ["validation failed"])).errors = e23, n10.ajv = n10.validation = true, n10; + } + return Ao(t10, $o(Error)), Do(t10); + }(); + return B5.default = e20, B5; + } + var F5; + var V5 = {}; + function H5() { + if (F5) + return V5; + F5 = 1, Object.defineProperty(V5, "__esModule", { value: true }); + var e20 = b5, t10 = function(t11) { + function n10(t12, r10, o10, i10) { + var a10; + return No(this, n10), (a10 = _o(this, n10, [i10 || "can't resolve reference ".concat(o10, " from id ").concat(r10)])).missingRef = (0, e20.resolveUrl)(t12, r10, o10), a10.missingSchema = (0, e20.normalizeId)((0, e20.getFullPath)(t12, a10.missingRef)), a10; + } + return Ao(n10, $o(Error)), Do(n10); + }(); + return V5.default = t10, V5; + } + var W5 = {}; + Object.defineProperty(W5, "__esModule", { value: true }), W5.resolveSchema = W5.getCompilingSchema = W5.resolveRef = W5.compileSchema = W5.SchemaEnv = void 0; + var U5 = G8(); + var J5 = L5(); + var K5 = t5(); + var G5 = b5; + var Q5 = Q8; + var Y5 = q5(); + var X5 = Do(function e19(t10) { + var n10, r10; + No(this, e19), this.refs = {}, this.dynamicAnchors = {}, "object" == Ho(t10.schema) && (r10 = t10.schema), this.schema = t10.schema, this.schemaId = t10.schemaId, this.root = t10.root || this, this.baseId = null !== (n10 = t10.baseId) && void 0 !== n10 ? n10 : (0, G5.normalizeId)(null == r10 ? void 0 : r10[t10.schemaId || "$id"]), this.schemaPath = t10.schemaPath, this.localRefs = t10.localRefs, this.meta = t10.meta, this.$async = null == r10 ? void 0 : r10.$async, this.refs = {}; + }); + function Z5(e20) { + var t10 = t6.call(this, e20); + if (t10) + return t10; + var n10, r10 = (0, G5.getFullPath)(this.opts.uriResolver, e20.root.baseId), o10 = this.opts.code, i10 = o10.es5, a10 = o10.lines, s10 = this.opts.ownProperties, c10 = new U5.CodeGen(this.scope, { es5: i10, lines: a10, ownProperties: s10 }); + e20.$async && (n10 = c10.scopeValue("Error", { ref: J5.default, code: (0, U5._)(tn || (tn = mo(['require("ajv/dist/runtime/validation_error").default']))) })); + var l10 = c10.scopeName("validate"); + e20.validateName = l10; + var u10, f10 = { gen: c10, allErrors: this.opts.allErrors, data: K5.default.data, parentData: K5.default.parentData, parentDataProperty: K5.default.parentDataProperty, dataNames: [K5.default.data], dataPathArr: [U5.nil], dataLevel: 0, dataTypes: [], definedProperties: /* @__PURE__ */ new Set(), topSchemaRef: c10.scopeValue("schema", true === this.opts.code.source ? { ref: e20.schema, code: (0, U5.stringify)(e20.schema) } : { ref: e20.schema }), validateName: l10, ValidationError: n10, schema: e20.schema, schemaEnv: e20, rootId: r10, baseId: e20.baseId || r10, schemaPath: U5.nil, errSchemaPath: e20.schemaPath || (this.opts.jtd ? "" : "#"), errorPath: (0, U5._)(nn || (nn = mo(['""']))), opts: this.opts, self: this }; + try { + this._compilations.add(e20), (0, Y5.validateFunctionCode)(f10), c10.optimize(this.opts.code.optimize); + var d10 = c10.toString(); + u10 = "".concat(c10.scopeRefs(K5.default.scope), "return ").concat(d10), this.opts.code.process && (u10 = this.opts.code.process(u10, e20)); + var h10 = new Function("".concat(K5.default.self), "".concat(K5.default.scope), u10)(this, this.scope.get()); + if (this.scope.value(l10, { ref: h10 }), h10.errors = null, h10.schema = e20.schema, h10.schemaEnv = e20, e20.$async && (h10.$async = true), true === this.opts.code.source && (h10.source = { validateName: l10, validateCode: d10, scopeValues: c10._values }), this.opts.unevaluated) { + var v10 = f10.props, p10 = f10.items; + h10.evaluated = { props: v10 instanceof U5.Name ? void 0 : v10, items: p10 instanceof U5.Name ? void 0 : p10, dynamicProps: v10 instanceof U5.Name, dynamicItems: p10 instanceof U5.Name }, h10.source && (h10.source.evaluated = (0, U5.stringify)(h10.evaluated)); + } + return e20.validate = h10, e20; + } catch (t11) { + throw delete e20.validate, delete e20.validateName, u10 && this.logger.error("Error compiling schema, function code:", u10), t11; + } finally { + this._compilations.delete(e20); + } + } + function e62(e20) { + return (0, G5.inlineRef)(e20.schema, this.opts.inlineRefs) ? e20.schema : e20.validate ? e20 : Z5.call(this, e20); + } + function t6(e20) { + var t10, n10, r10, o10 = bo(this._compilations); + try { + for (o10.s(); !(t10 = o10.n()).done; ) { + var i10 = t10.value; + if (r10 = e20, (n10 = i10).schema === r10.schema && n10.root === r10.root && n10.baseId === r10.baseId) + return i10; + } + } catch (e21) { + o10.e(e21); + } finally { + o10.f(); + } + } + function n6(e20, t10) { + for (var n10; "string" == typeof (n10 = this.refs[t10]); ) + t10 = n10; + return n10 || this.schemas[t10] || r6.call(this, e20, t10); + } + function r6(e20, t10) { + var n10 = this.opts.uriResolver.parse(t10), r10 = (0, G5._getFullPath)(this.opts.uriResolver, n10), o10 = (0, G5.getFullPath)(this.opts.uriResolver, e20.baseId, void 0); + if (Object.keys(e20.schema).length > 0 && r10 === o10) + return i6.call(this, n10, e20); + var i10 = (0, G5.normalizeId)(r10), a10 = this.refs[i10] || this.schemas[i10]; + if ("string" == typeof a10) { + var s10 = r6.call(this, e20, a10); + if ("object" !== Ho(null == s10 ? void 0 : s10.schema)) + return; + return i6.call(this, n10, s10); + } + if ("object" === Ho(null == a10 ? void 0 : a10.schema)) { + if (a10.validate || Z5.call(this, a10), i10 === (0, G5.normalizeId)(t10)) { + var c10 = a10.schema, l10 = this.opts.schemaId, u10 = c10[l10]; + return u10 && (o10 = (0, G5.resolveUrl)(this.opts.uriResolver, o10, u10)), new X5({ schema: c10, schemaId: l10, root: e20, baseId: o10 }); + } + return i6.call(this, n10, a10); + } + } + W5.SchemaEnv = X5, W5.compileSchema = Z5, W5.resolveRef = function(e20, t10, n10) { + var r10; + n10 = (0, G5.resolveUrl)(this.opts.uriResolver, t10, n10); + var o10 = e20.refs[n10]; + if (o10) + return o10; + var i10 = n6.call(this, e20, n10); + if (void 0 === i10) { + var a10 = null === (r10 = e20.localRefs) || void 0 === r10 ? void 0 : r10[n10], s10 = this.opts.schemaId; + a10 && (i10 = new X5({ schema: a10, schemaId: s10, root: e20, baseId: t10 })); + } + return void 0 !== i10 ? e20.refs[n10] = e62.call(this, i10) : void 0; + }, W5.getCompilingSchema = t6, W5.resolveSchema = r6; + var o6 = /* @__PURE__ */ new Set(["properties", "patternProperties", "enum", "dependencies", "definitions"]); + function i6(e20, t10) { + var n10, r10 = t10.baseId, o10 = t10.schema, i10 = t10.root; + if ("/" === (null === (n10 = e20.fragment) || void 0 === n10 ? void 0 : n10[0])) { + var a10, s10, c10 = bo(e20.fragment.slice(1).split("/")); + try { + for (c10.s(); !(a10 = c10.n()).done; ) { + var l10 = a10.value; + if ("boolean" == typeof o10) + return; + var u10 = o10[(0, Q5.unescapeFragment)(l10)]; + if (void 0 === u10) + return; + var f10 = "object" === Ho(o10 = u10) && o10[this.opts.schemaId]; + !o6.has(l10) && f10 && (r10 = (0, G5.resolveUrl)(this.opts.uriResolver, r10, f10)); + } + } catch (e21) { + c10.e(e21); + } finally { + c10.f(); + } + if ("boolean" != typeof o10 && o10.$ref && !(0, Q5.schemaHasRulesButRef)(o10, this.RULES)) { + var d10 = (0, G5.resolveUrl)(this.opts.uriResolver, r10, o10.$ref); + s10 = r6.call(this, i10, d10); + } + var h10 = this.opts.schemaId; + return (s10 = s10 || new X5({ schema: o10, schemaId: h10, root: i10, baseId: r10 })).schema !== s10.root.schema ? s10 : void 0; + } + } + var a6 = { $id: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#", description: "Meta-schema for $data reference (JSON AnySchema extension proposal)", type: "object", required: ["$data"], properties: { $data: { type: "string", anyOf: [{ format: "relative-json-pointer" }, { format: "json-pointer" }] } }, additionalProperties: false }; + var s6 = {}; + var c6 = { exports: {} }; + !function(e20) { + function t10() { + for (var e21 = arguments.length, t11 = Array(e21), n11 = 0; n11 < e21; n11++) + t11[n11] = arguments[n11]; + if (t11.length > 1) { + t11[0] = t11[0].slice(0, -1); + for (var r11 = t11.length - 1, o11 = 1; o11 < r11; ++o11) + t11[o11] = t11[o11].slice(1, -1); + return t11[r11] = t11[r11].slice(1), t11.join(""); + } + return t11[0]; + } + function n10(e21) { + return "(?:" + e21 + ")"; + } + function r10(e21) { + return void 0 === e21 ? "undefined" : null === e21 ? "null" : Object.prototype.toString.call(e21).split(" ").pop().split("]").shift().toLowerCase(); + } + function o10(e21) { + return e21.toUpperCase(); + } + function i10(e21) { + return null != e21 ? e21 instanceof Array ? e21 : "number" != typeof e21.length || e21.split || e21.setInterval || e21.call ? [e21] : Array.prototype.slice.call(e21) : []; + } + function a10(e21, t11) { + var n11 = e21; + if (t11) + for (var r11 in t11) + n11[r11] = t11[r11]; + return n11; + } + function s10(e21) { + var r11 = "[A-Za-z]", o11 = "[0-9]", i11 = t10(o11, "[A-Fa-f]"), a11 = n10(n10("%[EFef]" + i11 + "%" + i11 + i11 + "%" + i11 + i11) + "|" + n10("%[89A-Fa-f]" + i11 + "%" + i11 + i11) + "|" + n10("%" + i11 + i11)), s11 = "[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]", c11 = t10("[\\:\\/\\?\\#\\[\\]\\@]", s11), l11 = e21 ? "[\\uE000-\\uF8FF]" : "[]", u11 = t10(r11, o11, "[\\-\\.\\_\\~]", e21 ? "[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]" : "[]"); + n10(r11 + t10(r11, o11, "[\\+\\-\\.]") + "*"), n10(n10(a11 + "|" + t10(u11, s11, "[\\:]")) + "*"); + var f11 = n10(n10("25[0-5]") + "|" + n10("2[0-4]" + o11) + "|" + n10("1" + o11 + o11) + "|" + n10("0?[1-9]" + o11) + "|0?0?" + o11), d11 = n10(f11 + "\\." + f11 + "\\." + f11 + "\\." + f11), h11 = n10(i11 + "{1,4}"), v11 = n10(n10(h11 + "\\:" + h11) + "|" + d11), p11 = n10(n10(h11 + "\\:") + "{6}" + v11), m11 = n10("\\:\\:" + n10(h11 + "\\:") + "{5}" + v11), g11 = n10(n10(h11) + "?\\:\\:" + n10(h11 + "\\:") + "{4}" + v11), y11 = n10(n10(n10(h11 + "\\:") + "{0,1}" + h11) + "?\\:\\:" + n10(h11 + "\\:") + "{3}" + v11), b11 = n10(n10(n10(h11 + "\\:") + "{0,2}" + h11) + "?\\:\\:" + n10(h11 + "\\:") + "{2}" + v11), k11 = n10(n10(n10(h11 + "\\:") + "{0,3}" + h11) + "?\\:\\:" + h11 + "\\:" + v11), w11 = n10(n10(n10(h11 + "\\:") + "{0,4}" + h11) + "?\\:\\:" + v11), x11 = n10(n10(n10(h11 + "\\:") + "{0,5}" + h11) + "?\\:\\:" + h11), j11 = n10(n10(n10(h11 + "\\:") + "{0,6}" + h11) + "?\\:\\:"), S11 = n10([p11, m11, g11, y11, b11, k11, w11, x11, j11].join("|")), C11 = n10(n10(u11 + "|" + a11) + "+"); + n10("[vV]" + i11 + "+\\." + t10(u11, s11, "[\\:]") + "+"), n10(n10(a11 + "|" + t10(u11, s11)) + "*"); + var $11 = n10(a11 + "|" + t10(u11, s11, "[\\:\\@]")); + return n10(n10(a11 + "|" + t10(u11, s11, "[\\@]")) + "+"), n10(n10($11 + "|" + t10("[\\/\\?]", l11)) + "*"), { NOT_SCHEME: new RegExp(t10("[^]", r11, o11, "[\\+\\-\\.]"), "g"), NOT_USERINFO: new RegExp(t10("[^\\%\\:]", u11, s11), "g"), NOT_HOST: new RegExp(t10("[^\\%\\[\\]\\:]", u11, s11), "g"), NOT_PATH: new RegExp(t10("[^\\%\\/\\:\\@]", u11, s11), "g"), NOT_PATH_NOSCHEME: new RegExp(t10("[^\\%\\/\\@]", u11, s11), "g"), NOT_QUERY: new RegExp(t10("[^\\%]", u11, s11, "[\\:\\@\\/\\?]", l11), "g"), NOT_FRAGMENT: new RegExp(t10("[^\\%]", u11, s11, "[\\:\\@\\/\\?]"), "g"), ESCAPE: new RegExp(t10("[^]", u11, s11), "g"), UNRESERVED: new RegExp(u11, "g"), OTHER_CHARS: new RegExp(t10("[^\\%]", u11, c11), "g"), PCT_ENCODED: new RegExp(a11, "g"), IPV4ADDRESS: new RegExp("^(" + d11 + ")$"), IPV6ADDRESS: new RegExp("^\\[?(" + S11 + ")" + n10(n10("\\%25|\\%(?!" + i11 + "{2})") + "(" + C11 + ")") + "?\\]?$") }; + } + var c10 = s10(false), l10 = s10(true), u10 = /* @__PURE__ */ function() { + function e21(e23, t11) { + var n11 = [], r11 = true, o11 = false, i11 = void 0; + try { + for (var a11, s11 = e23[Symbol.iterator](); !(r11 = (a11 = s11.next()).done) && (n11.push(a11.value), !t11 || n11.length !== t11); r11 = true) + ; + } catch (e24) { + o11 = true, i11 = e24; + } finally { + try { + !r11 && s11.return && s11.return(); + } finally { + if (o11) + throw i11; + } + } + return n11; + } + return function(t11, n11) { + if (Array.isArray(t11)) + return t11; + if (Symbol.iterator in Object(t11)) + return e21(t11, n11); + throw new TypeError("Invalid attempt to destructure non-iterable instance"); + }; + }(), f10 = function(e21) { + if (Array.isArray(e21)) { + for (var t11 = 0, n11 = Array(e21.length); t11 < e21.length; t11++) + n11[t11] = e21[t11]; + return n11; + } + return Array.from(e21); + }, d10 = 2147483647, h10 = 36, v10 = 1, p10 = 26, m10 = 38, g10 = 700, y10 = 72, b10 = 128, k10 = "-", w10 = /^xn--/, x10 = /[^\0-\x7E]/, j10 = /[\x2E\u3002\uFF0E\uFF61]/g, S10 = { overflow: "Overflow: input needs wider integers to process", "not-basic": "Illegal input >= 0x80 (not a basic code point)", "invalid-input": "Invalid input" }, C10 = h10 - v10, $10 = Math.floor, _10 = String.fromCharCode; + function O10(e21) { + throw new RangeError(S10[e21]); + } + function M10(e21, t11) { + for (var n11 = [], r11 = e21.length; r11--; ) + n11[r11] = t11(e21[r11]); + return n11; + } + function E10(e21, t11) { + var n11 = e21.split("@"), r11 = ""; + return n11.length > 1 && (r11 = n11[0] + "@", e21 = n11[1]), r11 + M10((e21 = e21.replace(j10, ".")).split("."), t11).join("."); + } + function A10(e21) { + for (var t11 = [], n11 = 0, r11 = e21.length; n11 < r11; ) { + var o11 = e21.charCodeAt(n11++); + if (o11 >= 55296 && o11 <= 56319 && n11 < r11) { + var i11 = e21.charCodeAt(n11++); + 56320 == (64512 & i11) ? t11.push(((1023 & o11) << 10) + (1023 & i11) + 65536) : (t11.push(o11), n11--); + } else + t11.push(o11); + } + return t11; + } + var P10 = function(e21) { + return String.fromCodePoint.apply(String, f10(e21)); + }, T8 = function(e21) { + return e21 - 48 < 10 ? e21 - 22 : e21 - 65 < 26 ? e21 - 65 : e21 - 97 < 26 ? e21 - 97 : h10; + }, R8 = function(e21, t11) { + return e21 + 22 + 75 * (e21 < 26) - ((0 != t11) << 5); + }, N8 = function(e21, t11, n11) { + var r11 = 0; + for (e21 = n11 ? $10(e21 / g10) : e21 >> 1, e21 += $10(e21 / t11); e21 > C10 * p10 >> 1; r11 += h10) + e21 = $10(e21 / C10); + return $10(r11 + (C10 + 1) * e21 / (e21 + m10)); + }, I10 = function(e21) { + var t11 = [], n11 = e21.length, r11 = 0, o11 = b10, i11 = y10, a11 = e21.lastIndexOf(k10); + a11 < 0 && (a11 = 0); + for (var s11 = 0; s11 < a11; ++s11) + e21.charCodeAt(s11) >= 128 && O10("not-basic"), t11.push(e21.charCodeAt(s11)); + for (var c11 = a11 > 0 ? a11 + 1 : 0; c11 < n11; ) { + for (var l11 = r11, u11 = 1, f11 = h10; ; f11 += h10) { + c11 >= n11 && O10("invalid-input"); + var m11 = T8(e21.charCodeAt(c11++)); + (m11 >= h10 || m11 > $10((d10 - r11) / u11)) && O10("overflow"), r11 += m11 * u11; + var g11 = f11 <= i11 ? v10 : f11 >= i11 + p10 ? p10 : f11 - i11; + if (m11 < g11) + break; + var w11 = h10 - g11; + u11 > $10(d10 / w11) && O10("overflow"), u11 *= w11; + } + var x11 = t11.length + 1; + i11 = N8(r11 - l11, x11, 0 == l11), $10(r11 / x11) > d10 - o11 && O10("overflow"), o11 += $10(r11 / x11), r11 %= x11, t11.splice(r11++, 0, o11); + } + return String.fromCodePoint.apply(String, t11); + }, D10 = function(e21) { + var t11 = [], n11 = (e21 = A10(e21)).length, r11 = b10, o11 = 0, i11 = y10, a11 = true, s11 = false, c11 = void 0; + try { + for (var l11, u11 = e21[Symbol.iterator](); !(a11 = (l11 = u11.next()).done); a11 = true) { + var f11 = l11.value; + f11 < 128 && t11.push(_10(f11)); + } + } catch (e23) { + s11 = true, c11 = e23; + } finally { + try { + !a11 && u11.return && u11.return(); + } finally { + if (s11) + throw c11; + } + } + var m11 = t11.length, g11 = m11; + for (m11 && t11.push(k10); g11 < n11; ) { + var w11 = d10, x11 = true, j11 = false, S11 = void 0; + try { + for (var C11, M11 = e21[Symbol.iterator](); !(x11 = (C11 = M11.next()).done); x11 = true) { + var E11 = C11.value; + E11 >= r11 && E11 < w11 && (w11 = E11); + } + } catch (e23) { + j11 = true, S11 = e23; + } finally { + try { + !x11 && M11.return && M11.return(); + } finally { + if (j11) + throw S11; + } + } + var P11 = g11 + 1; + w11 - r11 > $10((d10 - o11) / P11) && O10("overflow"), o11 += (w11 - r11) * P11, r11 = w11; + var T10 = true, I11 = false, D11 = void 0; + try { + for (var q11, z11 = e21[Symbol.iterator](); !(T10 = (q11 = z11.next()).done); T10 = true) { + var B11 = q11.value; + if (B11 < r11 && ++o11 > d10 && O10("overflow"), B11 == r11) { + for (var L11 = o11, F11 = h10; ; F11 += h10) { + var V11 = F11 <= i11 ? v10 : F11 >= i11 + p10 ? p10 : F11 - i11; + if (L11 < V11) + break; + var H11 = L11 - V11, W11 = h10 - V11; + t11.push(_10(R8(V11 + H11 % W11, 0))), L11 = $10(H11 / W11); + } + t11.push(_10(R8(L11, 0))), i11 = N8(o11, P11, g11 == m11), o11 = 0, ++g11; + } + } + } catch (e23) { + I11 = true, D11 = e23; + } finally { + try { + !T10 && z11.return && z11.return(); + } finally { + if (I11) + throw D11; + } + } + ++o11, ++r11; + } + return t11.join(""); + }, q10 = function(e21) { + return E10(e21, function(e23) { + return w10.test(e23) ? I10(e23.slice(4).toLowerCase()) : e23; + }); + }, z10 = function(e21) { + return E10(e21, function(e23) { + return x10.test(e23) ? "xn--" + D10(e23) : e23; + }); + }, B10 = { version: "2.1.0", ucs2: { decode: A10, encode: P10 }, decode: I10, encode: D10, toASCII: z10, toUnicode: q10 }, L10 = {}; + function F10(e21) { + var t11 = e21.charCodeAt(0); + return t11 < 16 ? "%0" + t11.toString(16).toUpperCase() : t11 < 128 ? "%" + t11.toString(16).toUpperCase() : t11 < 2048 ? "%" + (t11 >> 6 | 192).toString(16).toUpperCase() + "%" + (63 & t11 | 128).toString(16).toUpperCase() : "%" + (t11 >> 12 | 224).toString(16).toUpperCase() + "%" + (t11 >> 6 & 63 | 128).toString(16).toUpperCase() + "%" + (63 & t11 | 128).toString(16).toUpperCase(); + } + function V10(e21) { + for (var t11 = "", n11 = 0, r11 = e21.length; n11 < r11; ) { + var o11 = parseInt(e21.substr(n11 + 1, 2), 16); + if (o11 < 128) + t11 += String.fromCharCode(o11), n11 += 3; + else if (o11 >= 194 && o11 < 224) { + if (r11 - n11 >= 6) { + var i11 = parseInt(e21.substr(n11 + 4, 2), 16); + t11 += String.fromCharCode((31 & o11) << 6 | 63 & i11); + } else + t11 += e21.substr(n11, 6); + n11 += 6; + } else if (o11 >= 224) { + if (r11 - n11 >= 9) { + var a11 = parseInt(e21.substr(n11 + 4, 2), 16), s11 = parseInt(e21.substr(n11 + 7, 2), 16); + t11 += String.fromCharCode((15 & o11) << 12 | (63 & a11) << 6 | 63 & s11); + } else + t11 += e21.substr(n11, 9); + n11 += 9; + } else + t11 += e21.substr(n11, 3), n11 += 3; + } + return t11; + } + function H10(e21, t11) { + function n11(e23) { + var n12 = V10(e23); + return n12.match(t11.UNRESERVED) ? n12 : e23; + } + return e21.scheme && (e21.scheme = String(e21.scheme).replace(t11.PCT_ENCODED, n11).toLowerCase().replace(t11.NOT_SCHEME, "")), void 0 !== e21.userinfo && (e21.userinfo = String(e21.userinfo).replace(t11.PCT_ENCODED, n11).replace(t11.NOT_USERINFO, F10).replace(t11.PCT_ENCODED, o10)), void 0 !== e21.host && (e21.host = String(e21.host).replace(t11.PCT_ENCODED, n11).toLowerCase().replace(t11.NOT_HOST, F10).replace(t11.PCT_ENCODED, o10)), void 0 !== e21.path && (e21.path = String(e21.path).replace(t11.PCT_ENCODED, n11).replace(e21.scheme ? t11.NOT_PATH : t11.NOT_PATH_NOSCHEME, F10).replace(t11.PCT_ENCODED, o10)), void 0 !== e21.query && (e21.query = String(e21.query).replace(t11.PCT_ENCODED, n11).replace(t11.NOT_QUERY, F10).replace(t11.PCT_ENCODED, o10)), void 0 !== e21.fragment && (e21.fragment = String(e21.fragment).replace(t11.PCT_ENCODED, n11).replace(t11.NOT_FRAGMENT, F10).replace(t11.PCT_ENCODED, o10)), e21; + } + function W10(e21) { + return e21.replace(/^0*(.*)/, "$1") || "0"; + } + function U10(e21, t11) { + var n11 = e21.match(t11.IPV4ADDRESS) || [], r11 = u10(n11, 2)[1]; + return r11 ? r11.split(".").map(W10).join(".") : e21; + } + function J10(e21, t11) { + var n11 = e21.match(t11.IPV6ADDRESS) || [], r11 = u10(n11, 3), o11 = r11[1], i11 = r11[2]; + if (o11) { + for (var a11 = o11.toLowerCase().split("::").reverse(), s11 = u10(a11, 2), c11 = s11[0], l11 = s11[1], f11 = l11 ? l11.split(":").map(W10) : [], d11 = c11.split(":").map(W10), h11 = t11.IPV4ADDRESS.test(d11[d11.length - 1]), v11 = h11 ? 7 : 8, p11 = d11.length - v11, m11 = Array(v11), g11 = 0; g11 < v11; ++g11) + m11[g11] = f11[g11] || d11[p11 + g11] || ""; + h11 && (m11[v11 - 1] = U10(m11[v11 - 1], t11)); + var y11 = m11.reduce(function(e23, t12, n12) { + if (!t12 || "0" === t12) { + var r12 = e23[e23.length - 1]; + r12 && r12.index + r12.length === n12 ? r12.length++ : e23.push({ index: n12, length: 1 }); + } + return e23; + }, []).sort(function(e23, t12) { + return t12.length - e23.length; + })[0], b11 = void 0; + if (y11 && y11.length > 1) { + var k11 = m11.slice(0, y11.index), w11 = m11.slice(y11.index + y11.length); + b11 = k11.join(":") + "::" + w11.join(":"); + } else + b11 = m11.join(":"); + return i11 && (b11 += "%" + i11), b11; + } + return e21; + } + var K10 = /^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i, G10 = void 0 === "".match(/(){0}/)[1]; + function Q10(e21) { + var t11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, n11 = {}, r11 = false !== t11.iri ? l10 : c10; + "suffix" === t11.reference && (e21 = (t11.scheme ? t11.scheme + ":" : "") + "//" + e21); + var o11 = e21.match(K10); + if (o11) { + G10 ? (n11.scheme = o11[1], n11.userinfo = o11[3], n11.host = o11[4], n11.port = parseInt(o11[5], 10), n11.path = o11[6] || "", n11.query = o11[7], n11.fragment = o11[8], isNaN(n11.port) && (n11.port = o11[5])) : (n11.scheme = o11[1] || void 0, n11.userinfo = -1 !== e21.indexOf("@") ? o11[3] : void 0, n11.host = -1 !== e21.indexOf("//") ? o11[4] : void 0, n11.port = parseInt(o11[5], 10), n11.path = o11[6] || "", n11.query = -1 !== e21.indexOf("?") ? o11[7] : void 0, n11.fragment = -1 !== e21.indexOf("#") ? o11[8] : void 0, isNaN(n11.port) && (n11.port = e21.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/) ? o11[4] : void 0)), n11.host && (n11.host = J10(U10(n11.host, r11), r11)), void 0 !== n11.scheme || void 0 !== n11.userinfo || void 0 !== n11.host || void 0 !== n11.port || n11.path || void 0 !== n11.query ? void 0 === n11.scheme ? n11.reference = "relative" : void 0 === n11.fragment ? n11.reference = "absolute" : n11.reference = "uri" : n11.reference = "same-document", t11.reference && "suffix" !== t11.reference && t11.reference !== n11.reference && (n11.error = n11.error || "URI is not a " + t11.reference + " reference."); + var i11 = L10[(t11.scheme || n11.scheme || "").toLowerCase()]; + if (t11.unicodeSupport || i11 && i11.unicodeSupport) + H10(n11, r11); + else { + if (n11.host && (t11.domainHost || i11 && i11.domainHost)) + try { + n11.host = B10.toASCII(n11.host.replace(r11.PCT_ENCODED, V10).toLowerCase()); + } catch (e23) { + n11.error = n11.error || "Host's domain name can not be converted to ASCII via punycode: " + e23; + } + H10(n11, c10); + } + i11 && i11.parse && i11.parse(n11, t11); + } else + n11.error = n11.error || "URI can not be parsed."; + return n11; + } + function Y10(e21, t11) { + var n11 = false !== t11.iri ? l10 : c10, r11 = []; + return void 0 !== e21.userinfo && (r11.push(e21.userinfo), r11.push("@")), void 0 !== e21.host && r11.push(J10(U10(String(e21.host), n11), n11).replace(n11.IPV6ADDRESS, function(e23, t12, n12) { + return "[" + t12 + (n12 ? "%25" + n12 : "") + "]"; + })), "number" != typeof e21.port && "string" != typeof e21.port || (r11.push(":"), r11.push(String(e21.port))), r11.length ? r11.join("") : void 0; + } + var X10 = /^\.\.?\//, Z10 = /^\/\.(\/|$)/, ee2 = /^\/\.\.(\/|$)/, te2 = /^\/?(?:.|\n)*?(?=\/|$)/; + function ne2(e21) { + for (var t11 = []; e21.length; ) + if (e21.match(X10)) + e21 = e21.replace(X10, ""); + else if (e21.match(Z10)) + e21 = e21.replace(Z10, "/"); + else if (e21.match(ee2)) + e21 = e21.replace(ee2, "/"), t11.pop(); + else if ("." === e21 || ".." === e21) + e21 = ""; + else { + var n11 = e21.match(te2); + if (!n11) + throw new Error("Unexpected dot segment condition"); + var r11 = n11[0]; + e21 = e21.slice(r11.length), t11.push(r11); + } + return t11.join(""); + } + function re2(e21) { + var t11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, n11 = t11.iri ? l10 : c10, r11 = [], o11 = L10[(t11.scheme || e21.scheme || "").toLowerCase()]; + if (o11 && o11.serialize && o11.serialize(e21, t11), e21.host) { + if (n11.IPV6ADDRESS.test(e21.host)) + ; + else if (t11.domainHost || o11 && o11.domainHost) + try { + e21.host = t11.iri ? B10.toUnicode(e21.host) : B10.toASCII(e21.host.replace(n11.PCT_ENCODED, V10).toLowerCase()); + } catch (n12) { + e21.error = e21.error || "Host's domain name can not be converted to " + (t11.iri ? "Unicode" : "ASCII") + " via punycode: " + n12; + } + } + H10(e21, n11), "suffix" !== t11.reference && e21.scheme && (r11.push(e21.scheme), r11.push(":")); + var i11 = Y10(e21, t11); + if (void 0 !== i11 && ("suffix" !== t11.reference && r11.push("//"), r11.push(i11), e21.path && "/" !== e21.path.charAt(0) && r11.push("/")), void 0 !== e21.path) { + var a11 = e21.path; + t11.absolutePath || o11 && o11.absolutePath || (a11 = ne2(a11)), void 0 === i11 && (a11 = a11.replace(/^\/\//, "/%2F")), r11.push(a11); + } + return void 0 !== e21.query && (r11.push("?"), r11.push(e21.query)), void 0 !== e21.fragment && (r11.push("#"), r11.push(e21.fragment)), r11.join(""); + } + function oe2(e21, t11) { + var n11 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, r11 = {}; + return arguments[3] || (e21 = Q10(re2(e21, n11), n11), t11 = Q10(re2(t11, n11), n11)), !(n11 = n11 || {}).tolerant && t11.scheme ? (r11.scheme = t11.scheme, r11.userinfo = t11.userinfo, r11.host = t11.host, r11.port = t11.port, r11.path = ne2(t11.path || ""), r11.query = t11.query) : (void 0 !== t11.userinfo || void 0 !== t11.host || void 0 !== t11.port ? (r11.userinfo = t11.userinfo, r11.host = t11.host, r11.port = t11.port, r11.path = ne2(t11.path || ""), r11.query = t11.query) : (t11.path ? ("/" === t11.path.charAt(0) ? r11.path = ne2(t11.path) : (void 0 === e21.userinfo && void 0 === e21.host && void 0 === e21.port || e21.path ? e21.path ? r11.path = e21.path.slice(0, e21.path.lastIndexOf("/") + 1) + t11.path : r11.path = t11.path : r11.path = "/" + t11.path, r11.path = ne2(r11.path)), r11.query = t11.query) : (r11.path = e21.path, void 0 !== t11.query ? r11.query = t11.query : r11.query = e21.query), r11.userinfo = e21.userinfo, r11.host = e21.host, r11.port = e21.port), r11.scheme = e21.scheme), r11.fragment = t11.fragment, r11; + } + function ie2(e21, t11, n11) { + var r11 = a10({ scheme: "null" }, n11); + return re2(oe2(Q10(e21, r11), Q10(t11, r11), r11, true), r11); + } + function ae2(e21, t11) { + return "string" == typeof e21 ? e21 = re2(Q10(e21, t11), t11) : "object" === r10(e21) && (e21 = Q10(re2(e21, t11), t11)), e21; + } + function se2(e21, t11, n11) { + return "string" == typeof e21 ? e21 = re2(Q10(e21, n11), n11) : "object" === r10(e21) && (e21 = re2(e21, n11)), "string" == typeof t11 ? t11 = re2(Q10(t11, n11), n11) : "object" === r10(t11) && (t11 = re2(t11, n11)), e21 === t11; + } + function ce2(e21, t11) { + return e21 && e21.toString().replace(t11 && t11.iri ? l10.ESCAPE : c10.ESCAPE, F10); + } + function le2(e21, t11) { + return e21 && e21.toString().replace(t11 && t11.iri ? l10.PCT_ENCODED : c10.PCT_ENCODED, V10); + } + var ue2 = { scheme: "http", domainHost: true, parse: function(e21, t11) { + return e21.host || (e21.error = e21.error || "HTTP URIs must have a host."), e21; + }, serialize: function(e21, t11) { + var n11 = "https" === String(e21.scheme).toLowerCase(); + return e21.port !== (n11 ? 443 : 80) && "" !== e21.port || (e21.port = void 0), e21.path || (e21.path = "/"), e21; + } }, fe2 = { scheme: "https", domainHost: ue2.domainHost, parse: ue2.parse, serialize: ue2.serialize }; + function de2(e21) { + return "boolean" == typeof e21.secure ? e21.secure : "wss" === String(e21.scheme).toLowerCase(); + } + var he2 = { scheme: "ws", domainHost: true, parse: function(e21, t11) { + var n11 = e21; + return n11.secure = de2(n11), n11.resourceName = (n11.path || "/") + (n11.query ? "?" + n11.query : ""), n11.path = void 0, n11.query = void 0, n11; + }, serialize: function(e21, t11) { + if (e21.port !== (de2(e21) ? 443 : 80) && "" !== e21.port || (e21.port = void 0), "boolean" == typeof e21.secure && (e21.scheme = e21.secure ? "wss" : "ws", e21.secure = void 0), e21.resourceName) { + var n11 = e21.resourceName.split("?"), r11 = u10(n11, 2), o11 = r11[0], i11 = r11[1]; + e21.path = o11 && "/" !== o11 ? o11 : void 0, e21.query = i11, e21.resourceName = void 0; + } + return e21.fragment = void 0, e21; + } }, ve2 = { scheme: "wss", domainHost: he2.domainHost, parse: he2.parse, serialize: he2.serialize }, pe2 = {}, me2 = "[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]", ge2 = "[0-9A-Fa-f]", ye2 = n10(n10("%[EFef]" + ge2 + "%" + ge2 + ge2 + "%" + ge2 + ge2) + "|" + n10("%[89A-Fa-f]" + ge2 + "%" + ge2 + ge2) + "|" + n10("%" + ge2 + ge2)), be2 = "[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]", ke2 = t10("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]", '[\\"\\\\]'), we2 = "[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]", xe2 = new RegExp(me2, "g"), je2 = new RegExp(ye2, "g"), Se2 = new RegExp(t10("[^]", be2, "[\\.]", '[\\"]', ke2), "g"), Ce2 = new RegExp(t10("[^]", me2, we2), "g"), $e2 = Ce2; + function _e2(e21) { + var t11 = V10(e21); + return t11.match(xe2) ? t11 : e21; + } + var Oe2 = { scheme: "mailto", parse: function(e21, t11) { + var n11 = e21, r11 = n11.to = n11.path ? n11.path.split(",") : []; + if (n11.path = void 0, n11.query) { + for (var o11 = false, i11 = {}, a11 = n11.query.split("&"), s11 = 0, c11 = a11.length; s11 < c11; ++s11) { + var l11 = a11[s11].split("="); + switch (l11[0]) { + case "to": + for (var u11 = l11[1].split(","), f11 = 0, d11 = u11.length; f11 < d11; ++f11) + r11.push(u11[f11]); + break; + case "subject": + n11.subject = le2(l11[1], t11); + break; + case "body": + n11.body = le2(l11[1], t11); + break; + default: + o11 = true, i11[le2(l11[0], t11)] = le2(l11[1], t11); + } + } + o11 && (n11.headers = i11); + } + n11.query = void 0; + for (var h11 = 0, v11 = r11.length; h11 < v11; ++h11) { + var p11 = r11[h11].split("@"); + if (p11[0] = le2(p11[0]), t11.unicodeSupport) + p11[1] = le2(p11[1], t11).toLowerCase(); + else + try { + p11[1] = B10.toASCII(le2(p11[1], t11).toLowerCase()); + } catch (e23) { + n11.error = n11.error || "Email address's domain name can not be converted to ASCII via punycode: " + e23; + } + r11[h11] = p11.join("@"); + } + return n11; + }, serialize: function(e21, t11) { + var n11 = e21, r11 = i10(e21.to); + if (r11) { + for (var a11 = 0, s11 = r11.length; a11 < s11; ++a11) { + var c11 = String(r11[a11]), l11 = c11.lastIndexOf("@"), u11 = c11.slice(0, l11).replace(je2, _e2).replace(je2, o10).replace(Se2, F10), f11 = c11.slice(l11 + 1); + try { + f11 = t11.iri ? B10.toUnicode(f11) : B10.toASCII(le2(f11, t11).toLowerCase()); + } catch (e23) { + n11.error = n11.error || "Email address's domain name can not be converted to " + (t11.iri ? "Unicode" : "ASCII") + " via punycode: " + e23; + } + r11[a11] = u11 + "@" + f11; + } + n11.path = r11.join(","); + } + var d11 = e21.headers = e21.headers || {}; + e21.subject && (d11.subject = e21.subject), e21.body && (d11.body = e21.body); + var h11 = []; + for (var v11 in d11) + d11[v11] !== pe2[v11] && h11.push(v11.replace(je2, _e2).replace(je2, o10).replace(Ce2, F10) + "=" + d11[v11].replace(je2, _e2).replace(je2, o10).replace($e2, F10)); + return h11.length && (n11.query = h11.join("&")), n11; + } }, Me2 = /^([^\:]+)\:(.*)/, Ee2 = { scheme: "urn", parse: function(e21, t11) { + var n11 = e21.path && e21.path.match(Me2), r11 = e21; + if (n11) { + var o11 = t11.scheme || r11.scheme || "urn", i11 = n11[1].toLowerCase(), a11 = n11[2], s11 = o11 + ":" + (t11.nid || i11), c11 = L10[s11]; + r11.nid = i11, r11.nss = a11, r11.path = void 0, c11 && (r11 = c11.parse(r11, t11)); + } else + r11.error = r11.error || "URN can not be parsed."; + return r11; + }, serialize: function(e21, t11) { + var n11 = t11.scheme || e21.scheme || "urn", r11 = e21.nid, o11 = n11 + ":" + (t11.nid || r11), i11 = L10[o11]; + i11 && (e21 = i11.serialize(e21, t11)); + var a11 = e21, s11 = e21.nss; + return a11.path = (r11 || t11.nid) + ":" + s11, a11; + } }, Ae2 = /^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/, Pe2 = { scheme: "urn:uuid", parse: function(e21, t11) { + var n11 = e21; + return n11.uuid = n11.nss, n11.nss = void 0, t11.tolerant || n11.uuid && n11.uuid.match(Ae2) || (n11.error = n11.error || "UUID is not valid."), n11; + }, serialize: function(e21, t11) { + var n11 = e21; + return n11.nss = (e21.uuid || "").toLowerCase(), n11; + } }; + L10[ue2.scheme] = ue2, L10[fe2.scheme] = fe2, L10[he2.scheme] = he2, L10[ve2.scheme] = ve2, L10[Oe2.scheme] = Oe2, L10[Ee2.scheme] = Ee2, L10[Pe2.scheme] = Pe2, e20.SCHEMES = L10, e20.pctEncChar = F10, e20.pctDecChars = V10, e20.parse = Q10, e20.removeDotSegments = ne2, e20.serialize = re2, e20.resolveComponents = oe2, e20.resolve = ie2, e20.normalize = ae2, e20.equal = se2, e20.escapeComponent = ce2, e20.unescapeComponent = le2, Object.defineProperty(e20, "__esModule", { value: true }); + }(c6.exports); + var l6 = c6.exports; + Object.defineProperty(s6, "__esModule", { value: true }); + var u6 = l6; + u6.code = 'require("ajv/dist/runtime/uri").default', s6.default = u6, function(e20) { + Object.defineProperty(e20, "__esModule", { value: true }), e20.CodeGen = e20.Name = e20.nil = e20.stringify = e20.str = e20._ = e20.KeywordCxt = void 0; + var t10 = q5(); + Object.defineProperty(e20, "KeywordCxt", { enumerable: true, get: function() { + return t10.KeywordCxt; + } }); + var n10 = G8(); + Object.defineProperty(e20, "_", { enumerable: true, get: function() { + return n10._; + } }), Object.defineProperty(e20, "str", { enumerable: true, get: function() { + return n10.str; + } }), Object.defineProperty(e20, "stringify", { enumerable: true, get: function() { + return n10.stringify; + } }), Object.defineProperty(e20, "nil", { enumerable: true, get: function() { + return n10.nil; + } }), Object.defineProperty(e20, "Name", { enumerable: true, get: function() { + return n10.Name; + } }), Object.defineProperty(e20, "CodeGen", { enumerable: true, get: function() { + return n10.CodeGen; + } }); + var r10 = L5(), o10 = H5(), i10 = o5, a10 = W5, s10 = G8(), c10 = b5, l10 = r5, u10 = Q8, f10 = a6, d10 = s6, h10 = function(e21, t11) { + return new RegExp(e21, t11); + }; + h10.code = "new RegExp"; + var v10 = ["removeAdditional", "useDefaults", "coerceTypes"], p10 = /* @__PURE__ */ new Set(["validate", "serialize", "parse", "wrapper", "root", "schema", "keyword", "pattern", "formats", "validate$data", "func", "obj", "Error"]), m10 = { errorDataPath: "", format: "`validateFormats: false` can be used instead.", nullable: '"nullable" keyword is supported by default.', jsonPointers: "Deprecated jsPropertySyntax can be used instead.", extendRefs: "Deprecated ignoreKeywordsWithRef can be used instead.", missingRefs: "Pass empty schema with $id that should be ignored to ajv.addSchema.", processCode: "Use option `code: {process: (code, schemaEnv: object) => string}`", sourceCode: "Use option `code: {source: true}`", strictDefaults: "It is default now, see option `strict`.", strictKeywords: "It is default now, see option `strict`.", uniqueItems: '"uniqueItems" keyword is always validated.', unknownFormats: "Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).", cache: "Map is used as cache, schema object as key.", serialize: "Map is used as cache, schema object as key.", ajvErrors: "It is default now." }, g10 = { ignoreKeywordsWithRef: "", jsPropertySyntax: "", unicode: '"minLength"/"maxLength" account for unicode characters by default.' }; + var y10 = function() { + function e21() { + var t11 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + No(this, e21), this.schemas = {}, this.refs = {}, this.formats = {}, this._compilations = /* @__PURE__ */ new Set(), this._loading = {}, this._cache = /* @__PURE__ */ new Map(), t11 = this.opts = Ro(Ro({}, t11), function(e23) { + var t12, n12, r12, o12, i11, a12, s11, c11, l11, u11, f11, v11, p11, m11, g11, y11, b11, k11, w11, x11, j11, S11, C11, $11, _11, O11 = e23.strict, M11 = null === (t12 = e23.code) || void 0 === t12 ? void 0 : t12.optimize, E11 = true === M11 || void 0 === M11 ? 1 : M11 || 0, A11 = null !== (r12 = null === (n12 = e23.code) || void 0 === n12 ? void 0 : n12.regExp) && void 0 !== r12 ? r12 : h10, P11 = null !== (o12 = e23.uriResolver) && void 0 !== o12 ? o12 : d10.default; + return { strictSchema: null === (a12 = null !== (i11 = e23.strictSchema) && void 0 !== i11 ? i11 : O11) || void 0 === a12 || a12, strictNumbers: null === (c11 = null !== (s11 = e23.strictNumbers) && void 0 !== s11 ? s11 : O11) || void 0 === c11 || c11, strictTypes: null !== (u11 = null !== (l11 = e23.strictTypes) && void 0 !== l11 ? l11 : O11) && void 0 !== u11 ? u11 : "log", strictTuples: null !== (v11 = null !== (f11 = e23.strictTuples) && void 0 !== f11 ? f11 : O11) && void 0 !== v11 ? v11 : "log", strictRequired: null !== (m11 = null !== (p11 = e23.strictRequired) && void 0 !== p11 ? p11 : O11) && void 0 !== m11 && m11, code: e23.code ? Ro(Ro({}, e23.code), {}, { optimize: E11, regExp: A11 }) : { optimize: E11, regExp: A11 }, loopRequired: null !== (g11 = e23.loopRequired) && void 0 !== g11 ? g11 : 200, loopEnum: null !== (y11 = e23.loopEnum) && void 0 !== y11 ? y11 : 200, meta: null === (b11 = e23.meta) || void 0 === b11 || b11, messages: null === (k11 = e23.messages) || void 0 === k11 || k11, inlineRefs: null === (w11 = e23.inlineRefs) || void 0 === w11 || w11, schemaId: null !== (x11 = e23.schemaId) && void 0 !== x11 ? x11 : "$id", addUsedSchema: null === (j11 = e23.addUsedSchema) || void 0 === j11 || j11, validateSchema: null === (S11 = e23.validateSchema) || void 0 === S11 || S11, validateFormats: null === (C11 = e23.validateFormats) || void 0 === C11 || C11, unicodeRegExp: null === ($11 = e23.unicodeRegExp) || void 0 === $11 || $11, int32range: null === (_11 = e23.int32range) || void 0 === _11 || _11, uriResolver: P11 }; + }(t11)); + var n11 = this.opts.code, r11 = n11.es5, o11 = n11.lines; + this.scope = new s10.ValueScope({ scope: {}, prefixes: p10, es5: r11, lines: o11 }), this.logger = function(e23) { + if (false === e23) + return C10; + if (void 0 === e23) + return console; + if (e23.log && e23.warn && e23.error) + return e23; + throw new Error("logger must implement log, warn and error methods"); + }(t11.logger); + var a11 = t11.validateFormats; + t11.validateFormats = false, this.RULES = (0, i10.getRules)(), b10.call(this, m10, t11, "NOT SUPPORTED"), b10.call(this, g10, t11, "DEPRECATED", "warn"), this._metaOpts = S10.call(this), t11.formats && x10.call(this), this._addVocabularies(), this._addDefaultMetaSchema(), t11.keywords && j10.call(this, t11.keywords), "object" == Ho(t11.meta) && this.addMetaSchema(t11.meta), w10.call(this), t11.validateFormats = a11; + } + return Do(e21, [{ key: "_addVocabularies", value: function() { + this.addKeyword("$async"); + } }, { key: "_addDefaultMetaSchema", value: function() { + var e23 = this.opts, t11 = e23.$data, n11 = e23.meta, r11 = e23.schemaId, o11 = f10; + "id" === r11 && ((o11 = Ro({}, f10)).id = o11.$id, delete o11.$id), n11 && t11 && this.addMetaSchema(o11, o11[r11], false); + } }, { key: "defaultMeta", value: function() { + var e23 = this.opts, t11 = e23.meta, n11 = e23.schemaId; + return this.opts.defaultMeta = "object" == Ho(t11) ? t11[n11] || t11 : void 0; + } }, { key: "validate", value: function(e23, t11) { + var n11; + if ("string" == typeof e23) { + if (!(n11 = this.getSchema(e23))) + throw new Error('no schema with key or ref "'.concat(e23, '"')); + } else + n11 = this.compile(e23); + var r11 = n11(t11); + return "$async" in n11 || (this.errors = n11.errors), r11; + } }, { key: "compile", value: function(e23, t11) { + var n11 = this._addSchema(e23, t11); + return n11.validate || this._compileSchemaEnv(n11); + } }, { key: "compileAsync", value: function(e23, t11) { + if ("function" != typeof this.opts.loadSchema) + throw new Error("options.loadSchema should be a function"); + var n11 = this.opts.loadSchema; + return r11.call(this, e23, t11); + function r11(e24, t12) { + return i11.apply(this, arguments); + } + function i11() { + return (i11 = xo(ko().mark(function e24(t12, n12) { + var r12; + return ko().wrap(function(e25) { + for (; ; ) + switch (e25.prev = e25.next) { + case 0: + return e25.next = 2, a11.call(this, t12.$schema); + case 2: + return r12 = this._addSchema(t12, n12), e25.abrupt("return", r12.validate || c11.call(this, r12)); + case 4: + case "end": + return e25.stop(); + } + }, e24, this); + }))).apply(this, arguments); + } + function a11(e24) { + return s11.apply(this, arguments); + } + function s11() { + return (s11 = xo(ko().mark(function e24(t12) { + return ko().wrap(function(e25) { + for (; ; ) + switch (e25.prev = e25.next) { + case 0: + if (!t12 || this.getSchema(t12)) { + e25.next = 3; + break; + } + return e25.next = 3, r11.call(this, { $ref: t12 }, true); + case 3: + case "end": + return e25.stop(); + } + }, e24, this); + }))).apply(this, arguments); + } + function c11(e24) { + return l11.apply(this, arguments); + } + function l11() { + return (l11 = xo(ko().mark(function e24(t12) { + return ko().wrap(function(e25) { + for (; ; ) + switch (e25.prev = e25.next) { + case 0: + return e25.prev = 0, e25.abrupt("return", this._compileSchemaEnv(t12)); + case 4: + if (e25.prev = 4, e25.t0 = e25.catch(0), e25.t0 instanceof o10.default) { + e25.next = 8; + break; + } + throw e25.t0; + case 8: + return u11.call(this, e25.t0), e25.next = 11, f11.call(this, e25.t0.missingSchema); + case 11: + return e25.abrupt("return", c11.call(this, t12)); + case 12: + case "end": + return e25.stop(); + } + }, e24, this, [[0, 4]]); + }))).apply(this, arguments); + } + function u11(e24) { + var t12 = e24.missingSchema, n12 = e24.missingRef; + if (this.refs[t12]) + throw new Error("AnySchema ".concat(t12, " is loaded but ").concat(n12, " cannot be resolved")); + } + function f11(e24) { + return d11.apply(this, arguments); + } + function d11() { + return d11 = xo(ko().mark(function e24(n12) { + var r12; + return ko().wrap(function(e25) { + for (; ; ) + switch (e25.prev = e25.next) { + case 0: + return e25.next = 2, h11.call(this, n12); + case 2: + if (r12 = e25.sent, this.refs[n12]) { + e25.next = 6; + break; + } + return e25.next = 6, a11.call(this, r12.$schema); + case 6: + this.refs[n12] || this.addSchema(r12, n12, t11); + case 7: + case "end": + return e25.stop(); + } + }, e24, this); + })), d11.apply(this, arguments); + } + function h11(e24) { + return v11.apply(this, arguments); + } + function v11() { + return v11 = xo(ko().mark(function e24(t12) { + var r12; + return ko().wrap(function(e25) { + for (; ; ) + switch (e25.prev = e25.next) { + case 0: + if (!(r12 = this._loading[t12])) { + e25.next = 3; + break; + } + return e25.abrupt("return", r12); + case 3: + return e25.prev = 3, e25.next = 6, this._loading[t12] = n11(t12); + case 6: + return e25.abrupt("return", e25.sent); + case 7: + return e25.prev = 7, delete this._loading[t12], e25.finish(7); + case 10: + case "end": + return e25.stop(); + } + }, e24, this, [[3, , 7, 10]]); + })), v11.apply(this, arguments); + } + } }, { key: "addSchema", value: function(e23, t11, n11) { + var r11, o11 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : this.opts.validateSchema; + if (Array.isArray(e23)) { + var i11, a11 = bo(e23); + try { + for (a11.s(); !(i11 = a11.n()).done; ) { + var s11 = i11.value; + this.addSchema(s11, void 0, n11, o11); + } + } catch (e24) { + a11.e(e24); + } finally { + a11.f(); + } + return this; + } + if ("object" === Ho(e23)) { + var l11 = this.opts.schemaId; + if (void 0 !== (r11 = e23[l11]) && "string" != typeof r11) + throw new Error("schema ".concat(l11, " must be string")); + } + return t11 = (0, c10.normalizeId)(t11 || r11), this._checkUnique(t11), this.schemas[t11] = this._addSchema(e23, n11, t11, o11, true), this; + } }, { key: "addMetaSchema", value: function(e23, t11) { + var n11 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : this.opts.validateSchema; + return this.addSchema(e23, t11, true, n11), this; + } }, { key: "validateSchema", value: function(e23, t11) { + if ("boolean" == typeof e23) + return true; + var n11; + if (void 0 !== (n11 = e23.$schema) && "string" != typeof n11) + throw new Error("$schema must be a string"); + if (!(n11 = n11 || this.opts.defaultMeta || this.defaultMeta())) + return this.logger.warn("meta-schema not available"), this.errors = null, true; + var r11 = this.validate(n11, e23); + if (!r11 && t11) { + var o11 = "schema is invalid: " + this.errorsText(); + if ("log" !== this.opts.validateSchema) + throw new Error(o11); + this.logger.error(o11); + } + return r11; + } }, { key: "getSchema", value: function(e23) { + for (var t11; "string" == typeof (t11 = k10.call(this, e23)); ) + e23 = t11; + if (void 0 === t11) { + var n11 = this.opts.schemaId, r11 = new a10.SchemaEnv({ schema: {}, schemaId: n11 }); + if (!(t11 = a10.resolveSchema.call(this, r11, e23))) + return; + this.refs[e23] = t11; + } + return t11.validate || this._compileSchemaEnv(t11); + } }, { key: "removeSchema", value: function(e23) { + if (e23 instanceof RegExp) + return this._removeAllSchemas(this.schemas, e23), this._removeAllSchemas(this.refs, e23), this; + switch (Ho(e23)) { + case "undefined": + return this._removeAllSchemas(this.schemas), this._removeAllSchemas(this.refs), this._cache.clear(), this; + case "string": + var t11 = k10.call(this, e23); + return "object" == Ho(t11) && this._cache.delete(t11.schema), delete this.schemas[e23], delete this.refs[e23], this; + case "object": + var n11 = e23; + this._cache.delete(n11); + var r11 = e23[this.opts.schemaId]; + return r11 && (r11 = (0, c10.normalizeId)(r11), delete this.schemas[r11], delete this.refs[r11]), this; + default: + throw new Error("ajv.removeSchema: invalid parameter"); + } + } }, { key: "addVocabulary", value: function(e23) { + var t11, n11 = bo(e23); + try { + for (n11.s(); !(t11 = n11.n()).done; ) { + var r11 = t11.value; + this.addKeyword(r11); + } + } catch (e24) { + n11.e(e24); + } finally { + n11.f(); + } + return this; + } }, { key: "addKeyword", value: function(e23, t11) { + var n11, r11 = this; + if ("string" == typeof e23) + n11 = e23, "object" == Ho(t11) && (this.logger.warn("these parameters are deprecated, see docs for addKeyword"), t11.keyword = n11); + else { + if ("object" != Ho(e23) || void 0 !== t11) + throw new Error("invalid addKeywords parameters"); + if (n11 = (t11 = e23).keyword, Array.isArray(n11) && !n11.length) + throw new Error("addKeywords: keyword must be string or non-empty array"); + } + if (_10.call(this, n11, t11), !t11) + return (0, u10.eachItem)(n11, function(e24) { + return O10.call(r11, e24); + }), this; + E10.call(this, t11); + var o11 = Ro(Ro({}, t11), {}, { type: (0, l10.getJSONTypes)(t11.type), schemaType: (0, l10.getJSONTypes)(t11.schemaType) }); + return (0, u10.eachItem)(n11, 0 === o11.type.length ? function(e24) { + return O10.call(r11, e24, o11); + } : function(e24) { + return o11.type.forEach(function(t12) { + return O10.call(r11, e24, o11, t12); + }); + }), this; + } }, { key: "getKeyword", value: function(e23) { + var t11 = this.RULES.all[e23]; + return "object" == Ho(t11) ? t11.definition : !!t11; + } }, { key: "removeKeyword", value: function(e23) { + var t11 = this.RULES; + delete t11.keywords[e23], delete t11.all[e23]; + var n11, r11 = bo(t11.rules); + try { + for (r11.s(); !(n11 = r11.n()).done; ) { + var o11 = n11.value, i11 = o11.rules.findIndex(function(t12) { + return t12.keyword === e23; + }); + i11 >= 0 && o11.rules.splice(i11, 1); + } + } catch (e24) { + r11.e(e24); + } finally { + r11.f(); + } + return this; + } }, { key: "addFormat", value: function(e23, t11) { + return "string" == typeof t11 && (t11 = new RegExp(t11)), this.formats[e23] = t11, this; + } }, { key: "errorsText", value: function() { + var e23 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.errors, t11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, n11 = t11.separator, r11 = void 0 === n11 ? ", " : n11, o11 = t11.dataVar, i11 = void 0 === o11 ? "data" : o11; + return e23 && 0 !== e23.length ? e23.map(function(e24) { + return "".concat(i11).concat(e24.instancePath, " ").concat(e24.message); + }).reduce(function(e24, t12) { + return e24 + r11 + t12; + }) : "No errors"; + } }, { key: "$dataMetaSchema", value: function(e23, t11) { + var n11 = this.RULES.all; + e23 = JSON.parse(JSON.stringify(e23)); + var r11, o11 = bo(t11); + try { + for (o11.s(); !(r11 = o11.n()).done; ) { + var i11, a11 = r11.value.split("/").slice(1), s11 = e23, c11 = bo(a11); + try { + for (c11.s(); !(i11 = c11.n()).done; ) { + s11 = s11[i11.value]; + } + } catch (e24) { + c11.e(e24); + } finally { + c11.f(); + } + for (var l11 in n11) { + var u11 = n11[l11]; + if ("object" == Ho(u11)) { + var f11 = u11.definition.$data, d11 = s11[l11]; + f11 && d11 && (s11[l11] = P10(d11)); + } + } + } + } catch (e24) { + o11.e(e24); + } finally { + o11.f(); + } + return e23; + } }, { key: "_removeAllSchemas", value: function(e23, t11) { + for (var n11 in e23) { + var r11 = e23[n11]; + t11 && !t11.test(n11) || ("string" == typeof r11 ? delete e23[n11] : r11 && !r11.meta && (this._cache.delete(r11.schema), delete e23[n11])); + } + } }, { key: "_addSchema", value: function(e23, t11, n11) { + var r11, o11 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : this.opts.validateSchema, i11 = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : this.opts.addUsedSchema, s11 = this.opts.schemaId; + if ("object" == Ho(e23)) + r11 = e23[s11]; + else { + if (this.opts.jtd) + throw new Error("schema must be object"); + if ("boolean" != typeof e23) + throw new Error("schema must be object or boolean"); + } + var l11 = this._cache.get(e23); + if (void 0 !== l11) + return l11; + n11 = (0, c10.normalizeId)(r11 || n11); + var u11 = c10.getSchemaRefs.call(this, e23, n11); + return l11 = new a10.SchemaEnv({ schema: e23, schemaId: s11, meta: t11, baseId: n11, localRefs: u11 }), this._cache.set(l11.schema, l11), i11 && !n11.startsWith("#") && (n11 && this._checkUnique(n11), this.refs[n11] = l11), o11 && this.validateSchema(e23, true), l11; + } }, { key: "_checkUnique", value: function(e23) { + if (this.schemas[e23] || this.refs[e23]) + throw new Error('schema with key or id "'.concat(e23, '" already exists')); + } }, { key: "_compileSchemaEnv", value: function(e23) { + if (e23.meta ? this._compileMetaSchema(e23) : a10.compileSchema.call(this, e23), !e23.validate) + throw new Error("ajv implementation error"); + return e23.validate; + } }, { key: "_compileMetaSchema", value: function(e23) { + var t11 = this.opts; + this.opts = this._metaOpts; + try { + a10.compileSchema.call(this, e23); + } finally { + this.opts = t11; + } + } }]), e21; + }(); + function b10(e21, t11, n11) { + var r11 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : "error"; + for (var o11 in e21) { + var i11 = o11; + i11 in t11 && this.logger[r11]("".concat(n11, ": option ").concat(o11, ". ").concat(e21[i11])); + } + } + function k10(e21) { + return e21 = (0, c10.normalizeId)(e21), this.schemas[e21] || this.refs[e21]; + } + function w10() { + var e21 = this.opts.schemas; + if (e21) + if (Array.isArray(e21)) + this.addSchema(e21); + else + for (var t11 in e21) + this.addSchema(e21[t11], t11); + } + function x10() { + for (var e21 in this.opts.formats) { + var t11 = this.opts.formats[e21]; + t11 && this.addFormat(e21, t11); + } + } + function j10(e21) { + if (Array.isArray(e21)) + this.addVocabulary(e21); + else + for (var t11 in this.logger.warn("keywords option as map is deprecated, pass array"), e21) { + var n11 = e21[t11]; + n11.keyword || (n11.keyword = t11), this.addKeyword(n11); + } + } + function S10() { + var e21, t11 = Ro({}, this.opts), n11 = bo(v10); + try { + for (n11.s(); !(e21 = n11.n()).done; ) { + delete t11[e21.value]; + } + } catch (e23) { + n11.e(e23); + } finally { + n11.f(); + } + return t11; + } + e20.default = y10, y10.ValidationError = r10.default, y10.MissingRefError = o10.default; + var C10 = { log: function() { + }, warn: function() { + }, error: function() { + } }; + var $10 = /^[a-z_$][a-z0-9_$:-]*$/i; + function _10(e21, t11) { + var n11 = this.RULES; + if ((0, u10.eachItem)(e21, function(e23) { + if (n11.keywords[e23]) + throw new Error("Keyword ".concat(e23, " is already defined")); + if (!$10.test(e23)) + throw new Error("Keyword ".concat(e23, " has invalid name")); + }), t11 && t11.$data && !("code" in t11) && !("validate" in t11)) + throw new Error('$data keyword must have "code" or "validate" function'); + } + function O10(e21, t11, n11) { + var r11, o11 = this, i11 = null == t11 ? void 0 : t11.post; + if (n11 && i11) + throw new Error('keyword with "post" flag cannot have "type"'); + var a11 = this.RULES, s11 = i11 ? a11.post : a11.rules.find(function(e23) { + return e23.type === n11; + }); + if (s11 || (s11 = { type: n11, rules: [] }, a11.rules.push(s11)), a11.keywords[e21] = true, t11) { + var c11 = { keyword: e21, definition: Ro(Ro({}, t11), {}, { type: (0, l10.getJSONTypes)(t11.type), schemaType: (0, l10.getJSONTypes)(t11.schemaType) }) }; + t11.before ? M10.call(this, s11, c11, t11.before) : s11.rules.push(c11), a11.all[e21] = c11, null === (r11 = t11.implements) || void 0 === r11 || r11.forEach(function(e23) { + return o11.addKeyword(e23); + }); + } + } + function M10(e21, t11, n11) { + var r11 = e21.rules.findIndex(function(e23) { + return e23.keyword === n11; + }); + r11 >= 0 ? e21.rules.splice(r11, 0, t11) : (e21.rules.push(t11), this.logger.warn("rule ".concat(n11, " is not defined"))); + } + function E10(e21) { + var t11 = e21.metaSchema; + void 0 !== t11 && (e21.$data && this.opts.$data && (t11 = P10(t11)), e21.validateSchema = this.compile(t11, true)); + } + var A10 = { $ref: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#" }; + function P10(e21) { + return { anyOf: [e21, A10] }; + } + }(q8); + var f6 = {}; + var d6 = {}; + var h6 = {}; + Object.defineProperty(h6, "__esModule", { value: true }); + var v6 = { keyword: "id", code: function() { + throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID'); + } }; + h6.default = v6; + var p6 = {}; + Object.defineProperty(p6, "__esModule", { value: true }), p6.callRef = p6.getValidate = void 0; + var m6 = H5(); + var g6 = p5(); + var y6 = G8(); + var b6 = t5(); + var k6 = W5; + var w6 = Q8; + var x6 = { keyword: "$ref", schemaType: "string", code: function(e20) { + var t10 = e20.gen, n10 = e20.schema, r10 = e20.it, o10 = r10.baseId, i10 = r10.schemaEnv, a10 = r10.validateName, s10 = r10.opts, c10 = r10.self, l10 = i10.root; + if (("#" === n10 || "#/" === n10) && o10 === l10.baseId) + return function() { + if (i10 === l10) + return S6(e20, a10, i10, i10.$async); + var n11 = t10.scopeValue("root", { ref: l10 }); + return S6(e20, (0, y6._)(rn || (rn = mo(["", ".validate"])), n11), l10, l10.$async); + }(); + var u10, f10, d10 = k6.resolveRef.call(c10, l10, o10, n10); + if (void 0 === d10) + throw new m6.default(r10.opts.uriResolver, o10, n10); + return d10 instanceof k6.SchemaEnv ? (f10 = j6(e20, u10 = d10), void S6(e20, f10, u10, u10.$async)) : function(r11) { + var o11 = t10.scopeValue("schema", true === s10.code.source ? { ref: r11, code: (0, y6.stringify)(r11) } : { ref: r11 }), i11 = t10.name("valid"), a11 = e20.subschema({ schema: r11, dataTypes: [], schemaPath: y6.nil, topSchemaRef: o11, errSchemaPath: n10 }, i11); + e20.mergeEvaluated(a11), e20.ok(i11); + }(d10); + } }; + function j6(e20, t10) { + var n10 = e20.gen; + return t10.validate ? n10.scopeValue("validate", { ref: t10.validate }) : (0, y6._)(on || (on = mo(["", ".validate"])), n10.scopeValue("wrapper", { ref: t10 })); + } + function S6(e20, t10, n10, r10) { + var o10 = e20.gen, i10 = e20.it, a10 = i10.allErrors, s10 = i10.schemaEnv, c10 = i10.opts.passContext ? b6.default.this : y6.nil; + function l10(e21) { + var t11 = (0, y6._)(cn || (cn = mo(["", ".errors"])), e21); + o10.assign(b6.default.vErrors, (0, y6._)(ln || (ln = mo(["", " === null ? ", " : ", ".concat(", ")"])), b6.default.vErrors, t11, b6.default.vErrors, t11)), o10.assign(b6.default.errors, (0, y6._)(un || (un = mo(["", ".length"])), b6.default.vErrors)); + } + function u10(e21) { + var t11; + if (i10.opts.unevaluated) { + var r11 = null === (t11 = null == n10 ? void 0 : n10.validate) || void 0 === t11 ? void 0 : t11.evaluated; + if (true !== i10.props) + if (r11 && !r11.dynamicProps) + void 0 !== r11.props && (i10.props = w6.mergeEvaluated.props(o10, r11.props, i10.props)); + else { + var a11 = o10.var("props", (0, y6._)(fn || (fn = mo(["", ".evaluated.props"])), e21)); + i10.props = w6.mergeEvaluated.props(o10, a11, i10.props, y6.Name); + } + if (true !== i10.items) + if (r11 && !r11.dynamicItems) + void 0 !== r11.items && (i10.items = w6.mergeEvaluated.items(o10, r11.items, i10.items)); + else { + var s11 = o10.var("items", (0, y6._)(dn || (dn = mo(["", ".evaluated.items"])), e21)); + i10.items = w6.mergeEvaluated.items(o10, s11, i10.items, y6.Name); + } + } + } + r10 ? function() { + if (!s10.$async) + throw new Error("async schema referenced by sync schema"); + var n11 = o10.let("valid"); + o10.try(function() { + o10.code((0, y6._)(an || (an = mo(["await ", ""])), (0, g6.callValidateCode)(e20, t10, c10))), u10(t10), a10 || o10.assign(n11, true); + }, function(e21) { + o10.if((0, y6._)(sn || (sn = mo(["!(", " instanceof ", ")"])), e21, i10.ValidationError), function() { + return o10.throw(e21); + }), l10(e21), a10 || o10.assign(n11, false); + }), e20.ok(n11); + }() : e20.result((0, g6.callValidateCode)(e20, t10, c10), function() { + return u10(t10); + }, function() { + return l10(t10); + }); + } + p6.getValidate = j6, p6.callRef = S6, p6.default = x6, Object.defineProperty(d6, "__esModule", { value: true }); + var C6 = p6; + var $6 = ["$schema", "$id", "$defs", "$vocabulary", { keyword: "$comment" }, "definitions", h6.default, C6.default]; + d6.default = $6; + var _6 = {}; + var O6 = {}; + Object.defineProperty(O6, "__esModule", { value: true }); + var M6 = G8(); + var E6 = M6.operators; + var A6 = { maximum: { okStr: "<=", ok: E6.LTE, fail: E6.GT }, minimum: { okStr: ">=", ok: E6.GTE, fail: E6.LT }, exclusiveMaximum: { okStr: "<", ok: E6.LT, fail: E6.GTE }, exclusiveMinimum: { okStr: ">", ok: E6.GT, fail: E6.LTE } }; + var P6 = { message: function(e20) { + var t10 = e20.keyword, n10 = e20.schemaCode; + return (0, M6.str)(hn || (hn = mo(["must be ", " ", ""])), A6[t10].okStr, n10); + }, params: function(e20) { + var t10 = e20.keyword, n10 = e20.schemaCode; + return (0, M6._)(vn || (vn = mo(["{comparison: ", ", limit: ", "}"])), A6[t10].okStr, n10); + } }; + var T6 = { keyword: Object.keys(A6), type: "number", schemaType: "number", $data: true, error: P6, code: function(e20) { + var t10 = e20.keyword, n10 = e20.data, r10 = e20.schemaCode; + e20.fail$data((0, M6._)(pn || (pn = mo(["", " ", " ", " || isNaN(", ")"])), n10, A6[t10].fail, r10, n10)); + } }; + O6.default = T6; + var R6 = {}; + Object.defineProperty(R6, "__esModule", { value: true }); + var N6 = G8(); + var I6 = { keyword: "multipleOf", type: "number", schemaType: "number", $data: true, error: { message: function(e20) { + var t10 = e20.schemaCode; + return (0, N6.str)(mn || (mn = mo(["must be multiple of ", ""])), t10); + }, params: function(e20) { + var t10 = e20.schemaCode; + return (0, N6._)(gn || (gn = mo(["{multipleOf: ", "}"])), t10); + } }, code: function(e20) { + var t10 = e20.gen, n10 = e20.data, r10 = e20.schemaCode, o10 = e20.it.opts.multipleOfPrecision, i10 = t10.let("res"), a10 = o10 ? (0, N6._)(yn || (yn = mo(["Math.abs(Math.round(", ") - ", ") > 1e-", ""])), i10, i10, o10) : (0, N6._)(bn || (bn = mo(["", " !== parseInt(", ")"])), i10, i10); + e20.fail$data((0, N6._)(kn || (kn = mo(["(", " === 0 || (", " = ", "/", ", ", "))"])), r10, i10, n10, r10, a10)); + } }; + R6.default = I6; + var D6 = {}; + var q6 = {}; + function z6(e20) { + for (var t10, n10 = e20.length, r10 = 0, o10 = 0; o10 < n10; ) + r10++, (t10 = e20.charCodeAt(o10++)) >= 55296 && t10 <= 56319 && o10 < n10 && 56320 == (64512 & (t10 = e20.charCodeAt(o10))) && o10++; + return r10; + } + Object.defineProperty(q6, "__esModule", { value: true }), q6.default = z6, z6.code = 'require("ajv/dist/runtime/ucs2length").default', Object.defineProperty(D6, "__esModule", { value: true }); + var B6 = G8(); + var L6 = Q8; + var F6 = q6; + var V6 = { message: function(e20) { + var t10 = e20.keyword, n10 = e20.schemaCode, r10 = "maxLength" === t10 ? "more" : "fewer"; + return (0, B6.str)(wn || (wn = mo(["must NOT have ", " than ", " characters"])), r10, n10); + }, params: function(e20) { + var t10 = e20.schemaCode; + return (0, B6._)(xn || (xn = mo(["{limit: ", "}"])), t10); + } }; + var H6 = { keyword: ["maxLength", "minLength"], type: "string", schemaType: "number", $data: true, error: V6, code: function(e20) { + var t10 = e20.keyword, n10 = e20.data, r10 = e20.schemaCode, o10 = e20.it, i10 = "maxLength" === t10 ? B6.operators.GT : B6.operators.LT, a10 = false === o10.opts.unicode ? (0, B6._)(jn || (jn = mo(["", ".length"])), n10) : (0, B6._)(Sn || (Sn = mo(["", "(", ")"])), (0, L6.useFunc)(e20.gen, F6.default), n10); + e20.fail$data((0, B6._)(Cn || (Cn = mo(["", " ", " ", ""])), a10, i10, r10)); + } }; + D6.default = H6; + var W6 = {}; + Object.defineProperty(W6, "__esModule", { value: true }); + var U6 = p5(); + var J6 = G8(); + var K6 = { keyword: "pattern", type: "string", schemaType: "string", $data: true, error: { message: function(e20) { + var t10 = e20.schemaCode; + return (0, J6.str)($n || ($n = mo(['must match pattern "', '"'])), t10); + }, params: function(e20) { + var t10 = e20.schemaCode; + return (0, J6._)(_n || (_n = mo(["{pattern: ", "}"])), t10); + } }, code: function(e20) { + var t10 = e20.data, n10 = e20.$data, r10 = e20.schema, o10 = e20.schemaCode, i10 = e20.it.opts.unicodeRegExp ? "u" : "", a10 = n10 ? (0, J6._)(On || (On = mo(["(new RegExp(", ", ", "))"])), o10, i10) : (0, U6.usePattern)(e20, r10); + e20.fail$data((0, J6._)(Mn || (Mn = mo(["!", ".test(", ")"])), a10, t10)); + } }; + W6.default = K6; + var G6 = {}; + Object.defineProperty(G6, "__esModule", { value: true }); + var Q6 = G8(); + var Y6 = { message: function(e20) { + var t10 = e20.keyword, n10 = e20.schemaCode, r10 = "maxProperties" === t10 ? "more" : "fewer"; + return (0, Q6.str)(En || (En = mo(["must NOT have ", " than ", " properties"])), r10, n10); + }, params: function(e20) { + var t10 = e20.schemaCode; + return (0, Q6._)(An || (An = mo(["{limit: ", "}"])), t10); + } }; + var X6 = { keyword: ["maxProperties", "minProperties"], type: "object", schemaType: "number", $data: true, error: Y6, code: function(e20) { + var t10 = e20.keyword, n10 = e20.data, r10 = e20.schemaCode, o10 = "maxProperties" === t10 ? Q6.operators.GT : Q6.operators.LT; + e20.fail$data((0, Q6._)(Pn || (Pn = mo(["Object.keys(", ").length ", " ", ""])), n10, o10, r10)); + } }; + G6.default = X6; + var Z6 = {}; + Object.defineProperty(Z6, "__esModule", { value: true }); + var e72 = p5(); + var t7 = G8(); + var n7 = Q8; + var r7 = { keyword: "required", type: "object", schemaType: "array", $data: true, error: { message: function(e20) { + var t10 = e20.params.missingProperty; + return (0, t7.str)(Tn || (Tn = mo(["must have required property '", "'"])), t10); + }, params: function(e20) { + var t10 = e20.params.missingProperty; + return (0, t7._)(Rn || (Rn = mo(["{missingProperty: ", "}"])), t10); + } }, code: function(e20) { + var t10 = e20.gen, n10 = e20.schema, r10 = e20.schemaCode, o10 = e20.data, i10 = e20.$data, a10 = e20.it, s10 = a10.opts; + if (i10 || 0 !== n10.length) { + var c10 = n10.length >= s10.loopRequired; + if (a10.allErrors ? function() { + if (c10 || i10) + e20.block$data(t7.nil, m10); + else { + var t11, r11 = bo(n10); + try { + for (r11.s(); !(t11 = r11.n()).done; ) { + var o11 = t11.value; + (0, e72.checkReportMissingProp)(e20, o11); + } + } catch (e21) { + r11.e(e21); + } finally { + r11.f(); + } + } + }() : function() { + var a11 = t10.let("missing"); + if (c10 || i10) { + var l11 = t10.let("valid", true); + e20.block$data(l11, function() { + return function(n11, i11) { + e20.setParams({ missingProperty: n11 }), t10.forOf(n11, r10, function() { + t10.assign(i11, (0, e72.propertyInData)(t10, o10, n11, s10.ownProperties)), t10.if((0, t7.not)(i11), function() { + e20.error(), t10.break(); + }); + }, t7.nil); + }(a11, l11); + }), e20.ok(l11); + } else + t10.if((0, e72.checkMissingProp)(e20, n10, a11)), (0, e72.reportMissingProp)(e20, a11), t10.else(); + }(), s10.strictRequired) { + var l10, u10 = e20.parentSchema.properties, f10 = e20.it.definedProperties, d10 = bo(n10); + try { + for (d10.s(); !(l10 = d10.n()).done; ) { + var h10 = l10.value; + if (void 0 === (null == u10 ? void 0 : u10[h10]) && !f10.has(h10)) { + var v10 = a10.schemaEnv.baseId + a10.errSchemaPath, p10 = 'required property "'.concat(h10, '" is not defined at "').concat(v10, '" (strictRequired)'); + (0, n7.checkStrictMode)(a10, p10, a10.opts.strictRequired); + } + } + } catch (e21) { + d10.e(e21); + } finally { + d10.f(); + } + } + } + function m10() { + t10.forOf("prop", r10, function(n11) { + e20.setParams({ missingProperty: n11 }), t10.if((0, e72.noPropertyInData)(t10, o10, n11, s10.ownProperties), function() { + return e20.error(); + }); + }); + } + } }; + Z6.default = r7; + var o7 = {}; + Object.defineProperty(o7, "__esModule", { value: true }); + var i7 = G8(); + var a7 = { message: function(e20) { + var t10 = e20.keyword, n10 = e20.schemaCode, r10 = "maxItems" === t10 ? "more" : "fewer"; + return (0, i7.str)(Nn || (Nn = mo(["must NOT have ", " than ", " items"])), r10, n10); + }, params: function(e20) { + var t10 = e20.schemaCode; + return (0, i7._)(In || (In = mo(["{limit: ", "}"])), t10); + } }; + var s7 = { keyword: ["maxItems", "minItems"], type: "array", schemaType: "number", $data: true, error: a7, code: function(e20) { + var t10 = e20.keyword, n10 = e20.data, r10 = e20.schemaCode, o10 = "maxItems" === t10 ? i7.operators.GT : i7.operators.LT; + e20.fail$data((0, i7._)(Dn || (Dn = mo(["", ".length ", " ", ""])), n10, o10, r10)); + } }; + o7.default = s7; + var c7 = {}; + var l7 = {}; + Object.defineProperty(l7, "__esModule", { value: true }); + var u7 = k5; + u7.code = 'require("ajv/dist/runtime/equal").default', l7.default = u7, Object.defineProperty(c7, "__esModule", { value: true }); + var f7 = r5; + var d7 = G8(); + var h7 = Q8; + var v7 = l7; + var p7 = { message: function(e20) { + var t10 = e20.params, n10 = t10.i, r10 = t10.j; + return (0, d7.str)(qn || (qn = mo(["must NOT have duplicate items (items ## ", " and ", " are identical)"])), r10, n10); + }, params: function(e20) { + var t10 = e20.params, n10 = t10.i, r10 = t10.j; + return (0, d7._)(zn || (zn = mo(["{i: ", ", j: ", "}"])), n10, r10); + } }; + var m7 = { keyword: "uniqueItems", type: "array", schemaType: "boolean", $data: true, error: p7, code: function(e20) { + var t10 = e20.gen, n10 = e20.data, r10 = e20.$data, o10 = e20.schema, i10 = e20.parentSchema, a10 = e20.schemaCode, s10 = e20.it; + if (r10 || o10) { + var c10 = t10.let("valid"), l10 = i10.items ? (0, f7.getSchemaTypes)(i10.items) : []; + e20.block$data(c10, function() { + var r11 = t10.let("i", (0, d7._)(Ln || (Ln = mo(["", ".length"])), n10)), o11 = t10.let("j"); + e20.setParams({ i: r11, j: o11 }), t10.assign(c10, true), t10.if((0, d7._)(Fn || (Fn = mo(["", " > 1"])), r11), function() { + return (l10.length > 0 && !l10.some(function(e21) { + return "object" === e21 || "array" === e21; + }) ? u10 : f10)(r11, o11); + }); + }, (0, d7._)(Bn || (Bn = mo(["", " === false"])), a10)), e20.ok(c10); + } + function u10(r11, o11) { + var i11 = t10.name("item"), a11 = (0, f7.checkDataTypes)(l10, i11, s10.opts.strictNumbers, f7.DataType.Wrong), u11 = t10.const("indices", (0, d7._)(Vn || (Vn = mo(["{}"])))); + t10.for((0, d7._)(Hn || (Hn = mo([";", "--;"])), r11), function() { + t10.let(i11, (0, d7._)(Wn || (Wn = mo(["", "[", "]"])), n10, r11)), t10.if(a11, (0, d7._)(Un || (Un = mo(["continue"])))), l10.length > 1 && t10.if((0, d7._)(Jn || (Jn = mo(["typeof ", ' == "string"'])), i11), (0, d7._)(Kn || (Kn = mo(["", ' += "_"'])), i11)), t10.if((0, d7._)(Gn || (Gn = mo(["typeof ", "[", '] == "number"'])), u11, i11), function() { + t10.assign(o11, (0, d7._)(Qn || (Qn = mo(["", "[", "]"])), u11, i11)), e20.error(), t10.assign(c10, false).break(); + }).code((0, d7._)(Yn || (Yn = mo(["", "[", "] = ", ""])), u11, i11, r11)); + }); + } + function f10(r11, o11) { + var i11 = (0, h7.useFunc)(t10, v7.default), a11 = t10.name("outer"); + t10.label(a11).for((0, d7._)(Xn || (Xn = mo([";", "--;"])), r11), function() { + return t10.for((0, d7._)(Zn || (Zn = mo(["", " = ", "; ", "--;"])), o11, r11, o11), function() { + return t10.if((0, d7._)(er || (er = mo(["", "(", "[", "], ", "[", "])"])), i11, n10, r11, n10, o11), function() { + e20.error(), t10.assign(c10, false).break(a11); + }); + }); + }); + } + } }; + c7.default = m7; + var g7 = {}; + Object.defineProperty(g7, "__esModule", { value: true }); + var y7 = G8(); + var b7 = Q8; + var k7 = l7; + var w7 = { keyword: "const", $data: true, error: { message: "must be equal to constant", params: function(e20) { + var t10 = e20.schemaCode; + return (0, y7._)(tr || (tr = mo(["{allowedValue: ", "}"])), t10); + } }, code: function(e20) { + var t10 = e20.gen, n10 = e20.data, r10 = e20.$data, o10 = e20.schemaCode, i10 = e20.schema; + r10 || i10 && "object" == Ho(i10) ? e20.fail$data((0, y7._)(nr || (nr = mo(["!", "(", ", ", ")"])), (0, b7.useFunc)(t10, k7.default), n10, o10)) : e20.fail((0, y7._)(rr || (rr = mo(["", " !== ", ""])), i10, n10)); + } }; + g7.default = w7; + var x7 = {}; + Object.defineProperty(x7, "__esModule", { value: true }); + var j7 = G8(); + var S7 = Q8; + var C7 = l7; + var $7 = { keyword: "enum", schemaType: "array", $data: true, error: { message: "must be equal to one of the allowed values", params: function(e20) { + var t10 = e20.schemaCode; + return (0, j7._)(or || (or = mo(["{allowedValues: ", "}"])), t10); + } }, code: function(e20) { + var t10 = e20.gen, n10 = e20.data, r10 = e20.$data, o10 = e20.schema, i10 = e20.schemaCode, a10 = e20.it; + if (!r10 && 0 === o10.length) + throw new Error("enum must have non-empty array"); + var s10, c10, l10 = o10.length >= a10.opts.loopEnum, u10 = function() { + return null != s10 ? s10 : s10 = (0, S7.useFunc)(t10, C7.default); + }; + if (l10 || r10) + c10 = t10.let("valid"), e20.block$data(c10, function() { + t10.assign(c10, false), t10.forOf("v", i10, function(e21) { + return t10.if((0, j7._)(ir || (ir = mo(["", "(", ", ", ")"])), u10(), n10, e21), function() { + return t10.assign(c10, true).break(); + }); + }); + }); + else { + if (!Array.isArray(o10)) + throw new Error("ajv implementation error"); + var f10 = t10.const("vSchema", i10); + c10 = j7.or.apply(void 0, Bo(o10.map(function(e21, t11) { + return function(e23, t12) { + var r11 = o10[t12]; + return "object" === Ho(r11) && null !== r11 ? (0, j7._)(ar || (ar = mo(["", "(", ", ", "[", "])"])), u10(), n10, e23, t12) : (0, j7._)(sr || (sr = mo(["", " === ", ""])), n10, r11); + }(f10, t11); + }))); + } + e20.pass(c10); + } }; + x7.default = $7, Object.defineProperty(_6, "__esModule", { value: true }); + var _7 = R6; + var O7 = D6; + var M7 = W6; + var E7 = G6; + var A7 = Z6; + var P7 = o7; + var T7 = c7; + var R7 = g7; + var N7 = x7; + var I7 = [O6.default, _7.default, O7.default, M7.default, E7.default, A7.default, P7.default, T7.default, { keyword: "type", schemaType: ["string", "array"] }, { keyword: "nullable", schemaType: "boolean" }, R7.default, N7.default]; + _6.default = I7; + var D7 = {}; + var q7 = {}; + Object.defineProperty(q7, "__esModule", { value: true }), q7.validateAdditionalItems = void 0; + var z7 = G8(); + var B7 = Q8; + var L7 = { keyword: "additionalItems", type: "array", schemaType: ["boolean", "object"], before: "uniqueItems", error: { message: function(e20) { + var t10 = e20.params.len; + return (0, z7.str)(cr || (cr = mo(["must NOT have more than ", " items"])), t10); + }, params: function(e20) { + var t10 = e20.params.len; + return (0, z7._)(lr || (lr = mo(["{limit: ", "}"])), t10); + } }, code: function(e20) { + var t10 = e20.parentSchema, n10 = e20.it, r10 = t10.items; + Array.isArray(r10) ? F7(e20, r10) : (0, B7.checkStrictMode)(n10, '"additionalItems" is ignored when "items" is not an array of schemas'); + } }; + function F7(e20, t10) { + var n10 = e20.gen, r10 = e20.schema, o10 = e20.data, i10 = e20.keyword, a10 = e20.it; + a10.items = true; + var s10 = n10.const("len", (0, z7._)(ur || (ur = mo(["", ".length"])), o10)); + if (false === r10) + e20.setParams({ len: t10.length }), e20.pass((0, z7._)(fr || (fr = mo(["", " <= ", ""])), s10, t10.length)); + else if ("object" == Ho(r10) && !(0, B7.alwaysValidSchema)(a10, r10)) { + var c10 = n10.var("valid", (0, z7._)(dr || (dr = mo(["", " <= ", ""])), s10, t10.length)); + n10.if((0, z7.not)(c10), function() { + return function(r11) { + n10.forRange("i", t10.length, s10, function(t11) { + e20.subschema({ keyword: i10, dataProp: t11, dataPropType: B7.Type.Num }, r11), a10.allErrors || n10.if((0, z7.not)(r11), function() { + return n10.break(); + }); + }); + }(c10); + }), e20.ok(c10); + } + } + q7.validateAdditionalItems = F7, q7.default = L7; + var V7 = {}; + var H7 = {}; + Object.defineProperty(H7, "__esModule", { value: true }), H7.validateTuple = void 0; + var W7 = G8(); + var U7 = Q8; + var J7 = p5(); + var K7 = { keyword: "items", type: "array", schemaType: ["object", "array", "boolean"], before: "uniqueItems", code: function(e20) { + var t10 = e20.schema, n10 = e20.it; + if (Array.isArray(t10)) + return G7(e20, "additionalItems", t10); + n10.items = true, (0, U7.alwaysValidSchema)(n10, t10) || e20.ok((0, J7.validateArray)(e20)); + } }; + function G7(e20, t10) { + var n10 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : e20.schema, r10 = e20.gen, o10 = e20.parentSchema, i10 = e20.data, a10 = e20.keyword, s10 = e20.it; + !function(e21) { + var r11 = s10.opts, o11 = s10.errSchemaPath, i11 = n10.length, c11 = i11 === e21.minItems && (i11 === e21.maxItems || false === e21[t10]); + if (r11.strictTuples && !c11) { + var l11 = '"'.concat(a10, '" is ').concat(i11, "-tuple, but minItems or maxItems/").concat(t10, ' are not specified or different at path "').concat(o11, '"'); + (0, U7.checkStrictMode)(s10, l11, r11.strictTuples); + } + }(o10), s10.opts.unevaluated && n10.length && true !== s10.items && (s10.items = U7.mergeEvaluated.items(r10, n10.length, s10.items)); + var c10 = r10.name("valid"), l10 = r10.const("len", (0, W7._)(hr || (hr = mo(["", ".length"])), i10)); + n10.forEach(function(t11, n11) { + (0, U7.alwaysValidSchema)(s10, t11) || (r10.if((0, W7._)(vr || (vr = mo(["", " > ", ""])), l10, n11), function() { + return e20.subschema({ keyword: a10, schemaProp: n11, dataProp: n11 }, c10); + }), e20.ok(c10)); + }); + } + H7.validateTuple = G7, H7.default = K7, Object.defineProperty(V7, "__esModule", { value: true }); + var Q7 = H7; + var Y7 = { keyword: "prefixItems", type: "array", schemaType: ["array"], before: "uniqueItems", code: function(e20) { + return (0, Q7.validateTuple)(e20, "items"); + } }; + V7.default = Y7; + var X7 = {}; + Object.defineProperty(X7, "__esModule", { value: true }); + var Z7 = G8(); + var e92 = Q8; + var t9 = p5(); + var n9 = q7; + var r9 = { keyword: "items", type: "array", schemaType: ["object", "boolean"], before: "uniqueItems", error: { message: function(e20) { + var t10 = e20.params.len; + return (0, Z7.str)(pr || (pr = mo(["must NOT have more than ", " items"])), t10); + }, params: function(e20) { + var t10 = e20.params.len; + return (0, Z7._)(mr || (mr = mo(["{limit: ", "}"])), t10); + } }, code: function(e20) { + var t10 = e20.schema, n10 = e20.parentSchema, r10 = e20.it, o10 = n10.prefixItems; + r10.items = true, (0, e92.alwaysValidSchema)(r10, t10) || (o10 ? (0, n9.validateAdditionalItems)(e20, o10) : e20.ok((0, t9.validateArray)(e20))); + } }; + X7.default = r9; + var o9 = {}; + Object.defineProperty(o9, "__esModule", { value: true }); + var i9 = G8(); + var a9 = Q8; + var s9 = { message: function(e20) { + var t10 = e20.params, n10 = t10.min, r10 = t10.max; + return void 0 === r10 ? (0, i9.str)(gr || (gr = mo(["must contain at least ", " valid item(s)"])), n10) : (0, i9.str)(yr || (yr = mo(["must contain at least ", " and no more than ", " valid item(s)"])), n10, r10); + }, params: function(e20) { + var t10 = e20.params, n10 = t10.min, r10 = t10.max; + return void 0 === r10 ? (0, i9._)(br || (br = mo(["{minContains: ", "}"])), n10) : (0, i9._)(kr || (kr = mo(["{minContains: ", ", maxContains: ", "}"])), n10, r10); + } }; + var c9 = { keyword: "contains", type: "array", schemaType: ["object", "boolean"], before: "uniqueItems", trackErrors: true, error: s9, code: function(e20) { + var t10, n10, r10 = e20.gen, o10 = e20.schema, i10 = e20.parentSchema, a10 = e20.data, s10 = e20.it, c10 = i10.minContains, l10 = i10.maxContains; + s10.opts.next ? (t10 = void 0 === c10 ? 1 : c10, n10 = l10) : t10 = 1; + var u10 = r10.const("len", (0, i9._)(wr || (wr = mo(["", ".length"])), a10)); + if (e20.setParams({ min: t10, max: n10 }), void 0 !== n10 || 0 !== t10) { + if (void 0 !== n10 && t10 > n10) + return (0, a9.checkStrictMode)(s10, '"minContains" > "maxContains" is always invalid'), void e20.fail(); + if ((0, a9.alwaysValidSchema)(s10, o10)) { + var f10 = (0, i9._)(xr || (xr = mo(["", " >= ", ""])), u10, t10); + return void 0 !== n10 && (f10 = (0, i9._)(jr || (jr = mo(["", " && ", " <= ", ""])), f10, u10, n10)), void e20.pass(f10); + } + s10.items = true; + var d10 = r10.name("valid"); + void 0 === n10 && 1 === t10 ? v10(d10, function() { + return r10.if(d10, function() { + return r10.break(); + }); + }) : 0 === t10 ? (r10.let(d10, true), void 0 !== n10 && r10.if((0, i9._)(Sr || (Sr = mo(["", ".length > 0"])), a10), h10)) : (r10.let(d10, false), h10()), e20.result(d10, function() { + return e20.reset(); + }); + } else + (0, a9.checkStrictMode)(s10, '"minContains" == 0 without "maxContains": "contains" keyword ignored'); + function h10() { + var e21 = r10.name("_valid"), o11 = r10.let("count", 0); + v10(e21, function() { + return r10.if(e21, function() { + return function(e23) { + r10.code((0, i9._)(Cr || (Cr = mo(["", "++"])), e23)), void 0 === n10 ? r10.if((0, i9._)($r || ($r = mo(["", " >= ", ""])), e23, t10), function() { + return r10.assign(d10, true).break(); + }) : (r10.if((0, i9._)(_r || (_r = mo(["", " > ", ""])), e23, n10), function() { + return r10.assign(d10, false).break(); + }), 1 === t10 ? r10.assign(d10, true) : r10.if((0, i9._)(Or || (Or = mo(["", " >= ", ""])), e23, t10), function() { + return r10.assign(d10, true); + })); + }(o11); + }); + }); + } + function v10(t11, n11) { + r10.forRange("i", 0, u10, function(r11) { + e20.subschema({ keyword: "contains", dataProp: r11, dataPropType: a9.Type.Num, compositeRule: true }, t11), n11(); + }); + } + } }; + o9.default = c9; + var l9 = {}; + !function(e20) { + Object.defineProperty(e20, "__esModule", { value: true }), e20.validateSchemaDeps = e20.validatePropertyDeps = e20.error = void 0; + var t10 = G8(), n10 = Q8, r10 = p5(); + e20.error = { message: function(e21) { + var n11 = e21.params, r11 = n11.property, o11 = n11.depsCount, i11 = n11.deps, a11 = 1 === o11 ? "property" : "properties"; + return (0, t10.str)(Mr || (Mr = mo(["must have ", " ", " when property ", " is present"])), a11, i11, r11); + }, params: function(e21) { + var n11 = e21.params, r11 = n11.property, o11 = n11.depsCount, i11 = n11.deps, a11 = n11.missingProperty; + return (0, t10._)(Er || (Er = mo(["{property: ", ",\n missingProperty: ", ",\n depsCount: ", ",\n deps: ", "}"])), r11, a11, o11, i11); + } }; + var o10 = { keyword: "dependencies", type: "object", schemaType: "object", error: e20.error, code: function(e21) { + var t11 = jo(function(e23) { + var t12 = e23.schema, n12 = {}, r12 = {}; + for (var o11 in t12) { + if ("__proto__" !== o11) + (Array.isArray(t12[o11]) ? n12 : r12)[o11] = t12[o11]; + } + return [n12, r12]; + }(e21), 2), n11 = t11[0], r11 = t11[1]; + i10(e21, n11), a10(e21, r11); + } }; + function i10(e21) { + var n11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : e21.schema, o11 = e21.gen, i11 = e21.data, a11 = e21.it; + if (0 !== Object.keys(n11).length) { + var s10 = o11.let("missing"), c10 = function() { + var c11 = n11[l10]; + if (0 === c11.length) + return 1; + var u10 = (0, r10.propertyInData)(o11, i11, l10, a11.opts.ownProperties); + e21.setParams({ property: l10, depsCount: c11.length, deps: c11.join(", ") }), a11.allErrors ? o11.if(u10, function() { + var t11, n12 = bo(c11); + try { + for (n12.s(); !(t11 = n12.n()).done; ) { + var o12 = t11.value; + (0, r10.checkReportMissingProp)(e21, o12); + } + } catch (e23) { + n12.e(e23); + } finally { + n12.f(); + } + }) : (o11.if((0, t10._)(Ar || (Ar = mo(["", " && (", ")"])), u10, (0, r10.checkMissingProp)(e21, c11, s10))), (0, r10.reportMissingProp)(e21, s10), o11.else()); + }; + for (var l10 in n11) + c10(); + } + } + function a10(e21) { + var t11 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : e21.schema, o11 = e21.gen, i11 = e21.data, a11 = e21.keyword, s10 = e21.it, c10 = o11.name("valid"), l10 = function(l11) { + if ((0, n10.alwaysValidSchema)(s10, t11[l11])) + return 1; + o11.if((0, r10.propertyInData)(o11, i11, l11, s10.opts.ownProperties), function() { + var t12 = e21.subschema({ keyword: a11, schemaProp: l11 }, c10); + e21.mergeValidEvaluated(t12, c10); + }, function() { + return o11.var(c10, true); + }), e21.ok(c10); + }; + for (var u10 in t11) + l10(u10); + } + e20.validatePropertyDeps = i10, e20.validateSchemaDeps = a10, e20.default = o10; + }(l9); + var u9 = {}; + Object.defineProperty(u9, "__esModule", { value: true }); + var f9 = G8(); + var d9 = Q8; + var h9 = { keyword: "propertyNames", type: "object", schemaType: ["object", "boolean"], error: { message: "property name must be valid", params: function(e20) { + var t10 = e20.params; + return (0, f9._)(Pr || (Pr = mo(["{propertyName: ", "}"])), t10.propertyName); + } }, code: function(e20) { + var t10 = e20.gen, n10 = e20.schema, r10 = e20.data, o10 = e20.it; + if (!(0, d9.alwaysValidSchema)(o10, n10)) { + var i10 = t10.name("valid"); + t10.forIn("key", r10, function(n11) { + e20.setParams({ propertyName: n11 }), e20.subschema({ keyword: "propertyNames", data: n11, dataTypes: ["string"], propertyName: n11, compositeRule: true }, i10), t10.if((0, f9.not)(i10), function() { + e20.error(true), o10.allErrors || t10.break(); + }); + }), e20.ok(i10); + } + } }; + u9.default = h9; + var v9 = {}; + Object.defineProperty(v9, "__esModule", { value: true }); + var p9 = p5(); + var m9 = G8(); + var g9 = t5(); + var y9 = Q8; + var b9 = { keyword: "additionalProperties", type: ["object"], schemaType: ["boolean", "object"], allowUndefined: true, trackErrors: true, error: { message: "must NOT have additional properties", params: function(e20) { + var t10 = e20.params; + return (0, m9._)(Tr || (Tr = mo(["{additionalProperty: ", "}"])), t10.additionalProperty); + } }, code: function(e20) { + var t10 = e20.gen, n10 = e20.schema, r10 = e20.parentSchema, o10 = e20.data, i10 = e20.errsCount, a10 = e20.it; + if (!i10) + throw new Error("ajv implementation error"); + var s10 = a10.allErrors, c10 = a10.opts; + if (a10.props = true, "all" === c10.removeAdditional || !(0, y9.alwaysValidSchema)(a10, n10)) { + var l10 = (0, p9.allSchemaProperties)(r10.properties), u10 = (0, p9.allSchemaProperties)(r10.patternProperties); + t10.forIn("key", o10, function(n11) { + l10.length || u10.length ? t10.if(function(n12) { + var o11; + if (l10.length > 8) { + var i11 = (0, y9.schemaRefOrVal)(a10, r10.properties, "properties"); + o11 = (0, p9.isOwnProperty)(t10, i11, n12); + } else + o11 = l10.length ? m9.or.apply(void 0, Bo(l10.map(function(e21) { + return (0, m9._)(Nr || (Nr = mo(["", " === ", ""])), n12, e21); + }))) : m9.nil; + return u10.length && (o11 = m9.or.apply(void 0, [o11].concat(Bo(u10.map(function(t11) { + return (0, m9._)(Ir || (Ir = mo(["", ".test(", ")"])), (0, p9.usePattern)(e20, t11), n12); + }))))), (0, m9.not)(o11); + }(n11), function() { + return d10(n11); + }) : d10(n11); + }), e20.ok((0, m9._)(Rr || (Rr = mo(["", " === ", ""])), i10, g9.default.errors)); + } + function f10(e21) { + t10.code((0, m9._)(Dr || (Dr = mo(["delete ", "[", "]"])), o10, e21)); + } + function d10(r11) { + if ("all" === c10.removeAdditional || c10.removeAdditional && false === n10) + f10(r11); + else { + if (false === n10) + return e20.setParams({ additionalProperty: r11 }), e20.error(), void (s10 || t10.break()); + if ("object" == Ho(n10) && !(0, y9.alwaysValidSchema)(a10, n10)) { + var o11 = t10.name("valid"); + "failing" === c10.removeAdditional ? (h10(r11, o11, false), t10.if((0, m9.not)(o11), function() { + e20.reset(), f10(r11); + })) : (h10(r11, o11), s10 || t10.if((0, m9.not)(o11), function() { + return t10.break(); + })); + } + } + } + function h10(t11, n11, r11) { + var o11 = { keyword: "additionalProperties", dataProp: t11, dataPropType: y9.Type.Str }; + false === r11 && Object.assign(o11, { compositeRule: true, createErrors: false, allErrors: false }), e20.subschema(o11, n11); + } + } }; + v9.default = b9; + var k9 = {}; + Object.defineProperty(k9, "__esModule", { value: true }); + var w9 = q5(); + var x9 = p5(); + var j9 = Q8; + var S9 = v9; + var C9 = { keyword: "properties", type: "object", schemaType: "object", code: function(e20) { + var t10 = e20.gen, n10 = e20.schema, r10 = e20.parentSchema, o10 = e20.data, i10 = e20.it; + "all" === i10.opts.removeAdditional && void 0 === r10.additionalProperties && S9.default.code(new w9.KeywordCxt(i10, S9.default, "additionalProperties")); + var a10, s10 = (0, x9.allSchemaProperties)(n10), c10 = bo(s10); + try { + for (c10.s(); !(a10 = c10.n()).done; ) { + var l10 = a10.value; + i10.definedProperties.add(l10); + } + } catch (e21) { + c10.e(e21); + } finally { + c10.f(); + } + i10.opts.unevaluated && s10.length && true !== i10.props && (i10.props = j9.mergeEvaluated.props(t10, (0, j9.toHash)(s10), i10.props)); + var u10 = s10.filter(function(e21) { + return !(0, j9.alwaysValidSchema)(i10, n10[e21]); + }); + if (0 !== u10.length) { + var f10, d10 = t10.name("valid"), h10 = bo(u10); + try { + for (h10.s(); !(f10 = h10.n()).done; ) { + var v10 = f10.value; + p10(v10) ? m10(v10) : (t10.if((0, x9.propertyInData)(t10, o10, v10, i10.opts.ownProperties)), m10(v10), i10.allErrors || t10.else().var(d10, true), t10.endIf()), e20.it.definedProperties.add(v10), e20.ok(d10); + } + } catch (e21) { + h10.e(e21); + } finally { + h10.f(); + } + } + function p10(e21) { + return i10.opts.useDefaults && !i10.compositeRule && void 0 !== n10[e21].default; + } + function m10(t11) { + e20.subschema({ keyword: "properties", schemaProp: t11, dataProp: t11 }, d10); + } + } }; + k9.default = C9; + var $9 = {}; + Object.defineProperty($9, "__esModule", { value: true }); + var _9 = p5(); + var O9 = G8(); + var M9 = Q8; + var E9 = Q8; + var A9 = { keyword: "patternProperties", type: "object", schemaType: "object", code: function(e20) { + var t10 = e20.gen, n10 = e20.schema, r10 = e20.data, o10 = e20.parentSchema, i10 = e20.it, a10 = i10.opts, s10 = (0, _9.allSchemaProperties)(n10), c10 = s10.filter(function(e21) { + return (0, M9.alwaysValidSchema)(i10, n10[e21]); + }); + if (0 !== s10.length && (c10.length !== s10.length || i10.opts.unevaluated && true !== i10.props)) { + var l10 = a10.strictSchema && !a10.allowMatchingProperties && o10.properties, u10 = t10.name("valid"); + true === i10.props || i10.props instanceof O9.Name || (i10.props = (0, E9.evaluatedPropsToName)(t10, i10.props)); + var f10 = i10.props; + !function() { + var e21, n11 = bo(s10); + try { + for (n11.s(); !(e21 = n11.n()).done; ) { + var r11 = e21.value; + l10 && d10(r11), i10.allErrors ? h10(r11) : (t10.var(u10, true), h10(r11), t10.if(u10)); + } + } catch (e23) { + n11.e(e23); + } finally { + n11.f(); + } + }(); + } + function d10(e21) { + for (var t11 in l10) + new RegExp(e21).test(t11) && (0, M9.checkStrictMode)(i10, "property ".concat(t11, " matches pattern ").concat(e21, " (use allowMatchingProperties)")); + } + function h10(n11) { + t10.forIn("key", r10, function(r11) { + t10.if((0, O9._)(qr || (qr = mo(["", ".test(", ")"])), (0, _9.usePattern)(e20, n11), r11), function() { + var o11 = c10.includes(n11); + o11 || e20.subschema({ keyword: "patternProperties", schemaProp: n11, dataProp: r11, dataPropType: E9.Type.Str }, u10), i10.opts.unevaluated && true !== f10 ? t10.assign((0, O9._)(zr || (zr = mo(["", "[", "]"])), f10, r11), true) : o11 || i10.allErrors || t10.if((0, O9.not)(u10), function() { + return t10.break(); + }); + }); + }); + } + } }; + $9.default = A9; + var P9 = {}; + Object.defineProperty(P9, "__esModule", { value: true }); + var T9 = Q8; + var R9 = { keyword: "not", schemaType: ["object", "boolean"], trackErrors: true, code: function(e20) { + var t10 = e20.gen, n10 = e20.schema, r10 = e20.it; + if ((0, T9.alwaysValidSchema)(r10, n10)) + e20.fail(); + else { + var o10 = t10.name("valid"); + e20.subschema({ keyword: "not", compositeRule: true, createErrors: false, allErrors: false }, o10), e20.failResult(o10, function() { + return e20.reset(); + }, function() { + return e20.error(); + }); + } + }, error: { message: "must NOT be valid" } }; + P9.default = R9; + var N9 = {}; + Object.defineProperty(N9, "__esModule", { value: true }); + var I9 = { keyword: "anyOf", schemaType: "array", trackErrors: true, code: p5().validateUnion, error: { message: "must match a schema in anyOf" } }; + N9.default = I9; + var D9 = {}; + Object.defineProperty(D9, "__esModule", { value: true }); + var q9 = G8(); + var z9 = Q8; + var B9 = { keyword: "oneOf", schemaType: "array", trackErrors: true, error: { message: "must match exactly one schema in oneOf", params: function(e20) { + var t10 = e20.params; + return (0, q9._)(Br || (Br = mo(["{passingSchemas: ", "}"])), t10.passing); + } }, code: function(e20) { + var t10 = e20.gen, n10 = e20.schema, r10 = e20.parentSchema, o10 = e20.it; + if (!Array.isArray(n10)) + throw new Error("ajv implementation error"); + if (!o10.opts.discriminator || !r10.discriminator) { + var i10 = n10, a10 = t10.let("valid", false), s10 = t10.let("passing", null), c10 = t10.name("_valid"); + e20.setParams({ passing: s10 }), t10.block(function() { + i10.forEach(function(n11, r11) { + var i11; + (0, z9.alwaysValidSchema)(o10, n11) ? t10.var(c10, true) : i11 = e20.subschema({ keyword: "oneOf", schemaProp: r11, compositeRule: true }, c10), r11 > 0 && t10.if((0, q9._)(Lr || (Lr = mo(["", " && ", ""])), c10, a10)).assign(a10, false).assign(s10, (0, q9._)(Fr || (Fr = mo(["[", ", ", "]"])), s10, r11)).else(), t10.if(c10, function() { + t10.assign(a10, true), t10.assign(s10, r11), i11 && e20.mergeEvaluated(i11, q9.Name); + }); + }); + }), e20.result(a10, function() { + return e20.reset(); + }, function() { + return e20.error(true); + }); + } + } }; + D9.default = B9; + var L9 = {}; + Object.defineProperty(L9, "__esModule", { value: true }); + var F9 = Q8; + var V9 = { keyword: "allOf", schemaType: "array", code: function(e20) { + var t10 = e20.gen, n10 = e20.schema, r10 = e20.it; + if (!Array.isArray(n10)) + throw new Error("ajv implementation error"); + var o10 = t10.name("valid"); + n10.forEach(function(t11, n11) { + if (!(0, F9.alwaysValidSchema)(r10, t11)) { + var i10 = e20.subschema({ keyword: "allOf", schemaProp: n11 }, o10); + e20.ok(o10), e20.mergeEvaluated(i10); + } + }); + } }; + L9.default = V9; + var H9 = {}; + Object.defineProperty(H9, "__esModule", { value: true }); + var W9 = G8(); + var U9 = Q8; + var J9 = { keyword: "if", schemaType: ["object", "boolean"], trackErrors: true, error: { message: function(e20) { + var t10 = e20.params; + return (0, W9.str)(Vr || (Vr = mo(['must match "', '" schema'])), t10.ifClause); + }, params: function(e20) { + var t10 = e20.params; + return (0, W9._)(Hr || (Hr = mo(["{failingKeyword: ", "}"])), t10.ifClause); + } }, code: function(e20) { + var t10 = e20.gen, n10 = e20.parentSchema, r10 = e20.it; + void 0 === n10.then && void 0 === n10.else && (0, U9.checkStrictMode)(r10, '"if" without "then" and "else" is ignored'); + var o10 = K9(r10, "then"), i10 = K9(r10, "else"); + if (o10 || i10) { + var a10, s10 = t10.let("valid", true), c10 = t10.name("_valid"); + if (a10 = e20.subschema({ keyword: "if", compositeRule: true, createErrors: false, allErrors: false }, c10), e20.mergeEvaluated(a10), e20.reset(), o10 && i10) { + var l10 = t10.let("ifClause"); + e20.setParams({ ifClause: l10 }), t10.if(c10, u10("then", l10), u10("else", l10)); + } else + o10 ? t10.if(c10, u10("then")) : t10.if((0, W9.not)(c10), u10("else")); + e20.pass(s10, function() { + return e20.error(true); + }); + } + function u10(n11, r11) { + return function() { + var o11 = e20.subschema({ keyword: n11 }, c10); + t10.assign(s10, c10), e20.mergeValidEvaluated(o11, s10), r11 ? t10.assign(r11, (0, W9._)(Wr || (Wr = mo(["", ""])), n11)) : e20.setParams({ ifClause: n11 }); + }; + } + } }; + function K9(e20, t10) { + var n10 = e20.schema[t10]; + return void 0 !== n10 && !(0, U9.alwaysValidSchema)(e20, n10); + } + H9.default = J9; + var G9 = {}; + Object.defineProperty(G9, "__esModule", { value: true }); + var Q9 = Q8; + var Y9 = { keyword: ["then", "else"], schemaType: ["object", "boolean"], code: function(e20) { + var t10 = e20.keyword, n10 = e20.parentSchema, r10 = e20.it; + void 0 === n10.if && (0, Q9.checkStrictMode)(r10, '"'.concat(t10, '" without "if" is ignored')); + } }; + G9.default = Y9, Object.defineProperty(D7, "__esModule", { value: true }); + var X9 = q7; + var Z9 = V7; + var eee = H7; + var tee = X7; + var nee = o9; + var ree = l9; + var oee = u9; + var iee = v9; + var aee = k9; + var see = $9; + var cee = P9; + var lee = N9; + var uee = D9; + var fee = L9; + var dee = H9; + var hee = G9; + D7.default = function() { + var e20 = arguments.length > 0 && void 0 !== arguments[0] && arguments[0], t10 = [cee.default, lee.default, uee.default, fee.default, dee.default, hee.default, oee.default, iee.default, ree.default, aee.default, see.default]; + return e20 ? t10.push(Z9.default, tee.default) : t10.push(X9.default, eee.default), t10.push(nee.default), t10; + }; + var vee = {}; + var pee = {}; + Object.defineProperty(pee, "__esModule", { value: true }); + var mee = G8(); + var gee = { keyword: "format", type: ["number", "string"], schemaType: "string", $data: true, error: { message: function(e20) { + var t10 = e20.schemaCode; + return (0, mee.str)(Ur || (Ur = mo(['must match format "', '"'])), t10); + }, params: function(e20) { + var t10 = e20.schemaCode; + return (0, mee._)(Jr || (Jr = mo(["{format: ", "}"])), t10); + } }, code: function(e20, t10) { + var n10 = e20.gen, r10 = e20.data, o10 = e20.$data, i10 = e20.schema, a10 = e20.schemaCode, s10 = e20.it, c10 = s10.opts, l10 = s10.errSchemaPath, u10 = s10.schemaEnv, f10 = s10.self; + c10.validateFormats && (o10 ? function() { + var o11 = n10.scopeValue("formats", { ref: f10.formats, code: c10.code.formats }), i11 = n10.const("fDef", (0, mee._)(Kr || (Kr = mo(["", "[", "]"])), o11, a10)), s11 = n10.let("fType"), l11 = n10.let("format"); + n10.if((0, mee._)(Gr || (Gr = mo(["typeof ", ' == "object" && !(', " instanceof RegExp)"])), i11, i11), function() { + return n10.assign(s11, (0, mee._)(Qr || (Qr = mo(["", '.type || "string"'])), i11)).assign(l11, (0, mee._)(Yr || (Yr = mo(["", ".validate"])), i11)); + }, function() { + return n10.assign(s11, (0, mee._)(Xr || (Xr = mo(['"string"'])))).assign(l11, i11); + }), e20.fail$data((0, mee.or)(false === c10.strictSchema ? mee.nil : (0, mee._)(Zr || (Zr = mo(["", " && !", ""])), a10, l11), (d10 = u10.$async ? (0, mee._)(eo || (eo = mo(["(", ".async ? await ", "(", ") : ", "(", "))"])), i11, l11, r10, l11, r10) : (0, mee._)(to || (to = mo(["", "(", ")"])), l11, r10), h10 = (0, mee._)(no || (no = mo(["(typeof ", ' == "function" ? ', " : ", ".test(", "))"])), l11, d10, l11, r10), (0, mee._)(ro || (ro = mo(["", " && ", " !== true && ", " === ", " && !", ""])), l11, l11, s11, t10, h10)))); + var d10, h10; + }() : function() { + var o11 = f10.formats[i10]; + if (!o11) + return void function() { + if (false === c10.strictSchema) + return void f10.logger.warn(e21()); + throw new Error(e21()); + function e21() { + return 'unknown format "'.concat(i10, '" ignored in schema at path "').concat(l10, '"'); + } + }(); + if (true === o11) + return; + var a11 = jo(function(e21) { + var t11 = e21 instanceof RegExp ? (0, mee.regexpCode)(e21) : c10.code.formats ? (0, mee._)(oo || (oo = mo(["", "", ""])), c10.code.formats, (0, mee.getProperty)(i10)) : void 0, r11 = n10.scopeValue("formats", { key: i10, ref: e21, code: t11 }); + if ("object" == Ho(e21) && !(e21 instanceof RegExp)) + return [e21.type || "string", e21.validate, (0, mee._)(io || (io = mo(["", ".validate"])), r11)]; + return ["string", e21, r11]; + }(o11), 3), s11 = a11[0], d10 = a11[1], h10 = a11[2]; + s11 === t10 && e20.pass(function() { + if ("object" == Ho(o11) && !(o11 instanceof RegExp) && o11.async) { + if (!u10.$async) + throw new Error("async format in sync schema"); + return (0, mee._)(ao || (ao = mo(["await ", "(", ")"])), h10, r10); + } + return "function" == typeof d10 ? (0, mee._)(so || (so = mo(["", "(", ")"])), h10, r10) : (0, mee._)(co || (co = mo(["", ".test(", ")"])), h10, r10); + }()); + }()); + } }; + pee.default = gee, Object.defineProperty(vee, "__esModule", { value: true }); + var yee = [pee.default]; + vee.default = yee; + var bee = {}; + Object.defineProperty(bee, "__esModule", { value: true }), bee.contentVocabulary = bee.metadataVocabulary = void 0, bee.metadataVocabulary = ["title", "description", "default", "deprecated", "readOnly", "writeOnly", "examples"], bee.contentVocabulary = ["contentMediaType", "contentEncoding", "contentSchema"], Object.defineProperty(f6, "__esModule", { value: true }); + var kee = _6; + var wee = D7; + var xee = vee; + var jee = bee; + var See = [d6.default, kee.default, (0, wee.default)(), xee.default, jee.metadataVocabulary, jee.contentVocabulary]; + f6.default = See; + var Cee = {}; + var $ee = {}; + !function(e20) { + var t10; + Object.defineProperty(e20, "__esModule", { value: true }), e20.DiscrError = void 0, (t10 = e20.DiscrError || (e20.DiscrError = {})).Tag = "tag", t10.Mapping = "mapping"; + }($ee), Object.defineProperty(Cee, "__esModule", { value: true }); + var _ee = G8(); + var Oee = $ee; + var Mee = W5; + var Eee = Q8; + var Aee = { keyword: "discriminator", type: "object", schemaType: "object", error: { message: function(e20) { + var t10 = e20.params, n10 = t10.discrError, r10 = t10.tagName; + return n10 === Oee.DiscrError.Tag ? 'tag "'.concat(r10, '" must be string') : 'value of tag "'.concat(r10, '" must be in oneOf'); + }, params: function(e20) { + var t10 = e20.params, n10 = t10.discrError, r10 = t10.tag, o10 = t10.tagName; + return (0, _ee._)(lo || (lo = mo(["{error: ", ", tag: ", ", tagValue: ", "}"])), n10, o10, r10); + } }, code: function(e20) { + var t10 = e20.gen, n10 = e20.data, r10 = e20.schema, o10 = e20.parentSchema, i10 = e20.it, a10 = o10.oneOf; + if (!i10.opts.discriminator) + throw new Error("discriminator: requires discriminator option"); + var s10 = r10.propertyName; + if ("string" != typeof s10) + throw new Error("discriminator: requires propertyName"); + if (r10.mapping) + throw new Error("discriminator: mapping is not supported"); + if (!a10) + throw new Error("discriminator: requires oneOf keyword"); + var c10 = t10.let("valid", false), l10 = t10.const("tag", (0, _ee._)(uo || (uo = mo(["", "", ""])), n10, (0, _ee.getProperty)(s10))); + function u10(n11) { + var r11 = t10.name("valid"), o11 = e20.subschema({ keyword: "oneOf", schemaProp: n11 }, r11); + return e20.mergeEvaluated(o11, _ee.Name), r11; + } + t10.if((0, _ee._)(fo || (fo = mo(["typeof ", ' == "string"'])), l10), function() { + return function() { + var n11 = function() { + for (var e21, t11 = {}, n12 = f10(o10), r12 = true, c11 = 0; c11 < a10.length; c11++) { + var l11 = a10[c11]; + (null == l11 ? void 0 : l11.$ref) && !(0, Eee.schemaHasRulesButRef)(l11, i10.self.RULES) && (l11 = Mee.resolveRef.call(i10.self, i10.schemaEnv.root, i10.baseId, null == l11 ? void 0 : l11.$ref)) instanceof Mee.SchemaEnv && (l11 = l11.schema); + var u11 = null === (e21 = null == l11 ? void 0 : l11.properties) || void 0 === e21 ? void 0 : e21[s10]; + if ("object" != Ho(u11)) + throw new Error('discriminator: oneOf subschemas (or referenced schemas) must have "properties/'.concat(s10, '"')); + r12 = r12 && (n12 || f10(l11)), d10(u11, c11); + } + if (!r12) + throw new Error('discriminator: "'.concat(s10, '" must be required')); + return t11; + function f10(e23) { + var t12 = e23.required; + return Array.isArray(t12) && t12.includes(s10); + } + function d10(e23, t12) { + if (e23.const) + h10(e23.const, t12); + else { + if (!e23.enum) + throw new Error('discriminator: "properties/'.concat(s10, '" must have "const" or "enum"')); + var n13, r13 = bo(e23.enum); + try { + for (r13.s(); !(n13 = r13.n()).done; ) { + h10(n13.value, t12); + } + } catch (e24) { + r13.e(e24); + } finally { + r13.f(); + } + } + } + function h10(e23, n13) { + if ("string" != typeof e23 || e23 in t11) + throw new Error('discriminator: "'.concat(s10, '" values must be unique strings')); + t11[e23] = n13; + } + }(); + for (var r11 in t10.if(false), n11) + t10.elseIf((0, _ee._)(ho || (ho = mo(["", " === ", ""])), l10, r11)), t10.assign(c10, u10(n11[r11])); + t10.else(), e20.error(false, { discrError: Oee.DiscrError.Mapping, tag: l10, tagName: s10 }), t10.endIf(); + }(); + }, function() { + return e20.error(false, { discrError: Oee.DiscrError.Tag, tag: l10, tagName: s10 }); + }), e20.ok(c10); + } }; + Cee.default = Aee; + var Pee = { $schema: "http://json-schema.org/draft-07/schema#", $id: "http://json-schema.org/draft-07/schema#", title: "Core schema meta-schema", definitions: { schemaArray: { type: "array", minItems: 1, items: { $ref: "#" } }, nonNegativeInteger: { type: "integer", minimum: 0 }, nonNegativeIntegerDefault0: { allOf: [{ $ref: "#/definitions/nonNegativeInteger" }, { default: 0 }] }, simpleTypes: { enum: ["array", "boolean", "integer", "null", "number", "object", "string"] }, stringArray: { type: "array", items: { type: "string" }, uniqueItems: true, default: [] } }, type: ["object", "boolean"], properties: { $id: { type: "string", format: "uri-reference" }, $schema: { type: "string", format: "uri" }, $ref: { type: "string", format: "uri-reference" }, $comment: { type: "string" }, title: { type: "string" }, description: { type: "string" }, default: true, readOnly: { type: "boolean", default: false }, examples: { type: "array", items: true }, multipleOf: { type: "number", exclusiveMinimum: 0 }, maximum: { type: "number" }, exclusiveMaximum: { type: "number" }, minimum: { type: "number" }, exclusiveMinimum: { type: "number" }, maxLength: { $ref: "#/definitions/nonNegativeInteger" }, minLength: { $ref: "#/definitions/nonNegativeIntegerDefault0" }, pattern: { type: "string", format: "regex" }, additionalItems: { $ref: "#" }, items: { anyOf: [{ $ref: "#" }, { $ref: "#/definitions/schemaArray" }], default: true }, maxItems: { $ref: "#/definitions/nonNegativeInteger" }, minItems: { $ref: "#/definitions/nonNegativeIntegerDefault0" }, uniqueItems: { type: "boolean", default: false }, contains: { $ref: "#" }, maxProperties: { $ref: "#/definitions/nonNegativeInteger" }, minProperties: { $ref: "#/definitions/nonNegativeIntegerDefault0" }, required: { $ref: "#/definitions/stringArray" }, additionalProperties: { $ref: "#" }, definitions: { type: "object", additionalProperties: { $ref: "#" }, default: {} }, properties: { type: "object", additionalProperties: { $ref: "#" }, default: {} }, patternProperties: { type: "object", additionalProperties: { $ref: "#" }, propertyNames: { format: "regex" }, default: {} }, dependencies: { type: "object", additionalProperties: { anyOf: [{ $ref: "#" }, { $ref: "#/definitions/stringArray" }] } }, propertyNames: { $ref: "#" }, const: true, enum: { type: "array", items: true, minItems: 1, uniqueItems: true }, type: { anyOf: [{ $ref: "#/definitions/simpleTypes" }, { type: "array", items: { $ref: "#/definitions/simpleTypes" }, minItems: 1, uniqueItems: true }] }, format: { type: "string" }, contentMediaType: { type: "string" }, contentEncoding: { type: "string" }, if: { $ref: "#" }, then: { $ref: "#" }, else: { $ref: "#" }, allOf: { $ref: "#/definitions/schemaArray" }, anyOf: { $ref: "#/definitions/schemaArray" }, oneOf: { $ref: "#/definitions/schemaArray" }, not: { $ref: "#" } }, default: true }; + !function(e20, t10) { + Object.defineProperty(t10, "__esModule", { value: true }), t10.MissingRefError = t10.ValidationError = t10.CodeGen = t10.Name = t10.nil = t10.stringify = t10.str = t10._ = t10.KeywordCxt = void 0; + var n10 = f6, r10 = Cee, o10 = Pee, i10 = ["/properties"], a10 = "http://json-schema.org/draft-07/schema", s10 = function(e21) { + function t11() { + return No(this, t11), _o(this, t11, arguments); + } + return Ao(t11, e21), Do(t11, [{ key: "_addVocabularies", value: function() { + var e23 = this; + go(Mo(t11.prototype), "_addVocabularies", this).call(this), n10.default.forEach(function(t12) { + return e23.addVocabulary(t12); + }), this.opts.discriminator && this.addKeyword(r10.default); + } }, { key: "_addDefaultMetaSchema", value: function() { + if (go(Mo(t11.prototype), "_addDefaultMetaSchema", this).call(this), this.opts.meta) { + var e23 = this.opts.$data ? this.$dataMetaSchema(o10, i10) : o10; + this.addMetaSchema(e23, a10, false), this.refs["http://json-schema.org/schema"] = a10; + } + } }, { key: "defaultMeta", value: function() { + return this.opts.defaultMeta = go(Mo(t11.prototype), "defaultMeta", this).call(this) || (this.getSchema(a10) ? a10 : void 0); + } }]), t11; + }(q8.default); + e20.exports = t10 = s10, Object.defineProperty(t10, "__esModule", { value: true }), t10.default = s10; + var c10 = q5(); + Object.defineProperty(t10, "KeywordCxt", { enumerable: true, get: function() { + return c10.KeywordCxt; + } }); + var l10 = G8(); + Object.defineProperty(t10, "_", { enumerable: true, get: function() { + return l10._; + } }), Object.defineProperty(t10, "str", { enumerable: true, get: function() { + return l10.str; + } }), Object.defineProperty(t10, "stringify", { enumerable: true, get: function() { + return l10.stringify; + } }), Object.defineProperty(t10, "nil", { enumerable: true, get: function() { + return l10.nil; + } }), Object.defineProperty(t10, "Name", { enumerable: true, get: function() { + return l10.Name; + } }), Object.defineProperty(t10, "CodeGen", { enumerable: true, get: function() { + return l10.CodeGen; + } }); + var u10 = L5(); + Object.defineProperty(t10, "ValidationError", { enumerable: true, get: function() { + return u10.default; + } }); + var f10 = H5(); + Object.defineProperty(t10, "MissingRefError", { enumerable: true, get: function() { + return f10.default; + } }); + }(D8, D8.exports); + var Tee = yc(D8.exports); + var Dee = {}; + !function(e20) { + function t10(e21) { + return null !== e21 && "[object Array]" === Object.prototype.toString.call(e21); + } + function n10(e21) { + return null !== e21 && "[object Object]" === Object.prototype.toString.call(e21); + } + function r10(e21, o11) { + if (e21 === o11) + return true; + if (Object.prototype.toString.call(e21) !== Object.prototype.toString.call(o11)) + return false; + if (true === t10(e21)) { + if (e21.length !== o11.length) + return false; + for (var i11 = 0; i11 < e21.length; i11++) + if (false === r10(e21[i11], o11[i11])) + return false; + return true; + } + if (true === n10(e21)) { + var a11 = {}; + for (var s11 in e21) + if (hasOwnProperty.call(e21, s11)) { + if (false === r10(e21[s11], o11[s11])) + return false; + a11[s11] = true; + } + for (var c11 in o11) + if (hasOwnProperty.call(o11, c11) && true !== a11[c11]) + return false; + return true; + } + return false; + } + function o10(e21) { + if ("" === e21 || false === e21 || null === e21) + return true; + if (t10(e21) && 0 === e21.length) + return true; + if (n10(e21)) { + for (var r11 in e21) + if (e21.hasOwnProperty(r11)) + return false; + return true; + } + return false; + } + var i10; + i10 = "function" == typeof String.prototype.trimLeft ? function(e21) { + return e21.trimLeft(); + } : function(e21) { + return e21.match(/^\s*(.*)/)[1]; + }; + var a10 = 0, s10 = 1, c10 = 2, l10 = 3, u10 = 4, f10 = 6, d10 = 8, h10 = 9, v10 = { 0: "number", 1: "any", 2: "string", 3: "array", 4: "object", 5: "boolean", 6: "expression", 7: "null", 8: "Array", 9: "Array" }, p10 = "EOF", m10 = "UnquotedIdentifier", g10 = "QuotedIdentifier", y10 = "Rbracket", b10 = "Rparen", k10 = "Comma", w10 = "Colon", x10 = "Rbrace", j10 = "Number", S10 = "Current", C10 = "Expref", $10 = "Pipe", _10 = "Or", O10 = "And", M10 = "EQ", E10 = "GT", A10 = "LT", P10 = "GTE", T8 = "LTE", R8 = "NE", N8 = "Flatten", I10 = "Star", D10 = "Filter", q10 = "Dot", z10 = "Not", B10 = "Lbrace", L10 = "Lbracket", F10 = "Lparen", V10 = "Literal", H10 = { ".": q10, "*": I10, ",": k10, ":": w10, "{": B10, "}": x10, "]": y10, "(": F10, ")": b10, "@": S10 }, W10 = { "<": true, ">": true, "=": true, "!": true }, U10 = { " ": true, " ": true, "\n": true }; + function J10(e21) { + return e21 >= "0" && e21 <= "9" || "-" === e21; + } + function K10() { + } + K10.prototype = { tokenize: function(e21) { + var t11, n11, r11, o11, i11 = []; + for (this._current = 0; this._current < e21.length; ) + if ((o11 = e21[this._current]) >= "a" && o11 <= "z" || o11 >= "A" && o11 <= "Z" || "_" === o11) + t11 = this._current, n11 = this._consumeUnquotedIdentifier(e21), i11.push({ type: m10, value: n11, start: t11 }); + else if (void 0 !== H10[e21[this._current]]) + i11.push({ type: H10[e21[this._current]], value: e21[this._current], start: this._current }), this._current++; + else if (J10(e21[this._current])) + r11 = this._consumeNumber(e21), i11.push(r11); + else if ("[" === e21[this._current]) + r11 = this._consumeLBracket(e21), i11.push(r11); + else if ('"' === e21[this._current]) + t11 = this._current, n11 = this._consumeQuotedIdentifier(e21), i11.push({ type: g10, value: n11, start: t11 }); + else if ("'" === e21[this._current]) + t11 = this._current, n11 = this._consumeRawStringLiteral(e21), i11.push({ type: V10, value: n11, start: t11 }); + else if ("`" === e21[this._current]) { + t11 = this._current; + var a11 = this._consumeLiteral(e21); + i11.push({ type: V10, value: a11, start: t11 }); + } else if (void 0 !== W10[e21[this._current]]) + i11.push(this._consumeOperator(e21)); + else if (void 0 !== U10[e21[this._current]]) + this._current++; + else if ("&" === e21[this._current]) + t11 = this._current, this._current++, "&" === e21[this._current] ? (this._current++, i11.push({ type: O10, value: "&&", start: t11 })) : i11.push({ type: C10, value: "&", start: t11 }); + else { + if ("|" !== e21[this._current]) { + var s11 = new Error("Unknown character:" + e21[this._current]); + throw s11.name = "LexerError", s11; + } + t11 = this._current, this._current++, "|" === e21[this._current] ? (this._current++, i11.push({ type: _10, value: "||", start: t11 })) : i11.push({ type: $10, value: "|", start: t11 }); + } + return i11; + }, _consumeUnquotedIdentifier: function(e21) { + var t11, n11 = this._current; + for (this._current++; this._current < e21.length && ((t11 = e21[this._current]) >= "a" && t11 <= "z" || t11 >= "A" && t11 <= "Z" || t11 >= "0" && t11 <= "9" || "_" === t11); ) + this._current++; + return e21.slice(n11, this._current); + }, _consumeQuotedIdentifier: function(e21) { + var t11 = this._current; + this._current++; + for (var n11 = e21.length; '"' !== e21[this._current] && this._current < n11; ) { + var r11 = this._current; + "\\" !== e21[r11] || "\\" !== e21[r11 + 1] && '"' !== e21[r11 + 1] ? r11++ : r11 += 2, this._current = r11; + } + return this._current++, JSON.parse(e21.slice(t11, this._current)); + }, _consumeRawStringLiteral: function(e21) { + var t11 = this._current; + this._current++; + for (var n11 = e21.length; "'" !== e21[this._current] && this._current < n11; ) { + var r11 = this._current; + "\\" !== e21[r11] || "\\" !== e21[r11 + 1] && "'" !== e21[r11 + 1] ? r11++ : r11 += 2, this._current = r11; + } + return this._current++, e21.slice(t11 + 1, this._current - 1).replace("\\'", "'"); + }, _consumeNumber: function(e21) { + var t11 = this._current; + this._current++; + for (var n11 = e21.length; J10(e21[this._current]) && this._current < n11; ) + this._current++; + var r11 = parseInt(e21.slice(t11, this._current)); + return { type: j10, value: r11, start: t11 }; + }, _consumeLBracket: function(e21) { + var t11 = this._current; + return this._current++, "?" === e21[this._current] ? (this._current++, { type: D10, value: "[?", start: t11 }) : "]" === e21[this._current] ? (this._current++, { type: N8, value: "[]", start: t11 }) : { type: L10, value: "[", start: t11 }; + }, _consumeOperator: function(e21) { + var t11 = this._current, n11 = e21[t11]; + return this._current++, "!" === n11 ? "=" === e21[this._current] ? (this._current++, { type: R8, value: "!=", start: t11 }) : { type: z10, value: "!", start: t11 } : "<" === n11 ? "=" === e21[this._current] ? (this._current++, { type: T8, value: "<=", start: t11 }) : { type: A10, value: "<", start: t11 } : ">" === n11 ? "=" === e21[this._current] ? (this._current++, { type: P10, value: ">=", start: t11 }) : { type: E10, value: ">", start: t11 } : "=" === n11 && "=" === e21[this._current] ? (this._current++, { type: M10, value: "==", start: t11 }) : void 0; + }, _consumeLiteral: function(e21) { + this._current++; + for (var t11, n11 = this._current, r11 = e21.length; "`" !== e21[this._current] && this._current < r11; ) { + var o11 = this._current; + "\\" !== e21[o11] || "\\" !== e21[o11 + 1] && "`" !== e21[o11 + 1] ? o11++ : o11 += 2, this._current = o11; + } + var a11 = i10(e21.slice(n11, this._current)); + return a11 = a11.replace("\\`", "`"), t11 = this._looksLikeJSON(a11) ? JSON.parse(a11) : JSON.parse('"' + a11 + '"'), this._current++, t11; + }, _looksLikeJSON: function(e21) { + if ("" === e21) + return false; + if ('[{"'.indexOf(e21[0]) >= 0) + return true; + if (["true", "false", "null"].indexOf(e21) >= 0) + return true; + if (!("-0123456789".indexOf(e21[0]) >= 0)) + return false; + try { + return JSON.parse(e21), true; + } catch (e23) { + return false; + } + } }; + var G10 = {}; + function Q10() { + } + function Y10(e21) { + this.runtime = e21; + } + function X10(e21) { + this._interpreter = e21, this.functionTable = { abs: { _func: this._functionAbs, _signature: [{ types: [a10] }] }, avg: { _func: this._functionAvg, _signature: [{ types: [d10] }] }, ceil: { _func: this._functionCeil, _signature: [{ types: [a10] }] }, contains: { _func: this._functionContains, _signature: [{ types: [c10, l10] }, { types: [s10] }] }, ends_with: { _func: this._functionEndsWith, _signature: [{ types: [c10] }, { types: [c10] }] }, floor: { _func: this._functionFloor, _signature: [{ types: [a10] }] }, length: { _func: this._functionLength, _signature: [{ types: [c10, l10, u10] }] }, map: { _func: this._functionMap, _signature: [{ types: [f10] }, { types: [l10] }] }, max: { _func: this._functionMax, _signature: [{ types: [d10, h10] }] }, merge: { _func: this._functionMerge, _signature: [{ types: [u10], variadic: true }] }, max_by: { _func: this._functionMaxBy, _signature: [{ types: [l10] }, { types: [f10] }] }, sum: { _func: this._functionSum, _signature: [{ types: [d10] }] }, starts_with: { _func: this._functionStartsWith, _signature: [{ types: [c10] }, { types: [c10] }] }, min: { _func: this._functionMin, _signature: [{ types: [d10, h10] }] }, min_by: { _func: this._functionMinBy, _signature: [{ types: [l10] }, { types: [f10] }] }, type: { _func: this._functionType, _signature: [{ types: [s10] }] }, keys: { _func: this._functionKeys, _signature: [{ types: [u10] }] }, values: { _func: this._functionValues, _signature: [{ types: [u10] }] }, sort: { _func: this._functionSort, _signature: [{ types: [h10, d10] }] }, sort_by: { _func: this._functionSortBy, _signature: [{ types: [l10] }, { types: [f10] }] }, join: { _func: this._functionJoin, _signature: [{ types: [c10] }, { types: [h10] }] }, reverse: { _func: this._functionReverse, _signature: [{ types: [c10, l10] }] }, to_array: { _func: this._functionToArray, _signature: [{ types: [s10] }] }, to_string: { _func: this._functionToString, _signature: [{ types: [s10] }] }, to_number: { _func: this._functionToNumber, _signature: [{ types: [s10] }] }, not_null: { _func: this._functionNotNull, _signature: [{ types: [s10], variadic: true }] } }; + } + G10[p10] = 0, G10[m10] = 0, G10[g10] = 0, G10[y10] = 0, G10[b10] = 0, G10[k10] = 0, G10[x10] = 0, G10[j10] = 0, G10[S10] = 0, G10[C10] = 0, G10[$10] = 1, G10[_10] = 2, G10[O10] = 3, G10[M10] = 5, G10[E10] = 5, G10[A10] = 5, G10[P10] = 5, G10[T8] = 5, G10[R8] = 5, G10[N8] = 9, G10[I10] = 20, G10[D10] = 21, G10[q10] = 40, G10[z10] = 45, G10[B10] = 50, G10[L10] = 55, G10[F10] = 60, Q10.prototype = { parse: function(e21) { + this._loadTokens(e21), this.index = 0; + var t11 = this.expression(0); + if (this._lookahead(0) !== p10) { + var n11 = this._lookaheadToken(0), r11 = new Error("Unexpected token type: " + n11.type + ", value: " + n11.value); + throw r11.name = "ParserError", r11; + } + return t11; + }, _loadTokens: function(e21) { + var t11 = new K10().tokenize(e21); + t11.push({ type: p10, value: "", start: e21.length }), this.tokens = t11; + }, expression: function(e21) { + var t11 = this._lookaheadToken(0); + this._advance(); + for (var n11 = this.nud(t11), r11 = this._lookahead(0); e21 < G10[r11]; ) + this._advance(), n11 = this.led(r11, n11), r11 = this._lookahead(0); + return n11; + }, _lookahead: function(e21) { + return this.tokens[this.index + e21].type; + }, _lookaheadToken: function(e21) { + return this.tokens[this.index + e21]; + }, _advance: function() { + this.index++; + }, nud: function(e21) { + var t11, n11; + switch (e21.type) { + case V10: + return { type: "Literal", value: e21.value }; + case m10: + return { type: "Field", name: e21.value }; + case g10: + var r11 = { type: "Field", name: e21.value }; + if (this._lookahead(0) === F10) + throw new Error("Quoted identifier not allowed for function names."); + return r11; + case z10: + return { type: "NotExpression", children: [t11 = this.expression(G10.Not)] }; + case I10: + return t11 = null, { type: "ValueProjection", children: [{ type: "Identity" }, t11 = this._lookahead(0) === y10 ? { type: "Identity" } : this._parseProjectionRHS(G10.Star)] }; + case D10: + return this.led(e21.type, { type: "Identity" }); + case B10: + return this._parseMultiselectHash(); + case N8: + return { type: "Projection", children: [{ type: N8, children: [{ type: "Identity" }] }, t11 = this._parseProjectionRHS(G10.Flatten)] }; + case L10: + return this._lookahead(0) === j10 || this._lookahead(0) === w10 ? (t11 = this._parseIndexExpression(), this._projectIfSlice({ type: "Identity" }, t11)) : this._lookahead(0) === I10 && this._lookahead(1) === y10 ? (this._advance(), this._advance(), { type: "Projection", children: [{ type: "Identity" }, t11 = this._parseProjectionRHS(G10.Star)] }) : this._parseMultiselectList(); + case S10: + return { type: S10 }; + case C10: + return { type: "ExpressionReference", children: [n11 = this.expression(G10.Expref)] }; + case F10: + for (var o11 = []; this._lookahead(0) !== b10; ) + this._lookahead(0) === S10 ? (n11 = { type: S10 }, this._advance()) : n11 = this.expression(0), o11.push(n11); + return this._match(b10), o11[0]; + default: + this._errorToken(e21); + } + }, led: function(e21, t11) { + var n11; + switch (e21) { + case q10: + var r11 = G10.Dot; + return this._lookahead(0) !== I10 ? { type: "Subexpression", children: [t11, n11 = this._parseDotRHS(r11)] } : (this._advance(), { type: "ValueProjection", children: [t11, n11 = this._parseProjectionRHS(r11)] }); + case $10: + return n11 = this.expression(G10.Pipe), { type: $10, children: [t11, n11] }; + case _10: + return { type: "OrExpression", children: [t11, n11 = this.expression(G10.Or)] }; + case O10: + return { type: "AndExpression", children: [t11, n11 = this.expression(G10.And)] }; + case F10: + for (var o11, i11 = t11.name, a11 = []; this._lookahead(0) !== b10; ) + this._lookahead(0) === S10 ? (o11 = { type: S10 }, this._advance()) : o11 = this.expression(0), this._lookahead(0) === k10 && this._match(k10), a11.push(o11); + return this._match(b10), { type: "Function", name: i11, children: a11 }; + case D10: + var s11 = this.expression(0); + return this._match(y10), { type: "FilterProjection", children: [t11, n11 = this._lookahead(0) === N8 ? { type: "Identity" } : this._parseProjectionRHS(G10.Filter), s11] }; + case N8: + return { type: "Projection", children: [{ type: N8, children: [t11] }, this._parseProjectionRHS(G10.Flatten)] }; + case M10: + case R8: + case E10: + case P10: + case A10: + case T8: + return this._parseComparator(t11, e21); + case L10: + var c11 = this._lookaheadToken(0); + return c11.type === j10 || c11.type === w10 ? (n11 = this._parseIndexExpression(), this._projectIfSlice(t11, n11)) : (this._match(I10), this._match(y10), { type: "Projection", children: [t11, n11 = this._parseProjectionRHS(G10.Star)] }); + default: + this._errorToken(this._lookaheadToken(0)); + } + }, _match: function(e21) { + if (this._lookahead(0) !== e21) { + var t11 = this._lookaheadToken(0), n11 = new Error("Expected " + e21 + ", got: " + t11.type); + throw n11.name = "ParserError", n11; + } + this._advance(); + }, _errorToken: function(e21) { + var t11 = new Error("Invalid token (" + e21.type + '): "' + e21.value + '"'); + throw t11.name = "ParserError", t11; + }, _parseIndexExpression: function() { + if (this._lookahead(0) === w10 || this._lookahead(1) === w10) + return this._parseSliceExpression(); + var e21 = { type: "Index", value: this._lookaheadToken(0).value }; + return this._advance(), this._match(y10), e21; + }, _projectIfSlice: function(e21, t11) { + var n11 = { type: "IndexExpression", children: [e21, t11] }; + return "Slice" === t11.type ? { type: "Projection", children: [n11, this._parseProjectionRHS(G10.Star)] } : n11; + }, _parseSliceExpression: function() { + for (var e21 = [null, null, null], t11 = 0, n11 = this._lookahead(0); n11 !== y10 && t11 < 3; ) { + if (n11 === w10) + t11++, this._advance(); + else { + if (n11 !== j10) { + var r11 = this._lookahead(0), o11 = new Error("Syntax error, unexpected token: " + r11.value + "(" + r11.type + ")"); + throw o11.name = "Parsererror", o11; + } + e21[t11] = this._lookaheadToken(0).value, this._advance(); + } + n11 = this._lookahead(0); + } + return this._match(y10), { type: "Slice", children: e21 }; + }, _parseComparator: function(e21, t11) { + return { type: "Comparator", name: t11, children: [e21, this.expression(G10[t11])] }; + }, _parseDotRHS: function(e21) { + var t11 = this._lookahead(0); + return [m10, g10, I10].indexOf(t11) >= 0 ? this.expression(e21) : t11 === L10 ? (this._match(L10), this._parseMultiselectList()) : t11 === B10 ? (this._match(B10), this._parseMultiselectHash()) : void 0; + }, _parseProjectionRHS: function(e21) { + var t11; + if (G10[this._lookahead(0)] < 10) + t11 = { type: "Identity" }; + else if (this._lookahead(0) === L10) + t11 = this.expression(e21); + else if (this._lookahead(0) === D10) + t11 = this.expression(e21); + else { + if (this._lookahead(0) !== q10) { + var n11 = this._lookaheadToken(0), r11 = new Error("Sytanx error, unexpected token: " + n11.value + "(" + n11.type + ")"); + throw r11.name = "ParserError", r11; + } + this._match(q10), t11 = this._parseDotRHS(e21); + } + return t11; + }, _parseMultiselectList: function() { + for (var e21 = []; this._lookahead(0) !== y10; ) { + var t11 = this.expression(0); + if (e21.push(t11), this._lookahead(0) === k10 && (this._match(k10), this._lookahead(0) === y10)) + throw new Error("Unexpected token Rbracket"); + } + return this._match(y10), { type: "MultiSelectList", children: e21 }; + }, _parseMultiselectHash: function() { + for (var e21, t11, n11, r11 = [], o11 = [m10, g10]; ; ) { + if (e21 = this._lookaheadToken(0), o11.indexOf(e21.type) < 0) + throw new Error("Expecting an identifier token, got: " + e21.type); + if (t11 = e21.value, this._advance(), this._match(w10), n11 = { type: "KeyValuePair", name: t11, value: this.expression(0) }, r11.push(n11), this._lookahead(0) === k10) + this._match(k10); + else if (this._lookahead(0) === x10) { + this._match(x10); + break; + } + } + return { type: "MultiSelectHash", children: r11 }; + } }, Y10.prototype = { search: function(e21, t11) { + return this.visit(e21, t11); + }, visit: function(e21, i11) { + var a11, s11, c11, l11, u11, f11, d11, h11, v11; + switch (e21.type) { + case "Field": + return null !== i11 && n10(i11) ? void 0 === (f11 = i11[e21.name]) ? null : f11 : null; + case "Subexpression": + for (c11 = this.visit(e21.children[0], i11), v11 = 1; v11 < e21.children.length; v11++) + if (null === (c11 = this.visit(e21.children[1], c11))) + return null; + return c11; + case "IndexExpression": + return d11 = this.visit(e21.children[0], i11), this.visit(e21.children[1], d11); + case "Index": + if (!t10(i11)) + return null; + var p11 = e21.value; + return p11 < 0 && (p11 = i11.length + p11), void 0 === (c11 = i11[p11]) && (c11 = null), c11; + case "Slice": + if (!t10(i11)) + return null; + var m11 = e21.children.slice(0), g11 = this.computeSliceParams(i11.length, m11), y11 = g11[0], b11 = g11[1], k11 = g11[2]; + if (c11 = [], k11 > 0) + for (v11 = y11; v11 < b11; v11 += k11) + c11.push(i11[v11]); + else + for (v11 = y11; v11 > b11; v11 += k11) + c11.push(i11[v11]); + return c11; + case "Projection": + var w11 = this.visit(e21.children[0], i11); + if (!t10(w11)) + return null; + for (h11 = [], v11 = 0; v11 < w11.length; v11++) + null !== (s11 = this.visit(e21.children[1], w11[v11])) && h11.push(s11); + return h11; + case "ValueProjection": + if (!n10(w11 = this.visit(e21.children[0], i11))) + return null; + h11 = []; + var x11 = function(e23) { + for (var t11 = Object.keys(e23), n11 = [], r11 = 0; r11 < t11.length; r11++) + n11.push(e23[t11[r11]]); + return n11; + }(w11); + for (v11 = 0; v11 < x11.length; v11++) + null !== (s11 = this.visit(e21.children[1], x11[v11])) && h11.push(s11); + return h11; + case "FilterProjection": + if (!t10(w11 = this.visit(e21.children[0], i11))) + return null; + var j11 = [], _11 = []; + for (v11 = 0; v11 < w11.length; v11++) + o10(a11 = this.visit(e21.children[2], w11[v11])) || j11.push(w11[v11]); + for (var O11 = 0; O11 < j11.length; O11++) + null !== (s11 = this.visit(e21.children[1], j11[O11])) && _11.push(s11); + return _11; + case "Comparator": + switch (l11 = this.visit(e21.children[0], i11), u11 = this.visit(e21.children[1], i11), e21.name) { + case M10: + c11 = r10(l11, u11); + break; + case R8: + c11 = !r10(l11, u11); + break; + case E10: + c11 = l11 > u11; + break; + case P10: + c11 = l11 >= u11; + break; + case A10: + c11 = l11 < u11; + break; + case T8: + c11 = l11 <= u11; + break; + default: + throw new Error("Unknown comparator: " + e21.name); + } + return c11; + case N8: + var I11 = this.visit(e21.children[0], i11); + if (!t10(I11)) + return null; + var D11 = []; + for (v11 = 0; v11 < I11.length; v11++) + t10(s11 = I11[v11]) ? D11.push.apply(D11, s11) : D11.push(s11); + return D11; + case "Identity": + return i11; + case "MultiSelectList": + if (null === i11) + return null; + for (h11 = [], v11 = 0; v11 < e21.children.length; v11++) + h11.push(this.visit(e21.children[v11], i11)); + return h11; + case "MultiSelectHash": + if (null === i11) + return null; + var q11; + for (h11 = {}, v11 = 0; v11 < e21.children.length; v11++) + h11[(q11 = e21.children[v11]).name] = this.visit(q11.value, i11); + return h11; + case "OrExpression": + return o10(a11 = this.visit(e21.children[0], i11)) && (a11 = this.visit(e21.children[1], i11)), a11; + case "AndExpression": + return true === o10(l11 = this.visit(e21.children[0], i11)) ? l11 : this.visit(e21.children[1], i11); + case "NotExpression": + return o10(l11 = this.visit(e21.children[0], i11)); + case "Literal": + return e21.value; + case $10: + return d11 = this.visit(e21.children[0], i11), this.visit(e21.children[1], d11); + case S10: + return i11; + case "Function": + var z11 = []; + for (v11 = 0; v11 < e21.children.length; v11++) + z11.push(this.visit(e21.children[v11], i11)); + return this.runtime.callFunction(e21.name, z11); + case "ExpressionReference": + var B11 = e21.children[0]; + return B11.jmespathType = C10, B11; + default: + throw new Error("Unknown node type: " + e21.type); + } + }, computeSliceParams: function(e21, t11) { + var n11 = t11[0], r11 = t11[1], o11 = t11[2], i11 = [null, null, null]; + if (null === o11) + o11 = 1; + else if (0 === o11) { + var a11 = new Error("Invalid slice, step cannot be 0"); + throw a11.name = "RuntimeError", a11; + } + var s11 = o11 < 0; + return n11 = null === n11 ? s11 ? e21 - 1 : 0 : this.capSliceRange(e21, n11, o11), r11 = null === r11 ? s11 ? -1 : e21 : this.capSliceRange(e21, r11, o11), i11[0] = n11, i11[1] = r11, i11[2] = o11, i11; + }, capSliceRange: function(e21, t11, n11) { + return t11 < 0 ? (t11 += e21) < 0 && (t11 = n11 < 0 ? -1 : 0) : t11 >= e21 && (t11 = n11 < 0 ? e21 - 1 : e21), t11; + } }, X10.prototype = { callFunction: function(e21, t11) { + var n11 = this.functionTable[e21]; + if (void 0 === n11) + throw new Error("Unknown function: " + e21 + "()"); + return this._validateArgs(e21, t11, n11._signature), n11._func.call(this, t11); + }, _validateArgs: function(e21, t11, n11) { + var r11, o11, i11, a11; + if (n11[n11.length - 1].variadic) { + if (t11.length < n11.length) + throw r11 = 1 === n11.length ? " argument" : " arguments", new Error("ArgumentError: " + e21 + "() takes at least" + n11.length + r11 + " but received " + t11.length); + } else if (t11.length !== n11.length) + throw r11 = 1 === n11.length ? " argument" : " arguments", new Error("ArgumentError: " + e21 + "() takes " + n11.length + r11 + " but received " + t11.length); + for (var s11 = 0; s11 < n11.length; s11++) { + a11 = false, o11 = n11[s11].types, i11 = this._getTypeName(t11[s11]); + for (var c11 = 0; c11 < o11.length; c11++) + if (this._typeMatches(i11, o11[c11], t11[s11])) { + a11 = true; + break; + } + if (!a11) { + var l11 = o11.map(function(e23) { + return v10[e23]; + }).join(","); + throw new Error("TypeError: " + e21 + "() expected argument " + (s11 + 1) + " to be type " + l11 + " but received type " + v10[i11] + " instead."); + } + } + }, _typeMatches: function(e21, t11, n11) { + if (t11 === s10) + return true; + if (t11 !== h10 && t11 !== d10 && t11 !== l10) + return e21 === t11; + if (t11 === l10) + return e21 === l10; + if (e21 === l10) { + var r11; + t11 === d10 ? r11 = a10 : t11 === h10 && (r11 = c10); + for (var o11 = 0; o11 < n11.length; o11++) + if (!this._typeMatches(this._getTypeName(n11[o11]), r11, n11[o11])) + return false; + return true; + } + }, _getTypeName: function(e21) { + switch (Object.prototype.toString.call(e21)) { + case "[object String]": + return c10; + case "[object Number]": + return a10; + case "[object Array]": + return l10; + case "[object Boolean]": + return 5; + case "[object Null]": + return 7; + case "[object Object]": + return e21.jmespathType === C10 ? f10 : u10; + } + }, _functionStartsWith: function(e21) { + return 0 === e21[0].lastIndexOf(e21[1]); + }, _functionEndsWith: function(e21) { + var t11 = e21[0], n11 = e21[1]; + return -1 !== t11.indexOf(n11, t11.length - n11.length); + }, _functionReverse: function(e21) { + if (this._getTypeName(e21[0]) === c10) { + for (var t11 = e21[0], n11 = "", r11 = t11.length - 1; r11 >= 0; r11--) + n11 += t11[r11]; + return n11; + } + var o11 = e21[0].slice(0); + return o11.reverse(), o11; + }, _functionAbs: function(e21) { + return Math.abs(e21[0]); + }, _functionCeil: function(e21) { + return Math.ceil(e21[0]); + }, _functionAvg: function(e21) { + for (var t11 = 0, n11 = e21[0], r11 = 0; r11 < n11.length; r11++) + t11 += n11[r11]; + return t11 / n11.length; + }, _functionContains: function(e21) { + return e21[0].indexOf(e21[1]) >= 0; + }, _functionFloor: function(e21) { + return Math.floor(e21[0]); + }, _functionLength: function(e21) { + return n10(e21[0]) ? Object.keys(e21[0]).length : e21[0].length; + }, _functionMap: function(e21) { + for (var t11 = [], n11 = this._interpreter, r11 = e21[0], o11 = e21[1], i11 = 0; i11 < o11.length; i11++) + t11.push(n11.visit(r11, o11[i11])); + return t11; + }, _functionMerge: function(e21) { + for (var t11 = {}, n11 = 0; n11 < e21.length; n11++) { + var r11 = e21[n11]; + for (var o11 in r11) + t11[o11] = r11[o11]; + } + return t11; + }, _functionMax: function(e21) { + if (e21[0].length > 0) { + if (this._getTypeName(e21[0][0]) === a10) + return Math.max.apply(Math, e21[0]); + for (var t11 = e21[0], n11 = t11[0], r11 = 1; r11 < t11.length; r11++) + n11.localeCompare(t11[r11]) < 0 && (n11 = t11[r11]); + return n11; + } + return null; + }, _functionMin: function(e21) { + if (e21[0].length > 0) { + if (this._getTypeName(e21[0][0]) === a10) + return Math.min.apply(Math, e21[0]); + for (var t11 = e21[0], n11 = t11[0], r11 = 1; r11 < t11.length; r11++) + t11[r11].localeCompare(n11) < 0 && (n11 = t11[r11]); + return n11; + } + return null; + }, _functionSum: function(e21) { + for (var t11 = 0, n11 = e21[0], r11 = 0; r11 < n11.length; r11++) + t11 += n11[r11]; + return t11; + }, _functionType: function(e21) { + switch (this._getTypeName(e21[0])) { + case a10: + return "number"; + case c10: + return "string"; + case l10: + return "array"; + case u10: + return "object"; + case 5: + return "boolean"; + case f10: + return "expref"; + case 7: + return "null"; + } + }, _functionKeys: function(e21) { + return Object.keys(e21[0]); + }, _functionValues: function(e21) { + for (var t11 = e21[0], n11 = Object.keys(t11), r11 = [], o11 = 0; o11 < n11.length; o11++) + r11.push(t11[n11[o11]]); + return r11; + }, _functionJoin: function(e21) { + var t11 = e21[0]; + return e21[1].join(t11); + }, _functionToArray: function(e21) { + return this._getTypeName(e21[0]) === l10 ? e21[0] : [e21[0]]; + }, _functionToString: function(e21) { + return this._getTypeName(e21[0]) === c10 ? e21[0] : JSON.stringify(e21[0]); + }, _functionToNumber: function(e21) { + var t11, n11 = this._getTypeName(e21[0]); + return n11 === a10 ? e21[0] : n11 !== c10 || (t11 = +e21[0], isNaN(t11)) ? null : t11; + }, _functionNotNull: function(e21) { + for (var t11 = 0; t11 < e21.length; t11++) + if (7 !== this._getTypeName(e21[t11])) + return e21[t11]; + return null; + }, _functionSort: function(e21) { + var t11 = e21[0].slice(0); + return t11.sort(), t11; + }, _functionSortBy: function(e21) { + var t11 = e21[0].slice(0); + if (0 === t11.length) + return t11; + var n11 = this._interpreter, r11 = e21[1], o11 = this._getTypeName(n11.visit(r11, t11[0])); + if ([a10, c10].indexOf(o11) < 0) + throw new Error("TypeError"); + for (var i11 = this, s11 = [], l11 = 0; l11 < t11.length; l11++) + s11.push([l11, t11[l11]]); + s11.sort(function(e23, t12) { + var a11 = n11.visit(r11, e23[1]), s12 = n11.visit(r11, t12[1]); + if (i11._getTypeName(a11) !== o11) + throw new Error("TypeError: expected " + o11 + ", received " + i11._getTypeName(a11)); + if (i11._getTypeName(s12) !== o11) + throw new Error("TypeError: expected " + o11 + ", received " + i11._getTypeName(s12)); + return a11 > s12 ? 1 : a11 < s12 ? -1 : e23[0] - t12[0]; + }); + for (var u11 = 0; u11 < s11.length; u11++) + t11[u11] = s11[u11][1]; + return t11; + }, _functionMaxBy: function(e21) { + for (var t11, n11, r11 = e21[1], o11 = e21[0], i11 = this.createKeyFunction(r11, [a10, c10]), s11 = -1 / 0, l11 = 0; l11 < o11.length; l11++) + (n11 = i11(o11[l11])) > s11 && (s11 = n11, t11 = o11[l11]); + return t11; + }, _functionMinBy: function(e21) { + for (var t11, n11, r11 = e21[1], o11 = e21[0], i11 = this.createKeyFunction(r11, [a10, c10]), s11 = 1 / 0, l11 = 0; l11 < o11.length; l11++) + (n11 = i11(o11[l11])) < s11 && (s11 = n11, t11 = o11[l11]); + return t11; + }, createKeyFunction: function(e21, t11) { + var n11 = this, r11 = this._interpreter; + return function(o11) { + var i11 = r11.visit(e21, o11); + if (t11.indexOf(n11._getTypeName(i11)) < 0) { + var a11 = "TypeError: expected one of " + t11 + ", received " + n11._getTypeName(i11); + throw new Error(a11); + } + return i11; + }; + } }, e20.tokenize = function(e21) { + return new K10().tokenize(e21); + }, e20.compile = function(e21) { + return new Q10().parse(e21); + }, e20.search = function(e21, t11) { + var n11 = new Q10(), r11 = new X10(), o11 = new Y10(r11); + r11._interpreter = o11; + var i11 = n11.parse(t11); + return o11.search(i11, e21); + }, e20.strictDeepEqual = r10; + }(Dee); + var qee = yc(Dee); + var Fee = function(e20, t10) { + if (!(e20 instanceof t10)) + throw new TypeError("Cannot call a class as a function"); + }; + var Vee = /* @__PURE__ */ function() { + function e20(e21, t10) { + for (var n10 = 0; n10 < t10.length; n10++) { + var r10 = t10[n10]; + r10.enumerable = r10.enumerable || false, r10.configurable = true, "value" in r10 && (r10.writable = true), Object.defineProperty(e21, r10.key, r10); + } + } + return function(t10, n10, r10) { + return n10 && e20(t10.prototype, n10), r10 && e20(t10, r10), t10; + }; + }(); + var Hee = function(e20, t10) { + if (Array.isArray(e20)) + return e20; + if (Symbol.iterator in Object(e20)) + return function(e21, t11) { + var n10 = [], r10 = true, o10 = false, i10 = void 0; + try { + for (var a10, s10 = e21[Symbol.iterator](); !(r10 = (a10 = s10.next()).done) && (n10.push(a10.value), !t11 || n10.length !== t11); r10 = true) + ; + } catch (e23) { + o10 = true, i10 = e23; + } finally { + try { + !r10 && s10.return && s10.return(); + } finally { + if (o10) + throw i10; + } + } + return n10; + }(e20, t10); + throw new TypeError("Invalid attempt to destructure non-iterable instance"); + }; + String.prototype.startsWith = String.prototype.startsWith || function(e20) { + return 0 === this.indexOf(e20); + }, String.prototype.padStart = String.prototype.padStart || function(e20, t10) { + for (var n10 = this; n10.length < e20; ) + n10 = t10 + n10; + return n10; + }; + var Wee = { cb: "0f8ff", tqw: "aebd7", q: "-ffff", qmrn: "7fffd4", zr: "0ffff", bg: "5f5dc", bsq: "e4c4", bck: "---", nch: "ebcd", b: "--ff", bvt: "8a2be2", brwn: "a52a2a", brw: "deb887", ctb: "5f9ea0", hrt: "7fff-", chcT: "d2691e", cr: "7f50", rnw: "6495ed", crns: "8dc", crms: "dc143c", cn: "-ffff", Db: "--8b", Dcn: "-8b8b", Dgnr: "b8860b", Dgr: "a9a9a9", Dgrn: "-64-", Dkhk: "bdb76b", Dmgn: "8b-8b", Dvgr: "556b2f", Drng: "8c-", Drch: "9932cc", Dr: "8b--", Dsmn: "e9967a", Dsgr: "8fbc8f", DsTb: "483d8b", DsTg: "2f4f4f", Dtrq: "-ced1", Dvt: "94-d3", ppnk: "1493", pskb: "-bfff", mgr: "696969", grb: "1e90ff", rbrc: "b22222", rwht: "af0", stg: "228b22", chs: "-ff", gnsb: "dcdcdc", st: "8f8ff", g: "d7-", gnr: "daa520", gr: "808080", grn: "-8-0", grnw: "adff2f", hnw: "0fff0", htpn: "69b4", nnr: "cd5c5c", ng: "4b-82", vr: "0", khk: "0e68c", vnr: "e6e6fa", nrb: "0f5", wngr: "7cfc-", mnch: "acd", Lb: "add8e6", Lcr: "08080", Lcn: "e0ffff", Lgnr: "afad2", Lgr: "d3d3d3", Lgrn: "90ee90", Lpnk: "b6c1", Lsmn: "a07a", Lsgr: "20b2aa", Lskb: "87cefa", LsTg: "778899", Lstb: "b0c4de", Lw: "e0", m: "-ff-", mgrn: "32cd32", nn: "af0e6", mgnt: "-ff", mrn: "8--0", mqm: "66cdaa", mmb: "--cd", mmrc: "ba55d3", mmpr: "9370db", msg: "3cb371", mmsT: "7b68ee", "": "-fa9a", mtr: "48d1cc", mmvt: "c71585", mnLb: "191970", ntc: "5fffa", mstr: "e4e1", mccs: "e4b5", vjw: "dead", nv: "--80", c: "df5e6", v: "808-0", vrb: "6b8e23", rng: "a5-", rngr: "45-", rch: "da70d6", pgnr: "eee8aa", pgrn: "98fb98", ptrq: "afeeee", pvtr: "db7093", ppwh: "efd5", pchp: "dab9", pr: "cd853f", pnk: "c0cb", pm: "dda0dd", pwrb: "b0e0e6", prp: "8-080", cc: "663399", r: "--", sbr: "bc8f8f", rb: "4169e1", sbrw: "8b4513", smn: "a8072", nbr: "4a460", sgrn: "2e8b57", ssh: "5ee", snn: "a0522d", svr: "c0c0c0", skb: "87ceeb", sTb: "6a5acd", sTgr: "708090", snw: "afa", n: "-ff7f", stb: "4682b4", tn: "d2b48c", t: "-8080", thst: "d8bfd8", tmT: "6347", trqs: "40e0d0", vt: "ee82ee", whT: "5deb3", wht: "", hts: "5f5f5", w: "-", wgrn: "9acd32" }; + function Uee(e20) { + var t10 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1; + return (t10 > 0 ? e20.toFixed(t10).replace(/0+$/, "").replace(/\.$/, "") : e20.toString()) || "0"; + } + var Jee = function() { + function e20(t10, n10, r10, o10) { + Fee(this, e20); + var i10 = this; + if (void 0 === t10) + ; + else if (Array.isArray(t10)) + this.rgba = t10; + else if (void 0 === r10) { + var a10 = t10 && "" + t10; + a10 && function(t11) { + if (t11.startsWith("hsl")) { + var n11 = t11.match(/([\-\d\.e]+)/g).map(Number), r11 = Hee(n11, 4), o11 = r11[0], a11 = r11[1], s10 = r11[2], c10 = r11[3]; + void 0 === c10 && (c10 = 1), o11 /= 360, a11 /= 100, s10 /= 100, i10.hsla = [o11, a11, s10, c10]; + } else if (t11.startsWith("rgb")) { + var l10 = t11.match(/([\-\d\.e]+)/g).map(Number), u10 = Hee(l10, 4), f10 = u10[0], d10 = u10[1], h10 = u10[2], v10 = u10[3]; + void 0 === v10 && (v10 = 1), i10.rgba = [f10, d10, h10, v10]; + } else + t11.startsWith("#") ? i10.rgba = e20.hexToRgb(t11) : i10.rgba = e20.nameToRgb(t11) || e20.hexToRgb(t11); + }(a10.toLowerCase()); + } else + this.rgba = [t10, n10, r10, void 0 === o10 ? 1 : o10]; + } + return Vee(e20, [{ key: "printRGB", value: function(e21) { + var t10 = (e21 ? this.rgba : this.rgba.slice(0, 3)).map(function(e23, t11) { + return Uee(e23, 3 === t11 ? 3 : 0); + }); + return e21 ? "rgba(" + t10 + ")" : "rgb(" + t10 + ")"; + } }, { key: "printHSL", value: function(e21) { + var t10 = [360, 100, 100, 1], n10 = ["", "%", "%", ""], r10 = (e21 ? this.hsla : this.hsla.slice(0, 3)).map(function(e23, r11) { + return Uee(e23 * t10[r11], 3 === r11 ? 3 : 1) + n10[r11]; + }); + return e21 ? "hsla(" + r10 + ")" : "hsl(" + r10 + ")"; + } }, { key: "printHex", value: function(e21) { + var t10 = this.hex; + return e21 ? t10 : t10.substring(0, 7); + } }, { key: "rgba", get: function() { + if (this._rgba) + return this._rgba; + if (!this._hsla) + throw new Error("No color is set"); + return this._rgba = e20.hslToRgb(this._hsla); + }, set: function(e21) { + 3 === e21.length && (e21[3] = 1), this._rgba = e21, this._hsla = null; + } }, { key: "rgbString", get: function() { + return this.printRGB(); + } }, { key: "rgbaString", get: function() { + return this.printRGB(true); + } }, { key: "hsla", get: function() { + if (this._hsla) + return this._hsla; + if (!this._rgba) + throw new Error("No color is set"); + return this._hsla = e20.rgbToHsl(this._rgba); + }, set: function(e21) { + 3 === e21.length && (e21[3] = 1), this._hsla = e21, this._rgba = null; + } }, { key: "hslString", get: function() { + return this.printHSL(); + } }, { key: "hslaString", get: function() { + return this.printHSL(true); + } }, { key: "hex", get: function() { + var e21 = this.rgba.map(function(e23, t10) { + return t10 < 3 ? e23.toString(16) : Math.round(255 * e23).toString(16); + }); + return "#" + e21.map(function(e23) { + return e23.padStart(2, "0"); + }).join(""); + }, set: function(t10) { + this.rgba = e20.hexToRgb(t10); + } }], [{ key: "hexToRgb", value: function(e21) { + var t10 = (e21.startsWith("#") ? e21.slice(1) : e21).replace(/^(\w{3})$/, "$1F").replace(/^(\w)(\w)(\w)(\w)$/, "$1$1$2$2$3$3$4$4").replace(/^(\w{6})$/, "$1FF"); + if (!t10.match(/^([0-9a-fA-F]{8})$/)) + throw new Error("Unknown hex color; " + e21); + var n10 = t10.match(/^(\w\w)(\w\w)(\w\w)(\w\w)$/).slice(1).map(function(e23) { + return parseInt(e23, 16); + }); + return n10[3] = n10[3] / 255, n10; + } }, { key: "nameToRgb", value: function(t10) { + var n10 = t10.toLowerCase().replace("at", "T").replace(/[aeiouyldf]/g, "").replace("ght", "L").replace("rk", "D").slice(-5, 4), r10 = Wee[n10]; + return void 0 === r10 ? r10 : e20.hexToRgb(r10.replace(/\-/g, "00").padStart(6, "f")); + } }, { key: "rgbToHsl", value: function(e21) { + var t10 = Hee(e21, 4), n10 = t10[0], r10 = t10[1], o10 = t10[2], i10 = t10[3]; + n10 /= 255, r10 /= 255, o10 /= 255; + var a10 = Math.max(n10, r10, o10), s10 = Math.min(n10, r10, o10), c10 = void 0, l10 = void 0, u10 = (a10 + s10) / 2; + if (a10 === s10) + c10 = l10 = 0; + else { + var f10 = a10 - s10; + switch (l10 = u10 > 0.5 ? f10 / (2 - a10 - s10) : f10 / (a10 + s10), a10) { + case n10: + c10 = (r10 - o10) / f10 + (r10 < o10 ? 6 : 0); + break; + case r10: + c10 = (o10 - n10) / f10 + 2; + break; + case o10: + c10 = (n10 - r10) / f10 + 4; + } + c10 /= 6; + } + return [c10, l10, u10, i10]; + } }, { key: "hslToRgb", value: function(e21) { + var t10 = Hee(e21, 4), n10 = t10[0], r10 = t10[1], o10 = t10[2], i10 = t10[3], a10 = void 0, s10 = void 0, c10 = void 0; + if (0 === r10) + a10 = s10 = c10 = o10; + else { + var l10 = function(e23, t11, n11) { + return n11 < 0 && (n11 += 1), n11 > 1 && (n11 -= 1), n11 < 1 / 6 ? e23 + 6 * (t11 - e23) * n11 : n11 < 0.5 ? t11 : n11 < 2 / 3 ? e23 + (t11 - e23) * (2 / 3 - n11) * 6 : e23; + }, u10 = o10 < 0.5 ? o10 * (1 + r10) : o10 + r10 - o10 * r10, f10 = 2 * o10 - u10; + a10 = l10(f10, u10, n10 + 1 / 3), s10 = l10(f10, u10, n10), c10 = l10(f10, u10, n10 - 1 / 3); + } + var d10 = [255 * a10, 255 * s10, 255 * c10].map(Math.round); + return d10[3] = i10, d10; + } }]), e20; + }(); + var Kee = function() { + function e20() { + Fee(this, e20), this._events = []; + } + return Vee(e20, [{ key: "add", value: function(e21, t10, n10) { + e21.addEventListener(t10, n10, false), this._events.push({ target: e21, type: t10, handler: n10 }); + } }, { key: "remove", value: function(t10, n10, r10) { + this._events = this._events.filter(function(o10) { + var i10 = true; + return t10 && t10 !== o10.target && (i10 = false), n10 && n10 !== o10.type && (i10 = false), r10 && r10 !== o10.handler && (i10 = false), i10 && e20._doRemove(o10.target, o10.type, o10.handler), !i10; + }); + } }, { key: "destroy", value: function() { + this._events.forEach(function(t10) { + return e20._doRemove(t10.target, t10.type, t10.handler); + }), this._events = []; + } }], [{ key: "_doRemove", value: function(e21, t10, n10) { + e21.removeEventListener(t10, n10, false); + } }]), e20; + }(); + function Gee(e20, t10, n10) { + var r10 = false; + function o10(e21, t11, n11) { + return Math.max(t11, Math.min(e21, n11)); + } + function i10(e21, i11, a11) { + if (a11 && (r10 = true), r10) { + e21.preventDefault(); + var s11 = t10.getBoundingClientRect(), c10 = s11.width, l10 = s11.height, u10 = i11.clientX, f10 = i11.clientY, d10 = o10(u10 - s11.left, 0, c10), h10 = o10(f10 - s11.top, 0, l10); + n10(d10 / c10, h10 / l10); + } + } + function a10(e21, t11) { + 1 === (void 0 === e21.buttons ? e21.which : e21.buttons) ? i10(e21, e21, t11) : r10 = false; + } + function s10(e21, t11) { + 1 === e21.touches.length ? i10(e21, e21.touches[0], t11) : r10 = false; + } + e20.add(t10, "mousedown", function(e21) { + a10(e21, true); + }), e20.add(t10, "touchstart", function(e21) { + s10(e21, true); + }), e20.add(window, "mousemove", a10), e20.add(t10, "touchmove", s10), e20.add(window, "mouseup", function(e21) { + r10 = false; + }), e20.add(t10, "touchend", function(e21) { + r10 = false; + }), e20.add(t10, "touchcancel", function(e21) { + r10 = false; + }); + } + var Qee = "keydown"; + var Yee = "mousedown"; + var Xee = "focusin"; + function Zee(e20, t10) { + return (t10 || document).querySelector(e20); + } + function ete(e20) { + e20.preventDefault(), e20.stopPropagation(); + } + function tte(e20, t10, n10, r10, o10) { + e20.add(t10, Qee, function(e21) { + n10.indexOf(e21.key) >= 0 && (o10 && ete(e21), r10(e21)); + }); + } + var nte = function() { + function e20(t10) { + Fee(this, e20), this.settings = { popup: "right", layout: "default", alpha: true, editor: true, editorFormat: "hex", cancelButton: false, defaultColor: "#0cf" }, this._events = new Kee(), this.onChange = null, this.onDone = null, this.onOpen = null, this.onClose = null, this.setOptions(t10); + } + return Vee(e20, [{ key: "setOptions", value: function(e21) { + var t10 = this; + if (e21) { + var n10 = this.settings; + if (e21 instanceof HTMLElement) + n10.parent = e21; + else { + n10.parent && e21.parent && n10.parent !== e21.parent && (this._events.remove(n10.parent), this._popupInited = false), function(e23, t11, n11) { + for (var r11 in e23) + n11 && n11.indexOf(r11) >= 0 || (t11[r11] = e23[r11]); + }(e21, n10), e21.onChange && (this.onChange = e21.onChange), e21.onDone && (this.onDone = e21.onDone), e21.onOpen && (this.onOpen = e21.onOpen), e21.onClose && (this.onClose = e21.onClose); + var r10 = e21.color || e21.colour; + r10 && this._setColor(r10); + } + var o10 = n10.parent; + if (o10 && n10.popup && !this._popupInited) { + var i10 = function(e23) { + return t10.openHandler(e23); + }; + this._events.add(o10, "click", i10), tte(this._events, o10, [" ", "Spacebar", "Enter"], i10), this._popupInited = true; + } else + e21.parent && !n10.popup && this.show(); + } + } }, { key: "openHandler", value: function(e21) { + if (this.show()) { + e21 && e21.preventDefault(), this.settings.parent.style.pointerEvents = "none"; + var t10 = e21 && e21.type === Qee ? this._domEdit : this.domElement; + setTimeout(function() { + return t10.focus(); + }, 100), this.onOpen && this.onOpen(this.colour); + } + } }, { key: "closeHandler", value: function(e21) { + var t10 = e21 && e21.type, n10 = false; + if (e21) + if (t10 === Yee || t10 === Xee) { + var r10 = (this.__containedEvent || 0) + 100; + e21.timeStamp > r10 && (n10 = true); + } else + ete(e21), n10 = true; + else + n10 = true; + n10 && this.hide() && (this.settings.parent.style.pointerEvents = "", t10 !== Yee && this.settings.parent.focus(), this.onClose && this.onClose(this.colour)); + } }, { key: "movePopup", value: function(e21, t10) { + this.closeHandler(), this.setOptions(e21), t10 && this.openHandler(); + } }, { key: "setColor", value: function(e21, t10) { + this._setColor(e21, { silent: t10 }); + } }, { key: "_setColor", value: function(e21, t10) { + if ("string" == typeof e21 && (e21 = e21.trim()), e21) { + t10 = t10 || {}; + var n10 = void 0; + try { + n10 = new Jee(e21); + } catch (e23) { + if (t10.failSilently) + return; + throw e23; + } + if (!this.settings.alpha) { + var r10 = n10.hsla; + r10[3] = 1, n10.hsla = r10; + } + this.colour = this.color = n10, this._setHSLA(null, null, null, null, t10); + } + } }, { key: "setColour", value: function(e21, t10) { + this.setColor(e21, t10); + } }, { key: "show", value: function() { + if (!this.settings.parent) + return false; + if (this.domElement) { + var e21 = this._toggleDOM(true); + return this._setPosition(), e21; + } + var t10, n10, r10 = this.settings.template || '
', o10 = (t10 = r10, (n10 = document.createElement("div")).innerHTML = t10, n10.firstElementChild); + return this.domElement = o10, this._domH = Zee(".picker_hue", o10), this._domSL = Zee(".picker_sl", o10), this._domA = Zee(".picker_alpha", o10), this._domEdit = Zee(".picker_editor input", o10), this._domSample = Zee(".picker_sample", o10), this._domOkay = Zee(".picker_done button", o10), this._domCancel = Zee(".picker_cancel button", o10), o10.classList.add("layout_" + this.settings.layout), this.settings.alpha || o10.classList.add("no_alpha"), this.settings.editor || o10.classList.add("no_editor"), this.settings.cancelButton || o10.classList.add("no_cancel"), this._ifPopup(function() { + return o10.classList.add("popup"); + }), this._setPosition(), this.colour ? this._updateUI() : this._setColor(this.settings.defaultColor), this._bindEvents(), true; + } }, { key: "hide", value: function() { + return this._toggleDOM(false); + } }, { key: "destroy", value: function() { + this._events.destroy(), this.domElement && this.settings.parent.removeChild(this.domElement); + } }, { key: "_bindEvents", value: function() { + var e21 = this, t10 = this, n10 = this.domElement, r10 = this._events; + function o10(e23, t11, n11) { + r10.add(e23, t11, n11); + } + o10(n10, "click", function(e23) { + return e23.preventDefault(); + }), Gee(r10, this._domH, function(e23, n11) { + return t10._setHSLA(e23); + }), Gee(r10, this._domSL, function(e23, n11) { + return t10._setHSLA(null, e23, 1 - n11); + }), this.settings.alpha && Gee(r10, this._domA, function(e23, n11) { + return t10._setHSLA(null, null, null, 1 - n11); + }); + var i10 = this._domEdit; + o10(i10, "input", function(e23) { + t10._setColor(this.value, { fromEditor: true, failSilently: true }); + }), o10(i10, "focus", function(e23) { + var t11 = this; + t11.selectionStart === t11.selectionEnd && t11.select(); + }), this._ifPopup(function() { + var t11 = function(t12) { + return e21.closeHandler(t12); + }; + o10(window, Yee, t11), o10(window, Xee, t11), tte(r10, n10, ["Esc", "Escape"], t11); + var i11 = function(t12) { + e21.__containedEvent = t12.timeStamp; + }; + o10(n10, Yee, i11), o10(n10, Xee, i11), o10(e21._domCancel, "click", t11); + }); + var a10 = function(t11) { + e21._ifPopup(function() { + return e21.closeHandler(t11); + }), e21.onDone && e21.onDone(e21.colour); + }; + o10(this._domOkay, "click", a10), tte(r10, n10, ["Enter"], a10); + } }, { key: "_setPosition", value: function() { + var e21 = this.settings.parent, t10 = this.domElement; + e21 !== t10.parentNode && e21.appendChild(t10), this._ifPopup(function(n10) { + "static" === getComputedStyle(e21).position && (e21.style.position = "relative"); + var r10 = true === n10 ? "popup_right" : "popup_" + n10; + ["popup_top", "popup_bottom", "popup_left", "popup_right"].forEach(function(e23) { + e23 === r10 ? t10.classList.add(e23) : t10.classList.remove(e23); + }), t10.classList.add(r10); + }); + } }, { key: "_setHSLA", value: function(e21, t10, n10, r10, o10) { + o10 = o10 || {}; + var i10 = this.colour, a10 = i10.hsla; + [e21, t10, n10, r10].forEach(function(e23, t11) { + (e23 || 0 === e23) && (a10[t11] = e23); + }), i10.hsla = a10, this._updateUI(o10), this.onChange && !o10.silent && this.onChange(i10); + } }, { key: "_updateUI", value: function(e21) { + if (this.domElement) { + e21 = e21 || {}; + var t10 = this.colour, n10 = t10.hsla, r10 = "hsl(" + 360 * n10[0] + ", 100%, 50%)", o10 = t10.hslString, i10 = t10.hslaString, a10 = this._domH, s10 = this._domSL, c10 = this._domA, l10 = Zee(".picker_selector", a10), u10 = Zee(".picker_selector", s10), f10 = Zee(".picker_selector", c10); + y10(0, l10, n10[0]), this._domSL.style.backgroundColor = this._domH.style.color = r10, y10(0, u10, n10[1]), b10(0, u10, 1 - n10[2]), s10.style.color = o10, b10(0, f10, 1 - n10[3]); + var d10 = o10, h10 = d10.replace("hsl", "hsla").replace(")", ", 0)"), v10 = "linear-gradient(" + [d10, h10] + ")"; + if (this._domA.style.background = v10 + ", linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0 / 2em 2em,\n linear-gradient(45deg, lightgrey 25%, white 25%, white 75%, lightgrey 75%) 1em 1em / 2em 2em", !e21.fromEditor) { + var p10 = this.settings.editorFormat, m10 = this.settings.alpha, g10 = void 0; + switch (p10) { + case "rgb": + g10 = t10.printRGB(m10); + break; + case "hsl": + g10 = t10.printHSL(m10); + break; + default: + g10 = t10.printHex(m10); + } + this._domEdit.value = g10; + } + this._domSample.style.color = i10; + } + function y10(e23, t11, n11) { + t11.style.left = 100 * n11 + "%"; + } + function b10(e23, t11, n11) { + t11.style.top = 100 * n11 + "%"; + } + } }, { key: "_ifPopup", value: function(e21, t10) { + this.settings.parent && this.settings.popup ? e21 && e21(this.settings.popup) : t10 && t10(); + } }, { key: "_toggleDOM", value: function(e21) { + var t10 = this.domElement; + if (!t10) + return false; + var n10 = e21 ? "" : "none", r10 = t10.style.display !== n10; + return r10 && (t10.style.display = n10), r10; + } }]), e20; + }(); + var rte = document.createElement("style"); + rte.textContent = '.picker_wrapper.no_alpha .picker_alpha{display:none}.picker_wrapper.no_editor .picker_editor{position:absolute;z-index:-1;opacity:0}.picker_wrapper.no_cancel .picker_cancel{display:none}.layout_default.picker_wrapper{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:stretch;font-size:10px;width:25em;padding:.5em}.layout_default.picker_wrapper input,.layout_default.picker_wrapper button{font-size:1rem}.layout_default.picker_wrapper>*{margin:.5em}.layout_default.picker_wrapper::before{content:"";display:block;width:100%;height:0;order:1}.layout_default .picker_slider,.layout_default .picker_selector{padding:1em}.layout_default .picker_hue{width:100%}.layout_default .picker_sl{flex:1 1 auto}.layout_default .picker_sl::before{content:"";display:block;padding-bottom:100%}.layout_default .picker_editor{order:1;width:6.5rem}.layout_default .picker_editor input{width:100%;height:100%}.layout_default .picker_sample{order:1;flex:1 1 auto}.layout_default .picker_done,.layout_default .picker_cancel{order:1}.picker_wrapper{box-sizing:border-box;background:#f2f2f2;box-shadow:0 0 0 1px silver;cursor:default;font-family:sans-serif;color:#444;pointer-events:auto}.picker_wrapper:focus{outline:none}.picker_wrapper button,.picker_wrapper input{box-sizing:border-box;border:none;box-shadow:0 0 0 1px silver;outline:none}.picker_wrapper button:focus,.picker_wrapper button:active,.picker_wrapper input:focus,.picker_wrapper input:active{box-shadow:0 0 2px 1px #1e90ff}.picker_wrapper button{padding:.4em .6em;cursor:pointer;background-color:#f5f5f5;background-image:linear-gradient(0deg, gainsboro, transparent)}.picker_wrapper button:active{background-image:linear-gradient(0deg, transparent, gainsboro)}.picker_wrapper button:hover{background-color:#fff}.picker_selector{position:absolute;z-index:1;display:block;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);border:2px solid #fff;border-radius:100%;box-shadow:0 0 3px 1px #67b9ff;background:currentColor;cursor:pointer}.picker_slider .picker_selector{border-radius:2px}.picker_hue{position:relative;background-image:linear-gradient(90deg, red, yellow, lime, cyan, blue, magenta, red);box-shadow:0 0 0 1px silver}.picker_sl{position:relative;box-shadow:0 0 0 1px silver;background-image:linear-gradient(180deg, white, rgba(255, 255, 255, 0) 50%),linear-gradient(0deg, black, rgba(0, 0, 0, 0) 50%),linear-gradient(90deg, #808080, rgba(128, 128, 128, 0))}.picker_alpha,.picker_sample{position:relative;background:linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0/2em 2em,linear-gradient(45deg, lightgrey 25%, white 25%, white 75%, lightgrey 75%) 1em 1em/2em 2em;box-shadow:0 0 0 1px silver}.picker_alpha .picker_selector,.picker_sample .picker_selector{background:none}.picker_editor input{font-family:monospace;padding:.2em .4em}.picker_sample::before{content:"";position:absolute;display:block;width:100%;height:100%;background:currentColor}.picker_arrow{position:absolute;z-index:-1}.picker_wrapper.popup{position:absolute;z-index:2;margin:1.5em}.picker_wrapper.popup,.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{background:#f2f2f2;box-shadow:0 0 10px 1px rgba(0,0,0,.4)}.picker_wrapper.popup .picker_arrow{width:3em;height:3em;margin:0}.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{content:"";display:block;position:absolute;top:0;left:0;z-index:-99}.picker_wrapper.popup .picker_arrow::before{width:100%;height:100%;-webkit-transform:skew(45deg);transform:skew(45deg);-webkit-transform-origin:0 100%;transform-origin:0 100%}.picker_wrapper.popup .picker_arrow::after{width:150%;height:150%;box-shadow:none}.popup.popup_top{bottom:100%;left:0}.popup.popup_top .picker_arrow{bottom:0;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.popup.popup_bottom{top:100%;left:0}.popup.popup_bottom .picker_arrow{top:0;left:0;-webkit-transform:rotate(90deg) scale(1, -1);transform:rotate(90deg) scale(1, -1)}.popup.popup_left{top:0;right:100%}.popup.popup_left .picker_arrow{top:0;right:0;-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.popup.popup_right{top:0;left:100%}.popup.popup_right .picker_arrow{top:0;left:0}', document.documentElement.firstElementChild.appendChild(rte), nte.StyleElement = rte; + var ote = Object.freeze({ __proto__: null, default: nte }); + + // jsoneditor.js + JSONEditorInstance = new C8({ target: JSONEditor_target, props: {} }); +})(); +/*! Bundled license information: + +vanilla-jsoneditor/standalone.js: + (*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE *) + +vanilla-jsoneditor/standalone.js: + (** + * @license + * Lodash (Custom Build) + * Build: `lodash modularize exports="es" -o ./` + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + *) + +vanilla-jsoneditor/standalone.js: + (*! + * vanilla-picker v2.12.2 + * https://vanilla-picker.js.org + * + * Copyright 2017-2023 Andreas Borgen (https://github.com/Sphinxxxx), Adam Brooks (https://github.com/dissimulate) + * Released under the ISC license. + *) +*/ diff --git a/apps/hadash/jsoneditor.wrapperjs b/apps/hadash/jsoneditor.wrapperjs new file mode 100644 index 000000000..951d4b8b7 --- /dev/null +++ b/apps/hadash/jsoneditor.wrapperjs @@ -0,0 +1,22 @@ +/* + * JSONEditor wrapper + * + * This script is bundled together with the actual JSONEditor (https://github.com/josdejong/svelte-jsoneditor) + * using ESBuild (see below). + * + * The following global variables need to be defined before including the jsoneditor-bundle.js: + * + * JSONEditorInstance will contain the new JSONEditor instance + * JSONEditor_target element ID of container (
) for the JSONEditor + * + * To build the bundle, run the following commands: + * npm install esbuild + * npm install vanilla-jsoneditor + * ./node_modules/.bin/esbuild jsoneditor.wrapperjs --bundle --outfile=jsoneditor.bundlejs + * + */ + +import { JSONEditor } from 'vanilla-jsoneditor/standalone.js' + +JSONEditorInstance = new JSONEditor({ target: JSONEditor_target, props: {} }); + diff --git a/apps/hadash/metadata.json b/apps/hadash/metadata.json new file mode 100644 index 000000000..646101b5b --- /dev/null +++ b/apps/hadash/metadata.json @@ -0,0 +1,20 @@ +{ + "id": "hadash", + "name": "Home-Assistant Dashboard", + "shortName":"HA-Dash", + "version":"1.00", + "description": "Interact with Home-Assistant (query states, call services)", + "icon": "hadash.png", + "screenshots": [{ "url": "screenshot.png" }], + "type": "app", + "tags": "tool,online", + "supports": ["BANGLEJS2"], + "dependencies": { "textinput": "type" }, + "readme": "README.md", + "interface": "interface.html", + "storage": [ + { "name":"hadash.app.js", "url":"hadash.app.js" }, + { "name":"hadash.img", "url":"hadash-icon.js", "evaluate":true } + ], + "data": [{ "name":"hadash.json" }] +} diff --git a/apps/hadash/screenshot.png b/apps/hadash/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..09cd252e0544c76db0a6f00852ca7631e4d30605 GIT binary patch literal 3134 zcmb7{`8yO`8^<-#NE)V@gz#DtWyz8l;<1boGS=v^Uy?A$PWGt?V=qfJwvmzyV#dgX z>4}EPzKkV}5hF`u$-ckyJkR?Nyg!_CU+0|9b)WOY{rz6|NwGqjoaPhdhZ`;qy!;j$@umG64Y`vr=9Z=O+Ru{_brzGRMKPwlp#WwX5M z&u$01*Q`m1=RV>Mi@gOnQ$KW68uUA|AY3OC0t$g8~LA27k zZm^TNi}m)ImiO(FH$m7dT~){`p6^0>wPA9l$D<3kN>jxmQIn&%H4ETUkSlCOXstC? zE6e$du|k(7rNHgwn7J@)&F-*cJy;<(vEYEX}c!j0Nl(?EP;i zSNdP1dFaE$vkId$fCaGU^gJ;N;W%7a%Eh9nYrneoimNO^tiaklEZu-b?PhUk{1C&yL$J_>ga{YGRk`rFD`H(d~O*5NXHl+mU;F0hs5 zDyOv-`<2;iRwe)0z;7(gVe?c6L4K;fZ$I~CzD4=$RY2})l0J{RND17#>V&TrE07FC z{VsU+WGqqtQ|$|*?xo&&P}+(8#$lYPBFvKD;%Ny=gNoWBbyR3$2<0DH+`n3sAi@vE ztrsz}Ot|~ir<=d=Vxvu?b)e!f_ls`E=%On>a8$2h_pKXwBTH_?UOCWYKD8SR9&e2~q?i^y)%kY>GVT{D)*r59B#^Q&kxi z3%4j23{sT>26+F;Ck&CSJa2h;Hc9#a zSuz5dR8w!0_lHNj*rHG^wG{l3CPg~^2KjU0>{+7pO8R_QVkw3~^VjTV z8#5KS<~HvLqK)0b+nd5!TyHKhF9x!^ACCmJ>Qs49mmBtV0XxfMC{=dzBvZI%ZTw)l z1C6TrR5Ef0d1~;fs6;81_oeIu8~yjdFNB$l26Koom@BvV=z?6*zxhvD(C*?0Jj7`GBsYT4@fH6;!{}s# z06r#5Hy=QB`HWoD_8hD%<#|w{ggJfnOYhZ0QX@Yad~z`O;zJR#1}@Tcrde6`L6J-r zebhiJy_+6B*)`Lpr1l0DW^pdB!Y?+7Qcg^~t2YVT$8jV2qv^*6M*CYF29qg8&LhF; z#zuBOtuuD-zeg{;YO0H99I4x34RpFiw`NL-rZNd)V-^m*9RX$l&vUs>_H5!IVK-$Q zpSv|fQIrxXRMH*}{?(g^4QqX14RFF`Ngc1m(7*8_od z^JGC7*o@4Rhvf&Ga>r%QU*^{HKZk>3>ApEqNknDyZpT>EVdA*a=AX2vw;8|fuV!F5 zuUE)+I`kl}W={Bl(u!{87Wu1N=KTIteq8&;QfIegcroVKih}m?M)~4^P7XD|)N=7D z*?O8VOF5X)4febTnn=yE27g7!+Qw7$)Tf>B0T*J6nX6|Sg@SG>f2~e68Jfhm+7I9z zmv#K>m$YX#P6$R4y-g0lvDt>Jto|2IAd&4Iq{9Ui_msoXwCFSxJ-sT889dv_gRU_U zyI&nSya;E`6RaMs@+DIYmZL6>6k0@qwIqObS}w=Hx4DrLz_#Yt>xUT^0G4kOMbjMg z

zcOYpWjZ>V12b*N_$4iL;t@p$((l4pjp`hxZY&WVtAd)rmM4)nA}ZhH!!_c=qd z;CNzzaG*K|omb|rr^J(zzGzA}hIrmaEk^Y|_pWFjrbTaHL@g&oyow`UX_1it8N-rbC_X|? zW#As-fi|#t?fKT$dVT+GLjuxGkyV$??S*XjizVShU(94LlIVcB3~TMu7QzWFHQm|0 z`_?FEc#Bd5*Q|nVSo9-aKiS7}nO@!r3$rZxp-QO7-b!E3c&5=$n^-ym)zc?jwWgce zHU+Dd1%%)TyqXK1;a`-^Y4mL?vh0rsH(bA+_DG@8Nj>rL$}wta6d{F%76~qCl3mav z1-iNp?BDU}5F`$%s0$5k(ZxRnD^)_W1uUgho?;Lz3O`KxWIm*VE-*W3eT0b1P3i9s zIpMOM!(e4jPLR&4CR55|vUkh`%;ioQ3!c?|TtCz5L#D^v z4+V8Cw0nOZZCF72B|!?LzPa#X<0jb!f?oMt;L*KyTk{_6RLUf1|E6@@QT<_Fn<>-Y zwQWEK7pG(hhW!p!*vWP=M>22`-Fj=w^!JiY=`?iN+{>mIH6bVNA)!-@9kRm&2y zy(+fxMD)kJ`#$S}ojH4PN;aacwCKV8m(KWhF-NvK84>Og7v}^0o>KcA1aOje2z#ZE zVy}wC#Np?}giVstnROwSg#$Xrn;?V`5Af)JHk$_U`n{sKp$c9<*A2$gf8l+V|95vAjZ*aQ;WfoGL{#Jt!`ukMbsdD`{0O?v@ML@)fY~_4F08gkPnfIdz z`j6P}VQQH=&Y`7HUVD9zm|{g&_bq+Ub%*;zp{fKit=m@5U%umXAk_?CrQ65YhX3f| zlYwlA4W%lfs4ayftJ{+)>L#Si)inv6^ccz_^=(w-EgrZ#=k6BYP?Ync0`sCuh*~DA z>s=A#zT)OcEIB+kqHA_tCZNde6D#Tr6+3u0eQItEP{pofIPjY8q*;5b*lg^B!1dH;WxqDtN!1zllD|D^W_Tz=Voq>5bLn^$7PZtNW98fJ%RNmXu}9@tgdIbdIfODUiSHzf=PrBy1wNwX>r zmk`uH57J9&F%%7)q}uF=adzFXGR@eS84_`&g*04sFn=LX$*in`mNk$Ak*R#v(X(y< zQ?Y4uW{|IlnK9Q<*E6wRcF2?)y;m@fu4Yy5=S@ z-MFNDpY-pYVyC}E0yf=FQMpJPJI)<+#?1X~Twq9+=^(5zkTijlcoHjH$ z21s}6Yz>HVMgD57mj^Nut}IB~{OgKP*~|HWGUz|8MWkJ5XEjuxZ|-q8I8q%D-$YpS zlz^V)0QJzUA~$q3d=bqmp9;hFPUT1QgyUBMUFw&KeN{{;(!9#w-EO( yNdk+?3F9I-4wzh}rftsYa}~>ndjxq7fxg?mK2H#xcR2q7E>mM9yxP$H;eP=!92Zys literal 0 HcmV?d00001 From d4229a75d2083bcda255c01707d2fd730df15bd9 Mon Sep 17 00:00:00 2001 From: Martin Pool Date: Thu, 5 Sep 2024 21:51:46 +0200 Subject: [PATCH 254/594] Make icon more readable --- apps/dutchclock/README.md | 6 +++--- apps/dutchclock/app.png | Bin 1436 -> 1856 bytes 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/dutchclock/README.md b/apps/dutchclock/README.md index 167cd4a4c..4faa03aa8 100644 --- a/apps/dutchclock/README.md +++ b/apps/dutchclock/README.md @@ -1,7 +1,7 @@ # Dutch Clock -This clock shows the time, in words, the way a Dutch person would tell you what time it is. Useful when learning Dutch. +This clock shows the time, in words, the way a Dutch person would tell you what time it is. Useful when learning Dutch or pretending to know Dutch. -It was inspired by my wife, who sometimes insists I tell her exactly what time it says on the watch and not just an approximation. +Dedicated my wife, who will sometimes insist I tell her exactly what time it says on the watch and not just an approximation. ## Options - Three modes: @@ -15,4 +15,4 @@ It was inspired by my wife, who sometimes insists I tell her exactly what time i ## Screenshots ![](screenshotbangle1-2.png) ![](screenshotbangle2.png) -![](screenshotbangle1.png) +![](screenshotbangle1.png) \ No newline at end of file diff --git a/apps/dutchclock/app.png b/apps/dutchclock/app.png index faacb7eaf13b86d8144a49f9afa9f0d9a49958ce..94d35b0c50425c16b10d8a39f205514250a51f76 100644 GIT binary patch delta 1825 zcmV++2j2Lc3&0ML83+Ra003az3AK?SAAbU}P)t-s|NsB~{{Gt9+QP!Z-QC^&{r&v> z{QLX+r>CcKa&oe=vY(%yRaI5>_4Uik%gxQr$H&Ll*Vp#;_VDoV&d$!o#l__0$88qL7e~92^|9w6yf}^l52nH#ax9xVTbMQp(E84h{~pv$N^x z>EYqw_xJabl9EC~LTznrP*6}_UVmObK0XNv3E0@!O-)UKfq_p?Po}1(y}iAEe}Av9 zuQ@q61qB71oSa}_U_?YjXlQ6WJUkW_7QVi|M@L6LKR+HG9#&RXN=ix^8XB9Mn-~}v z85tRUeSO>8+veuxsi~=+o}Tmb^L%`KaBy&xl$6uc)AI82@9*#U`1tDT>VJBAdg$or ziHV8a+}y6NuI=sZ6B83HEiEZ2Dd*?s&(F`StgKU0Q_<1Ug@uK-wzh+VgAoxC5D*ZG zii*L(!B|*W<>loeAtA7^umVQ?A|fIN1_m=T zGd4Ch*4EYn0s?VyaVjb*et&*`(9qD6latic)RB>qySuwlQBi<^fNyVa;NalH!^5qu ztvx+GMMXuOot;ZdOFKI|TwGid5)vmTCvs?=0GrEs07GF%84*YgakqJ3X&Jh1S?Xs)IyM`h%RKMcD1`* z|BpV-4v#+LoYnKx?>T$FZ}0p4-tRr{_d6f{3y3)03+hu$3zCk3VOf>|sO1O<9asYD zP~NAKB#18J8^wQ=kKp@*r3eIS%>&x$A%IT*;0%JG(3u(ofqyY<*6i>IDS`>+IgwG( zF@R+*A3G0me0=;v2}pc+KEGh0G(p2BElN&d7pJDBXCx#15$mH%Z1&8orOPs82+LPw z!;zD_a+Mj6J#Jk61k`I5IrH+NTw5Sb2%TR@M^=@w?#WmS)~<)Ks95JJN!+ke<{dPf zN@+`>dn&7}e19=2HY2yP815|90*iTDtA(aM?Y2C_VVfJ=x=?rux7X~bl_F3| z9p{^bc@MCL_D5 zn$Vo~Ts3UFTUsGjDhZBOPj~P%C7^y!n>wU@jnXIxN`D#*W~S^VieRmMUoF(n@2`(J zaPW{iAmQ+l?Py%4@8~>==GjZSUO0B#Qb#*32ZGiUClk8!px`5LDwEIAzj#_tYZSv0 zpkK=z%gKB=k1xcjnwP@rvKG+y5`$9U;5@_kl%n@+0lHp38|G+vWkLh;VBmd~w>aP| zQlhISDu1kDcXVI^r8t(i669(cu(zZ$0evzu^20J zB*`qy-B&W+Y=d>vTe^X(Ijw_38P}TZ!+iId%zxg={qF&FSR;Eqn`6PW3|p&|D6V|_ z1n&ykf30i8s+T6DzcYfQGGIg5yYCsWV+$WuG`y#=#~`lo2aCk`(b3fRfupJX7>lK4 zAAFdo^X7kK5YBNb7}QxSdOmgnYRgp>1CuH#F5S+!UE?rKsYd|yeqvKF^wJoaW}wy> zdVl%SIIe5Bsr8Ex{o-)9m2&H8gkc>s7#LbTbWQ|OP$LGVVH*9^gU>$iznfM*y#Uf) zX+*aBoX{9wQ30e!BiCHy5zaS+9HtvSFZG@y!(8tYTu8es}*T<3Q(x4!st z^;agDa}WrnUq_}@r(HN4^iBDD+<&}*1AT$6XEwYu1j)B=es^reY5se-#+pag z(+@8|r;e1f*f&_%&;RhF>nCRPXOE&}rB|N7z&*54J3P?ekrjV1u8X^I+o4bWMNUi< z1dcm{zy4PIJO22yJqGMw5%!Kdr6KZt@}(kyYW9b4UC@V$!Z-2D4*U(0^X!sr6%M1+ P00000NkvXXu0mjfTW)+l delta 1401 zcmV-<1%~>-4x9^+83+ad00374`G=7qAAbM|a7bBm000id000id0mpBsWB>pKF-b&0 zRA@u(nOP`xUlhQX;a*dGL>Zn)A(=|an5jG%9;B2qJn*3Vq>G{qUr`d`MT!T7n->qR zc%X;~Dan|Wv5U-eWZM6|mUHg^`o5RHb1pai{pxnsS$kj3x_j+4>|@3_@QpDSu7BT_ z9|KIyj{$NS92}&NR7`Hb#KZ)Bq$0_H)nXs9qt8j=l&kB_GZRjbv&e_e7X{>zh$ z4`t|HI5#39f(%4A!?D1?K$;sI94yR|h_DhL0^MO}XGgeuV|8_vDHIB(Qh%vvT&vZR z9{&aZrQgX@Q&Z%AIM>qB^6OowsHg}W92|tZH~jtmVP<9qxKES&q^72lolV*|UpyCipacY~Rk8OcapT^+c%xKQ+x4ef+a zK%>#H+uK``H#av~S63Iw3x5j>j2pw6o0}O=W~7sY>=kHfY0;MgxG^!tBg@On`izWO zcxh>g$k!=9RbTMgFR#xg=1r6ibndG&#wReflsL(pdU~zGgSy))G zfq?mG_ke03OKCDLQ$`E#xujIsje=H^tG8DeE+MH{-Utqph>r7Obs z%U^Tl@KZ{dn*XN(O-)Ty>v(y2Q3;KdmzP6&dOFFSot+RK9!~Ps))qA_xF3p(iz)kJ z#>R3S_k*vmFRZMr(0^P>;2!u0yg*}ic6Mxbc9wcv>}?TVI_MJ_&kg$iH!m-baYI>6 zO${Y5UUsnI;bF#GO2#uZgxKJjD&@SvFz+@W^ZrLc>P1Vq@*Nz zaPfl=iw2;P#^A#)gl>a!z}@vY@A@hk9T~M}J4s;kc)#Cp0uPP=S|| zlS6uAVey+I$o~n9@968()6?ML;Q>`uRdm9Dpg$iR9FTF|-rl5(j*h0YAFM{Pg~a`U zrx94GCMG7*969{t0aGK(0Q6}Lr+a&Qbf2G}Pkq2wBFg~uKCD7TFU-iupd*v7M3w>L z7_8=jX>FBO@6Pp-in-(|pVczkdB<$;rvg+1Z&6gykY@1u*U-&CShpPAY;u@cQ~X z9joBcx<;cBMu76c(9jT_hH(=q0ucPoD_2PH_d`Tz;SuVtz7nqxy1D#F> zcXxMGT4vye#R?QVHGHMSV?S(cY>)xx=jZf2EUzywFJXIo8!9R)NGBCpD}bkPXn$H- z8sz~jqs3AJ!>AZC6$%BtnTd;wgM@?xG8ScH9E5%IO$_i4(zN+5K@Jf%00000NkvXX Hu0mjfa@nr} From a53d1c2503ae2555ed34fc4f5911a2a1e9ce5e66 Mon Sep 17 00:00:00 2001 From: Martin Pool Date: Thu, 5 Sep 2024 21:55:02 +0200 Subject: [PATCH 255/594] Update version --- apps/dutchclock/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dutchclock/metadata.json b/apps/dutchclock/metadata.json index 5ee68b709..7fa9e9148 100644 --- a/apps/dutchclock/metadata.json +++ b/apps/dutchclock/metadata.json @@ -3,7 +3,7 @@ "name": "Dutch Clock", "shortName":"Dutch Clock", "icon": "app.png", - "version":"0.11", + "version":"0.12", "description": "A clock that displays the time the way a Dutch person would respond when asked what time it is.", "type": "clock", "tags": "clock,dutch,text", From 17b82f9ae1c6f9acd453ec9fb08c549ffddc7ae0 Mon Sep 17 00:00:00 2001 From: Martin Pool Date: Thu, 5 Sep 2024 22:00:59 +0200 Subject: [PATCH 256/594] Add changelog --- apps/dutchclock/ChangeLog | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/dutchclock/ChangeLog diff --git a/apps/dutchclock/ChangeLog b/apps/dutchclock/ChangeLog new file mode 100644 index 000000000..b8e2bfeb9 --- /dev/null +++ b/apps/dutchclock/ChangeLog @@ -0,0 +1 @@ +0.12: First release \ No newline at end of file From 078e11173c9eaaeb083f49e14b7946f41f3b801c Mon Sep 17 00:00:00 2001 From: stweedo <108593831+stweedo@users.noreply.github.com> Date: Thu, 5 Sep 2024 23:42:39 -0500 Subject: [PATCH 257/594] Update to V0.08 --- apps/boxclk/ChangeLog | 7 + apps/boxclk/app.js | 571 ++++++++++++++++++++------------------ apps/boxclk/metadata.json | 4 +- 3 files changed, 314 insertions(+), 268 deletions(-) diff --git a/apps/boxclk/ChangeLog b/apps/boxclk/ChangeLog index f7ee41904..62d1b4875 100644 --- a/apps/boxclk/ChangeLog +++ b/apps/boxclk/ChangeLog @@ -5,3 +5,10 @@ 0.05: Fixes step count not resetting after a new day starts 0.06: Added clockbackground app functionality 0.07: Allow custom backgrounds per boxclk config and from the clockbg module +0.08: Improves performance, responsiveness, and bug fixes +- [+] Added box size caching to reduce calculations +- [+] Improved step count with real-time updates +- [+] Improved battery level update logic to reduce unnecessary refreshes +- [+] Fixed optional seconds not displaying in time +- [+] Fixed drag handler by adding E.stopEventPropagation() +- [+] General code optimization and cleanup \ No newline at end of file diff --git a/apps/boxclk/app.js b/apps/boxclk/app.js index 67493aad9..139ad31a1 100644 --- a/apps/boxclk/app.js +++ b/apps/boxclk/app.js @@ -1,59 +1,115 @@ { - /** - * --------------------------------------------------------------- - * 1. Module dependencies and initial configurations - * --------------------------------------------------------------- - */ - + // 1. Module dependencies and initial configurations let background = require("clockbg"); let storage = require("Storage"); let locale = require("locale"); let widgets = require("widget_utils"); - let date = new Date(); let bgImage; let configNumber = (storage.readJSON("boxclk.json", 1) || {}).selectedConfig || 0; let fileName = 'boxclk' + (configNumber > 0 ? `-${configNumber}` : '') + '.json'; - // Add a condition to check if the file exists, if it does not, default to 'boxclk.json' if (!storage.read(fileName)) { fileName = 'boxclk.json'; } let boxesConfig = storage.readJSON(fileName, 1) || {}; let boxes = {}; - let boxPos = {}; - let isDragging = {}; - let wasDragging = {}; + let isDragging = false; let doubleTapTimer = null; let g_setColor; let saveIcon = require("heatshrink").decompress(atob("mEwwkEogA/AHdP/4AK+gWVDBQWNAAIuVGBAIB+UQdhMfGBAHBCxUAgIXHIwPyCxQwEJAgXB+MAl/zBwQGBn8ggQjBGAQXG+EA/4XI/8gBIQXTGAMPC6n/C6HzkREBC6YACC6QAFC57aHCYIXOOgLsEn4XPABIX/C6vykQAEl6/WgCQBC5imFAAT2BC5gCBI4oUCC5x0IC/4X/C4K8Bl4XJ+TCCC4wKBABkvC4tEEoMQCxcBB4IWEC4XyDBUBFwIXGJAIAOIwowDABoWGGB4uHDBwWJAH4AzA")); - /** - * --------------------------------------------------------------- - * 2. Graphical and visual configurations - * --------------------------------------------------------------- - */ - + // 2. Graphical and visual configurations let w = g.getWidth(); let h = g.getHeight(); - let totalWidth, totalHeight; let drawTimeout; - /** - * --------------------------------------------------------------- - * 3. Touchscreen Handlers - * --------------------------------------------------------------- - */ + // 3. Touch and drag handlers + let touchHandler = function(zone, e) { + let boxTouched = false; + let touchedBox = null; + + boxKeys.forEach((boxKey) => { + if (touchInText(e, boxes[boxKey], boxKey)) { + touchedBox = boxKey; + boxTouched = true; + } + }); + + if (boxTouched) { + // Toggle the selected state of the touched box + boxes[touchedBox].selected = !boxes[touchedBox].selected; + + // Update isDragging based on whether any box is selected + isDragging = boxKeys.some(key => boxes[key].selected); + + if (isDragging) { + widgets.hide(); + // Stop propagation of the touch event to prevent other handlers + E.stopEventPropagation(); + } else { + widgets.show(); + widgets.swipeOn(); + // Call updateBoxData when transitioning from dragging to not dragging + updateBoxData(); + } + } else { + // If tapped outside any box, deselect all boxes + deselectAllBoxes(); + } + + // Always redraw after a touch event + draw(); + + // Handle double tap for saving + if (!boxTouched && !isDragging) { + if (doubleTapTimer) { + clearTimeout(doubleTapTimer); + doubleTapTimer = null; + Object.keys(boxes).forEach((boxKey) => { + boxesConfig[boxKey].boxPos.x = (boxes[boxKey].pos.x / w).toFixed(3); + boxesConfig[boxKey].boxPos.y = (boxes[boxKey].pos.y / h).toFixed(3); + }); + storage.write(fileName, JSON.stringify(boxesConfig)); + displaySaveIcon(); + return; + } + + doubleTapTimer = setTimeout(() => { + doubleTapTimer = null; + }, 500); + } + }; + + let dragHandler = function(e) { + // Check if any box is being dragged + if (!isDragging) return; - let touchHandler; - let dragHandler; - let movementDistance = 0; - - /** - * --------------------------------------------------------------- - * 4. Font loading function - * --------------------------------------------------------------- - */ + // Stop propagation of the drag event to prevent other handlers + E.stopEventPropagation(); + + boxKeys.forEach(key => { + if (boxes[key].selected) { + let boxItem = boxes[key]; + if (!boxItem.cachedSize) { + calcBoxSize(boxItem); + } + let newX = boxItem.pos.x + e.dx; + let newY = boxItem.pos.y + e.dy; + + if (newX - boxItem.cachedSize.width / 2 >= 0 && + newX + boxItem.cachedSize.width / 2 <= w && + newY - boxItem.cachedSize.height / 2 >= 0 && + newY + boxItem.cachedSize.height / 2 <= h) { + boxItem.pos.x = newX; + boxItem.pos.y = newY; + } + } + }); + + draw(); + }; + // 4. Font loading function let loadCustomFont = function() { Graphics.prototype.setFontBrunoAce = function() { // Actual height 23 (24 - 2) @@ -61,50 +117,45 @@ E.toString(require('heatshrink').decompress(atob('ABMHwADBh4DKg4bKgIPDAYUfAYV/AYX/AQMD/gmC+ADBn/AByE/GIU8AYUwLxcfAYX/8AnB//4JIP/FgMP4F+CQQBBjwJBFYRbBAd43DHoJpBh/g/xPEK4ZfDgEEORKDDAY8////wADLfZrTCgITBnhEBAYJMBAYMPw4DCM4QDjhwDCjwDBn0+AYMf/gDBh/4AYMH+ADBLpc4ToK/NGYZfnAYcfL4U/x5fBW4LvB/7vC+LvBgHAsBfIn76Cn4WBcYQDFEgJ+CQQYDyH4L/BAZbHLNYjjCAZc8ngDunycBZ4KkBa4KwBnEHY4UB+BfMgf/ZgMH/4XBc4cf4F/gE+ZgRjwAYcfj5jBM4U4M4RQBM4UA8BjIngDFEYJ8BAYUDAYQvCM4ZxBC4V+AYQvBnkBQ4M8gabBJQPAI4WAAYM/GYQaBAYJKCnqyCn5OCn4aBAYIaBAYJPCU4IABnBhIuDXCFAMD+Z/BY4IDBQwOPwEfv6TDAYUPAcwrDAYQ7BAYY/BI4cD8bLCK4RfEAA0BRYTeDcwIrFn0Pw43Bg4DugYDBjxBBU4SvDMYMH/5QBgP/LAQAP8EHN4UPwADHB4YAHA'))), 46, atob("CBEdChgYGhgaGBsaCQ=="), - 32|65536 + 32 | 65536 ); }; }; - /** - * --------------------------------------------------------------- - * 5. Initial settings of boxes and their positions - * --------------------------------------------------------------- - */ + // 5. Initial settings of boxes and their positions + let isBool = (val, defaultVal) => val !== undefined ? Boolean(val) : defaultVal; for (let key in boxesConfig) { if (key === 'bg' && boxesConfig[key].img) { bgImage = storage.read(boxesConfig[key].img); } else if (key !== 'selectedConfig') { boxes[key] = Object.assign({}, boxesConfig[key]); + // Set default values for short, shortMonth, and disableSuffix + boxes[key].short = isBool(boxes[key].short, true); + boxes[key].shortMonth = isBool(boxes[key].shortMonth, true); + boxes[key].disableSuffix = isBool(boxes[key].disableSuffix, false); + + // Set box position + boxes[key].pos = { + x: w * boxes[key].boxPos.x, + y: h * boxes[key].boxPos.y + }; + // Cache box size + boxes[key].cachedSize = null; } } let boxKeys = Object.keys(boxes); - boxKeys.forEach((key) => { - let boxConfig = boxes[key]; - boxPos[key] = { - x: w * boxConfig.boxPos.x, - y: h * boxConfig.boxPos.y - }; - isDragging[key] = false; - wasDragging[key] = false; - }); + // 6. Text and drawing functions - /** - * --------------------------------------------------------------- - * 6. Text and drawing functions - * --------------------------------------------------------------- + /* + Overwrite the setColor function to allow the + use of (x) in g.theme.x as a string + in your JSON config ("fg", "bg", "fg2", "bg2", "fgH", "bgH") */ - - // Overwrite the setColor function to allow the - // use of (x) in g.theme.x as a string - // in your JSON config ("fg", "bg", "fg2", "bg2", "fgH", "bgH") let modSetColor = function() { - // Save the original setColor function g_setColor = g.setColor; - // Overwrite setColor with the new function g.setColor = function(color) { if (typeof color === "string" && color in g.theme) { g_setColor.call(g, g.theme[color]); @@ -115,7 +166,6 @@ }; let restoreSetColor = function() { - // Restore the original setColor function if (g_setColor) { g.setColor = g_setColor; } @@ -139,25 +189,6 @@ } }; - let calcBoxSize = function(boxItem) { - g.reset(); - g.setFontAlign(0,0); - g.setFont(boxItem.font, boxItem.fontSize); - let strWidth = g.stringWidth(boxItem.string) + 2 * boxItem.outline; - let fontHeight = g.getFontHeight() + 2 * boxItem.outline; - totalWidth = strWidth + 2 * boxItem.xPadding; - totalHeight = fontHeight + 2 * boxItem.yPadding; - }; - - let calcBoxPos = function(boxKey) { - return { - x1: boxPos[boxKey].x - totalWidth / 2, - y1: boxPos[boxKey].y - totalHeight / 2, - x2: boxPos[boxKey].x + totalWidth / 2, - y2: boxPos[boxKey].y + totalHeight / 2 - }; - }; - let displaySaveIcon = function() { draw(boxes); g.drawImage(saveIcon, w / 2 - 24, h / 2 - 24); @@ -168,33 +199,15 @@ }, 2000); }; - /** - * --------------------------------------------------------------- - * 7. String forming helper functions - * --------------------------------------------------------------- - */ - - let isBool = function(val, defaultVal) { - return typeof val !== 'undefined' ? Boolean(val) : defaultVal; - }; - + // 7. String forming helper functions let getDate = function(short, shortMonth, disableSuffix) { const date = new Date(); const dayOfMonth = date.getDate(); const month = shortMonth ? locale.month(date, 1) : locale.month(date, 0); const year = date.getFullYear(); - let suffix; - if ([1, 21, 31].includes(dayOfMonth)) { - suffix = "st"; - } else if ([2, 22].includes(dayOfMonth)) { - suffix = "nd"; - } else if ([3, 23].includes(dayOfMonth)) { - suffix = "rd"; - } else { - suffix = "th"; - } - let dayOfMonthStr = disableSuffix ? dayOfMonth : dayOfMonth + suffix; - return month + " " + dayOfMonthStr + (short ? '' : (", " + year)); // not including year for short version + let suffix = ["st", "nd", "rd"][(dayOfMonth - 1) % 10] || "th"; + let dayOfMonthStr = disableSuffix ? dayOfMonth : `${dayOfMonth}${suffix}`; + return `${month} ${dayOfMonthStr}${short ? '' : `, ${year}`}`; }; let getDayOfWeek = function(date, short) { @@ -207,98 +220,179 @@ return short ? meridian[0] : meridian; }; - let modString = function(boxItem, data) { - let prefix = boxItem.prefix || ''; - let suffix = boxItem.suffix || ''; - return prefix + data + suffix; + let formatStr = function(boxItem, data) { + return `${boxItem.prefix || ''}${data}${boxItem.suffix || ''}`; }; - /** - * --------------------------------------------------------------- - * 8. Main draw function - * --------------------------------------------------------------- - */ + // 8. Main draw function and update logic + let lastDay = -1; + const BATTERY_UPDATE_INTERVAL = 300000; - let draw = (function() { - let updatePerMinute = true; + let updateBoxData = function() { + let date = new Date(); + let currentDay = date.getDate(); + let now = Date.now(); - return function(boxes) { - date = new Date(); - g.clear(); - - // Always draw backgrounds full screen - - if (bgImage) { // Check for bg in boxclk config - g.drawImage(bgImage, 0, 0); - } else { // Otherwise use clockbg module - background.fillRect(0, 0, g.getWidth(), g.getHeight()); - } - + if (boxes.time || boxes.meridian || boxes.date || boxes.dow) { if (boxes.time) { - boxes.time.string = modString(boxes.time, locale.time(date, isBool(boxes.time.short, true) ? 1 : 0).trim()); - updatePerMinute = isBool(boxes.time.short, true); - } - if (boxes.meridian) { - boxes.meridian.string = modString(boxes.meridian, locale.meridian(date, isBool(boxes.meridian.short, true))); - } - if (boxes.date) { - boxes.date.string = ( - modString(boxes.date, - getDate(isBool(boxes.date.short, true), - isBool(boxes.date.shortMonth, true), - isBool(boxes.date.disableSuffix, false) - ))); - } - if (boxes.dow) { - boxes.dow.string = modString(boxes.dow, getDayOfWeek(date, isBool(boxes.dow.short, true))); - } - if (boxes.batt) { - boxes.batt.string = modString(boxes.batt, E.getBattery()); - } - if (boxes.step) { - boxes.step.string = modString(boxes.step, Bangle.getHealthStatus("day").steps); - } - boxKeys.forEach((boxKey) => { - let boxItem = boxes[boxKey]; - calcBoxSize(boxItem); - const pos = calcBoxPos(boxKey); - if (isDragging[boxKey]) { - g.setColor(boxItem.border); - g.drawRect(pos.x1, pos.y1, pos.x2, pos.y2); + let showSeconds = !boxes.time.short; + let timeString = locale.time(date, 1).trim(); + if (showSeconds) { + let seconds = date.getSeconds().toString().padStart(2, '0'); + timeString += ':' + seconds; + } + let newTimeString = formatStr(boxes.time, timeString); + if (newTimeString !== boxes.time.string) { + boxes.time.string = newTimeString; + boxes.time.cachedSize = null; } - g.drawString( - boxItem, - boxItem.string, - boxPos[boxKey].x + boxItem.xOffset, - boxPos[boxKey].y + boxItem.yOffset - ); - }); - if (!Object.values(isDragging).some(Boolean)) { - if (drawTimeout) clearTimeout(drawTimeout); - let interval = updatePerMinute ? 60000 - (Date.now() % 60000) : 1000; - drawTimeout = setTimeout(() => draw(boxes), interval); } - }; - })(); - /** - * --------------------------------------------------------------- - * 9. Helper function for touch event - * --------------------------------------------------------------- - */ + if (boxes.meridian) { + let newMeridianString = formatStr(boxes.meridian, locale.meridian(date, boxes.meridian.short)); + if (newMeridianString !== boxes.meridian.string) { + boxes.meridian.string = newMeridianString; + boxes.meridian.cachedSize = null; + } + } + + if (boxes.date && currentDay !== lastDay) { + let newDateString = formatStr(boxes.date, + getDate(boxes.date.short, + boxes.date.shortMonth, + boxes.date.noSuffix) + ); + if (newDateString !== boxes.date.string) { + boxes.date.string = newDateString; + boxes.date.cachedSize = null; + } + } + + if (boxes.dow) { + let newDowString = formatStr(boxes.dow, getDayOfWeek(date, boxes.dow.short)); + if (newDowString !== boxes.dow.string) { + boxes.dow.string = newDowString; + boxes.dow.cachedSize = null; + } + } + + lastDay = currentDay; + } + + if (boxes.step) { + let newStepCount = Bangle.getHealthStatus("day").steps; + let newStepString = formatStr(boxes.step, newStepCount); + if (newStepString !== boxes.step.string) { + boxes.step.string = newStepString; + boxes.step.cachedSize = null; + } + } + + if (boxes.batt) { + if (!boxes.batt.lastUpdate || now - boxes.batt.lastUpdate >= BATTERY_UPDATE_INTERVAL) { + let currentLevel = E.getBattery(); + if (currentLevel !== boxes.batt.lastLevel) { + let newBattString = formatStr(boxes.batt, currentLevel); + if (newBattString !== boxes.batt.string) { + boxes.batt.string = newBattString; + boxes.batt.cachedSize = null; + boxes.batt.lastLevel = currentLevel; + } + } + boxes.batt.lastUpdate = now; + } + } + }; + + let draw = function() { + g.clear(); + + // Always draw backgrounds full screen + if (bgImage) { // Check for bg in boxclk config + g.drawImage(bgImage, 0, 0); + } else { // Otherwise use clockbg module + background.fillRect(0, 0, g.getWidth(), g.getHeight()); + } + + if (!isDragging) { + updateBoxData(); + } + + boxKeys.forEach((boxKey) => { + let boxItem = boxes[boxKey]; + + // Set font and alignment for each box individually + g.setFont(boxItem.font, boxItem.fontSize); + g.setFontAlign(0, 0); + + // Use cached size if available, otherwise calculate and cache + if (!boxItem.cachedSize) { + calcBoxSize(boxItem); + } + + const pos = { + x1: boxItem.pos.x - boxItem.cachedSize.width / 2, + y1: boxItem.pos.y - boxItem.cachedSize.height / 2, + x2: boxItem.pos.x + boxItem.cachedSize.width / 2, + y2: boxItem.pos.y + boxItem.cachedSize.height / 2 + }; + + if (boxItem.selected) { + g.setColor(boxItem.border); + g.drawRect(pos.x1, pos.y1, pos.x2, pos.y2); + } + + g.drawString( + boxItem, + boxItem.string, + boxItem.pos.x + boxItem.xOffset, + boxItem.pos.y + boxItem.yOffset + ); + }); + + if (!isDragging) { + if (drawTimeout) clearTimeout(drawTimeout); + let updateInterval = boxes.time && !isBool(boxes.time.short, true) ? 1000 : 60000 - (Date.now() % 60000); + drawTimeout = setTimeout(draw, updateInterval); + } + }; + + // 9. Helper function for touch event + let calcBoxSize = function(boxItem) { + g.setFont(boxItem.font, boxItem.fontSize); + g.setFontAlign(0, 0); + + let strWidth = g.stringWidth(boxItem.string) + 2 * boxItem.outline; + let fontHeight = g.getFontHeight() + 2 * boxItem.outline; + let totalWidth = strWidth + 2 * boxItem.xPadding; + let totalHeight = fontHeight + 2 * boxItem.yPadding; + + boxItem.cachedSize = { + width: totalWidth, + height: totalHeight + }; + }; let touchInText = function(e, boxItem, boxKey) { - calcBoxSize(boxItem); - const pos = calcBoxPos(boxKey); + if (!boxItem.cachedSize) { + calcBoxSize(boxItem); + } + const pos = { + x1: boxItem.pos.x - boxItem.cachedSize.width / 2, + y1: boxItem.pos.y - boxItem.cachedSize.height / 2, + x2: boxItem.pos.x + boxItem.cachedSize.width / 2, + y2: boxItem.pos.y + boxItem.cachedSize.height / 2 + }; return e.x >= pos.x1 && - e.x <= pos.x2 && - e.y >= pos.y1 && - e.y <= pos.y2; + e.x <= pos.x2 && + e.y >= pos.y1 && + e.y <= pos.y2; }; let deselectAllBoxes = function() { - Object.keys(isDragging).forEach((boxKey) => { - isDragging[boxKey] = false; + isDragging = false; + boxKeys.forEach((boxKey) => { + boxes[boxKey].selected = false; }); restoreSetColor(); widgets.show(); @@ -306,96 +400,37 @@ modSetColor(); }; - /** - * --------------------------------------------------------------- - * 10. Setup function to configure event handlers - * --------------------------------------------------------------- - */ - + // 10. Setup function to configure event handlers let setup = function() { - // ------------------------------------ - // Define the touchHandler function - // ------------------------------------ - touchHandler = function(zone, e) { - wasDragging = Object.assign({}, isDragging); - let boxTouched = false; - boxKeys.forEach((boxKey) => { - if (touchInText(e, boxes[boxKey], boxKey)) { - isDragging[boxKey] = true; - wasDragging[boxKey] = true; - boxTouched = true; - } - }); - if (!boxTouched) { - if (!Object.values(isDragging).some(Boolean)) { // check if no boxes are being dragged - deselectAllBoxes(); - if (doubleTapTimer) { - clearTimeout(doubleTapTimer); - doubleTapTimer = null; - // Save boxesConfig on double tap outside of any box and when no boxes are being dragged - Object.keys(boxPos).forEach((boxKey) => { - boxesConfig[boxKey].boxPos.x = (boxPos[boxKey].x / w).toFixed(3); - boxesConfig[boxKey].boxPos.y = (boxPos[boxKey].y / h).toFixed(3); - }); - storage.write(fileName, JSON.stringify(boxesConfig)); - displaySaveIcon(); - return; - } - } else { - // if any box is being dragged, just deselect all without saving - deselectAllBoxes(); - } + Bangle.on('lock', function(isLocked) { + if (isLocked) { + // Screen is about to lock, deselect all boxes + deselectAllBoxes(); + // Redraw to reflect changes + draw(); } - if (Object.values(wasDragging).some(Boolean) || !boxTouched) { - draw(boxes); - } - doubleTapTimer = setTimeout(() => { - doubleTapTimer = null; - }, 500); // Increase or decrease this value based on the desired double tap timing - movementDistance = 0; - }; - - // ------------------------------------ - // Define the dragHandler function - // ------------------------------------ - dragHandler = function(e) { - // Check if any box is being dragged - if (!Object.values(isDragging).some(Boolean)) return; - // Calculate the movement distance - movementDistance += Math.abs(e.dx) + Math.abs(e.dy); - // Check if the movement distance exceeds a threshold - if (movementDistance > 1) { - boxKeys.forEach((boxKey) => { - if (isDragging[boxKey]) { - widgets.hide(); - let boxItem = boxes[boxKey]; - calcBoxSize(boxItem); - let newX = boxPos[boxKey].x + e.dx; - let newY = boxPos[boxKey].y + e.dy; - if (newX - totalWidth / 2 >= 0 && - newX + totalWidth / 2 <= w && - newY - totalHeight / 2 >= 0 && - newY + totalHeight / 2 <= h ) { - boxPos[boxKey].x = newX; - boxPos[boxKey].y = newY; - } - const pos = calcBoxPos(boxKey); - g.clearRect(pos.x1, pos.y1, pos.x2, pos.y2); - } - }); - draw(boxes); - } - }; + }); Bangle.on('touch', touchHandler); Bangle.on('drag', dragHandler); + if (boxes.step) { + boxes.step.string = formatStr(boxes.step, Bangle.getHealthStatus("day").steps); + } + if (boxes.batt) { + boxes.batt.lastLevel = E.getBattery(); + boxes.batt.string = formatStr(boxes.batt, boxes.batt.lastLevel); + boxes.batt.lastUpdate = Date.now(); + } + Bangle.setUI({ - mode : "clock", - remove : function() { - // Remove event handlers, stop draw timer, remove custom font if used + mode: "clock", + remove: function() { + // Remove event handlers, stop draw timer, remove custom font Bangle.removeListener('touch', touchHandler); Bangle.removeListener('drag', dragHandler); + Bangle.removeListener('step'); + Bangle.removeAllListeners('lock'); if (drawTimeout) clearTimeout(drawTimeout); drawTimeout = undefined; delete Graphics.prototype.setFontBrunoAce; @@ -406,17 +441,21 @@ } }); loadCustomFont(); - draw(boxes); + draw(); }; - /** - * --------------------------------------------------------------- - * 11. Main execution part - * --------------------------------------------------------------- - */ - + // 11. Main execution Bangle.loadWidgets(); widgets.swipeOn(); modSetColor(); setup(); -} + + // Event listener for real-time step updates + Bangle.on('step', function(up) { + if (boxes.step && !isDragging) { + boxes.step.string = formatStr(boxes.step, Bangle.getHealthStatus("day").steps); + boxes.step.cachedSize = null; + draw(); + } + }); +} \ No newline at end of file diff --git a/apps/boxclk/metadata.json b/apps/boxclk/metadata.json index b4055f160..27e43c3be 100644 --- a/apps/boxclk/metadata.json +++ b/apps/boxclk/metadata.json @@ -1,7 +1,7 @@ { "id": "boxclk", "name": "Box Clock", - "version": "0.07", + "version": "0.08", "description": "A customizable clock with configurable text boxes that can be positioned to show your favorite background", "icon": "app.png", "dependencies" : { "clockbg":"module" }, @@ -24,4 +24,4 @@ "data": [ {"name":"boxclk.json","url":"boxclk.json"} ] -} +} \ No newline at end of file From 16a5650c410616c8aef77896ab9360de29eca535 Mon Sep 17 00:00:00 2001 From: stweedo <108593831+stweedo@users.noreply.github.com> Date: Fri, 6 Sep 2024 00:13:44 -0500 Subject: [PATCH 258/594] Remove redundant code --- apps/boxclk/app.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/apps/boxclk/app.js b/apps/boxclk/app.js index 139ad31a1..1bb8bd9dc 100644 --- a/apps/boxclk/app.js +++ b/apps/boxclk/app.js @@ -44,13 +44,8 @@ if (isDragging) { widgets.hide(); - // Stop propagation of the touch event to prevent other handlers - E.stopEventPropagation(); } else { - widgets.show(); - widgets.swipeOn(); - // Call updateBoxData when transitioning from dragging to not dragging - updateBoxData(); + deselectAllBoxes(); } } else { // If tapped outside any box, deselect all boxes From 48e02ba13fef2d43adaa253ec2df69d8cf5c85fd Mon Sep 17 00:00:00 2001 From: stweedo <108593831+stweedo@users.noreply.github.com> Date: Fri, 6 Sep 2024 01:22:58 -0500 Subject: [PATCH 259/594] Move check for cachedSize into calcBoxSize --- apps/boxclk/app.js | 66 +++++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/apps/boxclk/app.js b/apps/boxclk/app.js index 1bb8bd9dc..8f0449a23 100644 --- a/apps/boxclk/app.js +++ b/apps/boxclk/app.js @@ -85,9 +85,7 @@ boxKeys.forEach(key => { if (boxes[key].selected) { let boxItem = boxes[key]; - if (!boxItem.cachedSize) { - calcBoxSize(boxItem); - } + calcBoxSize(boxItem); let newX = boxItem.pos.x + e.dx; let newY = boxItem.pos.y + e.dy; @@ -320,17 +318,9 @@ g.setFont(boxItem.font, boxItem.fontSize); g.setFontAlign(0, 0); - // Use cached size if available, otherwise calculate and cache - if (!boxItem.cachedSize) { - calcBoxSize(boxItem); - } + calcBoxSize(boxItem); - const pos = { - x1: boxItem.pos.x - boxItem.cachedSize.width / 2, - y1: boxItem.pos.y - boxItem.cachedSize.height / 2, - x2: boxItem.pos.x + boxItem.cachedSize.width / 2, - y2: boxItem.pos.y + boxItem.cachedSize.height / 2 - }; + const pos = calcBoxPos(boxItem); if (boxItem.selected) { g.setColor(boxItem.border); @@ -353,31 +343,41 @@ }; // 9. Helper function for touch event - let calcBoxSize = function(boxItem) { - g.setFont(boxItem.font, boxItem.fontSize); - g.setFontAlign(0, 0); - - let strWidth = g.stringWidth(boxItem.string) + 2 * boxItem.outline; - let fontHeight = g.getFontHeight() + 2 * boxItem.outline; - let totalWidth = strWidth + 2 * boxItem.xPadding; - let totalHeight = fontHeight + 2 * boxItem.yPadding; - - boxItem.cachedSize = { - width: totalWidth, - height: totalHeight - }; - }; - - let touchInText = function(e, boxItem, boxKey) { - if (!boxItem.cachedSize) { - calcBoxSize(boxItem); - } - const pos = { + let calcBoxPos = function(boxItem) { + calcBoxSize(boxItem); + return { x1: boxItem.pos.x - boxItem.cachedSize.width / 2, y1: boxItem.pos.y - boxItem.cachedSize.height / 2, x2: boxItem.pos.x + boxItem.cachedSize.width / 2, y2: boxItem.pos.y + boxItem.cachedSize.height / 2 }; + }; + + // Use cached size if available, otherwise calculate and cache + let calcBoxSize = function(boxItem) { + if (boxItem.cachedSize) { + return boxItem.cachedSize; + } + + g.setFont(boxItem.font, boxItem.fontSize); + g.setFontAlign(0, 0); + + let strWidth = g.stringWidth(boxItem.string) + 2 * boxItem.outline; + let fontHeight = g.getFontHeight() + 2 * boxItem.outline; + let totalWidth = strWidth + 2 * boxItem.xPadding; + let totalHeight = fontHeight + 2 * boxItem.yPadding; + + boxItem.cachedSize = { + width: totalWidth, + height: totalHeight + }; + + return boxItem.cachedSize; + }; + + let touchInText = function(e, boxItem, boxKey) { + calcBoxSize(boxItem); + const pos = calcBoxPos(boxItem); return e.x >= pos.x1 && e.x <= pos.x2 && e.y >= pos.y1 && From 47d917c22ce0a97b8442bf815f6858adc4b1261e Mon Sep 17 00:00:00 2001 From: frederic wagner Date: Fri, 6 Sep 2024 11:00:24 +0200 Subject: [PATCH 260/594] pushups : getting ready for release --- apps/pushups/README.md | 27 +++++++- apps/pushups/app.js | 121 +++++++++++++++++++++++++--------- apps/pushups/metadata.json | 1 + apps/pushups/shot_menu.png | Bin 0 -> 2199 bytes apps/pushups/shot_pushups.png | Bin 0 -> 2887 bytes apps/pushups/shot_squats.png | Bin 0 -> 3020 bytes 6 files changed, 116 insertions(+), 33 deletions(-) create mode 100644 apps/pushups/shot_menu.png create mode 100644 apps/pushups/shot_pushups.png create mode 100644 apps/pushups/shot_squats.png diff --git a/apps/pushups/README.md b/apps/pushups/README.md index 60c0f315e..df2fe5358 100644 --- a/apps/pushups/README.md +++ b/apps/pushups/README.md @@ -1,7 +1,30 @@ # Pushups -Train for push ups using the accelerometer. It should buzz everytime you go up and down. -Swipe the screen to set the countdown value. +Pushups is an exercising app with a twist : the accelerometer. + +![Screenshot](shot_pushups.png) + +I initially just wanted a pushups counter but i kind of got out of hand. + +The accelerometer will work on the following exercises : + +- pushups +- situps +- squats +- jumping jacks + +For each of them it will try to detect two positions (for example up and down for pushups) +and buzz on each change. You can set up a target counter for each exercise. + +Precision is not 100% but it's good for me and kind of increases my motivation. + +Other activities are time based like + +- plank +- rest + + +Define your training routine, set a duration and you're ready to go. ## Creator diff --git a/apps/pushups/app.js b/apps/pushups/app.js index 3d7ff9b98..1d2d948ca 100644 --- a/apps/pushups/app.js +++ b/apps/pushups/app.js @@ -39,6 +39,14 @@ const IMAGES = [ // number of movements or duration required for each activity const DEFAULTS = [7, 10, 10, 30, 15, 30]; +// detector sensitivity for each activity +// (less is more reactive but more sensitive to noise) +const COUNTS = [6, 10, 6, 6, 6, 5]; + +function default_config() { + return {duration: 10*60, routine: default_routine()}; +} + function default_routine() { let routine = []; DEFAULTS.forEach((d, i) => { @@ -94,11 +102,8 @@ const DETECTORS = [ ]; class FitnessStatus { - constructor(duration) { - this.routine = require("Storage").readJSON("pushups.cfg", true); - if (this.routine === undefined) { - this.routine = default_routine(); - } + constructor(config) { + this.routine = config.routine; this.routine_step = 0; this.current_status = 0; this.buzzing = false; @@ -108,7 +113,7 @@ class FitnessStatus { this.remaining = this.routine[this.routine_step][1]; this.activity_start = getTime(); this.starting_time = this.activity_start; - this.duration = duration; + this.duration = config.duration; this.completed = false; } @@ -202,6 +207,7 @@ class FitnessStatus { } let activity = this.routine[this.routine_step][0]; let detector = DETECTORS[activity]; + let status = this; if (detector === null) { // it's time based let activity_duration = getTime() - this.activity_start; @@ -221,8 +227,7 @@ class FitnessStatus { if (new_status != this.current_status) { this.counts_in_opposite_status += 1; - // we consider 6 counts to smooth out noise - if (this.counts_in_opposite_status == 6) { + if (this.counts_in_opposite_status == COUNTS[activity]) { this.current_status = 1 - this.current_status; this.counts_in_opposite_status = 0; if (this.current_status == 0) { @@ -243,11 +248,9 @@ class FitnessStatus { } } -let status = new FitnessStatus(10 * 60); -// status.display(); - -function start_routine() { +function start_routine(config) { + let status = new FitnessStatus(config); Bangle.accelWr(0x18,0b01110100); // off, +-8g // NOTE: this code is taken from 'accelrec' app Bangle.accelWr(0x1B,0x03 | 0x40); // 100hz output, ODR/2 filter @@ -285,8 +288,8 @@ function start_routine() { } -function edit_menu() { - let routine = status.routine; +function edit_menu(config) { + let routine = config.routine; E.showScroller({ h : 60, @@ -308,21 +311,20 @@ function edit_menu() { select : function(idx) { if (idx == routine.length + 1) { E.showScroller(); - require("Storage").writeJSON("pushups.cfg", routine); - start_routine(); + set_duration(config); } else if (idx == routine.length) { E.showScroller(); - add_activity(); + add_activity(config); } else { E.showScroller(); - set_counter(idx); + set_counter(config, idx); } } }); } -function add_activity() { +function add_activity(config) { E.showScroller({ h : 60, c : IMAGES.length, @@ -332,19 +334,19 @@ function add_activity() { g.drawImage(img, r.x + r.w / 3, r.y + 10); }, select : function(idx) { - let new_index = status.routine.length; - status.routine.push([idx, 10]); + let new_index = config.routine.length; + config.routine.push([idx, 10]); E.showScroller(); - set_counter(new_index); + set_counter(config, new_index); } }); } -function set_counter(index) { +function set_counter(config, index) { let w = g.getWidth(); let h = g.getHeight(); - let counter = status.routine[index][1]; + let counter = config.routine[index][1]; function display() { g.clear(); g.setFont("6x8:2") @@ -378,18 +380,69 @@ function set_counter(index) { }); Bangle.on("touch", function(button, xy) { if (counter == 0) { - status.routine.splice(index, 1); + config.routine.splice(index, 1); } else { - status.routine[index][1] = counter; + config.routine[index][1] = counter; } Bangle.removeAllListeners("touch"); Bangle.removeAllListeners("swipe"); - edit_menu(); + edit_menu(config); }); } -function main_menu() { + +//TODO: factorize code with set_counter +function set_duration(config) { + let w = g.getWidth(); + let h = g.getHeight(); + let duration = config.duration; + let minutes = Math.floor(duration / 60); + function display() { + g.clear(); + g.setColor(0); + g.setFont("6x8:2") + .setFontAlign(1, 0) + .drawString("+1", w, h/2); + g.setFontAlign(-1, 0) + .drawString("-1", 0, h/2); + g.setFontAlign(0, -1) + .drawString("+5", w/2, 0); + g.setFontAlign(0, 1) + .drawString("-5", w/2, h); + g.drawString("minutes", w/2, h-40); + g.setFont("Vector:64") + .setFontAlign(0, 0) + .drawString(""+minutes, w/2, h/2); + } + display(); + Bangle.on("swipe", function (directionLR, directionUD) { + if (directionUD == -1) { + minutes += 5; + } else if (directionUD == 1) { + minutes -= 5; + } else if (directionLR == -1) { + minutes -= 1; + } else if (directionLR == 1) { + minutes += 1; + } + if (minutes < 1) { + minutes = 1; + } + display(); + }); + Bangle.on("touch", function(button, xy) { + Bangle.removeAllListeners("touch"); + Bangle.removeAllListeners("swipe"); + config.duration = minutes * 60; + //TODO: don't write if no change + require("Storage").writeJSON("pushups.cfg", config); + start_routine(config); + }); + +} + +function main_menu(config) { let w = g.getWidth(); let h = g.getHeight(); g.clear(); @@ -409,7 +462,7 @@ function main_menu() { .setFontAlign(0, 0) .drawString("Edit", w/2, 3*h/4); Bangle.removeAllListeners("touch"); - edit_menu(); + edit_menu(config); } else if (xy.y < h/2-10) { g.fillRect(10, 10, w-10, h/2-10); g.setColor(1, 1, 1) @@ -417,10 +470,16 @@ function main_menu() { .setFontAlign(0, 0) .drawString("Start", w/2, h/4); Bangle.removeAllListeners("touch"); - start_routine(); + set_duration(config); } }) } -main_menu(); +let config = require("Storage").readJSON("pushups.cfg", true); + +if (config === undefined) { + config = default_config(); +} + +main_menu(config); diff --git a/apps/pushups/metadata.json b/apps/pushups/metadata.json index 64a445067..dc8dd6989 100644 --- a/apps/pushups/metadata.json +++ b/apps/pushups/metadata.json @@ -9,6 +9,7 @@ "type": "app", "tags": "health", "supports": ["BANGLEJS2"], + "screenshots": [{"url":"shot_pushups.png"}, {"url":"shot_squats.png"}, {"url":"shot_menu.png"}], "readme": "README.md", "storage": [ {"name":"pushups.app.js","url":"app.js"}, diff --git a/apps/pushups/shot_menu.png b/apps/pushups/shot_menu.png new file mode 100644 index 0000000000000000000000000000000000000000..b7f44b6e207294846f4d9ad43c04d04e9c634a46 GIT binary patch literal 2199 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 G-hTkkB8vk6 literal 0 HcmV?d00001 diff --git a/apps/pushups/shot_squats.png b/apps/pushups/shot_squats.png new file mode 100644 index 0000000000000000000000000000000000000000..de3ac7bdd18453fc0e0755f47f29c2361601702e GIT binary patch literal 3020 zcmcImhgZ|d7XJN`AR!>ViL|Ao($S?xKo9~;5G-J5S#go3^ngMzfJhY(*090?OA}nF zLIeyYAc#sADN;i*lmH1JMOt2bf5Uro&fNRWJ$JtEoVjymZsHZRPfCZbOuEE(O5`H@Y0Jw1|bJJ_#Zfm*8#2if? z^Bfjy>8{n>BfY<#E|hkx>Kjjpde~%l%gUxr%p5JsJahs}MH&RKrJp$X4shh7+u;kO zOCZ{mqinQ%TXBNty7Q*iHYNq8T!1=#rBiblP(J#f+se$+||t0_$|SI^mhYL zf@9tGE18?DDloj|@JP;tQ+Ztd$vLnoY+hcOxTFDTP|(9r?`+0iK2%w53VQ|#gZ*3g zBTJ06d#f<6)@GD(p0`bPNtK0S!mwX@{O}O=e`vxZL;dqvC zqb_ZgN6vV_XM|DXAG39Cv39a==c1303nT>--xPjBZ2cEapR02EOn8E89skJAFY#?F z6!+3+u5<@_MhMlt<7w>T-S+fky;mL>bn_j2^@zRwBnj}H-_Vvebt2>WHd>T2CcMh< zKbE5fV2bt%+$fF;uwvo(eDI5g!Oj%j)@SdB+Y@(K_u7!G4CIIOfbCEL<;I|_l&3qX zYEt2fnns;5vgK39S^#7a>ilJYzI*GJ3yp`m0;dkOa2k zKuJNN_uv?zYpJTSdOVXc=QY@L6k#l~ziT9PmvtO*=& zIL}(}+i<%Xe8a1sA!ur-$Z%Sp@ZepN#jl7~q+4_W!&*8|N{q)H zgh;y0jd2N5$MzrhrvmX=dbk*v-kX-$T6xN>Vrs4|m|Ee#w+askPxMf>B6!eGBMtut zTb#0~M-}fT$no`dnFfc=v|j~@QW%411g54Eh7QxWXjiH@w57&WalP%A z`*P}qlJ&K~dzWMC6YKiOFNB1!{*$C6M|xAT0Xxj`hHTe zFD+9Xl_?R&Ay@{&%`nP^<*~tMibIS-9W5u)7j1`4(vilvc7*Xfuz|3b2?2I(A1e{K&ppOucXEh?|6Xn znmlhqdA`!}P%bipDj|Cr;Vx8Kw<5pw^nFNNpc26u(6VNV)>xa0Kg-n3JDYM9I*CXS zxK*EY9nqffcX5r?`)4ignAeO8v_{rW)hkLK;9m=rCgil?) z{c(R}2;bl6Y)0&lle|tgPJzlqs|YlTQ8GvsOeGZs-|wHQlowt%jxOP6Fq7Q)mBBl= zp5by;nPnu)3i;T7jjZYAUWaG;oH;auvYyYSVj{j6kO1dhmP==(d;cMqzyHnA;q}s% zgiFkOV2^Ovm+_*JLBx3ZF5XTUhUIEF`#qtEB0)l{QAUpZ)4F`~^N0U-95(Z!mOvTi z`FmHO+phy6gb8Yv%-_N!NIPYr=eDc9cG)n_;;=Sao=Jv2YxZ=fmHfV#iRVHFYx5lX zX>#h4j$$d%Q1~bBd+p!>-#u#PGoj%xr0XL zk6lM9G*MmQPXca;JzX!2j`Ez$)+=c&3UpA8ihO?M_{RQ=nG3qKWB+i%dG!?PfL}gX z^(m2W);7Oq>#afgk5A_e0#1pkN$R*boi3tLmkdYt$Kzo~PK(WtplP_@TbaoHq_>QS z)2mIehS=O6u!fQQ%amJx`T)yc(O)_g(JiAC%%W7}%&!`k#>o7N&CW5a5|d%kK2qUm zM#OW`Le39b6#VrUBhkv+Em@p2i@Qe3};@%jN_54 zhv&;iTs-270aLD7L#hFK+Sl$Ty~%f*O?7vC-16t!#KsNAa%j&wgAEK@3m476wBED$Pu|!#r^W?DZYw~1ti^?g*?Ub{z7dvasA-F&83^3zRccq*s zPGs*T04fPro;4x3c6U*^G*1P%f{;}V@`N4XBY}?K$Bu4lg+qQj;o?XD$i%cZA*?p_ zEd(}3isZ=yGQm+1SxV(M4<_s{o`y;Q#Hq=|DpPJ#LOI~ozCXl`Kqct^m6~6aI zx0~PE+Syv%f%^NE1Dc?GcK(}5j?0U=O;~t_c14@**0<$4Bos9-E!uC~M(VG*Oev1L zfOc0ltGY}N1?=WX;^F9=ey<(PSp4Gf#U<;_-}$y6)-Oz|MCmE77FDU%(-pH$Gij1z9K6nara+BO}2NN>4yXA%s5jlC=?{sgEXn z^3bHa?VJ?BlVD#^3@$YD3G(Yds{6+)cRa>s*RtJvaWK_#+kB#An@D>(%<;tW;)j7e z2%K5}PTq15lJs8QWDpky*hHva(+e^88D%Fo{~l#+QR?R1GOpve*7VuP=7B81ekwTj z^?Q#BRvNU3K;m_vkCn-mKnjoG%q`GQkKn8i38IeB%MD~!W^X*1uyI+DcFGwW=4g6w djB%@*XF;9qGU_fNTz_`y0LlVwUTKDn`47Kx&7=ST literal 0 HcmV?d00001 From 5f6fd9247df079b9678607f79e13f8ec8858ce50 Mon Sep 17 00:00:00 2001 From: stweedo <108593831+stweedo@users.noreply.github.com> Date: Fri, 6 Sep 2024 08:21:00 -0500 Subject: [PATCH 261/594] Simplified code by removing boxKeys array --- apps/boxclk/app.js | 85 +++++++++++++++++++++++----------------------- 1 file changed, 43 insertions(+), 42 deletions(-) diff --git a/apps/boxclk/app.js b/apps/boxclk/app.js index 8f0449a23..faaf4b7d2 100644 --- a/apps/boxclk/app.js +++ b/apps/boxclk/app.js @@ -28,19 +28,20 @@ let boxTouched = false; let touchedBox = null; - boxKeys.forEach((boxKey) => { - if (touchInText(e, boxes[boxKey], boxKey)) { + for (let boxKey in boxes) { + if (touchInText(e, boxes[boxKey])) { touchedBox = boxKey; boxTouched = true; + break; } - }); + } if (boxTouched) { // Toggle the selected state of the touched box boxes[touchedBox].selected = !boxes[touchedBox].selected; // Update isDragging based on whether any box is selected - isDragging = boxKeys.some(key => boxes[key].selected); + isDragging = Object.values(boxes).some(box => box.selected); if (isDragging) { widgets.hide(); @@ -60,10 +61,10 @@ if (doubleTapTimer) { clearTimeout(doubleTapTimer); doubleTapTimer = null; - Object.keys(boxes).forEach((boxKey) => { + for (let boxKey in boxes) { boxesConfig[boxKey].boxPos.x = (boxes[boxKey].pos.x / w).toFixed(3); boxesConfig[boxKey].boxPos.y = (boxes[boxKey].pos.y / h).toFixed(3); - }); + } storage.write(fileName, JSON.stringify(boxesConfig)); displaySaveIcon(); return; @@ -76,30 +77,30 @@ }; let dragHandler = function(e) { - // Check if any box is being dragged - if (!isDragging) return; - - // Stop propagation of the drag event to prevent other handlers - E.stopEventPropagation(); + // Check if any box is being dragged + if (!isDragging) return; - boxKeys.forEach(key => { - if (boxes[key].selected) { - let boxItem = boxes[key]; - calcBoxSize(boxItem); - let newX = boxItem.pos.x + e.dx; - let newY = boxItem.pos.y + e.dy; + // Stop propagation of the drag event to prevent other handlers + E.stopEventPropagation(); - if (newX - boxItem.cachedSize.width / 2 >= 0 && - newX + boxItem.cachedSize.width / 2 <= w && - newY - boxItem.cachedSize.height / 2 >= 0 && - newY + boxItem.cachedSize.height / 2 <= h) { - boxItem.pos.x = newX; - boxItem.pos.y = newY; - } - } - }); + for (let key in boxes) { + if (boxes[key].selected) { + let boxItem = boxes[key]; + calcBoxSize(boxItem); + let newX = boxItem.pos.x + e.dx; + let newY = boxItem.pos.y + e.dy; - draw(); + if (newX - boxItem.cachedSize.width / 2 >= 0 && + newX + boxItem.cachedSize.width / 2 <= w && + newY - boxItem.cachedSize.height / 2 >= 0 && + newY + boxItem.cachedSize.height / 2 <= h) { + boxItem.pos.x = newX; + boxItem.pos.y = newY; + } + } + } + + draw(); }; // 4. Font loading function @@ -299,42 +300,42 @@ let draw = function() { g.clear(); - + // Always draw backgrounds full screen if (bgImage) { // Check for bg in boxclk config g.drawImage(bgImage, 0, 0); } else { // Otherwise use clockbg module background.fillRect(0, 0, g.getWidth(), g.getHeight()); } - + if (!isDragging) { updateBoxData(); } - - boxKeys.forEach((boxKey) => { + + for (let boxKey in boxes) { let boxItem = boxes[boxKey]; - + // Set font and alignment for each box individually g.setFont(boxItem.font, boxItem.fontSize); g.setFontAlign(0, 0); - + calcBoxSize(boxItem); - + const pos = calcBoxPos(boxItem); - + if (boxItem.selected) { g.setColor(boxItem.border); g.drawRect(pos.x1, pos.y1, pos.x2, pos.y2); } - + g.drawString( boxItem, boxItem.string, boxItem.pos.x + boxItem.xOffset, boxItem.pos.y + boxItem.yOffset ); - }); - + } + if (!isDragging) { if (drawTimeout) clearTimeout(drawTimeout); let updateInterval = boxes.time && !isBool(boxes.time.short, true) ? 1000 : 60000 - (Date.now() % 60000); @@ -375,7 +376,7 @@ return boxItem.cachedSize; }; - let touchInText = function(e, boxItem, boxKey) { + let touchInText = function(e, boxItem) { calcBoxSize(boxItem); const pos = calcBoxPos(boxItem); return e.x >= pos.x1 && @@ -386,9 +387,9 @@ let deselectAllBoxes = function() { isDragging = false; - boxKeys.forEach((boxKey) => { + for (let boxKey in boxes) { boxes[boxKey].selected = false; - }); + } restoreSetColor(); widgets.show(); widgets.swipeOn(); @@ -453,4 +454,4 @@ draw(); } }); -} \ No newline at end of file +} From 69d12f31148d0a34ef367d0f69a39b1b1c8f34a7 Mon Sep 17 00:00:00 2001 From: stweedo <108593831+stweedo@users.noreply.github.com> Date: Fri, 6 Sep 2024 08:32:21 -0500 Subject: [PATCH 262/594] Remove boxKeys declaration --- apps/boxclk/app.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/apps/boxclk/app.js b/apps/boxclk/app.js index faaf4b7d2..ce54da25d 100644 --- a/apps/boxclk/app.js +++ b/apps/boxclk/app.js @@ -139,8 +139,6 @@ } } - let boxKeys = Object.keys(boxes); - // 6. Text and drawing functions /* From bbc9d63d513cfb43bbe4ca31d63b5b1004be5b60 Mon Sep 17 00:00:00 2001 From: Martin Pool Date: Fri, 6 Sep 2024 21:43:14 +0200 Subject: [PATCH 263/594] Fix widgets reappearing --- apps/dutchclock/ChangeLog | 3 ++- apps/dutchclock/app.js | 17 ++++++++++------- apps/dutchclock/metadata.json | 2 +- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/apps/dutchclock/ChangeLog b/apps/dutchclock/ChangeLog index b8e2bfeb9..ebb8e9a25 100644 --- a/apps/dutchclock/ChangeLog +++ b/apps/dutchclock/ChangeLog @@ -1 +1,2 @@ -0.12: First release \ No newline at end of file +0.12: First release +0.13: Fix widgets reappearing \ No newline at end of file diff --git a/apps/dutchclock/app.js b/apps/dutchclock/app.js index 9523a360c..921f73401 100644 --- a/apps/dutchclock/app.js +++ b/apps/dutchclock/app.js @@ -1,5 +1,6 @@ const storage = require("Storage"); const locale = require('locale'); +const widget_utils = require('widget_utils'); const SCREEN_WIDTH = g.getWidth(); const SCREEN_HEIGHT = g.getHeight(); @@ -46,14 +47,12 @@ const Y = SCREEN_HEIGHT / 2 let date, mins; function initialize() { + // Load widgets + Bangle.loadWidgets(); + // draw immediately at first tick(); -// for (let mm = 0; mm < 60; mm++) { -// console.log(23, mm); -// console.log(getTimeLines(23 * 60 + mm)); -// } - // now check every second let secondInterval = setInterval(tick, 1000); // Stop updates when LCD is off, restart when on @@ -76,6 +75,10 @@ function tick() { mins = m; draw(); } + + if (!settings.showWidgets) { + widget_utils.hide(); + } } function draw() { @@ -106,9 +109,9 @@ function draw() { Bangle.setUI("clock"); if (settings.showWidgets) { - // Load widgets - Bangle.loadWidgets(); Bangle.drawWidgets(); + } else { + widget_utils.hide(); } } diff --git a/apps/dutchclock/metadata.json b/apps/dutchclock/metadata.json index 7fa9e9148..cec484219 100644 --- a/apps/dutchclock/metadata.json +++ b/apps/dutchclock/metadata.json @@ -3,7 +3,7 @@ "name": "Dutch Clock", "shortName":"Dutch Clock", "icon": "app.png", - "version":"0.12", + "version":"0.13", "description": "A clock that displays the time the way a Dutch person would respond when asked what time it is.", "type": "clock", "tags": "clock,dutch,text", From 85650f6d4b6290147db3eedeb4c3a5410ba1e320 Mon Sep 17 00:00:00 2001 From: Martin Pool Date: Fri, 6 Sep 2024 22:33:54 +0200 Subject: [PATCH 264/594] Fix midnight --- apps/dutchclock/ChangeLog | 3 ++- apps/dutchclock/app.js | 2 +- apps/dutchclock/metadata.json | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/dutchclock/ChangeLog b/apps/dutchclock/ChangeLog index ebb8e9a25..0f81644ea 100644 --- a/apps/dutchclock/ChangeLog +++ b/apps/dutchclock/ChangeLog @@ -1,2 +1,3 @@ 0.12: First release -0.13: Fix widgets reappearing \ No newline at end of file +0.13: Fix widgets reappearing +0.14: Fix midnight \ No newline at end of file diff --git a/apps/dutchclock/app.js b/apps/dutchclock/app.js index 921f73401..0947b374a 100644 --- a/apps/dutchclock/app.js +++ b/apps/dutchclock/app.js @@ -214,7 +214,7 @@ function getRoundMinutes(m) { const nearest = roundTo(5)(m); return { - minutes: nearest, + minutes: nearest % 60, offset: m - nearest }; } diff --git a/apps/dutchclock/metadata.json b/apps/dutchclock/metadata.json index cec484219..4155e13b3 100644 --- a/apps/dutchclock/metadata.json +++ b/apps/dutchclock/metadata.json @@ -3,7 +3,7 @@ "name": "Dutch Clock", "shortName":"Dutch Clock", "icon": "app.png", - "version":"0.13", + "version":"0.14", "description": "A clock that displays the time the way a Dutch person would respond when asked what time it is.", "type": "clock", "tags": "clock,dutch,text", From 610e1808f53674c4eed6421e94db876b0b0cf54f Mon Sep 17 00:00:00 2001 From: Martin Pool Date: Fri, 6 Sep 2024 22:45:18 +0200 Subject: [PATCH 265/594] Fix midnight better --- apps/dutchclock/ChangeLog | 3 ++- apps/dutchclock/app.js | 5 +++-- apps/dutchclock/metadata.json | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/dutchclock/ChangeLog b/apps/dutchclock/ChangeLog index 0f81644ea..b55f0bbf1 100644 --- a/apps/dutchclock/ChangeLog +++ b/apps/dutchclock/ChangeLog @@ -1,3 +1,4 @@ 0.12: First release 0.13: Fix widgets reappearing -0.14: Fix midnight \ No newline at end of file +0.14: Fix midnight +0.15: Fix midnight better \ No newline at end of file diff --git a/apps/dutchclock/app.js b/apps/dutchclock/app.js index 0947b374a..0e647412c 100644 --- a/apps/dutchclock/app.js +++ b/apps/dutchclock/app.js @@ -15,6 +15,7 @@ const BOTTOM_SPACING = 5; const TEXT_WIDTH = SCREEN_WIDTH - 2; const MINS_IN_HOUR = 60; +const MINS_IN_DAY = 24 * MINS_IN_HOUR; const VARIANT_EXACT = 'exact'; const VARIANT_APPROXIMATE = 'approximate'; @@ -69,7 +70,7 @@ function initialize() { function tick() { date = new Date(); - const m = date.getHours() * MINS_IN_HOUR + date.getMinutes(); + const m = (date.getHours() * MINS_IN_HOUR + date.getMinutes()) % MINS_IN_DAY; if (m !== mins) { mins = m; @@ -214,7 +215,7 @@ function getRoundMinutes(m) { const nearest = roundTo(5)(m); return { - minutes: nearest % 60, + minutes: nearest, offset: m - nearest }; } diff --git a/apps/dutchclock/metadata.json b/apps/dutchclock/metadata.json index 4155e13b3..2a711bdd4 100644 --- a/apps/dutchclock/metadata.json +++ b/apps/dutchclock/metadata.json @@ -3,7 +3,7 @@ "name": "Dutch Clock", "shortName":"Dutch Clock", "icon": "app.png", - "version":"0.14", + "version":"0.15", "description": "A clock that displays the time the way a Dutch person would respond when asked what time it is.", "type": "clock", "tags": "clock,dutch,text", From 072db5c9b9be6ecd7438dec30a4383cceaf32ab8 Mon Sep 17 00:00:00 2001 From: Martin Pool Date: Fri, 6 Sep 2024 22:53:14 +0200 Subject: [PATCH 266/594] Fix midnight decisively --- apps/dutchclock/ChangeLog | 3 ++- apps/dutchclock/app.js | 2 +- apps/dutchclock/metadata.json | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/dutchclock/ChangeLog b/apps/dutchclock/ChangeLog index b55f0bbf1..6519f3b74 100644 --- a/apps/dutchclock/ChangeLog +++ b/apps/dutchclock/ChangeLog @@ -1,4 +1,5 @@ 0.12: First release 0.13: Fix widgets reappearing 0.14: Fix midnight -0.15: Fix midnight better \ No newline at end of file +0.15: Fix midnight better +0.16: Fix midnight decisively \ No newline at end of file diff --git a/apps/dutchclock/app.js b/apps/dutchclock/app.js index 0e647412c..240dca514 100644 --- a/apps/dutchclock/app.js +++ b/apps/dutchclock/app.js @@ -215,7 +215,7 @@ function getRoundMinutes(m) { const nearest = roundTo(5)(m); return { - minutes: nearest, + minutes: nearest % MINS_IN_DAY, offset: m - nearest }; } diff --git a/apps/dutchclock/metadata.json b/apps/dutchclock/metadata.json index 2a711bdd4..0f571ae5f 100644 --- a/apps/dutchclock/metadata.json +++ b/apps/dutchclock/metadata.json @@ -3,7 +3,7 @@ "name": "Dutch Clock", "shortName":"Dutch Clock", "icon": "app.png", - "version":"0.15", + "version":"0.16", "description": "A clock that displays the time the way a Dutch person would respond when asked what time it is.", "type": "clock", "tags": "clock,dutch,text", From 0219eeb0ef9d42ed34c39d6e4b205580a846b598 Mon Sep 17 00:00:00 2001 From: Martin Pool Date: Fri, 6 Sep 2024 23:10:45 +0200 Subject: [PATCH 267/594] Fix loadWidgets location --- apps/dutchclock/ChangeLog | 3 ++- apps/dutchclock/app.js | 5 ++--- apps/dutchclock/metadata.json | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/dutchclock/ChangeLog b/apps/dutchclock/ChangeLog index 6519f3b74..bc6f1de46 100644 --- a/apps/dutchclock/ChangeLog +++ b/apps/dutchclock/ChangeLog @@ -2,4 +2,5 @@ 0.13: Fix widgets reappearing 0.14: Fix midnight 0.15: Fix midnight better -0.16: Fix midnight decisively \ No newline at end of file +0.16: Fix midnight decisively +0.17: Get loadWidgets back in the right place \ No newline at end of file diff --git a/apps/dutchclock/app.js b/apps/dutchclock/app.js index 240dca514..b1dd20b9b 100644 --- a/apps/dutchclock/app.js +++ b/apps/dutchclock/app.js @@ -48,9 +48,6 @@ const Y = SCREEN_HEIGHT / 2 let date, mins; function initialize() { - // Load widgets - Bangle.loadWidgets(); - // draw immediately at first tick(); @@ -108,6 +105,8 @@ function draw() { This should be done *before* Bangle.loadWidgets so that widgets know if they're being loaded into a clock app or not */ Bangle.setUI("clock"); + // Load widgets + Bangle.loadWidgets(); if (settings.showWidgets) { Bangle.drawWidgets(); diff --git a/apps/dutchclock/metadata.json b/apps/dutchclock/metadata.json index 0f571ae5f..3d5b50484 100644 --- a/apps/dutchclock/metadata.json +++ b/apps/dutchclock/metadata.json @@ -3,7 +3,7 @@ "name": "Dutch Clock", "shortName":"Dutch Clock", "icon": "app.png", - "version":"0.16", + "version":"0.17", "description": "A clock that displays the time the way a Dutch person would respond when asked what time it is.", "type": "clock", "tags": "clock,dutch,text", From 4bdf4a0b5ce7a4146ec1acbe1f2b62f2e76484ef Mon Sep 17 00:00:00 2001 From: Martin Pool Date: Fri, 6 Sep 2024 23:39:29 +0200 Subject: [PATCH 268/594] Move initialization into initialize function --- apps/dutchclock/ChangeLog | 3 ++- apps/dutchclock/app.js | 11 +++++------ apps/dutchclock/metadata.json | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/dutchclock/ChangeLog b/apps/dutchclock/ChangeLog index bc6f1de46..7589f192d 100644 --- a/apps/dutchclock/ChangeLog +++ b/apps/dutchclock/ChangeLog @@ -3,4 +3,5 @@ 0.14: Fix midnight 0.15: Fix midnight better 0.16: Fix midnight decisively -0.17: Get loadWidgets back in the right place \ No newline at end of file +0.17: Get loadWidgets back in the right place +0.18: Move setUI and loadWidgets to initialize function \ No newline at end of file diff --git a/apps/dutchclock/app.js b/apps/dutchclock/app.js index b1dd20b9b..5e026316a 100644 --- a/apps/dutchclock/app.js +++ b/apps/dutchclock/app.js @@ -48,6 +48,11 @@ const Y = SCREEN_HEIGHT / 2 let date, mins; function initialize() { + // Tell Bangle this is a clock + Bangle.setUI("clock"); + // Load widgets + Bangle.loadWidgets(); + // draw immediately at first tick(); @@ -101,12 +106,6 @@ function draw() { g.drawString(bottomLines.join('\n'), SCREEN_WIDTH/2, SCREEN_HEIGHT - BOTTOM_SPACING, false); } - /* Show launcher when middle button pressed - This should be done *before* Bangle.loadWidgets so that - widgets know if they're being loaded into a clock app or not */ - Bangle.setUI("clock"); - // Load widgets - Bangle.loadWidgets(); if (settings.showWidgets) { Bangle.drawWidgets(); diff --git a/apps/dutchclock/metadata.json b/apps/dutchclock/metadata.json index 3d5b50484..8cb0fbb86 100644 --- a/apps/dutchclock/metadata.json +++ b/apps/dutchclock/metadata.json @@ -3,7 +3,7 @@ "name": "Dutch Clock", "shortName":"Dutch Clock", "icon": "app.png", - "version":"0.17", + "version":"0.18", "description": "A clock that displays the time the way a Dutch person would respond when asked what time it is.", "type": "clock", "tags": "clock,dutch,text", From 4bf23b4fbb38473f93e8fd803707ae303e9ced5d Mon Sep 17 00:00:00 2001 From: stweedo Date: Sat, 7 Sep 2024 02:37:03 -0500 Subject: [PATCH 269/594] Revise event handlers --- apps/boxclk/app.js | 180 +++++++++++++++++++++++---------------------- 1 file changed, 92 insertions(+), 88 deletions(-) diff --git a/apps/boxclk/app.js b/apps/boxclk/app.js index ce54da25d..8287b64c8 100644 --- a/apps/boxclk/app.js +++ b/apps/boxclk/app.js @@ -23,84 +23,100 @@ let h = g.getHeight(); let drawTimeout; - // 3. Touch and drag handlers - let touchHandler = function(zone, e) { - let boxTouched = false; - let touchedBox = null; - - for (let boxKey in boxes) { - if (touchInText(e, boxes[boxKey])) { - touchedBox = boxKey; - boxTouched = true; - break; + // 3. Event handlers + let eventHandlers = { + touchHandler: function(zone, e) { + let boxTouched = false; + let touchedBox = null; + + for (let boxKey in boxes) { + if (touchInText(e, boxes[boxKey])) { + touchedBox = boxKey; + boxTouched = true; + break; + } } - } - - if (boxTouched) { + + if (boxTouched) { // Toggle the selected state of the touched box - boxes[touchedBox].selected = !boxes[touchedBox].selected; + boxes[touchedBox].selected = !boxes[touchedBox].selected; // Update isDragging based on whether any box is selected - isDragging = Object.values(boxes).some(box => box.selected); - - if (isDragging) { - widgets.hide(); + isDragging = Object.values(boxes).some(box => box.selected); + + if (isDragging) { + widgets.hide(); + } else { + deselectAllBoxes(); + } } else { + // If tapped outside any box, deselect all boxes deselectAllBoxes(); } - } else { - // If tapped outside any box, deselect all boxes - deselectAllBoxes(); - } - + // Always redraw after a touch event - draw(); - + draw(); + // Handle double tap for saving - if (!boxTouched && !isDragging) { - if (doubleTapTimer) { - clearTimeout(doubleTapTimer); - doubleTapTimer = null; - for (let boxKey in boxes) { - boxesConfig[boxKey].boxPos.x = (boxes[boxKey].pos.x / w).toFixed(3); - boxesConfig[boxKey].boxPos.y = (boxes[boxKey].pos.y / h).toFixed(3); + if (!boxTouched && !isDragging) { + if (doubleTapTimer) { + clearTimeout(doubleTapTimer); + doubleTapTimer = null; + for (let boxKey in boxes) { + boxesConfig[boxKey].boxPos.x = (boxes[boxKey].pos.x / w).toFixed(3); + boxesConfig[boxKey].boxPos.y = (boxes[boxKey].pos.y / h).toFixed(3); + } + storage.write(fileName, JSON.stringify(boxesConfig)); + displaySaveIcon(); + return; } - storage.write(fileName, JSON.stringify(boxesConfig)); - displaySaveIcon(); - return; + + doubleTapTimer = setTimeout(() => { + doubleTapTimer = null; + }, 500); } - - doubleTapTimer = setTimeout(() => { - doubleTapTimer = null; - }, 500); - } - }; - - let dragHandler = function(e) { - // Check if any box is being dragged - if (!isDragging) return; + }, + + dragHandler: function(e) { + if (!isDragging) return; // Stop propagation of the drag event to prevent other handlers - E.stopEventPropagation(); - - for (let key in boxes) { - if (boxes[key].selected) { - let boxItem = boxes[key]; - calcBoxSize(boxItem); - let newX = boxItem.pos.x + e.dx; - let newY = boxItem.pos.y + e.dy; - - if (newX - boxItem.cachedSize.width / 2 >= 0 && - newX + boxItem.cachedSize.width / 2 <= w && - newY - boxItem.cachedSize.height / 2 >= 0 && - newY + boxItem.cachedSize.height / 2 <= h) { - boxItem.pos.x = newX; - boxItem.pos.y = newY; + E.stopEventPropagation(); + + for (let key in boxes) { + if (boxes[key].selected) { + let boxItem = boxes[key]; + calcBoxSize(boxItem); + let newX = boxItem.pos.x + e.dx; + let newY = boxItem.pos.y + e.dy; + + if (newX - boxItem.cachedSize.width / 2 >= 0 && + newX + boxItem.cachedSize.width / 2 <= w && + newY - boxItem.cachedSize.height / 2 >= 0 && + newY + boxItem.cachedSize.height / 2 <= h) { + boxItem.pos.x = newX; + boxItem.pos.y = newY; + } } } + + draw(); + }, + + stepHandler: function(up) { + if (boxes.step && !isDragging) { + boxes.step.string = formatStr(boxes.step, Bangle.getHealthStatus("day").steps); + boxes.step.cachedSize = null; + draw(); + } + }, + + lockHandler: function(isLocked) { + if (isLocked) { + deselectAllBoxes(); + draw(); + } } - - draw(); }; // 4. Font loading function @@ -396,35 +412,31 @@ // 10. Setup function to configure event handlers let setup = function() { - Bangle.on('lock', function(isLocked) { - if (isLocked) { - // Screen is about to lock, deselect all boxes - deselectAllBoxes(); - // Redraw to reflect changes - draw(); - } - }); - - Bangle.on('touch', touchHandler); - Bangle.on('drag', dragHandler); - + Bangle.on('lock', eventHandlers.lockHandler); + Bangle.on('touch', eventHandlers.touchHandler); + Bangle.on('drag', eventHandlers.dragHandler); + if (boxes.step) { boxes.step.string = formatStr(boxes.step, Bangle.getHealthStatus("day").steps); + Bangle.on('step', eventHandlers.stepHandler); } + if (boxes.batt) { boxes.batt.lastLevel = E.getBattery(); boxes.batt.string = formatStr(boxes.batt, boxes.batt.lastLevel); boxes.batt.lastUpdate = Date.now(); } - + Bangle.setUI({ mode: "clock", remove: function() { // Remove event handlers, stop draw timer, remove custom font - Bangle.removeListener('touch', touchHandler); - Bangle.removeListener('drag', dragHandler); - Bangle.removeListener('step'); - Bangle.removeAllListeners('lock'); + Bangle.removeListener('touch', eventHandlers.touchHandler); + Bangle.removeListener('drag', eventHandlers.dragHandler); + Bangle.removeListener('lock', eventHandlers.lockHandler); + if (boxes.step) { + Bangle.removeListener('step', eventHandlers.stepHandler); + } if (drawTimeout) clearTimeout(drawTimeout); drawTimeout = undefined; delete Graphics.prototype.setFontBrunoAce; @@ -434,6 +446,7 @@ widgets.show(); } }); + loadCustomFont(); draw(); }; @@ -443,13 +456,4 @@ widgets.swipeOn(); modSetColor(); setup(); - - // Event listener for real-time step updates - Bangle.on('step', function(up) { - if (boxes.step && !isDragging) { - boxes.step.string = formatStr(boxes.step, Bangle.getHealthStatus("day").steps); - boxes.step.cachedSize = null; - draw(); - } - }); } From 490b165862673c3840a7bb91797ac3eaf52de440 Mon Sep 17 00:00:00 2001 From: Martin Pool Date: Sat, 7 Sep 2024 12:49:56 +0200 Subject: [PATCH 270/594] Make compatible with top and bottom widgets --- apps/dutchclock/ChangeLog | 3 +- apps/dutchclock/README.md | 8 +++- apps/dutchclock/app.js | 79 ++++++++++++++++------------------- apps/dutchclock/metadata.json | 2 +- 4 files changed, 46 insertions(+), 46 deletions(-) diff --git a/apps/dutchclock/ChangeLog b/apps/dutchclock/ChangeLog index 7589f192d..16d99b124 100644 --- a/apps/dutchclock/ChangeLog +++ b/apps/dutchclock/ChangeLog @@ -4,4 +4,5 @@ 0.15: Fix midnight better 0.16: Fix midnight decisively 0.17: Get loadWidgets back in the right place -0.18: Move setUI and loadWidgets to initialize function \ No newline at end of file +0.18: Move setUI and loadWidgets to initialize function +0.19: Make compatible with top and bottom widgets \ No newline at end of file diff --git a/apps/dutchclock/README.md b/apps/dutchclock/README.md index 4faa03aa8..787bcce1b 100644 --- a/apps/dutchclock/README.md +++ b/apps/dutchclock/README.md @@ -1,7 +1,7 @@ # Dutch Clock -This clock shows the time, in words, the way a Dutch person would tell you what time it is. Useful when learning Dutch or pretending to know Dutch. +This clock shows the time, in words, the way a Dutch person might respond when asked what time it is. Useful when learning Dutch and/or pretending to know Dutch. -Dedicated my wife, who will sometimes insist I tell her exactly what time it says on the watch and not just an approximation. +Dedicated to my wife, who will sometimes insist I tell her exactly what time it says on the watch and not just an approximation. ## Options - Three modes: @@ -12,6 +12,10 @@ Dedicated my wife, who will sometimes insist I tell her exactly what time it say - Option to show digital time at the bottom (off by default) - Option to show the date at the bottom (on by default) +The app respects top and bottom widgets, but it gets a bit crowded when you add the time/date and you also have bottom widgets turned on. + +When you turn widgets off, you can still see the top widgets by swiping down from the top. + ## Screenshots ![](screenshotbangle1-2.png) ![](screenshotbangle2.png) diff --git a/apps/dutchclock/app.js b/apps/dutchclock/app.js index 5e026316a..41ace8fca 100644 --- a/apps/dutchclock/app.js +++ b/apps/dutchclock/app.js @@ -1,18 +1,14 @@ +// Load libraries const storage = require("Storage"); const locale = require('locale'); const widget_utils = require('widget_utils'); -const SCREEN_WIDTH = g.getWidth(); -const SCREEN_HEIGHT = g.getHeight(); - -const TOP_SPACING = 5; +// Define constants const WIDGETS_HEIGHT = 20; const DATETIME_SPACING_HEIGHT = 5; -const TIME_HEIGHT = 10; -const DATE_HEIGHT = 10; -const BOTTOM_SPACING = 5; - -const TEXT_WIDTH = SCREEN_WIDTH - 2; +const TIME_HEIGHT = 8; +const DATE_HEIGHT = 8; +const BOTTOM_SPACING = 2; const MINS_IN_HOUR = 60; const MINS_IN_DAY = 24 * MINS_IN_HOUR; @@ -30,29 +26,39 @@ const settings = Object.assign( storage.readJSON(SETTINGS_FILE, true) || {} ); -const maxFontSize = SCREEN_HEIGHT - - TOP_SPACING - - (settings.showWidgets ? WIDGETS_HEIGHT : 0) - - (settings.showDate || settings.showTime ? DATETIME_SPACING_HEIGHT : 0) - - (settings.showDate ? DATE_HEIGHT : 0) - - (settings.showTime ? TIME_HEIGHT : 0); - -const X = SCREEN_WIDTH / 2; -const Y = SCREEN_HEIGHT / 2 - + TOP_SPACING / 2 - + (settings.showWidgets ? WIDGETS_HEIGHT / 2 : 0) - - (settings.showDate || settings.showTime ? DATETIME_SPACING_HEIGHT / 2 : 0) - - (settings.showDate ? DATE_HEIGHT / 2 : 0) - - (settings.showTime ? TIME_HEIGHT / 2 : 0); - +// Define global variables +const textBox = {}; let date, mins; +// Define functions function initialize() { + // Reset the state of the graphics library + g.clear(true); + // Tell Bangle this is a clock Bangle.setUI("clock"); + // Load widgets Bangle.loadWidgets(); + // Show widgets, or not + if (settings.showWidgets) { + Bangle.drawWidgets(); + } else { + widget_utils.swipeOn(); + } + + const dateTimeHeight = (settings.showDate || settings.showTime ? DATETIME_SPACING_HEIGHT : 0) + + (settings.showDate ? DATE_HEIGHT : 0) + + (settings.showTime ? TIME_HEIGHT : 0); + + Object.assign(textBox, { + x: Bangle.appRect.x + Bangle.appRect.w / 2, + y: Bangle.appRect.y + (Bangle.appRect.h - dateTimeHeight) / 2, + w: Bangle.appRect.w - 2, + h: Bangle.appRect.h - dateTimeHeight + }); + // draw immediately at first tick(); @@ -78,10 +84,6 @@ function tick() { mins = m; draw(); } - - if (!settings.showWidgets) { - widget_utils.hide(); - } } function draw() { @@ -89,40 +91,32 @@ function draw() { const timeLines = getTimeLines(mins); const bottomLines = getBottomLines(); - // Reset the state of the graphics library - g.clear(true); + g.reset().clearRect(Bangle.appRect); // draw the current time (4x size 7 segment) setFont(timeLines); g.setFontAlign(0,0); // align center top - g.drawString(timeLines.join("\n"), X, Y, false); + g.drawString(timeLines.join("\n"), textBox.x, textBox.y, false); if (bottomLines.length) { // draw the time and/or date, in a normal font g.setFont("6x8"); g.setFontAlign(0,1); // align center bottom // pad the date - this clears the background if the date were to change length - g.drawString(bottomLines.join('\n'), SCREEN_WIDTH/2, SCREEN_HEIGHT - BOTTOM_SPACING, false); - } - - - if (settings.showWidgets) { - Bangle.drawWidgets(); - } else { - widget_utils.hide(); + g.drawString(bottomLines.join('\n'), Bangle.appRect.w / 2, Bangle.appRect.y2 - BOTTOM_SPACING, false); } } function setFont(timeLines) { - const size = maxFontSize / timeLines.length; + const size = textBox.h / timeLines.length; g.setFont("Vector", size); let width = g.stringWidth(timeLines.join('\n')); - if (width > TEXT_WIDTH) { - g.setFont("Vector", Math.floor(size * (TEXT_WIDTH / width))); + if (width > textBox.w) { + g.setFont("Vector", Math.floor(size * (textBox.w / width))); } } @@ -263,4 +257,5 @@ function roundTo(x) { return n => Math.round(n / x) * x; } +// Let's go initialize(); \ No newline at end of file diff --git a/apps/dutchclock/metadata.json b/apps/dutchclock/metadata.json index 8cb0fbb86..5be13d888 100644 --- a/apps/dutchclock/metadata.json +++ b/apps/dutchclock/metadata.json @@ -3,7 +3,7 @@ "name": "Dutch Clock", "shortName":"Dutch Clock", "icon": "app.png", - "version":"0.18", + "version":"0.19", "description": "A clock that displays the time the way a Dutch person would respond when asked what time it is.", "type": "clock", "tags": "clock,dutch,text", From 0d6f7687fcbc564b0b4fc760a208a552e8dbf538 Mon Sep 17 00:00:00 2001 From: Martin Pool Date: Sat, 7 Sep 2024 12:59:15 +0200 Subject: [PATCH 271/594] Remove unused constant --- apps/dutchclock/ChangeLog | 3 ++- apps/dutchclock/app.js | 1 - apps/dutchclock/metadata.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/dutchclock/ChangeLog b/apps/dutchclock/ChangeLog index 16d99b124..381e421e5 100644 --- a/apps/dutchclock/ChangeLog +++ b/apps/dutchclock/ChangeLog @@ -5,4 +5,5 @@ 0.16: Fix midnight decisively 0.17: Get loadWidgets back in the right place 0.18: Move setUI and loadWidgets to initialize function -0.19: Make compatible with top and bottom widgets \ No newline at end of file +0.19: Make compatible with top and bottom widgets +0.20: Remove unused constant \ No newline at end of file diff --git a/apps/dutchclock/app.js b/apps/dutchclock/app.js index 41ace8fca..f970b572f 100644 --- a/apps/dutchclock/app.js +++ b/apps/dutchclock/app.js @@ -4,7 +4,6 @@ const locale = require('locale'); const widget_utils = require('widget_utils'); // Define constants -const WIDGETS_HEIGHT = 20; const DATETIME_SPACING_HEIGHT = 5; const TIME_HEIGHT = 8; const DATE_HEIGHT = 8; diff --git a/apps/dutchclock/metadata.json b/apps/dutchclock/metadata.json index 5be13d888..d336023f8 100644 --- a/apps/dutchclock/metadata.json +++ b/apps/dutchclock/metadata.json @@ -3,7 +3,7 @@ "name": "Dutch Clock", "shortName":"Dutch Clock", "icon": "app.png", - "version":"0.19", + "version":"0.20", "description": "A clock that displays the time the way a Dutch person would respond when asked what time it is.", "type": "clock", "tags": "clock,dutch,text", From e4518870a6b5277c8f696131a353d1b474c61413 Mon Sep 17 00:00:00 2001 From: Martin Pool Date: Sat, 7 Sep 2024 15:00:24 +0200 Subject: [PATCH 272/594] Prune Changelog --- apps/dutchclock/ChangeLog | 10 +--------- apps/dutchclock/app.js | 2 +- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/apps/dutchclock/ChangeLog b/apps/dutchclock/ChangeLog index 381e421e5..8efcb9edb 100644 --- a/apps/dutchclock/ChangeLog +++ b/apps/dutchclock/ChangeLog @@ -1,9 +1 @@ -0.12: First release -0.13: Fix widgets reappearing -0.14: Fix midnight -0.15: Fix midnight better -0.16: Fix midnight decisively -0.17: Get loadWidgets back in the right place -0.18: Move setUI and loadWidgets to initialize function -0.19: Make compatible with top and bottom widgets -0.20: Remove unused constant \ No newline at end of file +0.20: First release \ No newline at end of file diff --git a/apps/dutchclock/app.js b/apps/dutchclock/app.js index f970b572f..588692a2b 100644 --- a/apps/dutchclock/app.js +++ b/apps/dutchclock/app.js @@ -63,8 +63,8 @@ function initialize() { // now check every second let secondInterval = setInterval(tick, 1000); - // Stop updates when LCD is off, restart when on + // Stop updates when LCD is off, restart when on Bangle.on('lcdPower',on=>{ if (secondInterval) clearInterval(secondInterval); secondInterval = undefined; From 42dd3b94f4f19c008208b437aff467413c8ba6dc Mon Sep 17 00:00:00 2001 From: stweedo <108593831+stweedo@users.noreply.github.com> Date: Sat, 7 Sep 2024 11:08:41 -0500 Subject: [PATCH 273/594] Changed event handlers from an object to individual functions --- apps/boxclk/app.js | 166 ++++++++++++++++++++++----------------------- 1 file changed, 82 insertions(+), 84 deletions(-) diff --git a/apps/boxclk/app.js b/apps/boxclk/app.js index 8287b64c8..87bbcef77 100644 --- a/apps/boxclk/app.js +++ b/apps/boxclk/app.js @@ -24,98 +24,96 @@ let drawTimeout; // 3. Event handlers - let eventHandlers = { - touchHandler: function(zone, e) { - let boxTouched = false; - let touchedBox = null; - - for (let boxKey in boxes) { - if (touchInText(e, boxes[boxKey])) { - touchedBox = boxKey; - boxTouched = true; - break; - } + let touchHandler = function(zone, e) { + let boxTouched = false; + let touchedBox = null; + + for (let boxKey in boxes) { + if (touchInText(e, boxes[boxKey])) { + touchedBox = boxKey; + boxTouched = true; + break; } - - if (boxTouched) { + } + + if (boxTouched) { // Toggle the selected state of the touched box - boxes[touchedBox].selected = !boxes[touchedBox].selected; + boxes[touchedBox].selected = !boxes[touchedBox].selected; // Update isDragging based on whether any box is selected - isDragging = Object.values(boxes).some(box => box.selected); - - if (isDragging) { - widgets.hide(); - } else { - deselectAllBoxes(); - } + isDragging = Object.values(boxes).some(box => box.selected); + + if (isDragging) { + widgets.hide(); } else { - // If tapped outside any box, deselect all boxes deselectAllBoxes(); } - + } else { + // If tapped outside any box, deselect all boxes + deselectAllBoxes(); + } + // Always redraw after a touch event - draw(); - + draw(); + // Handle double tap for saving - if (!boxTouched && !isDragging) { - if (doubleTapTimer) { - clearTimeout(doubleTapTimer); - doubleTapTimer = null; - for (let boxKey in boxes) { - boxesConfig[boxKey].boxPos.x = (boxes[boxKey].pos.x / w).toFixed(3); - boxesConfig[boxKey].boxPos.y = (boxes[boxKey].pos.y / h).toFixed(3); - } - storage.write(fileName, JSON.stringify(boxesConfig)); - displaySaveIcon(); - return; + if (!boxTouched && !isDragging) { + if (doubleTapTimer) { + clearTimeout(doubleTapTimer); + doubleTapTimer = null; + for (let boxKey in boxes) { + boxesConfig[boxKey].boxPos.x = (boxes[boxKey].pos.x / w).toFixed(3); + boxesConfig[boxKey].boxPos.y = (boxes[boxKey].pos.y / h).toFixed(3); } - - doubleTapTimer = setTimeout(() => { - doubleTapTimer = null; - }, 500); + storage.write(fileName, JSON.stringify(boxesConfig)); + displaySaveIcon(); + return; } - }, - - dragHandler: function(e) { - if (!isDragging) return; + + doubleTapTimer = setTimeout(() => { + doubleTapTimer = null; + }, 500); + } + }; + + let dragHandler = function(e) { + if (!isDragging) return; // Stop propagation of the drag event to prevent other handlers - E.stopEventPropagation(); - - for (let key in boxes) { - if (boxes[key].selected) { - let boxItem = boxes[key]; - calcBoxSize(boxItem); - let newX = boxItem.pos.x + e.dx; - let newY = boxItem.pos.y + e.dy; - - if (newX - boxItem.cachedSize.width / 2 >= 0 && - newX + boxItem.cachedSize.width / 2 <= w && - newY - boxItem.cachedSize.height / 2 >= 0 && - newY + boxItem.cachedSize.height / 2 <= h) { - boxItem.pos.x = newX; - boxItem.pos.y = newY; - } + E.stopEventPropagation(); + + for (let key in boxes) { + if (boxes[key].selected) { + let boxItem = boxes[key]; + calcBoxSize(boxItem); + let newX = boxItem.pos.x + e.dx; + let newY = boxItem.pos.y + e.dy; + + if (newX - boxItem.cachedSize.width / 2 >= 0 && + newX + boxItem.cachedSize.width / 2 <= w && + newY - boxItem.cachedSize.height / 2 >= 0 && + newY + boxItem.cachedSize.height / 2 <= h) { + boxItem.pos.x = newX; + boxItem.pos.y = newY; } } - + } + + draw(); + }; + + let stepHandler = function(up) { + if (boxes.step && !isDragging) { + boxes.step.string = formatStr(boxes.step, Bangle.getHealthStatus("day").steps); + boxes.step.cachedSize = null; + draw(); + } + }; + + let lockHandler = function(isLocked) { + if (isLocked) { + deselectAllBoxes(); draw(); - }, - - stepHandler: function(up) { - if (boxes.step && !isDragging) { - boxes.step.string = formatStr(boxes.step, Bangle.getHealthStatus("day").steps); - boxes.step.cachedSize = null; - draw(); - } - }, - - lockHandler: function(isLocked) { - if (isLocked) { - deselectAllBoxes(); - draw(); - } } }; @@ -412,13 +410,13 @@ // 10. Setup function to configure event handlers let setup = function() { - Bangle.on('lock', eventHandlers.lockHandler); - Bangle.on('touch', eventHandlers.touchHandler); - Bangle.on('drag', eventHandlers.dragHandler); + Bangle.on('lock', lockHandler); + Bangle.on('touch', touchHandler); + Bangle.on('drag', dragHandler); if (boxes.step) { boxes.step.string = formatStr(boxes.step, Bangle.getHealthStatus("day").steps); - Bangle.on('step', eventHandlers.stepHandler); + Bangle.on('step', stepHandler); } if (boxes.batt) { @@ -431,11 +429,11 @@ mode: "clock", remove: function() { // Remove event handlers, stop draw timer, remove custom font - Bangle.removeListener('touch', eventHandlers.touchHandler); - Bangle.removeListener('drag', eventHandlers.dragHandler); - Bangle.removeListener('lock', eventHandlers.lockHandler); + Bangle.removeListener('touch', touchHandler); + Bangle.removeListener('drag', dragHandler); + Bangle.removeListener('lock', lockHandler); if (boxes.step) { - Bangle.removeListener('step', eventHandlers.stepHandler); + Bangle.removeListener('step', stepHandler); } if (drawTimeout) clearTimeout(drawTimeout); drawTimeout = undefined; From 42875090611e1b4e9d884d8b8e74609411fab159 Mon Sep 17 00:00:00 2001 From: stweedo Date: Sat, 7 Sep 2024 13:09:14 -0500 Subject: [PATCH 274/594] Bump version --- apps/boxclk/ChangeLog | 3 ++- apps/boxclk/metadata.json | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/boxclk/ChangeLog b/apps/boxclk/ChangeLog index 62d1b4875..591d880b8 100644 --- a/apps/boxclk/ChangeLog +++ b/apps/boxclk/ChangeLog @@ -11,4 +11,5 @@ - [+] Improved battery level update logic to reduce unnecessary refreshes - [+] Fixed optional seconds not displaying in time - [+] Fixed drag handler by adding E.stopEventPropagation() -- [+] General code optimization and cleanup \ No newline at end of file +- [+] General code optimization and cleanup +0.09: Revised event handler code \ No newline at end of file diff --git a/apps/boxclk/metadata.json b/apps/boxclk/metadata.json index 27e43c3be..c8790fe7f 100644 --- a/apps/boxclk/metadata.json +++ b/apps/boxclk/metadata.json @@ -1,7 +1,7 @@ { "id": "boxclk", "name": "Box Clock", - "version": "0.08", + "version": "0.09", "description": "A customizable clock with configurable text boxes that can be positioned to show your favorite background", "icon": "app.png", "dependencies" : { "clockbg":"module" }, From 36a50d1ceec0df236b7c874f61a43c150cb8e726 Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Mon, 9 Sep 2024 21:43:56 +0100 Subject: [PATCH 275/594] Layout: fix differing numeric types With a slight hack --- typescript/types/layout.d.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/typescript/types/layout.d.ts b/typescript/types/layout.d.ts index 55ddd7135..4329d0831 100644 --- a/typescript/types/layout.d.ts +++ b/typescript/types/layout.d.ts @@ -7,7 +7,16 @@ type ExtractIds = [Depth] extends [never] ? never : (T extends { id?: infer Id extends string } - ? { [k in Id]: { -readonly [P in keyof T]: T[P] extends string ? string : T[P] } } + ? { + [k in Id]: { + -readonly [P in keyof T]: + T[P] extends string + ? string + : T[P] extends number + ? number | undefined + : T[P] + } + } : never) | ( From 563829bf82e9ff32104c3b48fd18ad8ed67700cc Mon Sep 17 00:00:00 2001 From: Flaparoo <629229+flaparoo@users.noreply.github.com> Date: Tue, 10 Sep 2024 21:18:25 +0800 Subject: [PATCH 276/594] calculator: truncate long numbers --- apps/calculator/ChangeLog | 1 + apps/calculator/app.js | 4 ++++ apps/calculator/metadata.json | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/calculator/ChangeLog b/apps/calculator/ChangeLog index 2e1ace7bf..7e66e5d55 100644 --- a/apps/calculator/ChangeLog +++ b/apps/calculator/ChangeLog @@ -5,3 +5,4 @@ 0.05: Grid positioning and swipe controls to switch between numbers, operators and special (for Bangle.js 2) 0.06: Bangle.js 2: Exit with a short press of the physical button 0.07: Bangle.js 2: Exit by pressing upper left corner of the screen +0.08: truncate long numbers (and append '-' to displayed value) diff --git a/apps/calculator/app.js b/apps/calculator/app.js index 465291d13..b3b2f16f5 100644 --- a/apps/calculator/app.js +++ b/apps/calculator/app.js @@ -13,6 +13,7 @@ require("Font7x11Numeric7Seg").add(Graphics); var DEFAULT_SELECTION_NUMBERS = '5', DEFAULT_SELECTION_OPERATORS = '=', DEFAULT_SELECTION_SPECIALS = 'R'; var RIGHT_MARGIN = 20; var RESULT_HEIGHT = 40; +var RESULT_MAX_LEN = Math.floor((g.getWidth() - 20) / 14); var COLORS = { // [normal, selected] DEFAULT: ['#7F8183', '#A6A6A7'], @@ -261,6 +262,9 @@ function displayOutput(num) { num = num.toString(); num = num.replace("-","- "); // fix padding for '-' g.setFont('7x11Numeric7Seg', 2); + if (num.length > RESULT_MAX_LEN) { + num = num.substr(0, RESULT_MAX_LEN - 1)+'-'; + } } g.setFontAlign(1,0); g.drawString(num, g.getWidth()-20, RESULT_HEIGHT/2); diff --git a/apps/calculator/metadata.json b/apps/calculator/metadata.json index 1674b7843..a88444e11 100644 --- a/apps/calculator/metadata.json +++ b/apps/calculator/metadata.json @@ -2,7 +2,7 @@ "id": "calculator", "name": "Calculator", "shortName": "Calculator", - "version": "0.07", + "version": "0.08", "description": "Basic calculator reminiscent of MacOs's one. Handy for small calculus.", "icon": "calculator.png", "screenshots": [{"url":"screenshot_calculator.png"}], From 393f68260f60648cc259191405678fab2313a741 Mon Sep 17 00:00:00 2001 From: Flaparoo <629229+flaparoo@users.noreply.github.com> Date: Tue, 10 Sep 2024 21:42:35 +0800 Subject: [PATCH 277/594] calculator: clean-up unused variables --- apps/calculator/app.js | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/apps/calculator/app.js b/apps/calculator/app.js index b3b2f16f5..2d330708b 100644 --- a/apps/calculator/app.js +++ b/apps/calculator/app.js @@ -89,28 +89,11 @@ function prepareScreen(screen, grid, defaultColor) { } function drawKey(name, k, selected) { - var rMargin = 0; - var bMargin = 0; var color = k.color || COLORS.DEFAULT; g.setColor(color[selected ? 1 : 0]); g.setFont('Vector', 20).setFontAlign(0,0); g.fillRect(k.xy[0], k.xy[1], k.xy[2], k.xy[3]); g.setColor(-1); - // correct margins to center the texts - if (name == '0') { - rMargin = (RIGHT_MARGIN * 2) - 7; - } else if (name === '/') { - rMargin = 5; - } else if (name === '*') { - bMargin = 5; - rMargin = 3; - } else if (name === '-') { - rMargin = 3; - } else if (name === 'R' || name === 'N') { - rMargin = k.val === 'C' ? 0 : -9; - } else if (name === '%') { - rMargin = -3; - } g.drawString(k.val || name, (k.xy[0] + k.xy[2])/2, (k.xy[1] + k.xy[3])/2); } @@ -139,29 +122,21 @@ function drawGlobal() { screen[k] = specials[k]; } drawKeys(); - var selected = DEFAULT_SELECTION_NUMBERS; - var prevSelected = DEFAULT_SELECTION_NUMBERS; } function drawNumbers() { screen = numbers; screenColor = COLORS.DEFAULT; drawKeys(); - var selected = DEFAULT_SELECTION_NUMBERS; - var prevSelected = DEFAULT_SELECTION_NUMBERS; } function drawOperators() { screen = operators; screenColor =COLORS.OPERATOR; drawKeys(); - var selected = DEFAULT_SELECTION_OPERATORS; - var prevSelected = DEFAULT_SELECTION_OPERATORS; } function drawSpecials() { screen = specials; screenColor = COLORS.SPECIAL; drawKeys(); - var selected = DEFAULT_SELECTION_SPECIALS; - var prevSelected = DEFAULT_SELECTION_SPECIALS; } function getIntWithPrecision(x) { @@ -219,8 +194,6 @@ function doMath(x, y, operator) { } function displayOutput(num) { - var len; - var minusMarge = 0; g.setBgColor(0).clearRect(0, 0, g.getWidth(), RESULT_HEIGHT-1); g.setColor(-1); if (num === Infinity || num === -Infinity || isNaN(num)) { @@ -231,9 +204,7 @@ function displayOutput(num) { num = '-INFINITY'; } else { num = 'NOT A NUMBER'; - minusMarge = -25; } - len = (num + '').length; currNumber = null; results = null; isDecimal = false; From dbeeee980fa8da3cd0cee3a93d77628c8e256506 Mon Sep 17 00:00:00 2001 From: Flaparoo <629229+flaparoo@users.noreply.github.com> Date: Tue, 10 Sep 2024 21:45:41 +0800 Subject: [PATCH 278/594] calculator: clean-up unused variables --- apps/calculator/app.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/calculator/app.js b/apps/calculator/app.js index 2d330708b..13666defa 100644 --- a/apps/calculator/app.js +++ b/apps/calculator/app.js @@ -10,8 +10,7 @@ g.clear(); require("Font7x11Numeric7Seg").add(Graphics); -var DEFAULT_SELECTION_NUMBERS = '5', DEFAULT_SELECTION_OPERATORS = '=', DEFAULT_SELECTION_SPECIALS = 'R'; -var RIGHT_MARGIN = 20; +var DEFAULT_SELECTION_NUMBERS = '5'; var RESULT_HEIGHT = 40; var RESULT_MAX_LEN = Math.floor((g.getWidth() - 20) / 14); var COLORS = { From c757b8576027a32488b2e212605dacd2eac9d245 Mon Sep 17 00:00:00 2001 From: thyttan <6uuxstm66@mozmail.com⁩> Date: Tue, 10 Sep 2024 15:59:36 +0200 Subject: [PATCH 279/594] setuichange: throw if custom drag on some modes If custom drag handler is added together with mode updown or leftright throw an exception. --- apps/setuichange/ChangeLog | 2 ++ apps/setuichange/boot.js | 2 ++ apps/setuichange/metadata.json | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/setuichange/ChangeLog b/apps/setuichange/ChangeLog index 397e4f509..89a3d1964 100644 --- a/apps/setuichange/ChangeLog +++ b/apps/setuichange/ChangeLog @@ -1,3 +1,5 @@ 0.01: New App! 0.02: Fix case where we tried to push to Bangle.btnWatches but it wasn't defined. +0.03: Throw exception if trying to add custom drag handler on mode updown and + leftright. diff --git a/apps/setuichange/boot.js b/apps/setuichange/boot.js index c9f7aa898..d9df3566f 100644 --- a/apps/setuichange/boot.js +++ b/apps/setuichange/boot.js @@ -39,6 +39,7 @@ Bangle.setUI = (function(mode, cb) { try{Bangle.buzz(30);}catch(e){} } if (mode=="updown") { + if (options.drag) throw new Error("Custom drag handler not supported in mode updown!") var dy = 0; Bangle.dragHandler = e=>{ dy += e.dy; @@ -55,6 +56,7 @@ Bangle.setUI = (function(mode, cb) { setWatch(function() { b();cb(); }, BTN1, {repeat:1, edge:"rising"}), ]; } else if (mode=="leftright") { + if (options.drag) throw new Error("Custom drag handler not supported in mode leftright!") var dx = 0; Bangle.dragHandler = e=>{ dx += e.dx; diff --git a/apps/setuichange/metadata.json b/apps/setuichange/metadata.json index 2d6cafc81..c5aad6929 100644 --- a/apps/setuichange/metadata.json +++ b/apps/setuichange/metadata.json @@ -1,6 +1,6 @@ { "id": "setuichange", "name": "SetUI Proposals preview", - "version":"0.02", + "version":"0.03", "description": "Try out potential future changes to `Bangle.setUI`. Makes hardware button interaction snappier. Makes it possible to set custom event handlers on any type/mode, not just `\"custom\"`. Please provide feedback - see `Read more...` below.", "icon": "app.png", "tags": "", From ed534de39c049d7f77e8af8e729d2de5e0cc5d67 Mon Sep 17 00:00:00 2001 From: thyttan <6uuxstm66@mozmail.com⁩> Date: Tue, 10 Sep 2024 17:31:19 +0200 Subject: [PATCH 280/594] gbdiscon: new app to disconnect from Gadgetbridge gbdiscon sends an action intent that's picked up by Gadgetbridge to disconnect the Bangle.js. It requires the Bluetooth intent API to be enabled in Gadgetbridge. The clock face is loaded immediately. --- apps/gbdiscon/ChangeLog | 1 + apps/gbdiscon/app-icon.js | 1 + apps/gbdiscon/app.js | 7 +++++++ apps/gbdiscon/app.png | Bin 0 -> 1081 bytes apps/gbdiscon/metadata.json | 13 +++++++++++++ 5 files changed, 22 insertions(+) create mode 100644 apps/gbdiscon/ChangeLog create mode 100644 apps/gbdiscon/app-icon.js create mode 100644 apps/gbdiscon/app.js create mode 100644 apps/gbdiscon/app.png create mode 100644 apps/gbdiscon/metadata.json diff --git a/apps/gbdiscon/ChangeLog b/apps/gbdiscon/ChangeLog new file mode 100644 index 000000000..5560f00bc --- /dev/null +++ b/apps/gbdiscon/ChangeLog @@ -0,0 +1 @@ +0.01: New App! diff --git a/apps/gbdiscon/app-icon.js b/apps/gbdiscon/app-icon.js new file mode 100644 index 000000000..81bf14884 --- /dev/null +++ b/apps/gbdiscon/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwwYHEgMkyVAkmQDJYREyQRRoARQpARQpIRRkARNggRBkgRNgARCwARNiQRBSRIREgQRBSRIREgARCSRARFhKSKCIoFCSRAjISQ0BAQJZHCI6ZBTwKPEI44tBTIMSYoZ9IBIYyEWZCHEKwbXIDwZ6MBghjBWBR7DIQbmJAAJ7BexYRHGZZHEchRrGNJYRIRpARJWI7XDCIrVHLIeACIpuIgKwBR4RcQyDLFCJbLGCJcAZZgLEiRcLCIkCZZYvFCKAjDI6BZOPqD+PWaUJa6ARCTxARICBQRFPRIRHPRIRHBg4A=")) diff --git a/apps/gbdiscon/app.js b/apps/gbdiscon/app.js new file mode 100644 index 000000000..1652ac506 --- /dev/null +++ b/apps/gbdiscon/app.js @@ -0,0 +1,7 @@ +{ +Bangle.setUI({mode:"custom",remove:()=>{}});"Bangle.loadWidgets"; // Allow fastloading. + +Bluetooth.println(JSON.stringify({t:"intent", action:"nodomain.freeyourgadget.gadgetbridge.BLUETOOTH_DISCONNECT", extra:{EXTRA_DEVICE_ADDRESS:NRF.getAddress()}})); + +Bangle.showClock(); +} diff --git a/apps/gbdiscon/app.png b/apps/gbdiscon/app.png new file mode 100644 index 0000000000000000000000000000000000000000..f942c9ba06957ce4fa61a9209097ebf0dea8cc03 GIT binary patch literal 1081 zcmV-91jhS`P)q$gGRCt`tm``Y2MI6V!ZLKlwW@b~{+Da7Kdax=YNWqH+g^+no znw<%}gHZ5fD8-AX;wgKHP4k;=T_}_sJa~xe4QHz6BEE{5yJ%o@p&#FOacI_KQO+{!27J{5GEmj)$j28+t-Bn zIE3iS9l&*nLjlD3R_0ANBf*tEHy|rV*MDBa=$L_6aRmqlt^g#d>S zCN^J`b0w~HXcv?E{ld838U6kSM)n2pzGwwtFS7vNd;o9N-MIM0K=>iBDY5y2U){wO zUAqTRUs5mfl9thZA*MGQh^a_4>Hs$}zB7O~YvA2-H6B3xW`8S$zXhF&Df*zne8Zvz zK6Y|2y5C^*X#?*&1M!Z5m@)8{W2DNJ8pQDs{)6a-ijrR2*!;a{(3Js2W6^UVh958x zCjy9n9G`g2M(jE!2GC9M$oK|C8k{LmuDS8RGMVXPsF z-Ic$vg)2J275&`~geiTgI7u%>kB4}Et9`lw#GOc6ylo5mPmJzGRvJ|F43qSI`;^lE za;d8j)rQL_fOx^c`_;f(Sb{i!o=8;txT2GFlWn6xKk?GsbJ61+wZm?RDLTXzoo`Pl{ZWksh8RpI2k7OtEmDE`IUaA=&~Ib zY+*;gYXMNUd%4sfxfQwo-Sdo0z0Gn9?f_1%9ol^hA0Pi2&jbhPpnc zGrzJUR{(JbL*8Ue?>#`=!B90H(|ZnZe=wAK*6Eg)`XWC<`|UNK zk^&5t^kZD6o3HW7%FC&mPXfTDp5l^jx4hJpzGO%E z)Xm2N5Y;}W=v{|=zp!1=?o7QQUVWt zO^N{ao#GYrQam9*rk$qi09kh$v`}1tG&{|I1*V;1@ZULg00000NkvXXu0mjfZ5slf literal 0 HcmV?d00001 diff --git a/apps/gbdiscon/metadata.json b/apps/gbdiscon/metadata.json new file mode 100644 index 000000000..0a3aaa8db --- /dev/null +++ b/apps/gbdiscon/metadata.json @@ -0,0 +1,13 @@ +{ "id": "gbdiscon", + "name": "Disconnect from Gadgetbridge", + "shortName":"Disconnect Gadgetbridge", + "version":"0.01", + "description": "Disconnect from your android device by running this app. The app will forward you to your clock face immediately after triggering the command.", + "icon": "app.png", + "tags": "android, gadgetbridge, bluetooth, bt", + "supports" : ["BANGLEJS", "BANGLEJS2"], + "storage": [ + {"name":"gbdiscon.app.js","url":"app.js"}, + {"name":"gbdiscon.img","url":"app-icon.js","evaluate":true} + ] +} From d447b5c2e69e2f11d0f432b3975a7f17c8651df6 Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Mon, 9 Sep 2024 22:01:07 +0100 Subject: [PATCH 281/594] pace: initial app --- apps/pace/ChangeLog | 1 + apps/pace/README.md | 6 ++ apps/pace/app-icon.js | 1 + apps/pace/app.js | 179 +++++++++++++++++++++++++++++++++ apps/pace/app.png | Bin 0 -> 715 bytes apps/pace/app.ts | 217 ++++++++++++++++++++++++++++++++++++++++ apps/pace/metadata.json | 14 +++ 7 files changed, 418 insertions(+) create mode 100644 apps/pace/ChangeLog create mode 100644 apps/pace/README.md create mode 100644 apps/pace/app-icon.js create mode 100644 apps/pace/app.js create mode 100644 apps/pace/app.png create mode 100644 apps/pace/app.ts create mode 100644 apps/pace/metadata.json diff --git a/apps/pace/ChangeLog b/apps/pace/ChangeLog new file mode 100644 index 000000000..1a3bc1757 --- /dev/null +++ b/apps/pace/ChangeLog @@ -0,0 +1 @@ +0.01: New app! diff --git a/apps/pace/README.md b/apps/pace/README.md new file mode 100644 index 000000000..f6c0ce941 --- /dev/null +++ b/apps/pace/README.md @@ -0,0 +1,6 @@ +# Description + +A running pace app, useful for races. Will also record your splits and display them to you on the pause menu. + +Drag up/down on the pause menu to scroll through your splits. +Press the button to pause/resume - when resumed, pressing the button will pause instantly, regardless of whether the screen is locked. diff --git a/apps/pace/app-icon.js b/apps/pace/app-icon.js new file mode 100644 index 000000000..b2b8b4c17 --- /dev/null +++ b/apps/pace/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwwkBiIA/AH8QRYoX/AAcAZqwXuMIQYCiAcOO456OCwwACF5orEDghzOE4oZCLxw+GDAKsXeSIqEGBKKGBwIRFGBCfIC7p5RC7oGHC8RxFC453JAw4Xda5AIEC5IAPO6AXmO5BuHC67OIUA4aERyIXEIxAAJiAuFC5gTEcgpDNBwoWCIxp4CCwp1OCIYAEOiDFNDBwVQAH4AvA=")) diff --git a/apps/pace/app.js b/apps/pace/app.js new file mode 100644 index 000000000..5acad0cee --- /dev/null +++ b/apps/pace/app.js @@ -0,0 +1,179 @@ +{ + var Layout_1 = require("Layout"); + var state_1 = 1; + var drawTimeout_1; + var lastUnlazy_1 = 0; + var lastResumeTime_1 = Date.now(); + var splitTime_1 = 0; + var totalTime_1 = 0; + var splits_1 = []; + var splitDist_1 = 0; + var splitOffset_1 = 0, splitOffsetPx_1 = 0; + var lastGPS_1 = 0; + var GPS_TIMEOUT_MS_1 = 30000; + var layout_1 = new Layout_1({ + type: "v", + c: [ + { + type: "txt", + font: "6x8:2", + label: "Pace", + id: "paceLabel", + pad: 4 + }, + { + type: "txt", + font: "Vector:40", + label: "", + id: "pace", + halign: 0 + }, + { + type: "txt", + font: "6x8:2", + label: "Time", + id: "timeLabel", + pad: 4 + }, + { + type: "txt", + font: "Vector:40", + label: "", + id: "time", + halign: 0 + }, + ] + }, { + lazy: true + }); + var formatTime_1 = function (ms) { + var totalSeconds = Math.floor(ms / 1000); + var minutes = Math.floor(totalSeconds / 60); + var seconds = totalSeconds % 60; + return "".concat(minutes, ":").concat(seconds < 10 ? '0' : '').concat(seconds); + }; + var calculatePace_1 = function (time, dist) { + if (dist === 0) + return 0; + return time / dist / 1000 / 60; + }; + var draw_1 = function () { + if (state_1 === 1) { + drawSplits_1(); + return; + } + if (drawTimeout_1) + clearTimeout(drawTimeout_1); + drawTimeout_1 = setTimeout(draw_1, 1000); + var now = Date.now(); + var elapsedTime = formatTime_1(totalTime_1 + (state_1 === 0 ? now - lastResumeTime_1 : 0)); + var pace; + if (now - lastGPS_1 <= GPS_TIMEOUT_MS_1) { + pace = calculatePace_1(thisSplitTime_1(), splitDist_1).toFixed(2); + } + else { + pace = "No GPS"; + } + layout_1["time"].label = elapsedTime; + layout_1["pace"].label = pace; + layout_1.render(); + if (now - lastUnlazy_1 > 30000) + layout_1.forgetLazyState(), lastUnlazy_1 = now; + }; + var drawSplits_1 = function () { + g.clearRect(Bangle.appRect); + var barSize = 20; + var barSpacing = 10; + var w = g.getWidth(); + var h = g.getHeight(); + var max = splits_1.reduce(function (a, x) { return Math.max(a, x); }, 0); + g.setFont("6x8", 2).setFontAlign(-1, -1); + var i = 0; + for (;; i++) { + var split = splits_1[i + splitOffset_1]; + if (split == null) + break; + var y = Bangle.appRect.y + i * (barSize + barSpacing) + barSpacing / 2; + if (y > h) + break; + var size = w * split / max; + g.setColor("#00f").fillRect(0, y, size, y + barSize); + var splitPace = calculatePace_1(split, 1); + g.setColor("#fff").drawString("".concat(i + 1 + splitOffset_1, " @ ").concat(splitPace.toFixed(2)), 0, y); + } + var splitTime = thisSplitTime_1(); + var pace = calculatePace_1(splitTime, splitDist_1); + g.setColor("#fff").drawString("".concat(i + 1 + splitOffset_1, " @ ").concat(pace, " (").concat((splitTime / 1000).toFixed(2), ")"), 0, Bangle.appRect.y + i * (barSize + barSpacing) + barSpacing / 2); + }; + var thisSplitTime_1 = function () { + if (state_1 === 1) + return splitTime_1; + return Date.now() - lastResumeTime_1 + splitTime_1; + }; + var pauseRun_1 = function () { + state_1 = 1; + var now = Date.now(); + totalTime_1 += now - lastResumeTime_1; + splitTime_1 += now - lastResumeTime_1; + Bangle.setGPSPower(0, "pace"); + Bangle.removeListener('GPS', onGPS_1); + draw_1(); + }; + var resumeRun_1 = function () { + state_1 = 0; + lastResumeTime_1 = Date.now(); + Bangle.setGPSPower(1, "pace"); + Bangle.on('GPS', onGPS_1); + g.clearRect(Bangle.appRect); + layout_1.forgetLazyState(); + draw_1(); + }; + var onGPS_1 = function (fix) { + if (fix && fix.speed && state_1 === 0) { + var now = Date.now(); + var elapsedTime = now - lastGPS_1; + splitDist_1 += fix.speed * elapsedTime / 3600000; + while (splitDist_1 >= 1) { + splits_1.push(thisSplitTime_1()); + splitDist_1 -= 1; + splitTime_1 = 0; + } + lastGPS_1 = now; + } + }; + var onButton_1 = function () { + switch (state_1) { + case 0: + pauseRun_1(); + break; + case 1: + resumeRun_1(); + break; + } + }; + Bangle.on('lock', function (locked) { + if (!locked && state_1 == 0) + onButton_1(); + }); + setWatch(function () { return onButton_1(); }, BTN1, { repeat: true }); + Bangle.on('drag', function (e) { + if (state_1 !== 1 || e.b === 0) + return; + splitOffsetPx_1 -= e.dy; + if (splitOffsetPx_1 > 20) { + if (splitOffset_1 < splits_1.length - 3) + splitOffset_1++, Bangle.buzz(30); + splitOffsetPx_1 = 0; + } + else if (splitOffsetPx_1 < -20) { + if (splitOffset_1 > 0) + splitOffset_1--, Bangle.buzz(30); + splitOffsetPx_1 = 0; + } + draw_1(); + }); + Bangle.loadWidgets(); + Bangle.drawWidgets(); + g.clearRect(Bangle.appRect); + draw_1(); +} diff --git a/apps/pace/app.png b/apps/pace/app.png new file mode 100644 index 0000000000000000000000000000000000000000..ff8f29cdca8941f3a4d051ddba2b1469ea81a7a0 GIT binary patch literal 715 zcmV;+0yO=JP)6>ziQ3~@QX)^IJls6$MFG`9s z#e;I2(lls7@-iMwn7p`@2T~q9;6V|2a4AYDmq$jU6b;j0rd{jQYIo*4-`QvEvrlt= zwO-D5);{aMzqR&dK}ku;c+w2Cq_m)T4veI(OU=pwnI1F5| z1l$8o1Dk;vmfsF}rw^E(N8k&9bHL{sm(O3o4Vm>O;Jf$7Xhm*zoisRKppT! z`E3s+g-#~;R+Qfp<##NUB2Kav<#$s(@5xiZH%9?i)$`swH?l3jW9e8VS+nwcpah(u zfV@=#_EIqB$bl{ru$F?+u7V$wV|Q*voR&J^nHukw>p@x*T6pB2Ec4?@FC!Giap}LGgUSs)1`YK xlU`9H_l_LUDg=&MN#+78fF(YQv!rCAFbdFK++ROgi)sJ>002ovPDHLkV1i~1KimKS literal 0 HcmV?d00001 diff --git a/apps/pace/app.ts b/apps/pace/app.ts new file mode 100644 index 000000000..d7928504a --- /dev/null +++ b/apps/pace/app.ts @@ -0,0 +1,217 @@ +{ +const Layout = require("Layout"); + +const enum RunState { + RUNNING, + PAUSED +} + +let state = RunState.PAUSED; +let drawTimeout: TimeoutId | undefined; +let lastUnlazy = 0; + +let lastResumeTime = Date.now(); +let splitTime = 0; +let totalTime = 0; + +const splits: number[] = []; +let splitDist = 0; +let splitOffset = 0, splitOffsetPx = 0; + +let lastGPS = 0; +const GPS_TIMEOUT_MS = 30000; + +const layout = new Layout({ + type: "v", + c: [ + { + type: "txt", + font: "6x8:2", + label: "Pace", + id: "paceLabel", + pad: 4 + }, + { + type: "txt", + font: "Vector:40", + label: "", + id: "pace", + halign: 0 + }, + { + type: "txt", + font: "6x8:2", + label: "Time", + id: "timeLabel", + pad: 4 + }, + { + type: "txt", + font: "Vector:40", + label: "", + id: "time", + halign: 0 + }, + ] +}, { + lazy: true +}); + +const formatTime = (ms: number) => { + let totalSeconds = Math.floor(ms / 1000); + let minutes = Math.floor(totalSeconds / 60); + let seconds = totalSeconds % 60; + return `${minutes}:${seconds < 10 ? '0' : ''}${seconds}`; +}; + +const calculatePace = (time: number, dist: number) => { + if (dist === 0) return 0; + return time / dist / 1000 / 60; +}; + +const draw = () => { + if (state === RunState.PAUSED) { + // no draw-timeout here, only on user interaction + drawSplits(); + return; + } + + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = setTimeout(draw, 1000); + + const now = Date.now(); + + const elapsedTime = formatTime(totalTime + (state === RunState.RUNNING ? now - lastResumeTime : 0)); + + let pace: string; + if (now - lastGPS <= GPS_TIMEOUT_MS) { + pace = calculatePace(thisSplitTime(), splitDist).toFixed(2); + }else{ + pace = "No GPS"; + } + + layout["time"]!.label = elapsedTime; + layout["pace"]!.label = pace; + layout.render(); + + if (now - lastUnlazy > 30000) + layout.forgetLazyState(), lastUnlazy = now; +}; + +const drawSplits = () => { + g.clearRect(Bangle.appRect); + + const barSize = 20; + const barSpacing = 10; + const w = g.getWidth(); + const h = g.getHeight(); + + const max = splits.reduce((a, x) => Math.max(a, x), 0); + + g.setFont("6x8", 2).setFontAlign(-1, -1); + + let i = 0; + for(; ; i++) { + const split = splits[i + splitOffset]; + if (split == null) break; + + const y = Bangle.appRect.y + i * (barSize + barSpacing) + barSpacing / 2; + if (y > h) break; + + const size = w * split / max; // Scale bar height based on pace + g.setColor("#00f").fillRect(0, y, size, y + barSize); + + const splitPace = calculatePace(split, 1); // Pace per km + g.setColor("#fff").drawString(`${i + 1 + splitOffset} @ ${splitPace.toFixed(2)}`, 0, y); + } + + const splitTime = thisSplitTime(); + const pace = calculatePace(splitTime, splitDist); + g.setColor("#fff").drawString( + `${i + 1 + splitOffset} @ ${pace} (${(splitTime / 1000).toFixed(2)})`, + 0, + Bangle.appRect.y + i * (barSize + barSpacing) + barSpacing / 2, + ); +}; + +const thisSplitTime = () => { + if (state === RunState.PAUSED) return splitTime; + return Date.now() - lastResumeTime + splitTime; +}; + +const pauseRun = () => { + state = RunState.PAUSED; + const now = Date.now(); + totalTime += now - lastResumeTime; + splitTime += now - lastResumeTime; + Bangle.setGPSPower(0, "pace") + Bangle.removeListener('GPS', onGPS); + draw(); +}; + +const resumeRun = () => { + state = RunState.RUNNING; + lastResumeTime = Date.now(); + Bangle.setGPSPower(1, "pace"); + Bangle.on('GPS', onGPS); + + g.clearRect(Bangle.appRect); // splits -> layout, clear. layout -> splits, fine + layout.forgetLazyState(); + draw(); +}; + +const onGPS = (fix: GPSFix) => { + if (fix && fix.speed && state === RunState.RUNNING) { + const now = Date.now(); + + const elapsedTime = now - lastGPS; // ms + splitDist += fix.speed * elapsedTime / 3600000; // ms in one hour (fix.speed is in km/h) + + while (splitDist >= 1) { + splits.push(thisSplitTime()); + splitDist -= 1; + splitTime = 0; + } + + lastGPS = now; + } +}; + +const onButton = () => { + switch (state) { + case RunState.RUNNING: + pauseRun(); + break; + case RunState.PAUSED: + resumeRun(); + break; + } +}; + +Bangle.on('lock', locked => { + // treat an unlock (while running) as a pause + if(!locked && state == RunState.RUNNING) onButton(); +}); + +setWatch(() => onButton(), BTN1, { repeat: true }); + +Bangle.on('drag', e => { + if (state !== RunState.PAUSED || e.b === 0) return; + + splitOffsetPx -= e.dy; + if (splitOffsetPx > 20) { + if (splitOffset < splits.length-3) splitOffset++, Bangle.buzz(30); + splitOffsetPx = 0; + } else if (splitOffsetPx < -20) { + if (splitOffset > 0) splitOffset--, Bangle.buzz(30); + splitOffsetPx = 0; + } + draw(); +}); + +Bangle.loadWidgets(); +Bangle.drawWidgets(); + +g.clearRect(Bangle.appRect); +draw(); +} diff --git a/apps/pace/metadata.json b/apps/pace/metadata.json new file mode 100644 index 000000000..e7066c958 --- /dev/null +++ b/apps/pace/metadata.json @@ -0,0 +1,14 @@ +{ + "id": "pace", + "name": "Pace", + "version": "0.01", + "description": "Show pace and time running splits", + "icon": "app.png", + "tags": "run,running,fitness,outdoors", + "supports" : ["BANGLEJS2"], + "readme": "README.md", + "storage": [ + { "name": "pace.app.js","url": "app.js" }, + { "name": "pace.img","url": "app-icon.js","evaluate": true } + ] +} From 35b59ad217f07b388a0b885843fc14df97240125 Mon Sep 17 00:00:00 2001 From: thyttan <97237430+thyttan@users.noreply.github.com> Date: Tue, 10 Sep 2024 22:39:28 +0200 Subject: [PATCH 282/594] gbdiscon: add note re Gadgetbridge version requirement --- apps/gbdiscon/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/gbdiscon/metadata.json b/apps/gbdiscon/metadata.json index 0a3aaa8db..ecc92d01c 100644 --- a/apps/gbdiscon/metadata.json +++ b/apps/gbdiscon/metadata.json @@ -2,7 +2,7 @@ "name": "Disconnect from Gadgetbridge", "shortName":"Disconnect Gadgetbridge", "version":"0.01", - "description": "Disconnect from your android device by running this app. The app will forward you to your clock face immediately after triggering the command.", + "description": "Disconnect from your android device by running this app. The app will forward you to your clock face immediately after triggering the command. (Gadgetbridge nightly required until version 82 is released)", "icon": "app.png", "tags": "android, gadgetbridge, bluetooth, bt", "supports" : ["BANGLEJS", "BANGLEJS2"], From 6bf66d5fa2c689b47366b81b1ad496b3d61f559b Mon Sep 17 00:00:00 2001 From: Flaparoo <629229+flaparoo@users.noreply.github.com> Date: Wed, 11 Sep 2024 07:08:22 +0800 Subject: [PATCH 283/594] calculator: append '...' to truncated numbers --- apps/calculator/ChangeLog | 2 +- apps/calculator/app.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/calculator/ChangeLog b/apps/calculator/ChangeLog index 7e66e5d55..7b47d3a4c 100644 --- a/apps/calculator/ChangeLog +++ b/apps/calculator/ChangeLog @@ -5,4 +5,4 @@ 0.05: Grid positioning and swipe controls to switch between numbers, operators and special (for Bangle.js 2) 0.06: Bangle.js 2: Exit with a short press of the physical button 0.07: Bangle.js 2: Exit by pressing upper left corner of the screen -0.08: truncate long numbers (and append '-' to displayed value) +0.08: truncate long numbers (and append '...' to displayed value) diff --git a/apps/calculator/app.js b/apps/calculator/app.js index 13666defa..5f4e77a47 100644 --- a/apps/calculator/app.js +++ b/apps/calculator/app.js @@ -233,7 +233,7 @@ function displayOutput(num) { num = num.replace("-","- "); // fix padding for '-' g.setFont('7x11Numeric7Seg', 2); if (num.length > RESULT_MAX_LEN) { - num = num.substr(0, RESULT_MAX_LEN - 1)+'-'; + num = num.substr(0, RESULT_MAX_LEN - 1)+'...'; } } g.setFontAlign(1,0); From b1ae5d448bbe0ddcc2a1bc1ca8779ee2ebfa91e3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Sep 2024 00:31:00 +0000 Subject: [PATCH 284/594] build(deps): bump webtools from `71f271a` to `c594022` Bumps [webtools](https://github.com/espruino/EspruinoWebTools) from `71f271a` to `c594022`. - [Commits](https://github.com/espruino/EspruinoWebTools/compare/71f271a1c7be37efe4e472b7482b08ded1d0ab6f...c59402259c779b578e68995ea0237b813fab09c0) --- updated-dependencies: - dependency-name: webtools dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- webtools | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webtools b/webtools index 71f271a1c..c59402259 160000 --- a/webtools +++ b/webtools @@ -1 +1 @@ -Subproject commit 71f271a1c7be37efe4e472b7482b08ded1d0ab6f +Subproject commit c59402259c779b578e68995ea0237b813fab09c0 From 8113cbba4d11ee79cecfed3dd2bdaa91bfc1567c Mon Sep 17 00:00:00 2001 From: Flaparoo <629229+flaparoo@users.noreply.github.com> Date: Wed, 11 Sep 2024 10:29:10 +0800 Subject: [PATCH 285/594] hadash: added more to-dos --- apps/hadash/README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/hadash/README.md b/apps/hadash/README.md index a767543e2..1ae64d879 100644 --- a/apps/hadash/README.md +++ b/apps/hadash/README.md @@ -57,8 +57,9 @@ that token in case your watch is stolen or lost. ## To-Do -A better way to configure the menu structure would be useful, something like a -custom editor (replacing the jsoneditor). +- A better way to configure the menu structure would be useful, something like a custom editor (replacing the jsoneditor). +- After showing a state or call a service, return to the same point in the menu. +- Config option for service calls to not show a "successful" prompt ## Author From 624cf0f510334cdcaed742e4053c4acb55de6e6c Mon Sep 17 00:00:00 2001 From: stweedo <108593831+stweedo@users.noreply.github.com> Date: Wed, 11 Sep 2024 23:38:00 -0500 Subject: [PATCH 286/594] Revised suffix formatting in getDate function --- apps/boxclk/ChangeLog | 3 ++- apps/boxclk/app.js | 19 +++++++++++++++---- apps/boxclk/boxclk-2.json | 14 +++++++------- apps/boxclk/metadata.json | 2 +- 4 files changed, 25 insertions(+), 13 deletions(-) diff --git a/apps/boxclk/ChangeLog b/apps/boxclk/ChangeLog index 591d880b8..65a6c979f 100644 --- a/apps/boxclk/ChangeLog +++ b/apps/boxclk/ChangeLog @@ -12,4 +12,5 @@ - [+] Fixed optional seconds not displaying in time - [+] Fixed drag handler by adding E.stopEventPropagation() - [+] General code optimization and cleanup -0.09: Revised event handler code \ No newline at end of file +0.09: Revised event handler code +0.10: Revised suffix formatting in getDate function \ No newline at end of file diff --git a/apps/boxclk/app.js b/apps/boxclk/app.js index 87bbcef77..71dbda94f 100644 --- a/apps/boxclk/app.js +++ b/apps/boxclk/app.js @@ -208,12 +208,23 @@ // 7. String forming helper functions let getDate = function(short, shortMonth, disableSuffix) { const date = new Date(); - const dayOfMonth = date.getDate(); + const day = date.getDate(); const month = shortMonth ? locale.month(date, 1) : locale.month(date, 0); const year = date.getFullYear(); - let suffix = ["st", "nd", "rd"][(dayOfMonth - 1) % 10] || "th"; - let dayOfMonthStr = disableSuffix ? dayOfMonth : `${dayOfMonth}${suffix}`; - return `${month} ${dayOfMonthStr}${short ? '' : `, ${year}`}`; + + const getSuffix = (day) => { + if (day >= 11 && day <= 13) return 'th'; + const lastDigit = day % 10; + switch (lastDigit) { + case 1: return 'st'; + case 2: return 'nd'; + case 3: return 'rd'; + default: return 'th'; + } + }; + + const dayStr = disableSuffix ? day : `${day}${getSuffix(day)}`; + return `${month} ${dayStr}${short ? '' : `, ${year}`}`; // not including year for short version }; let getDayOfWeek = function(date, short) { diff --git a/apps/boxclk/boxclk-2.json b/apps/boxclk/boxclk-2.json index dde1da97e..1bdc89252 100644 --- a/apps/boxclk/boxclk-2.json +++ b/apps/boxclk/boxclk-2.json @@ -11,14 +11,14 @@ "xOffset": 3, "yOffset": 0, "boxPos": { - "x": "0.494", + "x": "0.5", "y": "0.739" } }, "dow": { "font": "6x8", "fontSize": 3, - "outline": 1, + "outline": 2, "color": "bgH", "outlineColor": "fg", "border": "#f0f", @@ -27,7 +27,7 @@ "xOffset": 2, "yOffset": 0, "boxPos": { - "x": "0.421", + "x": "0.5", "y": "0.201" }, "short": false @@ -35,7 +35,7 @@ "date": { "font": "6x8", "fontSize": 2, - "outline": 1, + "outline": 2, "color": "bgH", "outlineColor": "fg", "border": "#f0f", @@ -44,7 +44,7 @@ "xOffset": 1, "yOffset": 0, "boxPos": { - "x": "0.454", + "x": "0.5", "y": "0.074" }, "shortMonth": false, @@ -62,7 +62,7 @@ "xOffset": 2, "yOffset": 1, "boxPos": { - "x": "0.494", + "x": "0.5", "y": "0.926" }, "prefix": "Steps: " @@ -79,7 +79,7 @@ "xOffset": 2, "yOffset": 2, "boxPos": { - "x": "0.805", + "x": "0.8", "y": "0.427" }, "suffix": "%" diff --git a/apps/boxclk/metadata.json b/apps/boxclk/metadata.json index c8790fe7f..48f9f82ae 100644 --- a/apps/boxclk/metadata.json +++ b/apps/boxclk/metadata.json @@ -1,7 +1,7 @@ { "id": "boxclk", "name": "Box Clock", - "version": "0.09", + "version": "0.10", "description": "A customizable clock with configurable text boxes that can be positioned to show your favorite background", "icon": "app.png", "dependencies" : { "clockbg":"module" }, From ca004b27001a81dec99892c3b6a919e3fd181509 Mon Sep 17 00:00:00 2001 From: Guptilious <42465910+Guptilious@users.noreply.github.com> Date: Thu, 12 Sep 2024 07:56:31 +0100 Subject: [PATCH 287/594] Update app.js added an if statement to display an alert message if the tv config file is not present. --- apps/tvremote/app.js | 150 +++++++++++++++++++++++++------------------ 1 file changed, 89 insertions(+), 61 deletions(-) diff --git a/apps/tvremote/app.js b/apps/tvremote/app.js index 628ccd81c..1564f1857 100644 --- a/apps/tvremote/app.js +++ b/apps/tvremote/app.js @@ -9,13 +9,15 @@ let devicefile = require("Storage").readJSON(deviceFileName, true); //console.log(devicefile); -let serverDns = serverData.webServerDns; -let serverPort = serverData.port; -let tvIp = serverData.tvIp; -let username = serverData.username; -let password = serverData.password; +let serverDns = "webServerDns" in serverData ? serverData.webServerDns : 'undefined'; -let panaIp = "tvIp" in serverData ? serverData.tvIp : 'undefined'; +let serverPort = "port" in serverData ? serverData.port : 'undefined'; +let tvIp = "tvIp" in serverData ? serverData.tvIp : 'undefined'; +let username = "username" in serverData ? serverData.username : 'undefined'; +let password = "password" in serverData ? serverData.password : 'undefined'; + +let panaIp = tvIp; +//"tvIp" in serverData ? serverData.tvIp : 'undefined'; let settingsPort = "port" in serverData ? serverData.port : 'undefined'; let counter; @@ -31,7 +33,12 @@ let RIGHT_MARGIN = 15; let midpoint = (g.getWidth() / 2); let IP_AREA = [0, RESULT_HEIGHT, g.getWidth(), g.getHeight()]; // values used for key buttons let KEY_AREA = [0, 24, g.getWidth(), g.getHeight()]; -let COLORS = {DEFAULT: ['#FF0000'], BLACK: ['#000000'], WHITE: ['#FFFFFF'], GREY: ['#808080', '#222222']}; // background +let COLORS = { + DEFAULT: ['#FF0000'], + BLACK: ['#000000'], + WHITE: ['#FFFFFF'], + GREY: ['#808080', '#222222'] +}; // background let sourceApps = { "selection": { @@ -178,7 +185,7 @@ let volume = sourceApps.volume; let selection = sourceApps.selection; let numbers = sourceApps.numbers; -function assignScreen (screen) { +function assignScreen(screen) { currentScreen = screen; console.log(currentScreen); } @@ -195,14 +202,13 @@ function sendPost(keyPress) { }; Bangle.http( - serverUrl, - { - method: 'POST', - headers: { - 'Authorization': `Basic ${credentials}`, - }, - body: JSON.stringify(keyJson) - }) + serverUrl, { + method: 'POST', + headers: { + 'Authorization': `Basic ${credentials}`, + }, + body: JSON.stringify(keyJson) + }) .then(response => { console.log("Response received:", response); }).catch(error => { @@ -211,19 +217,18 @@ function sendPost(keyPress) { } function receiveDevices() { - serverPort = settingsPort; + let serverPort = settingsPort; let credentials = btoa(`${username}:${password}`); let serverUrl = `https://${serverDns}:${serverPort}/ssdp-devices.json`; return Bangle.http( - serverUrl, - { + serverUrl, { method: 'GET', headers: { 'Authorization': `Basic ${credentials}` }, }).then(data => { - require("Storage").write(deviceFileName, data); - devicefile = require("Storage").readJSON(deviceFileName, true); + require("Storage").write(deviceFileName, data); + devicefile = require("Storage").readJSON(deviceFileName, true); }); } @@ -277,7 +282,7 @@ function drawKeys(area, buttons) { function displayOutput(num, screenValue) { // top block num = num.toString(); - g.setFont('Vector', 18); //'7x11Numeric7Seg' + g.setFont('Vector', 18); //'7x11Numeric7Seg' g.setFontAlign(1, 0); g.setBgColor(0).clearRect(0, 0, g.getWidth(), RESULT_HEIGHT - 1); g.setColor(-1); // value @@ -288,27 +293,25 @@ function displayOutput(num, screenValue) { // top block function buttonPress(val, screenValue) { if (screenValue === "ip") { - if (val === "<") currNumber = currNumber.slice(0,-1); + if (val === "<") currNumber = currNumber.slice(0, -1); else if (val === ".") currNumber = currNumber + "."; else currNumber = currNumber == null ? val : currNumber + val; // currNumber is null if no value pressed let ipcount = (currNumber.match(/\./g) || []).length; - if (ipcount > 3 || currNumber.length > 15) currNumber = currNumber.slice(0,-1); + if (ipcount > 3 || currNumber.length > 15) currNumber = currNumber.slice(0, -1); displayOutput(currNumber, screenValue); } - let checkValue = appData.some(app => app.name === screenValue); // check app data + let checkValue = appData.some(app => app.name === screenValue); // check app data - if (checkValue) sendPost(val); // app values + if (checkValue) sendPost(val); // app values if (screenValue === "numbers") { if (val === '<') sendPost('back'); else if (val === 'ok') sendPost('enter'); - else sendPost("num_"+val); - } - - else if (screenValue === "selection") sendPost(selection[val].key); + else sendPost("num_" + val); + } else if (screenValue === "selection") sendPost(selection[val].key); else if (screenValue === "volume") sendPost(volume[val].key); } @@ -327,7 +330,7 @@ const powerScreen = () => { }; const appMenu = () => { - + assignScreen("apps"); E.showScroller({ h: 54, @@ -367,7 +370,7 @@ let tvSelector = { "": { title: "TV Selector", back: function() { - load();//E.showMenu(tvSelector); + load(); //E.showMenu(tvSelector); } }, "Panasonic": function() { @@ -398,7 +401,7 @@ function clearCountdown() { function countDown(callback) { require("widget_utils").show(); if (counter === 0) { - callback(); // Call the callback function when countdown reaches 0 + callback(); // Call the callback function when countdown reaches 0 return; } E.showMessage(`Searching for devices...\n${counter}`, "Device Search"); @@ -453,36 +456,51 @@ function subMenu() { if (typeof settingsPort !== 'undefined' && settingsPort !== 'undefined') { let portHeader = `Port: ${settingsPort}`; - settingssub[portHeader] = function() { IPASSIGN = "port"; ipScreen();}; + settingssub[portHeader] = function() { + IPASSIGN = "port"; + ipScreen(); + }; } else { - settingssub["Set DNS Port"] = function() { IPASSIGN = "port"; ipScreen();}; + settingssub["Set DNS Port"] = function() { + IPASSIGN = "port"; + ipScreen(); + }; } if (typeof panaIp !== 'undefined' && panaIp !== 'undefined') { let panaheader = `Pana IP: ${panaIp}`; - settingssub[panaheader] = function() { - IPASSIGN = "pana"; + settingssub[panaheader] = function() { + IPASSIGN = "pana"; E.showMenu(deviceSelect); devicefile = require("Storage").readJSON("tvdevicelist.json", true); -console.log(devicefile); + console.log(devicefile); }; } else { - settingssub["Set Pana IP"] = function() { IPASSIGN = "pana"; ipScreen();}; + settingssub["Set Pana IP"] = function() { + IPASSIGN = "pana"; + ipScreen(); + }; } if (typeof samsIp !== 'undefined' && panaIp !== 'undefined') { let samsheader = `Sams IP: ${samsIp}`; - settingssub[samsheader] = function() { IPASSIGN = "sams"; ipScreen();}; + settingssub[samsheader] = function() { + IPASSIGN = "sams"; + ipScreen(); + }; } else { - settingssub["Set Sams IP"] = function() { IPASSIGN = "sams"; ipScreen();}; + settingssub["Set Sams IP"] = function() { + IPASSIGN = "sams"; + ipScreen(); + }; } E.showMenu(settingssub); } const deviceMenu = () => { -let parsedResp = JSON.parse(devicefile.resp); - E.showScroller({ + let parsedResp = JSON.parse(devicefile.resp); + E.showScroller({ h: 54, c: parsedResp.length, draw: (i, r) => { @@ -515,13 +533,16 @@ let parsedResp = JSON.parse(devicefile.resp); let deviceSelect = { - "" : { title : "Device Select", - back : function() { subMenu(); } - }, - "Manual IP Assign" : function() { + "": { + title: "Device Select", + back: function() { + subMenu(); + } + }, + "Manual IP Assign": function() { ipScreen(); }, - "Device Select" : function() { + "Device Select": function() { receiveDevices(); counter = 5; countDown(deviceMenu); @@ -549,7 +570,7 @@ function swipeHandler(LR, UD) { sendPost("enter"); } } - if (LR == 1) { // swipe right + if (LR == 1) { // swipe right if (currentScreen === "apps") { assignScreen("power"); E.showScroller(); @@ -560,13 +581,13 @@ function swipeHandler(LR, UD) { sendPost("back"); } } - if (UD == -1) { // swipe up + if (UD == -1) { // swipe up if (currentScreen === "selection") { assignScreen("volume"); prepareScreen(volume, volumeGrid, COLORS.DEFAULT, KEY_AREA); drawKeys(KEY_AREA, volume); } else if (currentScreen === "volume") { - sendPost("enter"); + sendPost("enter"); } else if (currentScreen === "ip") { buttonPress(".", "ip"); } else if (currentScreen == "numbers") { @@ -575,15 +596,15 @@ function swipeHandler(LR, UD) { drawKeys(KEY_AREA, selection); } } - if (UD == 1) { // swipe down - if (currentScreen === "volume") { - assignScreen("selection"); - prepareScreen(selection, selectionGrid, COLORS.DEFAULT, KEY_AREA); - drawKeys(KEY_AREA, selection); - } else if (currentScreen === "selection") { - assignScreen("numbers"); - prepareScreen(numbers, numbersGrid, COLORS.DEFAULT, KEY_AREA); - drawKeys(KEY_AREA, numbers); + if (UD == 1) { // swipe down + if (currentScreen === "volume") { + assignScreen("selection"); + prepareScreen(selection, selectionGrid, COLORS.DEFAULT, KEY_AREA); + drawKeys(KEY_AREA, selection); + } else if (currentScreen === "selection") { + assignScreen("numbers"); + prepareScreen(numbers, numbersGrid, COLORS.DEFAULT, KEY_AREA); + drawKeys(KEY_AREA, numbers); } } } @@ -624,4 +645,11 @@ Bangle.on('touch', touchHandler); Bangle.loadWidgets(); Bangle.drawWidgets(); -mainMenu(); + +if (serverData === undefined) { + E.showAlert(`${serverDataFile}.json missing.\nSee READ.me`, "Config Error").then(function() { + mainMenu(); + }); +} else { + mainMenu(); +} From 9e0ce08f7db7d69ce74443227e6f278f9eb5bc69 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Thu, 12 Sep 2024 08:54:15 +0100 Subject: [PATCH 288/594] fix overflow issue mentioned in https://github.com/espruino/BangleApps/pull/3548#issuecomment-2345498696 --- css/main.css | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/css/main.css b/css/main.css index 810b9a032..ce27a0eb7 100644 --- a/css/main.css +++ b/css/main.css @@ -81,7 +81,10 @@ a.btn.btn-link.dropdown-toggle { min-height: 8em; } -.tile-content { position: relative; } +.tile-content { + position: relative; + overflow-wrap: anywhere; /* stop long text like links pushing the width out too far*/ +} .link-github { position:absolute; top: 36px; @@ -137,4 +140,4 @@ Not sure how to get 'normal' wrap behaviour (eg fill up until max-width, then wr /*.tooltip:hover::after { white-space: normal; min-width: 160px; -}*/ \ No newline at end of file +}*/ From 824fef0e1a3f70da303b8f106e5d7504df29135c Mon Sep 17 00:00:00 2001 From: stweedo <108593831+stweedo@users.noreply.github.com> Date: Thu, 12 Sep 2024 03:02:18 -0500 Subject: [PATCH 289/594] Update screenshot to match boxclk-2.json config change --- apps/boxclk/screenshot-2.png | Bin 7460 -> 11609 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/apps/boxclk/screenshot-2.png b/apps/boxclk/screenshot-2.png index 568a310b9cd99ad364fd26ed1a84ccc3119eee8a..361185406efa82df2d2d8ce74cf1102415b53771 100644 GIT binary patch literal 11609 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 Xa30JV9(e8j00000NkvXXu0mjfEOLoP literal 7460 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

#uQBUgR~!7yO@#H zFas+pf>{WwGn0YD+6x)XR26N28P6LA1`37&JYqk@dM*Py?-nNG_st~KSqShJwO&A@ zEJT-SSR{=&fNf*p!0E-lrP;{9ek%Y+8F(dtt+lOUU`ZBdYL|MY= z6N!Cg<|ty9cLFeL%C0ZjN=6vCH#1TI21<4vm;e%MlaWOO+s1EZVAck+0bK2YXeCfW zL4^_SMuvC#CmdFM5P%~LEbZ`RU}7lfO^X9y+Xh}K&N_fS3qh#0$LBpkw2(mMStXj0 zYy?$_oKP?OV8+0xzeF4fH!ZR@@yaDOK}J;2o^dwvs3uMZ)|F5UtTs%{76}Fx)lf?7 z0h?_%I`BO(N79Q^V&IUK2;sW{eD2`w$%%$)0)PnJ%oCX^yKz&32?;mUBE-O9>ijaW zu+l=mSxE@SKahd5vEFY1@T(taA@^lq25MNQmq~M@A9R?(KKo;u%Ul%x5dc3P1OE{Kdv?~@Fz@%cnf?fXpNN6u z&bUgz9CGJ19{ASBh+<%-%T|qM$3GuJXlB^Mn0j-5b_kJm=Br!?z|nq;C`JI72_xn) z@a)dKX? za1LT%lfS9M_bcTk>B6!s!w{0>1r!jDL&pZR0u5nVMD5FKBjD(9Q=lnTR zb40cW+DJW&>{|jj!obW34`a<^;9^mzpz&^3^Bp$EJ-w(8^!z5~joN?qSb9qUGp>ag zVk&WDv{R_6=ut9b4zXZkXgM1#M$BwPUzE9K34IiR8PH}Kp%^rjXACP8E>P!nNw05v zOfz4JC)*u~WwT9u6o50G>_Nt>FU7#RGP+@p!}h;NG8{6(DGQv8%|5BjJplH$ojvbJ z`G5!G{APav*{X+fDy@Kb|3Ulrb7O+px<72yFfe2PK>eF7qVkjh<3hg*!13<;C72YB zW<09>-smvAagN^+z1 zVg`jYg(F`vFkmnm!0bp8a_8>Yh&=;gSfk=o?UJ_o0+?|w3EWKoL1S(o^4_0Fok9OqE7`W=uDgYB!XBoJ_EFw>3lSll>0G_ZxPh=ef z%T`wyAqsd;2j=e}z!u>kJIu7v)sdQm_|<&$7C45NUI%6|la zqu~T&1V)BwcTznlZ#*1AL>F1iz+^HuZx}XI Date: Thu, 12 Sep 2024 10:05:40 +0100 Subject: [PATCH 290/594] Update apps/tvremote/app.js Co-authored-by: thyttan <97237430+thyttan@users.noreply.github.com> --- apps/tvremote/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/tvremote/app.js b/apps/tvremote/app.js index 1564f1857..55d9fe9ad 100644 --- a/apps/tvremote/app.js +++ b/apps/tvremote/app.js @@ -647,7 +647,7 @@ Bangle.loadWidgets(); Bangle.drawWidgets(); if (serverData === undefined) { - E.showAlert(`${serverDataFile}.json missing.\nSee READ.me`, "Config Error").then(function() { + E.showAlert(`No settings.\nSee READ.me`, "Config Error").then(function() { mainMenu(); }); } else { From 144bf5a28aa3dae91e3835a76a0901babac8f02a Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Thu, 12 Sep 2024 13:03:03 +0100 Subject: [PATCH 291/594] On Android, try and use saveFile for backups --- backup.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/backup.js b/backup.js index 09f65af99..2475c8002 100644 --- a/backup.js +++ b/backup.js @@ -53,7 +53,12 @@ function bangleDownload() { }).then(content => { Progress.hide({ sticky: true }); showToast('Backup complete!', 'success'); - Espruino.Core.Utils.fileSaveDialog(content, "Banglejs backup.zip"); + if (typeof Android !== "undefined" && typeof Android.saveFile === 'function') { + // Recent Gadgetbridge version that provides the saveFile interface + Android.saveFile("Banglejs backup.zip", "application/zip", content); + } else { + Espruino.Core.Utils.fileSaveDialog(content, "Banglejs backup.zip"); + } }).catch(err => { Progress.hide({ sticky: true }); showToast('Backup failed, ' + err, 'error'); From e5458fc5a009bed5bee19305881219b0cba38b9b Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Thu, 12 Sep 2024 13:33:54 +0100 Subject: [PATCH 292/594] fix recent change for file backup --- backup.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backup.js b/backup.js index 2475c8002..cc4c327bc 100644 --- a/backup.js +++ b/backup.js @@ -55,7 +55,7 @@ function bangleDownload() { showToast('Backup complete!', 'success'); if (typeof Android !== "undefined" && typeof Android.saveFile === 'function') { // Recent Gadgetbridge version that provides the saveFile interface - Android.saveFile("Banglejs backup.zip", "application/zip", content); + Android.saveFile("Banglejs backup.zip", "application/zip", btoa(content)); } else { Espruino.Core.Utils.fileSaveDialog(content, "Banglejs backup.zip"); } From 2569ef966a1d20d3916017fa44fbb6cd03c69420 Mon Sep 17 00:00:00 2001 From: aemkai <87898467+aemkai@users.noreply.github.com> Date: Thu, 12 Sep 2024 16:33:07 +0200 Subject: [PATCH 293/594] Update blc.js additional functions (change colors in settings) --- apps/blc/blc.js | 313 +++++++++++++++++++++++++++++------------------- 1 file changed, 191 insertions(+), 122 deletions(-) diff --git a/apps/blc/blc.js b/apps/blc/blc.js index 8a0f93d70..b12492a5e 100644 --- a/apps/blc/blc.js +++ b/apps/blc/blc.js @@ -2,135 +2,204 @@ { // must be inside our own scope here so that when we are unloaded everything disappears // we also define functions using 'let fn = function() {..}' for the same reason. function decls are global - let drawTimeout; - - // Actually draw the watch face - let draw = function() - { - // Bangle.js2 -> 176x176 - var x_rgt = g.getWidth(); - var y_bot = g.getHeight(); - //var x_cntr = x_rgt / 2; - var y_cntr = y_bot / 18*7; // not to high because of widget-field (1/3 is to high) - g.reset().clearRect(Bangle.appRect); // clear whole background (w/o widgets) - - let white = [1,1,1]; - let red = [1,0,0]; - let green = [0,1,0]; - //let blue = [0,0,1]; - let yellow = [1,1,0]; - //let magenta = [1,0,1]; - //let cyan = [0,1,1]; - let black = [0,0,0]; - let bord_col = white; - let col_off = black; - - var col = new Array(red, green, yellow, yellow); // [R,G,B] - - let pot_2 = [1, 2, 4, 8, 16, 32]; // array with powers of two, because power-op (**) - // doesn't work -> maybe also faster - - var nr_lines = 4; // 4 rows: hour (hr), minute (min), day (day), month (mon) - - // Arrays: [hr, min, day, mon] - //No of Bits: 5 6 5 4 - let msbits = [4, 5, 4, 3]; // MSB = No bits - 1 - let rad = [12, 12, 8, 8]; // radiuses for each row - var x_dist = 28; - let y_dist = [0, 30, 60, 85]; // y-position from y_centr for each row from top - // don't calc. automatic as for x, because of different spaces - var x_offs_rgt = 16; // distance from right border (layout) + const SETTINGSFILE = "BinaryClk.settings.json"; - // Date-Time-Array: 4x6 Bit - //var idx_hr = 0; - //var idx_min = 1; - //var idx_day = 2; - //var idx_mon = 3; - var dt_bit_arr = [[0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0]]; + // variables defined from settings + let HourCol; + let MinCol; + let DayCol; + let MonCol; + let RingOn; - var date_time = new Date(); - var hr = date_time.getHours(); // 0..23 - var min = date_time.getMinutes(); // 0..59 - var day = date_time.getDate(); // 1..31 - var mon = date_time.getMonth() + 1; // GetMonth() -> 0..11 + // color arrays + // !!! don't change order unless change oder in BinaryClk.settings.js !!! + // !!! order must correspond to each other between arrays !!! + let LED_Colors = ["#FFF", "#F00", "#0F0", "#00F", "#FF0", "#F0F", "#0FF", "#000"]; + let LED_ColorNames = ["white", "red", "green", "blue", "yellow", "magenta", "cyan", "black"]; - let dt_array = [hr, min, day, mon]; - + // load settings + let loadSettings = function() + { + function def (value, def) {return value !== undefined ? value : def;} -//////////////////////////////////////// -// compute bit-pattern from time/date and draw leds -//////////////////////////////////////// - var line_cnt = 0; - var cnt = 0; - var bit_cnt = 0; - - while (line_cnt < nr_lines) - { - - //////////////////////////////////////// - // compute bit-pattern - bit_cnt = msbits[line_cnt]; + var settings = require('Storage').readJSON(SETTINGSFILE, true) || {}; + // get name from setting, find index of name and assign corresponding color code by index + HourCol = LED_Colors[LED_ColorNames.indexOf(def(settings.HourCol, "red"))]; + MinCol = LED_Colors[LED_ColorNames.indexOf(def(settings.MinCol, "green"))]; + DayCol = LED_Colors[LED_ColorNames.indexOf(def(settings.DayCol, "yellow"))]; + MonCol = LED_Colors[LED_ColorNames.indexOf(def(settings.MonCol, "yellow"))]; + RingOn = def(settings.RingOn, true); + + delete settings; // settings in local var -> no more required + } - while (bit_cnt >= 0) - { - if (dt_array[line_cnt] >= pot_2[bit_cnt]) - { - dt_array[line_cnt] -= pot_2[bit_cnt]; - dt_bit_arr[line_cnt][bit_cnt] = 1; - } - else - { - dt_bit_arr[line_cnt][bit_cnt] = 0; - } - bit_cnt--; - } - - //////////////////////////////////////// - // draw leds (first white border for black screen, then led itself) - cnt = 0; + + function getTemperature() + { + try + { + var temperature = E.getTemperature(); + var formatted = require("locale").temp(temperature).replace(/[^\d-]/g, ''); + return formatted; + } + catch(ex) + { + print(ex); + return "?"; + } + } - while (cnt <= msbits[line_cnt]) - { - g.setColor(bord_col[0], bord_col[1], bord_col[2]); - g.drawCircle(x_rgt-x_offs_rgt-cnt*x_dist, y_cntr-20+y_dist[line_cnt], rad[line_cnt]); - - if (dt_bit_arr[line_cnt][cnt] == 1) - { - g.setColor(col[line_cnt][0], col[line_cnt][1], col[line_cnt][2]); - } - else - { - g.setColor(col_off[0], col_off[1], col_off[2]); - } - g.fillCircle(x_rgt-x_offs_rgt-cnt*x_dist, y_cntr-20+y_dist[line_cnt], rad[line_cnt]-1); - cnt++; - } - line_cnt++; - } + function getSteps() + { + var steps = Bangle.getHealthStatus("day").steps; + return steps; + } + - // queue next draw - if (drawTimeout) clearTimeout(drawTimeout); - drawTimeout = setTimeout(function() - { - drawTimeout = undefined; - draw(); - }, 60000 - (Date.now() % 60000)); - }; + let drawTimeout; - // Show launcher when middle button pressed - Bangle.setUI( - { - mode : "clock", - remove : function() - { - // Called to unload all of the clock app - if (drawTimeout) clearTimeout(drawTimeout); - drawTimeout = undefined; - } - }); - // Load widgets - Bangle.loadWidgets(); - draw(); - setTimeout(Bangle.drawWidgets,0); + // actually draw the watch face + let draw = function() + { + // Bangle.js2 -> 176x176 + var x_rgt = g.getWidth(); + var y_bot = g.getHeight(); + var x_cntr = x_rgt / 2; + var y_cntr = y_bot / 18*7; + g.reset().clearRect(Bangle.appRect); // clear whole background (w/o widgets) + + var white = "#FFF"; + var black = "#000"; + var bord_col = white; + var col_off = black; + + var col = new Array(HourCol, MinCol, DayCol, MonCol); // each #rgb + if (g.theme.dark) + { + bord_col = white; + col_off = black; + } + else + { + bord_col = black; + col_off = white; + } + + let pwr2 = [1, 2, 4, 8, 16, 32]; // array with powers of 2, because poweroperator '**' doesnt work + // maybe also faster + + + var no_lines = 4; // 4 rows: hour (hr), minute (min), day (day), month (mon) + var no_hour = 5; + var no_min = 6; + var no_day = 5; + var no_mon = 4; + + // arrays: [hr, min, day, mon] + let msbits = [no_hour-1, no_min-1, no_day-1, no_mon-1]; // MSB = No bits - 1 + let rad = [13, 13, 9, 9]; // radiuses for each row + var x_dist = 29; + let y_dist = [0, 35, 75, 100]; // y-position from y_centr for each row from top + // don't calc. automatic as for x, because of different spaces + var x_offs_rgt = 15; // offset from right border (layout) + var y_offs_cntr = 25; // vertical offset from center + + //////////////////////////////////////// + // compute bit-pattern from time/date and draw leds + //////////////////////////////////////// + + // date-time-array: 4x6 bit + var idx_hour = 0; + var idx_min = 1; + var idx_day = 2; + var idx_mon = 3; + var dt_bit_arr = [[0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0]]; + + var date_time = new Date(); + var hour = date_time.getHours(); // 0..23 + var min = date_time.getMinutes(); // 0..59 + var day = date_time.getDate(); // 1..31 + var mon = date_time.getMonth() + 1; // GetMonth() -> 0..11 + + let dt_array = [hour, min, day, mon]; + + var line_cnt = 0; + var cnt = 0; + var bit_cnt = 0; + + while (line_cnt < no_lines) + { + + //////////////////////////////////////// + // compute bit-pattern + bit_cnt = msbits[line_cnt]; + + while (bit_cnt >= 0) + { + if (dt_array[line_cnt] >= pwr2[bit_cnt]) + { + dt_array[line_cnt] -= pwr2[bit_cnt]; + dt_bit_arr[line_cnt][bit_cnt] = 1; + } + else + { + dt_bit_arr[line_cnt][bit_cnt] = 0; + } + bit_cnt--; + } + + //////////////////////////////////////// + // draw leds (and border, if enabled) + cnt = 0; + + while (cnt <= msbits[line_cnt]) + { + if (RingOn) // draw outer ring, if enabled + { + g.setColor(bord_col); + g.drawCircle(x_rgt-x_offs_rgt-cnt*x_dist, y_cntr-y_offs_cntr+y_dist[line_cnt], rad[line_cnt]); + } + if (dt_bit_arr[line_cnt][cnt] == 1) + { + g.setColor(col[line_cnt]); + } + else + { + g.setColor(col_off); + } + g.fillCircle(x_rgt-x_offs_rgt-cnt*x_dist, y_cntr-y_offs_cntr+y_dist[line_cnt], rad[line_cnt]-1); + cnt++; + } + line_cnt++; + } + + // queue next draw + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = setTimeout(function() + { + drawTimeout = undefined; + draw(); + }, 60000 - (Date.now() % 60000)); + } + + + // Init the settings of the app + loadSettings(); + + // Show launcher when middle button pressed + Bangle.setUI( + { + mode : "clock", + remove : function() + { + // Called to unload all of the clock app + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = undefined; + } + }); + // Load widgets + Bangle.loadWidgets(); + draw(); + setTimeout(Bangle.drawWidgets,0); } From 2da349874b4fc63ff7f90bd89b3bd143339874b5 Mon Sep 17 00:00:00 2001 From: aemkai <87898467+aemkai@users.noreply.github.com> Date: Thu, 12 Sep 2024 16:35:14 +0200 Subject: [PATCH 294/594] Update metadata.json --- apps/blc/metadata.json | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/blc/metadata.json b/apps/blc/metadata.json index 174926ebc..53dde47e3 100644 --- a/apps/blc/metadata.json +++ b/apps/blc/metadata.json @@ -1,10 +1,10 @@ { "id":"blc", "name":"Binary LED Clock", - "version": "0.10", - "description": "Binary LED Clock with date", + "version": "0.40", + "description": "a binary LED-Clock with time and date and customizable LED-colors", "icon":"blc-icon.png", - "screenshots": [{"url":"screenshot_blc.bmp"}], + "screenshots": [{"url":"screenshot_blc_1.bmp"},{"url":"screenshot_blc_2.bmp"}], "type": "clock", "tags": "clock", "supports": ["BANGLEJS2"], @@ -12,6 +12,8 @@ "readme": "README.md", "storage": [ {"name":"blc.app.js","url":"blc.js"}, + {"name":"blc.settings.js","url":"blc.settings.js"}, {"name":"blc.img","url":"blc-icon.js","evaluate":true} - ] + ], + "data": [{"name":"blc.settings.json"}] } From ca055b4a31b7cd1676aec5a6a7c7fc774f73525b Mon Sep 17 00:00:00 2001 From: aemkai <87898467+aemkai@users.noreply.github.com> Date: Thu, 12 Sep 2024 16:37:23 +0200 Subject: [PATCH 295/594] upload new screenshots upload new screenshots for V0.4 --- apps/blc/screenshot_blc_1.bmp | Bin 0 -> 92982 bytes apps/blc/screenshot_blc_2.bmp | Bin 0 -> 92982 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/blc/screenshot_blc_1.bmp create mode 100644 apps/blc/screenshot_blc_2.bmp diff --git a/apps/blc/screenshot_blc_1.bmp b/apps/blc/screenshot_blc_1.bmp new file mode 100644 index 0000000000000000000000000000000000000000..8a8c86ce5683649fdda1f9837764aaf13b70081f GIT binary patch literal 92982 zcmeI5;g#Gr42112QbHz|)L^6OXn^=JC^@A>QJk3Z5Vz0T+5246t{1V8`;KmY_l00ck)1V8`;KmY_l00ck) z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY{38-d@~m)G{M zuD`#ht=F#KDjVHqhSD{`w%&DXdaGW~?TlN~TlJ1r{U}eDu7|eu5_^r)#_N|? z_}Vj#zo)I&uHgd$AOHd&00JNY0w4eaAOHfP1n?)ggm*6pLH*GB^LwkVjFG2H*SfaS z#vIZH*h-cTHO*!<8Wtr_8C`4HvJKpBC)3`1SYg7JIXK?x!|0VMUKZ=FRcv)k&1nN{ zb(V{%bj@(~j6QpitvhTK86 zh6G<+s_gbeL9aZ;y0crwR(Hj=RMCVW5u1V8`;KmY_l00ck) z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00cl_5d!RAH!8Q!v%xko+z7(( z+=l|OXUuRLwrY3mMI#rCq-=8ZXR z)9LcSY#YG#63F*Pm$vQ-)%roUsm@;WMFIcgLR%VpL`pTIncJVH}xX{f_iR8DA)$D?F4XmUG{%JxFFkrH$_QGC+HHK+yW0S00qVNhv4FP zm{7Ss=*vvc~c^kr1fy9#UXFUTyq7+lTu0GH zPrePv9B4bS=i3wk!c8+#5Nre3QZTk0)%63>As3&;ez&cD!;-R@Rub!LP1^vr`c#w3 zXPKLe2H7^(Tk^rC5T;}I4u zrkS{9hI0h&>%unf$nLaJ0Ra#I0T2KI5C8!X009sH0T2KI5CDOV2;c`t>9F>K5Yb() zpF=i(sQMDv79Y+U3dHq>vxb5%U@LCHrI_fY_k`v;l-f1*V!bl0trzQ++u3T*U`D6v zglo6VEQ2{a5SVC&GG&L&A)}4JbTgnOY@pXyAKzOa^@I4`SuC1phz?@$yV;udYZ4!L zA2mby?F2g}c58}MisycwU$0sK|i1$&IUn0BoMxD zJ#wQ#>&K(ZNu>6X}RpNOj_FwqifZwNOeaD2B? zb%p8snqI6|Cc1jDUb&rZbeAP`2fb!jyacu&!&yUtxZZHqQ1At8#VxoO3rY6%`6|qC z?!4|XV0&kR3J8Dz2!H?xfB*=900@8p2!H?xfB*=9z?uZapJfFVhXnHfVIci%7_ZL} z2s(PvcDT#Z51p0}ZCP=+3IrVj1!hO!@<_Q#>4ef1_jTF1cW&=z4m&`SrD9*LZYUrJ+e>>W4C}Z;uK;`QpT@Y+4cF ztB%0sq~6{S>~o+#N%ko1rgiSEx()zT7XqK{hvSt0|5%`YxHrS0yqtW!jmraasTCOO z2)wf&>Qk%J(dn0yq}y7P#`W|xuAg=u)iR8S1PaMh7X1C9J~bAs^Z1x`x0a{XicMWzb1}30&z~ z^-6-_n7{>N@b`;W8tQ>GNH4k-^_RevqE)XX7>)^CFn*#R>eDa%kV4l*wuejL>RGE^ zNiZA}xL|yHKd^JBen`35BihL&FjccYzp4U;GXyRe-`)=_aebcsekif;Uzs6ptpqOp zV4bYiD_5a@Xf;Dw@ZJVWe|6sPD|`=0cb6{PAFY56hja} WAmZFxp2Ph3WEdiX00cnbPT)WNq@{)c literal 0 HcmV?d00001 diff --git a/apps/blc/screenshot_blc_2.bmp b/apps/blc/screenshot_blc_2.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ee07e3bb3942b81c845a5e4258b0f5c1bc84f00c GIT binary patch literal 92982 zcmeI3VV2uA41|+g^awpc4$%KSNiNqLwxndCGz5wO1lXiKe%dTa4+h{zNZ#yA{`&jZ z@1H;F>sR^uvwZ#Y`1<+dk1{H+$NT$a|MOqGKmY_l00ck)1V8`;KmY_l00ck)1V8`; zKmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1ipqq`+o|` zIBMUpjUxFnpY8NZ1Mur+SM&pH1!h7o$TTY-bxoNA+K8bAGtN@|y4F?cSh(^OG zX+ks_$u=GW%QF9TLpR{CH--taUaVIZn0m2ZdDzB7nE&*p3RN7AXN6?&32T5*PjS16 z3@DU0ol-`9q|_^AF57qrRK`*R1BcIjL;ynV+3j{SqZr<#LxFg|45NmE8@BNf#9}62 z+z7{`$UHbR(P1%35X^;65Rimocm(3shfzbp4cqveLM&$TMf5{Cpd<*BAH7&!5{k?l zS=`6f;;@(`2v;>t{hs+zIrVOw#R0+tob~P)-fp|EQbwnz)GK8!TSH4&%bCfbf8}b-Rj&>Auj5^~zGQUaVIhw($@geK|wOhHgN^gm>SRCPbrQh%_M@jbs}S zfn`}}x-k@hIM}wk?uGZ(+t`b7FTA&YVb#91g~vl^Q>-;EK-yPS@vUbWf2VEKuHgd$ zAOHd&00JNY0w4eaAOHfX1n@Vwf_E(lN&V3K`+IL)Sw;;PeiLK(6|tBo(N@YA03pFv zvJ6<$Y*wRTrSy)hZI8KZ*#=HiXSF9Ew&1X34uMmBF?wYwuZpF|!g+BPTOCt#wF$O5 z%gI!_W_YxRzV;+reE}b>G20LYdK{@wF$Ns%W1ThW-vS=l5D5J_TEC2 zea?y;Mpc3R;NEG=cBq)Ds#W+f$B4iKNJY|*O0B<(h%XxK8!*?lrtDo z63@vOC0aQaec6XmRe&hBxxYQN%+DaP>s5Ze?vJ74;8*g7x z?yYAT!!{5?6ioPl00@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p z2!H?xfB*=9z$66NKR4Q^_iKY~VYm>4;kge5V$VDX6coK{Q;4w_i^F1u0?|CR+Ae{k zPsEZg7L%$i8H@8p-u5lMa<{#L&~}KrfEBAvf{p;k`?H#3f=+}$vm;#z%XYx#gWw|ct;$7yGSMA+X>p;k`-ElE87Ywi8Vm^6zhf1A`jCbzt5(GUCSZl!?VOPpRk)Q=YjUJYGYdB1R=u~{Xn-sUiW4k zTvD|y4I29f>~`Bt0?K~AFUZzcBt^Zr+Pf{$fskQKh>`|3Yfh@FXPZ>*TDCnnQR{9R zQ3aTMlB!+H)$L$}uS)exFV-tda=louT+UW~2zH^m8UF7LdlE#f zLBP=rd&nBwLzNZ+?q)zsSTHZ4t)H#;F7eY@Tr>d@9mK_Nvo-D4B(8WPE_O_8YAUG} zGaoi>m8LQCVN;V;D`q}y+A2-sC?8GInk(XBHM6Ov5>dl^*i;PBEHWQ9)i{V6=EJ69 zh-NX$N0Te086GC8d=Sk`pf+CIMQu!jke!no4ZhhnWbZwbN;vMK^P)j7uW6m!XkZHO ziOG!yJ*8=#+-P75?}=mGuCkyX3W2y69UKipykp&ZCDkl(7u8IIUS88WxzWHB-V>7> z4SGt`I=Run6y6iZx?N>KKj8Ur^hfQwxQlw221lM--^q;zx9pB!a-+fV&aLm{MuS^+ zM{um$;mW_)EO8grOaq?JH77S3xNLY3xzT_tTyt`xfy;&m#kz6#b{^Lctt-Zh5~z(A zaj^zwQ#Tyu!=~S9>)y2{uo8~A*h#UerV>%ZeArYB(JV3_Hq|(Y8s@{MVu)rj%14u{ zXllB9msqg4s4Quhi4Nl8x7nKZ>k;4U2Tw-COisYv5|i%><+%wsTEd+Rfh!QGpU%3= z^f|5<>y-tkUaVIxXPezt1zn}rza9c(9mA-hKukD{8VWwZR@_4P;!cwNc|Qv?^qtqa z4A`ETU Date: Thu, 12 Sep 2024 16:39:19 +0200 Subject: [PATCH 296/594] add settings files add settings files for V4.0 --- apps/blc/blc.settings.js | 72 ++++++++++++++++++++++++++++++++++++++ apps/blc/blc.settings.json | 7 ++++ 2 files changed, 79 insertions(+) create mode 100644 apps/blc/blc.settings.js create mode 100644 apps/blc/blc.settings.json diff --git a/apps/blc/blc.settings.js b/apps/blc/blc.settings.js new file mode 100644 index 000000000..33d624620 --- /dev/null +++ b/apps/blc/blc.settings.js @@ -0,0 +1,72 @@ +// Change settings for BinaryClk + +(function(back){ + + // color array -- don't change order unless change oder in BinaryClk.js + let LED_ColorNames = ["white", "red", "green", "blue", "yellow", "magenta", "cyan", "black"]; + + var FILE = "BinaryClk.settings.json"; + // Load settings + var settings = Object.assign({ + HourCol: "red", + MinCol: "green", + DayCol: "yellow", + MonCol: "yellow", + RingOn: true, + }, require('Storage').readJSON(FILE, true) || {}); + + function writeSettings(){ + require('Storage').writeJSON(FILE, settings); + } + + // Helper method which uses int-based menu item for set of string values + function stringItems(startvalue, writer, values) { + return{ + value: (startvalue === undefined ? 0 : values.indexOf(startvalue)), + format: v => values[v], + min: 0, + max: values.length - 1, + wrap: true, + step: 1, + onchange: v => { + writer(values[v]); + writeSettings(); + } + }; + } + + // Helper method which breaks string set settings down to local settings object + function stringInSettings(name, values) { + return stringItems(settings[name], v => settings[name] = v, values); + } + + // Show the menu + var mainmenu = { + "" : { + "title" : "BinaryCLK" + }, + "< Back" : () => back(), + 'Color Hour.:': stringInSettings("HourCol", LED_ColorNames), + 'Color Minute:': stringInSettings("MinCol", LED_ColorNames), + 'Color Day': stringInSettings("DayCol", LED_ColorNames), + 'Color Month:': stringInSettings("MonCol", LED_ColorNames), + 'LED ring on/off': { + value: (settings.RingOn !== undefined ? settings.RingOn : true), + onchange: v => { + settings.RingOn = v; + writeSettings(); + } + }, + }; + + // Show submenues + //var submenu1 = { + //"": { + // "title": "Show sub1..." + //}, + //"< Back": () => E.showMenu(mainmenu), + //"ItemName": stringInSettings("settingsVar", ["Yes", "No", "DontCare"]), + //}; + + E.showMenu(mainmenu); +}); diff --git a/apps/blc/blc.settings.json b/apps/blc/blc.settings.json new file mode 100644 index 000000000..acdb1a78a --- /dev/null +++ b/apps/blc/blc.settings.json @@ -0,0 +1,7 @@ +{ + "HourCol": "red", + "MinCol": "green", + "DayCol": "yellow", + "MonCol": "yellow", + "RingOn": true +}; From 5403964960006f27f338275866e9f2f34ec16ed7 Mon Sep 17 00:00:00 2001 From: aemkai <87898467+aemkai@users.noreply.github.com> Date: Thu, 12 Sep 2024 16:40:04 +0200 Subject: [PATCH 297/594] Delete apps/blc/screenshot_blc.bmp screenshot is outdated --- apps/blc/screenshot_blc.bmp | Bin 15562 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 apps/blc/screenshot_blc.bmp diff --git a/apps/blc/screenshot_blc.bmp b/apps/blc/screenshot_blc.bmp deleted file mode 100644 index 50b8539bbde952b4b8be2b09aee5ed2691245fc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15562 zcmeHNOOD(i5GC4YH6fMxkIm^qs)?j>7BGNsQx`gr-kqJ?W3C9|*>X9me5r8P2y9VzSzsZ+K&*iel zvx&L#=sJiLmg!K4o6#_mAHs# zlKU0HH39+_rS-&2JB4IzN0n4W>+NXb59v8do+=^DWKttSyWp-{%DFp^#NA8)>P9>2 z(S?rea0#h{V;_=eN4!o2TRqJnnmtvJ#m@2%z>i);fzxi8j{|O^9ZmcgRyvkZpv_yz zLgPUg61aqdyd*Fpv}?SyS)vdsQ$naHBDA|leKGP%h@Nh$pdHP^lTt*1bisMsD?da> zjJ7yzY>q+*Pzw>-(UbW{f1X7&fePmwpLhh>z~#a$JWH1n2TDj?lo}D*@#?UUbKfnS zAofF3q;ps+VBv{u?ENny_Cwe+If&S^2=PAO54wJ7&nWLA+9_M8al9VyTpR`uur+75*LgD}yp&h;Xa=d(R9*=J zlej_PIfQn(6J7{TA3oJ^qlnaDw##{qE-bF9!}AF3a$@JOTh_U_q!Ndx+;wjhKg^7d z_NMo-HLmh?nJdwHngUIMrojKDfK8@J;pgvOZj>P*wNQ9ZRLS6`6{3Hb5PQc<4%3^# z7JWIc;-BI*)?v&0PS+|zH+e{YAT!QiV;!!}dotZFyxmLZbV&an*kVa?9VjABo!hs{ zyxoc7%<5a2*PQ5FSl%1rOn!)?`xB{Wne3f;Z#x%byrP3S*wCeGL&^7zNMzrt^SU^z z&g;%abzURqO#))8zR9L&e(;Gh8D9v6CYtPcZ%ynH`thCD=-Az8xwXxhQQE>w=k4Cg EUtq$(RR910 From 19391a0136a0afaf20dc34d0c32cbf3ee54c9408 Mon Sep 17 00:00:00 2001 From: aemkai <87898467+aemkai@users.noreply.github.com> Date: Thu, 12 Sep 2024 16:44:52 +0200 Subject: [PATCH 298/594] Update README.md Added description for new functionalities. --- apps/blc/README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/blc/README.md b/apps/blc/README.md index a3581cdc7..3d126bcf8 100644 --- a/apps/blc/README.md +++ b/apps/blc/README.md @@ -9,5 +9,9 @@ From top to bottom the watch face shows four rows of leds: * day (yellow leds, top row) * month (yellow leds, bottom row) -As usual, luminous leds represent a logical one, dark leds a logcal '0'. +The colors are default colors and can be changed at the settings page, also, the outer ring can be disabled. + +The rightmost LED represents 1, the second 2, the third 4, the next 8 and so on, i.e. values are the powers of two. + +As usual, luminous leds represent a logical one, and "dark" leds a logcal '0'. Dark means the color of the background. Widgets aren't affected and are shown as normal. From 8bd5f3e56f79bc3a9fb2c5d9b58ff27ec6c35293 Mon Sep 17 00:00:00 2001 From: aemkai <87898467+aemkai@users.noreply.github.com> Date: Thu, 12 Sep 2024 16:46:40 +0200 Subject: [PATCH 299/594] Update ChangeLog --- apps/blc/ChangeLog | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/blc/ChangeLog b/apps/blc/ChangeLog index 4860c24a6..6075cacf8 100644 --- a/apps/blc/ChangeLog +++ b/apps/blc/ChangeLog @@ -1 +1,4 @@ 0.10: New app introduced to the app loader! +0.20: skipped (internal revision) +0.30: skipped (internal revision) +0.40: added functionality for customizing colors From 8336e4e7c52882d494dc05e222bff96f07dee7e1 Mon Sep 17 00:00:00 2001 From: aemkai <87898467+aemkai@users.noreply.github.com> Date: Thu, 12 Sep 2024 18:02:07 +0200 Subject: [PATCH 300/594] Update blc.settings.js removed space/tab mix --- apps/blc/blc.settings.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/blc/blc.settings.js b/apps/blc/blc.settings.js index 33d624620..be10d9e89 100644 --- a/apps/blc/blc.settings.js +++ b/apps/blc/blc.settings.js @@ -62,10 +62,10 @@ // Show submenues //var submenu1 = { //"": { - // "title": "Show sub1..." - //}, - //"< Back": () => E.showMenu(mainmenu), - //"ItemName": stringInSettings("settingsVar", ["Yes", "No", "DontCare"]), + // "title": "Show sub1..." + //}, + //"< Back": () => E.showMenu(mainmenu), + //"ItemName": stringInSettings("settingsVar", ["Yes", "No", "DontCare"]), //}; E.showMenu(mainmenu); From 3bdaad5fa44ca519f6fef95ec3cf3c2afecb57fd Mon Sep 17 00:00:00 2001 From: aemkai <87898467+aemkai@users.noreply.github.com> Date: Thu, 12 Sep 2024 18:02:53 +0200 Subject: [PATCH 301/594] Update blc.js removed unused variables and cleaned tab/space-mix --- apps/blc/blc.js | 35 ++++++----------------------------- 1 file changed, 6 insertions(+), 29 deletions(-) diff --git a/apps/blc/blc.js b/apps/blc/blc.js index b12492a5e..51663e502 100644 --- a/apps/blc/blc.js +++ b/apps/blc/blc.js @@ -34,30 +34,7 @@ delete settings; // settings in local var -> no more required } - - function getTemperature() - { - try - { - var temperature = E.getTemperature(); - var formatted = require("locale").temp(temperature).replace(/[^\d-]/g, ''); - return formatted; - } - catch(ex) - { - print(ex); - return "?"; - } - } - - function getSteps() - { - var steps = Bangle.getHealthStatus("day").steps; - return steps; - } - - - let drawTimeout; + let drawTimeout; // actually draw the watch face let draw = function() @@ -65,7 +42,7 @@ // Bangle.js2 -> 176x176 var x_rgt = g.getWidth(); var y_bot = g.getHeight(); - var x_cntr = x_rgt / 2; + //var x_cntr = x_rgt / 2; var y_cntr = y_bot / 18*7; g.reset().clearRect(Bangle.appRect); // clear whole background (w/o widgets) @@ -110,10 +87,10 @@ //////////////////////////////////////// // date-time-array: 4x6 bit - var idx_hour = 0; - var idx_min = 1; - var idx_day = 2; - var idx_mon = 3; + //var idx_hour = 0; + //var idx_min = 1; + //var idx_day = 2; + //var idx_mon = 3; var dt_bit_arr = [[0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0]]; var date_time = new Date(); From b5491e1371f03e96e3f066eec358e8ce2315d0fc Mon Sep 17 00:00:00 2001 From: aemkai <87898467+aemkai@users.noreply.github.com> Date: Thu, 12 Sep 2024 18:05:12 +0200 Subject: [PATCH 302/594] Update blc.js --- apps/blc/blc.js | 304 ++++++++++++++++++++++++------------------------ 1 file changed, 152 insertions(+), 152 deletions(-) diff --git a/apps/blc/blc.js b/apps/blc/blc.js index 51663e502..6015bc548 100644 --- a/apps/blc/blc.js +++ b/apps/blc/blc.js @@ -3,180 +3,180 @@ { // must be inside our own scope here so that when we are unloaded everything disappears // we also define functions using 'let fn = function() {..}' for the same reason. function decls are global - const SETTINGSFILE = "BinaryClk.settings.json"; + const SETTINGSFILE = "BinaryClk.settings.json"; - // variables defined from settings - let HourCol; - let MinCol; - let DayCol; - let MonCol; - let RingOn; + // variables defined from settings + let HourCol; + let MinCol; + let DayCol; + let MonCol; + let RingOn; - // color arrays - // !!! don't change order unless change oder in BinaryClk.settings.js !!! - // !!! order must correspond to each other between arrays !!! - let LED_Colors = ["#FFF", "#F00", "#0F0", "#00F", "#FF0", "#F0F", "#0FF", "#000"]; - let LED_ColorNames = ["white", "red", "green", "blue", "yellow", "magenta", "cyan", "black"]; + // color arrays + // !!! don't change order unless change oder in BinaryClk.settings.js !!! + // !!! order must correspond to each other between arrays !!! + let LED_Colors = ["#FFF", "#F00", "#0F0", "#00F", "#FF0", "#F0F", "#0FF", "#000"]; + let LED_ColorNames = ["white", "red", "green", "blue", "yellow", "magenta", "cyan", "black"]; - // load settings - let loadSettings = function() - { - function def (value, def) {return value !== undefined ? value : def;} + // load settings + let loadSettings = function() + { + function def (value, def) {return value !== undefined ? value : def;} - var settings = require('Storage').readJSON(SETTINGSFILE, true) || {}; - // get name from setting, find index of name and assign corresponding color code by index - HourCol = LED_Colors[LED_ColorNames.indexOf(def(settings.HourCol, "red"))]; - MinCol = LED_Colors[LED_ColorNames.indexOf(def(settings.MinCol, "green"))]; - DayCol = LED_Colors[LED_ColorNames.indexOf(def(settings.DayCol, "yellow"))]; - MonCol = LED_Colors[LED_ColorNames.indexOf(def(settings.MonCol, "yellow"))]; - RingOn = def(settings.RingOn, true); - - delete settings; // settings in local var -> no more required - } + var settings = require('Storage').readJSON(SETTINGSFILE, true) || {}; + // get name from setting, find index of name and assign corresponding color code by index + HourCol = LED_Colors[LED_ColorNames.indexOf(def(settings.HourCol, "red"))]; + MinCol = LED_Colors[LED_ColorNames.indexOf(def(settings.MinCol, "green"))]; + DayCol = LED_Colors[LED_ColorNames.indexOf(def(settings.DayCol, "yellow"))]; + MonCol = LED_Colors[LED_ColorNames.indexOf(def(settings.MonCol, "yellow"))]; + RingOn = def(settings.RingOn, true); + + delete settings; // settings in local var -> no more required + } - let drawTimeout; + let drawTimeout; - // actually draw the watch face - let draw = function() - { - // Bangle.js2 -> 176x176 - var x_rgt = g.getWidth(); - var y_bot = g.getHeight(); - //var x_cntr = x_rgt / 2; - var y_cntr = y_bot / 18*7; - g.reset().clearRect(Bangle.appRect); // clear whole background (w/o widgets) + // actually draw the watch face + let draw = function() + { + // Bangle.js2 -> 176x176 + var x_rgt = g.getWidth(); + var y_bot = g.getHeight(); + //var x_cntr = x_rgt / 2; + var y_cntr = y_bot / 18*7; + g.reset().clearRect(Bangle.appRect); // clear whole background (w/o widgets) - var white = "#FFF"; - var black = "#000"; - var bord_col = white; - var col_off = black; + var white = "#FFF"; + var black = "#000"; + var bord_col = white; + var col_off = black; - var col = new Array(HourCol, MinCol, DayCol, MonCol); // each #rgb - if (g.theme.dark) - { - bord_col = white; - col_off = black; - } - else - { - bord_col = black; - col_off = white; - } + var col = new Array(HourCol, MinCol, DayCol, MonCol); // each #rgb + if (g.theme.dark) + { + bord_col = white; + col_off = black; + } + else + { + bord_col = black; + col_off = white; + } - let pwr2 = [1, 2, 4, 8, 16, 32]; // array with powers of 2, because poweroperator '**' doesnt work - // maybe also faster + let pwr2 = [1, 2, 4, 8, 16, 32]; // array with powers of 2, because poweroperator '**' doesnt work + // maybe also faster - var no_lines = 4; // 4 rows: hour (hr), minute (min), day (day), month (mon) - var no_hour = 5; - var no_min = 6; - var no_day = 5; - var no_mon = 4; + var no_lines = 4; // 4 rows: hour (hr), minute (min), day (day), month (mon) + var no_hour = 5; + var no_min = 6; + var no_day = 5; + var no_mon = 4; - // arrays: [hr, min, day, mon] - let msbits = [no_hour-1, no_min-1, no_day-1, no_mon-1]; // MSB = No bits - 1 - let rad = [13, 13, 9, 9]; // radiuses for each row - var x_dist = 29; - let y_dist = [0, 35, 75, 100]; // y-position from y_centr for each row from top - // don't calc. automatic as for x, because of different spaces - var x_offs_rgt = 15; // offset from right border (layout) - var y_offs_cntr = 25; // vertical offset from center + // arrays: [hr, min, day, mon] + let msbits = [no_hour-1, no_min-1, no_day-1, no_mon-1]; // MSB = No bits - 1 + let rad = [13, 13, 9, 9]; // radiuses for each row + var x_dist = 29; + let y_dist = [0, 35, 75, 100]; // y-position from y_centr for each row from top + // don't calc. automatic as for x, because of different spaces + var x_offs_rgt = 15; // offset from right border (layout) + var y_offs_cntr = 25; // vertical offset from center - //////////////////////////////////////// - // compute bit-pattern from time/date and draw leds - //////////////////////////////////////// + //////////////////////////////////////// + // compute bit-pattern from time/date and draw leds + //////////////////////////////////////// - // date-time-array: 4x6 bit - //var idx_hour = 0; - //var idx_min = 1; - //var idx_day = 2; - //var idx_mon = 3; - var dt_bit_arr = [[0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0]]; + // date-time-array: 4x6 bit + //var idx_hour = 0; + //var idx_min = 1; + //var idx_day = 2; + //var idx_mon = 3; + var dt_bit_arr = [[0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0]]; - var date_time = new Date(); - var hour = date_time.getHours(); // 0..23 - var min = date_time.getMinutes(); // 0..59 - var day = date_time.getDate(); // 1..31 - var mon = date_time.getMonth() + 1; // GetMonth() -> 0..11 + var date_time = new Date(); + var hour = date_time.getHours(); // 0..23 + var min = date_time.getMinutes(); // 0..59 + var day = date_time.getDate(); // 1..31 + var mon = date_time.getMonth() + 1; // GetMonth() -> 0..11 - let dt_array = [hour, min, day, mon]; + let dt_array = [hour, min, day, mon]; - var line_cnt = 0; - var cnt = 0; - var bit_cnt = 0; + var line_cnt = 0; + var cnt = 0; + var bit_cnt = 0; - while (line_cnt < no_lines) - { - - //////////////////////////////////////// - // compute bit-pattern - bit_cnt = msbits[line_cnt]; + while (line_cnt < no_lines) + { + + //////////////////////////////////////// + // compute bit-pattern + bit_cnt = msbits[line_cnt]; - while (bit_cnt >= 0) - { - if (dt_array[line_cnt] >= pwr2[bit_cnt]) - { - dt_array[line_cnt] -= pwr2[bit_cnt]; - dt_bit_arr[line_cnt][bit_cnt] = 1; - } - else - { - dt_bit_arr[line_cnt][bit_cnt] = 0; - } - bit_cnt--; - } - - //////////////////////////////////////// - // draw leds (and border, if enabled) - cnt = 0; + while (bit_cnt >= 0) + { + if (dt_array[line_cnt] >= pwr2[bit_cnt]) + { + dt_array[line_cnt] -= pwr2[bit_cnt]; + dt_bit_arr[line_cnt][bit_cnt] = 1; + } + else + { + dt_bit_arr[line_cnt][bit_cnt] = 0; + } + bit_cnt--; + } + + //////////////////////////////////////// + // draw leds (and border, if enabled) + cnt = 0; - while (cnt <= msbits[line_cnt]) - { - if (RingOn) // draw outer ring, if enabled - { - g.setColor(bord_col); - g.drawCircle(x_rgt-x_offs_rgt-cnt*x_dist, y_cntr-y_offs_cntr+y_dist[line_cnt], rad[line_cnt]); - } - if (dt_bit_arr[line_cnt][cnt] == 1) - { - g.setColor(col[line_cnt]); - } - else - { - g.setColor(col_off); - } - g.fillCircle(x_rgt-x_offs_rgt-cnt*x_dist, y_cntr-y_offs_cntr+y_dist[line_cnt], rad[line_cnt]-1); - cnt++; - } - line_cnt++; - } + while (cnt <= msbits[line_cnt]) + { + if (RingOn) // draw outer ring, if enabled + { + g.setColor(bord_col); + g.drawCircle(x_rgt-x_offs_rgt-cnt*x_dist, y_cntr-y_offs_cntr+y_dist[line_cnt], rad[line_cnt]); + } + if (dt_bit_arr[line_cnt][cnt] == 1) + { + g.setColor(col[line_cnt]); + } + else + { + g.setColor(col_off); + } + g.fillCircle(x_rgt-x_offs_rgt-cnt*x_dist, y_cntr-y_offs_cntr+y_dist[line_cnt], rad[line_cnt]-1); + cnt++; + } + line_cnt++; + } - // queue next draw - if (drawTimeout) clearTimeout(drawTimeout); - drawTimeout = setTimeout(function() - { - drawTimeout = undefined; - draw(); - }, 60000 - (Date.now() % 60000)); - } + // queue next draw + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = setTimeout(function() + { + drawTimeout = undefined; + draw(); + }, 60000 - (Date.now() % 60000)); + } - // Init the settings of the app - loadSettings(); + // Init the settings of the app + loadSettings(); - // Show launcher when middle button pressed - Bangle.setUI( - { - mode : "clock", - remove : function() - { - // Called to unload all of the clock app - if (drawTimeout) clearTimeout(drawTimeout); - drawTimeout = undefined; - } - }); - // Load widgets - Bangle.loadWidgets(); - draw(); - setTimeout(Bangle.drawWidgets,0); + // Show launcher when middle button pressed + Bangle.setUI( + { + mode : "clock", + remove : function() + { + // Called to unload all of the clock app + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = undefined; + } + }); + // Load widgets + Bangle.loadWidgets(); + draw(); + setTimeout(Bangle.drawWidgets,0); } From 15c2ddb3c99fee0e2ee3742451d8add4b90aaed4 Mon Sep 17 00:00:00 2001 From: aemkai <87898467+aemkai@users.noreply.github.com> Date: Thu, 12 Sep 2024 18:05:31 +0200 Subject: [PATCH 303/594] Update blc.settings.js --- apps/blc/blc.settings.js | 126 +++++++++++++++++++-------------------- 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/apps/blc/blc.settings.js b/apps/blc/blc.settings.js index be10d9e89..270ece071 100644 --- a/apps/blc/blc.settings.js +++ b/apps/blc/blc.settings.js @@ -1,72 +1,72 @@ // Change settings for BinaryClk (function(back){ - - // color array -- don't change order unless change oder in BinaryClk.js - let LED_ColorNames = ["white", "red", "green", "blue", "yellow", "magenta", "cyan", "black"]; + + // color array -- don't change order unless change oder in BinaryClk.js + let LED_ColorNames = ["white", "red", "green", "blue", "yellow", "magenta", "cyan", "black"]; - var FILE = "BinaryClk.settings.json"; - // Load settings - var settings = Object.assign({ - HourCol: "red", - MinCol: "green", - DayCol: "yellow", - MonCol: "yellow", - RingOn: true, - }, require('Storage').readJSON(FILE, true) || {}); + var FILE = "BinaryClk.settings.json"; + // Load settings + var settings = Object.assign({ + HourCol: "red", + MinCol: "green", + DayCol: "yellow", + MonCol: "yellow", + RingOn: true, + }, require('Storage').readJSON(FILE, true) || {}); - function writeSettings(){ - require('Storage').writeJSON(FILE, settings); - } + function writeSettings(){ + require('Storage').writeJSON(FILE, settings); + } - // Helper method which uses int-based menu item for set of string values - function stringItems(startvalue, writer, values) { - return{ - value: (startvalue === undefined ? 0 : values.indexOf(startvalue)), - format: v => values[v], - min: 0, - max: values.length - 1, - wrap: true, - step: 1, - onchange: v => { - writer(values[v]); - writeSettings(); - } - }; - } + // Helper method which uses int-based menu item for set of string values + function stringItems(startvalue, writer, values) { + return{ + value: (startvalue === undefined ? 0 : values.indexOf(startvalue)), + format: v => values[v], + min: 0, + max: values.length - 1, + wrap: true, + step: 1, + onchange: v => { + writer(values[v]); + writeSettings(); + } + }; + } - // Helper method which breaks string set settings down to local settings object - function stringInSettings(name, values) { - return stringItems(settings[name], v => settings[name] = v, values); - } + // Helper method which breaks string set settings down to local settings object + function stringInSettings(name, values) { + return stringItems(settings[name], v => settings[name] = v, values); + } - // Show the menu - var mainmenu = { - "" : { - "title" : "BinaryCLK" - }, - "< Back" : () => back(), - 'Color Hour.:': stringInSettings("HourCol", LED_ColorNames), - 'Color Minute:': stringInSettings("MinCol", LED_ColorNames), - 'Color Day': stringInSettings("DayCol", LED_ColorNames), - 'Color Month:': stringInSettings("MonCol", LED_ColorNames), - 'LED ring on/off': { - value: (settings.RingOn !== undefined ? settings.RingOn : true), - onchange: v => { - settings.RingOn = v; - writeSettings(); - } - }, - }; - - // Show submenues - //var submenu1 = { - //"": { - // "title": "Show sub1..." - //}, - //"< Back": () => E.showMenu(mainmenu), - //"ItemName": stringInSettings("settingsVar", ["Yes", "No", "DontCare"]), - //}; - - E.showMenu(mainmenu); + // Show the menu + var mainmenu = { + "" : { + "title" : "BinaryCLK" + }, + "< Back" : () => back(), + 'Color Hour.:': stringInSettings("HourCol", LED_ColorNames), + 'Color Minute:': stringInSettings("MinCol", LED_ColorNames), + 'Color Day': stringInSettings("DayCol", LED_ColorNames), + 'Color Month:': stringInSettings("MonCol", LED_ColorNames), + 'LED ring on/off': { + value: (settings.RingOn !== undefined ? settings.RingOn : true), + onchange: v => { + settings.RingOn = v; + writeSettings(); + } + }, + }; + + // Show submenues + //var submenu1 = { + //"": { + // "title": "Show sub1..." + //}, + //"< Back": () => E.showMenu(mainmenu), + //"ItemName": stringInSettings("settingsVar", ["Yes", "No", "DontCare"]), + //}; + + E.showMenu(mainmenu); }); From b7b23b83f1adb4b26c4bd49352f6a298dfb8ce16 Mon Sep 17 00:00:00 2001 From: aemkai <87898467+aemkai@users.noreply.github.com> Date: Thu, 12 Sep 2024 18:08:26 +0200 Subject: [PATCH 304/594] Update blc.settings.js --- apps/blc/blc.settings.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/blc/blc.settings.js b/apps/blc/blc.settings.js index 270ece071..00e9c284b 100644 --- a/apps/blc/blc.settings.js +++ b/apps/blc/blc.settings.js @@ -43,7 +43,7 @@ // Show the menu var mainmenu = { "" : { - "title" : "BinaryCLK" + "title" : "BinaryCLK" }, "< Back" : () => back(), 'Color Hour.:': stringInSettings("HourCol", LED_ColorNames), From 8aa839be26dfca48c32381659d7d31e9cc5acf7d Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Tue, 10 Sep 2024 22:05:03 +0100 Subject: [PATCH 305/594] promenu: factor out `drawLine()` --- apps/promenu/bootb2.ts | 80 ++++++++++++++++++++++++------------------ 1 file changed, 45 insertions(+), 35 deletions(-) diff --git a/apps/promenu/bootb2.ts b/apps/promenu/bootb2.ts index 11ae56e1b..1b4781b6c 100644 --- a/apps/promenu/bootb2.ts +++ b/apps/promenu/bootb2.ts @@ -39,6 +39,49 @@ E.showMenu = (items?: Menu): MenuInstance => { scroll: selected, }; + const drawLine = ( + name: string, + v: string, + item: ActualMenuItem, + idx: number, + x: number, + y: number, + ) => { + const hl = (idx === selected && !selectEdit); + if(g.theme.dark){ + fillRectRnd(x, y, x2, y + fontHeight - 3, 7, hl ? g.theme.bgH : g.theme.bg + 40); + }else{ + fillRectRnd(x, y, x2, y + fontHeight - 3, 7, hl ? g.theme.bgH : g.theme.bg - 20); + } + + g.setFont12x20() + .setColor(hl ? g.theme.fgH : g.theme.fg) + .setFontAlign(-1, -1); + + const vplain = v.indexOf("\0") < 0; + if(vplain && name.length >= 17 - v.length && typeof item === "object"){ + g.drawString(name.substring(0, 12 - v.length) + "...", x + 3.7, y + 2.7); + }else if(vplain && name.length >= 15){ + g.drawString(name.substring(0, 15) + "...", x + 3.7, y + 2.7); + }else{ + g.drawString(name, x + 3.7, y + 2.7); + } + + let xo = x2; + if (selectEdit && idx === selected) { + xo -= 24 + 1; + g.setColor(g.theme.fgH) + .drawImage( + "\x0c\x05\x81\x00 \x07\x00\xF9\xF0\x0E\x00@", + xo, + y + (fontHeight - 10) / 2, + {scale:2}, + ); + } + g.setFontAlign(1, -1); + g.drawString(v, xo - 2, y + 1); + }; + const l = { draw: (rowmin?: number, rowmax?: number) => { let rows = 0|Math.min((y2 - y) / fontHeight, menuItems.length); @@ -66,17 +109,7 @@ E.showMenu = (items?: Menu): MenuInstance => { const name = menuItems[idx]; const item = items![name]! as ActualMenuItem; - const hl = (idx === selected && !selectEdit); - if(g.theme.dark){ - fillRectRnd(x, iy, x2, iy + fontHeight - 3, 7, hl ? g.theme.bgH : g.theme.bg + 40); - }else{ - fillRectRnd(x, iy, x2, iy + fontHeight - 3, 7, hl ? g.theme.bgH : g.theme.bg - 20); - } - - g.setColor(hl ? g.theme.fgH : g.theme.fg); - g.setFontAlign( - 1, -1); - - let v; + let v: string; if (typeof item === "object") { v = "format" in item ? (item.format as any)(item.value) // format(), value: T @@ -86,30 +119,7 @@ E.showMenu = (items?: Menu): MenuInstance => { v = ""; } - /*???*/{ - const vplain = v.indexOf("\0") < 0; - if(vplain && name.length >= 17 - v.length && typeof item === "object"){ - g.drawString(name.substring(0, 12 - v.length) + "...", x + 3.7, iy + 2.7); - }else if(vplain && name.length >= 15){ - g.drawString(name.substring(0, 15) + "...", x + 3.7, iy + 2.7); - }else{ - g.drawString(name, x + 3.7, iy + 2.7); - } - - let xo = x2; - if (selectEdit && idx === selected) { - xo -= 24 + 1; - g.setColor(g.theme.fgH) - .drawImage( - "\x0c\x05\x81\x00 \x07\x00\xF9\xF0\x0E\x00@", - xo, - iy + (fontHeight - 10) / 2, - {scale:2}, - ); - } - g.setFontAlign(1, -1); - g.drawString(v, xo - 2, iy + 1); - } + drawLine(name, v, item, idx, x, iy); g.setColor(g.theme.fg); iy += fontHeight; From 4061b419c61af1f8815147b61db6843e83341f27 Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Thu, 12 Sep 2024 18:22:37 +0100 Subject: [PATCH 306/594] promenu: scroll truncated menu lines --- apps/promenu/bootb2.ts | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/apps/promenu/bootb2.ts b/apps/promenu/bootb2.ts index 1b4781b6c..269bbdffa 100644 --- a/apps/promenu/bootb2.ts +++ b/apps/promenu/bootb2.ts @@ -38,6 +38,7 @@ E.showMenu = (items?: Menu): MenuInstance => { const scroller = { scroll: selected, }; + let nameScroller: IntervalId | null = null; const drawLine = ( name: string, @@ -46,6 +47,7 @@ E.showMenu = (items?: Menu): MenuInstance => { idx: number, x: number, y: number, + nameScroll: number = 0, ) => { const hl = (idx === selected && !selectEdit); if(g.theme.dark){ @@ -59,12 +61,14 @@ E.showMenu = (items?: Menu): MenuInstance => { .setFontAlign(-1, -1); const vplain = v.indexOf("\0") < 0; + let truncated = true; if(vplain && name.length >= 17 - v.length && typeof item === "object"){ - g.drawString(name.substring(0, 12 - v.length) + "...", x + 3.7, y + 2.7); + g.drawString(name.substring(nameScroll, nameScroll + 12 - v.length) + "...", x + 3.7, y + 2.7); }else if(vplain && name.length >= 15){ - g.drawString(name.substring(0, 15) + "...", x + 3.7, y + 2.7); + g.drawString(name.substring(nameScroll, nameScroll + 15) + "...", x + 3.7, y + 2.7); }else{ g.drawString(name, x + 3.7, y + 2.7); + truncated = false; } let xo = x2; @@ -80,10 +84,13 @@ E.showMenu = (items?: Menu): MenuInstance => { } g.setFontAlign(1, -1); g.drawString(v, xo - 2, y + 1); + + return truncated; }; const l = { draw: (rowmin?: number, rowmax?: number) => { + if (nameScroller) clearInterval(nameScroller), nameScroller = null; let rows = 0|Math.min((y2 - y) / fontHeight, menuItems.length); let idx = E.clip(selected - (rows>>1), 0, menuItems.length - rows); @@ -119,7 +126,22 @@ E.showMenu = (items?: Menu): MenuInstance => { v = ""; } - drawLine(name, v, item, idx, x, iy); + const truncated = drawLine(name, v, item, idx, x, iy, 0); + if (truncated && idx === selected){ + let nameScroll = 0; + nameScroller = setInterval(( + name: string, + v: string, + item: ActualMenuItem, + idx: number, + x: number, + iy: number, + ) => { + drawLine(name, v, item, idx, x, iy, nameScroll); + nameScroll += 1; + if (nameScroll >= name.length - 5) nameScroll = 0; + }, 300, name, v, item, idx, x, iy); + } g.setColor(g.theme.fg); iy += fontHeight; @@ -201,6 +223,7 @@ E.showMenu = (items?: Menu): MenuInstance => { mode: "updown", back, remove: () => { + if (nameScroller) clearInterval(nameScroller); Bangle.removeListener("swipe", onSwipe); }, } as SetUIArg<"updown">, From aa6e46898f1d605fe1394b8b6abe159ce52b3ef3 Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Thu, 12 Sep 2024 18:22:47 +0100 Subject: [PATCH 307/594] promenu: generate js --- apps/promenu/bootb2.js | 81 +++++++++++++++++++++++++++--------------- 1 file changed, 52 insertions(+), 29 deletions(-) diff --git a/apps/promenu/bootb2.js b/apps/promenu/bootb2.js index 434f0c07f..c066cae35 100644 --- a/apps/promenu/bootb2.js +++ b/apps/promenu/bootb2.js @@ -31,8 +31,45 @@ E.showMenu = function (items) { var scroller = { scroll: selected, }; + var nameScroller = null; + var drawLine = function (name, v, item, idx, x, y, nameScroll) { + if (nameScroll === void 0) { nameScroll = 0; } + var hl = (idx === selected && !selectEdit); + if (g.theme.dark) { + fillRectRnd(x, y, x2, y + fontHeight - 3, 7, hl ? g.theme.bgH : g.theme.bg + 40); + } + else { + fillRectRnd(x, y, x2, y + fontHeight - 3, 7, hl ? g.theme.bgH : g.theme.bg - 20); + } + g.setFont12x20() + .setColor(hl ? g.theme.fgH : g.theme.fg) + .setFontAlign(-1, -1); + var vplain = v.indexOf("\0") < 0; + var truncated = true; + if (vplain && name.length >= 17 - v.length && typeof item === "object") { + g.drawString(name.substring(nameScroll, nameScroll + 12 - v.length) + "...", x + 3.7, y + 2.7); + } + else if (vplain && name.length >= 15) { + g.drawString(name.substring(nameScroll, nameScroll + 15) + "...", x + 3.7, y + 2.7); + } + else { + g.drawString(name, x + 3.7, y + 2.7); + truncated = false; + } + var xo = x2; + if (selectEdit && idx === selected) { + xo -= 24 + 1; + g.setColor(g.theme.fgH) + .drawImage("\x0c\x05\x81\x00 \x07\x00\xF9\xF0\x0E\x00@", xo, y + (fontHeight - 10) / 2, { scale: 2 }); + } + g.setFontAlign(1, -1); + g.drawString(v, xo - 2, y + 1); + return truncated; + }; var l = { draw: function (rowmin, rowmax) { + if (nameScroller) + clearInterval(nameScroller), nameScroller = null; var rows = 0 | Math.min((y2 - y) / fontHeight, menuItems.length); var idx = E.clip(selected - (rows >> 1), 0, menuItems.length - rows); if (idx != lastIdx) @@ -55,18 +92,9 @@ E.showMenu = function (items) { rows = 1 + rowmax - rowmin; } } - while (rows--) { + var _loop_1 = function () { var name = menuItems[idx]; var item = items[name]; - var hl = (idx === selected && !selectEdit); - if (g.theme.dark) { - fillRectRnd(x, iy, x2, iy + fontHeight - 3, 7, hl ? g.theme.bgH : g.theme.bg + 40); - } - else { - fillRectRnd(x, iy, x2, iy + fontHeight - 3, 7, hl ? g.theme.bgH : g.theme.bg - 20); - } - g.setColor(hl ? g.theme.fgH : g.theme.fg); - g.setFontAlign(-1, -1); var v = void 0; if (typeof item === "object") { v = "format" in item @@ -78,29 +106,22 @@ E.showMenu = function (items) { else { v = ""; } - { - var vplain = v.indexOf("\0") < 0; - if (vplain && name.length >= 17 - v.length && typeof item === "object") { - g.drawString(name.substring(0, 12 - v.length) + "...", x + 3.7, iy + 2.7); - } - else if (vplain && name.length >= 15) { - g.drawString(name.substring(0, 15) + "...", x + 3.7, iy + 2.7); - } - else { - g.drawString(name, x + 3.7, iy + 2.7); - } - var xo = x2; - if (selectEdit && idx === selected) { - xo -= 24 + 1; - g.setColor(g.theme.fgH) - .drawImage("\x0c\x05\x81\x00 \x07\x00\xF9\xF0\x0E\x00@", xo, iy + (fontHeight - 10) / 2, { scale: 2 }); - } - g.setFontAlign(1, -1); - g.drawString(v, xo - 2, iy + 1); + var truncated = drawLine(name, v, item, idx, x, iy, 0); + if (truncated && idx === selected) { + var nameScroll_1 = 0; + nameScroller = setInterval(function (name, v, item, idx, x, iy) { + drawLine(name, v, item, idx, x, iy, nameScroll_1); + nameScroll_1 += 1; + if (nameScroll_1 >= name.length - 5) + nameScroll_1 = 0; + }, 300, name, v, item, idx, x, iy); } g.setColor(g.theme.fg); iy += fontHeight; idx++; + }; + while (rows--) { + _loop_1(); } g.setFontAlign(-1, -1); g.setColor((idx < menuItems.length) ? g.theme.fg : g.theme.bg).fillPoly([72, 166, 104, 166, 88, 174]); @@ -170,6 +191,8 @@ E.showMenu = function (items) { mode: "updown", back: back, remove: function () { + if (nameScroller) + clearInterval(nameScroller); Bangle.removeListener("swipe", onSwipe); }, }, function (dir) { From c35dbf0a52d5977f411916f12af7052974c6bc2d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 Sep 2024 00:26:43 +0000 Subject: [PATCH 308/594] build(deps): bump webtools from `c594022` to `dcede45` Bumps [webtools](https://github.com/espruino/EspruinoWebTools) from `c594022` to `dcede45`. - [Commits](https://github.com/espruino/EspruinoWebTools/compare/c59402259c779b578e68995ea0237b813fab09c0...dcede4522c6d8236531f070fb53dfcd5f0f7d223) --- updated-dependencies: - dependency-name: webtools dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- webtools | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webtools b/webtools index c59402259..dcede4522 160000 --- a/webtools +++ b/webtools @@ -1 +1 @@ -Subproject commit c59402259c779b578e68995ea0237b813fab09c0 +Subproject commit dcede4522c6d8236531f070fb53dfcd5f0f7d223 From 27450db7a6f72c19e572afc34cc37f5b44ceca52 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Fri, 13 Sep 2024 09:05:53 +0100 Subject: [PATCH 309/594] Merge pull request #3572 from Guptilious/master --- apps/tvremote/README.md | 9 +++++++++ apps/tvremote/app.js | 8 ++++++++ 2 files changed, 17 insertions(+) diff --git a/apps/tvremote/README.md b/apps/tvremote/README.md index 77ee3681f..1d33c2a10 100644 --- a/apps/tvremote/README.md +++ b/apps/tvremote/README.md @@ -60,3 +60,12 @@ Vol Commands * Swipe Up - Play/Pause Back Button - Should take you back to the previous menu screen. + +# Requests +If you have any issues or suggestions for improvements, please feel free to message [me](https://github.com/Guptilious). + + + + +# Creator +[Guptilious](https://github.com/Guptilious) diff --git a/apps/tvremote/app.js b/apps/tvremote/app.js index 55d9fe9ad..ffb54dd7a 100644 --- a/apps/tvremote/app.js +++ b/apps/tvremote/app.js @@ -1,3 +1,11 @@ +/****************************************************************** +* Creator Guptilious (https://github.com/Guptilious) +* Future Features: +* Samsung TV Support +* customiser page so config can be created prior to install. +* +*****************************************************************/ + require("Font7x11Numeric7Seg").add(Graphics); let deviceFileName = "tvdevicelist.json"; From 001783fcb7c902ed0bffd1acd94c584ad917b36b Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Fri, 13 Sep 2024 09:07:19 +0100 Subject: [PATCH 310/594] fix recent change for file backup --- backup.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backup.js b/backup.js index 2475c8002..cc4c327bc 100644 --- a/backup.js +++ b/backup.js @@ -55,7 +55,7 @@ function bangleDownload() { showToast('Backup complete!', 'success'); if (typeof Android !== "undefined" && typeof Android.saveFile === 'function') { // Recent Gadgetbridge version that provides the saveFile interface - Android.saveFile("Banglejs backup.zip", "application/zip", content); + Android.saveFile("Banglejs backup.zip", "application/zip", btoa(content)); } else { Espruino.Core.Utils.fileSaveDialog(content, "Banglejs backup.zip"); } From a6bf39620e4540b2615b1d670cf3502f93242540 Mon Sep 17 00:00:00 2001 From: Flaparoo <629229+flaparoo@users.noreply.github.com> Date: Fri, 13 Sep 2024 20:50:07 +0800 Subject: [PATCH 311/594] hadash: banish evil eval --- apps/hadash/hadash.app.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/hadash/hadash.app.js b/apps/hadash/hadash.app.js index d4ebf47a6..e34b5283b 100644 --- a/apps/hadash/hadash.app.js +++ b/apps/hadash/hadash.app.js @@ -114,8 +114,8 @@ function getServiceInputData(entry, level) { if (idx == -1) { idx = entry.input[key].options.push(entry.input[key].value) - 1; } - // the setTimeout method can not be used for the "format" CB since it expects a return value - using eval instead: - eval('CBs["'+key+'_format"] = function(v) { return entry.input["'+key+'"].options[v]; }'); + // the setTimeout method can not be used for the "format" CB since it expects a return value: + CBs[`${key}_format`] = ((key) => function(v) { return entry.input[key].options[v]; })(key); serviceInputMenu[label] = { value: parseInt(idx), min: 0, From 0e53f127a101f4f873cbcec835c872fe7f8628df Mon Sep 17 00:00:00 2001 From: Anton Date: Sat, 14 Sep 2024 22:01:43 +0200 Subject: [PATCH 312/594] Improve sanity check for locales --- .eslintrc.js | 1 + apps/locale/locale.html | 72 +++++++----- apps/locale/locales.js | 2 +- apps/locale/sanitycheck.js | 233 +++++++++++++++++++++++++++++++++++++ bin/sanitycheck.js | 108 ++++++++++++++--- 5 files changed, 373 insertions(+), 43 deletions(-) create mode 100644 apps/locale/sanitycheck.js diff --git a/.eslintrc.js b/.eslintrc.js index e79f87a5d..b7590a77e 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -112,6 +112,7 @@ module.exports = { "getSerial": "readonly", "getTime": "readonly", "global": "readonly", + "globalThis": "readonly", "HIGH": "readonly", "I2C1": "readonly", "Infinity": "readonly", diff --git a/apps/locale/locale.html b/apps/locale/locale.html index 71bfecea9..5b370d735 100644 --- a/apps/locale/locale.html +++ b/apps/locale/locale.html @@ -21,15 +21,17 @@

-

+

+

Then click

+ - + @@ -416,7 +420,7 @@ if (el) el.addEventListener("click", event=>{ if (webrtc) showWebRTCID(webrtc.peerId); else { webrtc = webrtcInit({ - bridge:true, + bridge:true, onStatus : function(s) { showToast(s); }, @@ -432,7 +436,7 @@ if (el) el.addEventListener("click", event=>{ onPortDisconnect : function(serialPort) { }, onPortWrite : function(data, cb) { - Puck.write(data, cb); + Puck.write(data, cb); } }); connection.on("data", function(d) { diff --git a/core b/core index 8f4b43bab..7e5ac0271 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 8f4b43bab57ddc482533b1a00bb03601dc7ead79 +Subproject commit 7e5ac0271f794bcacda3a5a692cfa479457eb4dd diff --git a/css/main.css b/css/main.css index ce27a0eb7..be1040d84 100644 --- a/css/main.css +++ b/css/main.css @@ -81,8 +81,8 @@ a.btn.btn-link.dropdown-toggle { min-height: 8em; } -.tile-content { - position: relative; +.tile-content { + position: relative; overflow-wrap: anywhere; /* stop long text like links pushing the width out too far*/ } .link-github { @@ -141,3 +141,64 @@ Not sure how to get 'normal' wrap behaviour (eg fill up until max-width, then wr white-space: normal; min-width: 160px; }*/ + +/* Terminal */ +/* ----------------------------------------------------- */ +.terminal +{ + font-size: 12px; + background-color: #222; + color: white; + display: block; + border: 0; + padding: 10px; + overflow: auto; /* adds scrollbar if needed */ + + position: absolute; + left: 0px; + top: 0px; + bottom: 0px; + right: 0px; + + -o-user-select: text; + -moz-user-select: text; + -webkit-user-select: text; + user-select: text; +} + +.termLine { + font-family: Fixed, monospace; + tab-size: 4; + min-height: 1em; +} + +.terminal.focus +{ + background-color: #333; +} + +.terminal__focus +{ + position: absolute; + top: -100px; /* hide it */ +} + +.terminal a +{ + color:#88F; +} +.terminal a:visited +{ + color:#88F; +} + +.terminal--connected.focus .terminal__cursor +{ + animation: blink 1s step-end 0s infinite; +} + +.terminal--webcam.focus .terminal__cursor +{ + text-shadow: none; + animation: blink_webcam 1s step-end 0s infinite; +} \ No newline at end of file diff --git a/index.html b/index.html index c8c34db66..608c90f91 100644 --- a/index.html +++ b/index.html @@ -190,14 +190,18 @@

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