@omicronenergy/oscd-scl-dialogs 0.0.10 → 0.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/custom-elements.json +22 -1
- package/dist/OscdTextEditor.d.ts +0 -10
- package/dist/OscdTextEditor.js +0 -4
- package/dist/OscdTextEditor.js.map +1 -1
- package/dist/ace-editor/AceEditor.d.ts +3 -0
- package/dist/ace-editor/AceEditor.js +3 -0
- package/dist/ace-editor/AceEditor.js.map +1 -1
- package/dist/wizards/dotype.js +1 -1
- package/dist/wizards/dotype.js.map +1 -1
- package/dist/wizards/function.js +2 -2
- package/dist/wizards/function.js.map +1 -1
- package/dist/wizards/generalEquipment.js +1 -1
- package/dist/wizards/generalEquipment.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.0.11](https://github.com/OMICRONEnergyOSS/oscd-scl-dialogs/compare/oscd-scl-dialogs-v0.0.10...oscd-scl-dialogs-v0.0.11) (2026-03-04)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* for nullable fields prefer value over maybeValue ([d6caf79](https://github.com/OMICRONEnergyOSS/oscd-scl-dialogs/commit/d6caf79197e6936bcce7f07ab826968db9374452))
|
|
9
|
+
|
|
3
10
|
## [0.0.10](https://github.com/OMICRONEnergyOSS/oscd-scl-dialogs/compare/oscd-scl-dialogs-v0.0.9...oscd-scl-dialogs-v0.0.10) (2026-02-16)
|
|
4
11
|
|
|
5
12
|
|
package/custom-elements.json
CHANGED
|
@@ -1337,6 +1337,15 @@
|
|
|
1337
1337
|
"static": true,
|
|
1338
1338
|
"default": "{ 'oscd-text-editor': OscdTextEditor, 'oscd-scl-dialogs': OscdSclDialogs, }"
|
|
1339
1339
|
},
|
|
1340
|
+
{
|
|
1341
|
+
"kind": "field",
|
|
1342
|
+
"name": "storageKeys",
|
|
1343
|
+
"type": {
|
|
1344
|
+
"text": "object"
|
|
1345
|
+
},
|
|
1346
|
+
"static": true,
|
|
1347
|
+
"default": "{ parentSelector: 'demo-editor-parent-selector', newTagName: 'demo-editor-new-tag-name', tagSelector: 'demo-editor-tag-selector', }"
|
|
1348
|
+
},
|
|
1340
1349
|
{
|
|
1341
1350
|
"kind": "field",
|
|
1342
1351
|
"name": "properties",
|
|
@@ -1344,7 +1353,7 @@
|
|
|
1344
1353
|
"text": "object"
|
|
1345
1354
|
},
|
|
1346
1355
|
"static": true,
|
|
1347
|
-
"default": "{ doc: { type: Object }, docVersion: { type: Number }, editor: { type: Object }, docsState: { type: Object }, editedText: { state: true }, editorDirty: { state: true }, }"
|
|
1356
|
+
"default": "{ doc: { type: Object }, docVersion: { type: Number }, editor: { type: Object }, docsState: { type: Object }, editedText: { state: true }, editorDirty: { state: true }, parentSelectorValue: { state: true }, newTagNameValue: { state: true }, tagSelectorValue: { state: true }, }"
|
|
1348
1357
|
},
|
|
1349
1358
|
{
|
|
1350
1359
|
"kind": "method",
|
|
@@ -1441,6 +1450,18 @@
|
|
|
1441
1450
|
"text": "boolean"
|
|
1442
1451
|
},
|
|
1443
1452
|
"default": "false"
|
|
1453
|
+
},
|
|
1454
|
+
{
|
|
1455
|
+
"kind": "field",
|
|
1456
|
+
"name": "parentSelectorValue"
|
|
1457
|
+
},
|
|
1458
|
+
{
|
|
1459
|
+
"kind": "field",
|
|
1460
|
+
"name": "newTagNameValue"
|
|
1461
|
+
},
|
|
1462
|
+
{
|
|
1463
|
+
"kind": "field",
|
|
1464
|
+
"name": "tagSelectorValue"
|
|
1444
1465
|
}
|
|
1445
1466
|
],
|
|
1446
1467
|
"mixins": [
|
package/dist/OscdTextEditor.d.ts
CHANGED
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
import { LitElement, type PropertyValueMap, PropertyValues } from 'lit';
|
|
2
|
-
import type * as AceGlobal from 'ace-builds';
|
|
3
|
-
import 'ace-builds/src-noconflict/ace.js';
|
|
4
|
-
import 'ace-builds/src-noconflict/theme-sqlserver.js';
|
|
5
|
-
import 'ace-builds/src-noconflict/mode-xml.js';
|
|
6
|
-
import 'ace-builds/src-noconflict/ext-searchbox.js';
|
|
7
2
|
import AceEditor from './ace-editor/AceEditor.js';
|
|
8
3
|
import { EditV2 } from '@openscd/oscd-api';
|
|
9
|
-
declare global {
|
|
10
|
-
interface Window {
|
|
11
|
-
ace: typeof AceGlobal;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
4
|
export declare function parseXml(xml: string): XMLDocument;
|
|
15
5
|
export declare function serializeXml(xml: XMLDocument | Element): string;
|
|
16
6
|
export declare function formatXml(rawXml: string | undefined, initialIndent?: string): string;
|
package/dist/OscdTextEditor.js
CHANGED
|
@@ -2,10 +2,6 @@ import { __decorate } from "tslib";
|
|
|
2
2
|
import { LitElement, html, css, } from 'lit';
|
|
3
3
|
import { property, query } from 'lit/decorators.js';
|
|
4
4
|
import { ScopedElementsMixin } from '@open-wc/scoped-elements/lit-element.js';
|
|
5
|
-
import 'ace-builds/src-noconflict/ace.js';
|
|
6
|
-
import 'ace-builds/src-noconflict/theme-sqlserver.js';
|
|
7
|
-
import 'ace-builds/src-noconflict/mode-xml.js';
|
|
8
|
-
import 'ace-builds/src-noconflict/ext-searchbox.js';
|
|
9
5
|
import AceEditor from './ace-editor/AceEditor.js';
|
|
10
6
|
const serializer = new XMLSerializer();
|
|
11
7
|
const parser = new DOMParser();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OscdTextEditor.js","sourceRoot":"","sources":["../OscdTextEditor.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n LitElement,\n html,\n css,\n type PropertyValueMap,\n PropertyValues,\n} from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements/lit-element.js';\nimport type * as AceGlobal from 'ace-builds';\nimport 'ace-builds/src-noconflict/ace.js';\nimport 'ace-builds/src-noconflict/theme-sqlserver.js';\nimport 'ace-builds/src-noconflict/mode-xml.js';\nimport 'ace-builds/src-noconflict/ext-searchbox.js';\n\nimport AceEditor from './ace-editor/AceEditor.js';\n\nimport { EditV2 } from '@openscd/oscd-api';\n\ndeclare global {\n interface Window {\n ace: typeof AceGlobal;\n }\n}\n\nconst serializer = new XMLSerializer();\nconst parser = new DOMParser();\n\nconst ACE_DEFAULT_OPTIONS = {\n fontSize: '14',\n theme: 'ace/theme/sqlserver',\n mode: 'ace/mode/xml',\n};\nconst storageKey = 'oscd:ace-options';\n\nconst getStoredAceOptions = (): Omit<\n Partial<AceGlobal.Ace.EditorOptions>,\n 'theme' | 'mode'\n> &\n Pick<AceGlobal.Ace.EditorOptions, 'theme' | 'mode'> => {\n try {\n const stored = localStorage.getItem(storageKey);\n if (stored) {\n return {\n ...ACE_DEFAULT_OPTIONS,\n ...JSON.parse(stored),\n };\n }\n } catch (error) {\n console.warn('Failed to retrieve Ace options from storage:', error);\n }\n return ACE_DEFAULT_OPTIONS;\n};\n\nlet aceOptions = getStoredAceOptions();\n\nfunction manageAceOptionChange(editor: AceGlobal.Ace.Editor) {\n editor.setOptions(aceOptions);\n\n const originalSetOption = editor.setOption.bind(editor);\n const originalSetOptions = editor.setOptions.bind(editor);\n const persistOptions = () => {\n try {\n aceOptions = {\n ...ACE_DEFAULT_OPTIONS,\n ...editor.getOptions(),\n };\n localStorage.setItem(storageKey, JSON.stringify(aceOptions));\n } catch (error) {\n console.warn('Failed to store Ace options:', error);\n }\n };\n\n editor.setOption = (name: string, value: unknown) => {\n originalSetOption(\n name as keyof AceGlobal.Ace.EditorOptions,\n value as never,\n );\n persistOptions();\n };\n\n editor.setOptions = (options: Partial<AceGlobal.Ace.EditorOptions>) => {\n originalSetOptions(options);\n persistOptions();\n };\n}\n\nexport function parseXml(xml: string): XMLDocument {\n const parsed = parser.parseFromString(xml, 'application/xml');\n const parseError = parsed.querySelector('parsererror');\n if (parseError) {\n const error = new Error(parseError.textContent ?? 'Invalid XML');\n console.error('XML Parsing Error:', error);\n }\n return parsed;\n}\n\nexport function serializeXml(xml: XMLDocument | Element): string {\n return serializer.serializeToString(xml);\n}\n\nexport function formatXml(\n rawXml: string | undefined,\n initialIndent: string = '',\n): string {\n if (!rawXml) {\n return '';\n }\n\n // Trim leading and trailing whitespace to avoid injecting extra < or >\n const xml = rawXml.trim();\n\n let formatted = '';\n let indent = '';\n\n const tab = '\\t';\n const nodes = xml.split(/>\\s*</);\n nodes.forEach(function (node, index) {\n // Remove leading < from first node and trailing > from last node. Allow for selection leading or trailing whitespace.\n if (index === 0) {\n node = node.replace(/^\\s*</, '');\n }\n if (index === nodes.length - 1) {\n node = node.replace(/>\\s*$/, '');\n }\n\n if (node.match(/^\\/\\w/)) {\n indent = indent.substring(tab!.length);\n }\n formatted += initialIndent + indent + '<' + node + '>\\r\\n';\n if (node.match(/^<?\\w[^>]*[^/]$/)) {\n indent += tab;\n }\n });\n\n return formatted.trim();\n}\n\nexport function newOscdTextEditV2({\n element,\n newText,\n}: {\n element: Element;\n newText: string;\n}): EditV2[] | null {\n let newDoc: XMLDocument | null = null;\n try {\n newDoc = newText ? parseXml(newText) : null;\n } catch (error) {\n console.error('Failed to parse XML:', error);\n return null;\n }\n if (element) {\n // get the parent and if we don't have a parent, use the documentElement\n const parent = element.parentElement ?? element.ownerDocument;\n const nextSibling = element.nextSibling ?? null;\n const newElement = newDoc\n ? element.ownerDocument.importNode(newDoc?.documentElement, true)\n : null;\n\n return [\n { node: element },\n ...(newElement\n ? [\n {\n node: newElement,\n parent,\n reference: nextSibling,\n },\n ]\n : []),\n ] as EditV2[];\n }\n return null;\n}\n\nclass BaseElement extends ScopedElementsMixin(LitElement) {}\n\n/**\n * Intent is to keep this generic so it can be migrated to oscd-ui.\n */\nexport default class OscdTextEditor extends BaseElement {\n static scopedElements = {\n // Left here for clarity sake. We need to dyn-import this so we have a chance of overriding the customElements.define to prevent\n // ace-editor from being registered globally and causing issues with other instances of ace-editor in the same document.\n 'ace-editor': AceEditor,\n };\n\n // constructor() {\n // super();\n // // Special handling to prevent ace-editor from being registered globally, which would cause issues with multiple instances in the same document.\n // // This will all go away once the oscd-ui version is implemented and this project is migrated to oscd-ui\n // const customElementsDefineFn = window.customElements.define;\n // window.customElements.define = (name, constructor) => {\n // if (name !== 'ace-editor') {\n // return customElementsDefineFn(name, constructor);\n // }\n // };\n // import('ace-custom-element').then(AceEditor => {\n // if (!this.registry?.get('ace-editor')) {\n // this.registry?.define('ace-editor', AceEditor.default);\n // this.requestUpdate();\n // }\n // });\n // }\n\n @property()\n value: string | undefined;\n\n @query('ace-editor')\n aceEditor!: AceEditor;\n\n public format() {\n const rawXml =\n this.aceEditor?.editor?.getSelectedText() ||\n this.aceEditor.editor?.getValue() ||\n this.value ||\n '';\n\n let initialIndent = '';\n if (this.aceEditor?.editor?.getSelectedText()) {\n const range = this.aceEditor.editor.getSelectionRange();\n // Get the starting line of the selection and detect its leading whitespace\n const startLine = range.start.row;\n const lineContent = this.aceEditor.editor.session.getLine(startLine);\n initialIndent = lineContent.match(/^(\\s*)/)?.[1] || '';\n }\n\n const formatted = formatXml(rawXml, initialIndent);\n if (this.aceEditor?.editor?.getSelectedText()) {\n const range = this.aceEditor.editor.getSelectionRange();\n // Remove the trailing \\r\\n\n this.aceEditor.editor.session.replace(\n range,\n formatted.substring(0, formatted.length - 2),\n );\n } else {\n this.value = formatted;\n }\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n window.ace?.config?.addEventListener?.('editor', manageAceOptionChange);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n window.ace?.config?.removeEventListener?.('editor', manageAceOptionChange);\n }\n\n private handleAceChange(e: CustomEvent<string>): void {\n if (typeof e.detail !== 'string') {\n return;\n }\n\n if (this.value !== e.detail) {\n this.dispatchEvent(\n new CustomEvent('change', {\n detail: e.detail,\n }),\n );\n }\n }\n\n protected firstUpdated(_changedProperties: PropertyValues): void {\n this.clearSelection();\n }\n\n private clearSelection() {\n // Clear selection when content updates\n setTimeout(() => {\n /* For reasons unknown the ace editor initially selects all code, so we need to clear that*/\n const editor = this.aceEditor.editor;\n if (editor) {\n editor.selection.clearSelection();\n editor.moveCursorTo(0, 0);\n }\n }, 100);\n }\n\n protected updated(changedProps: PropertyValueMap<OscdTextEditor>): void {\n if (changedProps.has('value')) {\n const editor = this.aceEditor.editor;\n\n if (!editor) {\n return;\n }\n\n // Only update if content actually changed (prevents cursor jump)\n // if (editor.getValue() !== this.value) {\n // editor.setValue(this.value ?? '');\n // }\n\n editor.selection.clearSelection();\n editor.moveCursorTo(0, 0);\n }\n }\n\n render() {\n return html`\n <ace-editor\n .value=${this.value}\n mode=${aceOptions.mode}\n theme=${aceOptions.theme}\n @change=${(e: CustomEvent<string>) => {\n this.handleAceChange(e);\n }}\n >\n </ace-editor>\n `;\n }\n\n static styles = css`\n :host {\n height: 100%;\n width: 100%;\n overflow: auto;\n }\n\n ace-editor {\n height: 100%;\n width: 100%;\n }\n `;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"OscdTextEditor.js","sourceRoot":"","sources":["../OscdTextEditor.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,UAAU,EACV,IAAI,EACJ,GAAG,GAGJ,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAI9E,OAAO,SAAS,MAAM,2BAA2B,CAAC;AAIlD,MAAM,UAAU,GAAG,IAAI,aAAa,EAAE,CAAC;AACvC,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;AAE/B,MAAM,mBAAmB,GAAG;IAC1B,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE,qBAAqB;IAC5B,IAAI,EAAE,cAAc;CACrB,CAAC;AACF,MAAM,UAAU,GAAG,kBAAkB,CAAC;AAEtC,MAAM,mBAAmB,GAAG,GAI0B,EAAE;IACtD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO;gBACL,GAAG,mBAAmB;gBACtB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;aACtB,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAC;AAEF,IAAI,UAAU,GAAG,mBAAmB,EAAE,CAAC;AAEvC,SAAS,qBAAqB,CAAC,MAA4B;IACzD,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAE9B,MAAM,iBAAiB,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,kBAAkB,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,IAAI,CAAC;YACH,UAAU,GAAG;gBACX,GAAG,mBAAmB;gBACtB,GAAG,MAAM,CAAC,UAAU,EAAE;aACvB,CAAC;YACF,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,CAAC,SAAS,GAAG,CAAC,IAAY,EAAE,KAAc,EAAE,EAAE;QAClD,iBAAiB,CACf,IAAyC,EACzC,KAAc,CACf,CAAC;QACF,cAAc,EAAE,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,CAAC,UAAU,GAAG,CAAC,OAA6C,EAAE,EAAE;QACpE,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC5B,cAAc,EAAE,CAAC;IACnB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IACvD,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI,aAAa,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAA0B;IACrD,OAAO,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,MAA0B,EAC1B,gBAAwB,EAAE;IAE1B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,uEAAuE;IACvE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAE1B,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,MAAM,GAAG,GAAG,IAAI,CAAC;IACjB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,KAAK;QACjC,sHAAsH;QACtH,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,GAAI,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;QACD,SAAS,IAAI,aAAa,GAAG,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,OAAO,CAAC;QAC3D,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAChC,OAAO,EACP,OAAO,GAIR;IACC,IAAI,MAAM,GAAuB,IAAI,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,wEAAwE;QACxE,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;QAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC;QAChD,MAAM,UAAU,GAAG,MAAM;YACvB,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,CAAC;YACjE,CAAC,CAAC,IAAI,CAAC;QAET,OAAO;YACL,EAAE,IAAI,EAAE,OAAO,EAAE;YACjB,GAAG,CAAC,UAAU;gBACZ,CAAC,CAAC;oBACE;wBACE,IAAI,EAAE,UAAU;wBAChB,MAAM;wBACN,SAAS,EAAE,WAAW;qBACvB;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACI,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,WAAY,SAAQ,mBAAmB,CAAC,UAAU,CAAC;CAAG;AAE5D;;GAEG;AACH,MAAqB,cAAe,SAAQ,WAAW;IA+B9C,MAAM;QACX,MAAM,MAAM,GACV,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE;YACzC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE;YACjC,IAAI,CAAC,KAAK;YACV,EAAE,CAAC;QAEL,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACxD,2EAA2E;YAC3E,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;YAClC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACrE,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACzD,CAAC;QAED,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACxD,2BAA2B;YAC3B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CACnC,KAAK,EACL,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAC7C,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACzB,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IAC1E,CAAC;IAED,oBAAoB;QAClB,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IAC7E,CAAC;IAEO,eAAe,CAAC,CAAsB;QAC5C,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,QAAQ,EAAE;gBACxB,MAAM,EAAE,CAAC,CAAC,MAAM;aACjB,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAES,YAAY,CAAC,kBAAkC;QACvD,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAEO,cAAc;QACpB,uCAAuC;QACvC,UAAU,CAAC,GAAG,EAAE;YACd,4FAA4F;YAC5F,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YACrC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;gBAClC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAES,OAAO,CAAC,YAA8C;QAC9D,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAErC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YAED,iEAAiE;YACjE,0CAA0C;YAC1C,uCAAuC;YACvC,IAAI;YAEJ,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;YAClC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;iBAEE,IAAI,CAAC,KAAK;eACZ,UAAU,CAAC,IAAI;gBACd,UAAU,CAAC,KAAK;kBACd,CAAC,CAAsB,EAAE,EAAE;YACnC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;;;KAGJ,CAAC;IACJ,CAAC;;AAjIM,6BAAc,GAAG;IACtB,gIAAgI;IAChI,wHAAwH;IACxH,YAAY,EAAE,SAAS;CACxB,CAAC;AA+HK,qBAAM,GAAG,GAAG,CAAA;;;;;;;;;;;GAWlB,CAAC;eA/IiB,cAAc;AA0BjC;IADC,QAAQ,EAAE;6CACe;AAG1B;IADC,KAAK,CAAC,YAAY,CAAC;iDACE","sourcesContent":["import {\n LitElement,\n html,\n css,\n type PropertyValueMap,\n PropertyValues,\n} from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements/lit-element.js';\n\nimport type * as AceGlobal from 'ace-builds';\n\nimport AceEditor from './ace-editor/AceEditor.js';\n\nimport { EditV2 } from '@openscd/oscd-api';\n\nconst serializer = new XMLSerializer();\nconst parser = new DOMParser();\n\nconst ACE_DEFAULT_OPTIONS = {\n fontSize: '14',\n theme: 'ace/theme/sqlserver',\n mode: 'ace/mode/xml',\n};\nconst storageKey = 'oscd:ace-options';\n\nconst getStoredAceOptions = (): Omit<\n Partial<AceGlobal.Ace.EditorOptions>,\n 'theme' | 'mode'\n> &\n Pick<AceGlobal.Ace.EditorOptions, 'theme' | 'mode'> => {\n try {\n const stored = localStorage.getItem(storageKey);\n if (stored) {\n return {\n ...ACE_DEFAULT_OPTIONS,\n ...JSON.parse(stored),\n };\n }\n } catch (error) {\n console.warn('Failed to retrieve Ace options from storage:', error);\n }\n return ACE_DEFAULT_OPTIONS;\n};\n\nlet aceOptions = getStoredAceOptions();\n\nfunction manageAceOptionChange(editor: AceGlobal.Ace.Editor) {\n editor.setOptions(aceOptions);\n\n const originalSetOption = editor.setOption.bind(editor);\n const originalSetOptions = editor.setOptions.bind(editor);\n const persistOptions = () => {\n try {\n aceOptions = {\n ...ACE_DEFAULT_OPTIONS,\n ...editor.getOptions(),\n };\n localStorage.setItem(storageKey, JSON.stringify(aceOptions));\n } catch (error) {\n console.warn('Failed to store Ace options:', error);\n }\n };\n\n editor.setOption = (name: string, value: unknown) => {\n originalSetOption(\n name as keyof AceGlobal.Ace.EditorOptions,\n value as never,\n );\n persistOptions();\n };\n\n editor.setOptions = (options: Partial<AceGlobal.Ace.EditorOptions>) => {\n originalSetOptions(options);\n persistOptions();\n };\n}\n\nexport function parseXml(xml: string): XMLDocument {\n const parsed = parser.parseFromString(xml, 'application/xml');\n const parseError = parsed.querySelector('parsererror');\n if (parseError) {\n const error = new Error(parseError.textContent ?? 'Invalid XML');\n console.error('XML Parsing Error:', error);\n }\n return parsed;\n}\n\nexport function serializeXml(xml: XMLDocument | Element): string {\n return serializer.serializeToString(xml);\n}\n\nexport function formatXml(\n rawXml: string | undefined,\n initialIndent: string = '',\n): string {\n if (!rawXml) {\n return '';\n }\n\n // Trim leading and trailing whitespace to avoid injecting extra < or >\n const xml = rawXml.trim();\n\n let formatted = '';\n let indent = '';\n\n const tab = '\\t';\n const nodes = xml.split(/>\\s*</);\n nodes.forEach(function (node, index) {\n // Remove leading < from first node and trailing > from last node. Allow for selection leading or trailing whitespace.\n if (index === 0) {\n node = node.replace(/^\\s*</, '');\n }\n if (index === nodes.length - 1) {\n node = node.replace(/>\\s*$/, '');\n }\n\n if (node.match(/^\\/\\w/)) {\n indent = indent.substring(tab!.length);\n }\n formatted += initialIndent + indent + '<' + node + '>\\r\\n';\n if (node.match(/^<?\\w[^>]*[^/]$/)) {\n indent += tab;\n }\n });\n\n return formatted.trim();\n}\n\nexport function newOscdTextEditV2({\n element,\n newText,\n}: {\n element: Element;\n newText: string;\n}): EditV2[] | null {\n let newDoc: XMLDocument | null = null;\n try {\n newDoc = newText ? parseXml(newText) : null;\n } catch (error) {\n console.error('Failed to parse XML:', error);\n return null;\n }\n if (element) {\n // get the parent and if we don't have a parent, use the documentElement\n const parent = element.parentElement ?? element.ownerDocument;\n const nextSibling = element.nextSibling ?? null;\n const newElement = newDoc\n ? element.ownerDocument.importNode(newDoc?.documentElement, true)\n : null;\n\n return [\n { node: element },\n ...(newElement\n ? [\n {\n node: newElement,\n parent,\n reference: nextSibling,\n },\n ]\n : []),\n ] as EditV2[];\n }\n return null;\n}\n\nclass BaseElement extends ScopedElementsMixin(LitElement) {}\n\n/**\n * Intent is to keep this generic so it can be migrated to oscd-ui.\n */\nexport default class OscdTextEditor extends BaseElement {\n static scopedElements = {\n // Left here for clarity sake. We need to dyn-import this so we have a chance of overriding the customElements.define to prevent\n // ace-editor from being registered globally and causing issues with other instances of ace-editor in the same document.\n 'ace-editor': AceEditor,\n };\n\n // constructor() {\n // super();\n // // Special handling to prevent ace-editor from being registered globally, which would cause issues with multiple instances in the same document.\n // // This will all go away once the oscd-ui version is implemented and this project is migrated to oscd-ui\n // const customElementsDefineFn = window.customElements.define;\n // window.customElements.define = (name, constructor) => {\n // if (name !== 'ace-editor') {\n // return customElementsDefineFn(name, constructor);\n // }\n // };\n // import('ace-custom-element').then(AceEditor => {\n // if (!this.registry?.get('ace-editor')) {\n // this.registry?.define('ace-editor', AceEditor.default);\n // this.requestUpdate();\n // }\n // });\n // }\n\n @property()\n value: string | undefined;\n\n @query('ace-editor')\n aceEditor!: AceEditor;\n\n public format() {\n const rawXml =\n this.aceEditor?.editor?.getSelectedText() ||\n this.aceEditor.editor?.getValue() ||\n this.value ||\n '';\n\n let initialIndent = '';\n if (this.aceEditor?.editor?.getSelectedText()) {\n const range = this.aceEditor.editor.getSelectionRange();\n // Get the starting line of the selection and detect its leading whitespace\n const startLine = range.start.row;\n const lineContent = this.aceEditor.editor.session.getLine(startLine);\n initialIndent = lineContent.match(/^(\\s*)/)?.[1] || '';\n }\n\n const formatted = formatXml(rawXml, initialIndent);\n if (this.aceEditor?.editor?.getSelectedText()) {\n const range = this.aceEditor.editor.getSelectionRange();\n // Remove the trailing \\r\\n\n this.aceEditor.editor.session.replace(\n range,\n formatted.substring(0, formatted.length - 2),\n );\n } else {\n this.value = formatted;\n }\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n window.ace?.config?.addEventListener?.('editor', manageAceOptionChange);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n window.ace?.config?.removeEventListener?.('editor', manageAceOptionChange);\n }\n\n private handleAceChange(e: CustomEvent<string>): void {\n if (typeof e.detail !== 'string') {\n return;\n }\n\n if (this.value !== e.detail) {\n this.dispatchEvent(\n new CustomEvent('change', {\n detail: e.detail,\n }),\n );\n }\n }\n\n protected firstUpdated(_changedProperties: PropertyValues): void {\n this.clearSelection();\n }\n\n private clearSelection() {\n // Clear selection when content updates\n setTimeout(() => {\n /* For reasons unknown the ace editor initially selects all code, so we need to clear that*/\n const editor = this.aceEditor.editor;\n if (editor) {\n editor.selection.clearSelection();\n editor.moveCursorTo(0, 0);\n }\n }, 100);\n }\n\n protected updated(changedProps: PropertyValueMap<OscdTextEditor>): void {\n if (changedProps.has('value')) {\n const editor = this.aceEditor.editor;\n\n if (!editor) {\n return;\n }\n\n // Only update if content actually changed (prevents cursor jump)\n // if (editor.getValue() !== this.value) {\n // editor.setValue(this.value ?? '');\n // }\n\n editor.selection.clearSelection();\n editor.moveCursorTo(0, 0);\n }\n }\n\n render() {\n return html`\n <ace-editor\n .value=${this.value}\n mode=${aceOptions.mode}\n theme=${aceOptions.theme}\n @change=${(e: CustomEvent<string>) => {\n this.handleAceChange(e);\n }}\n >\n </ace-editor>\n `;\n }\n\n static styles = css`\n :host {\n height: 100%;\n width: 100%;\n overflow: auto;\n }\n\n ace-editor {\n height: 100%;\n width: 100%;\n }\n `;\n}\n"]}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import 'ace-builds/src-noconflict/ace';
|
|
2
|
+
import 'ace-builds/src-noconflict/theme-sqlserver.js';
|
|
3
|
+
import 'ace-builds/src-noconflict/mode-xml.js';
|
|
4
|
+
import 'ace-builds/src-noconflict/ext-searchbox.js';
|
|
2
5
|
import { Ace } from 'ace-builds';
|
|
3
6
|
import type * as AceGlobal from 'ace-builds';
|
|
4
7
|
declare global {
|
|
@@ -2,6 +2,9 @@ import { __decorate } from "tslib";
|
|
|
2
2
|
/* eslint-disable class-methods-use-this */
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-unsafe-declaration-merging */
|
|
4
4
|
import 'ace-builds/src-noconflict/ace';
|
|
5
|
+
import 'ace-builds/src-noconflict/theme-sqlserver.js';
|
|
6
|
+
import 'ace-builds/src-noconflict/mode-xml.js';
|
|
7
|
+
import 'ace-builds/src-noconflict/ext-searchbox.js';
|
|
5
8
|
import { NotifyAttribute, NotifyBooleanAttribute, NotifyNumericAttribute, } from './property-decorators.js';
|
|
6
9
|
import { debounce } from './debounce.js';
|
|
7
10
|
var ValueUpdateMode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AceEditor.js","sourceRoot":"","sources":["../../ace-editor/AceEditor.ts"],"names":[],"mappings":";AAAA,2CAA2C;AAC3C,qEAAqE;AACrE,OAAO,+BAA+B,CAAC;AAEvC,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AASzC,IAAK,eAIJ;AAJD,WAAK,eAAe;IAClB,kCAAe,CAAA;IACf,8BAAW,CAAA;IACX,oCAAiB,CAAA;AACnB,CAAC,EAJI,eAAe,KAAf,eAAe,QAInB;AAED,SAAS,oBAAoB,CAAC,IAAsB;IAClD,IAAI,IAAI,KAAK,eAAe,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC,CAAC;IAC9C,IAAI,IAAI,KAAK,eAAe,CAAC,GAAG;QAAE,OAAO,CAAC,CAAC;IAC3C,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;GAEG;AACH,MAAM,SAAU,SAAQ,WAAW;IAAnC;;QA6EU,qBAAgB,GAAG,QAAQ,CAAC,GAAG,EAAE;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC5E,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAE5C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAErD,IAAI,CAAC,YAAY,EAAE,CAAC;YAEpB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,qBAAqB,CAAC,CAAC;YAC3D,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,mBAAmB,CAAC,CAAC;YAEnD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;YACrC,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;gBACxB,MAAM,CAAC,QAAQ,CACb,IAAI,CAAC,KAAK,IAAI,EAAE,EAChB,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAC3C,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,UAAU,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEpD,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChD,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1D,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC7D,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAE7D,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC9C,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChD,CAAC;YAED,MAAM,CAAC,UAAU,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEhD,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACxC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACvC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACpC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAEnC,IAAI,CAAC,MAAM,EAAE,CAAC;YAEd,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACxB,CAAC,CAAC,CAAC;QAsEK,iBAAY,GAAG,QAAQ,CAAC,GAAG,EAAE;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;gBACxB,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC;gBAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,CAAC,CAAC;QAEK,eAAU,GAAG,GAAG,EAAE;YACxB,IAAI,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC;IACJ,CAAC;IA1MC,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,OAAO;QACT,OAAO;YACL,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,SAAS;SACtC,CAAC;IACJ,CAAC;IAyCD,MAAM,KAAK,kBAAkB;QAC3B,OAAO,SAAS,CAAC,mBAAmB,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,oBAAoB,CAAC,IAAY;QAC/B,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAEO,QAAQ,CAAI,IAAY,EAAE,MAAS;QACzC,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,IAAI,EAAE;YACpB,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,KAAK;YACjB,MAAM;SACP,CAAC,CACH,CAAC;IACJ,CAAC;IA+CO,YAAY;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAuC,CAAC;QACzE,MAAM,UAAU,GAAG,gBAAgB,CAAC;QACpC,MAAM,aAAa,GAAG,0BAA0B,CAAC;QAEjD,gDAAgD;QAChD,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC9C,KAAK,CAAC,EAAE,GAAG,aAAa,CAAC;gBACzB,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;gBACxB,KAAK,CAAC,SAAS,GAAG;;;;;;SAMjB,CAAC;gBAEF,IAAI,QAAQ,YAAY,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAClD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3C,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;gBACxD,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,QAAQ,YAAY,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;wBAClD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzD,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YAChC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;gBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,6DAA6D;IAC7D,wBAAwB,CAAC,IAAY;QACnC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,6DAA6D;IAC7D,qBAAqB,CAAC,IAAY;QAChC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IACzB,CAAC;;AA3Lc,6BAAmB,GAAa,EAAE,AAAf,CAAgB;AAclD;IADC,eAAe,EAAE;wCACH;AAGf;IADC,eAAe,EAAE;uCACJ;AAGd;IADC,eAAe,EAAE;wCACH;AAGf;IADC,sBAAsB,EAAE;0CACR;AAGjB;IADC,sBAAsB,EAAE;2CACN;AAGnB;IADC,sBAAsB,EAAE;2CACN;AAGnB;IADC,sBAAsB,EAAE;uCACV;AAGf;IADC,eAAe,EAAE;kDACgB;AAGlC;IADC,sBAAsB,EAAE;0DACS;AAGlC;IADC,sBAAsB,EAAE;6CACJ;AAGrB;IADC,sBAAsB,EAAE;0DACS;AAGlC;IADC,sBAAsB,EAAE;kDACC;AAG1B;IADC,eAAe,EAAE;2CACA;AAmLpB,eAAe,SAAS,CAAC","sourcesContent":["/* eslint-disable class-methods-use-this */\n/* eslint-disable @typescript-eslint/no-unsafe-declaration-merging */\nimport 'ace-builds/src-noconflict/ace';\n\nimport {\n NotifyAttribute,\n NotifyBooleanAttribute,\n NotifyNumericAttribute,\n} from './property-decorators.js';\n\nimport { Ace } from 'ace-builds';\nimport { debounce } from './debounce.js';\nimport type * as AceGlobal from 'ace-builds';\n\ndeclare global {\n interface Window {\n ace: typeof AceGlobal;\n }\n}\n\nenum ValueUpdateMode {\n start = 'start',\n end = 'end',\n select = 'select',\n}\n\nfunction getValueUpdateNumber(mode?: ValueUpdateMode): number {\n if (mode === ValueUpdateMode.start) return -1;\n if (mode === ValueUpdateMode.end) return 1;\n return 0;\n}\n\n/**\n * Custom element Ace code editor\n */\nclass AceEditor extends HTMLElement {\n private static _observedAttributes: string[] = [];\n\n private _editor?: Ace.Editor;\n get editor(): Ace.Editor | undefined {\n return this._editor;\n }\n\n get version(): { [key: string]: string } {\n return {\n ace: window.ace?.version || 'unknown',\n };\n }\n\n @NotifyAttribute()\n value?: string;\n\n @NotifyAttribute()\n mode?: string;\n\n @NotifyAttribute()\n theme?: string;\n\n @NotifyNumericAttribute()\n tabSize?: number;\n\n @NotifyBooleanAttribute()\n readonly?: boolean;\n\n @NotifyBooleanAttribute()\n softTabs?: boolean;\n\n @NotifyBooleanAttribute()\n wrap?: boolean;\n\n @NotifyAttribute()\n valueUpdateMode?: ValueUpdateMode;\n\n @NotifyBooleanAttribute()\n hideActiveLineHighlight?: boolean;\n\n @NotifyBooleanAttribute()\n hideGutter?: boolean;\n\n @NotifyBooleanAttribute()\n hideGutterLineHighlight?: boolean;\n\n @NotifyBooleanAttribute()\n hidePrintMargin?: boolean;\n\n @NotifyAttribute()\n basePath?: string;\n\n static get observedAttributes(): string[] {\n return AceEditor._observedAttributes;\n }\n\n /**\n * Registers an attribute to be observed.\n *\n * @param name Attribute name to observe.\n * @internal\n */\n addObservedAttribute(name: string): void {\n AceEditor._observedAttributes.push(name);\n }\n\n private dispatch<T>(type: string, detail: T): void {\n this.dispatchEvent(\n new CustomEvent(type, {\n bubbles: true,\n cancelable: false,\n detail,\n }),\n );\n }\n\n private initializeEditor = debounce(() => {\n const basePath = this.basePath || import.meta.url.replace(/[^/]+$/, 'ace/');\n window.ace.config.set('basePath', basePath);\n\n const editor = this._editor || window.ace.edit(this);\n\n this.appendStyles();\n\n editor.session.setMode(this.mode || 'ace/mode/javascript');\n editor.setTheme(this.theme || 'ace/theme/eclipse');\n\n const text = editor.getValue() || '';\n if (text !== this.value) {\n editor.setValue(\n this.value || '',\n getValueUpdateNumber(this.valueUpdateMode),\n );\n }\n\n editor.getSession().setTabSize(this.tabSize || 2);\n editor.getSession().setUseSoftTabs(!!this.softTabs);\n\n editor.renderer.setShowGutter(!this.hideGutter);\n editor.renderer.setShowPrintMargin(!this.hidePrintMargin);\n editor.setHighlightActiveLine(!this.hideActiveLineHighlight);\n editor.setHighlightGutterLine(!this.hideGutterLineHighlight);\n\n editor.setReadOnly(!!this.readonly);\n if (this.readonly) {\n editor.setHighlightActiveLine(!this.readonly);\n editor.setHighlightGutterLine(!this.readonly);\n }\n\n editor.getSession().setUseWrapMode(!!this.wrap);\n\n editor.off('change', this.handleChange);\n editor.on('change', this.handleChange);\n editor.off('blur', this.handleBlur);\n editor.on('blur', this.handleBlur);\n\n this.resize();\n\n this._editor = editor;\n });\n\n private appendStyles() {\n const rootNode = this.getRootNode() as Document | ShadowRoot | undefined;\n const aceStyleId = `ace_editor.css`;\n const customStyleId = `ace-custom-element-style`;\n\n // initialize styles if rendering on the client:\n if (rootNode) {\n if (!rootNode.getElementById?.(customStyleId)) {\n const style = document.createElement('style');\n style.id = customStyleId;\n style.type = 'text/css';\n style.innerHTML = `\n ace-editor {\n display: block;\n width: 100%;\n height: 250px;\n }\n `;\n\n if (rootNode instanceof Document && rootNode.head) {\n rootNode.head.appendChild(style);\n } else {\n rootNode.appendChild(style);\n }\n }\n\n if (!rootNode.getElementById?.(aceStyleId)) {\n const editorStyle = document.getElementById(aceStyleId);\n if (editorStyle) {\n if (rootNode instanceof Document && rootNode.head) {\n rootNode.head.appendChild(editorStyle.cloneNode(true));\n } else {\n rootNode.appendChild(editorStyle.cloneNode(true));\n }\n }\n }\n }\n }\n\n connectedCallback(): void {\n this.initializeEditor().then(() => {\n this.dispatch('ready', {\n editor: this.editor,\n });\n });\n }\n\n disconnectedCallback(): void {\n if (!this._editor) return;\n\n this._editor.off('change', this.handleChange);\n this._editor.off('blur', this.handleBlur);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n attributeChangedCallback(name: string): void {\n this.initializeEditor();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n notifyPropertyChanged(name: string): void {\n this.initializeEditor();\n }\n\n resize(): void {\n this._editor?.resize();\n }\n\n private handleChange = debounce(() => {\n const text = this._editor?.getValue() || '';\n if (text !== this.value) {\n if (text) {\n this.setAttribute('value', text);\n } else {\n this.removeAttribute('value');\n }\n\n this.dispatch('change', text);\n }\n });\n\n private handleBlur = () => {\n this.dispatchEvent(new FocusEvent('blur'));\n };\n}\n\ninterface AceEditor {\n addEventListener(\n type: 'change',\n listener: (event: CustomEvent<string>) => void,\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): void;\n\n removeEventListener(\n type: 'change',\n listener: (event: CustomEvent<string>) => void,\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ): void;\n}\n\nexport default AceEditor;\n"]}
|
|
1
|
+
{"version":3,"file":"AceEditor.js","sourceRoot":"","sources":["../../ace-editor/AceEditor.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable class-methods-use-this */\n/* eslint-disable @typescript-eslint/no-unsafe-declaration-merging */\nimport 'ace-builds/src-noconflict/ace';\nimport 'ace-builds/src-noconflict/theme-sqlserver.js';\nimport 'ace-builds/src-noconflict/mode-xml.js';\nimport 'ace-builds/src-noconflict/ext-searchbox.js';\n\nimport {\n NotifyAttribute,\n NotifyBooleanAttribute,\n NotifyNumericAttribute,\n} from './property-decorators.js';\n\nimport { Ace } from 'ace-builds';\nimport { debounce } from './debounce.js';\nimport type * as AceGlobal from 'ace-builds';\n\ndeclare global {\n interface Window {\n ace: typeof AceGlobal;\n }\n}\n\nenum ValueUpdateMode {\n start = 'start',\n end = 'end',\n select = 'select',\n}\n\nfunction getValueUpdateNumber(mode?: ValueUpdateMode): number {\n if (mode === ValueUpdateMode.start) return -1;\n if (mode === ValueUpdateMode.end) return 1;\n return 0;\n}\n\n/**\n * Custom element Ace code editor\n */\nclass AceEditor extends HTMLElement {\n private static _observedAttributes: string[] = [];\n\n private _editor?: Ace.Editor;\n get editor(): Ace.Editor | undefined {\n return this._editor;\n }\n\n get version(): { [key: string]: string } {\n return {\n ace: window.ace?.version || 'unknown',\n };\n }\n\n @NotifyAttribute()\n value?: string;\n\n @NotifyAttribute()\n mode?: string;\n\n @NotifyAttribute()\n theme?: string;\n\n @NotifyNumericAttribute()\n tabSize?: number;\n\n @NotifyBooleanAttribute()\n readonly?: boolean;\n\n @NotifyBooleanAttribute()\n softTabs?: boolean;\n\n @NotifyBooleanAttribute()\n wrap?: boolean;\n\n @NotifyAttribute()\n valueUpdateMode?: ValueUpdateMode;\n\n @NotifyBooleanAttribute()\n hideActiveLineHighlight?: boolean;\n\n @NotifyBooleanAttribute()\n hideGutter?: boolean;\n\n @NotifyBooleanAttribute()\n hideGutterLineHighlight?: boolean;\n\n @NotifyBooleanAttribute()\n hidePrintMargin?: boolean;\n\n @NotifyAttribute()\n basePath?: string;\n\n static get observedAttributes(): string[] {\n return AceEditor._observedAttributes;\n }\n\n /**\n * Registers an attribute to be observed.\n *\n * @param name Attribute name to observe.\n * @internal\n */\n addObservedAttribute(name: string): void {\n AceEditor._observedAttributes.push(name);\n }\n\n private dispatch<T>(type: string, detail: T): void {\n this.dispatchEvent(\n new CustomEvent(type, {\n bubbles: true,\n cancelable: false,\n detail,\n }),\n );\n }\n\n private initializeEditor = debounce(() => {\n const basePath = this.basePath || import.meta.url.replace(/[^/]+$/, 'ace/');\n window.ace.config.set('basePath', basePath);\n\n const editor = this._editor || window.ace.edit(this);\n\n this.appendStyles();\n\n editor.session.setMode(this.mode || 'ace/mode/javascript');\n editor.setTheme(this.theme || 'ace/theme/eclipse');\n\n const text = editor.getValue() || '';\n if (text !== this.value) {\n editor.setValue(\n this.value || '',\n getValueUpdateNumber(this.valueUpdateMode),\n );\n }\n\n editor.getSession().setTabSize(this.tabSize || 2);\n editor.getSession().setUseSoftTabs(!!this.softTabs);\n\n editor.renderer.setShowGutter(!this.hideGutter);\n editor.renderer.setShowPrintMargin(!this.hidePrintMargin);\n editor.setHighlightActiveLine(!this.hideActiveLineHighlight);\n editor.setHighlightGutterLine(!this.hideGutterLineHighlight);\n\n editor.setReadOnly(!!this.readonly);\n if (this.readonly) {\n editor.setHighlightActiveLine(!this.readonly);\n editor.setHighlightGutterLine(!this.readonly);\n }\n\n editor.getSession().setUseWrapMode(!!this.wrap);\n\n editor.off('change', this.handleChange);\n editor.on('change', this.handleChange);\n editor.off('blur', this.handleBlur);\n editor.on('blur', this.handleBlur);\n\n this.resize();\n\n this._editor = editor;\n });\n\n private appendStyles() {\n const rootNode = this.getRootNode() as Document | ShadowRoot | undefined;\n const aceStyleId = `ace_editor.css`;\n const customStyleId = `ace-custom-element-style`;\n\n // initialize styles if rendering on the client:\n if (rootNode) {\n if (!rootNode.getElementById?.(customStyleId)) {\n const style = document.createElement('style');\n style.id = customStyleId;\n style.type = 'text/css';\n style.innerHTML = `\n ace-editor {\n display: block;\n width: 100%;\n height: 250px;\n }\n `;\n\n if (rootNode instanceof Document && rootNode.head) {\n rootNode.head.appendChild(style);\n } else {\n rootNode.appendChild(style);\n }\n }\n\n if (!rootNode.getElementById?.(aceStyleId)) {\n const editorStyle = document.getElementById(aceStyleId);\n if (editorStyle) {\n if (rootNode instanceof Document && rootNode.head) {\n rootNode.head.appendChild(editorStyle.cloneNode(true));\n } else {\n rootNode.appendChild(editorStyle.cloneNode(true));\n }\n }\n }\n }\n }\n\n connectedCallback(): void {\n this.initializeEditor().then(() => {\n this.dispatch('ready', {\n editor: this.editor,\n });\n });\n }\n\n disconnectedCallback(): void {\n if (!this._editor) return;\n\n this._editor.off('change', this.handleChange);\n this._editor.off('blur', this.handleBlur);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n attributeChangedCallback(name: string): void {\n this.initializeEditor();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n notifyPropertyChanged(name: string): void {\n this.initializeEditor();\n }\n\n resize(): void {\n this._editor?.resize();\n }\n\n private handleChange = debounce(() => {\n const text = this._editor?.getValue() || '';\n if (text !== this.value) {\n if (text) {\n this.setAttribute('value', text);\n } else {\n this.removeAttribute('value');\n }\n\n this.dispatch('change', text);\n }\n });\n\n private handleBlur = () => {\n this.dispatchEvent(new FocusEvent('blur'));\n };\n}\n\ninterface AceEditor {\n addEventListener(\n type: 'change',\n listener: (event: CustomEvent<string>) => void,\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): void;\n\n removeEventListener(\n type: 'change',\n listener: (event: CustomEvent<string>) => void,\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ): void;\n}\n\nexport default AceEditor;\n"]}
|
package/dist/wizards/dotype.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dotype.js","sourceRoot":"","sources":["../../wizards/dotype.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EACL,aAAa,EACb,QAAQ,GAIT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,SAAS,kBAAkB,CAAC,MAAe;IACzC,OAAO,CAAC,MAA4B,EAAY,EAAE;QAChD,MAAM,WAAW,GAAkC,EAAE,CAAC;QACtD,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACvB,WAAW,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAE,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QAE1E,OAAO;YACL,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;SACpE,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAe;IAChD,OAAO;QACL,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC;SACnC;QACD,OAAO,EAAE;YACP,IAAI,CAAA;;iBAEO,EAAE;;;;mBAIA,QAAQ,CAAC,OAAO;yBACV;YACnB,IAAI,CAAA;;
|
|
1
|
+
{"version":3,"file":"dotype.js","sourceRoot":"","sources":["../../wizards/dotype.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EACL,aAAa,EACb,QAAQ,GAIT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,SAAS,kBAAkB,CAAC,MAAe;IACzC,OAAO,CAAC,MAA4B,EAAY,EAAE;QAChD,MAAM,WAAW,GAAkC,EAAE,CAAC;QACtD,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACvB,WAAW,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAE,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QAE1E,OAAO;YACL,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;SACpE,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAe;IAChD,OAAO;QACL,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC;SACnC;QACD,OAAO,EAAE;YACP,IAAI,CAAA;;iBAEO,EAAE;;;;mBAIA,QAAQ,CAAC,OAAO;yBACV;YACnB,IAAI,CAAA;;iBAEO,IAAI;;mBAEF,QAAQ,CAAC,gBAAgB;yBACnB;YACnB,IAAI,CAAA;;iBAEO,KAAK;mBACH,QAAQ,CAAC,GAAG;yBACN;SACpB;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { html } from 'lit';\n\nimport { EditV2 } from '@openscd/oscd-api';\nimport { getReference } from '@openscd/scl-lib';\n\nimport {\n createElement,\n getValue,\n Wizard,\n WizardActor,\n WizardInputElement,\n} from '../foundation.js';\nimport { patterns } from './patterns.js';\n\nfunction createDOTypeAction(parent: Element): WizardActor {\n return (inputs: WizardInputElement[]): EditV2[] => {\n const doTypeAttrs: Record<string, string | null> = {};\n const doTypeKeys = ['id', 'desc', 'cdc'];\n doTypeKeys.forEach(key => {\n doTypeAttrs[key] = getValue(inputs.find(i => i.label === key)!);\n });\n\n const doType = createElement(parent.ownerDocument, 'DOType', doTypeAttrs);\n\n return [\n { parent, node: doType, reference: getReference(parent, 'DOType') },\n ];\n };\n}\n\nexport function createDOTypeWizard(parent: Element): Wizard {\n return {\n title: 'Add DOType',\n primary: {\n icon: 'save',\n label: 'Save',\n action: createDOTypeAction(parent),\n },\n content: [\n html`<scl-text-field\n label=\"id\"\n .value=${''}\n required\n maxlength=\"127\"\n minlength=\"1\"\n pattern=\"${patterns.nmToken}\"\n ></scl-text-field>`,\n html`<scl-text-field\n label=\"desc\"\n .value=${null}\n nullable\n pattern=\"${patterns.normalizedString}\"\n ></scl-text-field>`,\n html`<scl-text-field\n label=\"cdc\"\n .value=${'ENS'}\n pattern=\"${patterns.cdc}\"\n ></scl-text-field>`,\n ],\n };\n}\n"]}
|
package/dist/wizards/function.js
CHANGED
|
@@ -12,12 +12,12 @@ export function contentFunctionWizard(options) {
|
|
|
12
12
|
></scl-text-field>`,
|
|
13
13
|
html `<scl-text-field
|
|
14
14
|
label="desc"
|
|
15
|
-
.
|
|
15
|
+
.value=${options.desc}
|
|
16
16
|
nullable
|
|
17
17
|
></scl-text-field>`,
|
|
18
18
|
html `<scl-text-field
|
|
19
19
|
label="type"
|
|
20
|
-
.
|
|
20
|
+
.value=${options.type}
|
|
21
21
|
nullable
|
|
22
22
|
></scl-text-field>`,
|
|
23
23
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function.js","sourceRoot":"","sources":["../../wizards/function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAkB,MAAM,KAAK,CAAC;AAG3C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EACL,aAAa,EACb,QAAQ,EACR,aAAa,GAId,MAAM,kBAAkB,CAAC;AAS1B,MAAM,UAAU,qBAAqB,CACnC,OAAsB;IAEtB,OAAO;QACL,IAAI,CAAA;;eAEO,OAAO,CAAC,IAAI;;wBAEH,OAAO,CAAC,cAAc;;uBAEvB;QACnB,IAAI,CAAA;;
|
|
1
|
+
{"version":3,"file":"function.js","sourceRoot":"","sources":["../../wizards/function.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult } from 'lit';\n\nimport { EditV2 } from '@openscd/oscd-api';\nimport { getReference } from '@openscd/scl-lib';\n\nimport {\n createElement,\n getValue,\n reservedNames,\n Wizard,\n WizardActor,\n WizardInputElement,\n} from '../foundation.js';\n\ntype RenderOptions = {\n name: string | null;\n desc: string | null;\n type: string | null;\n reservedValues: string[];\n};\n\nexport function contentFunctionWizard(\n options: RenderOptions,\n): TemplateResult[] {\n return [\n html`<scl-text-field\n label=\"name\"\n .value=${options.name}\n required\n .reservedValues=${options.reservedValues}\n dialogInitialFocus\n ></scl-text-field>`,\n html`<scl-text-field\n label=\"desc\"\n .value=${options.desc}\n nullable\n ></scl-text-field>`,\n html`<scl-text-field\n label=\"type\"\n .value=${options.type}\n nullable\n ></scl-text-field>`,\n ];\n}\n\nfunction createFunctionAction(parent: Element): WizardActor {\n return (inputs: WizardInputElement[]): EditV2[] => {\n const functionAttrs: Record<string, string | null> = {};\n const functionKeys = ['name', 'desc', 'type'];\n functionKeys.forEach(key => {\n functionAttrs[key] = getValue(inputs.find(i => i.label === key)!);\n });\n\n const fUnction = createElement(\n parent.ownerDocument,\n 'Function',\n functionAttrs,\n );\n\n return [\n { parent, node: fUnction, reference: getReference(parent, 'Function') },\n ];\n };\n}\n\nexport function createFunctionWizard(parent: Element): Wizard {\n const name = '';\n const desc = null;\n const type = null;\n\n return {\n title: 'Add Function',\n primary: {\n icon: 'save',\n label: 'save',\n action: createFunctionAction(parent),\n },\n content: [\n ...contentFunctionWizard({\n name,\n desc,\n type,\n reservedValues: reservedNames(parent, 'Function'),\n }),\n ],\n };\n}\n\nfunction updateFunction(element: Element): WizardActor {\n return (inputs: WizardInputElement[]): EditV2[] => {\n const attributes: Record<string, string | null> = {};\n const functionKeys = ['name', 'desc', 'type'];\n functionKeys.forEach(key => {\n attributes[key] = getValue(inputs.find(i => i.label === key)!);\n });\n\n if (\n functionKeys.some(key => attributes[key] !== element.getAttribute(key))\n ) {\n return [{ element, attributes }];\n }\n\n return [];\n };\n}\n\nexport function editFunctionWizard(element: Element): Wizard {\n const name = element.getAttribute('name');\n const desc = element.getAttribute('desc');\n const type = element.getAttribute('type');\n\n return {\n title: 'Edit Function',\n primary: {\n icon: 'save',\n label: 'save',\n action: updateFunction(element),\n },\n content: [\n ...contentFunctionWizard({\n name,\n desc,\n type,\n reservedValues: reservedNames(element),\n }),\n ],\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generalEquipment.js","sourceRoot":"","sources":["../../wizards/generalEquipment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAkB,MAAM,KAAK,CAAC;AAG3C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EACL,aAAa,EACb,QAAQ,EACR,aAAa,GAId,MAAM,kBAAkB,CAAC;AAU1B,MAAM,UAAU,6BAA6B,CAC3C,OAAsB;IAEtB,OAAO;QACL,IAAI,CAAA;;eAEO,OAAO,CAAC,IAAI;;wBAEH,OAAO,CAAC,cAAc;;uBAEvB;QACnB,IAAI,CAAA;;
|
|
1
|
+
{"version":3,"file":"generalEquipment.js","sourceRoot":"","sources":["../../wizards/generalEquipment.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult } from 'lit';\n\nimport { EditV2 } from '@openscd/oscd-api';\nimport { getReference } from '@openscd/scl-lib';\n\nimport {\n createElement,\n getValue,\n reservedNames,\n Wizard,\n WizardActor,\n WizardInputElement,\n} from '../foundation.js';\n\ntype RenderOptions = {\n name: string | null;\n desc: string | null;\n type: string | null;\n virtual: string | null;\n reservedValues: string[];\n};\n\nexport function contentGeneralEquipmentWizard(\n options: RenderOptions,\n): TemplateResult[] {\n return [\n html`<scl-text-field\n label=\"name\"\n .value=${options.name}\n required\n .reservedValues=${options.reservedValues}\n dialogInitialFocus\n ></scl-text-field>`,\n html`<scl-text-field\n label=\"desc\"\n .value=${options.desc}\n nullable\n ></scl-text-field>`,\n html`<scl-text-field\n label=\"type\"\n .value=${options.type}\n minLength=\"3\"\n pattern=\"AXN|BAT|MOT|FAN|FIL|PMP|TNK|VLV|E[A-Z]*\"\n required\n ></scl-text-field>`,\n html`<scl-checkbox\n label=\"virtual\"\n .value=${options.virtual}\n nullable\n ></scl-checkbox>`,\n ];\n}\n\nfunction createAction(parent: Element): WizardActor {\n return (inputs: WizardInputElement[]): EditV2[] => {\n const attributes: Record<string, string | null> = {};\n const generalEquipmentKeys = ['name', 'desc', 'type', 'virtual'];\n generalEquipmentKeys.forEach(key => {\n attributes[key] = getValue(inputs.find(i => i.label === key)!);\n });\n\n const generalEquipment = createElement(\n parent.ownerDocument,\n 'GeneralEquipment',\n attributes,\n );\n\n return [\n {\n parent,\n node: generalEquipment,\n reference: getReference(parent, 'GeneralEquipment'),\n },\n ];\n };\n}\n\nexport function createGeneralEquipmentWizard(parent: Element): Wizard {\n const name = '';\n const desc = null;\n const type = null;\n const virtual = null;\n\n return {\n title: 'Add GeneralEquipment',\n primary: {\n icon: 'save',\n label: 'save',\n action: createAction(parent),\n },\n content: [\n ...contentGeneralEquipmentWizard({\n name,\n desc,\n type,\n virtual,\n reservedValues: reservedNames(parent, 'GeneralEquipment'),\n }),\n ],\n };\n}\n\nfunction updateAction(element: Element): WizardActor {\n return (inputs: WizardInputElement[]): EditV2[] => {\n const attributes: Record<string, string | null> = {};\n const generalEquipmentKeys = ['name', 'desc', 'type', 'virtual'];\n generalEquipmentKeys.forEach(key => {\n attributes[key] = getValue(inputs.find(i => i.label === key)!);\n });\n\n if (\n generalEquipmentKeys.some(\n key => attributes[key] !== element.getAttribute(key),\n )\n ) {\n return [{ element, attributes }];\n }\n\n return [];\n };\n}\n\nexport function editGeneralEquipmentWizard(element: Element): Wizard {\n const name = element.getAttribute('name');\n const desc = element.getAttribute('desc');\n const type = element.getAttribute('type');\n const virtual = element.getAttribute('virtual');\n\n return {\n title: 'Edit GeneralEquipment',\n primary: {\n icon: 'save',\n label: 'save',\n action: updateAction(element),\n },\n content: [\n ...contentGeneralEquipmentWizard({\n name,\n desc,\n type,\n virtual,\n reservedValues: reservedNames(element),\n }),\n ],\n };\n}\n"]}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@omicronenergy/oscd-scl-dialogs",
|
|
3
3
|
"description": "Provides a resuable dialog for adding and editing SCL elements in OpenSCD.",
|
|
4
4
|
"displayName": "OpenSCD Edit Dialog",
|
|
5
|
-
"version": "0.0.
|
|
5
|
+
"version": "0.0.11",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "git+https://github.com/OMICRONEnergyOSS/oscd-scl-dialogs.git"
|