From d711b2288d09d91c88f927c656f233065839ee8a Mon Sep 17 00:00:00 2001 From: "caleb.mabry.15@cnu.edu" Date: Mon, 14 Mar 2022 23:14:14 -0400 Subject: Users who are quick --- webAO/client.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/webAO/client.js b/webAO/client.js index 8bac1cc..51ee40e 100644 --- a/webAO/client.js +++ b/webAO/client.js @@ -1218,8 +1218,6 @@ class Client extends EventEmitter { document.getElementById('client_loading').style.display = 'none'; if (mode === 'watch') { // Spectators don't need to pick a character document.getElementById('client_charselect').style.display = 'none'; - } else { - document.getElementById('client_charselect').style.display = 'block'; } } -- cgit From a1cc316e300c673218bff92b34d977871646bbce Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Wed, 16 Mar 2022 23:24:06 +0100 Subject: remove unused gify lib --- public/client.html | 1 - webAO/lib/gify.min.js | 11 ----------- 2 files changed, 12 deletions(-) delete mode 100644 webAO/lib/gify.min.js diff --git a/public/client.html b/public/client.html index dc924fb..067b3ab 100644 --- a/public/client.html +++ b/public/client.html @@ -39,7 +39,6 @@ - diff --git a/webAO/lib/gify.min.js b/webAO/lib/gify.min.js deleted file mode 100644 index 7afe02c..0000000 --- a/webAO/lib/gify.min.js +++ /dev/null @@ -1,11 +0,0 @@ -const gify = (function () { - function t(t) { return 3 * 2 ** (1 + a(t.slice(5, 8))); } function e(t) { for (var e = [], i = 7; i >= 0; i--)e.push(t & 1 << i ? 1 : 0); return e; } function i(t) { return t / 100 * 1e3; } function a(t) { return t.reduce((t, e) => 2 * t + e, 0); } function r(t, e, i) { for (var a = { data: '', size: 0 }; ;) { const r = t.getUint8(e + a.size, !0); if (r === 0) { a.size++; break; }i && (a.data += t.getString(r, e + a.size + 1)), a.size += r + 1; } return a; } function n() { - return { - identifier: '0', localPalette: !1, localPaletteSize: 0, interlace: !1, comments: [], text: '', left: 0, top: 0, width: 0, height: 0, delay: 0, disposal: 0, - }; - } function o(a, o) { - let u = 0; let g = 0; const s = { - valid: !1, globalPalette: !1, globalPaletteSize: 0, globalPaletteColorsRGB: [], loopCount: 0, height: 0, width: 0, animated: !1, images: [], isBrowserDuration: !1, duration: 0, durationIE: 0, durationSafari: 0, durationFirefox: 0, durationChrome: 0, durationOpera: 0, - }; const d = new jDataView(a); if (a.byteLength < 10) return s; if (d.getUint16(0) != 18249 || d.getUint16(2) != 17976) return s; s.width = d.getUint16(6, !0), s.height = d.getUint16(8, !0), s.valid = !0; var f = e(d.getUint8(10, !0)); if (f[0]) { const c = t(f); s.globalPalette = !0, s.globalPaletteSize = c / 3, u += c; for (let h = 0; h < s.globalPaletteSize; h++) { const v = 13 + 3 * h; const U = d.getUint8(v, !0); const b = d.getUint8(v + 1, !0); const m = d.getUint8(v + 2, !0); s.globalPaletteColorsRGB.push({ r: U, g: b, b: m }); } }u += 13; for (let p = n(); ;) { try { const w = d.getUint8(u, !0); switch (w) { case 33: var z = d.getUint8(u + 1, !0); if (z === 249) { const P = d.getUint8(u + 2); if (P === 4) { const S = i(d.getUint16(u + 4, !0)); S < 60 && !s.isBrowserDuration && (s.isBrowserDuration = !0), p.delay = S, s.duration += S, s.durationIE += S < 60 ? l : S, s.durationSafari += S < 20 ? l : S, s.durationChrome += S < 20 ? l : S, s.durationFirefox += S < 20 ? l : S, s.durationOpera += S < 20 ? l : S; var f = e(d.getUint8(u + 3)); const C = f.slice(3, 6).join(''); p.disposal = parseInt(C, 2), u += 8; } else u++; } else { u += 2; var k = r(d, u, !0); switch (z) { case 255: var y = d.getString(8, u + 1); y === 'NETSCAPE' && (s.loopCount = d.getUint8(u + 14, !0)); break; case 206: p.identifier = k.data; break; case 254: p.comments.push(k.data); break; case 1: p.text = k.data; }u += k.size; } break; case 44: p.left = d.getUint16(u + 1, !0), p.top = d.getUint16(u + 3, !0), p.width = d.getUint16(u + 5, !0), p.height = d.getUint16(u + 7, !0); var f = e(d.getUint8(u + 9, !0)); if (f[0]) { const B = t(f); p.localPalette = !0, p.localPaletteSize = B / 3, u += B; } if (f[1] && (p.interlace = !0), s.images.push(p), g++, p = n(), p.identifier = g.toString(), s.images.length > 1 && !s.animated && (s.animated = !0, o)) return s; u += 11; var k = r(d, u, !1); u += k.size; break; case 59: return s; default: u++; } } catch (x) { return s.valid = !1, s; } if (u >= a.byteLength) return s; } return s; - } var l = 100; return { isAnimated(t) { const e = o(t, !0); return e.animated; }, getInfo(t) { return o(t, !1); } }; -}()); -- cgit From 298b796e825640cc84df5a89eb9910a349fe592b Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Wed, 16 Mar 2022 23:29:06 +0100 Subject: clean up unused image folder --- webAO/images/favicon.ico | Bin 5694 -> 0 bytes webAO/images/logo-new.png | Bin 28737 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 webAO/images/favicon.ico delete mode 100644 webAO/images/logo-new.png diff --git a/webAO/images/favicon.ico b/webAO/images/favicon.ico deleted file mode 100644 index 83b380d..0000000 Binary files a/webAO/images/favicon.ico and /dev/null differ diff --git a/webAO/images/logo-new.png b/webAO/images/logo-new.png deleted file mode 100644 index 26e04aa..0000000 Binary files a/webAO/images/logo-new.png and /dev/null differ -- cgit From b370eb8a7baa17d2ab8e9542d096c067be782048 Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Wed, 16 Mar 2022 23:29:16 +0100 Subject: pngcrush every png --- static/desc.png | Bin 50785 -> 45272 bytes static/logo-new-512.png | Bin 238578 -> 232759 bytes static/logo-new.png | Bin 29302 -> 29244 bytes webAO/styles/chatbox/chatwaiting_whentheycry.png | Bin 521 -> 541 bytes webAO/styles/chatbox/dgs_chat_bg.png | Bin 674 -> 696 bytes webAO/styles/chatbox/drv3chatbox.png | Bin 36885 -> 36920 bytes webAO/styles/trilogy_bg.png | Bin 750 -> 780 bytes 7 files changed, 0 insertions(+), 0 deletions(-) diff --git a/static/desc.png b/static/desc.png index 4d8ec37..84e4edd 100644 Binary files a/static/desc.png and b/static/desc.png differ diff --git a/static/logo-new-512.png b/static/logo-new-512.png index 33fd586..f7b5816 100644 Binary files a/static/logo-new-512.png and b/static/logo-new-512.png differ diff --git a/static/logo-new.png b/static/logo-new.png index f53fe30..6a9c498 100644 Binary files a/static/logo-new.png and b/static/logo-new.png differ diff --git a/webAO/styles/chatbox/chatwaiting_whentheycry.png b/webAO/styles/chatbox/chatwaiting_whentheycry.png index ea35986..de5f669 100644 Binary files a/webAO/styles/chatbox/chatwaiting_whentheycry.png and b/webAO/styles/chatbox/chatwaiting_whentheycry.png differ diff --git a/webAO/styles/chatbox/dgs_chat_bg.png b/webAO/styles/chatbox/dgs_chat_bg.png index 5f5d99a..c5230b9 100644 Binary files a/webAO/styles/chatbox/dgs_chat_bg.png and b/webAO/styles/chatbox/dgs_chat_bg.png differ diff --git a/webAO/styles/chatbox/drv3chatbox.png b/webAO/styles/chatbox/drv3chatbox.png index ecf5e1f..e24f583 100644 Binary files a/webAO/styles/chatbox/drv3chatbox.png and b/webAO/styles/chatbox/drv3chatbox.png differ diff --git a/webAO/styles/trilogy_bg.png b/webAO/styles/trilogy_bg.png index 79438c0..143a40b 100644 Binary files a/webAO/styles/trilogy_bg.png and b/webAO/styles/trilogy_bg.png differ -- cgit From 1899c8058fde577318c1911a35108ea8d91cd1a7 Mon Sep 17 00:00:00 2001 From: "caleb.mabry.15@cnu.edu" Date: Thu, 17 Mar 2022 20:00:07 -0400 Subject: Adding blip sounds to actual audio tags --- webAO/client.js | 11 ++--------- webAO/client/aoHost.js | 5 +++++ webAO/components/__tests__/blips.test.js | 9 +++++++++ webAO/components/blip.js | 17 +++++++++++++++++ webpack.config.js | 3 ++- 5 files changed, 35 insertions(+), 10 deletions(-) create mode 100644 webAO/client/aoHost.js create mode 100644 webAO/components/__tests__/blips.test.js create mode 100644 webAO/components/blip.js diff --git a/webAO/client.js b/webAO/client.js index 8bac1cc..7e82d91 100644 --- a/webAO/client.js +++ b/webAO/client.js @@ -1674,15 +1674,8 @@ class Viewport { ]; // Allocate multiple blip audio channels to make blips less jittery - - this.blipChannels = new Array( - new Audio(`${AO_HOST}sounds/general/sfx-blipmale.opus`), - new Audio(`${AO_HOST}sounds/general/sfx-blipmale.opus`), - new Audio(`${AO_HOST}sounds/general/sfx-blipmale.opus`), - new Audio(`${AO_HOST}sounds/general/sfx-blipmale.opus`), - new Audio(`${AO_HOST}sounds/general/sfx-blipmale.opus`), - new Audio(`${AO_HOST}sounds/general/sfx-blipmale.opus`), - ); + const blipSelectors = document.getElementsByClassName('blipSound') + this.blipChannels = [...blipSelectors]; this.blipChannels.forEach((channel) => channel.volume = 0.5); this.blipChannels.forEach((channel) => channel.onerror = opusCheck(channel)); this.currentBlipChannel = 0; diff --git a/webAO/client/aoHost.js b/webAO/client/aoHost.js new file mode 100644 index 0000000..b387608 --- /dev/null +++ b/webAO/client/aoHost.js @@ -0,0 +1,5 @@ +import queryParser from '../utils/queryParser' +let { asset } = queryParser(); +const DEFAULT_HOST = 'http://attorneyoffline.de/base/'; +const AO_HOST = asset || DEFAULT_HOST +export default AO_HOST diff --git a/webAO/components/__tests__/blips.test.js b/webAO/components/__tests__/blips.test.js new file mode 100644 index 0000000..9c57e78 --- /dev/null +++ b/webAO/components/__tests__/blips.test.js @@ -0,0 +1,9 @@ +import createBlip from "../blip"; + +describe('createBlip', () => { + test('create 3 blips audios', () => { + document.body.innerHTML = `` + createBlip(3) + expect(document.getElementsByClassName('blipSound').length).toBe(3) + }) +}) \ No newline at end of file diff --git a/webAO/components/blip.js b/webAO/components/blip.js new file mode 100644 index 0000000..409b907 --- /dev/null +++ b/webAO/components/blip.js @@ -0,0 +1,17 @@ +import AO_HOST from '../client/aoHost' + +/** + * + * @param {number} amountOfBlips Amount of Blips to put on page + */ +const createBlip = (amountOfBlips) => { + for (let i = 0; i < amountOfBlips; i++) { + const audio = document.createElement('audio') + const blipUrl = `${AO_HOST}sounds/general/sfx-blipmale.opus` + audio.setAttribute('class', 'blipSound') + audio.setAttribute('src', blipUrl) + document.body.appendChild(audio) + } +} +createBlip(3) +export default createBlip \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js index 5c8b1de..a3456af 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -17,6 +17,7 @@ module.exports = { client: './webAO/client.js', master: './webAO/master.js', dom: glob.sync('./webAO/dom/*.js'), + components: glob.sync('./webAO/components/*.js'), }, node: { global: true, @@ -86,7 +87,7 @@ module.exports = { new HtmlWebpackPlugin({ title: 'Attorney Online', filename: 'client.html', - chunks: ['client', 'ui', 'dom'], + chunks: ['client', 'ui', 'dom', 'components'], template: 'public/client.html', }), new webpack.DefinePlugin({ -- cgit From e7aed2713ba38ada26d8c1e9afe52416953ebd48 Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Fri, 18 Mar 2022 02:25:21 +0100 Subject: whoops --- webAO/styles/chatbox/chatwaiting_whentheycry.png | Bin 541 -> 521 bytes webAO/styles/chatbox/dgs_chat_bg.png | Bin 696 -> 674 bytes webAO/styles/chatbox/drv3chatbox.png | Bin 36920 -> 36885 bytes webAO/styles/trilogy_bg.png | Bin 780 -> 750 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/webAO/styles/chatbox/chatwaiting_whentheycry.png b/webAO/styles/chatbox/chatwaiting_whentheycry.png index de5f669..ea35986 100644 Binary files a/webAO/styles/chatbox/chatwaiting_whentheycry.png and b/webAO/styles/chatbox/chatwaiting_whentheycry.png differ diff --git a/webAO/styles/chatbox/dgs_chat_bg.png b/webAO/styles/chatbox/dgs_chat_bg.png index c5230b9..5f5d99a 100644 Binary files a/webAO/styles/chatbox/dgs_chat_bg.png and b/webAO/styles/chatbox/dgs_chat_bg.png differ diff --git a/webAO/styles/chatbox/drv3chatbox.png b/webAO/styles/chatbox/drv3chatbox.png index e24f583..ecf5e1f 100644 Binary files a/webAO/styles/chatbox/drv3chatbox.png and b/webAO/styles/chatbox/drv3chatbox.png differ diff --git a/webAO/styles/trilogy_bg.png b/webAO/styles/trilogy_bg.png index 143a40b..79438c0 100644 Binary files a/webAO/styles/trilogy_bg.png and b/webAO/styles/trilogy_bg.png differ -- cgit From d0ab0a66ee5ec34b8c92d14b517a9a3b21b911d7 Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Fri, 18 Mar 2022 02:26:12 +0100 Subject: these aren't needed either --- public/client.html | 2 -- 1 file changed, 2 deletions(-) diff --git a/public/client.html b/public/client.html index 067b3ab..1abaa4f 100644 --- a/public/client.html +++ b/public/client.html @@ -39,8 +39,6 @@ - - -- cgit From e977aa74417a8cf17c2fa3bac737039d97971dd2 Mon Sep 17 00:00:00 2001 From: "caleb.mabry.15@cnu.edu" Date: Thu, 17 Mar 2022 22:25:46 -0400 Subject: Adding unit tests --- webAO/client.js | 1 + webAO/client/__tests__/setEmote.test.js | 115 ++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 webAO/client/__tests__/setEmote.test.js diff --git a/webAO/client.js b/webAO/client.js index 34a1b4b..a78eeb1 100644 --- a/webAO/client.js +++ b/webAO/client.js @@ -3125,3 +3125,4 @@ export function toggleShout(shout) { } } window.toggleShout = toggleShout; +export default Client \ No newline at end of file diff --git a/webAO/client/__tests__/setEmote.test.js b/webAO/client/__tests__/setEmote.test.js new file mode 100644 index 0000000..d81c2cc --- /dev/null +++ b/webAO/client/__tests__/setEmote.test.js @@ -0,0 +1,115 @@ +import setEmote from '../setEmote'; +import Client from '../../client'; +import fileExistsSync from '../../utils/fileExistsSync'; +import transparentPng from '../../constants/transparentPng'; + +jest.mock('../../client'); +jest.mock('../../utils/fileExistsSync'); + +describe('setEmote', () => { + const AO_HOST = ''; + Client.mockReturnValue({ + lastChar: 'long', + chatmsg: { + name: 'byte', + }, + }); + const client = new Client('127.0.0.1'); + const firstExtension = '.gif'; + + test('Should have a client_def_char_img with a valid source', () => { + fileExistsSync.mockReturnValue(true); + document.body.innerHTML = ` + + `; + setEmote(AO_HOST, client, 'salanto', 'coding', '(a)', 0, 'def'); + const expected = `http://localhost/characters/salanto/(a)coding${firstExtension}`; + expect(document.getElementById('client_def_char_img').src).toEqual(expected); + }); + test('Should have a client_pro_char_img to have a valid src', () => { + document.body.innerHTML = ` + + + `; + setEmote(AO_HOST, client, 'salanto', 'coding', '(a)', 0, 'pro'); + const expected = `http://localhost/characters/salanto/(a)coding${firstExtension}`; + expect(document.getElementById('client_pro_char_img').src).toEqual(expected); + }); + test('Should have a client_wit_char_img', () => { + document.body.innerHTML = ` + + `; + setEmote(AO_HOST, client, 'salanto', 'coding', '(a)', 0, 'wit'); + const expected = `http://localhost/characters/salanto/(a)coding${firstExtension}`; + + expect(document.getElementById('client_wit_char_img').src).toEqual(expected); + }); + test('Should have a client_def_pair_img', () => { + document.body.innerHTML = ` + + +`; + setEmote(AO_HOST, client, 'salanto', 'coding', '(a)', 1, 'def'); + const expected = `http://localhost/characters/salanto/(a)coding${firstExtension}`; + + expect(document.getElementById('client_def_pair_img').src).toEqual(expected); + }); + test('Should have a client_pro_pair_img', () => { + document.body.innerHTML = ` + + +`; + setEmote(AO_HOST, client, 'salanto', 'coding', '(a)', 1, 'pro'); + const expected = `http://localhost/characters/salanto/(a)coding${firstExtension}`; + + expect(document.getElementById('client_pro_pair_img').src).toEqual(expected); + }); + test('Should have a client_wit_pair_img', () => { + document.body.innerHTML = ` + + +`; + setEmote(AO_HOST, client, 'salanto', 'coding', '(a)', 1, 'wit'); + const expected = `http://localhost/characters/salanto/(a)coding${firstExtension}`; + + expect(document.getElementById('client_wit_pair_img').src).toEqual(expected); + }); + test('Should have a client_char_img', () => { + document.body.innerHTML = ` + + + `; + setEmote(AO_HOST, client, 'salanto', 'coding', '(a)', 0, 'notvalid'); + const expected = `http://localhost/characters/salanto/(a)coding${firstExtension}`; + + expect(document.getElementById('client_char_img').src).toEqual(expected); + }); + test('Should have a client_pair_img', () => { + document.body.innerHTML = ` + + `; + setEmote(AO_HOST, client, 'salanto', 'coding', '(a)', 1, 'notvalid'); + const expected = `http://localhost/characters/salanto/(a)coding${firstExtension}`; + + expect(document.getElementById('client_pair_img').src).toEqual(expected); + }); + test('Should handle .png urls differently', () => { + fileExistsSync.mockReturnValueOnce(false); + document.body.innerHTML = ` + + `; + setEmote(AO_HOST, client, 'salanto', 'coding', 'prefixNotValid', 1, 'notvalid'); + const expected = 'http://localhost/characters/salanto/coding.png'; + + expect(document.getElementById('client_pair_img').src).toEqual(expected); + }); + test('Should replace character if new character responds', () => { + fileExistsSync.mockReturnValue(false); + document.body.innerHTML = ` + + `; + setEmote(AO_HOST, client, 'salanto', 'coding', 'prefixNotValid', 1, 'notvalid'); + const expected = transparentPng; + expect(document.getElementById('client_pair_img').src).toEqual(expected); + }); +}); -- cgit From cd20fe050d256d55f7b7fc6bf53ca4db6ccf93a0 Mon Sep 17 00:00:00 2001 From: "caleb.mabry.15@cnu.edu" Date: Fri, 18 Mar 2022 11:45:24 -0400 Subject: Remove local golden code --- webAO/golden/LICENSE.txt | 21 -- webAO/golden/css/goldenlayout.css | 525 ---------------------------------- webAO/golden/css/goldenlayout.css.map | 1 - webAO/golden/js/goldenlayout.js | 3 - webAO/golden/js/goldenlayout.js.map | 1 - 5 files changed, 551 deletions(-) delete mode 100644 webAO/golden/LICENSE.txt delete mode 100644 webAO/golden/css/goldenlayout.css delete mode 100644 webAO/golden/css/goldenlayout.css.map delete mode 100644 webAO/golden/js/goldenlayout.js delete mode 100644 webAO/golden/js/goldenlayout.js.map diff --git a/webAO/golden/LICENSE.txt b/webAO/golden/LICENSE.txt deleted file mode 100644 index 5ef7a1f..0000000 --- a/webAO/golden/LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 deepstream.io - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/webAO/golden/css/goldenlayout.css b/webAO/golden/css/goldenlayout.css deleted file mode 100644 index ecb0d6b..0000000 --- a/webAO/golden/css/goldenlayout.css +++ /dev/null @@ -1,525 +0,0 @@ -h2 { - font: 14px Arial, sans-serif; - color: #fff; - padding: 10px; -} -.lm_content { - text-align: center; - color: white; -} -body { - height: 100%; - width: 100%; - position: absolute; - transition: all 0.5s ease; -} -#menuContainer { - list-style: none; - margin: 10px; - padding: 0; -} -#menuContainer:after { - content: ""; - display: table; - clear: both; -} -#menuContainer li { - float: left; - margin-right: 10px; -} -#menuContainer li a { - background-color: black; - color: white; - padding: 5px; - text-decoration: none; - font-family: Arial, sans-serif; - font-size: 12px; -} -.lm_root { - position: relative; -} -.lm_row > .lm_item { - float: left; -} -.lm_content { - overflow: hidden; - position: relative; -} -.lm_dragging, -.lm_dragging * { - cursor: move !important; - user-select: none; -} -.lm_maximised { - position: absolute; - top: 0; - left: 0; - z-index: 40; -} -.lm_maximise_placeholder { - display: none; -} -.lm_splitter { - position: relative; - z-index: 2; -} -.lm_splitter:hover, -.lm_splitter.lm_dragging { - background: orange; -} -.lm_splitter.lm_vertical .lm_drag_handle { - width: 100%; - position: absolute; - cursor: ns-resize; -} -.lm_splitter.lm_horizontal { - float: left; - height: 100%; -} -.lm_splitter.lm_horizontal .lm_drag_handle { - height: 100%; - position: absolute; - cursor: ew-resize; -} -.lm_header { - overflow: visible; - position: relative; - z-index: 1; - user-select: none; -} -.lm_header.lm_selectable { - cursor: pointer; -} -.lm_header [class^=lm_] { - box-sizing: content-box !important; -} -.lm_header .lm_controls { - position: absolute; - right: 3px; -} -.lm_header .lm_controls > li { - cursor: pointer; - float: left; - width: 18px; - height: 18px; - text-align: center; -} -.lm_header ul { - margin: 0; - padding: 0; - list-style-type: none; -} -.lm_header .lm_tabs { - position: absolute; -} -.lm_header .lm_tab { - cursor: pointer; - float: left; - height: 14px; - margin-top: 1px; - padding: 0px 10px 5px; - padding-right: 25px; - position: relative; -} -.lm_header .lm_tab i { - width: 2px; - height: 19px; - position: absolute; -} -.lm_header .lm_tab i.lm_left { - top: 0; - left: -2px; -} -.lm_header .lm_tab i.lm_right { - top: 0; - right: -2px; -} -.lm_header .lm_tab .lm_title { - display: inline-block; - overflow: hidden; - text-overflow: ellipsis; -} -.lm_header .lm_tab .lm_close_tab { - width: 14px; - height: 14px; - position: absolute; - top: 0; - right: 0; - text-align: center; -} -.lm_stack { - position: relative; -} -.lm_stack > .lm_items { - overflow: hidden; -} -.lm_stack.lm_left > .lm_items { - position: absolute; - left: 20px; - top: 0; -} -.lm_stack.lm_right > .lm_items { - position: absolute; - right: 20px; - top: 0; -} -.lm_stack.lm_right > .lm_header { - position: absolute; - right: 0; - top: 0; -} -.lm_stack.lm_bottom > .lm_items { - position: absolute; - bottom: 20px; -} -.lm_stack.lm_bottom > .lm_header { - position: absolute; - bottom: 0; -} -.lm_stack.lm_docked { - overflow: visible; - z-index: 3; -} -.lm_stack.lm_docked > .lm_header { - z-index: 5; -} -.lm_stack.lm_docked > .lm_items { - *z-index: 3; - transition: height 0.4s ease-in; - border: solid 2px; - border-image-slice: 1 !important; - margin: -2px 0; -} -.lm_stack.lm_docked.lm_left > .lm_items, -.lm_stack.lm_docked.lm_right > .lm_items { - transition: width 0.4s ease-in, height 0.001s linear; -} -.lm_left.lm_stack .lm_header, -.lm_right.lm_stack .lm_header { - height: 100%; -} -.lm_left.lm_dragProxy .lm_header, -.lm_right.lm_dragProxy .lm_header, -.lm_left.lm_dragProxy .lm_items, -.lm_right.lm_dragProxy .lm_items { - float: left; -} -.lm_left.lm_dragProxy .lm_header, -.lm_right.lm_dragProxy .lm_header, -.lm_left.lm_stack .lm_header, -.lm_right.lm_stack .lm_header { - width: 20px; - vertical-align: top; -} -.lm_left.lm_dragProxy .lm_header .lm_tabs, -.lm_right.lm_dragProxy .lm_header .lm_tabs, -.lm_left.lm_stack .lm_header .lm_tabs, -.lm_right.lm_stack .lm_header .lm_tabs { - transform-origin: left top; - top: 0; - width: 1000px; - /*hack*/ -} -.lm_left.lm_dragProxy .lm_header .lm_controls, -.lm_right.lm_dragProxy .lm_header .lm_controls, -.lm_left.lm_stack .lm_header .lm_controls, -.lm_right.lm_stack .lm_header .lm_controls { - bottom: 0; -} -.lm_dragProxy.lm_left .lm_header .lm_tabs, -.lm_stack.lm_left .lm_header .lm_tabs { - transform: rotate(-90deg) scaleX(-1); - left: 0; -} -.lm_dragProxy.lm_left .lm_header .lm_tabs .lm_tab, -.lm_stack.lm_left .lm_header .lm_tabs .lm_tab { - transform: scaleX(-1); - margin-top: 1px; -} -.lm_dragProxy.lm_left .lm_header .lm_tabdropdown_list, -.lm_stack.lm_left .lm_header .lm_tabdropdown_list { - top: initial; - right: initial; - left: 20px; -} -.lm_dragProxy.lm_right .lm_content { - float: left; -} -.lm_dragProxy.lm_right .lm_header .lm_tabs, -.lm_stack.lm_right .lm_header .lm_tabs { - transform: rotate(90deg) scaleX(1); - left: 100%; - margin-left: 0; -} -.lm_dragProxy.lm_right .lm_header .lm_controls, -.lm_stack.lm_right .lm_header .lm_controls { - left: 3px; -} -.lm_dragProxy.lm_right .lm_header .lm_tabdropdown_list, -.lm_stack.lm_right .lm_header .lm_tabdropdown_list { - top: initial; - right: 20px; -} -.lm_dragProxy.lm_bottom .lm_header, -.lm_stack.lm_bottom .lm_header { - width: 100%; -} -.lm_dragProxy.lm_bottom .lm_header .lm_tab, -.lm_stack.lm_bottom .lm_header .lm_tab { - margin-top: 0; - border-top: none; -} -.lm_dragProxy.lm_bottom .lm_header .lm_controls, -.lm_stack.lm_bottom .lm_header .lm_controls { - top: 3px; -} -.lm_dragProxy.lm_bottom .lm_header .lm_tabdropdown_list, -.lm_stack.lm_bottom .lm_header .lm_tabdropdown_list { - top: initial; - bottom: 20px; -} -.lm_drop_tab_placeholder { - float: left; - width: 100px; - height: 10px; - visibility: hidden; -} -.lm_header .lm_controls .lm_tabdropdown:before { - content: ''; - width: 0; - height: 0; - vertical-align: middle; - display: inline-block; - border-top: 5px dashed; - border-right: 5px solid transparent; - border-left: 5px solid transparent; - color: white; -} -.lm_header .lm_tabdropdown_list { - position: absolute; - top: 20px; - right: 0; - z-index: 5; - overflow: hidden; -} -.lm_header .lm_tabdropdown_list .lm_tab { - clear: both; - padding-right: 10px; - margin: 0; -} -.lm_header .lm_tabdropdown_list .lm_tab .lm_title { - width: 100px; -} -.lm_header .lm_tabdropdown_list .lm_close_tab { - display: none !important; -} -/*********************************** -* Drag Proxy -***********************************/ -.lm_dragProxy { - position: absolute; - top: 0; - left: 0; - z-index: 30; -} -.lm_dragProxy .lm_header { - background: transparent; -} -.lm_dragProxy .lm_content { - border-top: none; - overflow: hidden; -} -.lm_dropTargetIndicator { - display: none; - position: absolute; - z-index: 20; - transition: all 200ms ease; -} -.lm_dropTargetIndicator .lm_inner { - width: 100%; - height: 100%; - position: relative; - top: 0; - left: 0; -} -.lm_transition_indicator { - display: none; - width: 20px; - height: 20px; - position: absolute; - top: 0; - left: 0; - z-index: 20; -} -.lm_popin { - width: 20px; - height: 20px; - position: absolute; - bottom: 0; - right: 0; - z-index: 9999; -} -.lm_popin > * { - width: 100%; - height: 100%; - position: absolute; - top: 0; - left: 0; -} -.lm_popin > .lm_bg { - z-index: 10; -} -.lm_popin > .lm_icon { - z-index: 20; -} -.lm_goldenlayout { - background: #000000; -} -.lm_content { - background: #222222; - border: 1px solid transparent; -} -.lm_dragProxy .lm_content { - box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.9); -} -.lm_dropTargetIndicator { - box-shadow: inset 0 0 30px #000000; - outline: 1px dashed #cccccc; -} -.lm_dropTargetIndicator .lm_inner { - background: #000000; - opacity: 0.2; -} -.lm_splitter { - background: #000000; - opacity: 0.001; - transition: opacity 200ms ease; -} -.lm_splitter:hover, -.lm_splitter.lm_dragging { - background: #444444; - opacity: 1; -} -.lm_header { - height: 20px; -} -.lm_header .lm_tab { - font-family: Arial, sans-serif; - font-size: 12px; - color: #999999; - background: #111111; - box-shadow: 2px -2px 2px rgba(0, 0, 0, 0.3); - margin-right: 2px; - padding-bottom: 2px; - padding-top: 2px; - /*.lm_title // Present in LIGHT Theme - { - padding-top:1px; - }*/ -} -.lm_header .lm_tab .lm_close_tab { - width: 11px; - height: 11px; - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAQUlEQVR4nHXOQQ4AMAgCQeT/f6aXpsGK3jSTuCVJAAr7iBdoAwCKd0nwfaAdHbYERw5b44+E8JoBjEYGMBq5gAYP3usUDu2IvoUAAAAASUVORK5CYII="); - background-position: center center; - background-repeat: no-repeat; - top: 4px; - right: 6px; - opacity: 0.4; -} -.lm_header .lm_tab .lm_close_tab:hover { - opacity: 1; -} -.lm_header .lm_tab.lm_active { - border-bottom: none; - box-shadow: 0 -2px 2px #000000; - padding-bottom: 3px; -} -.lm_header .lm_tab.lm_active .lm_close_tab { - opacity: 1; -} -.lm_dragProxy.lm_right .lm_header .lm_tab.lm_active, -.lm_stack.lm_right .lm_header .lm_tab.lm_active { - box-shadow: 2px -2px 2px #000000; -} -.lm_dragProxy.lm_bottom .lm_header .lm_tab, -.lm_stack.lm_bottom .lm_header .lm_tab { - box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3); -} -.lm_dragProxy.lm_bottom .lm_header .lm_tab.lm_active, -.lm_stack.lm_bottom .lm_header .lm_tab.lm_active { - box-shadow: 0 2px 2px #000000; -} -.lm_selected .lm_header { - background-color: #452500; -} -.lm_tab:hover, -.lm_tab.lm_active { - background: #222222; - color: #dddddd; -} -.lm_header .lm_controls .lm_tabdropdown:before { - color: #ffffff; -} -.lm_controls > li { - position: relative; - background-position: center center; - background-repeat: no-repeat; - opacity: 0.4; - transition: opacity 300ms ease; -} -.lm_controls > li:hover { - opacity: 1; -} -.lm_controls .lm_popout { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAPklEQVR4nI2Q0QoAIAwCNfr/X7aXCpGN8snBdgejJOzckpkxs9jR6K6T5JpU0nWl5pSXTk7qwh8SnNT+CAAWCgkKFpuSWsUAAAAASUVORK5CYII="); -} -.lm_controls .lm_maximise { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAKElEQVR4nGP8////fwYCgImQAgYGBgYWKM2IR81/okwajIpgvsMbVgAwgQYRVakEKQAAAABJRU5ErkJggg=="); -} -.lm_controls .lm_close { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAQUlEQVR4nHXOQQ4AMAgCQeT/f6aXpsGK3jSTuCVJAAr7iBdoAwCKd0nwfaAdHbYERw5b44+E8JoBjEYGMBq5gAYP3usUDu2IvoUAAAAASUVORK5CYII="); -} -.lm_controls .lm_dock { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QQLExoPDb+5JQAAAKZJREFUOMvV0tENgjAUhWFGYBQ20FG6iYzgBo4gG8gIbAAbyAafD5akwWIATYz3sWn+e/qfFsUvBsevQDzn8gmkRI8a3W4YGjQJdD0MFQ44YUQ5S/geFgF99NFhyEmOz5QtIG4a0aYJMneuSwvmiUaEhebu0Vm51s8LLKaotzY1OQjJWbvpUyJESD0li26g2goJs2feMOyCZJxVuyFp7WvTnJcg/zkPjGQks0ox9/8AAAAASUVORK5CYII="); - transform: rotate(-45deg); - transition: transform 300ms; -} -.lm_stack.lm_docked .lm_controls .lm_dock { - transform: rotate(0deg); -} -.lm_stack.lm_docked > .lm_items { - border-color: #555555; - border-image: linear-gradient(to right, #444444 1%, #999999 100%); - box-shadow: 0 2px 2px #000000; -} -.lm_maximised .lm_header { - background-color: #000000; -} -.lm_maximised .lm_controls .lm_maximise { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAJ0lEQVR4nGP8//8/AzGAiShVI1YhCwMDA8OsWbPwBmZaWhoj0SYCAN1lBxMAX4n0AAAAAElFTkSuQmCC"); -} -.lm_transition_indicator { - background-color: #000000; - border: 1px dashed #555555; -} -.lm_popin { - cursor: pointer; -} -.lm_popin .lm_bg { - background: #ffffff; - opacity: 0.3; -} -.lm_popin .lm_icon { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAJCAYAAADpeqZqAAAAWklEQVR4nJWOyw3AIAxDHcQC7L8jbwT3AlJBfNp3SiI7dtRaLSlKKeoA1oEsKSQZCEluexw8Tm3ohk+E7bnOUHUGcNh+HwbBygw4AZ7FN/Lt84p0l+yTflV8AKQyLdcCRJi/AAAAAElFTkSuQmCC"); - background-position: center center; - background-repeat: no-repeat; - border-left: 1px solid #eeeeee; - border-top: 1px solid #eeeeee; - opacity: 0.7; -} -.lm_popin:hover .lm_icon { - opacity: 1; -} - -/*# sourceMappingURL=goldenlayout.css.map*/ \ No newline at end of file diff --git a/webAO/golden/css/goldenlayout.css.map b/webAO/golden/css/goldenlayout.css.map deleted file mode 100644 index ea8f7a7..0000000 --- a/webAO/golden/css/goldenlayout.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"css\\goldenlayout.css","sources":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","sourceRoot":""} \ No newline at end of file diff --git a/webAO/golden/js/goldenlayout.js b/webAO/golden/js/goldenlayout.js deleted file mode 100644 index 395a692..0000000 --- a/webAO/golden/js/goldenlayout.js +++ /dev/null @@ -1,3 +0,0 @@ -!function($){var lm={config:{},container:{},controls:{},errors:{},items:{},utils:{}};lm.utils.F=function(){},lm.utils.extend=function(t,e){t.prototype=lm.utils.createObject(e.prototype),t.prototype.contructor=t},lm.utils.createObject=function(t){return"function"==typeof Object.create?Object.create(t):(lm.utils.F.prototype=t,new lm.utils.F)},lm.utils.objectKeys=function(t){var e,i;if("function"==typeof Object.keys)return Object.keys(t);e=[];for(i in t)e.push(i);return e},lm.utils.getHashValue=function(t){var e=location.hash.match(new RegExp(t+"=([^&]*)"));return e?e[1]:null},lm.utils.getQueryStringParam=function(t){if(window.location.hash)return lm.utils.getHashValue(t);if(!window.location.search)return null;var e,i,n=window.location.search.substr(1).split("&"),s={};for(i=0;i/g,">").replace(/]+)>)/gi,""))},lm.utils.EventEmitter=function(){this._mSubscriptions={},this._mSubscriptions[lm.utils.EventEmitter.ALL_EVENT]=[],this.on=function(t,e,i){if(!lm.utils.isFunction(e))throw new Error("Tried to listen to event "+t+" with non-function callback "+e);this._mSubscriptions[t]||(this._mSubscriptions[t]=[]),this._mSubscriptions[t].push({fn:e,ctx:i})},this.emit=function(t){var e,i,n;if(n=Array.prototype.slice.call(arguments,1),this._mSubscriptions[t])for(e=0;ethis._nDistance||Math.abs(this._nY)>this._nDistance)&&(clearTimeout(this._timeout),this._startDrag()),this._bDragging&&this.emit("drag",this._nX,this._nY,t)}},onMouseUp:function(t){null!=this._timeout&&(clearTimeout(this._timeout),this._eBody.removeClass("lm_dragging"),this._eElement.removeClass("lm_dragging"),this._oDocument.find("iframe").css("pointer-events",""),this._oDocument.unbind("mousemove touchmove",this._fMove),this._bDragging===!0&&(this._bDragging=!1,this.emit("dragStop",t,this._nOriginalX+this._nX)))},_startDrag:function(){this._bDragging=!0,this._eBody.addClass("lm_dragging"),this._eElement.addClass("lm_dragging"),this._oDocument.find("iframe").css("pointer-events","none"),this.emit("dragStart",this._nOriginalX,this._nOriginalY)},_getCoordinates:function(t){return t=t.originalEvent&&t.originalEvent.touches?t.originalEvent.touches[0]:t,{x:t.pageX,y:t.pageY}}}),lm.LayoutManager=function(t,e){if(!$||"function"!=typeof $.noConflict){var i="jQuery is missing as dependency for GoldenLayout. ";throw i+='Please either expose $ on GoldenLayout\'s scope (e.g. window) or add "jquery" to ',i+="your paths when using RequireJS/AMD",new Error(i)}lm.utils.EventEmitter.call(this),this.isInitialised=!1,this._isFullPage=!1,this._resizeTimeoutId=null,this._components={"lm-react-component":lm.utils.ReactComponentHandler},this._itemAreas=[],this._resizeFunction=lm.utils.fnBind(this._onResize,this),this._unloadFunction=lm.utils.fnBind(this._onUnload,this),this._maximisedItem=null,this._maximisePlaceholder=$('
'),this._creationTimeoutPassed=!1,this._subWindowsCreated=!1,this._dragSources=[],this._updatingColumnsResponsive=!1,this._firstLoad=!0,this.width=null,this.height=null,this.root=null,this.openPopouts=[],this.selectedItem=null,this.isSubWindow=!1,this.eventHub=new lm.utils.EventHub(this),this.config=this._createConfig(t),this.container=e,this.dropTargetIndicator=null,this.transitionIndicator=null,this.tabDropPlaceholder=$('
'),this.isSubWindow===!0&&$("body").css("visibility","hidden"),this._typeToItem={column:lm.utils.fnBind(lm.items.RowOrColumn,this,[!0]),row:lm.utils.fnBind(lm.items.RowOrColumn,this,[!1]),stack:lm.items.Stack,component:lm.items.Component}},lm.LayoutManager.__lm=lm,lm.LayoutManager.minifyConfig=function(t){return(new lm.utils.ConfigMinifier).minifyConfig(t)},lm.LayoutManager.unminifyConfig=function(t){return(new lm.utils.ConfigMinifier).unminifyConfig(t)},lm.utils.copy(lm.LayoutManager.prototype,{registerComponent:function(t,e){if("function"!=typeof e)throw new Error("Please register a constructor function");if(void 0!==this._components[t])throw new Error("Component "+t+" is already registered");this._components[t]=e},toConfig:function(t){var e,i,n;if(this.isInitialised===!1)throw new Error("Can't create config, layout not yet initialised");if(t&&!(t instanceof lm.items.AbstractContentItem))throw new Error("Root must be a ContentItem");for(e={settings:lm.utils.copy({},this.config.settings),dimensions:lm.utils.copy({},this.config.dimensions),labels:lm.utils.copy({},this.config.labels)},e.content=[],i=function(t,e){var n,s;for(n in e.config)"content"!==n&&(t[n]=e.config[n]);if(e.contentItems.length)for(t.content=[],s=0;sn.x1&&tn.y1&&en.surface&&(s=n.surface,o=n);return o},_$createRootItemAreas:function(){var areaSize=50,sides={y2:0,x2:0,y1:"y2",x1:"x2"};for(side in sides){var area=this.root._$getArea();with(area.side=side,sides[side]?area[side]=area[sides[side]]-areaSize:area[side]=areaSize,area)surface=(x2-x1)*(y2-y1);this._itemAreas.push(area)}},_$calculateItemAreas:function(){var i,area,allContentItems=this._getAllContentItems();if(this._itemAreas=[],1===allContentItems.length)return void this._itemAreas.push(this.root._$getArea());for(this._$createRootItemAreas(),i=0;i
');t.click(lm.utils.fnBind(function(){this.emit("popIn")},this)),document.title=lm.utils.stripTags(this.config.content[0].title),$("head").append($("body link, body style, template, .gl_keep")),this.container=$("body").html("").css("visibility","visible").append(t);document.body.offsetHeight;window.__glInstance=this},_createSubWindows:function(){var t,e;for(t=0;t1)throw new Error("GoldenLayout more than one container element specified");t[0]===document.body&&(this._isFullPage=!0,$("html, body").css({height:"100%",margin:0,padding:0,overflow:"hidden"})),this.container=t},_create:function(t){var e;if(!(t.content instanceof Array))throw e=void 0===t.content?"Missing setting 'content' on top level of configuration":"Configuration parameter 'content' must be an array",new lm.errors.ConfigurationError(e,t);if(t.content.length>1)throw e="Top level content can't contain more then one element.",new lm.errors.ConfigurationError(e,t);this.root=new lm.items.Root(this,{content:t.content},this.container),this.root.callDownwards("_$init"),"__glMaximised"===t.maximisedItemId&&this.root.getItemsById(t.maximisedItemId)[0].toggleMaximise()},_onUnload:function(){if(this.config.settings.closePopoutsOnUnload===!0)for(var t=0;t','
',""].join("")),this._contentElement=this._element.find(".lm_content")},lm.utils.copy(lm.container.ItemContainer.prototype,{getElement:function(){return this._contentElement},hide:function(){this.emit("hide"),this.isHidden=!0,this._element.hide()},show:function(){this.emit("show"),this.isHidden=!1,this._element.show(),0==this.height&&0==this.width||this.emit("shown")},setSize:function(t,e){for(var i,n,s,o,r,a,h=this.parent,l=this;!h.isColumn&&!h.isRow;)if(l=h,h=h.parent,h.isRoot)return!1;for(s=h.isColumn?"height":"width",o="height"===s?e:t,i=this[s]*(1/(l.config[s]/100)),n=o/i*100,r=(l.config[s]-n)/(h.contentItems.length-1),a=0;a0?this._layoutManager.root.contentItems[0]:this._layoutManager.root,i=0)),e.addChild(t,this._indexInParent),this.close()},_createWindow:function(){var t,e=this._createUrl(),i=Math.floor(1e6*Math.random()).toString(36),n=this._serializeWindowOptions({width:this._dimensions.width,height:this._dimensions.height,innerWidth:this._dimensions.width,innerHeight:this._dimensions.height,menubar:"no",toolbar:"no",location:"no",personalbar:"no",resizable:"yes",scrollbars:"no",status:"no"});if(this._popoutWindow=window.open(e,i,n),this._popoutWindow)$(this._popoutWindow).on("load",lm.utils.fnBind(this._positionWindow,this)).on("unload beforeunload",lm.utils.fnBind(this._onClose,this)),t=setInterval(lm.utils.fnBind(function(){this._popoutWindow.__glInstance&&this._popoutWindow.__glInstance.isInitialised&&(this._onInitialised(),clearInterval(t))},this),10);else if(this._layoutManager.config.settings.blockedPopoutsThrowError===!0){var s=new Error("Popout blocked");throw s.type="popoutBlocked",s}},_serializeWindowOptions:function(t){var e,i=[];for(e in t)i.push(e+"="+t[e]);return i.join(",")},_createUrl:function(){var t,e={content:this._config},i="gl-window-config-"+lm.utils.getUniqueId();e=(new lm.utils.ConfigMinifier).minifyConfig(e);try{localStorage.setItem(i,JSON.stringify(e))}catch(n){throw new Error("Error while writing to localStorage "+n.toString())}return t=document.location.href.split("?"),1===t.length?t[0]+"?gl-window="+i:document.location.href+"&gl-window="+i},_positionWindow:function(){this._popoutWindow.moveTo(this._dimensions.left,this._dimensions.top),this._popoutWindow.focus()},_onInitialised:function(){this.isInitialised=!0,this.getGlInstance().on("popIn",this.popIn,this),this.emit("initialised")},_onClose:function(){setTimeout(lm.utils.fnBind(this.emit,this,["closed"]),50)}}),lm.controls.DragProxy=function(t,e,i,n,s,o){lm.utils.EventEmitter.call(this),this._dragListener=i,this._layoutManager=n,this._contentItem=s,this._originalParent=o,this._area=null,this._lastValidArea=null,this._dragListener.on("drag",this._onDrag,this),this._dragListener.on("dragStop",this._onDrop,this),this.element=$(lm.controls.DragProxy._template),o&&o._side&&(this._sided=o._sided,this.element.addClass("lm_"+o._side),["right","bottom"].indexOf(o._side)>=0&&this.element.find(".lm_content").after(this.element.find(".lm_header"))),this.element.css({left:t,top:e}),this.element.find(".lm_tab").attr("title",lm.utils.stripTags(this._contentItem.config.title)),this.element.find(".lm_title").html(this._contentItem.config.title),this.childElementContainer=this.element.find(".lm_content"),this.childElementContainer.append(s.element),this._updateTree(),this._layoutManager._$calculateItemAreas(),this._setDimensions(),$(document.body).append(this.element);var r=this._layoutManager.container.offset();this._minX=r.left,this._minY=r.top,this._maxX=this._layoutManager.container.width()+this._minX,this._maxY=this._layoutManager.container.height()+this._minY,this._width=this.element.width(),this._height=this.element.height(),this._setDropPosition(t,e)},lm.controls.DragProxy._template='
',lm.utils.copy(lm.controls.DragProxy.prototype,{_onDrag:function(t,e,i){i=i.originalEvent&&i.originalEvent.touches?i.originalEvent.touches[0]:i;var n=i.pageX,s=i.pageY,o=n>this._minX&&nthis._minY&&s
',lm.utils.copy(lm.controls.DropTargetIndicator.prototype,{destroy:function(){this.element.remove()},highlight:function(t,e,i,n){this.highlightArea({x1:t,y1:e,x2:i,y2:n})},highlightArea:function(t){this.element.css({left:t.x1,top:t.y1,width:t.x2-t.x1,height:t.y2-t.y1}).show()},hide:function(){this.element.hide()}}),lm.controls.Header=function(t,e){lm.utils.EventEmitter.call(this),this.layoutManager=t,this.element=$(lm.controls.Header._template),this.layoutManager.config.settings.selectionEnabled===!0&&(this.element.addClass("lm_selectable"),this.element.on("click touchstart",lm.utils.fnBind(this._onHeaderClick,this))),this.tabsContainer=this.element.find(".lm_tabs"),this.tabDropdownContainer=this.element.find(".lm_tabdropdown_list"),this.tabDropdownContainer.hide(),this.controlsContainer=this.element.find(".lm_controls"),this.parent=e,this.parent.on("resize",this._updateTabSizes,this),this.tabs=[],this.activeContentItem=null,this.closeButton=null,this.tabDropdownButton=null,$(document).mouseup(lm.utils.fnBind(this._hideAdditionalTabsDropdown,this)),this._lastVisibleTabIndex=-1,this._tabControlOffset=10,this._createControls()},lm.controls.Header._template=['
','
    ','
      ','
        ',"
        "].join(""),lm.utils.copy(lm.controls.Header.prototype,{createTab:function(t,e){var i,n;for(n=0;n0?this.tabs[e-1].element.after(i.element):this.tabs[0].element.before(i.element),this.tabs.splice(e,0,i),void this._updateTabSizes())},removeTab:function(t){for(var e=0;ethis._lastVisibleTabIndex){for(s=this.tabs[this.parent.config.activeItemIndex],i=this.parent.config.activeItemIndex;i>0;i--)this.tabs[i]=this.tabs[i-1];this.tabs[0]=s,this.parent.config.activeItemIndex=0}this._updateTabSizes(),this.parent.emitBubblingEvent("stateChanged")},position:function(t){var e=this.parent._header.show;return e&&!this.parent._side&&(e="top"),void 0!==t&&this.parent._header.show!=t&&(this.parent._header.show=t,this.parent._setupHeaderPosition()),e},_$setClosable:function(t){return!(!this.closeButton||!this._isClosable())&&(this.closeButton.element[t?"show":"hide"](),!0)},_$destroy:function(){this.emit("destroy",this);for(var t=0;to&&a?(e.data("lastTabWidth",s),this.tabDropdownContainer.append(e)):(a=!0,this._lastVisibleTabIndex=i,e.removeData("lastTabWidth"),this.tabsContainer.append(e));n=r>o,this.tabDropdownButton.element[n?"show":"hide"]()}}}),lm.controls.HeaderButton=function(t,e,i,n){this._header=t,this.element=$('
      • '),this._header.on("destroy",this._$destroy,this),this._action=n,this.element.on("click touchstart",this._action),this._header.controlsContainer.append(this.element)},lm.utils.copy(lm.controls.HeaderButton.prototype,{_$destroy:function(){this.element.off(),this.element.remove()}}),lm.controls.Splitter=function(t,e){this._isVertical=t,this._size=e,this.element=this._createElement(),this._dragListener=new lm.utils.DragListener(this.element)},lm.utils.copy(lm.controls.Splitter.prototype,{on:function(t,e,i){this._dragListener.on(t,e,i)},_$destroy:function(){this.element.remove()},_createElement:function(){var t=$('
        ');return t.addClass("lm_"+(this._isVertical?"vertical":"horizontal")),t[this._isVertical?"height":"width"](this._size),t}}),lm.controls.Tab=function(t,e){this.header=t,this.contentItem=e,this.element=$(lm.controls.Tab._template),this.titleElement=this.element.find(".lm_title"),this.closeElement=this.element.find(".lm_close_tab"),this.closeElement[e.config.isClosable?"show":"hide"](),this.isActive=!1,this.setTitle(e.config.title),this.contentItem.on("titleChanged",this.setTitle,this),this._layoutManager=this.contentItem.layoutManager,this._layoutManager.config.settings.reorderEnabled===!0&&e.config.reorderEnabled===!0&&(this._dragListener=new lm.utils.DragListener(this.element),this._dragListener.on("dragStart",this._onDragStart,this)),this._onTabClickFn=lm.utils.fnBind(this._onTabClick,this),this._onCloseClickFn=lm.utils.fnBind(this._onCloseClick,this),this.element.on("mousedown touchstart",this._onTabClickFn),this.contentItem.config.isClosable?this.closeElement.on("click touchstart",this._onCloseClickFn):this.closeElement.remove(),this.contentItem.tab=this,this.contentItem.emit("tab",this),this.contentItem.layoutManager.emit("tabCreated",this),this.contentItem.isComponent&&(this.contentItem.container.tab=this,this.contentItem.container.emit("tab",this))},lm.controls.Tab._template='
      • ',lm.utils.copy(lm.controls.Tab.prototype,{setTitle:function(t){this.element.attr("title",lm.utils.stripTags(t)),this.titleElement.html(t)},setActive:function(t){t!==this.isActive&&(this.isActive=t,t?this.element.addClass("lm_active"):this.element.removeClass("lm_active"))},_$destroy:function(){this.element.off("mousedown touchstart",this._onTabClickFn),this.closeElement.off("click touchstart",this._onCloseClickFn),this._dragListener&&(this._dragListener.off("dragStart",this._onDragStart),this._dragListener=null),this.element.remove()},_onDragStart:function(t,e){this.contentItem.parent.isMaximised===!0&&this.contentItem.parent.toggleMaximise(),new lm.controls.DragProxy(t,e,this._dragListener,this._layoutManager,this.contentItem,this.header.parent)},_onTabClick:function(t){if(0===t.button||"touchstart"===t.type){var e=this.header.parent.getActiveContentItem();this.contentItem!==e&&this.header.parent.setActiveContentItem(this.contentItem)}else 1===t.button&&this.contentItem.config.isClosable&&this._onCloseClick(t)},_onCloseClick:function(t){t.stopPropagation(),this.header.parent.removeChild(this.contentItem)}}),lm.controls.TransitionIndicator=function(){this._element=$('
        '),$(document.body).append(this._element),this._toElement=null,this._fromDimensions=null,this._totalAnimationDuration=200,this._animationStartTime=null},lm.utils.copy(lm.controls.TransitionIndicator.prototype,{destroy:function(){this._element.remove()},transitionElements:function(t,e){},_nextAnimationFrame:function(){var t,e=this._measure(this._toElement),i=(lm.utils.now()-this._animationStartTime)/this._totalAnimationDuration,n={};if(i>=1)return void this._element.hide();e.opacity=0;for(t in this._fromDimensions)n[t]=this._fromDimensions[t]+(e[t]-this._fromDimensions[t])*i;this._element.css(n),lm.utils.animFrame(lm.utils.fnBind(this._nextAnimationFrame,this))},_measure:function(t){var e=t.offset();return{left:e.left,top:e.top,width:t.outerWidth(),height:t.outerHeight()}}}),lm.errors.ConfigurationError=function(t,e){Error.call(this),this.name="Configuration Error",this.message=t,this.node=e},lm.errors.ConfigurationError.prototype=new Error,lm.items.AbstractContentItem=function(t,e,i){lm.utils.EventEmitter.call(this),this.config=this._extendItemNode(e),this.type=e.type,this.contentItems=[],this.parent=i,this.isInitialised=!1,this.isMaximised=!1,this.isRoot=!1,this.isRow=!1,this.isColumn=!1,this.isStack=!1,this.isComponent=!1,this.layoutManager=t,this._pendingEventPropagations={},this._throttledEvents=["stateChanged"],this.on(lm.utils.EventEmitter.ALL_EVENT,this._propagateEvent,this),e.content&&this._createContentItems(e)},lm.utils.copy(lm.items.AbstractContentItem.prototype,{setSize:function(){throw new Error("Abstract Method")},callDownwards:function(t,e,i,n){var s;for(i!==!0&&n!==!0&&this[t].apply(this,e||[]),s=0;s0?this.callDownwards("setSize"):this instanceof lm.items.Root||this.config.isClosable!==!0||this.parent.removeChild(this)},addChild:function(t,e){void 0===e&&(e=this.contentItems.length),this.contentItems.splice(e,0,t),void 0===this.config.content&&(this.config.content=[]),this.config.content.splice(e,0,t.config),t.parent=this,t.parent.isInitialised===!0&&t.isInitialised===!1&&t._$init()},replaceChild:function(t,e,i){e=this.layoutManager._$normalizeContentItem(e);var n=lm.utils.indexOf(t,this.contentItems),s=t.element[0].parentNode;if(n===-1)throw new Error("Can't replace child. oldChild is not child of this");s.replaceChild(e.element[0],t.element[0]),i===!0&&(t.parent=null,t._$destroy()),this.contentItems[n]=e,e.parent=this,this.isStack&&(this.header.tabs[n].contentItem=e),e.parent.isInitialised===!0&&e.isInitialised===!1&&e._$init(),this.callDownwards("setSize")},remove:function(){this.parent.removeChild(this)},popout:function(){var t=this.layoutManager.createPopout(this);return this.emitBubblingEvent("stateChanged"),t},toggleMaximise:function(t){t&&t.preventDefault(),this.isMaximised===!0?this.layoutManager._$minimiseItem(this):this.layoutManager._$maximiseItem(this),this.isMaximised=!this.isMaximised,this.emitBubblingEvent("stateChanged")},select:function(){this.layoutManager.selectedItem!==this&&(this.layoutManager.selectItem(this,!0),this.element.addClass("lm_selected"))},deselect:function(){this.layoutManager.selectedItem===this&&(this.layoutManager.selectedItem=null,this.element.removeClass("lm_selected"))},setTitle:function(t){this.config.title=t,this.emit("titleChanged",t),this.emit("stateChanged")},hasId:function(t){return!!this.config.id&&("string"==typeof this.config.id?this.config.id===t:this.config.id instanceof Array?lm.utils.indexOf(t,this.config.id)!==-1:void 0)},addId:function(t){this.hasId(t)||(this.config.id?"string"==typeof this.config.id?this.config.id=[this.config.id,t]:this.config.id instanceof Array&&this.config.id.push(t):this.config.id=t)},removeId:function(t){if(!this.hasId(t))throw new Error("Id not found");if("string"==typeof this.config.id)delete this.config.id;else if(this.config.id instanceof Array){var e=lm.utils.indexOf(t,this.config.id);this.config.id.splice(e,1)}},getItemsByFilter:function(t){var e=[],i=function(n){for(var s=0;s'),this.childElementContainer=this.element,this._containerElement=i,this._containerElement.append(this.element)},lm.utils.extend(lm.items.Root,lm.items.AbstractContentItem),lm.utils.copy(lm.items.Root.prototype,{addChild:function(t){if(this.contentItems.length>0)throw new Error("Root node can only have a single child");t=this.layoutManager._$normalizeContentItem(t,this),this.childElementContainer.append(t.element),lm.items.AbstractContentItem.prototype.addChild.call(this,t),this.callDownwards("setSize"),this.emitBubblingEvent("stateChanged")},setSize:function(t,e){t="undefined"==typeof t?this._containerElement.width():t,e="undefined"==typeof e?this._containerElement.height():e,this.element.width(t),this.element.height(e),this.contentItems[0]&&(this.contentItems[0].element.width(t),this.contentItems[0].element.height(e))},_$highlightDropZone:function(t,e,i){this.layoutManager.tabDropPlaceholder.remove(),lm.items.AbstractContentItem.prototype._$highlightDropZone.apply(this,arguments)},_$onDrop:function(t,e){var i;if(t.isComponent&&(i=this.layoutManager.createContentItem({type:"stack",header:t.config.header||{}},this),i._$init(),i.addChild(t),t=i),this.contentItems.length){var n="x"==e.side[0]?"row":"column",s="x"==e.side[0]?"width":"height",o="2"==e.side[1],r=this.contentItems[0];if(!r instanceof lm.items.RowOrColumn||r.type!=n){var a=this.layoutManager.createContentItem({type:n},this);this.replaceChild(r,a),a.addChild(t,o?0:void 0,!0),a.addChild(r,o?void 0:0,!0),r.config[s]=50,t.config[s]=50,a.callDownwards("setSize")}else{var h=r.contentItems[o?0:r.contentItems.length-1];r.addChild(t,o?0:void 0,!0),h.config[s]*=.5,t.config[s]=h.config[s],r.callDownwards("setSize")}}else this.addChild(t)}}),lm.items.RowOrColumn=function(t,e,i,n){lm.items.AbstractContentItem.call(this,e,i,n),this.isRow=!t,this.isColumn=t,this.element=$('
        '),this.childElementContainer=this.element,this._splitterSize=e.config.dimensions.borderWidth,this._isColumn=t,this._dimension=t?"height":"width",this._splitter=[],this._splitterPosition=null,this._splitterMinPosition=null,this._splitterMaxPosition=null},lm.utils.extend(lm.items.RowOrColumn,lm.items.AbstractContentItem),lm.utils.copy(lm.items.RowOrColumn.prototype,{addChild:function(t,e,i){var n,s,o,r;if(t=this.layoutManager._$normalizeContentItem(t,this),void 0===e&&(e=this.contentItems.length),this.contentItems.length>0?(r=this._createSplitter(Math.max(0,e-1)).element,e>0?(this.contentItems[e-1].element.after(r),r.after(t.element)):(this.contentItems[0].element.before(r),r.before(t.element))):this.childElementContainer.append(t.element),lm.items.AbstractContentItem.prototype.addChild.call(this,t,e),n=1/this.contentItems.length*100,i===!0)return void this.emitBubblingEvent("stateChanged");for(o=0;o0&&(this._calculateRelativeSizes(),this._setAbsoluteSizes()),this.emitBubblingEvent("stateChanged"),this.emit("resize")},_$init:function(){if(this.isInitialised!==!0){var t;for(lm.items.AbstractContentItem.prototype._$init.call(this),t=0;t0&&e.itemSizes[t]++,this._isColumn?(this.contentItems[t].element.width(e.totalWidth),this.contentItems[t].element.height(e.itemSizes[t])):(this.contentItems[t].element.width(e.itemSizes[t]),this.contentItems[t].element.height(e.totalHeight))},_calculateAbsoluteSizes:function(){var t,e,i,n=(this.contentItems.length-1)*this._splitterSize,s=this.element.width(),o=this.element.height(),r=0,a=[];for(this._isColumn?o-=n:s-=n,t=0;t0){for(t=0;t100)for(t=0;ta)){for(t=h/a,l=h,i=0;ithis._splitterMinPosition&&n'),this._activeContentItem=null;var n=t.config;this._header={show:n.settings.hasHeaders===!0&&e.hasHeaders!==!1,popout:n.settings.showPopoutIcon&&n.labels.popout,maximise:n.settings.showMaximiseIcon&&n.labels.maximise,close:n.settings.showCloseIcon&&n.labels.close,minimise:n.labels.minimise},n.header&&lm.utils.copy(this._header,n.header),e.header&&lm.utils.copy(this._header,e.header),e.content&&e.content[0]&&e.content[0].header&&lm.utils.copy(this._header,e.content[0].header),this._dropZones={},this._dropSegment=null,this._contentAreaDimensions=null,this._dropIndex=null,this.isStack=!0,this.childElementContainer=$('
        '),this.header=new lm.controls.Header(t,this),this.element.append(this.header.element),this.element.append(this.childElementContainer),this._setupHeaderPosition(),this._$validateClosability()},lm.utils.extend(lm.items.Stack,lm.items.AbstractContentItem),lm.utils.copy(lm.items.Stack.prototype,{setSize:function(){var t,e=this._header.show?this.layoutManager.config.dimensions.headerHeight:0,i=this.element.width()-(this._sided?e:0),n=this.element.height()-(this._sided?0:e);for(this.childElementContainer.width(i),this.childElementContainer.height(n),t=0;t0){if(e=this.contentItems[this.config.activeItemIndex||0],!e)throw new Error("Configured activeItemIndex out of bounds");this.setActiveContentItem(e)}}},setActiveContentItem:function(t){if(lm.utils.indexOf(t,this.contentItems)===-1)throw new Error("contentItem is not a child of this stack");null!==this._activeContentItem&&this._activeContentItem._$hide(),this._activeContentItem=t,this.header.setActiveContentItem(t),t._$show(),this.emit("activeContentItemChanged",t),this.emitBubblingEvent("stateChanged")},getActiveContentItem:function(){return this.header.activeContentItem},addChild:function(t,e){t=this.layoutManager._$normalizeContentItem(t,this),lm.items.AbstractContentItem.prototype.addChild.call(this,t,e),this.childElementContainer.append(t.element),this.header.createTab(t,e),this.setActiveContentItem(t),this.callDownwards("setSize"),this._$validateClosability(),this.emitBubblingEvent("stateChanged")},removeChild:function(t,e){var i=lm.utils.indexOf(t,this.contentItems);lm.items.AbstractContentItem.prototype.removeChild.call(this,t,e),this.header.removeTab(t),this.contentItems.length>0?this.setActiveContentItem(this.contentItems[Math.max(i-1,0)]):this._activeContentItem=null,this._$validateClosability(),this.emitBubblingEvent("stateChanged")},_$validateClosability:function(){var t,e,i;for(t=this.header._isClosable(),i=0,e=this.contentItems.length;it&&n.y1e)return void("header"===i?(this._dropSegment="header",this._highlightHeaderDropZone(this._sided?e:t)):(this._resetHeaderDropZone(),this._highlightBodyDropZone(i)))},_$getArea:function(){if(this.element.is(":visible")===!1)return null;var t=lm.items.AbstractContentItem.prototype._$getArea,e=t.call(this,this.header.element),i=t.call(this,this.childElementContainer),n=i.x2-i.x1,s=i.y2-i.y1;return this._contentAreaDimensions={header:{hoverArea:{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2},highlightArea:{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2}}},this._activeContentItem&&this._activeContentItem.isComponent===!1?e:0===this.contentItems.length?(this._contentAreaDimensions.body={hoverArea:{x1:i.x1,y1:i.y1,x2:i.x2,y2:i.y2},highlightArea:{x1:i.x1,y1:i.y1,x2:i.x2,y2:i.y2}},t.call(this,this.element)):(this._contentAreaDimensions.left={hoverArea:{x1:i.x1,y1:i.y1,x2:i.x1+.25*n,y2:i.y2},highlightArea:{x1:i.x1,y1:i.y1,x2:i.x1+.5*n,y2:i.y2}},this._contentAreaDimensions.top={hoverArea:{x1:i.x1+.25*n,y1:i.y1,x2:i.x1+.75*n,y2:i.y1+.5*s},highlightArea:{x1:i.x1,y1:i.y1,x2:i.x2,y2:i.y1+.5*s}},this._contentAreaDimensions.right={hoverArea:{x1:i.x1+.75*n,y1:i.y1,x2:i.x2,y2:i.y2},highlightArea:{x1:i.x1+.5*n,y1:i.y1,x2:i.x2,y2:i.y2}},this._contentAreaDimensions.bottom={hoverArea:{x1:i.x1+.25*n,y1:i.y1+.5*s,x2:i.x1+.75*n,y2:i.y2},highlightArea:{x1:i.x1,y1:i.y1+.5*s,x2:i.x2,y2:i.y2}},t.call(this,this.element))},_highlightHeaderDropZone:function(t){var e,i,n,s,o,r,a,h,l,m=this.header.tabs.length,c=!1;if(0===m)return a=this.header.element.offset(),void this.layoutManager.dropTargetIndicator.highlightArea({x1:a.left,x2:a.left+100,y1:a.top+this.header.element.height()-20,y2:a.top+this.header.element.height()});for(e=0;es&&t=0&&this._header.show;if(this.header.element.toggle(!!this._header.show),this._side=t,this._sided=["right","left"].indexOf(this._side)>=0,this.element.removeClass("lm_left lm_right lm_bottom"),this._side&&this.element.addClass("lm_"+this._side),this.element.find(".lm_header").length&&this.childElementContainer){var e=["right","bottom"].indexOf(this._side)>=0?"before":"after";this.header.element[e](this.childElementContainer),this.callDownwards("setSize")}},_highlightBodyDropZone:function(t){var e=this._contentAreaDimensions[t].highlightArea;this.layoutManager.dropTargetIndicator.highlightArea(e),this._dropSegment=t}}),lm.utils.BubblingEvent=function(t,e){this.name=t,this.origin=e,this.isPropagationStopped=!1},lm.utils.BubblingEvent.prototype.stopPropagation=function(){this.isPropagationStopped=!0},lm.utils.ConfigMinifier=function(){this._keys=["settings","hasHeaders","constrainDragToContainer","selectionEnabled","dimensions","borderWidth","minItemHeight","minItemWidth","headerHeight","dragProxyWidth","dragProxyHeight","labels","close","maximise","minimise","popout","content","componentName","componentState","id","width","type","height","isClosable","title","popoutWholeStack","openPopouts","parentId","activeItemIndex","reorderEnabled"],this._values=[!0,!1,"row","column","stack","component","close","maximise","minimise","open in new window"]},lm.utils.copy(lm.utils.ConfigMinifier.prototype,{minifyConfig:function(t){var e={};return this._nextLevel(t,e,"_min"),e},unminifyConfig:function(t){var e={};return this._nextLevel(t,e,"_max"),e},_nextLevel:function(t,e,i){var n,s;for(n in t)t instanceof Array&&(n=parseInt(n,10)),t.hasOwnProperty(n)&&(s=this[i](n,this._keys),"object"==typeof t[n]?(e[s]=t[n]instanceof Array?[]:{},this._nextLevel(t[n],e[s],i)):e[s]=this[i](t[n],this._values))},_min:function(t,e){if("string"==typeof t&&1===t.length)return"___"+t;var i=lm.utils.indexOf(t,e);return i===-1?t:i.toString(36)},_max:function(t,e){return"string"==typeof t&&1===t.length?e[parseInt(t,36)]:"string"==typeof t&&"___"===t.substr(0,3)?t[3]:t}}),lm.utils.EventHub=function(t){lm.utils.EventEmitter.call(this),this._layoutManager=t,this._dontPropagateToParent=null,this._childEventSource=null,this.on(lm.utils.EventEmitter.ALL_EVENT,lm.utils.fnBind(this._onEventFromThis,this)),this._boundOnEventFromChild=lm.utils.fnBind(this._onEventFromChild,this),$(window).on("gl_child_event",this._boundOnEventFromChild)},lm.utils.EventHub.prototype._onEventFromThis=function(){var t=Array.prototype.slice.call(arguments);this._layoutManager.isSubWindow&&t[0]!==this._dontPropagateToParent&&this._propagateToParent(t),this._propagateToChildren(t),this._dontPropagateToParent=null,this._childEventSource=null},lm.utils.EventHub.prototype._$onEventFromParent=function(t){ -this._dontPropagateToParent=t[0],this.emit.apply(this,t)},lm.utils.EventHub.prototype._onEventFromChild=function(t){this._childEventSource=t.originalEvent.__gl,this.emit.apply(this,t.originalEvent.__glArgs)},lm.utils.EventHub.prototype._propagateToParent=function(t){var e,i="gl_child_event";document.createEvent?(e=window.opener.document.createEvent("HTMLEvents"),e.initEvent(i,!0,!0)):(e=window.opener.document.createEventObject(),e.eventType=i),e.eventName=i,e.__glArgs=t,e.__gl=this._layoutManager,document.createEvent?window.opener.dispatchEvent(e):window.opener.fireEvent("on"+e.eventType,e)},lm.utils.EventHub.prototype._propagateToChildren=function(t){var e,i;for(i=0;i Date: Fri, 18 Mar 2022 11:45:49 -0400 Subject: Update golden-layout to support v2 --- webAO/ui.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/webAO/ui.js b/webAO/ui.js index 9e95be9..0baad1d 100644 --- a/webAO/ui.js +++ b/webAO/ui.js @@ -1,7 +1,6 @@ /* eslint indent: ["error", 2] */ -// import GoldenLayout from "./golden/js/goldenlayout.js"; -import GoldenLayout from 'golden-layout'; +import { GoldenLayout } from "golden-layout"; const config = { settings: { @@ -67,12 +66,12 @@ const config = { }], }; -const golden = new GoldenLayout(config); -golden.registerComponent('template', (container, componentState) => { +const golden = new GoldenLayout(); +golden.registerComponentFactoryFunction('template', (container, componentState) => { const template = document.querySelector(`#${componentState.id}`); - container.getElement().html(template.content); + container.element.innerHTML = template.innerHTML; // TODO: support multiple locales // container.setTitle(document.querySelector(`#${componentState.id} meta[name='frame-title']`).getAttribute("content")); }); +golden.loadLayout(config) -golden.init(); -- cgit From 319685a6e6226a005986d28d16d52a64087c13d5 Mon Sep 17 00:00:00 2001 From: "caleb.mabry.15@cnu.edu" Date: Fri, 18 Mar 2022 11:46:48 -0400 Subject: Update golden-layout to v2.5.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6865892..bab812a 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "dependencies": { "@fingerprintjs/fingerprintjs": "^3.3.3", "core-js": "^3.21.1", - "golden-layout": "^1.5.9", + "golden-layout": "^2.5.0", "regenerator-runtime": "^0.13.9" }, "browserslist": [ -- cgit From 2b47bc4dd7af5f0ed4b12ab0f55a0d44f483e11a Mon Sep 17 00:00:00 2001 From: "caleb.mabry.15@cnu.edu" Date: Fri, 18 Mar 2022 11:50:57 -0400 Subject: Revert "Remove local golden code" This reverts commit cd20fe050d256d55f7b7fc6bf53ca4db6ccf93a0. --- webAO/golden/LICENSE.txt | 21 ++ webAO/golden/css/goldenlayout.css | 525 ++++++++++++++++++++++++++++++++++ webAO/golden/css/goldenlayout.css.map | 1 + webAO/golden/js/goldenlayout.js | 3 + webAO/golden/js/goldenlayout.js.map | 1 + 5 files changed, 551 insertions(+) create mode 100644 webAO/golden/LICENSE.txt create mode 100644 webAO/golden/css/goldenlayout.css create mode 100644 webAO/golden/css/goldenlayout.css.map create mode 100644 webAO/golden/js/goldenlayout.js create mode 100644 webAO/golden/js/goldenlayout.js.map diff --git a/webAO/golden/LICENSE.txt b/webAO/golden/LICENSE.txt new file mode 100644 index 0000000..5ef7a1f --- /dev/null +++ b/webAO/golden/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 deepstream.io + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/webAO/golden/css/goldenlayout.css b/webAO/golden/css/goldenlayout.css new file mode 100644 index 0000000..ecb0d6b --- /dev/null +++ b/webAO/golden/css/goldenlayout.css @@ -0,0 +1,525 @@ +h2 { + font: 14px Arial, sans-serif; + color: #fff; + padding: 10px; +} +.lm_content { + text-align: center; + color: white; +} +body { + height: 100%; + width: 100%; + position: absolute; + transition: all 0.5s ease; +} +#menuContainer { + list-style: none; + margin: 10px; + padding: 0; +} +#menuContainer:after { + content: ""; + display: table; + clear: both; +} +#menuContainer li { + float: left; + margin-right: 10px; +} +#menuContainer li a { + background-color: black; + color: white; + padding: 5px; + text-decoration: none; + font-family: Arial, sans-serif; + font-size: 12px; +} +.lm_root { + position: relative; +} +.lm_row > .lm_item { + float: left; +} +.lm_content { + overflow: hidden; + position: relative; +} +.lm_dragging, +.lm_dragging * { + cursor: move !important; + user-select: none; +} +.lm_maximised { + position: absolute; + top: 0; + left: 0; + z-index: 40; +} +.lm_maximise_placeholder { + display: none; +} +.lm_splitter { + position: relative; + z-index: 2; +} +.lm_splitter:hover, +.lm_splitter.lm_dragging { + background: orange; +} +.lm_splitter.lm_vertical .lm_drag_handle { + width: 100%; + position: absolute; + cursor: ns-resize; +} +.lm_splitter.lm_horizontal { + float: left; + height: 100%; +} +.lm_splitter.lm_horizontal .lm_drag_handle { + height: 100%; + position: absolute; + cursor: ew-resize; +} +.lm_header { + overflow: visible; + position: relative; + z-index: 1; + user-select: none; +} +.lm_header.lm_selectable { + cursor: pointer; +} +.lm_header [class^=lm_] { + box-sizing: content-box !important; +} +.lm_header .lm_controls { + position: absolute; + right: 3px; +} +.lm_header .lm_controls > li { + cursor: pointer; + float: left; + width: 18px; + height: 18px; + text-align: center; +} +.lm_header ul { + margin: 0; + padding: 0; + list-style-type: none; +} +.lm_header .lm_tabs { + position: absolute; +} +.lm_header .lm_tab { + cursor: pointer; + float: left; + height: 14px; + margin-top: 1px; + padding: 0px 10px 5px; + padding-right: 25px; + position: relative; +} +.lm_header .lm_tab i { + width: 2px; + height: 19px; + position: absolute; +} +.lm_header .lm_tab i.lm_left { + top: 0; + left: -2px; +} +.lm_header .lm_tab i.lm_right { + top: 0; + right: -2px; +} +.lm_header .lm_tab .lm_title { + display: inline-block; + overflow: hidden; + text-overflow: ellipsis; +} +.lm_header .lm_tab .lm_close_tab { + width: 14px; + height: 14px; + position: absolute; + top: 0; + right: 0; + text-align: center; +} +.lm_stack { + position: relative; +} +.lm_stack > .lm_items { + overflow: hidden; +} +.lm_stack.lm_left > .lm_items { + position: absolute; + left: 20px; + top: 0; +} +.lm_stack.lm_right > .lm_items { + position: absolute; + right: 20px; + top: 0; +} +.lm_stack.lm_right > .lm_header { + position: absolute; + right: 0; + top: 0; +} +.lm_stack.lm_bottom > .lm_items { + position: absolute; + bottom: 20px; +} +.lm_stack.lm_bottom > .lm_header { + position: absolute; + bottom: 0; +} +.lm_stack.lm_docked { + overflow: visible; + z-index: 3; +} +.lm_stack.lm_docked > .lm_header { + z-index: 5; +} +.lm_stack.lm_docked > .lm_items { + *z-index: 3; + transition: height 0.4s ease-in; + border: solid 2px; + border-image-slice: 1 !important; + margin: -2px 0; +} +.lm_stack.lm_docked.lm_left > .lm_items, +.lm_stack.lm_docked.lm_right > .lm_items { + transition: width 0.4s ease-in, height 0.001s linear; +} +.lm_left.lm_stack .lm_header, +.lm_right.lm_stack .lm_header { + height: 100%; +} +.lm_left.lm_dragProxy .lm_header, +.lm_right.lm_dragProxy .lm_header, +.lm_left.lm_dragProxy .lm_items, +.lm_right.lm_dragProxy .lm_items { + float: left; +} +.lm_left.lm_dragProxy .lm_header, +.lm_right.lm_dragProxy .lm_header, +.lm_left.lm_stack .lm_header, +.lm_right.lm_stack .lm_header { + width: 20px; + vertical-align: top; +} +.lm_left.lm_dragProxy .lm_header .lm_tabs, +.lm_right.lm_dragProxy .lm_header .lm_tabs, +.lm_left.lm_stack .lm_header .lm_tabs, +.lm_right.lm_stack .lm_header .lm_tabs { + transform-origin: left top; + top: 0; + width: 1000px; + /*hack*/ +} +.lm_left.lm_dragProxy .lm_header .lm_controls, +.lm_right.lm_dragProxy .lm_header .lm_controls, +.lm_left.lm_stack .lm_header .lm_controls, +.lm_right.lm_stack .lm_header .lm_controls { + bottom: 0; +} +.lm_dragProxy.lm_left .lm_header .lm_tabs, +.lm_stack.lm_left .lm_header .lm_tabs { + transform: rotate(-90deg) scaleX(-1); + left: 0; +} +.lm_dragProxy.lm_left .lm_header .lm_tabs .lm_tab, +.lm_stack.lm_left .lm_header .lm_tabs .lm_tab { + transform: scaleX(-1); + margin-top: 1px; +} +.lm_dragProxy.lm_left .lm_header .lm_tabdropdown_list, +.lm_stack.lm_left .lm_header .lm_tabdropdown_list { + top: initial; + right: initial; + left: 20px; +} +.lm_dragProxy.lm_right .lm_content { + float: left; +} +.lm_dragProxy.lm_right .lm_header .lm_tabs, +.lm_stack.lm_right .lm_header .lm_tabs { + transform: rotate(90deg) scaleX(1); + left: 100%; + margin-left: 0; +} +.lm_dragProxy.lm_right .lm_header .lm_controls, +.lm_stack.lm_right .lm_header .lm_controls { + left: 3px; +} +.lm_dragProxy.lm_right .lm_header .lm_tabdropdown_list, +.lm_stack.lm_right .lm_header .lm_tabdropdown_list { + top: initial; + right: 20px; +} +.lm_dragProxy.lm_bottom .lm_header, +.lm_stack.lm_bottom .lm_header { + width: 100%; +} +.lm_dragProxy.lm_bottom .lm_header .lm_tab, +.lm_stack.lm_bottom .lm_header .lm_tab { + margin-top: 0; + border-top: none; +} +.lm_dragProxy.lm_bottom .lm_header .lm_controls, +.lm_stack.lm_bottom .lm_header .lm_controls { + top: 3px; +} +.lm_dragProxy.lm_bottom .lm_header .lm_tabdropdown_list, +.lm_stack.lm_bottom .lm_header .lm_tabdropdown_list { + top: initial; + bottom: 20px; +} +.lm_drop_tab_placeholder { + float: left; + width: 100px; + height: 10px; + visibility: hidden; +} +.lm_header .lm_controls .lm_tabdropdown:before { + content: ''; + width: 0; + height: 0; + vertical-align: middle; + display: inline-block; + border-top: 5px dashed; + border-right: 5px solid transparent; + border-left: 5px solid transparent; + color: white; +} +.lm_header .lm_tabdropdown_list { + position: absolute; + top: 20px; + right: 0; + z-index: 5; + overflow: hidden; +} +.lm_header .lm_tabdropdown_list .lm_tab { + clear: both; + padding-right: 10px; + margin: 0; +} +.lm_header .lm_tabdropdown_list .lm_tab .lm_title { + width: 100px; +} +.lm_header .lm_tabdropdown_list .lm_close_tab { + display: none !important; +} +/*********************************** +* Drag Proxy +***********************************/ +.lm_dragProxy { + position: absolute; + top: 0; + left: 0; + z-index: 30; +} +.lm_dragProxy .lm_header { + background: transparent; +} +.lm_dragProxy .lm_content { + border-top: none; + overflow: hidden; +} +.lm_dropTargetIndicator { + display: none; + position: absolute; + z-index: 20; + transition: all 200ms ease; +} +.lm_dropTargetIndicator .lm_inner { + width: 100%; + height: 100%; + position: relative; + top: 0; + left: 0; +} +.lm_transition_indicator { + display: none; + width: 20px; + height: 20px; + position: absolute; + top: 0; + left: 0; + z-index: 20; +} +.lm_popin { + width: 20px; + height: 20px; + position: absolute; + bottom: 0; + right: 0; + z-index: 9999; +} +.lm_popin > * { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; +} +.lm_popin > .lm_bg { + z-index: 10; +} +.lm_popin > .lm_icon { + z-index: 20; +} +.lm_goldenlayout { + background: #000000; +} +.lm_content { + background: #222222; + border: 1px solid transparent; +} +.lm_dragProxy .lm_content { + box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.9); +} +.lm_dropTargetIndicator { + box-shadow: inset 0 0 30px #000000; + outline: 1px dashed #cccccc; +} +.lm_dropTargetIndicator .lm_inner { + background: #000000; + opacity: 0.2; +} +.lm_splitter { + background: #000000; + opacity: 0.001; + transition: opacity 200ms ease; +} +.lm_splitter:hover, +.lm_splitter.lm_dragging { + background: #444444; + opacity: 1; +} +.lm_header { + height: 20px; +} +.lm_header .lm_tab { + font-family: Arial, sans-serif; + font-size: 12px; + color: #999999; + background: #111111; + box-shadow: 2px -2px 2px rgba(0, 0, 0, 0.3); + margin-right: 2px; + padding-bottom: 2px; + padding-top: 2px; + /*.lm_title // Present in LIGHT Theme + { + padding-top:1px; + }*/ +} +.lm_header .lm_tab .lm_close_tab { + width: 11px; + height: 11px; + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAQUlEQVR4nHXOQQ4AMAgCQeT/f6aXpsGK3jSTuCVJAAr7iBdoAwCKd0nwfaAdHbYERw5b44+E8JoBjEYGMBq5gAYP3usUDu2IvoUAAAAASUVORK5CYII="); + background-position: center center; + background-repeat: no-repeat; + top: 4px; + right: 6px; + opacity: 0.4; +} +.lm_header .lm_tab .lm_close_tab:hover { + opacity: 1; +} +.lm_header .lm_tab.lm_active { + border-bottom: none; + box-shadow: 0 -2px 2px #000000; + padding-bottom: 3px; +} +.lm_header .lm_tab.lm_active .lm_close_tab { + opacity: 1; +} +.lm_dragProxy.lm_right .lm_header .lm_tab.lm_active, +.lm_stack.lm_right .lm_header .lm_tab.lm_active { + box-shadow: 2px -2px 2px #000000; +} +.lm_dragProxy.lm_bottom .lm_header .lm_tab, +.lm_stack.lm_bottom .lm_header .lm_tab { + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3); +} +.lm_dragProxy.lm_bottom .lm_header .lm_tab.lm_active, +.lm_stack.lm_bottom .lm_header .lm_tab.lm_active { + box-shadow: 0 2px 2px #000000; +} +.lm_selected .lm_header { + background-color: #452500; +} +.lm_tab:hover, +.lm_tab.lm_active { + background: #222222; + color: #dddddd; +} +.lm_header .lm_controls .lm_tabdropdown:before { + color: #ffffff; +} +.lm_controls > li { + position: relative; + background-position: center center; + background-repeat: no-repeat; + opacity: 0.4; + transition: opacity 300ms ease; +} +.lm_controls > li:hover { + opacity: 1; +} +.lm_controls .lm_popout { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAPklEQVR4nI2Q0QoAIAwCNfr/X7aXCpGN8snBdgejJOzckpkxs9jR6K6T5JpU0nWl5pSXTk7qwh8SnNT+CAAWCgkKFpuSWsUAAAAASUVORK5CYII="); +} +.lm_controls .lm_maximise { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAKElEQVR4nGP8////fwYCgImQAgYGBgYWKM2IR81/okwajIpgvsMbVgAwgQYRVakEKQAAAABJRU5ErkJggg=="); +} +.lm_controls .lm_close { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAQUlEQVR4nHXOQQ4AMAgCQeT/f6aXpsGK3jSTuCVJAAr7iBdoAwCKd0nwfaAdHbYERw5b44+E8JoBjEYGMBq5gAYP3usUDu2IvoUAAAAASUVORK5CYII="); +} +.lm_controls .lm_dock { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QQLExoPDb+5JQAAAKZJREFUOMvV0tENgjAUhWFGYBQ20FG6iYzgBo4gG8gIbAAbyAafD5akwWIATYz3sWn+e/qfFsUvBsevQDzn8gmkRI8a3W4YGjQJdD0MFQ44YUQ5S/geFgF99NFhyEmOz5QtIG4a0aYJMneuSwvmiUaEhebu0Vm51s8LLKaotzY1OQjJWbvpUyJESD0li26g2goJs2feMOyCZJxVuyFp7WvTnJcg/zkPjGQks0ox9/8AAAAASUVORK5CYII="); + transform: rotate(-45deg); + transition: transform 300ms; +} +.lm_stack.lm_docked .lm_controls .lm_dock { + transform: rotate(0deg); +} +.lm_stack.lm_docked > .lm_items { + border-color: #555555; + border-image: linear-gradient(to right, #444444 1%, #999999 100%); + box-shadow: 0 2px 2px #000000; +} +.lm_maximised .lm_header { + background-color: #000000; +} +.lm_maximised .lm_controls .lm_maximise { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAJ0lEQVR4nGP8//8/AzGAiShVI1YhCwMDA8OsWbPwBmZaWhoj0SYCAN1lBxMAX4n0AAAAAElFTkSuQmCC"); +} +.lm_transition_indicator { + background-color: #000000; + border: 1px dashed #555555; +} +.lm_popin { + cursor: pointer; +} +.lm_popin .lm_bg { + background: #ffffff; + opacity: 0.3; +} +.lm_popin .lm_icon { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAJCAYAAADpeqZqAAAAWklEQVR4nJWOyw3AIAxDHcQC7L8jbwT3AlJBfNp3SiI7dtRaLSlKKeoA1oEsKSQZCEluexw8Tm3ohk+E7bnOUHUGcNh+HwbBygw4AZ7FN/Lt84p0l+yTflV8AKQyLdcCRJi/AAAAAElFTkSuQmCC"); + background-position: center center; + background-repeat: no-repeat; + border-left: 1px solid #eeeeee; + border-top: 1px solid #eeeeee; + opacity: 0.7; +} +.lm_popin:hover .lm_icon { + opacity: 1; +} + +/*# sourceMappingURL=goldenlayout.css.map*/ \ No newline at end of file diff --git a/webAO/golden/css/goldenlayout.css.map b/webAO/golden/css/goldenlayout.css.map new file mode 100644 index 0000000..ea8f7a7 --- /dev/null +++ b/webAO/golden/css/goldenlayout.css.map @@ -0,0 +1 @@ +{"version":3,"file":"css\\goldenlayout.css","sources":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","sourceRoot":""} \ No newline at end of file diff --git a/webAO/golden/js/goldenlayout.js b/webAO/golden/js/goldenlayout.js new file mode 100644 index 0000000..395a692 --- /dev/null +++ b/webAO/golden/js/goldenlayout.js @@ -0,0 +1,3 @@ +!function($){var lm={config:{},container:{},controls:{},errors:{},items:{},utils:{}};lm.utils.F=function(){},lm.utils.extend=function(t,e){t.prototype=lm.utils.createObject(e.prototype),t.prototype.contructor=t},lm.utils.createObject=function(t){return"function"==typeof Object.create?Object.create(t):(lm.utils.F.prototype=t,new lm.utils.F)},lm.utils.objectKeys=function(t){var e,i;if("function"==typeof Object.keys)return Object.keys(t);e=[];for(i in t)e.push(i);return e},lm.utils.getHashValue=function(t){var e=location.hash.match(new RegExp(t+"=([^&]*)"));return e?e[1]:null},lm.utils.getQueryStringParam=function(t){if(window.location.hash)return lm.utils.getHashValue(t);if(!window.location.search)return null;var e,i,n=window.location.search.substr(1).split("&"),s={};for(i=0;i/g,">").replace(/]+)>)/gi,""))},lm.utils.EventEmitter=function(){this._mSubscriptions={},this._mSubscriptions[lm.utils.EventEmitter.ALL_EVENT]=[],this.on=function(t,e,i){if(!lm.utils.isFunction(e))throw new Error("Tried to listen to event "+t+" with non-function callback "+e);this._mSubscriptions[t]||(this._mSubscriptions[t]=[]),this._mSubscriptions[t].push({fn:e,ctx:i})},this.emit=function(t){var e,i,n;if(n=Array.prototype.slice.call(arguments,1),this._mSubscriptions[t])for(e=0;ethis._nDistance||Math.abs(this._nY)>this._nDistance)&&(clearTimeout(this._timeout),this._startDrag()),this._bDragging&&this.emit("drag",this._nX,this._nY,t)}},onMouseUp:function(t){null!=this._timeout&&(clearTimeout(this._timeout),this._eBody.removeClass("lm_dragging"),this._eElement.removeClass("lm_dragging"),this._oDocument.find("iframe").css("pointer-events",""),this._oDocument.unbind("mousemove touchmove",this._fMove),this._bDragging===!0&&(this._bDragging=!1,this.emit("dragStop",t,this._nOriginalX+this._nX)))},_startDrag:function(){this._bDragging=!0,this._eBody.addClass("lm_dragging"),this._eElement.addClass("lm_dragging"),this._oDocument.find("iframe").css("pointer-events","none"),this.emit("dragStart",this._nOriginalX,this._nOriginalY)},_getCoordinates:function(t){return t=t.originalEvent&&t.originalEvent.touches?t.originalEvent.touches[0]:t,{x:t.pageX,y:t.pageY}}}),lm.LayoutManager=function(t,e){if(!$||"function"!=typeof $.noConflict){var i="jQuery is missing as dependency for GoldenLayout. ";throw i+='Please either expose $ on GoldenLayout\'s scope (e.g. window) or add "jquery" to ',i+="your paths when using RequireJS/AMD",new Error(i)}lm.utils.EventEmitter.call(this),this.isInitialised=!1,this._isFullPage=!1,this._resizeTimeoutId=null,this._components={"lm-react-component":lm.utils.ReactComponentHandler},this._itemAreas=[],this._resizeFunction=lm.utils.fnBind(this._onResize,this),this._unloadFunction=lm.utils.fnBind(this._onUnload,this),this._maximisedItem=null,this._maximisePlaceholder=$('
        '),this._creationTimeoutPassed=!1,this._subWindowsCreated=!1,this._dragSources=[],this._updatingColumnsResponsive=!1,this._firstLoad=!0,this.width=null,this.height=null,this.root=null,this.openPopouts=[],this.selectedItem=null,this.isSubWindow=!1,this.eventHub=new lm.utils.EventHub(this),this.config=this._createConfig(t),this.container=e,this.dropTargetIndicator=null,this.transitionIndicator=null,this.tabDropPlaceholder=$('
        '),this.isSubWindow===!0&&$("body").css("visibility","hidden"),this._typeToItem={column:lm.utils.fnBind(lm.items.RowOrColumn,this,[!0]),row:lm.utils.fnBind(lm.items.RowOrColumn,this,[!1]),stack:lm.items.Stack,component:lm.items.Component}},lm.LayoutManager.__lm=lm,lm.LayoutManager.minifyConfig=function(t){return(new lm.utils.ConfigMinifier).minifyConfig(t)},lm.LayoutManager.unminifyConfig=function(t){return(new lm.utils.ConfigMinifier).unminifyConfig(t)},lm.utils.copy(lm.LayoutManager.prototype,{registerComponent:function(t,e){if("function"!=typeof e)throw new Error("Please register a constructor function");if(void 0!==this._components[t])throw new Error("Component "+t+" is already registered");this._components[t]=e},toConfig:function(t){var e,i,n;if(this.isInitialised===!1)throw new Error("Can't create config, layout not yet initialised");if(t&&!(t instanceof lm.items.AbstractContentItem))throw new Error("Root must be a ContentItem");for(e={settings:lm.utils.copy({},this.config.settings),dimensions:lm.utils.copy({},this.config.dimensions),labels:lm.utils.copy({},this.config.labels)},e.content=[],i=function(t,e){var n,s;for(n in e.config)"content"!==n&&(t[n]=e.config[n]);if(e.contentItems.length)for(t.content=[],s=0;sn.x1&&tn.y1&&en.surface&&(s=n.surface,o=n);return o},_$createRootItemAreas:function(){var areaSize=50,sides={y2:0,x2:0,y1:"y2",x1:"x2"};for(side in sides){var area=this.root._$getArea();with(area.side=side,sides[side]?area[side]=area[sides[side]]-areaSize:area[side]=areaSize,area)surface=(x2-x1)*(y2-y1);this._itemAreas.push(area)}},_$calculateItemAreas:function(){var i,area,allContentItems=this._getAllContentItems();if(this._itemAreas=[],1===allContentItems.length)return void this._itemAreas.push(this.root._$getArea());for(this._$createRootItemAreas(),i=0;i
        ');t.click(lm.utils.fnBind(function(){this.emit("popIn")},this)),document.title=lm.utils.stripTags(this.config.content[0].title),$("head").append($("body link, body style, template, .gl_keep")),this.container=$("body").html("").css("visibility","visible").append(t);document.body.offsetHeight;window.__glInstance=this},_createSubWindows:function(){var t,e;for(t=0;t1)throw new Error("GoldenLayout more than one container element specified");t[0]===document.body&&(this._isFullPage=!0,$("html, body").css({height:"100%",margin:0,padding:0,overflow:"hidden"})),this.container=t},_create:function(t){var e;if(!(t.content instanceof Array))throw e=void 0===t.content?"Missing setting 'content' on top level of configuration":"Configuration parameter 'content' must be an array",new lm.errors.ConfigurationError(e,t);if(t.content.length>1)throw e="Top level content can't contain more then one element.",new lm.errors.ConfigurationError(e,t);this.root=new lm.items.Root(this,{content:t.content},this.container),this.root.callDownwards("_$init"),"__glMaximised"===t.maximisedItemId&&this.root.getItemsById(t.maximisedItemId)[0].toggleMaximise()},_onUnload:function(){if(this.config.settings.closePopoutsOnUnload===!0)for(var t=0;t','
        ',""].join("")),this._contentElement=this._element.find(".lm_content")},lm.utils.copy(lm.container.ItemContainer.prototype,{getElement:function(){return this._contentElement},hide:function(){this.emit("hide"),this.isHidden=!0,this._element.hide()},show:function(){this.emit("show"),this.isHidden=!1,this._element.show(),0==this.height&&0==this.width||this.emit("shown")},setSize:function(t,e){for(var i,n,s,o,r,a,h=this.parent,l=this;!h.isColumn&&!h.isRow;)if(l=h,h=h.parent,h.isRoot)return!1;for(s=h.isColumn?"height":"width",o="height"===s?e:t,i=this[s]*(1/(l.config[s]/100)),n=o/i*100,r=(l.config[s]-n)/(h.contentItems.length-1),a=0;a0?this._layoutManager.root.contentItems[0]:this._layoutManager.root,i=0)),e.addChild(t,this._indexInParent),this.close()},_createWindow:function(){var t,e=this._createUrl(),i=Math.floor(1e6*Math.random()).toString(36),n=this._serializeWindowOptions({width:this._dimensions.width,height:this._dimensions.height,innerWidth:this._dimensions.width,innerHeight:this._dimensions.height,menubar:"no",toolbar:"no",location:"no",personalbar:"no",resizable:"yes",scrollbars:"no",status:"no"});if(this._popoutWindow=window.open(e,i,n),this._popoutWindow)$(this._popoutWindow).on("load",lm.utils.fnBind(this._positionWindow,this)).on("unload beforeunload",lm.utils.fnBind(this._onClose,this)),t=setInterval(lm.utils.fnBind(function(){this._popoutWindow.__glInstance&&this._popoutWindow.__glInstance.isInitialised&&(this._onInitialised(),clearInterval(t))},this),10);else if(this._layoutManager.config.settings.blockedPopoutsThrowError===!0){var s=new Error("Popout blocked");throw s.type="popoutBlocked",s}},_serializeWindowOptions:function(t){var e,i=[];for(e in t)i.push(e+"="+t[e]);return i.join(",")},_createUrl:function(){var t,e={content:this._config},i="gl-window-config-"+lm.utils.getUniqueId();e=(new lm.utils.ConfigMinifier).minifyConfig(e);try{localStorage.setItem(i,JSON.stringify(e))}catch(n){throw new Error("Error while writing to localStorage "+n.toString())}return t=document.location.href.split("?"),1===t.length?t[0]+"?gl-window="+i:document.location.href+"&gl-window="+i},_positionWindow:function(){this._popoutWindow.moveTo(this._dimensions.left,this._dimensions.top),this._popoutWindow.focus()},_onInitialised:function(){this.isInitialised=!0,this.getGlInstance().on("popIn",this.popIn,this),this.emit("initialised")},_onClose:function(){setTimeout(lm.utils.fnBind(this.emit,this,["closed"]),50)}}),lm.controls.DragProxy=function(t,e,i,n,s,o){lm.utils.EventEmitter.call(this),this._dragListener=i,this._layoutManager=n,this._contentItem=s,this._originalParent=o,this._area=null,this._lastValidArea=null,this._dragListener.on("drag",this._onDrag,this),this._dragListener.on("dragStop",this._onDrop,this),this.element=$(lm.controls.DragProxy._template),o&&o._side&&(this._sided=o._sided,this.element.addClass("lm_"+o._side),["right","bottom"].indexOf(o._side)>=0&&this.element.find(".lm_content").after(this.element.find(".lm_header"))),this.element.css({left:t,top:e}),this.element.find(".lm_tab").attr("title",lm.utils.stripTags(this._contentItem.config.title)),this.element.find(".lm_title").html(this._contentItem.config.title),this.childElementContainer=this.element.find(".lm_content"),this.childElementContainer.append(s.element),this._updateTree(),this._layoutManager._$calculateItemAreas(),this._setDimensions(),$(document.body).append(this.element);var r=this._layoutManager.container.offset();this._minX=r.left,this._minY=r.top,this._maxX=this._layoutManager.container.width()+this._minX,this._maxY=this._layoutManager.container.height()+this._minY,this._width=this.element.width(),this._height=this.element.height(),this._setDropPosition(t,e)},lm.controls.DragProxy._template='
        ',lm.utils.copy(lm.controls.DragProxy.prototype,{_onDrag:function(t,e,i){i=i.originalEvent&&i.originalEvent.touches?i.originalEvent.touches[0]:i;var n=i.pageX,s=i.pageY,o=n>this._minX&&nthis._minY&&s
        ',lm.utils.copy(lm.controls.DropTargetIndicator.prototype,{destroy:function(){this.element.remove()},highlight:function(t,e,i,n){this.highlightArea({x1:t,y1:e,x2:i,y2:n})},highlightArea:function(t){this.element.css({left:t.x1,top:t.y1,width:t.x2-t.x1,height:t.y2-t.y1}).show()},hide:function(){this.element.hide()}}),lm.controls.Header=function(t,e){lm.utils.EventEmitter.call(this),this.layoutManager=t,this.element=$(lm.controls.Header._template),this.layoutManager.config.settings.selectionEnabled===!0&&(this.element.addClass("lm_selectable"),this.element.on("click touchstart",lm.utils.fnBind(this._onHeaderClick,this))),this.tabsContainer=this.element.find(".lm_tabs"),this.tabDropdownContainer=this.element.find(".lm_tabdropdown_list"),this.tabDropdownContainer.hide(),this.controlsContainer=this.element.find(".lm_controls"),this.parent=e,this.parent.on("resize",this._updateTabSizes,this),this.tabs=[],this.activeContentItem=null,this.closeButton=null,this.tabDropdownButton=null,$(document).mouseup(lm.utils.fnBind(this._hideAdditionalTabsDropdown,this)),this._lastVisibleTabIndex=-1,this._tabControlOffset=10,this._createControls()},lm.controls.Header._template=['
        ','
          ','
            ','
              ',"
              "].join(""),lm.utils.copy(lm.controls.Header.prototype,{createTab:function(t,e){var i,n;for(n=0;n0?this.tabs[e-1].element.after(i.element):this.tabs[0].element.before(i.element),this.tabs.splice(e,0,i),void this._updateTabSizes())},removeTab:function(t){for(var e=0;ethis._lastVisibleTabIndex){for(s=this.tabs[this.parent.config.activeItemIndex],i=this.parent.config.activeItemIndex;i>0;i--)this.tabs[i]=this.tabs[i-1];this.tabs[0]=s,this.parent.config.activeItemIndex=0}this._updateTabSizes(),this.parent.emitBubblingEvent("stateChanged")},position:function(t){var e=this.parent._header.show;return e&&!this.parent._side&&(e="top"),void 0!==t&&this.parent._header.show!=t&&(this.parent._header.show=t,this.parent._setupHeaderPosition()),e},_$setClosable:function(t){return!(!this.closeButton||!this._isClosable())&&(this.closeButton.element[t?"show":"hide"](),!0)},_$destroy:function(){this.emit("destroy",this);for(var t=0;to&&a?(e.data("lastTabWidth",s),this.tabDropdownContainer.append(e)):(a=!0,this._lastVisibleTabIndex=i,e.removeData("lastTabWidth"),this.tabsContainer.append(e));n=r>o,this.tabDropdownButton.element[n?"show":"hide"]()}}}),lm.controls.HeaderButton=function(t,e,i,n){this._header=t,this.element=$('
            • '),this._header.on("destroy",this._$destroy,this),this._action=n,this.element.on("click touchstart",this._action),this._header.controlsContainer.append(this.element)},lm.utils.copy(lm.controls.HeaderButton.prototype,{_$destroy:function(){this.element.off(),this.element.remove()}}),lm.controls.Splitter=function(t,e){this._isVertical=t,this._size=e,this.element=this._createElement(),this._dragListener=new lm.utils.DragListener(this.element)},lm.utils.copy(lm.controls.Splitter.prototype,{on:function(t,e,i){this._dragListener.on(t,e,i)},_$destroy:function(){this.element.remove()},_createElement:function(){var t=$('
              ');return t.addClass("lm_"+(this._isVertical?"vertical":"horizontal")),t[this._isVertical?"height":"width"](this._size),t}}),lm.controls.Tab=function(t,e){this.header=t,this.contentItem=e,this.element=$(lm.controls.Tab._template),this.titleElement=this.element.find(".lm_title"),this.closeElement=this.element.find(".lm_close_tab"),this.closeElement[e.config.isClosable?"show":"hide"](),this.isActive=!1,this.setTitle(e.config.title),this.contentItem.on("titleChanged",this.setTitle,this),this._layoutManager=this.contentItem.layoutManager,this._layoutManager.config.settings.reorderEnabled===!0&&e.config.reorderEnabled===!0&&(this._dragListener=new lm.utils.DragListener(this.element),this._dragListener.on("dragStart",this._onDragStart,this)),this._onTabClickFn=lm.utils.fnBind(this._onTabClick,this),this._onCloseClickFn=lm.utils.fnBind(this._onCloseClick,this),this.element.on("mousedown touchstart",this._onTabClickFn),this.contentItem.config.isClosable?this.closeElement.on("click touchstart",this._onCloseClickFn):this.closeElement.remove(),this.contentItem.tab=this,this.contentItem.emit("tab",this),this.contentItem.layoutManager.emit("tabCreated",this),this.contentItem.isComponent&&(this.contentItem.container.tab=this,this.contentItem.container.emit("tab",this))},lm.controls.Tab._template='
            • ',lm.utils.copy(lm.controls.Tab.prototype,{setTitle:function(t){this.element.attr("title",lm.utils.stripTags(t)),this.titleElement.html(t)},setActive:function(t){t!==this.isActive&&(this.isActive=t,t?this.element.addClass("lm_active"):this.element.removeClass("lm_active"))},_$destroy:function(){this.element.off("mousedown touchstart",this._onTabClickFn),this.closeElement.off("click touchstart",this._onCloseClickFn),this._dragListener&&(this._dragListener.off("dragStart",this._onDragStart),this._dragListener=null),this.element.remove()},_onDragStart:function(t,e){this.contentItem.parent.isMaximised===!0&&this.contentItem.parent.toggleMaximise(),new lm.controls.DragProxy(t,e,this._dragListener,this._layoutManager,this.contentItem,this.header.parent)},_onTabClick:function(t){if(0===t.button||"touchstart"===t.type){var e=this.header.parent.getActiveContentItem();this.contentItem!==e&&this.header.parent.setActiveContentItem(this.contentItem)}else 1===t.button&&this.contentItem.config.isClosable&&this._onCloseClick(t)},_onCloseClick:function(t){t.stopPropagation(),this.header.parent.removeChild(this.contentItem)}}),lm.controls.TransitionIndicator=function(){this._element=$('
              '),$(document.body).append(this._element),this._toElement=null,this._fromDimensions=null,this._totalAnimationDuration=200,this._animationStartTime=null},lm.utils.copy(lm.controls.TransitionIndicator.prototype,{destroy:function(){this._element.remove()},transitionElements:function(t,e){},_nextAnimationFrame:function(){var t,e=this._measure(this._toElement),i=(lm.utils.now()-this._animationStartTime)/this._totalAnimationDuration,n={};if(i>=1)return void this._element.hide();e.opacity=0;for(t in this._fromDimensions)n[t]=this._fromDimensions[t]+(e[t]-this._fromDimensions[t])*i;this._element.css(n),lm.utils.animFrame(lm.utils.fnBind(this._nextAnimationFrame,this))},_measure:function(t){var e=t.offset();return{left:e.left,top:e.top,width:t.outerWidth(),height:t.outerHeight()}}}),lm.errors.ConfigurationError=function(t,e){Error.call(this),this.name="Configuration Error",this.message=t,this.node=e},lm.errors.ConfigurationError.prototype=new Error,lm.items.AbstractContentItem=function(t,e,i){lm.utils.EventEmitter.call(this),this.config=this._extendItemNode(e),this.type=e.type,this.contentItems=[],this.parent=i,this.isInitialised=!1,this.isMaximised=!1,this.isRoot=!1,this.isRow=!1,this.isColumn=!1,this.isStack=!1,this.isComponent=!1,this.layoutManager=t,this._pendingEventPropagations={},this._throttledEvents=["stateChanged"],this.on(lm.utils.EventEmitter.ALL_EVENT,this._propagateEvent,this),e.content&&this._createContentItems(e)},lm.utils.copy(lm.items.AbstractContentItem.prototype,{setSize:function(){throw new Error("Abstract Method")},callDownwards:function(t,e,i,n){var s;for(i!==!0&&n!==!0&&this[t].apply(this,e||[]),s=0;s0?this.callDownwards("setSize"):this instanceof lm.items.Root||this.config.isClosable!==!0||this.parent.removeChild(this)},addChild:function(t,e){void 0===e&&(e=this.contentItems.length),this.contentItems.splice(e,0,t),void 0===this.config.content&&(this.config.content=[]),this.config.content.splice(e,0,t.config),t.parent=this,t.parent.isInitialised===!0&&t.isInitialised===!1&&t._$init()},replaceChild:function(t,e,i){e=this.layoutManager._$normalizeContentItem(e);var n=lm.utils.indexOf(t,this.contentItems),s=t.element[0].parentNode;if(n===-1)throw new Error("Can't replace child. oldChild is not child of this");s.replaceChild(e.element[0],t.element[0]),i===!0&&(t.parent=null,t._$destroy()),this.contentItems[n]=e,e.parent=this,this.isStack&&(this.header.tabs[n].contentItem=e),e.parent.isInitialised===!0&&e.isInitialised===!1&&e._$init(),this.callDownwards("setSize")},remove:function(){this.parent.removeChild(this)},popout:function(){var t=this.layoutManager.createPopout(this);return this.emitBubblingEvent("stateChanged"),t},toggleMaximise:function(t){t&&t.preventDefault(),this.isMaximised===!0?this.layoutManager._$minimiseItem(this):this.layoutManager._$maximiseItem(this),this.isMaximised=!this.isMaximised,this.emitBubblingEvent("stateChanged")},select:function(){this.layoutManager.selectedItem!==this&&(this.layoutManager.selectItem(this,!0),this.element.addClass("lm_selected"))},deselect:function(){this.layoutManager.selectedItem===this&&(this.layoutManager.selectedItem=null,this.element.removeClass("lm_selected"))},setTitle:function(t){this.config.title=t,this.emit("titleChanged",t),this.emit("stateChanged")},hasId:function(t){return!!this.config.id&&("string"==typeof this.config.id?this.config.id===t:this.config.id instanceof Array?lm.utils.indexOf(t,this.config.id)!==-1:void 0)},addId:function(t){this.hasId(t)||(this.config.id?"string"==typeof this.config.id?this.config.id=[this.config.id,t]:this.config.id instanceof Array&&this.config.id.push(t):this.config.id=t)},removeId:function(t){if(!this.hasId(t))throw new Error("Id not found");if("string"==typeof this.config.id)delete this.config.id;else if(this.config.id instanceof Array){var e=lm.utils.indexOf(t,this.config.id);this.config.id.splice(e,1)}},getItemsByFilter:function(t){var e=[],i=function(n){for(var s=0;s'),this.childElementContainer=this.element,this._containerElement=i,this._containerElement.append(this.element)},lm.utils.extend(lm.items.Root,lm.items.AbstractContentItem),lm.utils.copy(lm.items.Root.prototype,{addChild:function(t){if(this.contentItems.length>0)throw new Error("Root node can only have a single child");t=this.layoutManager._$normalizeContentItem(t,this),this.childElementContainer.append(t.element),lm.items.AbstractContentItem.prototype.addChild.call(this,t),this.callDownwards("setSize"),this.emitBubblingEvent("stateChanged")},setSize:function(t,e){t="undefined"==typeof t?this._containerElement.width():t,e="undefined"==typeof e?this._containerElement.height():e,this.element.width(t),this.element.height(e),this.contentItems[0]&&(this.contentItems[0].element.width(t),this.contentItems[0].element.height(e))},_$highlightDropZone:function(t,e,i){this.layoutManager.tabDropPlaceholder.remove(),lm.items.AbstractContentItem.prototype._$highlightDropZone.apply(this,arguments)},_$onDrop:function(t,e){var i;if(t.isComponent&&(i=this.layoutManager.createContentItem({type:"stack",header:t.config.header||{}},this),i._$init(),i.addChild(t),t=i),this.contentItems.length){var n="x"==e.side[0]?"row":"column",s="x"==e.side[0]?"width":"height",o="2"==e.side[1],r=this.contentItems[0];if(!r instanceof lm.items.RowOrColumn||r.type!=n){var a=this.layoutManager.createContentItem({type:n},this);this.replaceChild(r,a),a.addChild(t,o?0:void 0,!0),a.addChild(r,o?void 0:0,!0),r.config[s]=50,t.config[s]=50,a.callDownwards("setSize")}else{var h=r.contentItems[o?0:r.contentItems.length-1];r.addChild(t,o?0:void 0,!0),h.config[s]*=.5,t.config[s]=h.config[s],r.callDownwards("setSize")}}else this.addChild(t)}}),lm.items.RowOrColumn=function(t,e,i,n){lm.items.AbstractContentItem.call(this,e,i,n),this.isRow=!t,this.isColumn=t,this.element=$('
              '),this.childElementContainer=this.element,this._splitterSize=e.config.dimensions.borderWidth,this._isColumn=t,this._dimension=t?"height":"width",this._splitter=[],this._splitterPosition=null,this._splitterMinPosition=null,this._splitterMaxPosition=null},lm.utils.extend(lm.items.RowOrColumn,lm.items.AbstractContentItem),lm.utils.copy(lm.items.RowOrColumn.prototype,{addChild:function(t,e,i){var n,s,o,r;if(t=this.layoutManager._$normalizeContentItem(t,this),void 0===e&&(e=this.contentItems.length),this.contentItems.length>0?(r=this._createSplitter(Math.max(0,e-1)).element,e>0?(this.contentItems[e-1].element.after(r),r.after(t.element)):(this.contentItems[0].element.before(r),r.before(t.element))):this.childElementContainer.append(t.element),lm.items.AbstractContentItem.prototype.addChild.call(this,t,e),n=1/this.contentItems.length*100,i===!0)return void this.emitBubblingEvent("stateChanged");for(o=0;o0&&(this._calculateRelativeSizes(),this._setAbsoluteSizes()),this.emitBubblingEvent("stateChanged"),this.emit("resize")},_$init:function(){if(this.isInitialised!==!0){var t;for(lm.items.AbstractContentItem.prototype._$init.call(this),t=0;t0&&e.itemSizes[t]++,this._isColumn?(this.contentItems[t].element.width(e.totalWidth),this.contentItems[t].element.height(e.itemSizes[t])):(this.contentItems[t].element.width(e.itemSizes[t]),this.contentItems[t].element.height(e.totalHeight))},_calculateAbsoluteSizes:function(){var t,e,i,n=(this.contentItems.length-1)*this._splitterSize,s=this.element.width(),o=this.element.height(),r=0,a=[];for(this._isColumn?o-=n:s-=n,t=0;t0){for(t=0;t100)for(t=0;ta)){for(t=h/a,l=h,i=0;ithis._splitterMinPosition&&n'),this._activeContentItem=null;var n=t.config;this._header={show:n.settings.hasHeaders===!0&&e.hasHeaders!==!1,popout:n.settings.showPopoutIcon&&n.labels.popout,maximise:n.settings.showMaximiseIcon&&n.labels.maximise,close:n.settings.showCloseIcon&&n.labels.close,minimise:n.labels.minimise},n.header&&lm.utils.copy(this._header,n.header),e.header&&lm.utils.copy(this._header,e.header),e.content&&e.content[0]&&e.content[0].header&&lm.utils.copy(this._header,e.content[0].header),this._dropZones={},this._dropSegment=null,this._contentAreaDimensions=null,this._dropIndex=null,this.isStack=!0,this.childElementContainer=$('
              '),this.header=new lm.controls.Header(t,this),this.element.append(this.header.element),this.element.append(this.childElementContainer),this._setupHeaderPosition(),this._$validateClosability()},lm.utils.extend(lm.items.Stack,lm.items.AbstractContentItem),lm.utils.copy(lm.items.Stack.prototype,{setSize:function(){var t,e=this._header.show?this.layoutManager.config.dimensions.headerHeight:0,i=this.element.width()-(this._sided?e:0),n=this.element.height()-(this._sided?0:e);for(this.childElementContainer.width(i),this.childElementContainer.height(n),t=0;t0){if(e=this.contentItems[this.config.activeItemIndex||0],!e)throw new Error("Configured activeItemIndex out of bounds");this.setActiveContentItem(e)}}},setActiveContentItem:function(t){if(lm.utils.indexOf(t,this.contentItems)===-1)throw new Error("contentItem is not a child of this stack");null!==this._activeContentItem&&this._activeContentItem._$hide(),this._activeContentItem=t,this.header.setActiveContentItem(t),t._$show(),this.emit("activeContentItemChanged",t),this.emitBubblingEvent("stateChanged")},getActiveContentItem:function(){return this.header.activeContentItem},addChild:function(t,e){t=this.layoutManager._$normalizeContentItem(t,this),lm.items.AbstractContentItem.prototype.addChild.call(this,t,e),this.childElementContainer.append(t.element),this.header.createTab(t,e),this.setActiveContentItem(t),this.callDownwards("setSize"),this._$validateClosability(),this.emitBubblingEvent("stateChanged")},removeChild:function(t,e){var i=lm.utils.indexOf(t,this.contentItems);lm.items.AbstractContentItem.prototype.removeChild.call(this,t,e),this.header.removeTab(t),this.contentItems.length>0?this.setActiveContentItem(this.contentItems[Math.max(i-1,0)]):this._activeContentItem=null,this._$validateClosability(),this.emitBubblingEvent("stateChanged")},_$validateClosability:function(){var t,e,i;for(t=this.header._isClosable(),i=0,e=this.contentItems.length;it&&n.y1e)return void("header"===i?(this._dropSegment="header",this._highlightHeaderDropZone(this._sided?e:t)):(this._resetHeaderDropZone(),this._highlightBodyDropZone(i)))},_$getArea:function(){if(this.element.is(":visible")===!1)return null;var t=lm.items.AbstractContentItem.prototype._$getArea,e=t.call(this,this.header.element),i=t.call(this,this.childElementContainer),n=i.x2-i.x1,s=i.y2-i.y1;return this._contentAreaDimensions={header:{hoverArea:{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2},highlightArea:{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2}}},this._activeContentItem&&this._activeContentItem.isComponent===!1?e:0===this.contentItems.length?(this._contentAreaDimensions.body={hoverArea:{x1:i.x1,y1:i.y1,x2:i.x2,y2:i.y2},highlightArea:{x1:i.x1,y1:i.y1,x2:i.x2,y2:i.y2}},t.call(this,this.element)):(this._contentAreaDimensions.left={hoverArea:{x1:i.x1,y1:i.y1,x2:i.x1+.25*n,y2:i.y2},highlightArea:{x1:i.x1,y1:i.y1,x2:i.x1+.5*n,y2:i.y2}},this._contentAreaDimensions.top={hoverArea:{x1:i.x1+.25*n,y1:i.y1,x2:i.x1+.75*n,y2:i.y1+.5*s},highlightArea:{x1:i.x1,y1:i.y1,x2:i.x2,y2:i.y1+.5*s}},this._contentAreaDimensions.right={hoverArea:{x1:i.x1+.75*n,y1:i.y1,x2:i.x2,y2:i.y2},highlightArea:{x1:i.x1+.5*n,y1:i.y1,x2:i.x2,y2:i.y2}},this._contentAreaDimensions.bottom={hoverArea:{x1:i.x1+.25*n,y1:i.y1+.5*s,x2:i.x1+.75*n,y2:i.y2},highlightArea:{x1:i.x1,y1:i.y1+.5*s,x2:i.x2,y2:i.y2}},t.call(this,this.element))},_highlightHeaderDropZone:function(t){var e,i,n,s,o,r,a,h,l,m=this.header.tabs.length,c=!1;if(0===m)return a=this.header.element.offset(),void this.layoutManager.dropTargetIndicator.highlightArea({x1:a.left,x2:a.left+100,y1:a.top+this.header.element.height()-20,y2:a.top+this.header.element.height()});for(e=0;es&&t=0&&this._header.show;if(this.header.element.toggle(!!this._header.show),this._side=t,this._sided=["right","left"].indexOf(this._side)>=0,this.element.removeClass("lm_left lm_right lm_bottom"),this._side&&this.element.addClass("lm_"+this._side),this.element.find(".lm_header").length&&this.childElementContainer){var e=["right","bottom"].indexOf(this._side)>=0?"before":"after";this.header.element[e](this.childElementContainer),this.callDownwards("setSize")}},_highlightBodyDropZone:function(t){var e=this._contentAreaDimensions[t].highlightArea;this.layoutManager.dropTargetIndicator.highlightArea(e),this._dropSegment=t}}),lm.utils.BubblingEvent=function(t,e){this.name=t,this.origin=e,this.isPropagationStopped=!1},lm.utils.BubblingEvent.prototype.stopPropagation=function(){this.isPropagationStopped=!0},lm.utils.ConfigMinifier=function(){this._keys=["settings","hasHeaders","constrainDragToContainer","selectionEnabled","dimensions","borderWidth","minItemHeight","minItemWidth","headerHeight","dragProxyWidth","dragProxyHeight","labels","close","maximise","minimise","popout","content","componentName","componentState","id","width","type","height","isClosable","title","popoutWholeStack","openPopouts","parentId","activeItemIndex","reorderEnabled"],this._values=[!0,!1,"row","column","stack","component","close","maximise","minimise","open in new window"]},lm.utils.copy(lm.utils.ConfigMinifier.prototype,{minifyConfig:function(t){var e={};return this._nextLevel(t,e,"_min"),e},unminifyConfig:function(t){var e={};return this._nextLevel(t,e,"_max"),e},_nextLevel:function(t,e,i){var n,s;for(n in t)t instanceof Array&&(n=parseInt(n,10)),t.hasOwnProperty(n)&&(s=this[i](n,this._keys),"object"==typeof t[n]?(e[s]=t[n]instanceof Array?[]:{},this._nextLevel(t[n],e[s],i)):e[s]=this[i](t[n],this._values))},_min:function(t,e){if("string"==typeof t&&1===t.length)return"___"+t;var i=lm.utils.indexOf(t,e);return i===-1?t:i.toString(36)},_max:function(t,e){return"string"==typeof t&&1===t.length?e[parseInt(t,36)]:"string"==typeof t&&"___"===t.substr(0,3)?t[3]:t}}),lm.utils.EventHub=function(t){lm.utils.EventEmitter.call(this),this._layoutManager=t,this._dontPropagateToParent=null,this._childEventSource=null,this.on(lm.utils.EventEmitter.ALL_EVENT,lm.utils.fnBind(this._onEventFromThis,this)),this._boundOnEventFromChild=lm.utils.fnBind(this._onEventFromChild,this),$(window).on("gl_child_event",this._boundOnEventFromChild)},lm.utils.EventHub.prototype._onEventFromThis=function(){var t=Array.prototype.slice.call(arguments);this._layoutManager.isSubWindow&&t[0]!==this._dontPropagateToParent&&this._propagateToParent(t),this._propagateToChildren(t),this._dontPropagateToParent=null,this._childEventSource=null},lm.utils.EventHub.prototype._$onEventFromParent=function(t){ +this._dontPropagateToParent=t[0],this.emit.apply(this,t)},lm.utils.EventHub.prototype._onEventFromChild=function(t){this._childEventSource=t.originalEvent.__gl,this.emit.apply(this,t.originalEvent.__glArgs)},lm.utils.EventHub.prototype._propagateToParent=function(t){var e,i="gl_child_event";document.createEvent?(e=window.opener.document.createEvent("HTMLEvents"),e.initEvent(i,!0,!0)):(e=window.opener.document.createEventObject(),e.eventType=i),e.eventName=i,e.__glArgs=t,e.__gl=this._layoutManager,document.createEvent?window.opener.dispatchEvent(e):window.opener.fireEvent("on"+e.eventType,e)},lm.utils.EventHub.prototype._propagateToChildren=function(t){var e,i;for(i=0;i Date: Fri, 18 Mar 2022 12:31:58 -0400 Subject: Final touches --- public/client.html | 10 ++++------ webAO/golden/LICENSE.txt | 21 --------------------- webAO/golden/css/goldenlayout.css | 19 +++++++++++++++---- webAO/golden/js/goldenlayout.js | 3 --- webAO/golden/js/goldenlayout.js.map | 1 - 5 files changed, 19 insertions(+), 35 deletions(-) delete mode 100644 webAO/golden/LICENSE.txt delete mode 100644 webAO/golden/js/goldenlayout.js delete mode 100644 webAO/golden/js/goldenlayout.js.map diff --git a/public/client.html b/public/client.html index 6d3810a..1ecab8f 100644 --- a/public/client.html +++ b/public/client.html @@ -20,11 +20,7 @@ - @@ -34,10 +30,12 @@ - + + + diff --git a/webAO/golden/LICENSE.txt b/webAO/golden/LICENSE.txt deleted file mode 100644 index 5ef7a1f..0000000 --- a/webAO/golden/LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 deepstream.io - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/webAO/golden/css/goldenlayout.css b/webAO/golden/css/goldenlayout.css index ecb0d6b..d515f65 100644 --- a/webAO/golden/css/goldenlayout.css +++ b/webAO/golden/css/goldenlayout.css @@ -97,13 +97,24 @@ body { position: absolute; right: 3px; } -.lm_header .lm_controls > li { - cursor: pointer; + +.lm_header .lm_controls .lm_maximise { + top: 5px; + position: absolute; float: left; - width: 18px; - height: 18px; + width: 9px; + height: 9px; + right: 2px; + cursor: pointer; text-align: center; + opacity: .5; + transition: opacity 0.3s; + -webkit-transition: opacity 0.3s; } +.lm_header .lm_controls .lm_maximise:hover { + opacity: 1; +} + .lm_header ul { margin: 0; padding: 0; diff --git a/webAO/golden/js/goldenlayout.js b/webAO/golden/js/goldenlayout.js deleted file mode 100644 index 395a692..0000000 --- a/webAO/golden/js/goldenlayout.js +++ /dev/null @@ -1,3 +0,0 @@ -!function($){var lm={config:{},container:{},controls:{},errors:{},items:{},utils:{}};lm.utils.F=function(){},lm.utils.extend=function(t,e){t.prototype=lm.utils.createObject(e.prototype),t.prototype.contructor=t},lm.utils.createObject=function(t){return"function"==typeof Object.create?Object.create(t):(lm.utils.F.prototype=t,new lm.utils.F)},lm.utils.objectKeys=function(t){var e,i;if("function"==typeof Object.keys)return Object.keys(t);e=[];for(i in t)e.push(i);return e},lm.utils.getHashValue=function(t){var e=location.hash.match(new RegExp(t+"=([^&]*)"));return e?e[1]:null},lm.utils.getQueryStringParam=function(t){if(window.location.hash)return lm.utils.getHashValue(t);if(!window.location.search)return null;var e,i,n=window.location.search.substr(1).split("&"),s={};for(i=0;i/g,">").replace(/]+)>)/gi,""))},lm.utils.EventEmitter=function(){this._mSubscriptions={},this._mSubscriptions[lm.utils.EventEmitter.ALL_EVENT]=[],this.on=function(t,e,i){if(!lm.utils.isFunction(e))throw new Error("Tried to listen to event "+t+" with non-function callback "+e);this._mSubscriptions[t]||(this._mSubscriptions[t]=[]),this._mSubscriptions[t].push({fn:e,ctx:i})},this.emit=function(t){var e,i,n;if(n=Array.prototype.slice.call(arguments,1),this._mSubscriptions[t])for(e=0;ethis._nDistance||Math.abs(this._nY)>this._nDistance)&&(clearTimeout(this._timeout),this._startDrag()),this._bDragging&&this.emit("drag",this._nX,this._nY,t)}},onMouseUp:function(t){null!=this._timeout&&(clearTimeout(this._timeout),this._eBody.removeClass("lm_dragging"),this._eElement.removeClass("lm_dragging"),this._oDocument.find("iframe").css("pointer-events",""),this._oDocument.unbind("mousemove touchmove",this._fMove),this._bDragging===!0&&(this._bDragging=!1,this.emit("dragStop",t,this._nOriginalX+this._nX)))},_startDrag:function(){this._bDragging=!0,this._eBody.addClass("lm_dragging"),this._eElement.addClass("lm_dragging"),this._oDocument.find("iframe").css("pointer-events","none"),this.emit("dragStart",this._nOriginalX,this._nOriginalY)},_getCoordinates:function(t){return t=t.originalEvent&&t.originalEvent.touches?t.originalEvent.touches[0]:t,{x:t.pageX,y:t.pageY}}}),lm.LayoutManager=function(t,e){if(!$||"function"!=typeof $.noConflict){var i="jQuery is missing as dependency for GoldenLayout. ";throw i+='Please either expose $ on GoldenLayout\'s scope (e.g. window) or add "jquery" to ',i+="your paths when using RequireJS/AMD",new Error(i)}lm.utils.EventEmitter.call(this),this.isInitialised=!1,this._isFullPage=!1,this._resizeTimeoutId=null,this._components={"lm-react-component":lm.utils.ReactComponentHandler},this._itemAreas=[],this._resizeFunction=lm.utils.fnBind(this._onResize,this),this._unloadFunction=lm.utils.fnBind(this._onUnload,this),this._maximisedItem=null,this._maximisePlaceholder=$('
              '),this._creationTimeoutPassed=!1,this._subWindowsCreated=!1,this._dragSources=[],this._updatingColumnsResponsive=!1,this._firstLoad=!0,this.width=null,this.height=null,this.root=null,this.openPopouts=[],this.selectedItem=null,this.isSubWindow=!1,this.eventHub=new lm.utils.EventHub(this),this.config=this._createConfig(t),this.container=e,this.dropTargetIndicator=null,this.transitionIndicator=null,this.tabDropPlaceholder=$('
              '),this.isSubWindow===!0&&$("body").css("visibility","hidden"),this._typeToItem={column:lm.utils.fnBind(lm.items.RowOrColumn,this,[!0]),row:lm.utils.fnBind(lm.items.RowOrColumn,this,[!1]),stack:lm.items.Stack,component:lm.items.Component}},lm.LayoutManager.__lm=lm,lm.LayoutManager.minifyConfig=function(t){return(new lm.utils.ConfigMinifier).minifyConfig(t)},lm.LayoutManager.unminifyConfig=function(t){return(new lm.utils.ConfigMinifier).unminifyConfig(t)},lm.utils.copy(lm.LayoutManager.prototype,{registerComponent:function(t,e){if("function"!=typeof e)throw new Error("Please register a constructor function");if(void 0!==this._components[t])throw new Error("Component "+t+" is already registered");this._components[t]=e},toConfig:function(t){var e,i,n;if(this.isInitialised===!1)throw new Error("Can't create config, layout not yet initialised");if(t&&!(t instanceof lm.items.AbstractContentItem))throw new Error("Root must be a ContentItem");for(e={settings:lm.utils.copy({},this.config.settings),dimensions:lm.utils.copy({},this.config.dimensions),labels:lm.utils.copy({},this.config.labels)},e.content=[],i=function(t,e){var n,s;for(n in e.config)"content"!==n&&(t[n]=e.config[n]);if(e.contentItems.length)for(t.content=[],s=0;sn.x1&&tn.y1&&en.surface&&(s=n.surface,o=n);return o},_$createRootItemAreas:function(){var areaSize=50,sides={y2:0,x2:0,y1:"y2",x1:"x2"};for(side in sides){var area=this.root._$getArea();with(area.side=side,sides[side]?area[side]=area[sides[side]]-areaSize:area[side]=areaSize,area)surface=(x2-x1)*(y2-y1);this._itemAreas.push(area)}},_$calculateItemAreas:function(){var i,area,allContentItems=this._getAllContentItems();if(this._itemAreas=[],1===allContentItems.length)return void this._itemAreas.push(this.root._$getArea());for(this._$createRootItemAreas(),i=0;i
              ');t.click(lm.utils.fnBind(function(){this.emit("popIn")},this)),document.title=lm.utils.stripTags(this.config.content[0].title),$("head").append($("body link, body style, template, .gl_keep")),this.container=$("body").html("").css("visibility","visible").append(t);document.body.offsetHeight;window.__glInstance=this},_createSubWindows:function(){var t,e;for(t=0;t1)throw new Error("GoldenLayout more than one container element specified");t[0]===document.body&&(this._isFullPage=!0,$("html, body").css({height:"100%",margin:0,padding:0,overflow:"hidden"})),this.container=t},_create:function(t){var e;if(!(t.content instanceof Array))throw e=void 0===t.content?"Missing setting 'content' on top level of configuration":"Configuration parameter 'content' must be an array",new lm.errors.ConfigurationError(e,t);if(t.content.length>1)throw e="Top level content can't contain more then one element.",new lm.errors.ConfigurationError(e,t);this.root=new lm.items.Root(this,{content:t.content},this.container),this.root.callDownwards("_$init"),"__glMaximised"===t.maximisedItemId&&this.root.getItemsById(t.maximisedItemId)[0].toggleMaximise()},_onUnload:function(){if(this.config.settings.closePopoutsOnUnload===!0)for(var t=0;t','
              ',""].join("")),this._contentElement=this._element.find(".lm_content")},lm.utils.copy(lm.container.ItemContainer.prototype,{getElement:function(){return this._contentElement},hide:function(){this.emit("hide"),this.isHidden=!0,this._element.hide()},show:function(){this.emit("show"),this.isHidden=!1,this._element.show(),0==this.height&&0==this.width||this.emit("shown")},setSize:function(t,e){for(var i,n,s,o,r,a,h=this.parent,l=this;!h.isColumn&&!h.isRow;)if(l=h,h=h.parent,h.isRoot)return!1;for(s=h.isColumn?"height":"width",o="height"===s?e:t,i=this[s]*(1/(l.config[s]/100)),n=o/i*100,r=(l.config[s]-n)/(h.contentItems.length-1),a=0;a0?this._layoutManager.root.contentItems[0]:this._layoutManager.root,i=0)),e.addChild(t,this._indexInParent),this.close()},_createWindow:function(){var t,e=this._createUrl(),i=Math.floor(1e6*Math.random()).toString(36),n=this._serializeWindowOptions({width:this._dimensions.width,height:this._dimensions.height,innerWidth:this._dimensions.width,innerHeight:this._dimensions.height,menubar:"no",toolbar:"no",location:"no",personalbar:"no",resizable:"yes",scrollbars:"no",status:"no"});if(this._popoutWindow=window.open(e,i,n),this._popoutWindow)$(this._popoutWindow).on("load",lm.utils.fnBind(this._positionWindow,this)).on("unload beforeunload",lm.utils.fnBind(this._onClose,this)),t=setInterval(lm.utils.fnBind(function(){this._popoutWindow.__glInstance&&this._popoutWindow.__glInstance.isInitialised&&(this._onInitialised(),clearInterval(t))},this),10);else if(this._layoutManager.config.settings.blockedPopoutsThrowError===!0){var s=new Error("Popout blocked");throw s.type="popoutBlocked",s}},_serializeWindowOptions:function(t){var e,i=[];for(e in t)i.push(e+"="+t[e]);return i.join(",")},_createUrl:function(){var t,e={content:this._config},i="gl-window-config-"+lm.utils.getUniqueId();e=(new lm.utils.ConfigMinifier).minifyConfig(e);try{localStorage.setItem(i,JSON.stringify(e))}catch(n){throw new Error("Error while writing to localStorage "+n.toString())}return t=document.location.href.split("?"),1===t.length?t[0]+"?gl-window="+i:document.location.href+"&gl-window="+i},_positionWindow:function(){this._popoutWindow.moveTo(this._dimensions.left,this._dimensions.top),this._popoutWindow.focus()},_onInitialised:function(){this.isInitialised=!0,this.getGlInstance().on("popIn",this.popIn,this),this.emit("initialised")},_onClose:function(){setTimeout(lm.utils.fnBind(this.emit,this,["closed"]),50)}}),lm.controls.DragProxy=function(t,e,i,n,s,o){lm.utils.EventEmitter.call(this),this._dragListener=i,this._layoutManager=n,this._contentItem=s,this._originalParent=o,this._area=null,this._lastValidArea=null,this._dragListener.on("drag",this._onDrag,this),this._dragListener.on("dragStop",this._onDrop,this),this.element=$(lm.controls.DragProxy._template),o&&o._side&&(this._sided=o._sided,this.element.addClass("lm_"+o._side),["right","bottom"].indexOf(o._side)>=0&&this.element.find(".lm_content").after(this.element.find(".lm_header"))),this.element.css({left:t,top:e}),this.element.find(".lm_tab").attr("title",lm.utils.stripTags(this._contentItem.config.title)),this.element.find(".lm_title").html(this._contentItem.config.title),this.childElementContainer=this.element.find(".lm_content"),this.childElementContainer.append(s.element),this._updateTree(),this._layoutManager._$calculateItemAreas(),this._setDimensions(),$(document.body).append(this.element);var r=this._layoutManager.container.offset();this._minX=r.left,this._minY=r.top,this._maxX=this._layoutManager.container.width()+this._minX,this._maxY=this._layoutManager.container.height()+this._minY,this._width=this.element.width(),this._height=this.element.height(),this._setDropPosition(t,e)},lm.controls.DragProxy._template='
              ',lm.utils.copy(lm.controls.DragProxy.prototype,{_onDrag:function(t,e,i){i=i.originalEvent&&i.originalEvent.touches?i.originalEvent.touches[0]:i;var n=i.pageX,s=i.pageY,o=n>this._minX&&nthis._minY&&s
              ',lm.utils.copy(lm.controls.DropTargetIndicator.prototype,{destroy:function(){this.element.remove()},highlight:function(t,e,i,n){this.highlightArea({x1:t,y1:e,x2:i,y2:n})},highlightArea:function(t){this.element.css({left:t.x1,top:t.y1,width:t.x2-t.x1,height:t.y2-t.y1}).show()},hide:function(){this.element.hide()}}),lm.controls.Header=function(t,e){lm.utils.EventEmitter.call(this),this.layoutManager=t,this.element=$(lm.controls.Header._template),this.layoutManager.config.settings.selectionEnabled===!0&&(this.element.addClass("lm_selectable"),this.element.on("click touchstart",lm.utils.fnBind(this._onHeaderClick,this))),this.tabsContainer=this.element.find(".lm_tabs"),this.tabDropdownContainer=this.element.find(".lm_tabdropdown_list"),this.tabDropdownContainer.hide(),this.controlsContainer=this.element.find(".lm_controls"),this.parent=e,this.parent.on("resize",this._updateTabSizes,this),this.tabs=[],this.activeContentItem=null,this.closeButton=null,this.tabDropdownButton=null,$(document).mouseup(lm.utils.fnBind(this._hideAdditionalTabsDropdown,this)),this._lastVisibleTabIndex=-1,this._tabControlOffset=10,this._createControls()},lm.controls.Header._template=['
              ','
                ','
                  ','
                    ',"
                    "].join(""),lm.utils.copy(lm.controls.Header.prototype,{createTab:function(t,e){var i,n;for(n=0;n0?this.tabs[e-1].element.after(i.element):this.tabs[0].element.before(i.element),this.tabs.splice(e,0,i),void this._updateTabSizes())},removeTab:function(t){for(var e=0;ethis._lastVisibleTabIndex){for(s=this.tabs[this.parent.config.activeItemIndex],i=this.parent.config.activeItemIndex;i>0;i--)this.tabs[i]=this.tabs[i-1];this.tabs[0]=s,this.parent.config.activeItemIndex=0}this._updateTabSizes(),this.parent.emitBubblingEvent("stateChanged")},position:function(t){var e=this.parent._header.show;return e&&!this.parent._side&&(e="top"),void 0!==t&&this.parent._header.show!=t&&(this.parent._header.show=t,this.parent._setupHeaderPosition()),e},_$setClosable:function(t){return!(!this.closeButton||!this._isClosable())&&(this.closeButton.element[t?"show":"hide"](),!0)},_$destroy:function(){this.emit("destroy",this);for(var t=0;to&&a?(e.data("lastTabWidth",s),this.tabDropdownContainer.append(e)):(a=!0,this._lastVisibleTabIndex=i,e.removeData("lastTabWidth"),this.tabsContainer.append(e));n=r>o,this.tabDropdownButton.element[n?"show":"hide"]()}}}),lm.controls.HeaderButton=function(t,e,i,n){this._header=t,this.element=$('
                  • '),this._header.on("destroy",this._$destroy,this),this._action=n,this.element.on("click touchstart",this._action),this._header.controlsContainer.append(this.element)},lm.utils.copy(lm.controls.HeaderButton.prototype,{_$destroy:function(){this.element.off(),this.element.remove()}}),lm.controls.Splitter=function(t,e){this._isVertical=t,this._size=e,this.element=this._createElement(),this._dragListener=new lm.utils.DragListener(this.element)},lm.utils.copy(lm.controls.Splitter.prototype,{on:function(t,e,i){this._dragListener.on(t,e,i)},_$destroy:function(){this.element.remove()},_createElement:function(){var t=$('
                    ');return t.addClass("lm_"+(this._isVertical?"vertical":"horizontal")),t[this._isVertical?"height":"width"](this._size),t}}),lm.controls.Tab=function(t,e){this.header=t,this.contentItem=e,this.element=$(lm.controls.Tab._template),this.titleElement=this.element.find(".lm_title"),this.closeElement=this.element.find(".lm_close_tab"),this.closeElement[e.config.isClosable?"show":"hide"](),this.isActive=!1,this.setTitle(e.config.title),this.contentItem.on("titleChanged",this.setTitle,this),this._layoutManager=this.contentItem.layoutManager,this._layoutManager.config.settings.reorderEnabled===!0&&e.config.reorderEnabled===!0&&(this._dragListener=new lm.utils.DragListener(this.element),this._dragListener.on("dragStart",this._onDragStart,this)),this._onTabClickFn=lm.utils.fnBind(this._onTabClick,this),this._onCloseClickFn=lm.utils.fnBind(this._onCloseClick,this),this.element.on("mousedown touchstart",this._onTabClickFn),this.contentItem.config.isClosable?this.closeElement.on("click touchstart",this._onCloseClickFn):this.closeElement.remove(),this.contentItem.tab=this,this.contentItem.emit("tab",this),this.contentItem.layoutManager.emit("tabCreated",this),this.contentItem.isComponent&&(this.contentItem.container.tab=this,this.contentItem.container.emit("tab",this))},lm.controls.Tab._template='
                  • ',lm.utils.copy(lm.controls.Tab.prototype,{setTitle:function(t){this.element.attr("title",lm.utils.stripTags(t)),this.titleElement.html(t)},setActive:function(t){t!==this.isActive&&(this.isActive=t,t?this.element.addClass("lm_active"):this.element.removeClass("lm_active"))},_$destroy:function(){this.element.off("mousedown touchstart",this._onTabClickFn),this.closeElement.off("click touchstart",this._onCloseClickFn),this._dragListener&&(this._dragListener.off("dragStart",this._onDragStart),this._dragListener=null),this.element.remove()},_onDragStart:function(t,e){this.contentItem.parent.isMaximised===!0&&this.contentItem.parent.toggleMaximise(),new lm.controls.DragProxy(t,e,this._dragListener,this._layoutManager,this.contentItem,this.header.parent)},_onTabClick:function(t){if(0===t.button||"touchstart"===t.type){var e=this.header.parent.getActiveContentItem();this.contentItem!==e&&this.header.parent.setActiveContentItem(this.contentItem)}else 1===t.button&&this.contentItem.config.isClosable&&this._onCloseClick(t)},_onCloseClick:function(t){t.stopPropagation(),this.header.parent.removeChild(this.contentItem)}}),lm.controls.TransitionIndicator=function(){this._element=$('
                    '),$(document.body).append(this._element),this._toElement=null,this._fromDimensions=null,this._totalAnimationDuration=200,this._animationStartTime=null},lm.utils.copy(lm.controls.TransitionIndicator.prototype,{destroy:function(){this._element.remove()},transitionElements:function(t,e){},_nextAnimationFrame:function(){var t,e=this._measure(this._toElement),i=(lm.utils.now()-this._animationStartTime)/this._totalAnimationDuration,n={};if(i>=1)return void this._element.hide();e.opacity=0;for(t in this._fromDimensions)n[t]=this._fromDimensions[t]+(e[t]-this._fromDimensions[t])*i;this._element.css(n),lm.utils.animFrame(lm.utils.fnBind(this._nextAnimationFrame,this))},_measure:function(t){var e=t.offset();return{left:e.left,top:e.top,width:t.outerWidth(),height:t.outerHeight()}}}),lm.errors.ConfigurationError=function(t,e){Error.call(this),this.name="Configuration Error",this.message=t,this.node=e},lm.errors.ConfigurationError.prototype=new Error,lm.items.AbstractContentItem=function(t,e,i){lm.utils.EventEmitter.call(this),this.config=this._extendItemNode(e),this.type=e.type,this.contentItems=[],this.parent=i,this.isInitialised=!1,this.isMaximised=!1,this.isRoot=!1,this.isRow=!1,this.isColumn=!1,this.isStack=!1,this.isComponent=!1,this.layoutManager=t,this._pendingEventPropagations={},this._throttledEvents=["stateChanged"],this.on(lm.utils.EventEmitter.ALL_EVENT,this._propagateEvent,this),e.content&&this._createContentItems(e)},lm.utils.copy(lm.items.AbstractContentItem.prototype,{setSize:function(){throw new Error("Abstract Method")},callDownwards:function(t,e,i,n){var s;for(i!==!0&&n!==!0&&this[t].apply(this,e||[]),s=0;s0?this.callDownwards("setSize"):this instanceof lm.items.Root||this.config.isClosable!==!0||this.parent.removeChild(this)},addChild:function(t,e){void 0===e&&(e=this.contentItems.length),this.contentItems.splice(e,0,t),void 0===this.config.content&&(this.config.content=[]),this.config.content.splice(e,0,t.config),t.parent=this,t.parent.isInitialised===!0&&t.isInitialised===!1&&t._$init()},replaceChild:function(t,e,i){e=this.layoutManager._$normalizeContentItem(e);var n=lm.utils.indexOf(t,this.contentItems),s=t.element[0].parentNode;if(n===-1)throw new Error("Can't replace child. oldChild is not child of this");s.replaceChild(e.element[0],t.element[0]),i===!0&&(t.parent=null,t._$destroy()),this.contentItems[n]=e,e.parent=this,this.isStack&&(this.header.tabs[n].contentItem=e),e.parent.isInitialised===!0&&e.isInitialised===!1&&e._$init(),this.callDownwards("setSize")},remove:function(){this.parent.removeChild(this)},popout:function(){var t=this.layoutManager.createPopout(this);return this.emitBubblingEvent("stateChanged"),t},toggleMaximise:function(t){t&&t.preventDefault(),this.isMaximised===!0?this.layoutManager._$minimiseItem(this):this.layoutManager._$maximiseItem(this),this.isMaximised=!this.isMaximised,this.emitBubblingEvent("stateChanged")},select:function(){this.layoutManager.selectedItem!==this&&(this.layoutManager.selectItem(this,!0),this.element.addClass("lm_selected"))},deselect:function(){this.layoutManager.selectedItem===this&&(this.layoutManager.selectedItem=null,this.element.removeClass("lm_selected"))},setTitle:function(t){this.config.title=t,this.emit("titleChanged",t),this.emit("stateChanged")},hasId:function(t){return!!this.config.id&&("string"==typeof this.config.id?this.config.id===t:this.config.id instanceof Array?lm.utils.indexOf(t,this.config.id)!==-1:void 0)},addId:function(t){this.hasId(t)||(this.config.id?"string"==typeof this.config.id?this.config.id=[this.config.id,t]:this.config.id instanceof Array&&this.config.id.push(t):this.config.id=t)},removeId:function(t){if(!this.hasId(t))throw new Error("Id not found");if("string"==typeof this.config.id)delete this.config.id;else if(this.config.id instanceof Array){var e=lm.utils.indexOf(t,this.config.id);this.config.id.splice(e,1)}},getItemsByFilter:function(t){var e=[],i=function(n){for(var s=0;s'),this.childElementContainer=this.element,this._containerElement=i,this._containerElement.append(this.element)},lm.utils.extend(lm.items.Root,lm.items.AbstractContentItem),lm.utils.copy(lm.items.Root.prototype,{addChild:function(t){if(this.contentItems.length>0)throw new Error("Root node can only have a single child");t=this.layoutManager._$normalizeContentItem(t,this),this.childElementContainer.append(t.element),lm.items.AbstractContentItem.prototype.addChild.call(this,t),this.callDownwards("setSize"),this.emitBubblingEvent("stateChanged")},setSize:function(t,e){t="undefined"==typeof t?this._containerElement.width():t,e="undefined"==typeof e?this._containerElement.height():e,this.element.width(t),this.element.height(e),this.contentItems[0]&&(this.contentItems[0].element.width(t),this.contentItems[0].element.height(e))},_$highlightDropZone:function(t,e,i){this.layoutManager.tabDropPlaceholder.remove(),lm.items.AbstractContentItem.prototype._$highlightDropZone.apply(this,arguments)},_$onDrop:function(t,e){var i;if(t.isComponent&&(i=this.layoutManager.createContentItem({type:"stack",header:t.config.header||{}},this),i._$init(),i.addChild(t),t=i),this.contentItems.length){var n="x"==e.side[0]?"row":"column",s="x"==e.side[0]?"width":"height",o="2"==e.side[1],r=this.contentItems[0];if(!r instanceof lm.items.RowOrColumn||r.type!=n){var a=this.layoutManager.createContentItem({type:n},this);this.replaceChild(r,a),a.addChild(t,o?0:void 0,!0),a.addChild(r,o?void 0:0,!0),r.config[s]=50,t.config[s]=50,a.callDownwards("setSize")}else{var h=r.contentItems[o?0:r.contentItems.length-1];r.addChild(t,o?0:void 0,!0),h.config[s]*=.5,t.config[s]=h.config[s],r.callDownwards("setSize")}}else this.addChild(t)}}),lm.items.RowOrColumn=function(t,e,i,n){lm.items.AbstractContentItem.call(this,e,i,n),this.isRow=!t,this.isColumn=t,this.element=$('
                    '),this.childElementContainer=this.element,this._splitterSize=e.config.dimensions.borderWidth,this._isColumn=t,this._dimension=t?"height":"width",this._splitter=[],this._splitterPosition=null,this._splitterMinPosition=null,this._splitterMaxPosition=null},lm.utils.extend(lm.items.RowOrColumn,lm.items.AbstractContentItem),lm.utils.copy(lm.items.RowOrColumn.prototype,{addChild:function(t,e,i){var n,s,o,r;if(t=this.layoutManager._$normalizeContentItem(t,this),void 0===e&&(e=this.contentItems.length),this.contentItems.length>0?(r=this._createSplitter(Math.max(0,e-1)).element,e>0?(this.contentItems[e-1].element.after(r),r.after(t.element)):(this.contentItems[0].element.before(r),r.before(t.element))):this.childElementContainer.append(t.element),lm.items.AbstractContentItem.prototype.addChild.call(this,t,e),n=1/this.contentItems.length*100,i===!0)return void this.emitBubblingEvent("stateChanged");for(o=0;o0&&(this._calculateRelativeSizes(),this._setAbsoluteSizes()),this.emitBubblingEvent("stateChanged"),this.emit("resize")},_$init:function(){if(this.isInitialised!==!0){var t;for(lm.items.AbstractContentItem.prototype._$init.call(this),t=0;t0&&e.itemSizes[t]++,this._isColumn?(this.contentItems[t].element.width(e.totalWidth),this.contentItems[t].element.height(e.itemSizes[t])):(this.contentItems[t].element.width(e.itemSizes[t]),this.contentItems[t].element.height(e.totalHeight))},_calculateAbsoluteSizes:function(){var t,e,i,n=(this.contentItems.length-1)*this._splitterSize,s=this.element.width(),o=this.element.height(),r=0,a=[];for(this._isColumn?o-=n:s-=n,t=0;t0){for(t=0;t100)for(t=0;ta)){for(t=h/a,l=h,i=0;ithis._splitterMinPosition&&n'),this._activeContentItem=null;var n=t.config;this._header={show:n.settings.hasHeaders===!0&&e.hasHeaders!==!1,popout:n.settings.showPopoutIcon&&n.labels.popout,maximise:n.settings.showMaximiseIcon&&n.labels.maximise,close:n.settings.showCloseIcon&&n.labels.close,minimise:n.labels.minimise},n.header&&lm.utils.copy(this._header,n.header),e.header&&lm.utils.copy(this._header,e.header),e.content&&e.content[0]&&e.content[0].header&&lm.utils.copy(this._header,e.content[0].header),this._dropZones={},this._dropSegment=null,this._contentAreaDimensions=null,this._dropIndex=null,this.isStack=!0,this.childElementContainer=$('
                    '),this.header=new lm.controls.Header(t,this),this.element.append(this.header.element),this.element.append(this.childElementContainer),this._setupHeaderPosition(),this._$validateClosability()},lm.utils.extend(lm.items.Stack,lm.items.AbstractContentItem),lm.utils.copy(lm.items.Stack.prototype,{setSize:function(){var t,e=this._header.show?this.layoutManager.config.dimensions.headerHeight:0,i=this.element.width()-(this._sided?e:0),n=this.element.height()-(this._sided?0:e);for(this.childElementContainer.width(i),this.childElementContainer.height(n),t=0;t0){if(e=this.contentItems[this.config.activeItemIndex||0],!e)throw new Error("Configured activeItemIndex out of bounds");this.setActiveContentItem(e)}}},setActiveContentItem:function(t){if(lm.utils.indexOf(t,this.contentItems)===-1)throw new Error("contentItem is not a child of this stack");null!==this._activeContentItem&&this._activeContentItem._$hide(),this._activeContentItem=t,this.header.setActiveContentItem(t),t._$show(),this.emit("activeContentItemChanged",t),this.emitBubblingEvent("stateChanged")},getActiveContentItem:function(){return this.header.activeContentItem},addChild:function(t,e){t=this.layoutManager._$normalizeContentItem(t,this),lm.items.AbstractContentItem.prototype.addChild.call(this,t,e),this.childElementContainer.append(t.element),this.header.createTab(t,e),this.setActiveContentItem(t),this.callDownwards("setSize"),this._$validateClosability(),this.emitBubblingEvent("stateChanged")},removeChild:function(t,e){var i=lm.utils.indexOf(t,this.contentItems);lm.items.AbstractContentItem.prototype.removeChild.call(this,t,e),this.header.removeTab(t),this.contentItems.length>0?this.setActiveContentItem(this.contentItems[Math.max(i-1,0)]):this._activeContentItem=null,this._$validateClosability(),this.emitBubblingEvent("stateChanged")},_$validateClosability:function(){var t,e,i;for(t=this.header._isClosable(),i=0,e=this.contentItems.length;it&&n.y1e)return void("header"===i?(this._dropSegment="header",this._highlightHeaderDropZone(this._sided?e:t)):(this._resetHeaderDropZone(),this._highlightBodyDropZone(i)))},_$getArea:function(){if(this.element.is(":visible")===!1)return null;var t=lm.items.AbstractContentItem.prototype._$getArea,e=t.call(this,this.header.element),i=t.call(this,this.childElementContainer),n=i.x2-i.x1,s=i.y2-i.y1;return this._contentAreaDimensions={header:{hoverArea:{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2},highlightArea:{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2}}},this._activeContentItem&&this._activeContentItem.isComponent===!1?e:0===this.contentItems.length?(this._contentAreaDimensions.body={hoverArea:{x1:i.x1,y1:i.y1,x2:i.x2,y2:i.y2},highlightArea:{x1:i.x1,y1:i.y1,x2:i.x2,y2:i.y2}},t.call(this,this.element)):(this._contentAreaDimensions.left={hoverArea:{x1:i.x1,y1:i.y1,x2:i.x1+.25*n,y2:i.y2},highlightArea:{x1:i.x1,y1:i.y1,x2:i.x1+.5*n,y2:i.y2}},this._contentAreaDimensions.top={hoverArea:{x1:i.x1+.25*n,y1:i.y1,x2:i.x1+.75*n,y2:i.y1+.5*s},highlightArea:{x1:i.x1,y1:i.y1,x2:i.x2,y2:i.y1+.5*s}},this._contentAreaDimensions.right={hoverArea:{x1:i.x1+.75*n,y1:i.y1,x2:i.x2,y2:i.y2},highlightArea:{x1:i.x1+.5*n,y1:i.y1,x2:i.x2,y2:i.y2}},this._contentAreaDimensions.bottom={hoverArea:{x1:i.x1+.25*n,y1:i.y1+.5*s,x2:i.x1+.75*n,y2:i.y2},highlightArea:{x1:i.x1,y1:i.y1+.5*s,x2:i.x2,y2:i.y2}},t.call(this,this.element))},_highlightHeaderDropZone:function(t){var e,i,n,s,o,r,a,h,l,m=this.header.tabs.length,c=!1;if(0===m)return a=this.header.element.offset(),void this.layoutManager.dropTargetIndicator.highlightArea({x1:a.left,x2:a.left+100,y1:a.top+this.header.element.height()-20,y2:a.top+this.header.element.height()});for(e=0;es&&t=0&&this._header.show;if(this.header.element.toggle(!!this._header.show),this._side=t,this._sided=["right","left"].indexOf(this._side)>=0,this.element.removeClass("lm_left lm_right lm_bottom"),this._side&&this.element.addClass("lm_"+this._side),this.element.find(".lm_header").length&&this.childElementContainer){var e=["right","bottom"].indexOf(this._side)>=0?"before":"after";this.header.element[e](this.childElementContainer),this.callDownwards("setSize")}},_highlightBodyDropZone:function(t){var e=this._contentAreaDimensions[t].highlightArea;this.layoutManager.dropTargetIndicator.highlightArea(e),this._dropSegment=t}}),lm.utils.BubblingEvent=function(t,e){this.name=t,this.origin=e,this.isPropagationStopped=!1},lm.utils.BubblingEvent.prototype.stopPropagation=function(){this.isPropagationStopped=!0},lm.utils.ConfigMinifier=function(){this._keys=["settings","hasHeaders","constrainDragToContainer","selectionEnabled","dimensions","borderWidth","minItemHeight","minItemWidth","headerHeight","dragProxyWidth","dragProxyHeight","labels","close","maximise","minimise","popout","content","componentName","componentState","id","width","type","height","isClosable","title","popoutWholeStack","openPopouts","parentId","activeItemIndex","reorderEnabled"],this._values=[!0,!1,"row","column","stack","component","close","maximise","minimise","open in new window"]},lm.utils.copy(lm.utils.ConfigMinifier.prototype,{minifyConfig:function(t){var e={};return this._nextLevel(t,e,"_min"),e},unminifyConfig:function(t){var e={};return this._nextLevel(t,e,"_max"),e},_nextLevel:function(t,e,i){var n,s;for(n in t)t instanceof Array&&(n=parseInt(n,10)),t.hasOwnProperty(n)&&(s=this[i](n,this._keys),"object"==typeof t[n]?(e[s]=t[n]instanceof Array?[]:{},this._nextLevel(t[n],e[s],i)):e[s]=this[i](t[n],this._values))},_min:function(t,e){if("string"==typeof t&&1===t.length)return"___"+t;var i=lm.utils.indexOf(t,e);return i===-1?t:i.toString(36)},_max:function(t,e){return"string"==typeof t&&1===t.length?e[parseInt(t,36)]:"string"==typeof t&&"___"===t.substr(0,3)?t[3]:t}}),lm.utils.EventHub=function(t){lm.utils.EventEmitter.call(this),this._layoutManager=t,this._dontPropagateToParent=null,this._childEventSource=null,this.on(lm.utils.EventEmitter.ALL_EVENT,lm.utils.fnBind(this._onEventFromThis,this)),this._boundOnEventFromChild=lm.utils.fnBind(this._onEventFromChild,this),$(window).on("gl_child_event",this._boundOnEventFromChild)},lm.utils.EventHub.prototype._onEventFromThis=function(){var t=Array.prototype.slice.call(arguments);this._layoutManager.isSubWindow&&t[0]!==this._dontPropagateToParent&&this._propagateToParent(t),this._propagateToChildren(t),this._dontPropagateToParent=null,this._childEventSource=null},lm.utils.EventHub.prototype._$onEventFromParent=function(t){ -this._dontPropagateToParent=t[0],this.emit.apply(this,t)},lm.utils.EventHub.prototype._onEventFromChild=function(t){this._childEventSource=t.originalEvent.__gl,this.emit.apply(this,t.originalEvent.__glArgs)},lm.utils.EventHub.prototype._propagateToParent=function(t){var e,i="gl_child_event";document.createEvent?(e=window.opener.document.createEvent("HTMLEvents"),e.initEvent(i,!0,!0)):(e=window.opener.document.createEventObject(),e.eventType=i),e.eventName=i,e.__glArgs=t,e.__gl=this._layoutManager,document.createEvent?window.opener.dispatchEvent(e):window.opener.fireEvent("on"+e.eventType,e)},lm.utils.EventHub.prototype._propagateToChildren=function(t){var e,i;for(i=0;i Date: Fri, 18 Mar 2022 14:53:19 -0400 Subject: LongByte was right --- public/client.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/public/client.html b/public/client.html index 1ecab8f..297a284 100644 --- a/public/client.html +++ b/public/client.html @@ -20,7 +20,8 @@ - -- cgit From d02fc1e3fca96be995a7e6059eef65f52c24c756 Mon Sep 17 00:00:00 2001 From: "caleb.mabry.15@cnu.edu" Date: Fri, 18 Mar 2022 14:59:35 -0400 Subject: Adding script tags back --- public/client.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/public/client.html b/public/client.html index 297a284..4101979 100644 --- a/public/client.html +++ b/public/client.html @@ -20,7 +20,10 @@ - -- cgit From fff3c988044e4da0aca2a86ccf117764920fbfad Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Fri, 18 Mar 2022 21:02:28 +0100 Subject: do not wait for the charicon --- webAO/client.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/webAO/client.js b/webAO/client.js index a78eeb1..8c5ae4c 100644 --- a/webAO/client.js +++ b/webAO/client.js @@ -798,7 +798,7 @@ class Client extends EventEmitter { } } }; - await getCharIcon(); + getCharIcon(); // If the ini doesn't exist on the server this will throw an error try { @@ -3125,4 +3125,4 @@ export function toggleShout(shout) { } } window.toggleShout = toggleShout; -export default Client \ No newline at end of file +export default Client -- cgit From bd76a2510c00755f1fccc8af8ebd75477df4511d Mon Sep 17 00:00:00 2001 From: "caleb.mabry.15@cnu.edu" Date: Sun, 20 Mar 2022 14:59:45 -0400 Subject: Fix shake --- webAO/styles/client.css | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/webAO/styles/client.css b/webAO/styles/client.css index 940a1ea..4e0712e 100644 --- a/webAO/styles/client.css +++ b/webAO/styles/client.css @@ -169,14 +169,16 @@ #client_background { position: relative; - padding-bottom: 75%; background-color: transparent; top: 0; left: 0; } #client_gamewindow { + position: inherit; width: 100%; + padding-bottom: 75%; + } #client_court_static { -- cgit From 77eabb9fe2ac287719452607f2bd4ac3573ee54b Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Mon, 21 Mar 2022 22:30:08 +0100 Subject: move master.js to typescript --- package.json | 4 +- tsconfig.json | 8 +++ webAO/master.js | 151 --------------------------------------------------- webAO/master.ts | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ webpack.config.js | 8 ++- 5 files changed, 175 insertions(+), 153 deletions(-) create mode 100644 tsconfig.json delete mode 100644 webAO/master.js create mode 100644 webAO/master.ts diff --git a/package.json b/package.json index bab812a..4c97730 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,9 @@ "@fingerprintjs/fingerprintjs": "^3.3.3", "core-js": "^3.21.1", "golden-layout": "^2.5.0", - "regenerator-runtime": "^0.13.9" + "regenerator-runtime": "^0.13.9", + "source-map-loader": "^3.0.1", + "ts-loader": "^9.2.8" }, "browserslist": [ "defaults", diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..6e4fb21 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "outDir": "./dist", + "allowJs": true, + "target": "es5" + }, + "include": ["./webAO/*"] +} \ No newline at end of file diff --git a/webAO/master.js b/webAO/master.js deleted file mode 100644 index b4ead94..0000000 --- a/webAO/master.js +++ /dev/null @@ -1,151 +0,0 @@ -import FingerprintJS from '@fingerprintjs/fingerprintjs'; - -import { unescapeChat, safeTags } from './encoding.js'; - -const myStorage = window.localStorage; - -const version = process.env.npm_package_version; - -const MASTERSERVER_IP = 'master.aceattorneyonline.com:27014'; - -let masterserver; - -let hdid; - -let selectedServer = -1; - -const servers = []; -servers[-2] = { - name: 'Singleplayer', description: 'Build cases, try out new things', ip: '127.0.0.1', port: 50001, assets: '', online: '', -}; -servers[-1] = { - name: 'Localhost', description: 'This is your computer on port 50001', ip: '127.0.0.1', port: 50001, assets: '', online: 'Online: ?/?', -}; - -const fpPromise = FingerprintJS.load(); -fpPromise - .then((fp) => fp.get()) - .then((result) => { - hdid = result.visitorId; - - check_https(); - - fetch('https://servers.aceattorneyonline.com/servers') - .then(cachedServerlist) - .then((response) => loadServerlist(response)) - .catch(cachedServerlist); - - fetch('https://servers.aceattorneyonline.com/version') - .then((response) => response.text()) - .then((response) => processVersion(response)); - - // i don't need the ms to play alone - setTimeout(() => checkOnline(-1, '127.0.0.1:50001'), 0); - }); - -export function check_https() { - if (document.location.protocol === 'https:') { - document.getElementById('https_error').style.display = ''; - } -} - -export function setServ(ID) { - selectedServer = ID; - - if (document.getElementById(`server${ID}`).className === '') { checkOnline(ID, `${servers[ID].ip}:${servers[ID].ws_port}`); } - - if (servers[ID].description !== undefined) { - document.getElementById('serverdescription_content').innerHTML = `${servers[ID].online}
                    ${safeTags(servers[ID].description)}`; - } else { - document.getElementById('serverdescription_content').innerHTML = ''; - } -} -window.setServ = setServ; - -function checkOnline(serverID, coIP) { - let oserv; - if (serverID !== -2) { - try { - oserv = new WebSocket(`ws://${coIP}`); - } catch (SecurityError) { - document.getElementById(`server${serverID}`).className = 'unavailable'; - return; - } - } - - // define what the callbacks do - function onCOOpen(_e) { - document.getElementById(`server${serverID}`).className = 'available'; - oserv.send(`HI#${hdid}#%`); - oserv.send('ID#webAO#webAO#%'); - } - - function onCOMessage(e) { - const comsg = e.data; - const coheader = comsg.split('#', 2)[0]; - const coarguments = comsg.split('#').slice(1); - if (coheader === 'PN') { - servers[serverID].online = `Online: ${Number(coarguments[0])}/${Number(coarguments[1])}`; - oserv.close(); - return; - } if (coheader === 'BD') { - servers[serverID].online = 'Banned'; - servers[serverID].description = coarguments[0]; - oserv.close(); - return; - } - if (serverID === selectedServer) { - document.getElementById('serverdescription_content').innerHTML = `${servers[serverID].online}
                    ${safeTags(servers[serverID].description)}`; - } - } - - // assign the callbacks - oserv.onopen = function (evt) { - onCOOpen(evt); - }; - - oserv.onmessage = function (evt) { - onCOMessage(evt); - }; - - oserv.onerror = function (_evt) { - document.getElementById(`server${serverID}`).className = 'unavailable'; - }; -} - -function loadServerlist(thelist) { - localStorage.setItem('masterlist', JSON.stringify(thelist)); - processServerlist(thelist); -} - -function cachedServerlist(response) { - if (!response.ok) { - document.getElementById('ms_error').style.display = 'block'; - processServerlist(JSON.parse(localStorage.getItem('masterlist'))); - return; - } - return response.json(); -} - -function processServerlist(thelist) { - for (let i = 0; i < thelist.length - 1; i++) { - const serverEntry = thelist[i]; - - servers[i] = serverEntry; - - const ipport = `${serverEntry.ip}:${serverEntry.ws_port}`; - - if (serverEntry.ws_port) { - document.getElementById('masterlist').innerHTML - += `
                  • ${safeTags(serverEntry.name)}

                    ` - + `Watch` - + `Join
                  • `; - } - } -} - -function processVersion(data) { - console.debug(data); - document.getElementById('clientinfo').innerHTML = `Client version: ${version}`; - document.getElementById('serverinfo').innerHTML = `Master server version: ${data}`; -} diff --git a/webAO/master.ts b/webAO/master.ts new file mode 100644 index 0000000..1a52559 --- /dev/null +++ b/webAO/master.ts @@ -0,0 +1,157 @@ +import FingerprintJS from '@fingerprintjs/fingerprintjs'; + +import { unescapeChat, safeTags } from './encoding.js'; + +declare global { + interface Window { + setServ: (ID: any) => void; + } +} + +const myStorage = window.localStorage; + +const version = process.env.npm_package_version; + +const MASTERSERVER_IP = 'master.aceattorneyonline.com:27014'; + +let masterserver; + +let hdid; + +let selectedServer = -1; + +const servers = []; +servers[-2] = { + name: 'Singleplayer', description: 'Build cases, try out new things', ip: '127.0.0.1', port: 50001, assets: '', online: '', +}; +servers[-1] = { + name: 'Localhost', description: 'This is your computer on port 50001', ip: '127.0.0.1', port: 50001, assets: '', online: 'Online: ?/?', +}; + +const fpPromise = FingerprintJS.load(); +fpPromise + .then((fp) => fp.get()) + .then((result) => { + hdid = result.visitorId; + + check_https(); + + fetch('https://servers.aceattorneyonline.com/servers') + .then(cachedServerlist) + .then((response) => loadServerlist(response)) + .catch(cachedServerlist); + + fetch('https://servers.aceattorneyonline.com/version') + .then((response) => response.text()) + .then((response) => processVersion(response)); + + // i don't need the ms to play alone + setTimeout(() => checkOnline(-1, '127.0.0.1:50001'), 0); + }); + +export function check_https() { + if (document.location.protocol === 'https:') { + document.getElementById('https_error').style.display = ''; + } +} + +export function setServ(ID) { + selectedServer = ID; + + if (document.getElementById(`server${ID}`).className === '') { checkOnline(ID, `${servers[ID].ip}:${servers[ID].ws_port}`); } + + if (servers[ID].description !== undefined) { + document.getElementById('serverdescription_content').innerHTML = `${servers[ID].online}
                    ${safeTags(servers[ID].description)}`; + } else { + document.getElementById('serverdescription_content').innerHTML = ''; + } +} +window.setServ = setServ; + +function checkOnline(serverID, coIP) { + let oserv; + if (serverID !== -2) { + try { + oserv = new WebSocket(`ws://${coIP}`); + } catch (SecurityError) { + document.getElementById(`server${serverID}`).className = 'unavailable'; + return; + } + } + + // define what the callbacks do + function onCOOpen(_e) { + document.getElementById(`server${serverID}`).className = 'available'; + oserv.send(`HI#${hdid}#%`); + oserv.send('ID#webAO#webAO#%'); + } + + function onCOMessage(e) { + const comsg = e.data; + const coheader = comsg.split('#', 2)[0]; + const coarguments = comsg.split('#').slice(1); + if (coheader === 'PN') { + servers[serverID].online = `Online: ${Number(coarguments[0])}/${Number(coarguments[1])}`; + oserv.close(); + return; + } if (coheader === 'BD') { + servers[serverID].online = 'Banned'; + servers[serverID].description = coarguments[0]; + oserv.close(); + return; + } + if (serverID === selectedServer) { + document.getElementById('serverdescription_content').innerHTML = `${servers[serverID].online}
                    ${safeTags(servers[serverID].description)}`; + } + } + + // assign the callbacks + oserv.onopen = function (evt) { + onCOOpen(evt); + }; + + oserv.onmessage = function (evt) { + onCOMessage(evt); + }; + + oserv.onerror = function (_evt) { + document.getElementById(`server${serverID}`).className = 'unavailable'; + }; +} + +function loadServerlist(thelist) { + localStorage.setItem('masterlist', JSON.stringify(thelist)); + processServerlist(thelist); +} + +function cachedServerlist(response) { + if (!response.ok) { + document.getElementById('ms_error').style.display = 'block'; + processServerlist(JSON.parse(localStorage.getItem('masterlist'))); + return; + } + return response.json(); +} + +function processServerlist(thelist) { + for (let i = 0; i < thelist.length - 1; i++) { + const serverEntry = thelist[i]; + + servers[i] = serverEntry; + + const ipport = `${serverEntry.ip}:${serverEntry.ws_port}`; + + if (serverEntry.ws_port) { + document.getElementById('masterlist').innerHTML + += `
                  • ${safeTags(serverEntry.name)}

                    ` + + `Watch` + + `Join
                  • `; + } + } +} + +function processVersion(data) { + console.debug(data); + document.getElementById('clientinfo').innerHTML = `Client version: ${version}`; + document.getElementById('serverinfo').innerHTML = `Master server version: ${data}`; +} diff --git a/webpack.config.js b/webpack.config.js index 5c8b1de..68546c3 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -15,13 +15,16 @@ module.exports = { entry: { ui: './webAO/ui.js', client: './webAO/client.js', - master: './webAO/master.js', + master: './webAO/master.ts', dom: glob.sync('./webAO/dom/*.js'), }, node: { global: true, }, devtool: 'source-map', + resolve: { + extensions: ["", ".webpack.js", ".web.js", ".ts", ".tsx", ".js"], + }, devServer: { static: { directory: path.join(__dirname, 'webAO'), @@ -55,6 +58,9 @@ module.exports = { }, }, }, + { test: /\.tsx?$/, loader: "ts-loader" }, + // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'. + { test: /\.js$/, loader: "source-map-loader" }, ], }, output: { -- cgit From 4e6fb6ba43caa1eda676c409201588ef500d4a0c Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Mon, 21 Mar 2022 22:56:17 +0100 Subject: add a bunch of types --- webAO/master.ts | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/webAO/master.ts b/webAO/master.ts index 1a52559..1b7d5ba 100644 --- a/webAO/master.ts +++ b/webAO/master.ts @@ -14,18 +14,16 @@ const version = process.env.npm_package_version; const MASTERSERVER_IP = 'master.aceattorneyonline.com:27014'; -let masterserver; +let hdid: string; -let hdid; +let selectedServer: number = -1; -let selectedServer = -1; - -const servers = []; +let servers: { name: string, description: string, ip: string, port: number, ws_port: number, assets: string, online: string }[] = []; servers[-2] = { - name: 'Singleplayer', description: 'Build cases, try out new things', ip: '127.0.0.1', port: 50001, assets: '', online: '', + name: 'Singleplayer', description: 'Build cases, try out new things', ip: '127.0.0.1', port: 50001, ws_port: 50001, assets: '', online: '', }; servers[-1] = { - name: 'Localhost', description: 'This is your computer on port 50001', ip: '127.0.0.1', port: 50001, assets: '', online: 'Online: ?/?', + name: 'Localhost', description: 'This is your computer on port 50001', ip: '127.0.0.1', port: 50001, ws_port: 50001, assets: '', online: 'Online: ?/?', }; const fpPromise = FingerprintJS.load(); @@ -55,7 +53,7 @@ export function check_https() { } } -export function setServ(ID) { +export function setServ(ID: number) { selectedServer = ID; if (document.getElementById(`server${ID}`).className === '') { checkOnline(ID, `${servers[ID].ip}:${servers[ID].ws_port}`); } @@ -68,7 +66,7 @@ export function setServ(ID) { } window.setServ = setServ; -function checkOnline(serverID, coIP) { +function checkOnline(serverID: number, coIP: string) { let oserv; if (serverID !== -2) { try { @@ -119,12 +117,12 @@ function checkOnline(serverID, coIP) { }; } -function loadServerlist(thelist) { +function loadServerlist(thelist: string) { localStorage.setItem('masterlist', JSON.stringify(thelist)); processServerlist(thelist); } -function cachedServerlist(response) { +function cachedServerlist(response: Response) { if (!response.ok) { document.getElementById('ms_error').style.display = 'block'; processServerlist(JSON.parse(localStorage.getItem('masterlist'))); @@ -133,7 +131,7 @@ function cachedServerlist(response) { return response.json(); } -function processServerlist(thelist) { +function processServerlist(thelist: Array) { for (let i = 0; i < thelist.length - 1; i++) { const serverEntry = thelist[i]; @@ -150,7 +148,7 @@ function processServerlist(thelist) { } } -function processVersion(data) { +function processVersion(data: string) { console.debug(data); document.getElementById('clientinfo').innerHTML = `Client version: ${version}`; document.getElementById('serverinfo').innerHTML = `Master server version: ${data}`; -- cgit From f73e7e4a16c45c514d3fc154066521fb3cd363ea Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Mon, 21 Mar 2022 23:04:27 +0100 Subject: the server type is a mess --- webAO/master.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/webAO/master.ts b/webAO/master.ts index 1b7d5ba..8fd8779 100644 --- a/webAO/master.ts +++ b/webAO/master.ts @@ -117,7 +117,7 @@ function checkOnline(serverID: number, coIP: string) { }; } -function loadServerlist(thelist: string) { +function loadServerlist(thelist: { name: string, description: string, ip: string, port: number, ws_port: number, assets: string, online: string }[]) { localStorage.setItem('masterlist', JSON.stringify(thelist)); processServerlist(thelist); } @@ -131,9 +131,9 @@ function cachedServerlist(response: Response) { return response.json(); } -function processServerlist(thelist: Array) { +function processServerlist(thelist: { name: string, description: string, ip: string, port: number, ws_port: number, assets: string, online: string }[]) { for (let i = 0; i < thelist.length - 1; i++) { - const serverEntry = thelist[i]; + const serverEntry: { name: string, description: string, ip: string, port: number, ws_port: number, assets: string, online: string } = thelist[i]; servers[i] = serverEntry; -- cgit From 9d537280e594a79e79995e3ff3e3d90c2ca362e0 Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Mon, 21 Mar 2022 23:05:41 +0100 Subject: install ts --- package-lock.json | 591 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 327 insertions(+), 264 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8047d83..af84e8d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,8 +10,10 @@ "dependencies": { "@fingerprintjs/fingerprintjs": "^3.3.3", "core-js": "^3.21.1", - "golden-layout": "^1.5.9", - "regenerator-runtime": "^0.13.9" + "golden-layout": "^2.5.0", + "regenerator-runtime": "^0.13.9", + "source-map-loader": "^3.0.1", + "ts-loader": "^9.2.8" }, "devDependencies": { "@babel/core": "^7.17.5", @@ -2661,7 +2663,6 @@ "version": "8.4.1", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz", "integrity": "sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==", - "dev": true, "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -2671,7 +2672,6 @@ "version": "3.7.3", "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", - "dev": true, "dependencies": { "@types/eslint": "*", "@types/estree": "*" @@ -2680,8 +2680,7 @@ "node_modules/@types/estree": { "version": "0.0.51", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", - "dev": true + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" }, "node_modules/@types/express": { "version": "4.17.13", @@ -2757,8 +2756,7 @@ "node_modules/@types/json-schema": { "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" }, "node_modules/@types/json5": { "version": "0.0.29", @@ -2775,8 +2773,7 @@ "node_modules/@types/node": { "version": "17.0.21", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==", - "dev": true + "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" }, "node_modules/@types/prettier": { "version": "2.4.4", @@ -2879,7 +2876,6 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dev": true, "dependencies": { "@webassemblyjs/helper-numbers": "1.11.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.1" @@ -2888,26 +2884,22 @@ "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "dev": true + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "dev": true + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dev": true, "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.11.1", "@webassemblyjs/helper-api-error": "1.11.1", @@ -2917,14 +2909,12 @@ "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", - "dev": true + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-buffer": "1.11.1", @@ -2936,7 +2926,6 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dev": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } @@ -2945,7 +2934,6 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dev": true, "dependencies": { "@xtuc/long": "4.2.2" } @@ -2953,14 +2941,12 @@ "node_modules/@webassemblyjs/utf8": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "dev": true + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-buffer": "1.11.1", @@ -2976,7 +2962,6 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.1", @@ -2989,7 +2974,6 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-buffer": "1.11.1", @@ -3001,7 +2985,6 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-api-error": "1.11.1", @@ -3015,7 +2998,6 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", "@xtuc/long": "4.2.2" @@ -3060,20 +3042,17 @@ "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, "node_modules/abab": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" }, "node_modules/accepts": { "version": "1.3.8", @@ -3092,7 +3071,6 @@ "version": "8.7.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -3169,7 +3147,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -3224,7 +3201,6 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, "peerDependencies": { "ajv": "^6.9.1" } @@ -3721,7 +3697,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -3739,7 +3714,6 @@ "version": "4.19.3", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.3.tgz", "integrity": "sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg==", - "dev": true, "dependencies": { "caniuse-lite": "^1.0.30001312", "electron-to-chromium": "^1.4.71", @@ -3770,8 +3744,7 @@ "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "node_modules/buffer-indexof": { "version": "1.1.1", @@ -3845,7 +3818,6 @@ "version": "1.0.30001312", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz", "integrity": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==", - "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/browserslist" @@ -3918,7 +3890,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, "engines": { "node": ">=6.0" } @@ -4042,8 +4013,7 @@ "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "node_modules/common-tags": { "version": "1.8.2", @@ -4781,8 +4751,7 @@ "node_modules/electron-to-chromium": { "version": "1.4.73", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.73.tgz", - "integrity": "sha512-RlCffXkE/LliqfA5m29+dVDPB2r72y2D2egMMfIy3Le8ODrxjuZNVo4NIC2yPL01N4xb4nZQLwzi6Z5tGIGLnA==", - "dev": true + "integrity": "sha512-RlCffXkE/LliqfA5m29+dVDPB2r72y2D2egMMfIy3Le8ODrxjuZNVo4NIC2yPL01N4xb4nZQLwzi6Z5tGIGLnA==" }, "node_modules/emittery": { "version": "0.8.1", @@ -4824,7 +4793,6 @@ "version": "5.9.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.1.tgz", "integrity": "sha512-jdyZMwCQ5Oj4c5+BTnkxPgDZO/BJzh/ADDmKebayyzNwjVX1AFCeGkOfxNx0mHi2+8BKC5VxUYiw3TIvoT7vhw==", - "dev": true, "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -4900,8 +4868,7 @@ "node_modules/es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" }, "node_modules/es-to-primitive": { "version": "1.2.1", @@ -4924,7 +4891,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, "engines": { "node": ">=6" } @@ -5274,7 +5240,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -5490,7 +5455,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -5502,7 +5466,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, "engines": { "node": ">=4.0" } @@ -5511,7 +5474,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, "engines": { "node": ">=4.0" } @@ -5550,7 +5512,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, "engines": { "node": ">=0.8.x" } @@ -5687,8 +5648,7 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { "version": "3.2.11", @@ -5721,8 +5681,7 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -5791,7 +5750,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -6105,8 +6063,7 @@ "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" }, "node_modules/globals": { "version": "11.12.0", @@ -6138,18 +6095,14 @@ } }, "node_modules/golden-layout": { - "version": "1.5.9", - "resolved": "https://registry.npmjs.org/golden-layout/-/golden-layout-1.5.9.tgz", - "integrity": "sha1-o5vB9qZ+b4hreXwBbdkk6UJrp38=", - "dependencies": { - "jquery": "*" - } + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/golden-layout/-/golden-layout-2.5.0.tgz", + "integrity": "sha512-HmLJLPKgKSMO+48Ro2CO5Hikk7NWQmQU5qJvpKu/PCV1Iw+mGyxRaqDGYKnx0K7DZmZs1Bk3YvWSATajjkNksw==" }, "node_modules/graceful-fs": { "version": "4.2.9", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", - "dev": true + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" }, "node_modules/handle-thing": { "version": "2.0.1", @@ -6783,7 +6736,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "engines": { "node": ">=0.12.0" } @@ -8761,7 +8713,6 @@ "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -8775,7 +8726,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { "node": ">=8" } @@ -8784,7 +8734,6 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -8795,11 +8744,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==" - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -8879,8 +8823,7 @@ "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", @@ -8897,8 +8840,7 @@ "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -9002,7 +8944,6 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", - "dev": true, "engines": { "node": ">=6.11.5" } @@ -9082,7 +9023,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -9153,8 +9093,7 @@ "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "node_modules/merge2": { "version": "1.4.1", @@ -9178,7 +9117,6 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, "dependencies": { "braces": "^3.0.1", "picomatch": "^2.2.3" @@ -9203,7 +9141,6 @@ "version": "1.51.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -9212,7 +9149,6 @@ "version": "2.1.34", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, "dependencies": { "mime-db": "1.51.0" }, @@ -9308,8 +9244,7 @@ "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "node_modules/no-case": { "version": "3.0.4", @@ -9339,8 +9274,7 @@ "node_modules/node-releases": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", - "dev": true + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==" }, "node_modules/normalize-path": { "version": "3.0.0", @@ -9729,14 +9663,12 @@ "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "engines": { "node": ">=8.6" }, @@ -9896,7 +9828,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, "engines": { "node": ">=6" } @@ -9937,7 +9868,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, "dependencies": { "safe-buffer": "^5.1.0" } @@ -10362,14 +10292,12 @@ "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/saxes": { "version": "5.0.1", @@ -10477,7 +10405,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, "dependencies": { "randombytes": "^2.1.0" } @@ -10657,11 +10584,49 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", + "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/source-map-loader/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -10671,7 +10636,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -10982,7 +10946,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, "engines": { "node": ">=6" } @@ -11046,7 +11009,6 @@ "version": "5.11.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.11.0.tgz", "integrity": "sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A==", - "dev": true, "dependencies": { "acorn": "^8.5.0", "commander": "^2.20.0", @@ -11064,7 +11026,6 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", - "dev": true, "dependencies": { "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", @@ -11098,7 +11059,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -11116,7 +11076,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -11125,7 +11084,6 @@ "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, "engines": { "node": ">= 8" } @@ -11181,7 +11139,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -11224,6 +11181,102 @@ "node": ">=8" } }, + "node_modules/ts-loader": { + "version": "9.2.8", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.2.8.tgz", + "integrity": "sha512-gxSak7IHUuRtwKf3FIPSW1VpZcqF9+MBrHOvBp9cjHh+525SjtCIJKVGjRKIAfxBwDGDGCFF00rTfzB1quxdSw==", + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-loader/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ts-loader/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ts-loader/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ts-loader/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/ts-loader/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-loader/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-loader/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/tsconfig-paths": { "version": "3.13.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.13.0.tgz", @@ -11317,6 +11370,19 @@ "is-typedarray": "^1.0.0" } }, + "node_modules/typescript": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz", + "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, "node_modules/unbox-primitive": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", @@ -11416,7 +11482,6 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -11523,7 +11588,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", - "dev": true, "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -11554,7 +11618,6 @@ "version": "5.69.1", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.69.1.tgz", "integrity": "sha512-+VyvOSJXZMT2V5vLzOnDuMz5GxEqLk7hKWQ56YxPW/PQRUuKimPqmEIJOx8jHYeyo65pKbapbW464mvsKbaj4A==", - "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^0.0.51", @@ -11895,7 +11958,6 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, "engines": { "node": ">=10.13.0" } @@ -11904,7 +11966,6 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true, "peerDependencies": { "acorn": "^8" } @@ -11913,7 +11974,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -12444,8 +12504,7 @@ "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yargs": { "version": "16.2.0", @@ -14396,7 +14455,6 @@ "version": "8.4.1", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz", "integrity": "sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==", - "dev": true, "requires": { "@types/estree": "*", "@types/json-schema": "*" @@ -14406,7 +14464,6 @@ "version": "3.7.3", "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", - "dev": true, "requires": { "@types/eslint": "*", "@types/estree": "*" @@ -14415,8 +14472,7 @@ "@types/estree": { "version": "0.0.51", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", - "dev": true + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" }, "@types/express": { "version": "4.17.13", @@ -14492,8 +14548,7 @@ "@types/json-schema": { "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" }, "@types/json5": { "version": "0.0.29", @@ -14510,8 +14565,7 @@ "@types/node": { "version": "17.0.21", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==", - "dev": true + "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" }, "@types/prettier": { "version": "2.4.4", @@ -14614,7 +14668,6 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dev": true, "requires": { "@webassemblyjs/helper-numbers": "1.11.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.1" @@ -14623,26 +14676,22 @@ "@webassemblyjs/floating-point-hex-parser": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" }, "@webassemblyjs/helper-api-error": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "dev": true + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" }, "@webassemblyjs/helper-buffer": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "dev": true + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" }, "@webassemblyjs/helper-numbers": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dev": true, "requires": { "@webassemblyjs/floating-point-hex-parser": "1.11.1", "@webassemblyjs/helper-api-error": "1.11.1", @@ -14652,14 +14701,12 @@ "@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", - "dev": true + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" }, "@webassemblyjs/helper-wasm-section": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dev": true, "requires": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-buffer": "1.11.1", @@ -14671,7 +14718,6 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } @@ -14680,7 +14726,6 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dev": true, "requires": { "@xtuc/long": "4.2.2" } @@ -14688,14 +14733,12 @@ "@webassemblyjs/utf8": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "dev": true + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" }, "@webassemblyjs/wasm-edit": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dev": true, "requires": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-buffer": "1.11.1", @@ -14711,7 +14754,6 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dev": true, "requires": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.1", @@ -14724,7 +14766,6 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dev": true, "requires": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-buffer": "1.11.1", @@ -14736,7 +14777,6 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "dev": true, "requires": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-api-error": "1.11.1", @@ -14750,7 +14790,6 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "dev": true, "requires": { "@webassemblyjs/ast": "1.11.1", "@xtuc/long": "4.2.2" @@ -14782,20 +14821,17 @@ "@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" }, "@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, "abab": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" }, "accepts": { "version": "1.3.8", @@ -14810,8 +14846,7 @@ "acorn": { "version": "8.7.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" }, "acorn-globals": { "version": "6.0.0", @@ -14867,7 +14902,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -14908,7 +14942,6 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, "requires": {} }, "ansi-escapes": { @@ -15294,7 +15327,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -15309,7 +15341,6 @@ "version": "4.19.3", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.3.tgz", "integrity": "sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg==", - "dev": true, "requires": { "caniuse-lite": "^1.0.30001312", "electron-to-chromium": "^1.4.71", @@ -15330,8 +15361,7 @@ "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "buffer-indexof": { "version": "1.1.1", @@ -15386,8 +15416,7 @@ "caniuse-lite": { "version": "1.0.30001312", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz", - "integrity": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==", - "dev": true + "integrity": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==" }, "chalk": { "version": "2.4.2", @@ -15436,8 +15465,7 @@ "chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" }, "ci-info": { "version": "3.3.0", @@ -15541,8 +15569,7 @@ "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "common-tags": { "version": "1.8.2", @@ -16102,8 +16129,7 @@ "electron-to-chromium": { "version": "1.4.73", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.73.tgz", - "integrity": "sha512-RlCffXkE/LliqfA5m29+dVDPB2r72y2D2egMMfIy3Le8ODrxjuZNVo4NIC2yPL01N4xb4nZQLwzi6Z5tGIGLnA==", - "dev": true + "integrity": "sha512-RlCffXkE/LliqfA5m29+dVDPB2r72y2D2egMMfIy3Le8ODrxjuZNVo4NIC2yPL01N4xb4nZQLwzi6Z5tGIGLnA==" }, "emittery": { "version": "0.8.1", @@ -16133,7 +16159,6 @@ "version": "5.9.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.1.tgz", "integrity": "sha512-jdyZMwCQ5Oj4c5+BTnkxPgDZO/BJzh/ADDmKebayyzNwjVX1AFCeGkOfxNx0mHi2+8BKC5VxUYiw3TIvoT7vhw==", - "dev": true, "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -16191,8 +16216,7 @@ "es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" }, "es-to-primitive": { "version": "1.2.1", @@ -16208,8 +16232,7 @@ "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" }, "escape-html": { "version": "1.0.3", @@ -16569,7 +16592,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -16636,7 +16658,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, "requires": { "estraverse": "^5.2.0" }, @@ -16644,16 +16665,14 @@ "estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" } } }, "estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" }, "estree-walker": { "version": "1.0.1", @@ -16682,8 +16701,7 @@ "events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" }, "execa": { "version": "5.1.1", @@ -16790,8 +16808,7 @@ "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-glob": { "version": "3.2.11", @@ -16820,8 +16837,7 @@ "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "fast-levenshtein": { "version": "2.0.6", @@ -16884,7 +16900,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -17115,8 +17130,7 @@ "glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" }, "globals": { "version": "11.12.0", @@ -17139,18 +17153,14 @@ } }, "golden-layout": { - "version": "1.5.9", - "resolved": "https://registry.npmjs.org/golden-layout/-/golden-layout-1.5.9.tgz", - "integrity": "sha1-o5vB9qZ+b4hreXwBbdkk6UJrp38=", - "requires": { - "jquery": "*" - } + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/golden-layout/-/golden-layout-2.5.0.tgz", + "integrity": "sha512-HmLJLPKgKSMO+48Ro2CO5Hikk7NWQmQU5qJvpKu/PCV1Iw+mGyxRaqDGYKnx0K7DZmZs1Bk3YvWSATajjkNksw==" }, "graceful-fs": { "version": "4.2.9", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", - "dev": true + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" }, "handle-thing": { "version": "2.0.1", @@ -17603,8 +17613,7 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-number-object": { "version": "1.0.6", @@ -19071,7 +19080,6 @@ "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, "requires": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -19081,25 +19089,18 @@ "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, - "jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==" - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -19159,8 +19160,7 @@ "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" }, "json-parse-even-better-errors": { "version": "2.3.1", @@ -19177,8 +19177,7 @@ "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -19256,8 +19255,7 @@ "loader-runner": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", - "dev": true + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==" }, "loader-utils": { "version": "1.4.0", @@ -19327,7 +19325,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "requires": { "yallist": "^4.0.0" } @@ -19383,8 +19380,7 @@ "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "merge2": { "version": "1.4.1", @@ -19402,7 +19398,6 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, "requires": { "braces": "^3.0.1", "picomatch": "^2.2.3" @@ -19417,14 +19412,12 @@ "mime-db": { "version": "1.51.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" }, "mime-types": { "version": "2.1.34", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, "requires": { "mime-db": "1.51.0" } @@ -19502,8 +19495,7 @@ "neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "no-case": { "version": "3.0.4", @@ -19530,8 +19522,7 @@ "node-releases": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", - "dev": true + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==" }, "normalize-path": { "version": "3.0.0", @@ -19818,14 +19809,12 @@ "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "pirates": { "version": "4.0.5", @@ -19948,8 +19937,7 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "qs": { "version": "6.9.7", @@ -19967,7 +19955,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, "requires": { "safe-buffer": "^5.1.0" } @@ -20283,14 +20270,12 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "saxes": { "version": "5.0.1", @@ -20383,7 +20368,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, "requires": { "randombytes": "^2.1.0" } @@ -20538,11 +20522,35 @@ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "source-map-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", + "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", + "requires": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, "source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -20551,8 +20559,7 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, @@ -20787,8 +20794,7 @@ "tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" }, "temp-dir": { "version": "2.0.0", @@ -20830,7 +20836,6 @@ "version": "5.11.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.11.0.tgz", "integrity": "sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A==", - "dev": true, "requires": { "acorn": "^8.5.0", "commander": "^2.20.0", @@ -20841,8 +20846,7 @@ "source-map": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" } } }, @@ -20850,7 +20854,6 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", - "dev": true, "requires": { "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", @@ -20863,7 +20866,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, "requires": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -20873,8 +20875,7 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, @@ -20923,7 +20924,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "requires": { "is-number": "^7.0.0" } @@ -20954,6 +20954,70 @@ "punycode": "^2.1.1" } }, + "ts-loader": { + "version": "9.2.8", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.2.8.tgz", + "integrity": "sha512-gxSak7IHUuRtwKf3FIPSW1VpZcqF9+MBrHOvBp9cjHh+525SjtCIJKVGjRKIAfxBwDGDGCFF00rTfzB1quxdSw==", + "requires": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "tsconfig-paths": { "version": "3.13.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.13.0.tgz", @@ -21028,6 +21092,12 @@ "is-typedarray": "^1.0.0" } }, + "typescript": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz", + "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==", + "peer": true + }, "unbox-primitive": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", @@ -21099,7 +21169,6 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "requires": { "punycode": "^2.1.0" } @@ -21190,7 +21259,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", - "dev": true, "requires": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -21215,7 +21283,6 @@ "version": "5.69.1", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.69.1.tgz", "integrity": "sha512-+VyvOSJXZMT2V5vLzOnDuMz5GxEqLk7hKWQ56YxPW/PQRUuKimPqmEIJOx8jHYeyo65pKbapbW464mvsKbaj4A==", - "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^0.0.51", @@ -21247,14 +21314,12 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true, "requires": {} }, "schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, "requires": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -21459,8 +21524,7 @@ "webpack-sources": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==" }, "websocket-driver": { "version": "0.7.4", @@ -21907,8 +21971,7 @@ "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { "version": "16.2.0", -- cgit From b9c3d8bb84da0a3d3e7c3c10a39cbcede24d7047 Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Mon, 21 Mar 2022 23:07:11 +0100 Subject: install typescript for real --- package-lock.json | 7 +++---- package.json | 3 ++- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index af84e8d..a425cdb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,8 @@ "golden-layout": "^2.5.0", "regenerator-runtime": "^0.13.9", "source-map-loader": "^3.0.1", - "ts-loader": "^9.2.8" + "ts-loader": "^9.2.8", + "typescript": "^4.6.2" }, "devDependencies": { "@babel/core": "^7.17.5", @@ -11374,7 +11375,6 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz", "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -21095,8 +21095,7 @@ "typescript": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz", - "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==", - "peer": true + "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==" }, "unbox-primitive": { "version": "1.0.1", diff --git a/package.json b/package.json index 4c97730..c523f7b 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,8 @@ "golden-layout": "^2.5.0", "regenerator-runtime": "^0.13.9", "source-map-loader": "^3.0.1", - "ts-loader": "^9.2.8" + "ts-loader": "^9.2.8", + "typescript": "^4.6.2" }, "browserslist": [ "defaults", -- cgit From a3b82b264141905b8d033073e2d136005fd8e32f Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Mon, 21 Mar 2022 23:21:29 +0100 Subject: update linter --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index c523f7b..7a56fcb 100644 --- a/package.json +++ b/package.json @@ -28,12 +28,12 @@ "@babel/core": "^7.17.5", "@babel/plugin-transform-modules-commonjs": "^7.16.8", "@babel/preset-env": "^7.16.11", - "babel-loader": "^8.2.3", + "babel-loader": "^8.0.6", "copy-webpack-plugin": "^10.2.4", "dotenv": "^16.0.0", "eslint": "^8.10.0", - "eslint-config-airbnb-base": "^15.0.0", - "eslint-plugin-import": "^2.25.4", + "eslint-config-airbnb-base": "^14.1.0", + "eslint-plugin-import": "^2.20.2", "glob": "^7.2.0", "html-webpack-plugin": "^5.5.0", "husky": "^7.0.0", -- cgit From a263dc01e9d9bbb6c3cc56cfa9f3acb6bbfdc595 Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Mon, 21 Mar 2022 23:25:55 +0100 Subject: Revert "update linter" This reverts commit a3b82b264141905b8d033073e2d136005fd8e32f. --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 7a56fcb..c523f7b 100644 --- a/package.json +++ b/package.json @@ -28,12 +28,12 @@ "@babel/core": "^7.17.5", "@babel/plugin-transform-modules-commonjs": "^7.16.8", "@babel/preset-env": "^7.16.11", - "babel-loader": "^8.0.6", + "babel-loader": "^8.2.3", "copy-webpack-plugin": "^10.2.4", "dotenv": "^16.0.0", "eslint": "^8.10.0", - "eslint-config-airbnb-base": "^14.1.0", - "eslint-plugin-import": "^2.20.2", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-plugin-import": "^2.25.4", "glob": "^7.2.0", "html-webpack-plugin": "^5.5.0", "husky": "^7.0.0", -- cgit From 313d3db36e5252cfa06e9a48ef681385730bb7a4 Mon Sep 17 00:00:00 2001 From: Caleb Mabry <36182383+caleb-mabry@users.noreply.github.com> Date: Wed, 23 Mar 2022 15:27:14 -0400 Subject: Update webAO/components/blip.js Co-authored-by: stonedDiscord --- webAO/components/blip.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webAO/components/blip.js b/webAO/components/blip.js index 409b907..eacbeaf 100644 --- a/webAO/components/blip.js +++ b/webAO/components/blip.js @@ -13,5 +13,5 @@ const createBlip = (amountOfBlips) => { document.body.appendChild(audio) } } -createBlip(3) +createBlip(6) export default createBlip \ No newline at end of file -- cgit