From bc6c70928f0b6da043193edca0ae8068f183171e Mon Sep 17 00:00:00 2001 From: Pax1601 Date: Thu, 8 Feb 2024 22:37:28 +0100 Subject: [PATCH] Updated plugin scripts to new structure Fixed copy scripts for plugins --- .../plugins/databasemanager/plugin.json | 6 +- frontend/server/scripts/build-release.bat | 2 + .../website/plugins/_boilerplate/copy.bat | 15 +- frontend/website/plugins/controltips/copy.bat | 10 +- .../website/plugins/databasemanager/copy.bat | 10 +- .../plugins/databasemanager/plugin.json | 6 +- .../public/plugins/controltipsplugin/index.js | 377 ------------------ .../plugins/controltipsplugin/plugin.json | 6 - .../plugins/controltipsplugin/style.css | 33 -- .../public/plugins/databasemanager/index.js | 1 - .../plugins/databasemanager/plugin.json | 6 - .../public/plugins/databasemanager/style.css | 295 -------------- 12 files changed, 29 insertions(+), 738 deletions(-) delete mode 100644 frontend/website/public/plugins/controltipsplugin/index.js delete mode 100644 frontend/website/public/plugins/controltipsplugin/plugin.json delete mode 100644 frontend/website/public/plugins/controltipsplugin/style.css delete mode 100644 frontend/website/public/plugins/databasemanager/index.js delete mode 100644 frontend/website/public/plugins/databasemanager/plugin.json delete mode 100644 frontend/website/public/plugins/databasemanager/style.css diff --git a/frontend/server/public/plugins/databasemanager/plugin.json b/frontend/server/public/plugins/databasemanager/plugin.json index 77a1f817..357d8f13 100644 --- a/frontend/server/public/plugins/databasemanager/plugin.json +++ b/frontend/server/public/plugins/databasemanager/plugin.json @@ -1,6 +1,6 @@ { - "name": "Control Tip Plugin", + "name": "Database Manager", "version": "0.0.1", - "description": "This plugin shows useful control tips on the right side of the screen. The tips change dynamically depending on what the user does", - "author": "Peekaboo" + "description": "This plugin allows to edit the unit databases", + "author": "DCSOlympus team" } \ No newline at end of file diff --git a/frontend/server/scripts/build-release.bat b/frontend/server/scripts/build-release.bat index 65273738..20268668 100644 --- a/frontend/server/scripts/build-release.bat +++ b/frontend/server/scripts/build-release.bat @@ -1,3 +1,5 @@ +call ./scripts/copy.bat + echo D|xcopy /Y /S /E .\bin ..\..\build\frontend\bin echo D|xcopy /Y /S /E .\public ..\..\build\frontend\public echo D|xcopy /Y /S /E .\routes ..\..\build\frontend\routes diff --git a/frontend/website/plugins/_boilerplate/copy.bat b/frontend/website/plugins/_boilerplate/copy.bat index 73b65b51..be0fc21e 100644 --- a/frontend/website/plugins/_boilerplate/copy.bat +++ b/frontend/website/plugins/_boilerplate/copy.bat @@ -1,8 +1,11 @@ -mkdir .\\..\\DCSOlympus\\client\\public\\plugins\\boilerplateplugin +set plugin-name=boilerplateplugin -copy .\\index.js .\\..\\DCSOlympus\\client\\public\\plugins\\boilerplateplugin\\index.js -copy .\\plugin.json .\\..\\DCSOlympus\\client\\public\\plugins\\boilerplateplugin\\plugin.json -copy .\\style.css .\\..\\DCSOlympus\\client\\public\\plugins\\boilerplateplugin\\style.css +mkdir .\\..\\..\\..\\server\\public\\plugins\\%plugin-name% -mkdir .\\..\\DCSOlympus\\client\\public\\plugins\\boilerplateplugin\\images -copy .\\images\\*.* .\\..\\DCSOlympus\\client\\public\\plugins\\boilerplateplugin\\images\\ \ No newline at end of file +copy .\\index.js .\\..\\..\\..\\server\\public\\plugins\\%plugin-name%\\index.js +copy .\\plugin.json .\\..\\..\\..\\server\\public\\plugins\\%plugin-name%\\plugin.json +copy .\\style.css .\\..\\..\\..\\server\\public\\plugins\\%plugin-name%\\style.css + + +mkdir .\\..\\..\\..\\server\\public\\plugins\\%plugin-name%\\images +copy .\\images\\*.* .\\..\\..\\..\\server\\public\\plugins\\%plugin-name%\\images\\ \ No newline at end of file diff --git a/frontend/website/plugins/controltips/copy.bat b/frontend/website/plugins/controltips/copy.bat index e0a9d89d..867598a7 100644 --- a/frontend/website/plugins/controltips/copy.bat +++ b/frontend/website/plugins/controltips/copy.bat @@ -1,5 +1,7 @@ -mkdir .\\..\\..\\public\\plugins\\controltipsplugin +set plugin-name=controltipsplugin -copy .\\index.js .\\..\\..\\public\\plugins\\controltipsplugin\\index.js -copy .\\plugin.json .\\..\\..\\public\\plugins\\controltipsplugin\\plugin.json -copy .\\style.css .\\..\\..\\public\\plugins\\controltipsplugin\\style.css \ No newline at end of file +mkdir .\\..\\..\\..\\server\\public\\plugins\\%plugin-name% + +copy .\\index.js .\\..\\..\\..\\server\\public\\plugins\\%plugin-name%\\index.js +copy .\\plugin.json .\\..\\..\\..\\server\\public\\plugins\\%plugin-name%\\plugin.json +copy .\\style.css .\\..\\..\\..\\server\\public\\plugins\\%plugin-name%\\style.css \ No newline at end of file diff --git a/frontend/website/plugins/databasemanager/copy.bat b/frontend/website/plugins/databasemanager/copy.bat index 34127e37..56bc3cea 100644 --- a/frontend/website/plugins/databasemanager/copy.bat +++ b/frontend/website/plugins/databasemanager/copy.bat @@ -1,5 +1,7 @@ -mkdir .\\..\\..\\public\\plugins\\databasemanager +set plugin-name=databasemanager -copy .\\index.js .\\..\\..\\public\\plugins\\databasemanager\\index.js -copy .\\plugin.json .\\..\\..\\public\\plugins\\databasemanager\\plugin.json -copy .\\style.css .\\..\\..\\public\\plugins\\databasemanager\\style.css \ No newline at end of file +mkdir .\\..\\..\\..\\server\\public\\plugins\\%plugin-name% + +copy .\\index.js .\\..\\..\\..\\server\\public\\plugins\\%plugin-name%\\index.js +copy .\\plugin.json .\\..\\..\\..\\server\\public\\plugins\\%plugin-name%\\plugin.json +copy .\\style.css .\\..\\..\\..\\server\\public\\plugins\\%plugin-name%\\style.css \ No newline at end of file diff --git a/frontend/website/plugins/databasemanager/plugin.json b/frontend/website/plugins/databasemanager/plugin.json index 77a1f817..357d8f13 100644 --- a/frontend/website/plugins/databasemanager/plugin.json +++ b/frontend/website/plugins/databasemanager/plugin.json @@ -1,6 +1,6 @@ { - "name": "Control Tip Plugin", + "name": "Database Manager", "version": "0.0.1", - "description": "This plugin shows useful control tips on the right side of the screen. The tips change dynamically depending on what the user does", - "author": "Peekaboo" + "description": "This plugin allows to edit the unit databases", + "author": "DCSOlympus team" } \ No newline at end of file diff --git a/frontend/website/public/plugins/controltipsplugin/index.js b/frontend/website/public/plugins/controltipsplugin/index.js deleted file mode 100644 index 4f81738b..00000000 --- a/frontend/website/public/plugins/controltipsplugin/index.js +++ /dev/null @@ -1,377 +0,0 @@ -(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i { - __classPrivateFieldGet(this, _ControlTipsPlugin_instances, "m", _ControlTipsPlugin_updateTips).call(this); - }); - __classPrivateFieldGet(this, _ControlTipsPlugin_shortcutManager, "f").onKeyUp(() => { - __classPrivateFieldGet(this, _ControlTipsPlugin_instances, "m", _ControlTipsPlugin_updateTips).call(this); - }); - document.addEventListener("airbaseMouseover", (ev) => { - __classPrivateFieldSet(this, _ControlTipsPlugin_cursorIsHoveringOverAirbase, true, "f"); - __classPrivateFieldGet(this, _ControlTipsPlugin_instances, "m", _ControlTipsPlugin_updateTips).call(this); - }); - document.addEventListener("airbaseMouseout", (ev) => { - __classPrivateFieldSet(this, _ControlTipsPlugin_cursorIsHoveringOverAirbase, false, "f"); - __classPrivateFieldGet(this, _ControlTipsPlugin_instances, "m", _ControlTipsPlugin_updateTips).call(this); - }); - document.addEventListener("unitDeselection", (ev) => { - __classPrivateFieldGet(this, _ControlTipsPlugin_instances, "m", _ControlTipsPlugin_updateTips).call(this); - }); - document.addEventListener("unitMouseover", (ev) => { - __classPrivateFieldSet(this, _ControlTipsPlugin_cursorIsHoveringOverUnit, true, "f"); - __classPrivateFieldGet(this, _ControlTipsPlugin_instances, "m", _ControlTipsPlugin_updateTips).call(this); - }); - document.addEventListener("unitMouseout", (ev) => { - __classPrivateFieldSet(this, _ControlTipsPlugin_cursorIsHoveringOverUnit, false, "f"); - __classPrivateFieldGet(this, _ControlTipsPlugin_instances, "m", _ControlTipsPlugin_updateTips).call(this); - }); - document.addEventListener("unitsSelection", (ev) => { - __classPrivateFieldGet(this, _ControlTipsPlugin_instances, "m", _ControlTipsPlugin_updateTips).call(this); - }); - document.addEventListener("mapOptionsChanged", () => { - this.toggle(!__classPrivateFieldGet(this, _ControlTipsPlugin_app, "f").getMap().getVisibilityOptions()[SHOW_CONTROL_TIPS]); - }); - document.addEventListener("mouseover", (ev) => { - if (ev.target instanceof HTMLElement) { - __classPrivateFieldSet(this, _ControlTipsPlugin_mouseoverElement, ev.target, "f"); - } - __classPrivateFieldGet(this, _ControlTipsPlugin_instances, "m", _ControlTipsPlugin_updateTips).call(this); - }); - document.addEventListener("mouseup", (ev) => { - __classPrivateFieldGet(this, _ControlTipsPlugin_instances, "m", _ControlTipsPlugin_updateTips).call(this); - }); - __classPrivateFieldGet(this, _ControlTipsPlugin_instances, "m", _ControlTipsPlugin_updateTips).call(this); - __classPrivateFieldGet(this, _ControlTipsPlugin_app, "f").getMap().addVisibilityOption(SHOW_CONTROL_TIPS, true); - return true; - } - getElement() { - return __classPrivateFieldGet(this, _ControlTipsPlugin_element, "f"); - } - toggle(bool) { - this.getElement().classList.toggle("hide", bool); - } -} -exports.ControlTipsPlugin = ControlTipsPlugin; -_ControlTipsPlugin_element = new WeakMap(), _ControlTipsPlugin_app = new WeakMap(), _ControlTipsPlugin_shortcutManager = new WeakMap(), _ControlTipsPlugin_cursorIsHoveringOverUnit = new WeakMap(), _ControlTipsPlugin_cursorIsHoveringOverAirbase = new WeakMap(), _ControlTipsPlugin_mouseoverElement = new WeakMap(), _ControlTipsPlugin_instances = new WeakSet(), _ControlTipsPlugin_updateTips = function _ControlTipsPlugin_updateTips() { - const combos = [ - { - "keys": [], - "tips": [ - { - "key": `SHIFT`, - "action": `Box select`, - "showIfHoveringOverAirbase": false, - "showIfHoveringOverUnit": false, - "showIfUnitSelected": false - }, - { - "key": `Mouse1`, - "action": `Deselect`, - "showIfUnitSelected": true - }, - { - "key": `Mouse1+drag`, - "action": `Move map`, - "showIfHoveringOverAirbase": false, - "showIfHoveringOverUnit": false, - "showIfUnitSelected": false - }, - { - "key": `Mouse2`, - "action": `Spawn menu`, - "showIfUnitSelected": false, - "showIfHoveringOverAirbase": false, - "showIfHoveringOverUnit": false - }, - { - "key": `Mouse2`, - "action": `Airbase menu`, - "showIfUnitSelected": false, - "showIfHoveringOverAirbase": true, - "showIfHoveringOverUnit": false - }, - { - "key": `Mouse2`, - "action": `Set first waypoint`, - "showIfHoveringOverAirbase": false, - "showIfUnitSelected": true, - "unitsMustBeControlled": true - }, - { - "key": `Mouse2 (hold)`, - "action": `Interact (ground)`, - "showIfUnitSelected": true, - "showIfHoveringOverAirbase": false, - "showIfHoveringOverUnit": false, - "unitsMustBeControlled": true - }, - { - "key": `Shift`, - "action": " in formation...", - "showIfUnitSelected": true, - "minSelectedUnits": 2 - }, - { - "key": "CTRL", - "action": " ... more", - "showIfUnitSelected": true, - "showIfHoveringOverAirbase": false, - "unitsMustBeControlled": true - }, - { - "key": "CTRL", - "action": " Pin tool", - "showIfUnitSelected": false, - "showIfHoveringOverAirbase": false, - "showIfHoveringOverUnit": false, - "unitsMustBeControlled": true - }, - { - "key": "CTRL+Mouse2", - "action": " Airbase menu", - "showIfUnitSelected": true, - "showIfHoveringOverAirbase": true, - "unitsMustBeControlled": true - }, - { - "key": `Mouse1`, - "action": "Toggle Blue/Red", - "mouseoverSelector": "#coalition-switch .ol-switch-fill" - }, - { - "key": `Mouse2`, - "action": "Set Neutral", - "mouseoverSelector": "#coalition-switch .ol-switch-fill" - }, - { - "key": `Mouse1`, - "action": "Toggle time display", - "mouseoverSelector": "#connection-status-panel[data-is-connected] #connection-status-message abbr" - }, - { - "key": `Mouse1 or Z`, - "action": "Change location system", - "mouseoverSelector": "#coordinates-tool, #coordinates-tool *" - }, - { - "key": `Comma`, - "action": "Decrease precision", - "mouseoverSelector": `#coordinates-tool[data-location-system="MGRS"], #coordinates-tool[data-location-system="MGRS"] *` - }, - { - "key": `Period`, - "action": "Increase precision", - "mouseoverSelector": `#coordinates-tool[data-location-system="MGRS"], #coordinates-tool[data-location-system="MGRS"] *` - } - ] - }, - { - "keys": ["ControlLeft"], - "tips": [ - { - "key": `Mouse1`, - "action": "Toggle pin", - "showIfUnitSelected": false, - "showIfHoveringOverAirbase": false, - "showIfHoveringOverUnit": false - }, - { - "key": `Mouse1`, - "action": "Toggle selection", - "showIfUnitSelected": true, - "showIfHoveringOverAirbase": false, - "showIfHoveringOverUnit": true - }, - { - "key": `Mouse2`, - "action": `Add waypoint`, - "showIfHoveringOverAirbase": false, - "showIfHoveringOverUnit": false, - "showIfUnitSelected": true, - "unitsMustBeControlled": true - }, - { - "key": `Mouse2`, - "action": `Interact (airbase)`, - "showIfHoveringOverAirbase": true, - "showIfUnitSelected": true, - "unitsMustBeControlled": true - }, - { - "key": `Mouse2`, - "action": `Interact (unit)`, - "showIfHoveringOverAirbase": false, - "showIfHoveringOverUnit": true, - "showIfUnitSelected": true, - "unitsMustBeControlled": true - }, - { - "key": `Shift`, - "action": " in formation...", - "showIfUnitSelected": true, - "minSelectedUnits": 2 - }, - { - "key": `[Num 1-9]`, - "action": "Set hotgroup", - "showIfUnitSelected": true - } - ] - }, - { - "keys": ["ShiftLeft"], - "tips": [ - { - "key": `Mouse1+drag`, - "action": "Box select", - "showIfUnitSelected": false - }, - { - "key": `Mouse2`, - "action": "Set first formation waypoint", - "showIfUnitSelected": true, - "minSelectedUnits": 2 - }, - { - "key": `[Num 1-9]`, - "action": "Add to hotgroup", - "showIfUnitSelected": true - }, - { - "key": "CTRL", - "action": " ... more", - "minSelectedUnits": 2, - "showIfUnitSelected": true, - "showIfHoveringOverAirbase": false, - "unitsMustBeControlled": true - } - ] - }, - { - "keys": ["ControlLeft", "ShiftLeft"], - "tips": [ - { - "key": `Mouse2`, - "action": "Add formation waypoint", - "showIfUnitSelected": true, - "minSelectedUnits": 2, - "unitsMustBeControlled": true - }, { - "key": `[Num 1-9]`, - "action": "Add hotgroup to selection", - "callback": (tip) => { - return (Object.values(__classPrivateFieldGet(this, _ControlTipsPlugin_app, "f").getUnitsManager().getUnits()).some((unit) => { - return unit.getAlive() && unit.getControlled() && unit.getHotgroup(); - })); - }, - "showIfUnitSelected": true, - "minSelectedUnits": 1 - } - ] - } - ]; - const currentCombo = combos.find((combo) => __classPrivateFieldGet(this, _ControlTipsPlugin_shortcutManager, "f").keyComboMatches(combo.keys)) || combos[0]; - const element = this.getElement(); - element.innerHTML = ""; - let numSelectedUnits = 0; - let numSelectedControlledUnits = 0; - let unitSelectionContainsControlled = false; - if (__classPrivateFieldGet(this, _ControlTipsPlugin_app, "f").getUnitsManager()) { - let selectedUnits = Object.values(__classPrivateFieldGet(this, _ControlTipsPlugin_app, "f").getUnitsManager().getSelectedUnits()); - numSelectedUnits = selectedUnits.length; - numSelectedControlledUnits = selectedUnits.filter((unit) => unit.getControlled()).length; - unitSelectionContainsControlled = numSelectedControlledUnits > 0; - } - const tipsIncludesActiveMouseover = (currentCombo.tips.some((tip) => { - if (!tip.mouseoverSelector) { - return false; - } - if (__classPrivateFieldGet(this, _ControlTipsPlugin_mouseoverElement, "f") instanceof HTMLElement === false) { - return false; - } - if (!__classPrivateFieldGet(this, _ControlTipsPlugin_mouseoverElement, "f").matches(tip.mouseoverSelector)) { - return false; - } - return true; - })); - currentCombo.tips.filter((tip) => { - if (numSelectedUnits > 0) { - if (tip.showIfUnitSelected === false) { - return false; - } - if (tip.unitsMustBeControlled === true && unitSelectionContainsControlled === false) { - return false; - } - if (typeof tip.minSelectedUnits === "number" && numSelectedControlledUnits < tip.minSelectedUnits) { - return false; - } - } - if (numSelectedUnits === 0 && tip.showIfUnitSelected === true) { - return false; - } - if (typeof tip.showIfHoveringOverAirbase === "boolean") { - if (tip.showIfHoveringOverAirbase !== __classPrivateFieldGet(this, _ControlTipsPlugin_cursorIsHoveringOverAirbase, "f")) { - return false; - } - } - if (typeof tip.showIfHoveringOverUnit === "boolean") { - if (tip.showIfHoveringOverUnit !== __classPrivateFieldGet(this, _ControlTipsPlugin_cursorIsHoveringOverUnit, "f")) { - return false; - } - } - if (tipsIncludesActiveMouseover && (typeof tip.mouseoverSelector !== "string" || !__classPrivateFieldGet(this, _ControlTipsPlugin_mouseoverElement, "f").matches(tip.mouseoverSelector))) { - return false; - } - if (!tipsIncludesActiveMouseover && typeof tip.mouseoverSelector === "string") { - return false; - } - if (typeof tip.callback === "function" && !tip.callback(tip)) { - return false; - } - element.innerHTML += `
${tip.key}${tip.action}
`; - }); -}; - -},{}],2:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const controltipsplugin_1 = require("./controltipsplugin"); -globalThis.getOlympusPlugin = () => { - return new controltipsplugin_1.ControlTipsPlugin(); -}; - -},{"./controltipsplugin":1}]},{},[2]); diff --git a/frontend/website/public/plugins/controltipsplugin/plugin.json b/frontend/website/public/plugins/controltipsplugin/plugin.json deleted file mode 100644 index 77a1f817..00000000 --- a/frontend/website/public/plugins/controltipsplugin/plugin.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "Control Tip Plugin", - "version": "0.0.1", - "description": "This plugin shows useful control tips on the right side of the screen. The tips change dynamically depending on what the user does", - "author": "Peekaboo" -} \ No newline at end of file diff --git a/frontend/website/public/plugins/controltipsplugin/style.css b/frontend/website/public/plugins/controltipsplugin/style.css deleted file mode 100644 index 0ab48856..00000000 --- a/frontend/website/public/plugins/controltipsplugin/style.css +++ /dev/null @@ -1,33 +0,0 @@ -#control-tips-panel { - align-self: center; - display: flex; - flex-flow: column wrap; - font-size: 13px; - justify-self: flex-end; - position: absolute; - right: 10px; - row-gap: 20px; - text-align: right; - z-index: 999; -} - -#control-tips-panel>* { - align-items: center; - align-self: end; - background-color: var(--background-steel); - border-radius: var(--border-radius-md); - color: white; - column-gap: 8px; - display: flex; - justify-items: right; - opacity: .9; - padding: 5px; - width: fit-content; -} - -#control-tips-panel>*>.key { - background-color: var(--background-grey); - border-radius: var(--border-radius-sm); - color: white; - padding: 1px 4px; -} \ No newline at end of file diff --git a/frontend/website/public/plugins/databasemanager/index.js b/frontend/website/public/plugins/databasemanager/index.js deleted file mode 100644 index 9305ff01..00000000 --- a/frontend/website/public/plugins/databasemanager/index.js +++ /dev/null @@ -1 +0,0 @@ -!function(){var _$utils_8={};function addStringInput(a,t,e,i,n,s){var _=document.createElement("div"),l=document.createElement("dt"),r=document.createElement("dd");l.innerText=t;var o=document.createElement("input");o.value=e,o.textContent=e,o.type=null!=i?i:"text",o.disabled=null!=s&&s,o.onchange=()=>n(o.value),r.appendChild(o),_.appendChild(l),_.appendChild(r),_.classList.add("input-row"),a.appendChild(_)}function addDropdownInput(a,t,e,i,n,s){var _=document.createElement("div"),l=document.createElement("dt"),r=document.createElement("dd");l.innerText=t;var o=document.createElement("select");i.forEach(a=>{var t=document.createElement("option");t.value=a,t.innerText=a,o.appendChild(t)}),o.value=e,o.disabled=null!=s&&s,o.onchange=()=>n(o.value),r.appendChild(o),_.appendChild(l),_.appendChild(r),_.classList.add("input-row"),a.appendChild(_)}function addCheckboxInput(a,t,e,i,n){var s=document.createElement("div"),_=document.createElement("dt"),l=document.createElement("dd");_.innerText=t;var r=document.createElement("input");r.checked=e,r.type="checkbox",r.disabled=null!=n&&n,r.onchange=()=>i(r.checked),l.appendChild(r),s.appendChild(_),s.appendChild(l),s.classList.add("input-row"),a.appendChild(s)}function addLoadoutItemsEditor(a,t){var e=document.createElement("div");e.classList.add("dm-scroll-container","dm-items-container"),t.items.sort((a,t)=>a.name.localeCompare(t.name,void 0,{sensitivity:"base"})),t.items.forEach((i,n)=>{var s=document.createElement("div"),_=document.createElement("label");_.innerText="Name",s.appendChild(_);var l=document.createElement("input");s.appendChild(l),l.textContent=i.name,l.value=i.name,l.onchange=()=>{t.items[n].name=l.value};var r=document.createElement("label");r.innerText="Quantity",s.appendChild(r);var o=document.createElement("input");s.appendChild(o),o.textContent=String(i.quantity),o.value=String(i.quantity),o.type="number",o.step="1",o.onchange=()=>{t.items[n].quantity=parseInt(o.value)};var d=document.createElement("button");d.innerText="X",d.onclick=()=>{t.items.splice(n,1),a.dispatchEvent(new Event("refresh"))},s.appendChild(d),e.appendChild(s)}),a.appendChild(e);var i=document.createElement("div");i.classList.add("dm-new-item-input");var n=document.createElement("button");n.innerText="Add",i.appendChild(n),a.appendChild(i),n.addEventListener("click",e=>{null==t||t.items.push({name:"",quantity:1}),a.dispatchEvent(new Event("refresh"))})}function addNewElementInput(a,t){var e=document.createElement("div");e.classList.add("dm-new-element-input");var i=document.createElement("input");e.appendChild(i);var n=document.createElement("button");n.innerText="Add",n.addEventListener("click",a=>t(a,i)),e.appendChild(n),a.appendChild(e)}function addBlueprintsScroll(div,database,filter,callback){var scrollDiv=document.createElement("div");if(scrollDiv.classList.add("dm-scroll-container"),null!==database){var blueprints=database.blueprints;for(let key of Object.keys(blueprints).sort((a,t)=>a.localeCompare(t,void 0,{sensitivity:"base"}))){var addKey=!0;if(""!==filter)try{var blueprint=blueprints[key];addKey=eval(filter)}catch(_a){console.error("An error has occurred evaluating the blueprint filter")}if(addKey){var rowDiv=document.createElement("div");scrollDiv.appendChild(rowDiv);let a=document.createElement("div");a.innerHTML=`
${key}
${blueprints[key].label}
`,a.onclick=()=>{callback(key);const t=document.getElementsByClassName("blueprint-selected");for(let a=0;a{console.log(t.checked),blueprints[key].enabled=t.checked},rowDiv.appendChild(t);var button=document.createElement("button");button.innerText="X",button.onclick=()=>{delete blueprints[key],div.dispatchEvent(new Event("refresh"))},rowDiv.appendChild(button)}}}div.appendChild(scrollDiv)}function addLoadoutsScroll(a,t,e){var i=document.createElement("div");i.classList.add("dm-scroll-container","dm-loadout-container"),t.sort((a,t)=>a.name.localeCompare(t.name,void 0,{sensitivity:"base"})),t.forEach((n,s)=>{var _=document.createElement("div");i.appendChild(_);var l=document.createElement("label");if(l.textContent=n.name,l.onclick=()=>{e(n)},_.appendChild(l),"Empty loadout"!==n.name){let e=document.createElement("input");e.type="checkbox",e.checked=n.enabled,e.onclick=()=>{console.log(e.checked),n.enabled=e.checked},_.appendChild(e);var r=document.createElement("button");r.innerText="X",r.onclick=()=>{t.splice(s,1),a.dispatchEvent(new Event("refresh"))},_.appendChild(r)}}),a.appendChild(i)}function arrayToString(a){return"["+a.join(", ")+"]"}function stringToArray(a){var t;return null!==(t=a.match(/(\w)+/g))&&void 0!==t?t:[]}Object.defineProperty(_$utils_8,"__esModule",{value:!0}),_$utils_8.stringToArray=_$utils_8.arrayToString=_$utils_8.addLoadoutsScroll=_$utils_8.addBlueprintsScroll=_$utils_8.addNewElementInput=_$utils_8.addLoadoutItemsEditor=_$utils_8.addCheckboxInput=_$utils_8.addDropdownInput=_$utils_8.addStringInput=void 0,_$utils_8.addStringInput=addStringInput,_$utils_8.addDropdownInput=addDropdownInput,_$utils_8.addCheckboxInput=addCheckboxInput,_$utils_8.addLoadoutItemsEditor=addLoadoutItemsEditor,_$utils_8.addNewElementInput=addNewElementInput,_$utils_8.addBlueprintsScroll=addBlueprintsScroll,_$utils_8.addLoadoutsScroll=addLoadoutsScroll,_$utils_8.arrayToString=arrayToString,_$utils_8.stringToArray=stringToArray;var _$uniteditor_7={};Object.defineProperty(_$uniteditor_7,"__esModule",{value:!0}),_$uniteditor_7.UnitEditor=void 0,_$uniteditor_7.UnitEditor=class{constructor(a,t,e){this.blueprint=null,this.database=null,this.visible=!1,this.contentDiv1=a,this.contentDiv2=t,this.contentDiv3=e,this.contentDiv1.addEventListener("refresh",()=>{this.visible&&this.show()}),this.contentDiv2.addEventListener("refresh",()=>{this.visible&&null!==this.blueprint&&this.setBlueprint(this.blueprint)}),this.contentDiv3.addEventListener("refresh",()=>{this.visible&&null!==this.blueprint&&this.setBlueprint(this.blueprint)})}setDatabase(a){this.database=JSON.parse(JSON.stringify({blueprints:a.getBlueprints(!0)}))}show(a=""){if(this.visible=!0,this.contentDiv1.replaceChildren(),this.contentDiv2.replaceChildren(),this.contentDiv3.replaceChildren(),null!=this.database){var t=document.createElement("label");t.innerText="Units list",this.contentDiv1.appendChild(t);var e=document.createElement("input");e.value=a,this.contentDiv1.appendChild(e),e.onchange=a=>{this.show(a.target.value)},this.addBlueprints(a)}}hide(){this.visible=!1,this.contentDiv1.replaceChildren(),this.contentDiv2.replaceChildren(),this.contentDiv3.replaceChildren()}getDatabase(){return this.database}addBlueprints(a=""){this.database&&((0,_$utils_8.addBlueprintsScroll)(this.contentDiv1,this.database,a,a=>{null!=this.database&&this.setBlueprint(this.database.blueprints[a])}),(0,_$utils_8.addNewElementInput)(this.contentDiv1,(a,t)=>{""!=t.value&&this.addBlueprint(t.value)}))}};var _$loadouteditor_5={},_LoadoutEditor_contentDiv,_LoadoutEditor_loadout,_LoadoutEditor_visible,__classPrivateFieldSet=this&&this.__classPrivateFieldSet||function(a,t,e,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?a!==t||!n:!t.has(a))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(a,e):n?n.value=e:t.set(a,e),e},__classPrivateFieldGet=this&&this.__classPrivateFieldGet||function(a,t,e,i){if("a"===e&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?a!==t||!i:!t.has(a))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===e?i:"a"===e?i.call(a):i?i.value:t.get(a)};Object.defineProperty(_$loadouteditor_5,"__esModule",{value:!0}),_$loadouteditor_5.LoadoutEditor=void 0,_$loadouteditor_5.LoadoutEditor=class{constructor(a){_LoadoutEditor_contentDiv.set(this,void 0),_LoadoutEditor_loadout.set(this,null),_LoadoutEditor_visible.set(this,!1),__classPrivateFieldSet(this,_LoadoutEditor_contentDiv,a,"f"),__classPrivateFieldGet(this,_LoadoutEditor_contentDiv,"f").addEventListener("refresh",()=>{__classPrivateFieldGet(this,_LoadoutEditor_visible,"f")&&this.show()})}setLoadout(a){__classPrivateFieldSet(this,_LoadoutEditor_loadout,a,"f")}show(){__classPrivateFieldSet(this,_LoadoutEditor_visible,!0,"f"),__classPrivateFieldGet(this,_LoadoutEditor_contentDiv,"f").replaceChildren();var a=document.createElement("label");if(a.innerText="Loadout properties",__classPrivateFieldGet(this,_LoadoutEditor_contentDiv,"f").appendChild(a),__classPrivateFieldGet(this,_LoadoutEditor_loadout,"f")){var t=__classPrivateFieldGet(this,_LoadoutEditor_loadout,"f");(0,_$utils_8.addStringInput)(__classPrivateFieldGet(this,_LoadoutEditor_contentDiv,"f"),"Name",t.name,"text",a=>{t.name=a,__classPrivateFieldGet(this,_LoadoutEditor_contentDiv,"f").dispatchEvent(new Event("refresh"))}),(0,_$utils_8.addStringInput)(__classPrivateFieldGet(this,_LoadoutEditor_contentDiv,"f"),"Code",t.code,"text",a=>{t.code=a}),(0,_$utils_8.addStringInput)(__classPrivateFieldGet(this,_LoadoutEditor_contentDiv,"f"),"Roles",(0,_$utils_8.arrayToString)(t.roles),"text",a=>{t.roles=(0,_$utils_8.stringToArray)(a)}),(0,_$utils_8.addLoadoutItemsEditor)(__classPrivateFieldGet(this,_LoadoutEditor_contentDiv,"f"),__classPrivateFieldGet(this,_LoadoutEditor_loadout,"f"))}}hide(){__classPrivateFieldSet(this,_LoadoutEditor_visible,!1,"f"),__classPrivateFieldGet(this,_LoadoutEditor_contentDiv,"f").replaceChildren()}},_LoadoutEditor_contentDiv=new WeakMap,_LoadoutEditor_loadout=new WeakMap,_LoadoutEditor_visible=new WeakMap;var _$airuniteditor_1={},_AirUnitEditor_loadoutEditor,____classPrivateFieldSet_1=this&&this.__classPrivateFieldSet||function(a,t,e,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?a!==t||!n:!t.has(a))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(a,e):n?n.value=e:t.set(a,e),e},____classPrivateFieldGet_1=this&&this.__classPrivateFieldGet||function(a,t,e,i){if("a"===e&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?a!==t||!i:!t.has(a))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===e?i:"a"===e?i.call(a):i?i.value:t.get(a)};Object.defineProperty(_$airuniteditor_1,"__esModule",{value:!0}),_$airuniteditor_1.AirUnitEditor=void 0;class AirUnitEditor extends _$uniteditor_7.UnitEditor{constructor(a,t,e){super(a,t,e),_AirUnitEditor_loadoutEditor.set(this,null),____classPrivateFieldSet_1(this,_AirUnitEditor_loadoutEditor,new _$loadouteditor_5.LoadoutEditor(this.contentDiv3),"f"),this.contentDiv3.addEventListener("refresh",()=>{var a;this.visible&&(null===(a=____classPrivateFieldGet_1(this,_AirUnitEditor_loadoutEditor,"f"))||void 0===a||a.show())})}setBlueprint(a){var t,e,i,n,s,_,l,r;this.blueprint=a,null!==this.blueprint&&(this.contentDiv2.replaceChildren(),(r=document.createElement("label")).innerText="Unit properties",this.contentDiv2.appendChild(r),(0,_$utils_8.addStringInput)(this.contentDiv2,"Name",a.name,"text",t=>{a.name=t},!0),(0,_$utils_8.addStringInput)(this.contentDiv2,"Label",a.label,"text",t=>{a.label=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Short label",a.shortLabel,"text",t=>{a.shortLabel=t}),(0,_$utils_8.addDropdownInput)(this.contentDiv2,"Coalition",a.coalition,["","blue","red"],t=>{a.coalition=t}),(0,_$utils_8.addDropdownInput)(this.contentDiv2,"Era",a.era,["WW2","Early Cold War","Mid Cold War","Late Cold War","Modern"],t=>{a.era=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Filename",null!==(t=a.filename)&&void 0!==t?t:"","text",t=>{a.filename=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Cost",null!==(e=String(a.cost))&&void 0!==e?e:"","number",t=>{a.cost=parseFloat(t)}),(0,_$utils_8.addCheckboxInput)(this.contentDiv2,"Can target point",null!==(i=a.canTargetPoint)&&void 0!==i&&i,t=>{a.canTargetPoint=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Description",null!==(n=a.description)&&void 0!==n?n:"","text",t=>{a.description=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Tags",null!==(s=a.tags)&&void 0!==s?s:"","text",t=>{a.tags=t}),(r=document.createElement("label")).innerText="Loadouts",this.contentDiv2.appendChild(r),(0,_$utils_8.addLoadoutsScroll)(this.contentDiv2,null!==(_=a.loadouts)&&void 0!==_?_:[],a=>{var t,e;null===(t=____classPrivateFieldGet_1(this,_AirUnitEditor_loadoutEditor,"f"))||void 0===t||t.setLoadout(a),null===(e=____classPrivateFieldGet_1(this,_AirUnitEditor_loadoutEditor,"f"))||void 0===e||e.show()}),(0,_$utils_8.addNewElementInput)(this.contentDiv2,(a,t)=>{this.addLoadout(t.value)}),null===(l=____classPrivateFieldGet_1(this,_AirUnitEditor_loadoutEditor,"f"))||void 0===l||l.hide())}addBlueprint(a){null!=this.database&&(this.database.blueprints[a]={name:a,coalition:"",label:"",shortLabel:"",era:"",loadouts:[],enabled:!0},this.show(),this.setBlueprint(this.database.blueprints[a]))}addLoadout(a){var t;a&&null!==this.blueprint&&(null===(t=this.blueprint.loadouts)||void 0===t||t.push({name:a,code:"",fuel:1,items:[],roles:[],enabled:!0}),this.setBlueprint(this.blueprint))}hide(){var a;super.hide(),null===(a=____classPrivateFieldGet_1(this,_AirUnitEditor_loadoutEditor,"f"))||void 0===a||a.hide()}}_$airuniteditor_1.AirUnitEditor=AirUnitEditor,_AirUnitEditor_loadoutEditor=new WeakMap;var _$grounduniteditor_3={},_GroundUnitEditor_blueprint,____classPrivateFieldSet_3=this&&this.__classPrivateFieldSet||function(a,t,e,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?a!==t||!n:!t.has(a))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(a,e):n?n.value=e:t.set(a,e),e},____classPrivateFieldGet_3=this&&this.__classPrivateFieldGet||function(a,t,e,i){if("a"===e&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?a!==t||!i:!t.has(a))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===e?i:"a"===e?i.call(a):i?i.value:t.get(a)};Object.defineProperty(_$grounduniteditor_3,"__esModule",{value:!0}),_$grounduniteditor_3.GroundUnitEditor=void 0;class GroundUnitEditor extends _$uniteditor_7.UnitEditor{constructor(a,t,e){super(a,t,e),_GroundUnitEditor_blueprint.set(this,null)}setBlueprint(a){var t,e,i,n,s,_,l,r,o,d,u,c,g,v,b,h,p,P,D,M,m;if(____classPrivateFieldSet_3(this,_GroundUnitEditor_blueprint,a,"f"),null!==____classPrivateFieldGet_3(this,_GroundUnitEditor_blueprint,"f")){this.contentDiv2.replaceChildren();var f=document.createElement("label");f.innerText="Unit properties",this.contentDiv2.appendChild(f),(0,_$utils_8.addStringInput)(this.contentDiv2,"Name",a.name,"text",t=>{a.name=t},!0),(0,_$utils_8.addStringInput)(this.contentDiv2,"Label",a.label,"text",t=>{a.label=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Short label",a.shortLabel,"text",t=>{a.shortLabel=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Type",null!==(t=a.type)&&void 0!==t?t:"","text",t=>{a.type=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Unit when grouped",null!==(e=a.unitWhenGrouped)&&void 0!==e?e:"","text",t=>{a.unitWhenGrouped=t}),(0,_$utils_8.addDropdownInput)(this.contentDiv2,"Coalition",a.coalition,["","blue","red"],t=>{a.coalition=t}),(0,_$utils_8.addDropdownInput)(this.contentDiv2,"Era",a.era,["WW2","Early Cold War","Mid Cold War","Late Cold War","Modern"],t=>{a.era=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Cost",null!==(i=String(a.cost))&&void 0!==i?i:"","number",t=>{a.cost=parseFloat(t)}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Acquisition range [m]",null!==(n=String(a.acquisitionRange))&&void 0!==n?n:"","number",t=>{a.acquisitionRange=parseFloat(t)}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Engagement range [m]",null!==(s=String(a.engagementRange))&&void 0!==s?s:"","number",t=>{a.engagementRange=parseFloat(t)}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Targeting range [m]",null!==(_=String(a.targetingRange))&&void 0!==_?_:"","number",t=>{a.targetingRange=parseFloat(t)}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Aim method range [m]",null!==(l=String(a.aimMethodRange))&&void 0!==l?l:"","number",t=>{a.aimMethodRange=parseFloat(t)}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Barrel height [m]",null!==(r=String(a.barrelHeight))&&void 0!==r?r:"","number",t=>{a.barrelHeight=parseFloat(t)}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Muzzle velocity [m/s]",null!==(o=String(a.muzzleVelocity))&&void 0!==o?o:"","number",t=>{a.muzzleVelocity=parseFloat(t)}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Aim time [s]",null!==(d=String(a.aimTime))&&void 0!==d?d:"","number",t=>{a.aimTime=parseFloat(t)}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Shots to fire",null!==(u=String(a.shotsToFire))&&void 0!==u?u:"","number",t=>{a.shotsToFire=Math.round(parseFloat(t))}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Shots base interval [s]",null!==(c=String(a.shotsBaseInterval))&&void 0!==c?c:"","number",t=>{a.shotsBaseInterval=Math.round(parseFloat(t))}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Shots base scatter [\xb0]",null!==(g=String(a.shotsBaseScatter))&&void 0!==g?g:"","number",t=>{a.shotsBaseScatter=Math.round(parseFloat(t))}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Alertness time constant [s]",null!==(v=String(a.alertnessTimeConstant))&&void 0!==v?v:"","number",t=>{a.alertnessTimeConstant=Math.round(parseFloat(t))}),(0,_$utils_8.addCheckboxInput)(this.contentDiv2,"Can target point",null!==(b=a.canTargetPoint)&&void 0!==b&&b,t=>{a.canTargetPoint=t}),(0,_$utils_8.addCheckboxInput)(this.contentDiv2,"Can rearm",null!==(h=a.canRearm)&&void 0!==h&&h,t=>{a.canRearm=t}),(0,_$utils_8.addCheckboxInput)(this.contentDiv2,"Can operate as AAA",null!==(p=a.canAAA)&&void 0!==p&&p,t=>{a.canAAA=t}),(0,_$utils_8.addCheckboxInput)(this.contentDiv2,"Indirect fire (e.g. mortar)",null!==(P=a.indirectFire)&&void 0!==P&&P,t=>{a.indirectFire=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Description",null!==(D=a.description)&&void 0!==D?D:"","text",t=>{a.description=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Tags",null!==(M=a.tags)&&void 0!==M?M:"","text",t=>{a.tags=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Marker file",null!==(m=a.markerFile)&&void 0!==m?m:"","text",t=>{a.markerFile=t})}}addBlueprint(a){null!=this.database&&(this.database.blueprints[a]={name:a,coalition:"",label:"",shortLabel:"",era:"",enabled:!0},this.show(),this.setBlueprint(this.database.blueprints[a]))}}_$grounduniteditor_3.GroundUnitEditor=GroundUnitEditor,_GroundUnitEditor_blueprint=new WeakMap;var _$navyuniteditor_6={},_NavyUnitEditor_blueprint,____classPrivateFieldSet_6=this&&this.__classPrivateFieldSet||function(a,t,e,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?a!==t||!n:!t.has(a))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(a,e):n?n.value=e:t.set(a,e),e},____classPrivateFieldGet_6=this&&this.__classPrivateFieldGet||function(a,t,e,i){if("a"===e&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?a!==t||!i:!t.has(a))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===e?i:"a"===e?i.call(a):i?i.value:t.get(a)};Object.defineProperty(_$navyuniteditor_6,"__esModule",{value:!0}),_$navyuniteditor_6.NavyUnitEditor=void 0;class NavyUnitEditor extends _$uniteditor_7.UnitEditor{constructor(a,t,e){super(a,t,e),_NavyUnitEditor_blueprint.set(this,null)}setBlueprint(a){var t,e,i,n;if(____classPrivateFieldSet_6(this,_NavyUnitEditor_blueprint,a,"f"),null!==____classPrivateFieldGet_6(this,_NavyUnitEditor_blueprint,"f")){this.contentDiv2.replaceChildren();var s=document.createElement("label");s.innerText="Unit properties",this.contentDiv2.appendChild(s),(0,_$utils_8.addStringInput)(this.contentDiv2,"Name",a.name,"text",t=>{a.name=t},!0),(0,_$utils_8.addStringInput)(this.contentDiv2,"Label",a.label,"text",t=>{a.label=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Short label",a.shortLabel,"text",t=>{a.shortLabel=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Type",null!==(t=a.type)&&void 0!==t?t:"","text",t=>{a.type=t}),(0,_$utils_8.addDropdownInput)(this.contentDiv2,"Coalition",a.coalition,["","blue","red"],t=>{a.coalition=t}),(0,_$utils_8.addDropdownInput)(this.contentDiv2,"Era",a.era,["WW2","Early Cold War","Mid Cold War","Late Cold War","Modern"],t=>{a.era=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Cost",null!==(e=String(a.cost))&&void 0!==e?e:"","number",t=>{a.cost=parseFloat(t)}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Barrel height [m]",null!==(i=String(a.barrelHeight))&&void 0!==i?i:"","number",t=>{a.barrelHeight=parseFloat(t)}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Muzzle velocity [m/s]",null!==(n=String(a.muzzleVelocity))&&void 0!==n?n:"","number",t=>{a.muzzleVelocity=parseFloat(t)})}}addBlueprint(a){null!=this.database&&(this.database.blueprints[a]={name:a,coalition:"",label:"",shortLabel:"",era:"",enabled:!0},this.show(),this.setBlueprint(this.database.blueprints[a]))}}_$navyuniteditor_6.NavyUnitEditor=NavyUnitEditor,_NavyUnitEditor_blueprint=new WeakMap;var _$databasemanagerplugin_2={},_DatabaseManagerPlugin_instances,_DatabaseManagerPlugin_app,_DatabaseManagerPlugin_element,_DatabaseManagerPlugin_mainContentContainer,_DatabaseManagerPlugin_contentDiv1,_DatabaseManagerPlugin_contentDiv2,_DatabaseManagerPlugin_contentDiv3,_DatabaseManagerPlugin_button1,_DatabaseManagerPlugin_button2,_DatabaseManagerPlugin_button3,_DatabaseManagerPlugin_button4,_DatabaseManagerPlugin_button5,_DatabaseManagerPlugin_button6,_DatabaseManagerPlugin_button7,_DatabaseManagerPlugin_button8,_DatabaseManagerPlugin_button9,_DatabaseManagerPlugin_aircraftEditor,_DatabaseManagerPlugin_helicopterEditor,_DatabaseManagerPlugin_groundUnitEditor,_DatabaseManagerPlugin_navyUnitEditor,_DatabaseManagerPlugin_hideAll,_DatabaseManagerPlugin_loadDatabases,_DatabaseManagerPlugin_saveDatabases,_DatabaseManagerPlugin_resetToDefaultDatabases,_DatabaseManagerPlugin_restoreToPreviousDatabases,_DatabaseManagerPlugin_uploadDatabase,_DatabaseManagerPlugin_resetToDefaultDatabase,_DatabaseManagerPlugin_restoreToPreviousDatabase,____classPrivateFieldSet_2=this&&this.__classPrivateFieldSet||function(a,t,e,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?a!==t||!n:!t.has(a))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(a,e):n?n.value=e:t.set(a,e),e},____classPrivateFieldGet_2=this&&this.__classPrivateFieldGet||function(a,t,e,i){if("a"===e&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?a!==t||!i:!t.has(a))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===e?i:"a"===e?i.call(a):i?i.value:t.get(a)};Object.defineProperty(_$databasemanagerplugin_2,"__esModule",{value:!0}),_$databasemanagerplugin_2.DatabaseManagerPlugin=void 0,_$databasemanagerplugin_2.DatabaseManagerPlugin=class{constructor(){_DatabaseManagerPlugin_instances.add(this),_DatabaseManagerPlugin_app.set(this,void 0),_DatabaseManagerPlugin_element.set(this,void 0),_DatabaseManagerPlugin_mainContentContainer.set(this,void 0),_DatabaseManagerPlugin_contentDiv1.set(this,void 0),_DatabaseManagerPlugin_contentDiv2.set(this,void 0),_DatabaseManagerPlugin_contentDiv3.set(this,void 0),_DatabaseManagerPlugin_button1.set(this,void 0),_DatabaseManagerPlugin_button2.set(this,void 0),_DatabaseManagerPlugin_button3.set(this,void 0),_DatabaseManagerPlugin_button4.set(this,void 0),_DatabaseManagerPlugin_button5.set(this,void 0),_DatabaseManagerPlugin_button6.set(this,void 0),_DatabaseManagerPlugin_button7.set(this,void 0),_DatabaseManagerPlugin_button8.set(this,void 0),_DatabaseManagerPlugin_button9.set(this,void 0),_DatabaseManagerPlugin_aircraftEditor.set(this,void 0),_DatabaseManagerPlugin_helicopterEditor.set(this,void 0),_DatabaseManagerPlugin_groundUnitEditor.set(this,void 0),_DatabaseManagerPlugin_navyUnitEditor.set(this,void 0),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_element,document.createElement("div"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_element,"f").id="database-manager-panel",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_element,"f").oncontextmenu=()=>!1,____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_element,"f").classList.add("ol-dialog"),document.body.appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_element,"f")),this.toggle(!1);let a=document.createElement("div");____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_button1,document.createElement("button"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button1,"f").classList.add("tab-button"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button1,"f").textContent="Aircraft database",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button1,"f").onclick=()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_hideAll).call(this),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_aircraftEditor,"f").show(),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button1,"f").classList.add("selected")},a.appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button1,"f")),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_button2,document.createElement("button"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button2,"f").classList.add("tab-button"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button2,"f").textContent="Helicopter database",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button2,"f").onclick=()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_hideAll).call(this),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_helicopterEditor,"f").show(),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button2,"f").classList.add("selected")},a.appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button2,"f")),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_button3,document.createElement("button"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button3,"f").classList.add("tab-button"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button3,"f").textContent="Ground Unit database",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button3,"f").onclick=()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_hideAll).call(this),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_groundUnitEditor,"f").show(),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button3,"f").classList.add("selected")},a.appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button3,"f")),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_button4,document.createElement("button"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button4,"f").classList.add("tab-button"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button4,"f").textContent="Navy Unit database",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button4,"f").onclick=()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_hideAll).call(this),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_navyUnitEditor,"f").show(),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button4,"f").classList.add("selected")},a.appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button4,"f")),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_element,"f").appendChild(a),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_mainContentContainer,document.createElement("div"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_mainContentContainer,"f").classList.add("dm-container"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_element,"f").appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_mainContentContainer,"f")),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_contentDiv1,document.createElement("div"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv1,"f").classList.add("dm-content-container","ol-scrollable"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_mainContentContainer,"f").appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv1,"f")),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_contentDiv2,document.createElement("div"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv2,"f").classList.add("dm-content-container","ol-scrollable"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_mainContentContainer,"f").appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv2,"f")),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_contentDiv3,document.createElement("div"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv3,"f").classList.add("dm-content-container","ol-scrollable"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_mainContentContainer,"f").appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv3,"f")),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_aircraftEditor,new _$airuniteditor_1.AirUnitEditor(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv1,"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv2,"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv3,"f")),"f"),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_helicopterEditor,new _$airuniteditor_1.AirUnitEditor(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv1,"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv2,"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv3,"f")),"f"),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_groundUnitEditor,new _$grounduniteditor_3.GroundUnitEditor(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv1,"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv2,"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv3,"f")),"f"),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_navyUnitEditor,new _$navyuniteditor_6.NavyUnitEditor(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv1,"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv2,"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv3,"f")),"f");let t=document.createElement("div");____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_button5,document.createElement("button"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button5,"f").textContent="Save",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button5,"f").title="Save the changes on the server",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button5,"f").onclick=()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_saveDatabases).call(this)},t.appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button5,"f")),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_button6,document.createElement("button"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button6,"f").textContent="Discard",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button6,"f").title="Discard all changes and reload the database from the server",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button6,"f").onclick=()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_loadDatabases).call(this)},t.appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button6,"f")),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_button7,document.createElement("button"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button7,"f").textContent="Reset defaults",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button7,"f").onclick=()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_resetToDefaultDatabases).call(this)},____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button7,"f").title="Reset the databases to the default values",t.appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button7,"f")),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_button8,document.createElement("button"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button8,"f").textContent="Restore previous",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button8,"f").onclick=()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_restoreToPreviousDatabases).call(this)},____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button8,"f").title="Restore the previously saved databases. Use this if you saved a database by mistake.",t.appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button8,"f")),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_button9,document.createElement("button"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button9,"f").textContent="Close",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button9,"f").title="Close the Database Manager",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button9,"f").onclick=()=>{this.toggle(!1)},t.appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button9,"f")),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_element,"f").appendChild(t)}getName(){return"Database Control Plugin"}initialize(a){var t;____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_app,a,"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f").getContextManager().add("databaseManager",{allowUnitCopying:!1,allowUnitPasting:!1,useSpawnMenu:!1,useUnitControlPanel:!1,useUnitInfoPanel:!1}),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_loadDatabases).call(this);var e=document.createElement("div"),i=document.createElement("button");i.textContent="Database manager",e.appendChild(i);var n=null===(t=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===t?void 0:t.getToolbarsManager().get("primaryToolbar"),s=n.getMainDropdown().getOptionElements(),_=Array.prototype.slice.call(s);return _.splice(_.length-3,0,e),n.getMainDropdown().setOptionsElements(_),i.onclick=()=>{var a;n.getMainDropdown().close(),"Game master"===(null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a?void 0:a.getMissionManager().getCommandModeOptions().commandMode)&&this.toggle()},!0}getElement(){return ____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_element,"f")}toggle(a){a?this.getElement().classList.toggle("hide",!a):this.getElement().classList.toggle("hide"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f")&&____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f").getContextManager().setContext(this.getElement().classList.contains("hide")?"olympus":"databaseManager")}},_DatabaseManagerPlugin_app=new WeakMap,_DatabaseManagerPlugin_element=new WeakMap,_DatabaseManagerPlugin_mainContentContainer=new WeakMap,_DatabaseManagerPlugin_contentDiv1=new WeakMap,_DatabaseManagerPlugin_contentDiv2=new WeakMap,_DatabaseManagerPlugin_contentDiv3=new WeakMap,_DatabaseManagerPlugin_button1=new WeakMap,_DatabaseManagerPlugin_button2=new WeakMap,_DatabaseManagerPlugin_button3=new WeakMap,_DatabaseManagerPlugin_button4=new WeakMap,_DatabaseManagerPlugin_button5=new WeakMap,_DatabaseManagerPlugin_button6=new WeakMap,_DatabaseManagerPlugin_button7=new WeakMap,_DatabaseManagerPlugin_button8=new WeakMap,_DatabaseManagerPlugin_button9=new WeakMap,_DatabaseManagerPlugin_aircraftEditor=new WeakMap,_DatabaseManagerPlugin_helicopterEditor=new WeakMap,_DatabaseManagerPlugin_groundUnitEditor=new WeakMap,_DatabaseManagerPlugin_navyUnitEditor=new WeakMap,_DatabaseManagerPlugin_instances=new WeakSet,_DatabaseManagerPlugin_hideAll=function(){____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_aircraftEditor,"f").hide(),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_helicopterEditor,"f").hide(),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_groundUnitEditor,"f").hide(),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_navyUnitEditor,"f").hide(),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button1,"f").classList.remove("selected"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button2,"f").classList.remove("selected"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button3,"f").classList.remove("selected"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button4,"f").classList.remove("selected")},_DatabaseManagerPlugin_loadDatabases=function(){var a,t,e,i,n=null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a?void 0:a.getAircraftDatabase();null!=n&&____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_aircraftEditor,"f").setDatabase(n);var s=null===(t=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===t?void 0:t.getHelicopterDatabase();null!=s&&____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_helicopterEditor,"f").setDatabase(s);var _=null===(e=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===e?void 0:e.getGroundUnitDatabase();null!=_&&____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_groundUnitEditor,"f").setDatabase(_);var l=null===(i=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===i?void 0:i.getNavyUnitDatabase();null!=l&&____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_navyUnitEditor,"f").setDatabase(l),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_hideAll).call(this),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_aircraftEditor,"f").show(),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button1,"f").classList.add("selected")},_DatabaseManagerPlugin_saveDatabases=function(){var a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_aircraftEditor,"f").getDatabase();a&&____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_uploadDatabase).call(this,a,"aircraftdatabase","Aircraft database",()=>{var a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_helicopterEditor,"f").getDatabase();a&&____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_uploadDatabase).call(this,a,"helicopterDatabase","Helicopter database",()=>{var a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_groundUnitEditor,"f").getDatabase();a&&____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_uploadDatabase).call(this,a,"groundUnitDatabase","Ground Unit database",()=>{var a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_navyUnitEditor,"f").getDatabase();a&&____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_uploadDatabase).call(this,a,"navyUnitDatabase","Navy Unit database",()=>{var a,t,e,i,n;null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a||a.getAircraftDatabase().load(()=>{}),null===(t=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===t||t.getHelicopterDatabase().load(()=>{}),null===(e=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===e||e.getGroundUnitDatabase().load(()=>{}),null===(i=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===i||i.getNavyUnitDatabase().load(()=>{}),null===(n=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===n||n.getServerManager().reloadDatabases(()=>{var a,t;null===(t=null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a?void 0:a.getPopupsManager().get("infoPopup"))||void 0===t||t.setText("Olympus core databases reloaded")})})})})})},_DatabaseManagerPlugin_resetToDefaultDatabases=function(){____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_resetToDefaultDatabase).call(this,"aircraftdatabase","Aircraft database",()=>{var a;null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a||a.getAircraftDatabase().load(()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_resetToDefaultDatabase).call(this,"helicopterdatabase","Helicopter database",()=>{var a;null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a||a.getHelicopterDatabase().load(()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_resetToDefaultDatabase).call(this,"groundunitdatabase","Ground Unit database",()=>{var a;null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a||a.getGroundUnitDatabase().load(()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_resetToDefaultDatabase).call(this,"navyunitdatabase","Navy Unit database",()=>{var a;null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a||a.getNavyUnitDatabase().load(()=>{var a;____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_loadDatabases).call(this),null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a||a.getServerManager().reloadDatabases(()=>{var a,t;null===(t=null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a?void 0:a.getPopupsManager().get("infoPopup"))||void 0===t||t.setText("Olympus core databases reloaded")}),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_hideAll).call(this),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_aircraftEditor,"f").show(),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button1,"f").classList.add("selected")})})})})})})})})},_DatabaseManagerPlugin_restoreToPreviousDatabases=function(){____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_restoreToPreviousDatabase).call(this,"aircraftdatabase","Aircraft database",()=>{var a;null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a||a.getAircraftDatabase().load(()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_restoreToPreviousDatabase).call(this,"helicopterdatabase","Helicopter database",()=>{var a;null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a||a.getHelicopterDatabase().load(()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_restoreToPreviousDatabase).call(this,"groundunitdatabase","Ground Unit database",()=>{var a;null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a||a.getGroundUnitDatabase().load(()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_restoreToPreviousDatabase).call(this,"navyunitdatabase","Navy Unit database",()=>{var a;null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a||a.getNavyUnitDatabase().load(()=>{var a;____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_loadDatabases).call(this),null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a||a.getServerManager().reloadDatabases(()=>{var a,t;null===(t=null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a?void 0:a.getPopupsManager().get("infoPopup"))||void 0===t||t.setText("Olympus core databases reloaded")}),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_hideAll).call(this),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_aircraftEditor,"f").show(),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button1,"f").classList.add("selected")})})})})})})})})},_DatabaseManagerPlugin_uploadDatabase=function(a,t,e,i){var n=new XMLHttpRequest;n.open("PUT","/api/databases/save/units/"+t),n.setRequestHeader("Content-Type","application/json"),n.onload=a=>{var t,s,_,l;200==n.status?(null===(s=null===(t=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===t?void 0:t.getPopupsManager().get("infoPopup"))||void 0===s||s.setText(e+" saved successfully"),i()):null===(l=null===(_=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===_?void 0:_.getPopupsManager().get("infoPopup"))||void 0===l||l.setText("An error has occurred while saving the "+e)},n.onerror=a=>{var t,i;null===(i=null===(t=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===t?void 0:t.getPopupsManager().get("infoPopup"))||void 0===i||i.setText("An error has occurred while saving the "+e)},n.send(JSON.stringify(a))},_DatabaseManagerPlugin_resetToDefaultDatabase=function(a,t,e){var i=new XMLHttpRequest;i.open("PUT","/api/databases/reset/units/"+a),i.setRequestHeader("Content-Type","application/json"),i.onload=a=>{var n,s,_,l;200==i.status?(null===(s=null===(n=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===n?void 0:n.getPopupsManager().get("infoPopup"))||void 0===s||s.setText(t+" reset successfully"),e()):null===(l=null===(_=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===_?void 0:_.getPopupsManager().get("infoPopup"))||void 0===l||l.setText("An error has occurred while resetting the "+t)},i.onerror=a=>{var e,i;null===(i=null===(e=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===e?void 0:e.getPopupsManager().get("infoPopup"))||void 0===i||i.setText("An error has occurred while resetting the "+t)},i.send("")},_DatabaseManagerPlugin_restoreToPreviousDatabase=function(a,t,e){var i=new XMLHttpRequest;i.open("PUT","/api/databases/restore/units/"+a),i.setRequestHeader("Content-Type","application/json"),i.onload=a=>{var n,s,_,l;200==i.status?(null===(s=null===(n=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===n?void 0:n.getPopupsManager().get("infoPopup"))||void 0===s||s.setText(t+" restored successfully"),e()):null===(l=null===(_=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===_?void 0:_.getPopupsManager().get("infoPopup"))||void 0===l||l.setText("An error has occurred while restoring the "+t)},i.onerror=a=>{var e,i;null===(i=null===(e=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===e?void 0:e.getPopupsManager().get("infoPopup"))||void 0===i||i.setText("An error has occurred while restoring the "+t)},i.send("")};var _$index_4={};Object.defineProperty(_$index_4,"__esModule",{value:!0}),globalThis.getOlympusPlugin=()=>new _$databasemanagerplugin_2.DatabaseManagerPlugin}(); \ No newline at end of file diff --git a/frontend/website/public/plugins/databasemanager/plugin.json b/frontend/website/public/plugins/databasemanager/plugin.json deleted file mode 100644 index 77a1f817..00000000 --- a/frontend/website/public/plugins/databasemanager/plugin.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "Control Tip Plugin", - "version": "0.0.1", - "description": "This plugin shows useful control tips on the right side of the screen. The tips change dynamically depending on what the user does", - "author": "Peekaboo" -} \ No newline at end of file diff --git a/frontend/website/public/plugins/databasemanager/style.css b/frontend/website/public/plugins/databasemanager/style.css deleted file mode 100644 index f8c80213..00000000 --- a/frontend/website/public/plugins/databasemanager/style.css +++ /dev/null @@ -1,295 +0,0 @@ -#database-manager-panel { - flex-direction: column; - display: flex; - width: 80%; - height: 80%; - padding: 10px; - border-radius: 5px; - background-color: var(--background-steel) !important; - z-index: 9999999; -} - -@media (min-width: 1200px) { - .dm-container { - flex-direction: row; - } -} - -@media (max-width: 1200px) { - .dm-container { - flex-direction: column; - overflow-y: auto; - } -} - -#database-manager-panel * { - font-size: 13; - font-family: 'Open Sans', sans-serif !important; - user-select: none; -} - -#database-manager-panel>div:first-child { - display: flex; - align-items: center; -} - -#database-manager-panel>div:last-child { - display: flex; - column-gap: 5px; - align-items: center; - justify-content: end; - justify-items: end; - margin-top: 5px; -} - -#database-manager-panel>div:last-child>button { - border: 1px solid white; -} - -.dm-container { - background-color: var(--background-grey); - border: 2px solid #777777; - position: relative; - display: flex; - width: 100%; - padding: 5px; - height: calc(100% - 64px - 5px); - border-radius: 0px 5px 5px 5px; -} - -.dm-content-container { - position: relative; - margin: 10px; - display: flex; - flex-direction: column; - row-gap: 5px; - max-height: 100%; - padding: 10px; -} - -@media (min-width: 1200px) { - .dm-content-container { - height: calc(100% - 20px); - } - - .dm-content-container:nth-of-type(1) { - width: 400px; - } - - .dm-content-container:nth-of-type(2) { - width: 500px; - } - - .dm-content-container:nth-of-type(3) { - flex: 1; - } -} - -@media (max-width: 1200px) { - .dm-content-container { - width: calc(100% - 20px); - } - - .dm-content-container:nth-of-type(1) { - height: 30%; - } - - .dm-content-container:nth-of-type(2) { - height: 50%; - } - - .dm-content-container:nth-of-type(3) { - flex: 1; - } -} - -.dm-content-container>label { - font-size: 18px !important; - font-weight: bold; -} - -.dm-scroll-container { - display: flex; - flex-direction: column; - overflow-y: scroll; - max-height: 100%; - color: black; - font-weight: bold; -} - -#database-manager-panel input { - font-weight: bold; -} - -.dm-scroll-container>div:nth-child(even) { - background-color: gainsboro; -} - -.dm-scroll-container>div:nth-child(odd) { - background-color: white; -} - -.dm-scroll-container>div *:nth-child(1) { - height: 100%; - width: calc(100% - 25px); - padding: 2px; - word-wrap: break-word; -} - -.dm-scroll-container>div *:nth-child(1):hover { - background-color: var(--accent-dark-blue); - color: white; - cursor: pointer; -} - -.blueprint-selected { - background-color: var(--accent-light-blue) !important; - color: white; -} - -.dm-scroll-container>div { - display: flex; - align-items: center; - justify-content: space-between; -} - -.dm-scroll-container>div>div { - display: flex; - align-items: center; - justify-content: space-between; -} - -.dm-scroll-container>div>button { - height: 20px; - width: 20px; - padding: 0px; -} - -.dm-scroll-container>div>div>div:nth-child(1) { - width: fit-content; -} - -.dm-scroll-container>div>div>div:nth-child(2) { - overflow: hidden; - text-wrap: nowrap; - text-overflow: ellipsis; - font-weight: normal; -} - -.input-row { - width: 100%; - display: flex; - flex-direction: row; -} - -@media (max-width: 1200px) { - .dm-content-container label { - width: 100%; - } - .input-row { - width: 50%; - } -} - -.input-row>dt { - width: 250px; -} - -.input-row>dd { - width: 100%; - text-align: right; -} - -.input-row>dd>* { - width: 100%; - font-weight: bold; -} - -.input-row>dd>*[type="checkbox"] { - width: 20px; - font-weight: bold; -} - -.dm-loadout-container { - max-height: 100%; - max-width: 500px; - width: 100%; -} - -.dm-items-container { - max-height: 100%; - height: fit-content; -} - -.dm-items-container>div { - display: flex; - align-items: center; - column-gap: 2px; -} - -.dm-items-container>div>label { - width: 80px !important; -} - -.dm-items-container div>input:nth-of-type(1) { - flex: 1; - font-weight: bold; -} - -.dm-items-container div>input:nth-of-type(2) { - width: 40px; - font-weight: bold; -} - -.dm-new-element-input { - display: flex; - flex-direction: row; - column-gap: 2px; - width: 100%; - align-items: center; -} - -.dm-new-element-input>input { - width: 100%; -} - -.dm-new-element-input>button { - width: 60px; -} - -.dm-new-item-input { - display: flex; - justify-content: end; -} - -.dm-new-item-input>button { - width: 60px; -} - -.tab-button { - transform: translateY(+3px); - background-color: var(--background-steel); - border-radius: 0; - border-bottom: 2px solid transparent !important; - border-top: 2px solid #777777 !important; - border-left: 2px solid #777777 !important; - border-right: 0px solid #777777 !important; -} - -.tab-button.selected { - background-color: var(--background-grey); - z-index: 10; -} - -.tab-button:first-of-type { - border-top-left-radius: 5px; -} - -.tab-button:last-of-type { - border-top-right-radius: 5px; - border-right: 2px solid #777777 !important; -} - -#database-manager-panel button :not(.dm-scroll-container>div) { - border: 1px solid white; -} \ No newline at end of file