@omicronenergy/oscd-scl-dialogs 0.0.8 → 0.0.10
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 +20 -0
- package/custom-elements.json +427 -1
- package/dist/OscdTextEditor.d.ts +4 -2
- package/dist/OscdTextEditor.js +32 -11
- package/dist/OscdTextEditor.js.map +1 -1
- package/dist/ace-editor/AceEditor.d.ts +62 -0
- package/dist/ace-editor/AceEditor.js +202 -0
- package/dist/ace-editor/AceEditor.js.map +1 -0
- package/dist/ace-editor/debounce.d.ts +24 -0
- package/dist/ace-editor/debounce.js +41 -0
- package/dist/ace-editor/debounce.js.map +1 -0
- package/dist/ace-editor/property-decorators.d.ts +66 -0
- package/dist/ace-editor/property-decorators.js +171 -0
- package/dist/ace-editor/property-decorators.js.map +1 -0
- package/dist/wizards/ldevice.js +7 -5
- package/dist/wizards/ldevice.js.map +1 -1
- package/package.json +6 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ldevice.js","sourceRoot":"","sources":["../../wizards/ldevice.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ldevice.js","sourceRoot":"","sources":["../../wizards/ldevice.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult } from 'lit';\n\nimport { EditV2 } from '@openscd/oscd-api';\n\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';\nimport { SclTextField } from '@openenergytools/scl-text-field';\n\nexport function lDeviceNamePattern(): string {\n return (\n '[A-Za-z][0-9A-Za-z_]{0,2}|' +\n '[A-Za-z][0-9A-Za-z_]{4,63}|' +\n '[A-MO-Za-z][0-9A-Za-z_]{3}|' +\n 'N[0-9A-Za-np-z_][0-9A-Za-z_]{2}|' +\n 'No[0-9A-Za-mo-z_][0-9A-Za-z_]|' +\n 'Non[0-9A-Za-df-z_]'\n );\n}\n\nfunction ldNameIsAllowed(element: Element): boolean {\n return !!element.closest('IED')?.querySelector('Services > ConfLdName');\n}\n\nfunction reservedInstLDevice(currentElement: Element): string[] {\n const ied = currentElement.closest('IED');\n if (!ied) {\n return [];\n }\n\n return Array.from(\n ied.querySelectorAll(':scope > AccessPoint > Server > LDevice'),\n )\n .map(ld => ld.getAttribute('inst') ?? '')\n .filter(name => name !== currentElement.getAttribute('inst'));\n}\n\nfunction render(\n inst: string | null,\n ldName: string | null,\n desc: string | null,\n reservedInsts: string[],\n allowLdName: boolean,\n disableInst: boolean,\n): TemplateResult[] {\n const content = [\n allowLdName\n ? html`<scl-text-field\n label=\"ldName\"\n .value=${ldName}\n nullable\n supportingText=\"Logical device name\"\n validationMessage=\"Required\"\n dialogInitialFocus\n pattern=\"${lDeviceNamePattern()}\"\n ></scl-text-field>`\n : html`<scl-text-field\n label=\"ldName\"\n .value=${ldName}\n supportingText=\"IED doesn't support Functional Naming\"\n helperPersistent\n readOnly\n disabled\n ></scl-text-field>`,\n html`<scl-text-field\n label=\"desc\"\n .value=${desc}\n nullable\n supportingText=\"Logical device description\"\n pattern=\"${patterns.normalizedString}\"\n ></scl-text-field>`,\n html`<scl-text-field\n label=\"inst\"\n .value=${inst}\n ?disabled=${disableInst}\n required\n supportingText=\"Logical device inst\"\n pattern=\"${patterns.normalizedString}\"\n @input=${(e: Event) => {\n const input = e.target as SclTextField;\n const currentValue = getValue(input) ?? '';\n let customValidityMsg = '';\n if (reservedInsts.includes(currentValue)) {\n customValidityMsg = `\"${currentValue}\" is already in use`;\n }\n input.setCustomValidity(customValidityMsg);\n input.reportValidity();\n }}\n .reservedValues=${reservedInsts}\n ></scl-text-field>`,\n ];\n return content;\n}\n\nexport function createAction(parent: Element): WizardActor {\n return (inputs: WizardInputElement[]): EditV2[] => {\n const inst = getValue(inputs.find(i => i.label === 'inst')!)!;\n const ldNameAllowed = ldNameIsAllowed(parent);\n const ldName = ldNameAllowed\n ? getValue(inputs.find(i => i.label === 'ldName')!)\n : null;\n const desc = getValue(inputs.find(i => i.label === 'desc')!);\n const node = createElement(parent.ownerDocument, 'LDevice', {\n inst,\n ldName,\n desc,\n });\n\n return [\n {\n parent,\n node,\n reference: getReference(parent, 'LDevice'),\n },\n ];\n };\n}\n\nexport function updateAction(element: Element): WizardActor {\n return (inputs: WizardInputElement[]): EditV2[] => {\n const ldNameAllowed = ldNameIsAllowed(element);\n const desc = getValue(inputs.find(i => i.label === 'desc')!);\n const ldName = ldNameAllowed\n ? getValue(inputs.find(i => i.label === 'ldName')!)\n : null;\n\n const attributes = {\n ...(ldNameAllowed && ldName !== element.getAttribute('ldName')\n ? { ldName }\n : {}),\n ...(desc !== element.getAttribute('desc') ? { desc } : {}),\n };\n\n return [\n {\n element,\n attributes,\n },\n ];\n };\n}\n\nexport function createLDeviceWizard(parent: Element): Wizard {\n return {\n title: 'Add LDevice',\n primary: {\n icon: '',\n label: 'save',\n action: createAction(parent),\n },\n content: render(\n null,\n null,\n null,\n reservedInstLDevice(parent),\n ldNameIsAllowed(parent),\n false,\n ),\n };\n}\n\nexport function editLDeviceWizard(element: Element): Wizard {\n return {\n title: 'Edit LDevice',\n primary: {\n icon: 'edit',\n label: 'save',\n action: updateAction(element),\n },\n content: render(\n element.getAttribute('inst'),\n element.getAttribute('ldName'),\n element.getAttribute('desc'),\n reservedInstLDevice(element),\n ldNameIsAllowed(element),\n true,\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.10",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "git+https://github.com/OMICRONEnergyOSS/oscd-scl-dialogs.git"
|
|
@@ -44,7 +44,6 @@
|
|
|
44
44
|
"analyze": "cem analyze",
|
|
45
45
|
"start": "rimraf dist && tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"wds --watch --node-resolve\"",
|
|
46
46
|
"start:bundle": "npm run bundle && concurrently -k -r \"rollup -c rollup.config.js --watch\" \"wds --watch --root-dir ./dist\"",
|
|
47
|
-
"start:vite": "vite",
|
|
48
47
|
"build": "rimraf dist && tsc && npm run analyze -- --exclude dist",
|
|
49
48
|
"build:watch": "rimraf dist && npm run analyze -- --exclude dist && tsc --watch --preserveWatchOutput",
|
|
50
49
|
"bundle": "rimraf dist && rollup -c rollup.config.js",
|
|
@@ -58,6 +57,7 @@
|
|
|
58
57
|
"prepare": "husky"
|
|
59
58
|
},
|
|
60
59
|
"dependencies": {
|
|
60
|
+
"@omicronenergy/oscd-editor-source": "^0.0.3",
|
|
61
61
|
"@omicronenergy/oscd-shell": "^0.0.11",
|
|
62
62
|
"@open-wc/scoped-elements": "^3.0.6",
|
|
63
63
|
"@openenergytools/filterable-lists": "^1.2.0",
|
|
@@ -97,7 +97,6 @@
|
|
|
97
97
|
"@web/test-runner-commands": "0.9.0",
|
|
98
98
|
"@web/test-runner-playwright": "0.11.1",
|
|
99
99
|
"@web/test-runner-visual-regression": "0.10.0",
|
|
100
|
-
"@webcomponents/scoped-custom-element-registry": "0.0.10",
|
|
101
100
|
"concurrently": "^9.2.1",
|
|
102
101
|
"eslint": "^9.39.1",
|
|
103
102
|
"eslint-config-prettier": "^10.1.8",
|
|
@@ -115,8 +114,10 @@
|
|
|
115
114
|
"rollup-plugin-copy": "^3.5.0",
|
|
116
115
|
"sinon": "^21.0.1",
|
|
117
116
|
"typedoc": "^0.28.16",
|
|
118
|
-
"typescript": "^5.9.3"
|
|
119
|
-
|
|
117
|
+
"typescript": "^5.9.3"
|
|
118
|
+
},
|
|
119
|
+
"overrides": {
|
|
120
|
+
"playwright": "1.54.1"
|
|
120
121
|
},
|
|
121
122
|
"customElements": "custom-elements.json",
|
|
122
123
|
"prettier": {
|