From 8871dc4e9917987a03d0f475705c97f4e76c0893 Mon Sep 17 00:00:00 2001 From: Nora Blomaard Date: Wed, 22 Apr 2026 13:19:34 +0200 Subject: [PATCH 1/4] chore: replace @openenergytools/open-scd-core with @omicronenergy/oscd-shell --- demo/index.html | 65 +- demo/plugins.js | 65 +- demo/scoped-custom-elements-polyfill.js | 508 -------- package-lock.json | 1447 ++++------------------- package.json | 11 +- 5 files changed, 312 insertions(+), 1784 deletions(-) delete mode 100644 demo/scoped-custom-elements-polyfill.js diff --git a/demo/index.html b/demo/index.html index ee559a4..82b4fa3 100644 --- a/demo/index.html +++ b/demo/index.html @@ -7,44 +7,27 @@ rel="stylesheet" href="https://fonts.googleapis.com/css?family=Material+Symbols+Outlined&display=block" /> - - - - - - - + diff --git a/demo/plugins.js b/demo/plugins.js index b9265ef..3aade7b 100644 --- a/demo/plugins.js +++ b/demo/plugins.js @@ -1,40 +1,71 @@ -import '@openenergytools/open-scd-core/open-scd.js'; +import OscdMenuOpen from '@omicronenergy/oscd-menu-open'; +import OscdMenuSave from '@omicronenergy/oscd-menu-save'; +import OscdBackgroundEditV1 from '@omicronenergy/oscd-background-editv1'; +import OscdBackgroundWizardEvents from '@omicronenergy/oscd-background-wizard-events/oscd-background-wizard-events.js'; +import OscdEditorSource from '@omicronenergy/oscd-editor-source'; +import OscdBayTemplateEditor from '../dist/bay-template-editor.js'; + +customElements.define('oscd-menu-open', OscdMenuOpen); +customElements.define('oscd-menu-save', OscdMenuSave); +customElements.define('oscd-editor-source', OscdEditorSource); +customElements.define('oscd-background-editv1', OscdBackgroundEditV1); +customElements.define( + 'oscd-background-wizard-events', + OscdBackgroundWizardEvents +); + +customElements.define('oscd-bay-template-editor', OscdBayTemplateEditor); export const plugins = { menu: [ { name: 'Open File', - translations: { de: 'Datei öffnen' }, + translation: { + de: 'Datei öffnen', + }, icon: 'folder_open', - active: true, - src: 'https://openscd.github.io/oscd-open/oscd-open.js', + tagName: 'oscd-menu-open', }, { - name: 'Save File', - translations: { de: 'Datei speichern' }, + name: 'Save project', + translation: { + de: 'Projekt speichern', + }, icon: 'save', - active: true, - src: 'https://openscd.github.io/oscd-save/oscd-save.js', - }, - { - name: 'Wizarding', - icon: 'edit', - active: false, - src: 'https://openenergytools.github.io/scl-editor/plugins/scl-wizarding/scl-wizarding.js', + requireDoc: true, + tagName: 'oscd-menu-save', }, ], editor: [ { name: 'Bay Template Editor', + translations: { + de: 'Bay Template Editor', + }, icon: 'edit', active: true, - src: '../dist/bay-template-editor.js', + tagName: 'oscd-bay-template-editor', }, { name: 'Source Editor', + translations: { de: 'Source Editor' }, icon: 'code', - active: true, - src: 'https://omicronenergyoss.github.io/oscd-editor-source/oscd-editor-source.js', + requireDoc: true, + tagName: 'oscd-editor-source', + }, + ], + background: [ + { + name: 'EditV1 Events Listener', + icon: 'none', + requireDoc: true, + tagName: 'oscd-background-editv1', + }, + { + name: 'Wizard dialog Events Listener', + icon: 'none', + requireDoc: true, + tagName: 'oscd-background-wizard-events', }, ], }; diff --git a/demo/scoped-custom-elements-polyfill.js b/demo/scoped-custom-elements-polyfill.js deleted file mode 100644 index 83ef6f5..0000000 --- a/demo/scoped-custom-elements-polyfill.js +++ /dev/null @@ -1,508 +0,0 @@ -/* eslint-disable */ - -if (!('createElement' in ShadowRoot.prototype)) { - (function () { - /* - - Copyright (c) 2020 The Polymer Project Authors. All rights reserved. - This code may only be used under the BSD style license found at - http://polymer.github.io/LICENSE.txt - The complete set of authors may be found at - http://polymer.github.io/AUTHORS.txt - The complete set of contributors may be found at - http://polymer.github.io/CONTRIBUTORS.txt - Code distributed by Google as part of the polymer project is also - subject to an additional IP rights grant found at - http://polymer.github.io/PATENTS.txt -*/ - 'use strict'; - function h(b) { - var c = 0; - return function () { - return c < b.length ? { done: !1, value: b[c++] } : { done: !0 }; - }; - } - function l(b) { - var c = - 'undefined' != typeof Symbol && Symbol.iterator && b[Symbol.iterator]; - return c ? c.call(b) : { next: h(b) }; - } - function m(b) { - if (!(b instanceof Array)) { - b = l(b); - for (var c, a = []; !(c = b.next()).done; ) a.push(c.value); - b = a; - } - return b; - } - var n = - 'function' == typeof Object.create - ? Object.create - : function (b) { - function c() {} - c.prototype = b; - return new c(); - }; - function p(b) { - b = [ - 'object' == typeof globalThis && globalThis, - b, - 'object' == typeof window && window, - 'object' == typeof self && self, - 'object' == typeof global && global, - ]; - for (var c = 0; c < b.length; ++c) { - var a = b[c]; - if (a && a.Math == Math) return a; - } - throw Error('Cannot find global object'); - } - var q = p(this), - r = (function () { - function b() { - function a() {} - new a(); - Reflect.construct(a, [], function () {}); - return new a() instanceof a; - } - if ('undefined' != typeof Reflect && Reflect.construct) { - if (b()) return Reflect.construct; - var c = Reflect.construct; - return function (a, d, e) { - a = c(a, d); - e && Reflect.setPrototypeOf(a, e.prototype); - return a; - }; - } - return function (a, d, e) { - void 0 === e && (e = a); - e = n(e.prototype || Object.prototype); - return Function.prototype.apply.call(a, e, d) || e; - }; - })(), - t; - if ('function' == typeof Object.setPrototypeOf) t = Object.setPrototypeOf; - else { - var u; - a: { - var v = { a: !0 }, - w = {}; - try { - w.__proto__ = v; - u = w.a; - break a; - } catch (b) {} - u = !1; - } - t = u - ? function (b, c) { - b.__proto__ = c; - if (b.__proto__ !== c) - throw new TypeError(b + ' is not extensible'); - return b; - } - : null; - } - var x = t; - if (!ShadowRoot.prototype.createElement) { - var y = window.HTMLElement, - A = window.customElements.define, - B = window.customElements.get, - C = window.customElements, - D = new WeakMap(), - E = new WeakMap(), - F = new WeakMap(), - G = new WeakMap(); - window.CustomElementRegistry = function () { - this.l = new Map(); - this.o = new Map(); - this.i = new Map(); - this.h = new Map(); - }; - window.CustomElementRegistry.prototype.define = function (b, c) { - b = b.toLowerCase(); - if (void 0 !== this.j(b)) - throw new DOMException( - "Failed to execute 'define' on 'CustomElementRegistry': the name \"" + - b + - '" has already been used with this registry' - ); - if (void 0 !== this.o.get(c)) - throw new DOMException( - "Failed to execute 'define' on 'CustomElementRegistry': this constructor has already been used with this registry" - ); - var a = c.prototype.attributeChangedCallback, - d = new Set(c.observedAttributes || []); - H(c, d, a); - a = { - g: c, - connectedCallback: c.prototype.connectedCallback, - disconnectedCallback: c.prototype.disconnectedCallback, - adoptedCallback: c.prototype.adoptedCallback, - attributeChangedCallback: a, - formAssociated: c.formAssociated, - formAssociatedCallback: c.prototype.formAssociatedCallback, - formDisabledCallback: c.prototype.formDisabledCallback, - formResetCallback: c.prototype.formResetCallback, - formStateRestoreCallback: c.prototype.formStateRestoreCallback, - observedAttributes: d, - }; - this.l.set(b, a); - this.o.set(c, a); - d = B.call(C, b); - d || ((d = I(b)), A.call(C, b, d)); - this === window.customElements && (F.set(c, a), (a.s = d)); - if ((d = this.h.get(b))) { - this.h.delete(b); - d = l(d); - for (var e = d.next(); !e.done; e = d.next()) - (e = e.value), E.delete(e), J(e, a, !0); - } - a = this.i.get(b); - void 0 !== a && (a.resolve(c), this.i.delete(b)); - return c; - }; - window.CustomElementRegistry.prototype.upgrade = function () { - K.push(this); - C.upgrade.apply(C, arguments); - K.pop(); - }; - window.CustomElementRegistry.prototype.get = function (b) { - var c; - return null == (c = this.l.get(b)) ? void 0 : c.g; - }; - window.CustomElementRegistry.prototype.j = function (b) { - return this.l.get(b); - }; - window.CustomElementRegistry.prototype.whenDefined = function (b) { - var c = this.j(b); - if (void 0 !== c) return Promise.resolve(c.g); - var a = this.i.get(b); - void 0 === a && - ((a = {}), - (a.promise = new Promise(function (d) { - return (a.resolve = d); - })), - this.i.set(b, a)); - return a.promise; - }; - window.CustomElementRegistry.prototype.m = function (b, c, a) { - var d = this.h.get(c); - d || this.h.set(c, (d = new Set())); - a ? d.add(b) : d.delete(b); - }; - var L; - window.HTMLElement = function () { - var b = L; - if (b) return (L = void 0), b; - var c = F.get(this.constructor); - if (!c) - throw new TypeError( - 'Illegal constructor (custom element class must be registered with global customElements registry to be newable)' - ); - b = Reflect.construct(y, [], c.s); - Object.setPrototypeOf(b, this.constructor.prototype); - D.set(b, c); - return b; - }; - window.HTMLElement.prototype = y.prototype; - var I = function (b) { - function c() { - var a = Reflect.construct(y, [], this.constructor); - Object.setPrototypeOf(a, HTMLElement.prototype); - a: { - var d = a.getRootNode(); - if (!(d === document || d instanceof ShadowRoot)) { - d = K[K.length - 1]; - if (d instanceof CustomElementRegistry) { - var e = d; - break a; - } - d = d.getRootNode(); - d === document || - d instanceof ShadowRoot || - (d = - (null == (e = G.get(d)) ? void 0 : e.getRootNode()) || - document); - } - e = d.customElements; - } - e = e || window.customElements; - (d = e.j(b)) ? J(a, d) : E.set(a, e); - return a; - } - q.Object.defineProperty(c, 'formAssociated', { - configurable: !0, - enumerable: !0, - get: function () { - return !0; - }, - }); - c.prototype.connectedCallback = function () { - var a = D.get(this); - a - ? a.connectedCallback && - a.connectedCallback.apply(this, arguments) - : E.get(this).m(this, b, !0); - }; - c.prototype.disconnectedCallback = function () { - var a = D.get(this); - a - ? a.disconnectedCallback && - a.disconnectedCallback.apply(this, arguments) - : E.get(this).m(this, b, !1); - }; - c.prototype.adoptedCallback = function () { - var a, d; - null == (a = D.get(this)) || - null == (d = a.adoptedCallback) || - d.apply(this, arguments); - }; - c.prototype.formAssociatedCallback = function () { - var a = D.get(this); - if (a && a.formAssociated) { - var d; - null == a || - null == (d = a.formAssociatedCallback) || - d.apply(this, arguments); - } - }; - c.prototype.formDisabledCallback = function () { - var a = D.get(this); - if (null == a ? 0 : a.formAssociated) { - var d; - null == a || - null == (d = a.formDisabledCallback) || - d.apply(this, arguments); - } - }; - c.prototype.formResetCallback = function () { - var a = D.get(this); - if (null == a ? 0 : a.formAssociated) { - var d; - null == a || - null == (d = a.formResetCallback) || - d.apply(this, arguments); - } - }; - c.prototype.formStateRestoreCallback = function () { - var a = D.get(this); - if (null == a ? 0 : a.formAssociated) { - var d; - null == a || - null == (d = a.formStateRestoreCallback) || - d.apply(this, arguments); - } - }; - return c; - }, - H = function (b, c, a) { - if (0 !== c.size && void 0 !== a) { - var d = b.prototype.setAttribute; - d && - (b.prototype.setAttribute = function (f, k) { - f = f.toLowerCase(); - if (c.has(f)) { - var z = this.getAttribute(f); - d.call(this, f, k); - a.call(this, f, z, k); - } else d.call(this, f, k); - }); - var e = b.prototype.removeAttribute; - e && - (b.prototype.removeAttribute = function (f) { - f = f.toLowerCase(); - if (c.has(f)) { - var k = this.getAttribute(f); - e.call(this, f); - a.call(this, f, k, null); - } else e.call(this, f); - }); - var g = b.prototype.toggleAttribute; - g && - (b.prototype.toggleAttribute = function (f, k) { - f = f.toLowerCase(); - if (c.has(f)) { - var z = this.getAttribute(f); - g.call(this, f, k); - k = this.getAttribute(f); - a.call(this, f, z, k); - } else g.call(this, f, k); - }); - } - }, - M = function (b) { - var c = Object.getPrototypeOf(b); - if (c !== window.HTMLElement) - return c === y - ? Object.setPrototypeOf(b, window.HTMLElement) - : M(c); - }, - J = function (b, c, a) { - a = void 0 === a ? !1 : a; - Object.setPrototypeOf(b, c.g.prototype); - D.set(b, c); - L = b; - try { - new c.g(); - } catch (d) { - M(c.g), new c.g(); - } - c.attributeChangedCallback && - c.observedAttributes.forEach(function (d) { - b.hasAttribute(d) && - c.attributeChangedCallback.call(b, d, null, b.getAttribute(d)); - }); - a && - c.connectedCallback && - b.isConnected && - c.connectedCallback.call(b); - }, - N = Element.prototype.attachShadow; - Element.prototype.attachShadow = function (b) { - var c = N.apply(this, arguments); - b.customElements && (c.customElements = b.customElements); - return c; - }; - var K = [document], - O = function (b, c, a) { - var d = (a ? Object.getPrototypeOf(a) : b.prototype)[c]; - b.prototype[c] = function () { - K.push(this); - var e = d.apply(a || this, arguments); - void 0 !== e && G.set(e, this); - K.pop(); - return e; - }; - }; - O(ShadowRoot, 'createElement', document); - O(ShadowRoot, 'importNode', document); - O(Element, 'insertAdjacentHTML'); - var P = function (b) { - var c = Object.getOwnPropertyDescriptor(b.prototype, 'innerHTML'); - Object.defineProperty( - b.prototype, - 'innerHTML', - Object.assign({}, c, { - set: function (a) { - K.push(this); - c.set.call(this, a); - K.pop(); - }, - }) - ); - }; - P(Element); - P(ShadowRoot); - Object.defineProperty(window, 'customElements', { - value: new CustomElementRegistry(), - configurable: !0, - writable: !0, - }); - if ( - window.ElementInternals && - window.ElementInternals.prototype.setFormValue - ) { - var Q = new WeakMap(), - R = HTMLElement.prototype.attachInternals, - methods = [ - 'setFormValue', - 'setValidity', - 'checkValidity', - 'reportValidity', - ]; - HTMLElement.prototype.attachInternals = function (b) { - for (var c = [], a = 0; a < arguments.length; ++a) - c[a] = arguments[a]; - c = R.call.apply(R, [this].concat(m(c))); - Q.set(c, this); - return c; - }; - methods.forEach(function (b) { - var c = window.ElementInternals.prototype, - a = c[b]; - c[b] = function (d) { - for (var e = [], g = 0; g < arguments.length; ++g) - e[g] = arguments[g]; - g = Q.get(this); - if (!0 === D.get(g).formAssociated) - return null == a ? void 0 : a.call.apply(a, [this].concat(m(e))); - throw new DOMException( - 'Failed to execute ' + - a + - " on 'ElementInternals': The target element is not a form-associated custom element." - ); - }; - }); - var RadioNodeList = function (b) { - var c = r(Array, [].concat(m(b)), this.constructor); - c.h = b; - return c; - }, - S = RadioNodeList, - T = Array; - S.prototype = n(T.prototype); - S.prototype.constructor = S; - if (x) x(S, T); - else - for (var U in T) - if ('prototype' != U) - if (Object.defineProperties) { - var V = Object.getOwnPropertyDescriptor(T, U); - V && Object.defineProperty(S, U, V); - } else S[U] = T[U]; - S.u = T.prototype; - q.Object.defineProperty(RadioNodeList.prototype, 'value', { - configurable: !0, - enumerable: !0, - get: function () { - var b; - return ( - (null == - (b = this.h.find(function (c) { - return !0 === c.checked; - })) - ? void 0 - : b.value) || '' - ); - }, - }); - var HTMLFormControlsCollection = function (b) { - var c = this, - a = new Map(); - b.forEach(function (d, e) { - var g = d.getAttribute('name'), - f = a.get(g) || []; - c[+e] = d; - f.push(d); - a.set(g, f); - }); - this.length = b.length; - a.forEach(function (d, e) { - d && (c[e] = 1 === d.length ? d[0] : new RadioNodeList(d)); - }); - }; - HTMLFormControlsCollection.prototype.namedItem = function (b) { - return this[b]; - }; - var W = Object.getOwnPropertyDescriptor( - HTMLFormElement.prototype, - 'elements' - ); - Object.defineProperty(HTMLFormElement.prototype, 'elements', { - get: function () { - var b = W.get.call(this, []), - c = []; - b = l(b); - for (var a = b.next(); !a.done; a = b.next()) { - a = a.value; - var d = D.get(a); - (d && !0 !== d.formAssociated) || c.push(a); - } - return new HTMLFormControlsCollection(c); - }, - }); - } - } - }).call(typeof globalThis === 'object' ? globalThis : window); -} diff --git a/package-lock.json b/package-lock.json index 679d980..17461c6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,10 +12,18 @@ "dependencies": { "@compas-oscd/forms": "^0.0.1", "@compas-oscd/xml": "^0.0.1", - "@omicronenergy/oscd-ui": "^0.0.11", + "@omicronenergy/oscd-background-editv1": "^0.0.6", + "@omicronenergy/oscd-background-wizard-events": "^0.0.1", + "@omicronenergy/oscd-editor-source": "^0.0.3", + "@omicronenergy/oscd-menu-open": "^0.0.6", + "@omicronenergy/oscd-menu-save": "^0.0.2", + "@omicronenergy/oscd-scl-dialogs": "^0.0.12", + "@omicronenergy/oscd-shell": "^0.0.9", + "@omicronenergy/oscd-ui": "^0.0.12", "@open-wc/scoped-elements": "^3.0.6", "@openscd/oscd-api": "^0.1.5", "@openscd/scl-lib": "^2.0.0", + "@webcomponents/scoped-custom-element-registry": "^0.0.10", "lit": "^3.0.0" }, "devDependencies": { @@ -25,7 +33,6 @@ "@open-wc/building-rollup": "^2.0.2", "@open-wc/eslint-config": "^8.0.2", "@open-wc/testing": "^3.1.6", - "@openenergytools/open-scd-core": "^0.0.5", "@rollup/plugin-babel": "^5.3.0", "@rollup/plugin-node-resolve": "^13.0.6", "@rollup/plugin-typescript": "^11.1.2", @@ -98,7 +105,6 @@ }, "node_modules/@babel/code-frame": { "version": "7.22.13", - "dev": true, "license": "MIT", "dependencies": { "@babel/highlight": "^7.22.13", @@ -417,7 +423,6 @@ }, "node_modules/@babel/helper-validator-identifier": { "version": "7.22.20", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -459,7 +464,6 @@ }, "node_modules/@babel/highlight": { "version": "7.22.20", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", @@ -2219,7 +2223,6 @@ }, "node_modules/@esm-bundle/chai": { "version": "4.3.4-fix.0", - "dev": true, "license": "MIT", "dependencies": { "@types/chai": "^4.2.12" @@ -2348,61 +2351,6 @@ "version": "1.5.1", "license": "BSD-3-Clause" }, - "node_modules/@lit/localize": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/@lit/localize/-/localize-0.11.4.tgz", - "integrity": "sha512-RRIwIX2tAm3+DuEndoXSJrFjGrAK5cb5IXo5K6jcJ6sbgD829B8rSqHC5MaKVUmXTVLIR1bk5IZOZDf9wFereA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit/reactive-element": "^1.4.0", - "lit": "^2.3.0" - } - }, - "node_modules/@lit/localize/node_modules/@lit/reactive-element": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", - "integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.0.0" - } - }, - "node_modules/@lit/localize/node_modules/lit": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", - "integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit/reactive-element": "^1.6.0", - "lit-element": "^3.3.0", - "lit-html": "^2.8.0" - } - }, - "node_modules/@lit/localize/node_modules/lit-element": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz", - "integrity": "sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.1.0", - "@lit/reactive-element": "^1.3.0", - "lit-html": "^2.8.0" - } - }, - "node_modules/@lit/localize/node_modules/lit-html": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", - "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@types/trusted-types": "^2.0.2" - } - }, "node_modules/@lit/reactive-element": { "version": "2.1.2", "license": "BSD-3-Clause", @@ -2485,27 +2433,6 @@ "tslib": "^2.1.0" } }, - "node_modules/@material/drawer": { - "version": "14.0.0-canary.53b3cad2f.0", - "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-14.0.0-canary.53b3cad2f.0.tgz", - "integrity": "sha512-MXzRGq7NoONgbHa+AhAu4HvOUA9V37nSsY4g4Alita08UqRAvvFFr4K1CF9GI2K9pLCpyQv1UbN0Lw5b78HrVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@material/animation": "14.0.0-canary.53b3cad2f.0", - "@material/base": "14.0.0-canary.53b3cad2f.0", - "@material/dom": "14.0.0-canary.53b3cad2f.0", - "@material/elevation": "14.0.0-canary.53b3cad2f.0", - "@material/feature-targeting": "14.0.0-canary.53b3cad2f.0", - "@material/list": "14.0.0-canary.53b3cad2f.0", - "@material/ripple": "14.0.0-canary.53b3cad2f.0", - "@material/rtl": "14.0.0-canary.53b3cad2f.0", - "@material/shape": "14.0.0-canary.53b3cad2f.0", - "@material/theme": "14.0.0-canary.53b3cad2f.0", - "@material/typography": "14.0.0-canary.53b3cad2f.0", - "tslib": "^2.1.0" - } - }, "node_modules/@material/elevation": { "version": "14.0.0-canary.53b3cad2f.0", "dev": true, @@ -2831,66 +2758,6 @@ "@types/trusted-types": "^2.0.2" } }, - "node_modules/@material/mwc-drawer": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@material/mwc-drawer/-/mwc-drawer-0.27.0.tgz", - "integrity": "sha512-dy/uwt+aI5aiUDqFcT6Z4GhGmLZR7fu3HMkfqtQDwoJShxnf5hHwk18fiD1VHHCDf9CZ5wjl7ug4fjpcs9r18A==", - "deprecated": "MWC beta is longer supported. Please upgrade to @material/web", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@material/drawer": "=14.0.0-canary.53b3cad2f.0", - "@material/mwc-base": "^0.27.0", - "blocking-elements": "^0.1.0", - "lit": "^2.0.0", - "tslib": "^2.0.1", - "wicg-inert": "^3.0.0" - } - }, - "node_modules/@material/mwc-drawer/node_modules/@lit/reactive-element": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", - "integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.0.0" - } - }, - "node_modules/@material/mwc-drawer/node_modules/lit": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", - "integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit/reactive-element": "^1.6.0", - "lit-element": "^3.3.0", - "lit-html": "^2.8.0" - } - }, - "node_modules/@material/mwc-drawer/node_modules/lit-element": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz", - "integrity": "sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.1.0", - "@lit/reactive-element": "^1.3.0", - "lit-html": "^2.8.0" - } - }, - "node_modules/@material/mwc-drawer/node_modules/lit-html": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", - "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@types/trusted-types": "^2.0.2" - } - }, "node_modules/@material/mwc-fab": { "version": "0.27.0", "dev": true, @@ -3516,40 +3383,26 @@ "@types/trusted-types": "^2.0.2" } }, - "node_modules/@material/mwc-tab": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@material/mwc-tab/-/mwc-tab-0.27.0.tgz", - "integrity": "sha512-BhX6hZYjPL+d3Gcl6rVHNPiEAudgMHA+7mHo2keqbIiFRLKa2CU+omHZO/82+EBan/TPL6ZK39Oki8aIaAJcRQ==", - "deprecated": "MWC beta is longer supported. Please upgrade to @material/web", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@material/mwc-base": "^0.27.0", - "@material/mwc-ripple": "^0.27.0", - "@material/mwc-tab-indicator": "^0.27.0", - "@material/tab": "=14.0.0-canary.53b3cad2f.0", - "lit": "^2.0.0", - "tslib": "^2.0.1" - } - }, - "node_modules/@material/mwc-tab-bar": { + "node_modules/@material/mwc-textfield": { "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@material/mwc-tab-bar/-/mwc-tab-bar-0.27.0.tgz", - "integrity": "sha512-CqRZ38m8kOfSJo87Ek61eubO8AGR10Dp12c3pCyyy6mtK/0FSY+rfcmnMPxEzkxREqUnQPgw9lhqmGZXBSqzZQ==", + "resolved": "https://registry.npmjs.org/@material/mwc-textfield/-/mwc-textfield-0.27.0.tgz", + "integrity": "sha512-4/OEeEVAWWQ1DzpjeMLYLsa9HMlifOPjAvi0681Yj1g/RYJs5ONZS80HZ8HOT+efAOlZDugshgM4gdNS3I0XFQ==", "deprecated": "MWC beta is longer supported. Please upgrade to @material/web", "dev": true, "license": "Apache-2.0", "dependencies": { + "@material/floating-label": "=14.0.0-canary.53b3cad2f.0", + "@material/line-ripple": "=14.0.0-canary.53b3cad2f.0", "@material/mwc-base": "^0.27.0", - "@material/mwc-tab": "^0.27.0", - "@material/mwc-tab-scroller": "^0.27.0", - "@material/tab": "=14.0.0-canary.53b3cad2f.0", - "@material/tab-bar": "=14.0.0-canary.53b3cad2f.0", + "@material/mwc-floating-label": "^0.27.0", + "@material/mwc-line-ripple": "^0.27.0", + "@material/mwc-notched-outline": "^0.27.0", + "@material/textfield": "=14.0.0-canary.53b3cad2f.0", "lit": "^2.0.0", "tslib": "^2.0.1" } }, - "node_modules/@material/mwc-tab-bar/node_modules/@lit/reactive-element": { + "node_modules/@material/mwc-textfield/node_modules/@lit/reactive-element": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", "integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==", @@ -3559,7 +3412,7 @@ "@lit-labs/ssr-dom-shim": "^1.0.0" } }, - "node_modules/@material/mwc-tab-bar/node_modules/lit": { + "node_modules/@material/mwc-textfield/node_modules/lit": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", "integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==", @@ -3571,7 +3424,7 @@ "lit-html": "^2.8.0" } }, - "node_modules/@material/mwc-tab-bar/node_modules/lit-element": { + "node_modules/@material/mwc-textfield/node_modules/lit-element": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz", "integrity": "sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==", @@ -3583,7 +3436,7 @@ "lit-html": "^2.8.0" } }, - "node_modules/@material/mwc-tab-bar/node_modules/lit-html": { + "node_modules/@material/mwc-textfield/node_modules/lit-html": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", @@ -3593,501 +3446,93 @@ "@types/trusted-types": "^2.0.2" } }, - "node_modules/@material/mwc-tab-indicator": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@material/mwc-tab-indicator/-/mwc-tab-indicator-0.27.0.tgz", - "integrity": "sha512-bdE5mYP2ze/8d8cGTTJUS0+ByzEK5tmWsXfphFr/Dyy9b+gOnIOt1iX8tmKTOpbYKsV43LxtSkumhTTPDXEJLg==", - "deprecated": "MWC beta is longer supported. Please upgrade to @material/web", + "node_modules/@material/notched-outline": { + "version": "14.0.0-canary.53b3cad2f.0", + "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-14.0.0-canary.53b3cad2f.0.tgz", + "integrity": "sha512-3ByiPOC/wWQmFKfgJS98kb5/6v92n7uIfJ6v6sryKJlJCJn39qfpGcCM5RpRIws1RET1s1zBJT2JDwYeu/hM5A==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@material/mwc-base": "^0.27.0", - "@material/tab-indicator": "=14.0.0-canary.53b3cad2f.0", - "lit": "^2.0.0", - "tslib": "^2.0.1" + "@material/base": "14.0.0-canary.53b3cad2f.0", + "@material/feature-targeting": "14.0.0-canary.53b3cad2f.0", + "@material/floating-label": "14.0.0-canary.53b3cad2f.0", + "@material/rtl": "14.0.0-canary.53b3cad2f.0", + "@material/shape": "14.0.0-canary.53b3cad2f.0", + "@material/theme": "14.0.0-canary.53b3cad2f.0", + "tslib": "^2.1.0" } }, - "node_modules/@material/mwc-tab-indicator/node_modules/@lit/reactive-element": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", - "integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==", + "node_modules/@material/radio": { + "version": "14.0.0-canary.53b3cad2f.0", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.0.0" + "@material/animation": "14.0.0-canary.53b3cad2f.0", + "@material/base": "14.0.0-canary.53b3cad2f.0", + "@material/density": "14.0.0-canary.53b3cad2f.0", + "@material/dom": "14.0.0-canary.53b3cad2f.0", + "@material/feature-targeting": "14.0.0-canary.53b3cad2f.0", + "@material/focus-ring": "14.0.0-canary.53b3cad2f.0", + "@material/ripple": "14.0.0-canary.53b3cad2f.0", + "@material/theme": "14.0.0-canary.53b3cad2f.0", + "@material/touch-target": "14.0.0-canary.53b3cad2f.0", + "tslib": "^2.1.0" } }, - "node_modules/@material/mwc-tab-indicator/node_modules/lit": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", - "integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==", + "node_modules/@material/ripple": { + "version": "14.0.0-canary.53b3cad2f.0", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "@lit/reactive-element": "^1.6.0", - "lit-element": "^3.3.0", - "lit-html": "^2.8.0" + "@material/animation": "14.0.0-canary.53b3cad2f.0", + "@material/base": "14.0.0-canary.53b3cad2f.0", + "@material/dom": "14.0.0-canary.53b3cad2f.0", + "@material/feature-targeting": "14.0.0-canary.53b3cad2f.0", + "@material/rtl": "14.0.0-canary.53b3cad2f.0", + "@material/theme": "14.0.0-canary.53b3cad2f.0", + "tslib": "^2.1.0" } }, - "node_modules/@material/mwc-tab-indicator/node_modules/lit-element": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz", - "integrity": "sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==", + "node_modules/@material/rtl": { + "version": "14.0.0-canary.53b3cad2f.0", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.1.0", - "@lit/reactive-element": "^1.3.0", - "lit-html": "^2.8.0" + "@material/theme": "14.0.0-canary.53b3cad2f.0", + "tslib": "^2.1.0" } }, - "node_modules/@material/mwc-tab-indicator/node_modules/lit-html": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", - "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", + "node_modules/@material/shape": { + "version": "14.0.0-canary.53b3cad2f.0", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "@types/trusted-types": "^2.0.2" + "@material/feature-targeting": "14.0.0-canary.53b3cad2f.0", + "@material/rtl": "14.0.0-canary.53b3cad2f.0", + "@material/theme": "14.0.0-canary.53b3cad2f.0", + "tslib": "^2.1.0" } }, - "node_modules/@material/mwc-tab-scroller": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@material/mwc-tab-scroller/-/mwc-tab-scroller-0.27.0.tgz", - "integrity": "sha512-WL/CYVx1cHjC1a/STIB/BaBfxGz3Rz4szNNX35FkYzm6GSGxUNkXZfKOAK7R8RdZOAETa8Gy5tTEhKZKKJ/aUA==", - "deprecated": "MWC beta is longer supported. Please upgrade to @material/web", + "node_modules/@material/snackbar": { + "version": "14.0.0-canary.53b3cad2f.0", + "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-14.0.0-canary.53b3cad2f.0.tgz", + "integrity": "sha512-E/i+o7Q8Jp4UW7UBTslqlFeSxgyU7XE86CoYuq2g+ySSWTt8b16ug8EJTQvuk4DRdDO3tjQN1sN0R77Av6txSw==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@material/dom": "=14.0.0-canary.53b3cad2f.0", - "@material/mwc-base": "^0.27.0", - "@material/tab-scroller": "=14.0.0-canary.53b3cad2f.0", - "lit": "^2.0.0", - "tslib": "^2.0.1" - } - }, - "node_modules/@material/mwc-tab-scroller/node_modules/@lit/reactive-element": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", - "integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.0.0" - } - }, - "node_modules/@material/mwc-tab-scroller/node_modules/lit": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", - "integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit/reactive-element": "^1.6.0", - "lit-element": "^3.3.0", - "lit-html": "^2.8.0" - } - }, - "node_modules/@material/mwc-tab-scroller/node_modules/lit-element": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz", - "integrity": "sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.1.0", - "@lit/reactive-element": "^1.3.0", - "lit-html": "^2.8.0" - } - }, - "node_modules/@material/mwc-tab-scroller/node_modules/lit-html": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", - "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@types/trusted-types": "^2.0.2" - } - }, - "node_modules/@material/mwc-tab/node_modules/@lit/reactive-element": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", - "integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.0.0" - } - }, - "node_modules/@material/mwc-tab/node_modules/lit": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", - "integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit/reactive-element": "^1.6.0", - "lit-element": "^3.3.0", - "lit-html": "^2.8.0" - } - }, - "node_modules/@material/mwc-tab/node_modules/lit-element": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz", - "integrity": "sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.1.0", - "@lit/reactive-element": "^1.3.0", - "lit-html": "^2.8.0" - } - }, - "node_modules/@material/mwc-tab/node_modules/lit-html": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", - "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@types/trusted-types": "^2.0.2" - } - }, - "node_modules/@material/mwc-textfield": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@material/mwc-textfield/-/mwc-textfield-0.27.0.tgz", - "integrity": "sha512-4/OEeEVAWWQ1DzpjeMLYLsa9HMlifOPjAvi0681Yj1g/RYJs5ONZS80HZ8HOT+efAOlZDugshgM4gdNS3I0XFQ==", - "deprecated": "MWC beta is longer supported. Please upgrade to @material/web", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@material/floating-label": "=14.0.0-canary.53b3cad2f.0", - "@material/line-ripple": "=14.0.0-canary.53b3cad2f.0", - "@material/mwc-base": "^0.27.0", - "@material/mwc-floating-label": "^0.27.0", - "@material/mwc-line-ripple": "^0.27.0", - "@material/mwc-notched-outline": "^0.27.0", - "@material/textfield": "=14.0.0-canary.53b3cad2f.0", - "lit": "^2.0.0", - "tslib": "^2.0.1" - } - }, - "node_modules/@material/mwc-textfield/node_modules/@lit/reactive-element": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", - "integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.0.0" - } - }, - "node_modules/@material/mwc-textfield/node_modules/lit": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", - "integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit/reactive-element": "^1.6.0", - "lit-element": "^3.3.0", - "lit-html": "^2.8.0" - } - }, - "node_modules/@material/mwc-textfield/node_modules/lit-element": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz", - "integrity": "sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.1.0", - "@lit/reactive-element": "^1.3.0", - "lit-html": "^2.8.0" - } - }, - "node_modules/@material/mwc-textfield/node_modules/lit-html": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", - "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@types/trusted-types": "^2.0.2" - } - }, - "node_modules/@material/mwc-top-app-bar": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@material/mwc-top-app-bar/-/mwc-top-app-bar-0.27.0.tgz", - "integrity": "sha512-vHn10exeDhUVFpo4TgBsS8pta4AxZtjuuxrYFHMYxceGifEATvGbYoPyw1x7cCMcXMMIITElgfCURAbCmn3BgA==", - "deprecated": "MWC beta is longer supported. Please upgrade to @material/web", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@material/mwc-base": "^0.27.0", - "@material/top-app-bar": "=14.0.0-canary.53b3cad2f.0", - "lit": "^2.0.0", - "tslib": "^2.0.1" - } - }, - "node_modules/@material/mwc-top-app-bar-fixed": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@material/mwc-top-app-bar-fixed/-/mwc-top-app-bar-fixed-0.27.0.tgz", - "integrity": "sha512-kU1RKmx8U7YCbsBuAXfNLtu+V/Jwos+o2mSY94tZpv36dIsvcsGQ4pB2zW0EaU8g9bQVdwLMVxj4oooxSmbZXw==", - "deprecated": "MWC beta is longer supported. Please upgrade to @material/web", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@material/mwc-top-app-bar": "^0.27.0", - "@material/top-app-bar": "=14.0.0-canary.53b3cad2f.0", - "lit": "^2.0.0", - "tslib": "^2.0.1" - } - }, - "node_modules/@material/mwc-top-app-bar-fixed/node_modules/@lit/reactive-element": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", - "integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.0.0" - } - }, - "node_modules/@material/mwc-top-app-bar-fixed/node_modules/lit": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", - "integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit/reactive-element": "^1.6.0", - "lit-element": "^3.3.0", - "lit-html": "^2.8.0" - } - }, - "node_modules/@material/mwc-top-app-bar-fixed/node_modules/lit-element": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz", - "integrity": "sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.1.0", - "@lit/reactive-element": "^1.3.0", - "lit-html": "^2.8.0" - } - }, - "node_modules/@material/mwc-top-app-bar-fixed/node_modules/lit-html": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", - "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@types/trusted-types": "^2.0.2" - } - }, - "node_modules/@material/mwc-top-app-bar/node_modules/@lit/reactive-element": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", - "integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.0.0" - } - }, - "node_modules/@material/mwc-top-app-bar/node_modules/lit": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", - "integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit/reactive-element": "^1.6.0", - "lit-element": "^3.3.0", - "lit-html": "^2.8.0" - } - }, - "node_modules/@material/mwc-top-app-bar/node_modules/lit-element": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz", - "integrity": "sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.1.0", - "@lit/reactive-element": "^1.3.0", - "lit-html": "^2.8.0" - } - }, - "node_modules/@material/mwc-top-app-bar/node_modules/lit-html": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", - "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@types/trusted-types": "^2.0.2" - } - }, - "node_modules/@material/notched-outline": { - "version": "14.0.0-canary.53b3cad2f.0", - "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-14.0.0-canary.53b3cad2f.0.tgz", - "integrity": "sha512-3ByiPOC/wWQmFKfgJS98kb5/6v92n7uIfJ6v6sryKJlJCJn39qfpGcCM5RpRIws1RET1s1zBJT2JDwYeu/hM5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@material/base": "14.0.0-canary.53b3cad2f.0", - "@material/feature-targeting": "14.0.0-canary.53b3cad2f.0", - "@material/floating-label": "14.0.0-canary.53b3cad2f.0", - "@material/rtl": "14.0.0-canary.53b3cad2f.0", - "@material/shape": "14.0.0-canary.53b3cad2f.0", - "@material/theme": "14.0.0-canary.53b3cad2f.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/radio": { - "version": "14.0.0-canary.53b3cad2f.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@material/animation": "14.0.0-canary.53b3cad2f.0", - "@material/base": "14.0.0-canary.53b3cad2f.0", - "@material/density": "14.0.0-canary.53b3cad2f.0", - "@material/dom": "14.0.0-canary.53b3cad2f.0", - "@material/feature-targeting": "14.0.0-canary.53b3cad2f.0", - "@material/focus-ring": "14.0.0-canary.53b3cad2f.0", - "@material/ripple": "14.0.0-canary.53b3cad2f.0", - "@material/theme": "14.0.0-canary.53b3cad2f.0", - "@material/touch-target": "14.0.0-canary.53b3cad2f.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/ripple": { - "version": "14.0.0-canary.53b3cad2f.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@material/animation": "14.0.0-canary.53b3cad2f.0", - "@material/base": "14.0.0-canary.53b3cad2f.0", - "@material/dom": "14.0.0-canary.53b3cad2f.0", - "@material/feature-targeting": "14.0.0-canary.53b3cad2f.0", - "@material/rtl": "14.0.0-canary.53b3cad2f.0", - "@material/theme": "14.0.0-canary.53b3cad2f.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/rtl": { - "version": "14.0.0-canary.53b3cad2f.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@material/theme": "14.0.0-canary.53b3cad2f.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/shape": { - "version": "14.0.0-canary.53b3cad2f.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@material/feature-targeting": "14.0.0-canary.53b3cad2f.0", - "@material/rtl": "14.0.0-canary.53b3cad2f.0", - "@material/theme": "14.0.0-canary.53b3cad2f.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/snackbar": { - "version": "14.0.0-canary.53b3cad2f.0", - "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-14.0.0-canary.53b3cad2f.0.tgz", - "integrity": "sha512-E/i+o7Q8Jp4UW7UBTslqlFeSxgyU7XE86CoYuq2g+ySSWTt8b16ug8EJTQvuk4DRdDO3tjQN1sN0R77Av6txSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@material/animation": "14.0.0-canary.53b3cad2f.0", - "@material/base": "14.0.0-canary.53b3cad2f.0", - "@material/button": "14.0.0-canary.53b3cad2f.0", - "@material/dom": "14.0.0-canary.53b3cad2f.0", - "@material/elevation": "14.0.0-canary.53b3cad2f.0", - "@material/feature-targeting": "14.0.0-canary.53b3cad2f.0", - "@material/icon-button": "14.0.0-canary.53b3cad2f.0", - "@material/ripple": "14.0.0-canary.53b3cad2f.0", - "@material/rtl": "14.0.0-canary.53b3cad2f.0", - "@material/shape": "14.0.0-canary.53b3cad2f.0", - "@material/theme": "14.0.0-canary.53b3cad2f.0", - "@material/typography": "14.0.0-canary.53b3cad2f.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/tab": { - "version": "14.0.0-canary.53b3cad2f.0", - "resolved": "https://registry.npmjs.org/@material/tab/-/tab-14.0.0-canary.53b3cad2f.0.tgz", - "integrity": "sha512-Vmjugm9TBF906pNE2kORSDcMUYXQXV+uspFdbyoSH3hVOTjX+Bw+ODL9agW+pDsJRqGMLO/BAoZ0YQDCrCNX/A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@material/base": "14.0.0-canary.53b3cad2f.0", - "@material/elevation": "14.0.0-canary.53b3cad2f.0", - "@material/feature-targeting": "14.0.0-canary.53b3cad2f.0", - "@material/focus-ring": "14.0.0-canary.53b3cad2f.0", - "@material/ripple": "14.0.0-canary.53b3cad2f.0", - "@material/rtl": "14.0.0-canary.53b3cad2f.0", - "@material/tab-indicator": "14.0.0-canary.53b3cad2f.0", - "@material/theme": "14.0.0-canary.53b3cad2f.0", - "@material/typography": "14.0.0-canary.53b3cad2f.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/tab-bar": { - "version": "14.0.0-canary.53b3cad2f.0", - "resolved": "https://registry.npmjs.org/@material/tab-bar/-/tab-bar-14.0.0-canary.53b3cad2f.0.tgz", - "integrity": "sha512-qLTxl0SWwSpsWBV5o7fMO4HaA3NSCTroM+qkUJYNq7lumMXxax8XP6+GvgbXXfsF1K6VqwSPJHnFt5g1kvtBOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@material/animation": "14.0.0-canary.53b3cad2f.0", - "@material/base": "14.0.0-canary.53b3cad2f.0", - "@material/density": "14.0.0-canary.53b3cad2f.0", - "@material/elevation": "14.0.0-canary.53b3cad2f.0", - "@material/feature-targeting": "14.0.0-canary.53b3cad2f.0", - "@material/tab": "14.0.0-canary.53b3cad2f.0", - "@material/tab-indicator": "14.0.0-canary.53b3cad2f.0", - "@material/tab-scroller": "14.0.0-canary.53b3cad2f.0", - "@material/theme": "14.0.0-canary.53b3cad2f.0", - "@material/typography": "14.0.0-canary.53b3cad2f.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/tab-indicator": { - "version": "14.0.0-canary.53b3cad2f.0", - "resolved": "https://registry.npmjs.org/@material/tab-indicator/-/tab-indicator-14.0.0-canary.53b3cad2f.0.tgz", - "integrity": "sha512-CMh5MuQamk10oYs0NpQwJ+JLPcY+WftU1b2NpAxbke+6yaV0XrcEkymSfHDkMB5itDvtpXR4fe2Yw9wO8gvcgg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@material/animation": "14.0.0-canary.53b3cad2f.0", - "@material/base": "14.0.0-canary.53b3cad2f.0", - "@material/feature-targeting": "14.0.0-canary.53b3cad2f.0", - "@material/theme": "14.0.0-canary.53b3cad2f.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/tab-scroller": { - "version": "14.0.0-canary.53b3cad2f.0", - "resolved": "https://registry.npmjs.org/@material/tab-scroller/-/tab-scroller-14.0.0-canary.53b3cad2f.0.tgz", - "integrity": "sha512-eJJWfNDSdjrRVNHkSecblN26PtM8rTeK2FqcZh3iCYRZ74ywhKmHF+elrM2KRH8ez+u/YcZoQacgS8rX3v6ygw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@material/animation": "14.0.0-canary.53b3cad2f.0", - "@material/base": "14.0.0-canary.53b3cad2f.0", - "@material/dom": "14.0.0-canary.53b3cad2f.0", - "@material/feature-targeting": "14.0.0-canary.53b3cad2f.0", - "@material/tab": "14.0.0-canary.53b3cad2f.0", - "tslib": "^2.1.0" + "@material/animation": "14.0.0-canary.53b3cad2f.0", + "@material/base": "14.0.0-canary.53b3cad2f.0", + "@material/button": "14.0.0-canary.53b3cad2f.0", + "@material/dom": "14.0.0-canary.53b3cad2f.0", + "@material/elevation": "14.0.0-canary.53b3cad2f.0", + "@material/feature-targeting": "14.0.0-canary.53b3cad2f.0", + "@material/icon-button": "14.0.0-canary.53b3cad2f.0", + "@material/ripple": "14.0.0-canary.53b3cad2f.0", + "@material/rtl": "14.0.0-canary.53b3cad2f.0", + "@material/shape": "14.0.0-canary.53b3cad2f.0", + "@material/theme": "14.0.0-canary.53b3cad2f.0", + "@material/typography": "14.0.0-canary.53b3cad2f.0", + "tslib": "^2.1.0" } }, "node_modules/@material/textfield": { @@ -4131,24 +3576,6 @@ "@material/elevation": "14.0.0-canary.53b3cad2f.0" } }, - "node_modules/@material/top-app-bar": { - "version": "14.0.0-canary.53b3cad2f.0", - "resolved": "https://registry.npmjs.org/@material/top-app-bar/-/top-app-bar-14.0.0-canary.53b3cad2f.0.tgz", - "integrity": "sha512-9vPLLxUbNrWNCPGHoIeIUtyXWQUNh+yQwnkTYVkVAVEb1CsWb2D+/NefytfvyFtXWBFQLybAeG5RH0ZqdcgQBQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@material/animation": "14.0.0-canary.53b3cad2f.0", - "@material/base": "14.0.0-canary.53b3cad2f.0", - "@material/elevation": "14.0.0-canary.53b3cad2f.0", - "@material/ripple": "14.0.0-canary.53b3cad2f.0", - "@material/rtl": "14.0.0-canary.53b3cad2f.0", - "@material/shape": "14.0.0-canary.53b3cad2f.0", - "@material/theme": "14.0.0-canary.53b3cad2f.0", - "@material/typography": "14.0.0-canary.53b3cad2f.0", - "tslib": "^2.1.0" - } - }, "node_modules/@material/touch-target": { "version": "14.0.0-canary.53b3cad2f.0", "dev": true, @@ -4174,7 +3601,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/@material/web/-/web-2.3.0.tgz", "integrity": "sha512-r7ccZHthMk5tM05goPJ965hQ99ptMyZt7i8Xi8+RmEqK3ZXaMtjx+s4p+9OVX+vgOS3zpop+g1yGYXtOOlrwUg==", - "dev": true, "license": "Apache-2.0", "workspaces": [ "catalog" @@ -4193,7 +3619,6 @@ }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", @@ -4205,7 +3630,6 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -4213,7 +3637,6 @@ }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", @@ -4227,7 +3650,6 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-api/-/oscd-api-0.1.3.tgz", "integrity": "sha512-+bXly0FU+SrfQ8zElC5E+I61ly9ssZfWcGXfT+iK0xrJtQl61pKthge3Njq6VGixwFqwu1WETALcEec0TpkRgg==", - "dev": true, "license": "Apache-2.0", "dependencies": { "tslib": "^2.8.1" @@ -4237,7 +3659,6 @@ "version": "0.0.6", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-background-editv1/-/oscd-background-editv1-0.0.6.tgz", "integrity": "sha512-t/dSSYhrOkbK7zxEXb5iP4au9VN9M0J8tA/LnY+BP4AsxMuIACnMDoeyauBrGVfPf3vIP1Dd1x1olxz23fKEWg==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@omicronenergy/oscd-api": "^0.1.1", @@ -4250,7 +3671,6 @@ "version": "0.12.2", "resolved": "https://registry.npmjs.org/@lit/localize/-/localize-0.12.2.tgz", "integrity": "sha512-Qv9kvgJKDq/JVSwXOxuWvQnnOBysHA99ti9im9a4fImCmx+fto+XXcUYQbjZHqiueEEc4V20PcRDPO+1g/6seQ==", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "lit": "^3.2.0" @@ -4260,7 +3680,6 @@ "version": "0.0.7", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-shell/-/oscd-shell-0.0.7.tgz", "integrity": "sha512-R+QuNLyxCMy+MeQ9Vecn/4Zlw9hwBpJLEDNGsGk2oODQOCJzfB9Dl93I8nr5VD4pEbP5pDKMO5kWOHN7A277GA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@lit/localize": "^0.12.2", @@ -4278,7 +3697,6 @@ "version": "0.0.7", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-test-utils/-/oscd-test-utils-0.0.7.tgz", "integrity": "sha512-wK/t1+QBJVMT9JnOkgR6xbkB0w7Cnv7OhF0id8sS9Btv+5Bmf/5sRIi1yA9EIDEH3wtXb8vd3PiYd3LhvnawGA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@omicronenergy/oscd-api": "^0.1.0", @@ -4291,7 +3709,6 @@ "version": "0.0.4", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-ui/-/oscd-ui-0.0.4.tgz", "integrity": "sha512-qaMzMn1Pq0/fzQ0pGRRFBz0JnNa1pIeSDSLM/X+avW32arLBcU1QOUCGlVNohZr9P2YDmEwovgS1JXXmBvadZA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@material/web": "2.3.0", @@ -4305,7 +3722,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/@open-wc/testing/-/testing-4.0.0.tgz", "integrity": "sha512-KI70O0CJEpBWs3jrTju4BFCy7V/d4tFfYWkg8pMzncsDhD7TYNHLw5cy+s1FHXIgVFetnMDhPpwlKIPvtTQW7w==", - "dev": true, "license": "MIT", "dependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -4320,7 +3736,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/@open-wc/testing-helpers/-/testing-helpers-3.0.1.tgz", "integrity": "sha512-hyNysSatbgT2FNxHJsS3rGKcLEo6+HwDFu1UQL6jcSQUabp/tj3PyX7UnXL3H5YGv0lJArdYLSnvjLnjn3O2fw==", - "dev": true, "license": "MIT", "dependencies": { "@open-wc/scoped-elements": "^3.0.2", @@ -4332,7 +3747,6 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-background-wizard-events/-/oscd-background-wizard-events-0.0.1.tgz", "integrity": "sha512-yYBaUkJp63KdkCgQpV+md4vl4QU+deLAhYZOY3NT2hP8mvbUyfFMcS/BPKtYKP+UgxihfI+ezYl0nbLnUio6sg==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@omicronenergy/oscd-api": "^0.1.1", @@ -4348,7 +3762,6 @@ "version": "0.12.2", "resolved": "https://registry.npmjs.org/@lit/localize/-/localize-0.12.2.tgz", "integrity": "sha512-Qv9kvgJKDq/JVSwXOxuWvQnnOBysHA99ti9im9a4fImCmx+fto+XXcUYQbjZHqiueEEc4V20PcRDPO+1g/6seQ==", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "lit": "^3.2.0" @@ -4358,7 +3771,6 @@ "version": "0.0.7", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-shell/-/oscd-shell-0.0.7.tgz", "integrity": "sha512-R+QuNLyxCMy+MeQ9Vecn/4Zlw9hwBpJLEDNGsGk2oODQOCJzfB9Dl93I8nr5VD4pEbP5pDKMO5kWOHN7A277GA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@lit/localize": "^0.12.2", @@ -4376,7 +3788,6 @@ "version": "0.0.7", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-test-utils/-/oscd-test-utils-0.0.7.tgz", "integrity": "sha512-wK/t1+QBJVMT9JnOkgR6xbkB0w7Cnv7OhF0id8sS9Btv+5Bmf/5sRIi1yA9EIDEH3wtXb8vd3PiYd3LhvnawGA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@omicronenergy/oscd-api": "^0.1.0", @@ -4389,7 +3800,6 @@ "version": "0.0.4", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-ui/-/oscd-ui-0.0.4.tgz", "integrity": "sha512-qaMzMn1Pq0/fzQ0pGRRFBz0JnNa1pIeSDSLM/X+avW32arLBcU1QOUCGlVNohZr9P2YDmEwovgS1JXXmBvadZA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@material/web": "2.3.0", @@ -4403,7 +3813,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/@open-wc/testing/-/testing-4.0.0.tgz", "integrity": "sha512-KI70O0CJEpBWs3jrTju4BFCy7V/d4tFfYWkg8pMzncsDhD7TYNHLw5cy+s1FHXIgVFetnMDhPpwlKIPvtTQW7w==", - "dev": true, "license": "MIT", "dependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -4418,7 +3827,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/@open-wc/testing-helpers/-/testing-helpers-3.0.1.tgz", "integrity": "sha512-hyNysSatbgT2FNxHJsS3rGKcLEo6+HwDFu1UQL6jcSQUabp/tj3PyX7UnXL3H5YGv0lJArdYLSnvjLnjn3O2fw==", - "dev": true, "license": "MIT", "dependencies": { "@open-wc/scoped-elements": "^3.0.2", @@ -4430,7 +3838,6 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-edit-dialog/-/oscd-edit-dialog-0.0.1.tgz", "integrity": "sha512-7Tdl5kTFY1O3QSLGxPrY4KqYHtaORqV0KBw1NLrbabMjhSJ6SAxSB5PgPMD1mMSIyr+pFq+Xd/jBBo9hd9zpSg==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@omicronenergy/oscd-api": "^0.1.1", @@ -4451,7 +3858,6 @@ "version": "0.12.2", "resolved": "https://registry.npmjs.org/@lit/localize/-/localize-0.12.2.tgz", "integrity": "sha512-Qv9kvgJKDq/JVSwXOxuWvQnnOBysHA99ti9im9a4fImCmx+fto+XXcUYQbjZHqiueEEc4V20PcRDPO+1g/6seQ==", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "lit": "^3.2.0" @@ -4461,7 +3867,6 @@ "version": "0.0.7", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-shell/-/oscd-shell-0.0.7.tgz", "integrity": "sha512-R+QuNLyxCMy+MeQ9Vecn/4Zlw9hwBpJLEDNGsGk2oODQOCJzfB9Dl93I8nr5VD4pEbP5pDKMO5kWOHN7A277GA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@lit/localize": "^0.12.2", @@ -4479,7 +3884,6 @@ "version": "0.0.7", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-test-utils/-/oscd-test-utils-0.0.7.tgz", "integrity": "sha512-wK/t1+QBJVMT9JnOkgR6xbkB0w7Cnv7OhF0id8sS9Btv+5Bmf/5sRIi1yA9EIDEH3wtXb8vd3PiYd3LhvnawGA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@omicronenergy/oscd-api": "^0.1.0", @@ -4492,7 +3896,6 @@ "version": "0.0.4", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-ui/-/oscd-ui-0.0.4.tgz", "integrity": "sha512-qaMzMn1Pq0/fzQ0pGRRFBz0JnNa1pIeSDSLM/X+avW32arLBcU1QOUCGlVNohZr9P2YDmEwovgS1JXXmBvadZA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@material/web": "2.3.0", @@ -4506,7 +3909,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/@open-wc/testing/-/testing-4.0.0.tgz", "integrity": "sha512-KI70O0CJEpBWs3jrTju4BFCy7V/d4tFfYWkg8pMzncsDhD7TYNHLw5cy+s1FHXIgVFetnMDhPpwlKIPvtTQW7w==", - "dev": true, "license": "MIT", "dependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -4521,7 +3923,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/@open-wc/testing-helpers/-/testing-helpers-3.0.1.tgz", "integrity": "sha512-hyNysSatbgT2FNxHJsS3rGKcLEo6+HwDFu1UQL6jcSQUabp/tj3PyX7UnXL3H5YGv0lJArdYLSnvjLnjn3O2fw==", - "dev": true, "license": "MIT", "dependencies": { "@open-wc/scoped-elements": "^3.0.2", @@ -4533,7 +3934,6 @@ "version": "1.7.1", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-editor/-/oscd-editor-1.7.1.tgz", "integrity": "sha512-oPhfvEXS4ZsBJJzD5xggIRG69W0bEpM3GNzabunR060qUkBhR5K90N7RSTvCy8Wu3YZgr2Aw+RKRtfbXF1P39Q==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@openscd/oscd-api": "^0.1.6" @@ -4556,154 +3956,33 @@ "@material/mwc-snackbar": "^0.27.0", "@material/mwc-textfield": "^0.27.0", "@omicronenergy/oscd-background-editv1": "^0.0.6", - "@omicronenergy/oscd-background-wizard-events": "^0.0.1", - "@omicronenergy/oscd-editor-source": "^0.0.3", - "@omicronenergy/oscd-menu-open": "^0.0.6", - "@omicronenergy/oscd-menu-save": "^0.0.2", - "@omicronenergy/oscd-scl-dialogs": "^0.0.12", - "@omicronenergy/oscd-shell": "^0.0.9", - "@open-wc/scoped-elements": "^3.0.6", - "@openscd/oscd-api": "^0.1.5", - "@openscd/scl-lib": "^2.0.0", - "@webcomponents/scoped-custom-element-registry": "^0.0.10", - "lit": "^3.3.2" - } - }, - "node_modules/@omicronenergy/oscd-editor-sld/node_modules/@lit/localize": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/@lit/localize/-/localize-0.12.2.tgz", - "integrity": "sha512-Qv9kvgJKDq/JVSwXOxuWvQnnOBysHA99ti9im9a4fImCmx+fto+XXcUYQbjZHqiueEEc4V20PcRDPO+1g/6seQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "lit": "^3.2.0" - } - }, - "node_modules/@omicronenergy/oscd-editor-sld/node_modules/@omicronenergy/oscd-shell": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-shell/-/oscd-shell-0.0.9.tgz", - "integrity": "sha512-cpN2YAswTJjrzRiEs0mijievw79slTvjsOKbVkWspWGZwlLrQ1YAIJjzwZu0iP/lKbYOKuYk+loV1gdSocEXog==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@lit/localize": "^0.12.2", - "@omicronenergy/oscd-api": "^0.1.3", - "@omicronenergy/oscd-background-editv1": "^0.0.6", - "@omicronenergy/oscd-editor": "^1.5.0", - "@omicronenergy/oscd-menu-open": "^0.0.6", - "@omicronenergy/oscd-menu-save": "^0.0.1", - "@omicronenergy/oscd-test-utils": "^0.0.8", - "@omicronenergy/oscd-ui": "^0.0.6", - "@open-wc/scoped-elements": "^3.0.5", - "@webcomponents/scoped-custom-element-registry": "^0.0.10", - "lit": "^3.3.0", - "tslib": "^2.6.3" - } - }, - "node_modules/@omicronenergy/oscd-editor-sld/node_modules/@omicronenergy/oscd-shell/node_modules/@omicronenergy/oscd-menu-save": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-menu-save/-/oscd-menu-save-0.0.1.tgz", - "integrity": "sha512-g0Bl7NOflkbhAidqXSIpyjgiDr5aDernct14zkAIZI9P6zRgs1T2pTJCJddsfzgCvrdRVLKgO8NvgAozrGQ/Qw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@omicronenergy/oscd-api": "^0.1.1", - "@omicronenergy/oscd-shell": "^0.0.7", - "tslib": "^2.8.1" - } - }, - "node_modules/@omicronenergy/oscd-editor-sld/node_modules/@omicronenergy/oscd-shell/node_modules/@omicronenergy/oscd-shell": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-shell/-/oscd-shell-0.0.7.tgz", - "integrity": "sha512-R+QuNLyxCMy+MeQ9Vecn/4Zlw9hwBpJLEDNGsGk2oODQOCJzfB9Dl93I8nr5VD4pEbP5pDKMO5kWOHN7A277GA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@lit/localize": "^0.12.2", - "@omicronenergy/oscd-api": "^0.1.0", - "@omicronenergy/oscd-editor": "^1.5.0", - "@omicronenergy/oscd-test-utils": "^0.0.7", - "@omicronenergy/oscd-ui": "^0.0.4", - "@open-wc/scoped-elements": "^3.0.5", - "@webcomponents/scoped-custom-element-registry": "^0.0.10", - "lit": "^3.3.0", - "tslib": "^2.6.3" - } - }, - "node_modules/@omicronenergy/oscd-editor-sld/node_modules/@omicronenergy/oscd-shell/node_modules/@omicronenergy/oscd-shell/node_modules/@omicronenergy/oscd-test-utils": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-test-utils/-/oscd-test-utils-0.0.7.tgz", - "integrity": "sha512-wK/t1+QBJVMT9JnOkgR6xbkB0w7Cnv7OhF0id8sS9Btv+5Bmf/5sRIi1yA9EIDEH3wtXb8vd3PiYd3LhvnawGA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@omicronenergy/oscd-api": "^0.1.0", - "@open-wc/testing": "4.0.0", - "fast-check": "^3.22.0", - "tslib": "^2.4.0" - } - }, - "node_modules/@omicronenergy/oscd-editor-sld/node_modules/@omicronenergy/oscd-shell/node_modules/@omicronenergy/oscd-shell/node_modules/@omicronenergy/oscd-ui": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-ui/-/oscd-ui-0.0.4.tgz", - "integrity": "sha512-qaMzMn1Pq0/fzQ0pGRRFBz0JnNa1pIeSDSLM/X+avW32arLBcU1QOUCGlVNohZr9P2YDmEwovgS1JXXmBvadZA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@material/web": "2.3.0", - "@open-wc/scoped-elements": "^3.0.5", - "@webcomponents/scoped-custom-element-registry": "^0.0.10", - "lit": "^3.0.0", - "tslib": "^2.4.0" - } - }, - "node_modules/@omicronenergy/oscd-editor-sld/node_modules/@omicronenergy/oscd-ui": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-ui/-/oscd-ui-0.0.6.tgz", - "integrity": "sha512-KXgMeyyBzpIAs1PjaA39xWsh/TXCdNFXsPh3vTQetJhMrYiLg2tVtpzo9o9Co5xSU3+Xk/j0LG5rAoXlxSzC6Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@lit/reactive-element": "^2.1.0", - "@material/web": "2.3.0", - "@open-wc/scoped-elements": "^3.0.5", + "@omicronenergy/oscd-background-wizard-events": "^0.0.1", + "@omicronenergy/oscd-editor-source": "^0.0.3", + "@omicronenergy/oscd-menu-open": "^0.0.6", + "@omicronenergy/oscd-menu-save": "^0.0.2", + "@omicronenergy/oscd-scl-dialogs": "^0.0.12", + "@omicronenergy/oscd-shell": "^0.0.9", + "@open-wc/scoped-elements": "^3.0.6", + "@openscd/oscd-api": "^0.1.5", + "@openscd/scl-lib": "^2.0.0", "@webcomponents/scoped-custom-element-registry": "^0.0.10", - "lit": "^3.0.0", - "tslib": "^2.4.0" - } - }, - "node_modules/@omicronenergy/oscd-editor-sld/node_modules/@open-wc/testing": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@open-wc/testing/-/testing-4.0.0.tgz", - "integrity": "sha512-KI70O0CJEpBWs3jrTju4BFCy7V/d4tFfYWkg8pMzncsDhD7TYNHLw5cy+s1FHXIgVFetnMDhPpwlKIPvtTQW7w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@open-wc/semantic-dom-diff": "^0.20.0", - "@open-wc/testing-helpers": "^3.0.0", - "@types/chai-dom": "^1.11.0", - "@types/sinon-chai": "^3.2.3", - "chai-a11y-axe": "^1.5.0" + "lit": "^3.3.2" } }, - "node_modules/@omicronenergy/oscd-editor-sld/node_modules/@open-wc/testing-helpers": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@open-wc/testing-helpers/-/testing-helpers-3.0.1.tgz", - "integrity": "sha512-hyNysSatbgT2FNxHJsS3rGKcLEo6+HwDFu1UQL6jcSQUabp/tj3PyX7UnXL3H5YGv0lJArdYLSnvjLnjn3O2fw==", + "node_modules/@omicronenergy/oscd-editor-sld/node_modules/@openscd/oscd-api": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@openscd/oscd-api/-/oscd-api-0.1.6.tgz", + "integrity": "sha512-AqoHwQPsyiKxR8OVV3nOGgMMeiXgt2WAODZVcW0zLy7pLcZAROVzbvindiX3s09FuEOFY7UMyozmDmk1UXZJHg==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "@open-wc/scoped-elements": "^3.0.2", - "lit": "^2.0.0 || ^3.0.0", - "lit-html": "^2.0.0 || ^3.0.0" + "tslib": "^2.8.1" } }, "node_modules/@omicronenergy/oscd-editor-source": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-editor-source/-/oscd-editor-source-0.0.3.tgz", "integrity": "sha512-PJE0X9sO6jAwtObCiKYMZg7+Q2oXe0u4Ny3ihYwOmRYE/q8BX+dErNTtdo64YTfIVYNvCBWwPkxlVQd5a5ueWA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@omicronenergy/oscd-api": "^0.1.3", @@ -4724,7 +4003,6 @@ "version": "0.12.2", "resolved": "https://registry.npmjs.org/@lit/localize/-/localize-0.12.2.tgz", "integrity": "sha512-Qv9kvgJKDq/JVSwXOxuWvQnnOBysHA99ti9im9a4fImCmx+fto+XXcUYQbjZHqiueEEc4V20PcRDPO+1g/6seQ==", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "lit": "^3.2.0" @@ -4734,7 +4012,6 @@ "version": "0.0.10", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-shell/-/oscd-shell-0.0.10.tgz", "integrity": "sha512-DZb6iWd9OPC7qXutl3zJHhOl8nYzuaoVD/v515uDtfQTttUKQV82xb94Ma9zhWo/RIOulvZSdU2Wwq4j7iCs9A==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@lit/localize": "^0.12.2", @@ -4756,7 +4033,6 @@ "version": "0.0.9", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-ui/-/oscd-ui-0.0.9.tgz", "integrity": "sha512-ziRUJWVxm7aAMPcNVnsFQCjkYWNsKWVRdHoizKEsXz14SQJUYEMLSO9fnmwn74VIqqCWF5Y1YS0QR7v4DDK/1g==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@omicronenergy/oscd-material-web-base": "^2.4.0", @@ -4770,7 +4046,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/@openscd/oscd-api/-/oscd-api-0.1.6.tgz", "integrity": "sha512-AqoHwQPsyiKxR8OVV3nOGgMMeiXgt2WAODZVcW0zLy7pLcZAROVzbvindiX3s09FuEOFY7UMyozmDmk1UXZJHg==", - "dev": true, "license": "Apache-2.0", "dependencies": { "tslib": "^2.8.1" @@ -4780,14 +4055,12 @@ "version": "1.43.6", "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.43.6.tgz", "integrity": "sha512-L1ddibQ7F3vyXR2k2fg+I8TQTPWVA6CKeDQr/h2+8CeyTp3W6EQL8xNFZRTztuP8xNOAqL3IYPqdzs31GCjDvg==", - "dev": true, "license": "BSD-3-Clause" }, "node_modules/@omicronenergy/oscd-editor/node_modules/@openscd/oscd-api": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/@openscd/oscd-api/-/oscd-api-0.1.6.tgz", "integrity": "sha512-AqoHwQPsyiKxR8OVV3nOGgMMeiXgt2WAODZVcW0zLy7pLcZAROVzbvindiX3s09FuEOFY7UMyozmDmk1UXZJHg==", - "dev": true, "license": "Apache-2.0", "dependencies": { "tslib": "^2.8.1" @@ -4811,7 +4084,6 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-menu-commons/-/oscd-menu-commons-0.0.1.tgz", "integrity": "sha512-+vl3UkDUZkqPUe/Mc2nmPhEE2IIIBV6LZWbRLqiZTn/m07H2isk4Hy78X+fWNM4H54agMZ6egFkWT49C+hKgdw==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@lit/localize": "^0.12.2", @@ -4832,7 +4104,6 @@ "version": "0.12.2", "resolved": "https://registry.npmjs.org/@lit/localize/-/localize-0.12.2.tgz", "integrity": "sha512-Qv9kvgJKDq/JVSwXOxuWvQnnOBysHA99ti9im9a4fImCmx+fto+XXcUYQbjZHqiueEEc4V20PcRDPO+1g/6seQ==", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "lit": "^3.2.0" @@ -4842,7 +4113,6 @@ "version": "0.0.8", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-shell/-/oscd-shell-0.0.8.tgz", "integrity": "sha512-0kT3iNHHGCFy0Ow0iqXX+VPdM6nvzNmnXj3DfzfpmVGjuc1RqyLqOF5iSilDRxBNhJcuZuX4LIn2uuE5kpXCpA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@lit/localize": "^0.12.2", @@ -4863,7 +4133,6 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-menu-save/-/oscd-menu-save-0.0.1.tgz", "integrity": "sha512-g0Bl7NOflkbhAidqXSIpyjgiDr5aDernct14zkAIZI9P6zRgs1T2pTJCJddsfzgCvrdRVLKgO8NvgAozrGQ/Qw==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@omicronenergy/oscd-api": "^0.1.1", @@ -4875,7 +4144,6 @@ "version": "0.0.7", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-shell/-/oscd-shell-0.0.7.tgz", "integrity": "sha512-R+QuNLyxCMy+MeQ9Vecn/4Zlw9hwBpJLEDNGsGk2oODQOCJzfB9Dl93I8nr5VD4pEbP5pDKMO5kWOHN7A277GA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@lit/localize": "^0.12.2", @@ -4893,7 +4161,6 @@ "version": "0.0.7", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-test-utils/-/oscd-test-utils-0.0.7.tgz", "integrity": "sha512-wK/t1+QBJVMT9JnOkgR6xbkB0w7Cnv7OhF0id8sS9Btv+5Bmf/5sRIi1yA9EIDEH3wtXb8vd3PiYd3LhvnawGA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@omicronenergy/oscd-api": "^0.1.0", @@ -4906,7 +4173,6 @@ "version": "0.0.4", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-ui/-/oscd-ui-0.0.4.tgz", "integrity": "sha512-qaMzMn1Pq0/fzQ0pGRRFBz0JnNa1pIeSDSLM/X+avW32arLBcU1QOUCGlVNohZr9P2YDmEwovgS1JXXmBvadZA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@material/web": "2.3.0", @@ -4920,7 +4186,6 @@ "version": "0.0.9", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-ui/-/oscd-ui-0.0.9.tgz", "integrity": "sha512-ziRUJWVxm7aAMPcNVnsFQCjkYWNsKWVRdHoizKEsXz14SQJUYEMLSO9fnmwn74VIqqCWF5Y1YS0QR7v4DDK/1g==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@omicronenergy/oscd-material-web-base": "^2.4.0", @@ -4934,7 +4199,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/@open-wc/testing/-/testing-4.0.0.tgz", "integrity": "sha512-KI70O0CJEpBWs3jrTju4BFCy7V/d4tFfYWkg8pMzncsDhD7TYNHLw5cy+s1FHXIgVFetnMDhPpwlKIPvtTQW7w==", - "dev": true, "license": "MIT", "dependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -4949,7 +4213,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/@open-wc/testing-helpers/-/testing-helpers-3.0.1.tgz", "integrity": "sha512-hyNysSatbgT2FNxHJsS3rGKcLEo6+HwDFu1UQL6jcSQUabp/tj3PyX7UnXL3H5YGv0lJArdYLSnvjLnjn3O2fw==", - "dev": true, "license": "MIT", "dependencies": { "@open-wc/scoped-elements": "^3.0.2", @@ -4961,7 +4224,6 @@ "version": "0.0.6", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-menu-open/-/oscd-menu-open-0.0.6.tgz", "integrity": "sha512-3AQp8nF3RpfoICNq4qxJAMRC0Ifqq2+SrzTwyV3YXcjOpLcxKWYYVdlWEo+hUjjn0nnoWB1+Doz6tGWfZeqOvg==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@omicronenergy/oscd-api": "^0.1.1", @@ -4973,7 +4235,6 @@ "version": "0.12.2", "resolved": "https://registry.npmjs.org/@lit/localize/-/localize-0.12.2.tgz", "integrity": "sha512-Qv9kvgJKDq/JVSwXOxuWvQnnOBysHA99ti9im9a4fImCmx+fto+XXcUYQbjZHqiueEEc4V20PcRDPO+1g/6seQ==", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "lit": "^3.2.0" @@ -4983,7 +4244,6 @@ "version": "0.0.7", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-shell/-/oscd-shell-0.0.7.tgz", "integrity": "sha512-R+QuNLyxCMy+MeQ9Vecn/4Zlw9hwBpJLEDNGsGk2oODQOCJzfB9Dl93I8nr5VD4pEbP5pDKMO5kWOHN7A277GA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@lit/localize": "^0.12.2", @@ -5001,7 +4261,6 @@ "version": "0.0.7", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-test-utils/-/oscd-test-utils-0.0.7.tgz", "integrity": "sha512-wK/t1+QBJVMT9JnOkgR6xbkB0w7Cnv7OhF0id8sS9Btv+5Bmf/5sRIi1yA9EIDEH3wtXb8vd3PiYd3LhvnawGA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@omicronenergy/oscd-api": "^0.1.0", @@ -5014,7 +4273,6 @@ "version": "0.0.4", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-ui/-/oscd-ui-0.0.4.tgz", "integrity": "sha512-qaMzMn1Pq0/fzQ0pGRRFBz0JnNa1pIeSDSLM/X+avW32arLBcU1QOUCGlVNohZr9P2YDmEwovgS1JXXmBvadZA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@material/web": "2.3.0", @@ -5028,7 +4286,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/@open-wc/testing/-/testing-4.0.0.tgz", "integrity": "sha512-KI70O0CJEpBWs3jrTju4BFCy7V/d4tFfYWkg8pMzncsDhD7TYNHLw5cy+s1FHXIgVFetnMDhPpwlKIPvtTQW7w==", - "dev": true, "license": "MIT", "dependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -5043,7 +4300,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/@open-wc/testing-helpers/-/testing-helpers-3.0.1.tgz", "integrity": "sha512-hyNysSatbgT2FNxHJsS3rGKcLEo6+HwDFu1UQL6jcSQUabp/tj3PyX7UnXL3H5YGv0lJArdYLSnvjLnjn3O2fw==", - "dev": true, "license": "MIT", "dependencies": { "@open-wc/scoped-elements": "^3.0.2", @@ -5055,7 +4311,6 @@ "version": "0.0.2", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-menu-save/-/oscd-menu-save-0.0.2.tgz", "integrity": "sha512-+r9ZldhrrIwzGTbE4AY5bQeKDIGmoMawyNbDpYXMvHA7TjunyDWgOm1LgfW1IACMOnWyDmJqBnFJNujwtbqd1Q==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@omicronenergy/oscd-api": "^0.1.1", @@ -5072,7 +4327,6 @@ "version": "0.12.2", "resolved": "https://registry.npmjs.org/@lit/localize/-/localize-0.12.2.tgz", "integrity": "sha512-Qv9kvgJKDq/JVSwXOxuWvQnnOBysHA99ti9im9a4fImCmx+fto+XXcUYQbjZHqiueEEc4V20PcRDPO+1g/6seQ==", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "lit": "^3.2.0" @@ -5082,7 +4336,6 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-menu-save/-/oscd-menu-save-0.0.1.tgz", "integrity": "sha512-g0Bl7NOflkbhAidqXSIpyjgiDr5aDernct14zkAIZI9P6zRgs1T2pTJCJddsfzgCvrdRVLKgO8NvgAozrGQ/Qw==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@omicronenergy/oscd-api": "^0.1.1", @@ -5094,7 +4347,6 @@ "version": "0.0.7", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-shell/-/oscd-shell-0.0.7.tgz", "integrity": "sha512-R+QuNLyxCMy+MeQ9Vecn/4Zlw9hwBpJLEDNGsGk2oODQOCJzfB9Dl93I8nr5VD4pEbP5pDKMO5kWOHN7A277GA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@lit/localize": "^0.12.2", @@ -5112,7 +4364,6 @@ "version": "0.0.8", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-shell/-/oscd-shell-0.0.8.tgz", "integrity": "sha512-0kT3iNHHGCFy0Ow0iqXX+VPdM6nvzNmnXj3DfzfpmVGjuc1RqyLqOF5iSilDRxBNhJcuZuX4LIn2uuE5kpXCpA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@lit/localize": "^0.12.2", @@ -5133,7 +4384,6 @@ "version": "0.0.7", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-test-utils/-/oscd-test-utils-0.0.7.tgz", "integrity": "sha512-wK/t1+QBJVMT9JnOkgR6xbkB0w7Cnv7OhF0id8sS9Btv+5Bmf/5sRIi1yA9EIDEH3wtXb8vd3PiYd3LhvnawGA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@omicronenergy/oscd-api": "^0.1.0", @@ -5146,7 +4396,6 @@ "version": "0.0.4", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-ui/-/oscd-ui-0.0.4.tgz", "integrity": "sha512-qaMzMn1Pq0/fzQ0pGRRFBz0JnNa1pIeSDSLM/X+avW32arLBcU1QOUCGlVNohZr9P2YDmEwovgS1JXXmBvadZA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@material/web": "2.3.0", @@ -5160,7 +4409,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/@open-wc/testing/-/testing-4.0.0.tgz", "integrity": "sha512-KI70O0CJEpBWs3jrTju4BFCy7V/d4tFfYWkg8pMzncsDhD7TYNHLw5cy+s1FHXIgVFetnMDhPpwlKIPvtTQW7w==", - "dev": true, "license": "MIT", "dependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -5175,7 +4423,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/@open-wc/testing-helpers/-/testing-helpers-3.0.1.tgz", "integrity": "sha512-hyNysSatbgT2FNxHJsS3rGKcLEo6+HwDFu1UQL6jcSQUabp/tj3PyX7UnXL3H5YGv0lJArdYLSnvjLnjn3O2fw==", - "dev": true, "license": "MIT", "dependencies": { "@open-wc/scoped-elements": "^3.0.2", @@ -5187,7 +4434,6 @@ "version": "0.0.12", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-scl-dialogs/-/oscd-scl-dialogs-0.0.12.tgz", "integrity": "sha512-fhtOh4MCscbDXRiLiEezxAwvUNaOUr3OUdNB39gh3RDheQMBRBzoviEuClqaQJti52RAVFCD44Q0+0BRZQh0CA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@omicronenergy/oscd-editor-source": "^0.0.3", @@ -5212,7 +4458,6 @@ "version": "0.12.2", "resolved": "https://registry.npmjs.org/@lit/localize/-/localize-0.12.2.tgz", "integrity": "sha512-Qv9kvgJKDq/JVSwXOxuWvQnnOBysHA99ti9im9a4fImCmx+fto+XXcUYQbjZHqiueEEc4V20PcRDPO+1g/6seQ==", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "lit": "^3.2.0" @@ -5222,7 +4467,6 @@ "version": "0.0.11", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-shell/-/oscd-shell-0.0.11.tgz", "integrity": "sha512-g0tZNk5PLUieSGzMmesJCw0JQJfqub4cKtsLYs7PvszdPFi2ImHhwmyoP1e5ZV6wv8WERL8/B+fAv1M134BZuw==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@lit/localize": "^0.12.2", @@ -5245,7 +4489,6 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-editor-source/-/oscd-editor-source-0.0.1.tgz", "integrity": "sha512-z1hDJhCjbcqTAll4VWNQlbmcYEQP1OPjma2aopi1tKy8Er38SR1OjqYLZyOtgq9Q6zrOXlkpTkiRxswrK+SJJA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@omicronenergy/oscd-api": "^0.1.3", @@ -5266,7 +4509,6 @@ "version": "0.0.10", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-shell/-/oscd-shell-0.0.10.tgz", "integrity": "sha512-DZb6iWd9OPC7qXutl3zJHhOl8nYzuaoVD/v515uDtfQTttUKQV82xb94Ma9zhWo/RIOulvZSdU2Wwq4j7iCs9A==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@lit/localize": "^0.12.2", @@ -5288,7 +4530,6 @@ "version": "0.0.9", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-ui/-/oscd-ui-0.0.9.tgz", "integrity": "sha512-ziRUJWVxm7aAMPcNVnsFQCjkYWNsKWVRdHoizKEsXz14SQJUYEMLSO9fnmwn74VIqqCWF5Y1YS0QR7v4DDK/1g==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@omicronenergy/oscd-material-web-base": "^2.4.0", @@ -5302,7 +4543,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/@openscd/oscd-api/-/oscd-api-0.1.6.tgz", "integrity": "sha512-AqoHwQPsyiKxR8OVV3nOGgMMeiXgt2WAODZVcW0zLy7pLcZAROVzbvindiX3s09FuEOFY7UMyozmDmk1UXZJHg==", - "dev": true, "license": "Apache-2.0", "dependencies": { "tslib": "^2.8.1" @@ -5312,14 +4552,133 @@ "version": "1.43.6", "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.43.6.tgz", "integrity": "sha512-L1ddibQ7F3vyXR2k2fg+I8TQTPWVA6CKeDQr/h2+8CeyTp3W6EQL8xNFZRTztuP8xNOAqL3IYPqdzs31GCjDvg==", - "dev": true, "license": "BSD-3-Clause" }, + "node_modules/@omicronenergy/oscd-shell": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-shell/-/oscd-shell-0.0.9.tgz", + "integrity": "sha512-cpN2YAswTJjrzRiEs0mijievw79slTvjsOKbVkWspWGZwlLrQ1YAIJjzwZu0iP/lKbYOKuYk+loV1gdSocEXog==", + "license": "Apache-2.0", + "dependencies": { + "@lit/localize": "^0.12.2", + "@omicronenergy/oscd-api": "^0.1.3", + "@omicronenergy/oscd-background-editv1": "^0.0.6", + "@omicronenergy/oscd-editor": "^1.5.0", + "@omicronenergy/oscd-menu-open": "^0.0.6", + "@omicronenergy/oscd-menu-save": "^0.0.1", + "@omicronenergy/oscd-test-utils": "^0.0.8", + "@omicronenergy/oscd-ui": "^0.0.6", + "@open-wc/scoped-elements": "^3.0.5", + "@webcomponents/scoped-custom-element-registry": "^0.0.10", + "lit": "^3.3.0", + "tslib": "^2.6.3" + } + }, + "node_modules/@omicronenergy/oscd-shell/node_modules/@lit/localize": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lit/localize/-/localize-0.12.2.tgz", + "integrity": "sha512-Qv9kvgJKDq/JVSwXOxuWvQnnOBysHA99ti9im9a4fImCmx+fto+XXcUYQbjZHqiueEEc4V20PcRDPO+1g/6seQ==", + "license": "BSD-3-Clause", + "dependencies": { + "lit": "^3.2.0" + } + }, + "node_modules/@omicronenergy/oscd-shell/node_modules/@omicronenergy/oscd-menu-save": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-menu-save/-/oscd-menu-save-0.0.1.tgz", + "integrity": "sha512-g0Bl7NOflkbhAidqXSIpyjgiDr5aDernct14zkAIZI9P6zRgs1T2pTJCJddsfzgCvrdRVLKgO8NvgAozrGQ/Qw==", + "license": "Apache-2.0", + "dependencies": { + "@omicronenergy/oscd-api": "^0.1.1", + "@omicronenergy/oscd-shell": "^0.0.7", + "tslib": "^2.8.1" + } + }, + "node_modules/@omicronenergy/oscd-shell/node_modules/@omicronenergy/oscd-shell": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-shell/-/oscd-shell-0.0.7.tgz", + "integrity": "sha512-R+QuNLyxCMy+MeQ9Vecn/4Zlw9hwBpJLEDNGsGk2oODQOCJzfB9Dl93I8nr5VD4pEbP5pDKMO5kWOHN7A277GA==", + "license": "Apache-2.0", + "dependencies": { + "@lit/localize": "^0.12.2", + "@omicronenergy/oscd-api": "^0.1.0", + "@omicronenergy/oscd-editor": "^1.5.0", + "@omicronenergy/oscd-test-utils": "^0.0.7", + "@omicronenergy/oscd-ui": "^0.0.4", + "@open-wc/scoped-elements": "^3.0.5", + "@webcomponents/scoped-custom-element-registry": "^0.0.10", + "lit": "^3.3.0", + "tslib": "^2.6.3" + } + }, + "node_modules/@omicronenergy/oscd-shell/node_modules/@omicronenergy/oscd-shell/node_modules/@omicronenergy/oscd-test-utils": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-test-utils/-/oscd-test-utils-0.0.7.tgz", + "integrity": "sha512-wK/t1+QBJVMT9JnOkgR6xbkB0w7Cnv7OhF0id8sS9Btv+5Bmf/5sRIi1yA9EIDEH3wtXb8vd3PiYd3LhvnawGA==", + "license": "Apache-2.0", + "dependencies": { + "@omicronenergy/oscd-api": "^0.1.0", + "@open-wc/testing": "4.0.0", + "fast-check": "^3.22.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@omicronenergy/oscd-shell/node_modules/@omicronenergy/oscd-shell/node_modules/@omicronenergy/oscd-ui": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-ui/-/oscd-ui-0.0.4.tgz", + "integrity": "sha512-qaMzMn1Pq0/fzQ0pGRRFBz0JnNa1pIeSDSLM/X+avW32arLBcU1QOUCGlVNohZr9P2YDmEwovgS1JXXmBvadZA==", + "license": "Apache-2.0", + "dependencies": { + "@material/web": "2.3.0", + "@open-wc/scoped-elements": "^3.0.5", + "@webcomponents/scoped-custom-element-registry": "^0.0.10", + "lit": "^3.0.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@omicronenergy/oscd-shell/node_modules/@omicronenergy/oscd-ui": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-ui/-/oscd-ui-0.0.6.tgz", + "integrity": "sha512-KXgMeyyBzpIAs1PjaA39xWsh/TXCdNFXsPh3vTQetJhMrYiLg2tVtpzo9o9Co5xSU3+Xk/j0LG5rAoXlxSzC6Q==", + "license": "Apache-2.0", + "dependencies": { + "@lit/reactive-element": "^2.1.0", + "@material/web": "2.3.0", + "@open-wc/scoped-elements": "^3.0.5", + "@webcomponents/scoped-custom-element-registry": "^0.0.10", + "lit": "^3.0.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@omicronenergy/oscd-shell/node_modules/@open-wc/testing": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@open-wc/testing/-/testing-4.0.0.tgz", + "integrity": "sha512-KI70O0CJEpBWs3jrTju4BFCy7V/d4tFfYWkg8pMzncsDhD7TYNHLw5cy+s1FHXIgVFetnMDhPpwlKIPvtTQW7w==", + "license": "MIT", + "dependencies": { + "@esm-bundle/chai": "^4.3.4-fix.0", + "@open-wc/semantic-dom-diff": "^0.20.0", + "@open-wc/testing-helpers": "^3.0.0", + "@types/chai-dom": "^1.11.0", + "@types/sinon-chai": "^3.2.3", + "chai-a11y-axe": "^1.5.0" + } + }, + "node_modules/@omicronenergy/oscd-shell/node_modules/@open-wc/testing-helpers": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@open-wc/testing-helpers/-/testing-helpers-3.0.1.tgz", + "integrity": "sha512-hyNysSatbgT2FNxHJsS3rGKcLEo6+HwDFu1UQL6jcSQUabp/tj3PyX7UnXL3H5YGv0lJArdYLSnvjLnjn3O2fw==", + "license": "MIT", + "dependencies": { + "@open-wc/scoped-elements": "^3.0.2", + "lit": "^2.0.0 || ^3.0.0", + "lit-html": "^2.0.0 || ^3.0.0" + } + }, "node_modules/@omicronenergy/oscd-test-utils": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-test-utils/-/oscd-test-utils-0.0.8.tgz", "integrity": "sha512-OQprZ2PYUwfbPp7c/ZTHsOI7tZ1yv0p3+0HlClkpDLwFX2GZQzapKcXbTkFCuDYXPqmpyPcXazrz14tfANYIiQ==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@omicronenergy/oscd-api": "^0.1.0", @@ -5332,7 +4691,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/@open-wc/testing/-/testing-4.0.0.tgz", "integrity": "sha512-KI70O0CJEpBWs3jrTju4BFCy7V/d4tFfYWkg8pMzncsDhD7TYNHLw5cy+s1FHXIgVFetnMDhPpwlKIPvtTQW7w==", - "dev": true, "license": "MIT", "dependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", @@ -5347,7 +4705,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/@open-wc/testing-helpers/-/testing-helpers-3.0.1.tgz", "integrity": "sha512-hyNysSatbgT2FNxHJsS3rGKcLEo6+HwDFu1UQL6jcSQUabp/tj3PyX7UnXL3H5YGv0lJArdYLSnvjLnjn3O2fw==", - "dev": true, "license": "MIT", "dependencies": { "@open-wc/scoped-elements": "^3.0.2", @@ -5356,9 +4713,9 @@ } }, "node_modules/@omicronenergy/oscd-ui": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-ui/-/oscd-ui-0.0.11.tgz", - "integrity": "sha512-ov96xK+pKvjf040Fmp7vUXZu+TRhBcHjIyCNq4WvC+VoPCVopIGC68ev0AuuRuqnrxl/goPvuJUtTylcVhIOzg==", + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/@omicronenergy/oscd-ui/-/oscd-ui-0.0.12.tgz", + "integrity": "sha512-SaGhLdNysW9MYgJYLdfLcULyVJWoBY7TDPDDmuNTKachdTj7cdvucMO2QXI/q4SHP8wHMNptX+JxkVSTn4q0mw==", "license": "Apache-2.0", "dependencies": { "@omicronenergy/oscd-material-web-base": "^2.4.0", @@ -5561,7 +4918,6 @@ }, "node_modules/@open-wc/semantic-dom-diff": { "version": "0.20.0", - "dev": true, "license": "MIT", "dependencies": { "@types/chai": "^4.3.1", @@ -5570,7 +4926,6 @@ }, "node_modules/@open-wc/semantic-dom-diff/node_modules/@web/browser-logs": { "version": "0.3.3", - "dev": true, "license": "MIT", "dependencies": { "errorstacks": "^2.2.0" @@ -5581,7 +4936,6 @@ }, "node_modules/@open-wc/semantic-dom-diff/node_modules/@web/dev-server-core": { "version": "0.5.2", - "dev": true, "license": "MIT", "dependencies": { "@types/koa": "^2.11.6", @@ -5609,7 +4963,6 @@ }, "node_modules/@open-wc/semantic-dom-diff/node_modules/@web/parse5-utils": { "version": "2.0.1", - "dev": true, "license": "MIT", "dependencies": { "@types/parse5": "^6.0.1", @@ -5621,7 +4974,6 @@ }, "node_modules/@open-wc/semantic-dom-diff/node_modules/@web/test-runner-commands": { "version": "0.7.0", - "dev": true, "license": "MIT", "dependencies": { "@web/test-runner-core": "^0.11.0", @@ -5633,7 +4985,6 @@ }, "node_modules/@open-wc/semantic-dom-diff/node_modules/@web/test-runner-core": { "version": "0.11.4", - "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.11", @@ -5669,12 +5020,10 @@ }, "node_modules/@open-wc/semantic-dom-diff/node_modules/convert-source-map": { "version": "2.0.0", - "dev": true, "license": "MIT" }, "node_modules/@open-wc/semantic-dom-diff/node_modules/lru-cache": { "version": "8.0.5", - "dev": true, "license": "ISC", "engines": { "node": ">=16.14" @@ -5682,7 +5031,6 @@ }, "node_modules/@open-wc/semantic-dom-diff/node_modules/parse5": { "version": "6.0.1", - "dev": true, "license": "MIT" }, "node_modules/@open-wc/testing": { @@ -5728,88 +5076,20 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@openenergytools/filterable-lists/-/filterable-lists-1.2.0.tgz", "integrity": "sha512-YuRxGGp40UzgeuAVdt+IlIUcjlboiytG0XqRK4B4K4ZCe0w7OPQULlC/oftceL0XuOU0tWaV4pe+AjN9ZuPSeQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@open-wc/scoped-elements": "^3.0.5", - "@scopedelement/material-web": "^3.3.0", - "lit": "^3.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-linux-x64-gnu": "^4.29.1" - } - }, - "node_modules/@openenergytools/open-scd-core": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/@openenergytools/open-scd-core/-/open-scd-core-0.0.5.tgz", - "integrity": "sha512-jkZH5zQi87bhyeo4oDFTwr6hM0F1oEGT58R/Tq4ii0FJHE5SWinraoufwaClWE+U2DaBuj440tIssCZTY9cw3A==", - "dev": true, "license": "Apache-2.0", "dependencies": { - "@lit/localize": "^0.11.4", - "@material/mwc-button": "^0.27.0", - "@material/mwc-dialog": "^0.27.0", - "@material/mwc-drawer": "^0.27.0", - "@material/mwc-icon": "^0.27.0", - "@material/mwc-icon-button": "^0.27.0", - "@material/mwc-list": "^0.27.0", - "@material/mwc-tab-bar": "^0.27.0", - "@material/mwc-top-app-bar-fixed": "^0.27.0", - "@openenergytools/xml-lib": "1.2.2", - "ace-builds": "1.36.3", - "ace-custom-element": "1.6.5", - "lit": "2.4.0" - } - }, - "node_modules/@openenergytools/open-scd-core/node_modules/@lit/reactive-element": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", - "integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.0.0" - } - }, - "node_modules/@openenergytools/open-scd-core/node_modules/lit": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.4.0.tgz", - "integrity": "sha512-fdgzxEtLrZFQU/BqTtxFQCLwlZd9bdat+ltzSFjvWkZrs7eBmeX0L5MHUMb3kYIkuS8Xlfnii/iI5klirF8/Xg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit/reactive-element": "^1.4.0", - "lit-element": "^3.2.0", - "lit-html": "^2.4.0" - } - }, - "node_modules/@openenergytools/open-scd-core/node_modules/lit-element": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz", - "integrity": "sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.1.0", - "@lit/reactive-element": "^1.3.0", - "lit-html": "^2.8.0" - } - }, - "node_modules/@openenergytools/open-scd-core/node_modules/lit-html": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", - "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@types/trusted-types": "^2.0.2" + "@open-wc/scoped-elements": "^3.0.5", + "@scopedelement/material-web": "^3.3.0", + "lit": "^3.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-linux-x64-gnu": "^4.29.1" } }, "node_modules/@openenergytools/scl-checkbox": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@openenergytools/scl-checkbox/-/scl-checkbox-2.0.0.tgz", "integrity": "sha512-dpehMi+aoVRJJv5f3iSUO3n6MNdfeRdFljtxVLj8Sk6s3cp8udiweUkziSN7DUMwDwYiSqx022eQQVZf2XiYWw==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@open-wc/scoped-elements": "^3.0.5", @@ -5824,14 +5104,12 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/@openenergytools/scl-lib/-/scl-lib-1.8.0.tgz", "integrity": "sha512-l8D7boLoUpP+C/J2ue7aY/12euRtK2k4EYKsyysoFto9sySCnlX/KWom5ruP7MtH8n0BEMSUuFg1gKfC+lD80Q==", - "dev": true, "license": "Apache-2.0" }, "node_modules/@openenergytools/scl-select": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@openenergytools/scl-select/-/scl-select-2.0.1.tgz", "integrity": "sha512-SFlSnxR7FetgkSagKn7gULpTof+BwsN2smDhLbZUSgBDUkuBO9OCov1RNFE85OjXR8KzPu06HOJcpBHOnqe7pw==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@open-wc/scoped-elements": "^3.0.5", @@ -5846,7 +5124,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/@openenergytools/scl-text-field/-/scl-text-field-2.0.2.tgz", "integrity": "sha512-VqlwWkogqfcUckOj1DMMzTgPWGn2HZWPSVEAwNsq1sUo5q0Bt79bKNGVr7aYxINRxjMC/avAkxXH5Y62Kh+Lww==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@open-wc/scoped-elements": "^3.0.5", @@ -5857,61 +5134,6 @@ "@rollup/rollup-linux-x64-gnu": "^4.29.1" } }, - "node_modules/@openenergytools/xml-lib": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@openenergytools/xml-lib/-/xml-lib-1.2.2.tgz", - "integrity": "sha512-ZaxaEM8/xDojPQVbz1pJSDjEQO+V4m29DT1plAmYW/HDCTnnjKjF1bZvwTlfSaqxlLsswPkUdngOxX0iNis04Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "fast-check": "^3.22.0", - "lit": "^2.2.7" - } - }, - "node_modules/@openenergytools/xml-lib/node_modules/@lit/reactive-element": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", - "integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.0.0" - } - }, - "node_modules/@openenergytools/xml-lib/node_modules/lit": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", - "integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit/reactive-element": "^1.6.0", - "lit-element": "^3.3.0", - "lit-html": "^2.8.0" - } - }, - "node_modules/@openenergytools/xml-lib/node_modules/lit-element": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz", - "integrity": "sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.1.0", - "@lit/reactive-element": "^1.3.0", - "lit-html": "^2.8.0" - } - }, - "node_modules/@openenergytools/xml-lib/node_modules/lit-html": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", - "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@types/trusted-types": "^2.0.2" - } - }, "node_modules/@openscd/oscd-api": { "version": "0.1.5", "license": "Apache-2.0", @@ -5923,7 +5145,6 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/@openscd/oscd-editor/-/oscd-editor-1.8.0.tgz", "integrity": "sha512-tebDceFbMDPiSoRAEA5X3qBVM+RJo+t6bKL0EBNeuHZ7LZPuprQWnligmeXZ3AfULbC24azxffjWxqSyulgMAw==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@openscd/oscd-api": "^0.1.6" @@ -5933,7 +5154,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/@openscd/oscd-api/-/oscd-api-0.1.6.tgz", "integrity": "sha512-AqoHwQPsyiKxR8OVV3nOGgMMeiXgt2WAODZVcW0zLy7pLcZAROVzbvindiX3s09FuEOFY7UMyozmDmk1UXZJHg==", - "dev": true, "license": "Apache-2.0", "dependencies": { "tslib": "^2.8.1" @@ -6366,7 +5586,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6475,7 +5694,6 @@ "version": "3.12.0", "resolved": "https://registry.npmjs.org/@scopedelement/material-web/-/material-web-3.12.0.tgz", "integrity": "sha512-XlmUAbioacwGl3Rb56rOw9DT97wrWrKleSP2Zlte96mC8pyZUYqgNo5QIhosRDHvrer/cWpA0yEPT5/jKXkeZA==", - "dev": true, "license": "Apache-2.0", "workspaces": [ "catalog" @@ -6548,7 +5766,6 @@ }, "node_modules/@types/accepts": { "version": "1.3.5", - "dev": true, "license": "MIT", "dependencies": { "@types/node": "*" @@ -6556,12 +5773,10 @@ }, "node_modules/@types/babel__code-frame": { "version": "7.0.3", - "dev": true, "license": "MIT" }, "node_modules/@types/body-parser": { "version": "1.19.2", - "dev": true, "license": "MIT", "dependencies": { "@types/connect": "*", @@ -6570,12 +5785,10 @@ }, "node_modules/@types/chai": { "version": "4.3.5", - "dev": true, "license": "MIT" }, "node_modules/@types/chai-dom": { "version": "1.11.0", - "dev": true, "license": "MIT", "dependencies": { "@types/chai": "*" @@ -6583,7 +5796,6 @@ }, "node_modules/@types/co-body": { "version": "6.1.0", - "dev": true, "license": "MIT", "dependencies": { "@types/node": "*", @@ -6597,7 +5809,6 @@ }, "node_modules/@types/connect": { "version": "3.4.35", - "dev": true, "license": "MIT", "dependencies": { "@types/node": "*" @@ -6605,17 +5816,14 @@ }, "node_modules/@types/content-disposition": { "version": "0.5.5", - "dev": true, "license": "MIT" }, "node_modules/@types/convert-source-map": { "version": "2.0.0", - "dev": true, "license": "MIT" }, "node_modules/@types/cookies": { "version": "0.7.7", - "dev": true, "license": "MIT", "dependencies": { "@types/connect": "*", @@ -6626,7 +5834,6 @@ }, "node_modules/@types/debounce": { "version": "1.2.1", - "dev": true, "license": "MIT" }, "node_modules/@types/estree": { @@ -6636,7 +5843,6 @@ }, "node_modules/@types/express": { "version": "4.17.17", - "dev": true, "license": "MIT", "dependencies": { "@types/body-parser": "*", @@ -6647,7 +5853,6 @@ }, "node_modules/@types/express-serve-static-core": { "version": "4.17.35", - "dev": true, "license": "MIT", "dependencies": { "@types/node": "*", @@ -6658,22 +5863,18 @@ }, "node_modules/@types/http-assert": { "version": "1.5.3", - "dev": true, "license": "MIT" }, "node_modules/@types/http-errors": { "version": "2.0.1", - "dev": true, "license": "MIT" }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", - "dev": true, "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.0", - "dev": true, "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "*" @@ -6681,7 +5882,6 @@ }, "node_modules/@types/istanbul-reports": { "version": "3.0.1", - "dev": true, "license": "MIT", "dependencies": { "@types/istanbul-lib-report": "*" @@ -6694,12 +5894,10 @@ }, "node_modules/@types/keygrip": { "version": "1.0.2", - "dev": true, "license": "MIT" }, "node_modules/@types/koa": { "version": "2.13.8", - "dev": true, "license": "MIT", "dependencies": { "@types/accepts": "*", @@ -6714,7 +5912,6 @@ }, "node_modules/@types/koa-compose": { "version": "3.2.5", - "dev": true, "license": "MIT", "dependencies": { "@types/koa": "*" @@ -6722,7 +5919,6 @@ }, "node_modules/@types/mime": { "version": "1.3.2", - "dev": true, "license": "MIT" }, "node_modules/@types/mkdirp": { @@ -6742,7 +5938,6 @@ }, "node_modules/@types/node": { "version": "20.4.6", - "dev": true, "license": "MIT" }, "node_modules/@types/parse-json": { @@ -6752,7 +5947,6 @@ }, "node_modules/@types/parse5": { "version": "6.0.3", - "dev": true, "license": "MIT" }, "node_modules/@types/pixelmatch": { @@ -6777,12 +5971,10 @@ }, "node_modules/@types/qs": { "version": "6.9.7", - "dev": true, "license": "MIT" }, "node_modules/@types/range-parser": { "version": "1.2.4", - "dev": true, "license": "MIT" }, "node_modules/@types/resolve": { @@ -6795,7 +5987,6 @@ }, "node_modules/@types/send": { "version": "0.17.1", - "dev": true, "license": "MIT", "dependencies": { "@types/mime": "^1", @@ -6804,7 +5995,6 @@ }, "node_modules/@types/serve-static": { "version": "1.15.2", - "dev": true, "license": "MIT", "dependencies": { "@types/http-errors": "*", @@ -6814,7 +6004,6 @@ }, "node_modules/@types/sinon": { "version": "10.0.16", - "dev": true, "license": "MIT", "dependencies": { "@types/sinonjs__fake-timers": "*" @@ -6822,7 +6011,6 @@ }, "node_modules/@types/sinon-chai": { "version": "3.2.9", - "dev": true, "license": "MIT", "dependencies": { "@types/chai": "*", @@ -6831,7 +6019,6 @@ }, "node_modules/@types/sinonjs__fake-timers": { "version": "8.1.2", - "dev": true, "license": "MIT" }, "node_modules/@types/trusted-types": { @@ -6840,7 +6027,6 @@ }, "node_modules/@types/ws": { "version": "7.4.7", - "dev": true, "license": "MIT", "dependencies": { "@types/node": "*" @@ -8811,7 +7997,6 @@ }, "node_modules/accepts": { "version": "1.3.8", - "dev": true, "license": "MIT", "dependencies": { "mime-types": "~2.1.34", @@ -8821,18 +8006,10 @@ "node": ">= 0.6" } }, - "node_modules/ace-builds": { - "version": "1.36.3", - "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.36.3.tgz", - "integrity": "sha512-YcdwV2IIaJSfjkWAR1NEYN5IxBiXefTgwXsJ//UlaFrjXDX5hQpvPFvEePHz2ZBUfvO54RjHeRUQGX8MS5HaMQ==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/ace-custom-element": { "version": "1.6.5", "resolved": "https://registry.npmjs.org/ace-custom-element/-/ace-custom-element-1.6.5.tgz", "integrity": "sha512-xU/9r94WKwjwEOjdfs6oVk2Dqc6X63eF2ECvKIMm/JCK1PDbXXdBYi5sQx110tR2sY4f96iXxyvscfT9qeI1RQ==", - "dev": true, "license": "Apache-2.0" }, "node_modules/acorn": { @@ -8908,7 +8085,6 @@ }, "node_modules/ansi-escapes": { "version": "4.3.2", - "dev": true, "license": "MIT", "dependencies": { "type-fest": "^0.21.3" @@ -8922,7 +8098,6 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -8930,7 +8105,6 @@ }, "node_modules/ansi-styles": { "version": "3.2.1", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^1.9.0" @@ -8941,7 +8115,6 @@ }, "node_modules/anymatch": { "version": "3.1.3", - "dev": true, "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", @@ -9006,7 +8179,6 @@ }, "node_modules/array-union": { "version": "2.1.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -9101,7 +8273,6 @@ }, "node_modules/astral-regex": { "version": "2.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -9133,7 +8304,6 @@ }, "node_modules/axe-core": { "version": "4.7.2", - "dev": true, "license": "MPL-2.0", "engines": { "node": ">=4" @@ -9238,7 +8408,6 @@ }, "node_modules/binary-extensions": { "version": "2.2.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -9269,7 +8438,6 @@ }, "node_modules/braces": { "version": "3.0.2", - "dev": true, "license": "MIT", "dependencies": { "fill-range": "^7.0.1" @@ -9358,7 +8526,6 @@ }, "node_modules/bytes": { "version": "3.1.2", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.8" @@ -9366,7 +8533,6 @@ }, "node_modules/cache-content-type": { "version": "1.0.1", - "dev": true, "license": "MIT", "dependencies": { "mime-types": "^2.1.18", @@ -9378,7 +8544,6 @@ }, "node_modules/call-bind": { "version": "1.0.2", - "dev": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.1", @@ -9437,7 +8602,6 @@ }, "node_modules/chai-a11y-axe": { "version": "1.5.0", - "dev": true, "license": "MIT", "dependencies": { "axe-core": "^4.3.3" @@ -9445,7 +8609,6 @@ }, "node_modules/chalk": { "version": "2.4.2", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", @@ -9536,7 +8699,6 @@ }, "node_modules/chokidar": { "version": "3.5.3", - "dev": true, "funding": [ { "type": "individual", @@ -9627,7 +8789,6 @@ }, "node_modules/cli-cursor": { "version": "3.1.0", - "dev": true, "license": "MIT", "dependencies": { "restore-cursor": "^3.1.0" @@ -9721,7 +8882,6 @@ }, "node_modules/clone": { "version": "2.1.2", - "dev": true, "license": "MIT", "engines": { "node": ">=0.8" @@ -9729,7 +8889,6 @@ }, "node_modules/co": { "version": "4.6.0", - "dev": true, "license": "MIT", "engines": { "iojs": ">= 1.0.0", @@ -9738,7 +8897,6 @@ }, "node_modules/co-body": { "version": "6.1.0", - "dev": true, "license": "MIT", "dependencies": { "inflation": "^2.0.0", @@ -9749,7 +8907,6 @@ }, "node_modules/color-convert": { "version": "1.9.3", - "dev": true, "license": "MIT", "dependencies": { "color-name": "1.1.3" @@ -9757,7 +8914,6 @@ }, "node_modules/color-name": { "version": "1.1.3", - "dev": true, "license": "MIT" }, "node_modules/colorette": { @@ -9890,7 +9046,6 @@ }, "node_modules/content-disposition": { "version": "0.5.4", - "dev": true, "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" @@ -9901,7 +9056,6 @@ }, "node_modules/content-type": { "version": "1.0.5", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -9914,7 +9068,6 @@ }, "node_modules/cookies": { "version": "0.8.0", - "dev": true, "license": "MIT", "dependencies": { "depd": "~2.0.0", @@ -10012,12 +9165,10 @@ }, "node_modules/debounce": { "version": "1.2.1", - "dev": true, "license": "MIT" }, "node_modules/debug": { "version": "4.3.4", - "dev": true, "license": "MIT", "dependencies": { "ms": "2.1.2" @@ -10046,7 +9197,6 @@ }, "node_modules/deep-equal": { "version": "1.0.1", - "dev": true, "license": "MIT" }, "node_modules/deep-extend": { @@ -10119,7 +9269,6 @@ }, "node_modules/define-lazy-prop": { "version": "2.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -10142,12 +9291,10 @@ }, "node_modules/delegates": { "version": "1.0.0", - "dev": true, "license": "MIT" }, "node_modules/depd": { "version": "2.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.8" @@ -10155,7 +9302,6 @@ }, "node_modules/dependency-graph": { "version": "0.11.0", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6.0" @@ -10171,7 +9317,6 @@ }, "node_modules/destroy": { "version": "1.2.0", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.8", @@ -10193,7 +9338,6 @@ }, "node_modules/dir-glob": { "version": "3.0.1", - "dev": true, "license": "MIT", "dependencies": { "path-type": "^4.0.0" @@ -10311,7 +9455,6 @@ }, "node_modules/ee-first": { "version": "1.1.1", - "dev": true, "license": "MIT" }, "node_modules/ejs": { @@ -10345,7 +9488,6 @@ }, "node_modules/encodeurl": { "version": "1.0.2", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.8" @@ -10392,7 +9534,6 @@ }, "node_modules/errorstacks": { "version": "2.4.1", - "dev": true, "license": "MIT" }, "node_modules/es-abstract": { @@ -10449,7 +9590,6 @@ }, "node_modules/es-module-lexer": { "version": "1.3.0", - "dev": true, "license": "MIT" }, "node_modules/es-module-shims": { @@ -10542,12 +9682,10 @@ }, "node_modules/escape-html": { "version": "1.0.3", - "dev": true, "license": "MIT" }, "node_modules/escape-string-regexp": { "version": "1.0.5", - "dev": true, "license": "MIT", "engines": { "node": ">=0.8.0" @@ -11128,7 +10266,6 @@ }, "node_modules/etag": { "version": "1.8.1", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -11205,7 +10342,6 @@ }, "node_modules/fast-check": { "version": "3.23.2", - "dev": true, "funding": [ { "type": "individual", @@ -11231,7 +10367,6 @@ }, "node_modules/fast-glob": { "version": "3.3.1", - "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -11256,7 +10391,6 @@ }, "node_modules/fastq": { "version": "1.15.0", - "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -11326,7 +10460,6 @@ }, "node_modules/fill-range": { "version": "7.0.1", - "dev": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -11415,7 +10548,6 @@ }, "node_modules/fresh": { "version": "0.5.2", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -11448,7 +10580,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -11461,7 +10592,6 @@ }, "node_modules/function-bind": { "version": "1.1.1", - "dev": true, "license": "MIT" }, "node_modules/function.prototype.name": { @@ -11507,7 +10637,6 @@ }, "node_modules/get-intrinsic": { "version": "1.2.1", - "dev": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.1", @@ -11526,7 +10655,6 @@ }, "node_modules/get-stream": { "version": "6.0.1", - "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -11626,7 +10754,6 @@ }, "node_modules/glob-parent": { "version": "5.1.2", - "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -11679,7 +10806,6 @@ }, "node_modules/globby": { "version": "11.1.0", - "dev": true, "license": "MIT", "dependencies": { "array-union": "^2.1.0", @@ -11721,7 +10847,6 @@ }, "node_modules/has": { "version": "1.0.3", - "dev": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.1" @@ -11740,7 +10865,6 @@ }, "node_modules/has-flag": { "version": "3.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -11759,7 +10883,6 @@ }, "node_modules/has-proto": { "version": "1.0.1", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -11770,7 +10893,6 @@ }, "node_modules/has-symbols": { "version": "1.0.3", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -11781,7 +10903,6 @@ }, "node_modules/has-tostringtag": { "version": "1.0.0", - "dev": true, "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" @@ -11808,7 +10929,6 @@ }, "node_modules/html-escaper": { "version": "2.0.2", - "dev": true, "license": "MIT" }, "node_modules/html-minifier-terser": { @@ -11878,7 +10998,6 @@ }, "node_modules/http-assert": { "version": "1.5.0", - "dev": true, "license": "MIT", "dependencies": { "deep-equal": "~1.0.1", @@ -11890,7 +11009,6 @@ }, "node_modules/http-errors": { "version": "1.8.1", - "dev": true, "license": "MIT", "dependencies": { "depd": "~1.1.2", @@ -11905,7 +11023,6 @@ }, "node_modules/http-errors/node_modules/depd": { "version": "1.1.2", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -12094,7 +11211,6 @@ }, "node_modules/iconv-lite": { "version": "0.4.24", - "dev": true, "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" @@ -12129,7 +11245,6 @@ }, "node_modules/ignore": { "version": "5.2.4", - "dev": true, "license": "MIT", "engines": { "node": ">= 4" @@ -12168,7 +11283,6 @@ }, "node_modules/inflation": { "version": "2.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.8.0" @@ -12185,7 +11299,6 @@ }, "node_modules/inherits": { "version": "2.0.4", - "dev": true, "license": "ISC" }, "node_modules/internal-ip": { @@ -12227,7 +11340,6 @@ }, "node_modules/ip": { "version": "1.1.8", - "dev": true, "license": "MIT" }, "node_modules/ip-regex": { @@ -12281,7 +11393,6 @@ }, "node_modules/is-binary-path": { "version": "2.1.0", - "dev": true, "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" @@ -12357,7 +11468,6 @@ }, "node_modules/is-docker": { "version": "2.2.1", - "dev": true, "license": "MIT", "bin": { "is-docker": "cli.js" @@ -12371,7 +11481,6 @@ }, "node_modules/is-extglob": { "version": "2.1.1", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -12379,7 +11488,6 @@ }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -12387,7 +11495,6 @@ }, "node_modules/is-generator-function": { "version": "1.0.10", - "dev": true, "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" @@ -12401,7 +11508,6 @@ }, "node_modules/is-glob": { "version": "4.0.3", - "dev": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -12441,7 +11547,6 @@ }, "node_modules/is-number": { "version": "7.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=0.12.0" @@ -12520,7 +11625,6 @@ }, "node_modules/is-stream": { "version": "2.0.1", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -12603,7 +11707,6 @@ }, "node_modules/is-wsl": { "version": "2.2.0", - "dev": true, "license": "MIT", "dependencies": { "is-docker": "^2.0.0" @@ -12619,7 +11722,6 @@ }, "node_modules/isbinaryfile": { "version": "5.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">= 14.0.0" @@ -12635,7 +11737,6 @@ }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", - "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=8" @@ -12643,7 +11744,6 @@ }, "node_modules/istanbul-lib-report": { "version": "3.0.1", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", @@ -12656,7 +11756,6 @@ }, "node_modules/istanbul-lib-report/node_modules/has-flag": { "version": "4.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -12664,7 +11763,6 @@ }, "node_modules/istanbul-lib-report/node_modules/lru-cache": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -12675,7 +11773,6 @@ }, "node_modules/istanbul-lib-report/node_modules/make-dir": { "version": "4.0.0", - "dev": true, "license": "MIT", "dependencies": { "semver": "^7.5.3" @@ -12689,7 +11786,6 @@ }, "node_modules/istanbul-lib-report/node_modules/semver": { "version": "7.5.4", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -12703,7 +11799,6 @@ }, "node_modules/istanbul-lib-report/node_modules/supports-color": { "version": "7.2.0", - "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -12714,12 +11809,10 @@ }, "node_modules/istanbul-lib-report/node_modules/yallist": { "version": "4.0.0", - "dev": true, "license": "ISC" }, "node_modules/istanbul-reports": { "version": "3.1.6", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", @@ -12869,7 +11962,6 @@ }, "node_modules/js-tokens": { "version": "4.0.0", - "dev": true, "license": "MIT" }, "node_modules/js-yaml": { @@ -12952,7 +12044,6 @@ }, "node_modules/keygrip": { "version": "1.1.0", - "dev": true, "license": "MIT", "dependencies": { "tsscmp": "1.0.6" @@ -12963,7 +12054,6 @@ }, "node_modules/koa": { "version": "2.14.2", - "dev": true, "license": "MIT", "dependencies": { "accepts": "^1.3.5", @@ -12996,12 +12086,10 @@ }, "node_modules/koa-compose": { "version": "4.1.0", - "dev": true, "license": "MIT" }, "node_modules/koa-convert": { "version": "2.0.0", - "dev": true, "license": "MIT", "dependencies": { "co": "^4.6.0", @@ -13013,7 +12101,6 @@ }, "node_modules/koa-etag": { "version": "4.0.0", - "dev": true, "license": "MIT", "dependencies": { "etag": "^1.8.1" @@ -13021,7 +12108,6 @@ }, "node_modules/koa-send": { "version": "5.0.1", - "dev": true, "license": "MIT", "dependencies": { "debug": "^4.1.1", @@ -13034,7 +12120,6 @@ }, "node_modules/koa-static": { "version": "5.0.0", - "dev": true, "license": "MIT", "dependencies": { "debug": "^3.1.0", @@ -13046,7 +12131,6 @@ }, "node_modules/koa-static/node_modules/debug": { "version": "3.2.7", - "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.1" @@ -13407,7 +12491,6 @@ }, "node_modules/log-update": { "version": "4.0.0", - "dev": true, "license": "MIT", "dependencies": { "ansi-escapes": "^4.3.0", @@ -13424,7 +12507,6 @@ }, "node_modules/log-update/node_modules/ansi-styles": { "version": "4.3.0", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -13438,7 +12520,6 @@ }, "node_modules/log-update/node_modules/color-convert": { "version": "2.0.1", - "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -13449,12 +12530,10 @@ }, "node_modules/log-update/node_modules/color-name": { "version": "1.1.4", - "dev": true, "license": "MIT" }, "node_modules/log-update/node_modules/slice-ansi": { "version": "4.0.0", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -13470,7 +12549,6 @@ }, "node_modules/log-update/node_modules/wrap-ansi": { "version": "6.2.0", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -13529,7 +12607,6 @@ }, "node_modules/media-typer": { "version": "0.3.0", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -13542,7 +12619,6 @@ }, "node_modules/merge2": { "version": "1.4.1", - "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -13550,7 +12626,6 @@ }, "node_modules/micromatch": { "version": "4.0.5", - "dev": true, "license": "MIT", "dependencies": { "braces": "^3.0.2", @@ -13562,7 +12637,6 @@ }, "node_modules/mime-db": { "version": "1.52.0", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -13570,7 +12644,6 @@ }, "node_modules/mime-types": { "version": "2.1.35", - "dev": true, "license": "MIT", "dependencies": { "mime-db": "1.52.0" @@ -13581,7 +12654,6 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -13611,7 +12683,6 @@ }, "node_modules/mkdirp": { "version": "1.0.4", - "dev": true, "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" @@ -13627,17 +12698,14 @@ }, "node_modules/ms": { "version": "2.1.2", - "dev": true, "license": "MIT" }, "node_modules/nanocolors": { "version": "0.2.13", - "dev": true, "license": "MIT" }, "node_modules/nanoid": { "version": "3.3.6", - "dev": true, "funding": [ { "type": "github", @@ -13659,7 +12727,6 @@ }, "node_modules/negotiator": { "version": "0.6.3", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -13738,7 +12805,6 @@ }, "node_modules/normalize-path": { "version": "3.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -13765,7 +12831,6 @@ }, "node_modules/object-inspect": { "version": "1.12.3", - "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -13854,7 +12919,6 @@ }, "node_modules/on-finished": { "version": "2.4.1", - "dev": true, "license": "MIT", "dependencies": { "ee-first": "1.1.1" @@ -13873,7 +12937,6 @@ }, "node_modules/onetime": { "version": "5.1.2", - "dev": true, "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" @@ -13886,12 +12949,10 @@ } }, "node_modules/only": { - "version": "0.0.2", - "dev": true + "version": "0.0.2" }, "node_modules/open": { "version": "8.4.2", - "dev": true, "license": "MIT", "dependencies": { "define-lazy-prop": "^2.0.0", @@ -14075,7 +13136,6 @@ }, "node_modules/parseurl": { "version": "1.3.3", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.8" @@ -14100,7 +13160,6 @@ }, "node_modules/path-is-absolute": { "version": "1.0.1", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -14126,7 +13185,6 @@ }, "node_modules/path-type": { "version": "4.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -14144,7 +13202,6 @@ }, "node_modules/picomatch": { "version": "2.3.1", - "dev": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -14428,7 +13485,6 @@ }, "node_modules/pure-rand": { "version": "6.1.0", - "dev": true, "funding": [ { "type": "individual", @@ -14443,7 +13499,6 @@ }, "node_modules/qs": { "version": "6.11.2", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" @@ -14457,7 +13512,6 @@ }, "node_modules/queue-microtask": { "version": "1.2.3", - "dev": true, "funding": [ { "type": "github", @@ -14484,7 +13538,6 @@ }, "node_modules/raw-body": { "version": "2.5.2", - "dev": true, "license": "MIT", "dependencies": { "bytes": "3.1.2", @@ -14498,7 +13551,6 @@ }, "node_modules/raw-body/node_modules/http-errors": { "version": "2.0.0", - "dev": true, "license": "MIT", "dependencies": { "depd": "2.0.0", @@ -14513,7 +13565,6 @@ }, "node_modules/raw-body/node_modules/statuses": { "version": "2.0.1", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.8" @@ -14559,7 +13610,6 @@ }, "node_modules/readdirp": { "version": "3.6.0", - "dev": true, "license": "MIT", "dependencies": { "picomatch": "^2.2.1" @@ -14723,7 +13773,6 @@ }, "node_modules/resolve-path": { "version": "1.4.0", - "dev": true, "license": "MIT", "dependencies": { "http-errors": "~1.6.2", @@ -14735,7 +13784,6 @@ }, "node_modules/resolve-path/node_modules/depd": { "version": "1.1.2", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -14743,7 +13791,6 @@ }, "node_modules/resolve-path/node_modules/http-errors": { "version": "1.6.3", - "dev": true, "license": "MIT", "dependencies": { "depd": "~1.1.2", @@ -14757,17 +13804,14 @@ }, "node_modules/resolve-path/node_modules/inherits": { "version": "2.0.3", - "dev": true, "license": "ISC" }, "node_modules/resolve-path/node_modules/setprototypeof": { "version": "1.1.0", - "dev": true, "license": "ISC" }, "node_modules/restore-cursor": { "version": "3.1.0", - "dev": true, "license": "MIT", "dependencies": { "onetime": "^5.1.0", @@ -14779,7 +13823,6 @@ }, "node_modules/reusify": { "version": "1.0.4", - "dev": true, "license": "MIT", "engines": { "iojs": ">=1.0.0", @@ -14883,7 +13926,6 @@ }, "node_modules/run-parallel": { "version": "1.2.0", - "dev": true, "funding": [ { "type": "github", @@ -14938,7 +13980,6 @@ }, "node_modules/safe-buffer": { "version": "5.2.1", - "dev": true, "funding": [ { "type": "github", @@ -14970,7 +14011,6 @@ }, "node_modules/safer-buffer": { "version": "2.1.2", - "dev": true, "license": "MIT" }, "node_modules/semver": { @@ -15012,7 +14052,6 @@ }, "node_modules/setprototypeof": { "version": "1.2.0", - "dev": true, "license": "ISC" }, "node_modules/shady-css-scoped-element": { @@ -15041,7 +14080,6 @@ }, "node_modules/side-channel": { "version": "1.0.4", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.0", @@ -15054,7 +14092,6 @@ }, "node_modules/signal-exit": { "version": "3.0.7", - "dev": true, "license": "ISC" }, "node_modules/sinon": { @@ -15110,7 +14147,6 @@ }, "node_modules/slash": { "version": "3.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -15161,7 +14197,6 @@ }, "node_modules/source-map": { "version": "0.7.4", - "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">= 8" @@ -15224,7 +14259,6 @@ }, "node_modules/statuses": { "version": "1.5.0", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -15256,7 +14290,6 @@ }, "node_modules/string-width": { "version": "4.2.3", - "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -15269,7 +14302,6 @@ }, "node_modules/string-width/node_modules/emoji-regex": { "version": "8.0.0", - "dev": true, "license": "MIT" }, "node_modules/string.prototype.matchall": { @@ -15347,7 +14379,6 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -15406,7 +14437,6 @@ }, "node_modules/supports-color": { "version": "5.5.0", - "dev": true, "license": "MIT", "dependencies": { "has-flag": "^3.0.0" @@ -15621,7 +14651,6 @@ }, "node_modules/to-regex-range": { "version": "5.0.1", - "dev": true, "license": "MIT", "dependencies": { "is-number": "^7.0.0" @@ -15632,7 +14661,6 @@ }, "node_modules/toidentifier": { "version": "1.0.1", - "dev": true, "license": "MIT", "engines": { "node": ">=0.6" @@ -15706,7 +14734,6 @@ }, "node_modules/tsscmp": { "version": "1.0.6", - "dev": true, "license": "MIT", "engines": { "node": ">=0.6.x" @@ -15735,7 +14762,6 @@ }, "node_modules/type-fest": { "version": "0.21.3", - "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" @@ -15746,7 +14772,6 @@ }, "node_modules/type-is": { "version": "1.6.18", - "dev": true, "license": "MIT", "dependencies": { "media-typer": "0.3.0", @@ -15946,7 +14971,6 @@ }, "node_modules/unpipe": { "version": "1.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.8" @@ -16039,7 +15063,6 @@ }, "node_modules/vary": { "version": "1.1.2", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.8" @@ -16485,7 +15508,6 @@ }, "node_modules/ws": { "version": "7.5.10", - "dev": true, "license": "MIT", "engines": { "node": ">=8.3.0" @@ -16653,7 +15675,6 @@ }, "node_modules/ylru": { "version": "1.3.2", - "dev": true, "license": "MIT", "engines": { "node": ">= 4.0.0" diff --git a/package.json b/package.json index fc40c1d..3ee61e1 100644 --- a/package.json +++ b/package.json @@ -43,10 +43,18 @@ "dependencies": { "@compas-oscd/forms": "^0.0.1", "@compas-oscd/xml": "^0.0.1", - "@omicronenergy/oscd-ui": "^0.0.11", + "@omicronenergy/oscd-background-editv1": "^0.0.6", + "@omicronenergy/oscd-background-wizard-events": "^0.0.1", + "@omicronenergy/oscd-editor-source": "^0.0.3", + "@omicronenergy/oscd-menu-open": "^0.0.6", + "@omicronenergy/oscd-menu-save": "^0.0.2", + "@omicronenergy/oscd-scl-dialogs": "^0.0.12", + "@omicronenergy/oscd-shell": "^0.0.9", + "@omicronenergy/oscd-ui": "^0.0.12", "@open-wc/scoped-elements": "^3.0.6", "@openscd/oscd-api": "^0.1.5", "@openscd/scl-lib": "^2.0.0", + "@webcomponents/scoped-custom-element-registry": "^0.0.10", "lit": "^3.0.0" }, "devDependencies": { @@ -56,7 +64,6 @@ "@open-wc/building-rollup": "^2.0.2", "@open-wc/eslint-config": "^8.0.2", "@open-wc/testing": "^3.1.6", - "@openenergytools/open-scd-core": "^0.0.5", "@rollup/plugin-babel": "^5.3.0", "@rollup/plugin-node-resolve": "^13.0.6", "@rollup/plugin-typescript": "^11.1.2", From bd9bb0c0c13d243570de1a811dc619a5a9cafea9 Mon Sep 17 00:00:00 2001 From: Nora Blomaard Date: Wed, 22 Apr 2026 13:26:45 +0200 Subject: [PATCH 2/4] refactor: remove preprocess edits and related event listeners --- bay-template-editor.spec.ts | 112 ++---------------- bay-template-editor.ts | 67 ++--------- components/functions-layer/functions-layer.ts | 4 + util.spec.ts | 22 ---- util.ts | 22 ---- 5 files changed, 19 insertions(+), 208 deletions(-) diff --git a/bay-template-editor.spec.ts b/bay-template-editor.spec.ts index 3d5ac5d..ca988d7 100644 --- a/bay-template-editor.spec.ts +++ b/bay-template-editor.spec.ts @@ -665,99 +665,6 @@ describe('Bay Template Editor Plugin', () => { }); }); - describe('preprocessEdits method', () => { - it('assigns unique names to elements without names when inserted', async () => { - const doc = new DOMParser().parseFromString( - docWithBay, - 'application/xml' - ); - element.doc = doc; - await element.updateComplete; - - const bay = doc.querySelector('Bay')!; - const newEquipment = doc.createElementNS( - doc.documentElement.namespaceURI, - 'ConductingEquipment' - ); - newEquipment.setAttribute('type', 'CBR'); - - const editEvent = new CustomEvent('oscd-edit-v2', { - detail: { - node: newEquipment, - parent: bay, - reference: null, - }, - bubbles: true, - composed: true, - }); - - element.dispatchEvent(editEvent); - - expect(newEquipment.getAttribute('name')).to.equal('CBR1'); - }); - - it('preserves existing names on elements', async () => { - const doc = new DOMParser().parseFromString( - docWithBay, - 'application/xml' - ); - element.doc = doc; - await element.updateComplete; - - const bay = doc.querySelector('Bay')!; - const newEquipment = doc.createElementNS( - doc.documentElement.namespaceURI, - 'ConductingEquipment' - ); - newEquipment.setAttribute('type', 'CBR'); - newEquipment.setAttribute('name', 'MyCustomName'); - - const editEvent = new CustomEvent('oscd-edit-v2', { - detail: { - node: newEquipment, - parent: bay, - }, - }); - - element.dispatchEvent(editEvent); - - expect(newEquipment.getAttribute('name')).to.equal('MyCustomName'); - }); - - it('handles SLD attributes in edits', async () => { - const doc = new DOMParser().parseFromString( - docWithBay, - 'application/xml' - ); - element.doc = doc; - await element.updateComplete; - - const testElement = doc.createElementNS( - doc.documentElement.namespaceURI, - 'Bay' - ); - - const editEvent = new CustomEvent('oscd-edit-v2', { - detail: { - element: testElement, - attributesNS: { - 'https://openscd.org/SCL/SSD/SLD/v0': { - w: '10', - h: '20', - }, - }, - }, - }); - - element.dispatchEvent(editEvent); - - const sldAttrs = testElement.querySelector( - 'Private[type="OpenSCD-SLD-Layout"] > SLDAttributes' - ); - expect(sldAttrs).to.exist; - }); - }); - describe('function placement', () => { it('starts placing function when handleStartPlaceFunction is called', async () => { const doc = new DOMParser().parseFromString( @@ -801,31 +708,28 @@ describe('Bay Template Editor Plugin', () => { expect(element.functionsInAction).to.be.false; }); - it('resets placing function after edit event', async () => { + it('resets placing function when functions-layer calls onDonePlaceFunction', async () => { const doc = new DOMParser().parseFromString( docWithBay, 'application/xml' ); element.doc = doc; + element.showFunctions = true; await element.updateComplete; const functionElement = doc.createElement('Function'); element.placingFunction = functionElement; + element.functionsInAction = true; await element.updateComplete; - const editEvent = new CustomEvent('oscd-edit-v2', { - bubbles: true, - composed: true, - detail: { - parent: doc.querySelector('Bay'), - node: functionElement, - }, - }); - - element.dispatchEvent(editEvent); + const functionsLayer = element.shadowRoot?.querySelector( + 'functions-layer' + ) as any; + functionsLayer.onDonePlaceFunction(); await element.updateComplete; expect(element.placingFunction).to.be.undefined; + expect(element.functionsInAction).to.be.false; }); }); diff --git a/bay-template-editor.ts b/bay-template-editor.ts index 0b1e6b5..403abd4 100644 --- a/bay-template-editor.ts +++ b/bay-template-editor.ts @@ -27,7 +27,6 @@ import { makeBusBar, setSLDAttributes, sldNs, - uniqueName, xmlnsNs, getFunctionCoordinates, getProcessPath, @@ -127,18 +126,12 @@ export default class BayTemplatePlugin extends ScopedElementsMixin(LitElement) { connectedCallback() { super.connectedCallback(); - this.addEventListener('oscd-edit-v2', this.preprocessEdits, { - capture: true, - }); window.addEventListener('keydown', this.handleKeydown); window.addEventListener('resize', this.onResize); } disconnectedCallback() { super.disconnectedCallback(); - this.removeEventListener('oscd-edit-v2', this.preprocessEdits, { - capture: true, - }); window.removeEventListener('keydown', this.handleKeydown); window.removeEventListener('resize', this.onResize); } @@ -159,6 +152,12 @@ export default class BayTemplatePlugin extends ScopedElementsMixin(LitElement) { this.functionsInAction = true; }; + handleDonePlaceFunction = () => { + this.placingFunction = undefined; + this.placingFunctionOffset = [0, 0]; + this.functionsInAction = false; + }; + handleFunctionHover = (funcElement: Element | null) => { if (!funcElement) { this.functionHoverHighlight = []; @@ -222,59 +221,6 @@ export default class BayTemplatePlugin extends ScopedElementsMixin(LitElement) { ); } - // TODO: Remove this workaround once the official oscd-editor is integrated in open-scd (https://github.com/com-pas/open-scd/issues/25). - // Currently, edits with only attributesNS are not processed by the open-scd edit handler. - // This preprocessing mutates the edit object to apply the attributes directly and removes attributesNS. - private preprocessEdits = (event: Event) => { - const editEvent = event as CustomEvent; - let edits = Array.isArray(editEvent.detail) - ? editEvent.detail - : [editEvent.detail]; - - edits = edits.flatMap((e: any) => (e.edit ? e.edit : e)); - - edits.forEach((edit: any) => { - if ( - edit.node && - edit.parent && - !edit.node.getAttribute('name') && - edit.node.tagName !== 'Private' - ) { - const name = uniqueName(edit.node, edit.parent); - edit.node.setAttribute('name', name); - } - - // Ensure attributesNS exists as an object if element has attributes - if (edit.attributes && !edit.attributesNS) { - // eslint-disable-next-line no-param-reassign - edit.attributesNS = {}; - } - - if (edit.element && edit.attributesNS?.[sldNs]) { - const attrs = edit.attributesNS[sldNs]; - const cleanAttrs: Record = {}; - Object.entries(attrs).forEach(([key, value]) => { - const localName = key.includes(':') ? key.split(':')[1] : key; - if (value !== null) cleanAttrs[localName] = value as string; - }); - - if (edit.element.localName === 'SLDAttributes') { - Object.entries(cleanAttrs).forEach(([key, value]) => { - edit.element.setAttributeNS(sldNs, `${this.nsp}:${key}`, value); - }); - } else { - setSLDAttributes(edit.element, this.nsp, cleanAttrs); - } - } - }); - - if (this.placingFunction) { - this.placingFunction = undefined; - this.placingFunctionOffset = [0, 0]; - this.functionsInAction = false; - } - }; - handleSldSelected = (event: CustomEvent<{ element: Element }>) => { this.addingFunction = false; this.selectedElement = event.detail.element; @@ -819,6 +765,7 @@ export default class BayTemplatePlugin extends ScopedElementsMixin(LitElement) { .placing=${this.placingFunction} .placingOffset=${this.placingFunctionOffset} .onStartPlaceFunction=${this.handleStartPlaceFunction} + .onDonePlaceFunction=${this.handleDonePlaceFunction} .onHoverFunction=${this.handleFunctionHover} >` ) diff --git a/components/functions-layer/functions-layer.ts b/components/functions-layer/functions-layer.ts index 2477511..f63f3f2 100644 --- a/components/functions-layer/functions-layer.ts +++ b/components/functions-layer/functions-layer.ts @@ -90,6 +90,9 @@ export class FunctionsLayer extends ScopedElementsMixin(LitElement) { @property({ attribute: false }) onStartPlaceFunction?: (element: Element, offset: Point) => void; + @property({ attribute: false }) + onDonePlaceFunction?: () => void; + @property({ attribute: false }) onHoverFunction?: (funcElement: Element | null) => void; @@ -275,6 +278,7 @@ export class FunctionsLayer extends ScopedElementsMixin(LitElement) { y: y.toString(), }); this.dispatchEvent(newEditEventV2(edit)); + this.onDonePlaceFunction?.(); } private handleMouseMove(e: MouseEvent) { diff --git a/util.spec.ts b/util.spec.ts index 6159ed2..d5fd958 100644 --- a/util.spec.ts +++ b/util.spec.ts @@ -4,7 +4,6 @@ import { getFunctionCoordinates, setSLDAttributes, getSLDAttributes, - uniqueName, isBusBar, makeBusBar, privType, @@ -93,27 +92,6 @@ describe('utils', () => { }); }); - describe('uniqueName', () => { - it('returns existing unique name', () => { - const parent = doc.createElement('Bay'); - const child = doc.createElement('Function'); - parent.appendChild(child); - expect(uniqueName(child, parent)).equal('F1'); - }); - - it('generates new name if duplicate', () => { - const parent = doc.createElement('Bay'); - const child1 = doc.createElement('Function'); - child1.setAttribute('name', 'F1'); - parent.appendChild(child1); - const child2 = doc.createElement('Function'); - child2.setAttribute('name', 'F1'); - parent.appendChild(child2); - expect(uniqueName(child2, parent)).match(/^F\d+$/); - expect(uniqueName(child2, parent)).not.equal('F1'); - }); - }); - describe('isBusBar', () => { it('returns true for Bay with bus section', () => { const bay = doc.createElement('Bay'); diff --git a/util.ts b/util.ts index 05fc565..9590764 100644 --- a/util.ts +++ b/util.ts @@ -164,28 +164,6 @@ export function makeBusBar(doc: XMLDocument, nsp: string) { return busBar; } -export function uniqueName(element: Element, parent: Element): string { - const children = Array.from(parent.children); - const oldName = element.getAttribute('name'); - if ( - oldName && - !children.find(child => child.getAttribute('name') === oldName) - ) - return oldName; - - const baseName = - element.getAttribute('name')?.replace(/[0-9]*$/, '') ?? - element.getAttribute('type') ?? - element.tagName.charAt(0); - let index = 1; - function hasName(child: Element) { - return child.getAttribute('name') === baseName + index.toString(); - } - while (children.find(hasName)) index += 1; - - return baseName + index.toString(); -} - function getCenter(el: Element | null): { x: number; y: number } { const parentW = el ? parseFloat(getSLDAttributes(el, 'w') ?? '0') : 0; const parentH = el ? parseFloat(getSLDAttributes(el, 'h') ?? '0') : 0; From f110ca3cd784fc6000217ed1f4c093d5de76d9bc Mon Sep 17 00:00:00 2001 From: Nora Blomaard Date: Wed, 22 Apr 2026 13:45:46 +0200 Subject: [PATCH 3/4] refactor: restructure rollup configuration to fix pr-preview action --- .github/workflows/pr-preview.yml | 6 ------ rollup.preview.config.js | 24 ++++++++++++++++++------ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/.github/workflows/pr-preview.yml b/.github/workflows/pr-preview.yml index b35cba2..fa7bb83 100644 --- a/.github/workflows/pr-preview.yml +++ b/.github/workflows/pr-preview.yml @@ -33,12 +33,6 @@ jobs: - name: Build (PR Preview) run: npm run build:preview - - name: Prepare preview directory - run: | - cp -r dist preview/ - rsync -av --exclude='plugins.js' demo/ preview/ - sed -i "s|../dist/bay-template-editor.js|./bay-template-editor.js|g" preview/plugins.js - - name: Deploy preview uses: rossjrw/pr-preview-action@ffa7509e91a3ec8dfc2e5536c4d5c1acdf7a6de9 #v1 with: diff --git a/rollup.preview.config.js b/rollup.preview.config.js index 4982157..a317177 100644 --- a/rollup.preview.config.js +++ b/rollup.preview.config.js @@ -1,21 +1,33 @@ +import { resolve, dirname } from 'path'; +import { fileURLToPath } from 'url'; import nodeResolve from '@rollup/plugin-node-resolve'; import babel from '@rollup/plugin-babel'; import typescript from '@rollup/plugin-typescript'; import { importMetaAssets } from '@web/rollup-plugin-import-meta-assets'; import { terser } from 'rollup-plugin-terser'; +import { rollupPluginHTML as html } from '@web/rollup-plugin-html'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); export default { - input: { - 'bay-template-editor': './bay-template-editor.ts', - plugins: './demo/plugins.js', - }, + input: 'demo/index.html', output: { sourcemap: true, format: 'esm', - dir: 'dist', + dir: 'preview', }, plugins: [ - typescript(), + html(), + { + name: 'resolve-bay-template-editor-source', + resolveId(id) { + if (id === '../dist/bay-template-editor.js') { + return resolve(__dirname, 'bay-template-editor.ts'); + } + return null; + }, + }, + typescript({ outDir: 'preview' }), nodeResolve({ browser: true, exportConditions: ['browser', 'development'], From a04f273a70be34ec536283acb412ae75782d43ca Mon Sep 17 00:00:00 2001 From: Nora Blomaard Date: Mon, 18 May 2026 15:38:01 +0200 Subject: [PATCH 4/4] feature: add document processor --- bay-template-editor.ts | 87 +++----- .../functions-layer/functions-layer.spec.ts | 18 ++ .../functions-layer/functions-layer.test.ts | 3 + components/functions-layer/functions-layer.ts | 69 +++--- document-processor.ts | 210 ++++++++++++++++++ 5 files changed, 289 insertions(+), 98 deletions(-) create mode 100644 document-processor.ts diff --git a/bay-template-editor.ts b/bay-template-editor.ts index 403abd4..7b4d1f6 100644 --- a/bay-template-editor.ts +++ b/bay-template-editor.ts @@ -23,7 +23,6 @@ import { } from './icons.js'; import { eqTypes, - isBusBar, makeBusBar, setSLDAttributes, sldNs, @@ -32,12 +31,14 @@ import { getProcessPath, createPowerSystemRelationPrivate, getSldSvgs, - eTr6100Ns, } from './util.js'; import { FunctionsLayer } from './components/functions-layer/functions-layer.js'; import { CreateFunctionDialog } from './components/create-function-dialog/create-function-dialog.js'; import { - PSR_TAGS, + DocumentProcessor, + type ProcessedDocument, +} from './document-processor.js'; +import { PSR_HIGHLIGHT_STYLE, SELECTED_PSR_HIGHLIGHT_STYLE, type HighlightStyle, @@ -117,6 +118,9 @@ export default class BayTemplatePlugin extends ScopedElementsMixin(LitElement) { height: number; }[] = []; + @state() + processedDoc?: ProcessedDocument; + private readonly onResize = () => this.calculateSldBounds(); get showLabels(): boolean { @@ -165,16 +169,10 @@ export default class BayTemplatePlugin extends ScopedElementsMixin(LitElement) { return; } - // If the Function has a PowerSystemRelation Private, resolve the referenced - // element and highlight that instead of the DOM parent. - const psrRelationEl = funcElement.getElementsByTagNameNS( - eTr6100Ns, - 'PowerSystemRelation' - )[0]; - const relation = psrRelationEl?.getAttribute('relation'); - const target = relation - ? this.getElementFromProcessPath(relation) - : funcElement.parentElement; + const processedFunction = + this.processedDoc?.functionsByElement.get(funcElement); + const target = + processedFunction?.referencedElement ?? funcElement.parentElement; if (!target) { this.functionHoverHighlight = []; @@ -197,24 +195,6 @@ export default class BayTemplatePlugin extends ScopedElementsMixin(LitElement) { ]; }; - private getElementFromProcessPath(path: string): Element | null { - if (!this.doc) return null; - const parts = path.split('/'); - if (!parts.length || !parts[0]) return null; - - let current: Element | null = this.doc.querySelector( - `:root > Substation[name="${parts[0]}"]` - ); - for (let i = 1; i < parts.length && current; i += 1) { - const name = parts[i]; - current = - Array.from(current.children).find( - child => child.getAttribute('name') === name - ) ?? null; - } - return current; - } - get inAction(): boolean { return ( this.sldEditorInAction || this.functionsInAction || this.addingFunction @@ -236,6 +216,15 @@ export default class BayTemplatePlugin extends ScopedElementsMixin(LitElement) { } }; + willUpdate(changedProperties: Map) { + if ( + (changedProperties.has('doc') || changedProperties.has('editCount')) && + this.doc + ) { + this.processedDoc = DocumentProcessor.process(this.doc); + } + } + updated(changedProperties: Map) { if ( changedProperties.has('doc') || @@ -580,8 +569,8 @@ export default class BayTemplatePlugin extends ScopedElementsMixin(LitElement) { } private renderFunctionButtons() { - if (!this.doc) return nothing; - return html`${this.doc.querySelector('VoltageLevel, PowerTransformer') + if (!this.doc || !this.processedDoc) return nothing; + return html`${this.processedDoc.hasVoltageLevelOrTransformer ? html`font_download_off ` : nothing} - ${Array.from(this.doc.documentElement.children).find( - c => c.tagName === 'Substation' - ) + ${this.processedDoc.hasSubstation ? html` { - if (!this.doc) return; - const elements = PSR_TAGS.flatMap(tag => - Array.from(this.doc!.querySelectorAll(tag)) - ); - this.highlight = elements.map(el => ({ + if (!this.processedDoc) return; + this.highlight = this.processedDoc.psrElements.map(el => ({ id: identity(el).toString(), style: PSR_HIGHLIGHT_STYLE, })); @@ -616,7 +600,7 @@ export default class BayTemplatePlugin extends ScopedElementsMixin(LitElement) { > ${functionAddIcon} ` - : nothing}${this.doc.querySelector('Function') + : nothing}${this.processedDoc.hasFunctions ? html`${functionsIcon} ` - : nothing}${this.doc.querySelector('Substation') + : nothing}${this.processedDoc.hasSubstation ? html` - ${Array.from( - this.doc.querySelectorAll( - ':root > Substation > VoltageLevel > Bay' - ) - ).find(bay => !isBusBar(bay)) + ${this.processedDoc.hasNonBusBarBays ? eqTypes.map( eqType => html`${equipmentIcon(eqType)}` ) - : nothing}${this.doc.querySelector( - ':root > Substation > VoltageLevel' - ) + : nothing}${this.processedDoc.hasVoltageLevel ? html` { @@ -754,11 +732,12 @@ export default class BayTemplatePlugin extends ScopedElementsMixin(LitElement) { @oscd-sld-selected=${this.handleSldSelected} > ${this.renderSubstationHighlight()} - ${this.showFunctions - ? Array.from(this.doc.querySelectorAll(':root > Substation')).map( + ${this.showFunctions && this.processedDoc + ? this.processedDoc.substations.map( substation => html` { 'application/xml' ); element.doc = doc; + element.processedDoc = DocumentProcessor.process(doc); await element.updateComplete; }); @@ -77,6 +79,7 @@ describe('FunctionsLayer', () => { 'application/xml' ); element.doc = doc; + element.processedDoc = DocumentProcessor.process(doc); await element.updateComplete; const functions = element.shadowRoot?.querySelectorAll('g.function'); @@ -91,6 +94,7 @@ describe('FunctionsLayer', () => { 'application/xml' ); element.doc = doc; + element.processedDoc = DocumentProcessor.process(doc); await element.updateComplete; }); @@ -220,6 +224,7 @@ describe('FunctionsLayer', () => { 'application/xml' ); element.doc = doc; + element.processedDoc = DocumentProcessor.process(doc); await element.updateComplete; }); @@ -286,6 +291,7 @@ describe('FunctionsLayer', () => { 'application/xml' ); element.doc = doc; + element.processedDoc = DocumentProcessor.process(doc); const functionElement = doc.querySelector('Function[name="F1"]'); expect(functionElement).to.exist; @@ -317,6 +323,7 @@ describe('FunctionsLayer', () => { 'application/xml' ); element.doc = doc; + element.processedDoc = DocumentProcessor.process(doc); await element.updateComplete; const functionElement = doc.querySelector('Function[name="F1"]'); @@ -340,6 +347,7 @@ describe('FunctionsLayer', () => { 'application/xml' ); element.doc = doc; + element.processedDoc = DocumentProcessor.process(doc); await element.updateComplete; // Should not render functions without valid bay parent @@ -355,6 +363,7 @@ describe('FunctionsLayer', () => { 'application/xml' ); element.doc = doc; + element.processedDoc = DocumentProcessor.process(doc); element.disabled = true; await element.updateComplete; }); @@ -393,6 +402,7 @@ describe('FunctionsLayer', () => { ); element.doc = doc; + element.processedDoc = DocumentProcessor.process(doc); await element.updateComplete; }); it('updates rendering when gridSize changes', async () => { @@ -416,6 +426,7 @@ describe('FunctionsLayer', () => { 'application/xml' ); element.doc = doc; + element.processedDoc = DocumentProcessor.process(doc); element.editCount = 0; await element.updateComplete; @@ -434,6 +445,7 @@ describe('FunctionsLayer', () => { 'application/xml' ); element.doc = doc; + element.processedDoc = DocumentProcessor.process(doc); await element.updateComplete; const svg = element.shadowRoot?.querySelector('svg'); @@ -457,6 +469,7 @@ describe('FunctionsLayer', () => { 'application/xml' ); element.doc = doc; + element.processedDoc = DocumentProcessor.process(doc); await element.updateComplete; const svg = element.shadowRoot?.querySelector('svg'); @@ -471,6 +484,7 @@ describe('FunctionsLayer', () => { 'application/xml' ); element.doc = doc; + element.processedDoc = DocumentProcessor.process(doc); await element.updateComplete; const rects = element.shadowRoot?.querySelectorAll('rect'); @@ -510,6 +524,7 @@ describe('FunctionsLayer', () => { 'application/xml' ); element.doc = doc; + element.processedDoc = DocumentProcessor.process(doc); await element.updateComplete; const rects = element.shadowRoot?.querySelectorAll('rect'); @@ -524,6 +539,7 @@ describe('FunctionsLayer', () => { 'application/xml' ); element.doc = doc; + element.processedDoc = DocumentProcessor.process(doc); element.nsp = 'customnsp'; await element.updateComplete; @@ -538,6 +554,7 @@ describe('FunctionsLayer', () => { 'application/xml' ); element.doc = doc; + element.processedDoc = DocumentProcessor.process(doc); await element.updateComplete; }); @@ -622,6 +639,7 @@ describe('FunctionsLayer', () => { 'application/xml' ); element.doc = doc; + element.processedDoc = DocumentProcessor.process(doc); await element.updateComplete; }); diff --git a/components/functions-layer/functions-layer.test.ts b/components/functions-layer/functions-layer.test.ts index 8c257fe..29050ea 100644 --- a/components/functions-layer/functions-layer.test.ts +++ b/components/functions-layer/functions-layer.test.ts @@ -4,6 +4,7 @@ import { visualDiff } from '@web/test-runner-visual-regression'; import { FunctionsLayer } from './functions-layer.js'; import { docWithBayAndFunctions } from './functions-layer-testfiles.js'; +import { DocumentProcessor } from '../../document-processor.js'; window.customElements.define('functions-layer', FunctionsLayer); @@ -28,6 +29,7 @@ describe('FunctionsLayer component', () => { docWithBayAndFunctions, 'application/xml' ); + const processedDoc = DocumentProcessor.process(doc); const props = { doc, editCount: -1, @@ -40,6 +42,7 @@ describe('FunctionsLayer component', () => { editor = await fixture( html` void; @state() - functions: FunctionData[] = []; + functions: ProcessedFunction[] = []; @state() mouseX = 0; @@ -156,12 +155,12 @@ export class FunctionsLayer extends ScopedElementsMixin(LitElement) { } if ( - changedProperties.has('doc') || + changedProperties.has('processedDoc') || changedProperties.has('substation') || - changedProperties.has('gridSize') || + changedProperties.has('doc') || changedProperties.has('editCount') ) { - this.functions = this.extractFunctions(); + this.functions = this.getFunctions(); } if ( @@ -217,34 +216,16 @@ export class FunctionsLayer extends ScopedElementsMixin(LitElement) { } } - private extractFunctions(): FunctionData[] { - if (!this.doc) return []; - - const scope: Element | Document = this.substation ?? this.doc; - const functions = Array.from(scope.querySelectorAll('Function')); - const result: FunctionData[] = []; + private getFunctions(): ProcessedFunction[] { + if (!this.processedDoc) return []; - functions.forEach(fn => { - const xAttr = getSLDAttributes(fn, 'x'); - const yAttr = getSLDAttributes(fn, 'y'); - - if (!xAttr || !yAttr) return; - - const x = Number.parseFloat(xAttr); - const y = Number.parseFloat(yAttr); - - if (Number.isNaN(x) || Number.isNaN(y)) return; - - result.push({ - element: fn, - name: fn.getAttribute('name') || 'Unknown', - x, - y, - parent: fn.parentElement || null, - }); - }); + if (this.substation) { + return this.processedDoc.allFunctions.filter( + fn => fn.element.closest('Substation') === this.substation + ); + } - return result; + return this.processedDoc.allFunctions; } private getSvgDimensions(): { width: number; height: number } { @@ -269,7 +250,7 @@ export class FunctionsLayer extends ScopedElementsMixin(LitElement) { return Math.max(MIN_WIDTH, ICON_WIDTH + SPACING + textWidth + PADDING); } - private finalizeFunctionPlacement(fn: FunctionData): void { + private finalizeFunctionPlacement(fn: ProcessedFunction): void { const x = this.mouseX - this.placingOffset[0]; const y = this.mouseY - this.placingOffset[1]; @@ -289,7 +270,7 @@ export class FunctionsLayer extends ScopedElementsMixin(LitElement) { this.positionCoordinates(e); } - private handleFunctionClick(fn: FunctionData, e: MouseEvent) { + private handleFunctionClick(fn: ProcessedFunction, e: MouseEvent) { if (this.disabled) return; e.stopPropagation(); @@ -307,7 +288,7 @@ export class FunctionsLayer extends ScopedElementsMixin(LitElement) { } } - private handleFunctionContextMenu(fn: FunctionData, e: MouseEvent) { + private handleFunctionContextMenu(fn: ProcessedFunction, e: MouseEvent) { e.preventDefault(); e.stopPropagation(); this.contextMenu = { element: fn.element, x: e.clientX, y: e.clientY }; @@ -322,7 +303,7 @@ export class FunctionsLayer extends ScopedElementsMixin(LitElement) { this.contextMenu = undefined; } - private startPlacingFunction(fn: FunctionData) { + private startPlacingFunction(fn: ProcessedFunction) { const offset: Point = [this.mouseX - fn.x, this.mouseY - fn.y]; this.onStartPlaceFunction?.(fn.element, offset); } @@ -345,7 +326,7 @@ export class FunctionsLayer extends ScopedElementsMixin(LitElement) { } } - private handleFunctionMouseEnter(fn: FunctionData) { + private handleFunctionMouseEnter(fn: ProcessedFunction) { if (!this.placing) { this.hoveredFunction = fn.element; this.onHoverFunction?.(fn.element); @@ -357,7 +338,7 @@ export class FunctionsLayer extends ScopedElementsMixin(LitElement) { this.onHoverFunction?.(null); } - private renderFunction(fn: FunctionData, preview = false) { + private renderFunction(fn: ProcessedFunction, preview = false) { if (this.placing === fn.element && !preview) { return nothing; } diff --git a/document-processor.ts b/document-processor.ts new file mode 100644 index 0000000..5c43d08 --- /dev/null +++ b/document-processor.ts @@ -0,0 +1,210 @@ +import { getSLDAttributes, eTr6100Ns, isBusBar } from './util.js'; + +export interface ProcessedFunction { + element: Element; + name: string; + x: number; + y: number; + parent: Element | null; + referencedElement: Element | null; + relationPath: string | null; +} + +export interface ProcessedDocument { + substations: Element[]; + functionMap: Map; + functionsByElement: Map; + allFunctions: ProcessedFunction[]; + psrElements: Element[]; + hasVoltageLevelOrTransformer: boolean; + hasFunctions: boolean; + hasSubstation: boolean; + hasNonBusBarBays: boolean; + hasVoltageLevel: boolean; +} + +export class DocumentProcessor { + /** + * Processes an XML document and returns structured data with function mappings. + * + * @param doc The SCL document to process + * @param substation Optional: process only a specific substation. If omitted, processes entire document. + * @returns ProcessedDocument containing substations, functionMap, and functionsByElement + */ + static process(doc: XMLDocument, substation?: Element): ProcessedDocument { + const substations = substation + ? [substation] + : Array.from(doc.querySelectorAll(':root > Substation')); + + const allFunctions = this.extractFunctions(doc, substation); + + const functionsByElement = new Map(); + allFunctions.forEach(fn => { + functionsByElement.set(fn.element, fn); + }); + + const functionMap = this.buildFunctionMap(allFunctions); + + const psrTags = [ + 'ConductingEquipment', + 'PowerTransformer', + 'Bay', + 'VoltageLevel', + 'Substation', + ]; + const psrElements = psrTags.flatMap(tag => + Array.from(doc.querySelectorAll(tag)) + ); + + const hasVoltageLevelOrTransformer = !!doc.querySelector( + 'VoltageLevel, PowerTransformer' + ); + const hasFunctions = allFunctions.length > 0; + const hasSubstation = !!doc.querySelector('Substation'); + const hasVoltageLevel = !!doc.querySelector( + ':root > Substation > VoltageLevel' + ); + const hasNonBusBarBays = Array.from( + doc.querySelectorAll(':root > Substation > VoltageLevel > Bay') + ).some(bay => !isBusBar(bay)); + + return { + substations, + functionMap, + functionsByElement, + allFunctions, + psrElements, + hasVoltageLevelOrTransformer, + hasFunctions, + hasSubstation, + hasNonBusBarBays, + hasVoltageLevel, + }; + } + + /** + * Extracts all Function elements with valid SLD coordinates. + * Resolves PowerSystemRelation references if present. + * + * @param doc The SCL document + * @param substation Optional: scope to a specific substation + * @returns Array of ProcessedFunction objects + */ + private static extractFunctions( + doc: XMLDocument, + substation?: Element + ): ProcessedFunction[] { + const scope: Element | Document = substation ?? doc; + const functionElements = Array.from(scope.querySelectorAll('Function')); + const result: ProcessedFunction[] = []; + + functionElements.forEach(fn => { + const xAttr = getSLDAttributes(fn, 'x'); + const yAttr = getSLDAttributes(fn, 'y'); + + if (!xAttr || !yAttr) return; + + const x = Number.parseFloat(xAttr); + const y = Number.parseFloat(yAttr); + + if (Number.isNaN(x) || Number.isNaN(y)) return; + + const name = fn.getAttribute('name') || 'Unknown'; + const parent = fn.parentElement || null; + + const psrRelationEl = fn.getElementsByTagNameNS( + eTr6100Ns, + 'PowerSystemRelation' + )[0]; + const relationPath = psrRelationEl?.getAttribute('relation') || null; + const referencedElement = relationPath + ? this.resolveProcessPath(doc, relationPath) + : null; + + result.push({ + element: fn, + name, + x, + y, + parent, + referencedElement, + relationPath, + }); + }); + + return result; + } + + /** + * Resolves a process path string (e.g., "S1/VL1/Bay1/QA1") to the actual Element. + * + * @param doc The SCL document + * @param path Process path string (format: Substation/VoltageLevel/Bay/Equipment) + * @returns Resolved Element or null if not found + */ + private static resolveProcessPath( + doc: XMLDocument, + path: string + ): Element | null { + const parts = path.split('/'); + if (!parts.length || !parts[0]) return null; + + let current: Element | null = doc.querySelector( + `:root > Substation[name="${parts[0]}"]` + ); + + for (let i = 1; i < parts.length && current; i += 1) { + const name = parts[i]; + current = + Array.from(current.children).find( + child => child.getAttribute('name') === name + ) ?? null; + } + + return current; + } + + /** + * Builds a Map from SCL elements to their associated functions. + * + * A function is associated with an element if: + * 1. The element is the function's direct DOM parent (Bay/VoltageLevel/Substation), OR + * 2. The function has a PowerSystemRelation referencing the element (ConductingEquipment/PowerTransformer) + * + * This matches the behavior of util.getFunctions() but computed once for all elements. + * + * @param allFunctions All processed functions + * @returns Map + */ + private static buildFunctionMap( + allFunctions: ProcessedFunction[] + ): Map { + const map = new Map(); + + allFunctions.forEach(fn => { + // Add to direct parent if it's Bay/VoltageLevel/Substation AND has no PowerSystemRelation + if ( + fn.parent && + !fn.referencedElement && + (fn.parent.tagName === 'Bay' || + fn.parent.tagName === 'VoltageLevel' || + fn.parent.tagName === 'Substation') + ) { + if (!map.has(fn.parent)) { + map.set(fn.parent, []); + } + map.get(fn.parent)?.push(fn); + } + + // Add to referenced element if PowerSystemRelation is present + if (fn.referencedElement) { + if (!map.has(fn.referencedElement)) { + map.set(fn.referencedElement, []); + } + map.get(fn.referencedElement)?.push(fn); + } + }); + + return map; + } +}