@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.
@@ -1 +1 @@
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 if (\n ldName === element.getAttribute('ldName') &&\n desc === element.getAttribute('desc')\n ) {\n return [];\n }\n\n return [\n {\n element,\n attributes: { ldName, desc },\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"]}
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.8",
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
- "vite": "^7.3.1"
117
+ "typescript": "^5.9.3"
118
+ },
119
+ "overrides": {
120
+ "playwright": "1.54.1"
120
121
  },
121
122
  "customElements": "custom-elements.json",
122
123
  "prettier": {