@compas-oscd/open-scd 0.34.17 → 0.34.19

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.
Files changed (250) hide show
  1. package/dist/WizardDivider.d.ts +8 -8
  2. package/dist/WizardDivider.js +26 -26
  3. package/dist/Wizarding.js +36 -36
  4. package/dist/Wizarding.js.map +1 -1
  5. package/dist/action-icon.d.ts +25 -25
  6. package/dist/action-icon.js +51 -51
  7. package/dist/action-pane.d.ts +25 -25
  8. package/dist/action-pane.js +86 -86
  9. package/dist/addons/Editor.d.ts +25 -25
  10. package/dist/addons/Editor.js +105 -105
  11. package/dist/addons/Editor.js.map +1 -1
  12. package/dist/addons/History.d.ts +86 -93
  13. package/dist/addons/History.js +301 -302
  14. package/dist/addons/History.js.map +1 -1
  15. package/dist/addons/Layout.d.ts +96 -96
  16. package/dist/addons/Layout.js +448 -448
  17. package/dist/addons/Layout.js.map +1 -1
  18. package/dist/addons/Settings.d.ts +68 -68
  19. package/dist/addons/Settings.js +272 -272
  20. package/dist/addons/Settings.js.map +1 -1
  21. package/dist/addons/Waiter.d.ts +14 -14
  22. package/dist/addons/Waiter.js +40 -40
  23. package/dist/addons/Waiter.js.map +1 -1
  24. package/dist/addons/Wizards.d.ts +15 -15
  25. package/dist/addons/Wizards.js +46 -46
  26. package/dist/addons/editor/edit-action-to-v1-converter.d.ts +3 -3
  27. package/dist/addons/editor/edit-action-to-v1-converter.js +95 -95
  28. package/dist/addons/editor/edit-action-to-v1-converter.js.map +1 -1
  29. package/dist/addons/editor/edit-v1-to-v2-converter.d.ts +2 -2
  30. package/dist/addons/editor/edit-v1-to-v2-converter.js +36 -36
  31. package/dist/addons/editor/edit-v1-to-v2-converter.js.map +1 -1
  32. package/dist/addons/history/get-log-text.d.ts +5 -5
  33. package/dist/addons/history/get-log-text.js +25 -25
  34. package/dist/addons/history/get-log-text.js.map +1 -1
  35. package/dist/addons/menu-tabs/menu-tabs.d.ts +22 -22
  36. package/dist/addons/menu-tabs/menu-tabs.js +59 -59
  37. package/dist/addons/plugin-manager/custom-plugin-dialog.d.ts +28 -28
  38. package/dist/addons/plugin-manager/custom-plugin-dialog.js +71 -71
  39. package/dist/addons/plugin-manager/plugin-manager.d.ts +20 -20
  40. package/dist/addons/plugin-manager/plugin-manager.js +77 -77
  41. package/dist/core/api/api.js +7 -0
  42. package/dist/core/api/api.js.map +1 -0
  43. package/dist/core/api/editor/subject.js +22 -0
  44. package/dist/core/api/editor/subject.js.map +1 -0
  45. package/dist/core/api/editor/xml-editor.js +82 -0
  46. package/dist/core/api/editor/xml-editor.js.map +1 -0
  47. package/dist/core/api/plugin-state-api.js +27 -0
  48. package/dist/core/api/plugin-state-api.js.map +1 -0
  49. package/dist/core/foundation/cyrb64.js +26 -0
  50. package/dist/core/foundation/cyrb64.js.map +1 -0
  51. package/dist/core/foundation/deprecated/edit-event.js +44 -0
  52. package/dist/core/foundation/deprecated/edit-event.js.map +1 -0
  53. package/dist/core/foundation/deprecated/editor.js +94 -0
  54. package/dist/core/foundation/deprecated/editor.js.map +1 -0
  55. package/dist/core/foundation/deprecated/history.js +17 -0
  56. package/dist/core/foundation/deprecated/history.js.map +1 -0
  57. package/dist/core/foundation/deprecated/open-event.js +9 -0
  58. package/dist/core/foundation/deprecated/open-event.js.map +1 -0
  59. package/dist/core/foundation/deprecated/settings.js +19 -0
  60. package/dist/core/foundation/deprecated/settings.js.map +1 -0
  61. package/dist/core/foundation/deprecated/validation.js +8 -0
  62. package/dist/core/foundation/deprecated/validation.js.map +1 -0
  63. package/dist/core/foundation/deprecated/waiter.js +12 -0
  64. package/dist/core/foundation/deprecated/waiter.js.map +1 -0
  65. package/dist/core/foundation/edit-completed-event.js +11 -0
  66. package/dist/core/foundation/edit-completed-event.js.map +1 -0
  67. package/dist/core/foundation/edit-event.js +8 -0
  68. package/dist/core/foundation/edit-event.js.map +1 -0
  69. package/dist/core/foundation/edit.js +31 -0
  70. package/dist/core/foundation/edit.js.map +1 -0
  71. package/dist/core/foundation/handle-edit.js +151 -0
  72. package/dist/core/foundation/handle-edit.js.map +1 -0
  73. package/dist/core/foundation/open-event.js +8 -0
  74. package/dist/core/foundation/open-event.js.map +1 -0
  75. package/dist/core/foundation/plugin.js +2 -0
  76. package/dist/core/foundation/plugin.js.map +1 -0
  77. package/dist/core/foundation.js +14 -0
  78. package/dist/core/foundation.js.map +1 -0
  79. package/dist/core/locales.js +21 -0
  80. package/dist/core/locales.js.map +1 -0
  81. package/dist/filtered-list.d.ts +27 -27
  82. package/dist/filtered-list.js +118 -118
  83. package/dist/finder-list.d.ts +37 -37
  84. package/dist/finder-list.js +153 -153
  85. package/dist/foundation/compare.d.ts +79 -79
  86. package/dist/foundation/compare.js +216 -216
  87. package/dist/foundation/dai.d.ts +30 -30
  88. package/dist/foundation/dai.js +126 -126
  89. package/dist/foundation/generators.d.ts +13 -13
  90. package/dist/foundation/generators.js +66 -66
  91. package/dist/foundation/ied.d.ts +22 -22
  92. package/dist/foundation/ied.js +83 -83
  93. package/dist/foundation/ied.js.map +1 -1
  94. package/dist/foundation/nsd.d.ts +4 -4
  95. package/dist/foundation/nsd.js +12 -12
  96. package/dist/foundation/nsdoc.d.ts +14 -14
  97. package/dist/foundation/nsdoc.js +178 -178
  98. package/dist/foundation/scl.d.ts +1 -1
  99. package/dist/foundation/scl.js +63 -63
  100. package/dist/foundation.d.ts +230 -230
  101. package/dist/foundation.js +1921 -1921
  102. package/dist/foundation.js.map +1 -1
  103. package/dist/icons/compare.d.ts +3 -3
  104. package/dist/icons/compare.js +4 -4
  105. package/dist/icons/icons.d.ts +41 -41
  106. package/dist/icons/icons.js +92 -92
  107. package/dist/icons/ied-icons.d.ts +3 -3
  108. package/dist/icons/ied-icons.js +4 -4
  109. package/dist/icons/lnode.d.ts +16 -16
  110. package/dist/icons/lnode.js +17 -17
  111. package/dist/open-scd.d.ts +131 -131
  112. package/dist/open-scd.js +438 -438
  113. package/dist/open-scd.js.map +1 -1
  114. package/dist/openscd/src/WizardDivider.js +37 -0
  115. package/dist/openscd/src/WizardDivider.js.map +1 -0
  116. package/dist/openscd/src/Wizarding.js +38 -0
  117. package/dist/openscd/src/Wizarding.js.map +1 -0
  118. package/dist/openscd/src/action-icon.js +220 -0
  119. package/dist/openscd/src/action-icon.js.map +1 -0
  120. package/dist/openscd/src/action-pane.js +176 -0
  121. package/dist/openscd/src/action-pane.js.map +1 -0
  122. package/dist/openscd/src/addons/Editor.js +106 -0
  123. package/dist/openscd/src/addons/Editor.js.map +1 -0
  124. package/dist/openscd/src/addons/History.js +490 -0
  125. package/dist/openscd/src/addons/History.js.map +1 -0
  126. package/dist/openscd/src/addons/Layout.js +619 -0
  127. package/dist/openscd/src/addons/Layout.js.map +1 -0
  128. package/dist/openscd/src/addons/Settings.js +465 -0
  129. package/dist/openscd/src/addons/Settings.js.map +1 -0
  130. package/dist/openscd/src/addons/Waiter.js +45 -0
  131. package/dist/openscd/src/addons/Waiter.js.map +1 -0
  132. package/dist/openscd/src/addons/Wizards.js +48 -0
  133. package/dist/openscd/src/addons/Wizards.js.map +1 -0
  134. package/dist/openscd/src/addons/editor/edit-action-to-v1-converter.js +96 -0
  135. package/dist/openscd/src/addons/editor/edit-action-to-v1-converter.js.map +1 -0
  136. package/dist/openscd/src/addons/editor/edit-v1-to-v2-converter.js +37 -0
  137. package/dist/openscd/src/addons/editor/edit-v1-to-v2-converter.js.map +1 -0
  138. package/dist/openscd/src/addons/history/get-log-text.js +26 -0
  139. package/dist/openscd/src/addons/history/get-log-text.js.map +1 -0
  140. package/dist/openscd/src/addons/menu-tabs/menu-tabs.js +74 -0
  141. package/dist/openscd/src/addons/menu-tabs/menu-tabs.js.map +1 -0
  142. package/dist/openscd/src/addons/plugin-manager/custom-plugin-dialog.js +177 -0
  143. package/dist/openscd/src/addons/plugin-manager/custom-plugin-dialog.js.map +1 -0
  144. package/dist/openscd/src/addons/plugin-manager/plugin-manager.js +165 -0
  145. package/dist/openscd/src/addons/plugin-manager/plugin-manager.js.map +1 -0
  146. package/dist/openscd/src/filtered-list.js +168 -0
  147. package/dist/openscd/src/filtered-list.js.map +1 -0
  148. package/dist/openscd/src/finder-list.js +207 -0
  149. package/dist/openscd/src/finder-list.js.map +1 -0
  150. package/dist/openscd/src/foundation/compare.js +273 -0
  151. package/dist/openscd/src/foundation/compare.js.map +1 -0
  152. package/dist/openscd/src/foundation/dai.js +127 -0
  153. package/dist/openscd/src/foundation/dai.js.map +1 -0
  154. package/dist/openscd/src/foundation/generators.js +67 -0
  155. package/dist/openscd/src/foundation/generators.js.map +1 -0
  156. package/dist/openscd/src/foundation/ied.js +84 -0
  157. package/dist/openscd/src/foundation/ied.js.map +1 -0
  158. package/dist/openscd/src/foundation/nsd.js +13 -0
  159. package/dist/openscd/src/foundation/nsd.js.map +1 -0
  160. package/dist/openscd/src/foundation/nsdoc.js +180 -0
  161. package/dist/openscd/src/foundation/nsdoc.js.map +1 -0
  162. package/dist/openscd/src/foundation/scl.js +64 -0
  163. package/dist/openscd/src/foundation/scl.js.map +1 -0
  164. package/dist/openscd/src/foundation.js +1922 -0
  165. package/dist/openscd/src/foundation.js.map +1 -0
  166. package/dist/openscd/src/icons/compare.js +11 -0
  167. package/dist/openscd/src/icons/compare.js.map +1 -0
  168. package/dist/openscd/src/icons/icons.js +611 -0
  169. package/dist/openscd/src/icons/icons.js.map +1 -0
  170. package/dist/openscd/src/icons/ied-icons.js +11 -0
  171. package/dist/openscd/src/icons/ied-icons.js.map +1 -0
  172. package/dist/openscd/src/icons/lnode.js +50 -0
  173. package/dist/openscd/src/icons/lnode.js.map +1 -0
  174. package/dist/openscd/src/open-scd.js +483 -0
  175. package/dist/openscd/src/open-scd.js.map +1 -0
  176. package/dist/openscd/src/oscd-filter-button.js +89 -0
  177. package/dist/openscd/src/oscd-filter-button.js.map +1 -0
  178. package/dist/openscd/src/plain-compare-list.js +132 -0
  179. package/dist/openscd/src/plain-compare-list.js.map +1 -0
  180. package/dist/openscd/src/plugin-tag.js +23 -0
  181. package/dist/openscd/src/plugin-tag.js.map +1 -0
  182. package/dist/openscd/src/plugin.events.js +12 -0
  183. package/dist/openscd/src/plugin.events.js.map +1 -0
  184. package/dist/openscd/src/plugin.js +2 -0
  185. package/dist/openscd/src/plugin.js.map +1 -0
  186. package/dist/openscd/src/plugins.js +256 -0
  187. package/dist/openscd/src/plugins.js.map +1 -0
  188. package/dist/openscd/src/schemas.js +9325 -0
  189. package/dist/openscd/src/schemas.js.map +1 -0
  190. package/dist/openscd/src/themes.js +122 -0
  191. package/dist/openscd/src/themes.js.map +1 -0
  192. package/dist/openscd/src/translations/de.js +954 -0
  193. package/dist/openscd/src/translations/de.js.map +1 -0
  194. package/dist/openscd/src/translations/en.js +950 -0
  195. package/dist/openscd/src/translations/en.js.map +1 -0
  196. package/dist/openscd/src/translations/loader.js +10 -0
  197. package/dist/openscd/src/translations/loader.js.map +1 -0
  198. package/dist/openscd/src/wizard-checkbox.js +152 -0
  199. package/dist/openscd/src/wizard-checkbox.js.map +1 -0
  200. package/dist/openscd/src/wizard-dialog.js +374 -0
  201. package/dist/openscd/src/wizard-dialog.js.map +1 -0
  202. package/dist/openscd/src/wizard-select.js +115 -0
  203. package/dist/openscd/src/wizard-select.js.map +1 -0
  204. package/dist/openscd/src/wizard-textfield.js +191 -0
  205. package/dist/openscd/src/wizard-textfield.js.map +1 -0
  206. package/dist/openscd/src/wizards.js +196 -0
  207. package/dist/openscd/src/wizards.js.map +1 -0
  208. package/dist/oscd-filter-button.d.ts +27 -27
  209. package/dist/oscd-filter-button.js +59 -59
  210. package/dist/plain-compare-list.d.ts +36 -36
  211. package/dist/plain-compare-list.js +70 -70
  212. package/dist/plugin-tag.d.ts +6 -6
  213. package/dist/plugin-tag.js +22 -22
  214. package/dist/plugin.d.ts +23 -23
  215. package/dist/plugin.events.d.ts +15 -15
  216. package/dist/plugin.events.js +11 -11
  217. package/dist/plugin.js +1 -1
  218. package/dist/plugin.js.map +1 -1
  219. package/dist/plugins.d.ts +3 -3
  220. package/dist/plugins.js +255 -255
  221. package/dist/schemas.d.ts +58 -58
  222. package/dist/schemas.js +59 -59
  223. package/dist/themes.d.ts +3 -3
  224. package/dist/themes.js +13 -13
  225. package/dist/themes.js.map +1 -1
  226. package/dist/translations/de.d.ts +2 -2
  227. package/dist/translations/de.js +952 -952
  228. package/dist/translations/en.d.ts +963 -963
  229. package/dist/translations/en.js +948 -948
  230. package/dist/translations/loader.d.ts +12 -12
  231. package/dist/translations/loader.js +9 -9
  232. package/dist/translations/loader.js.map +1 -1
  233. package/dist/wizard-checkbox.d.ts +37 -37
  234. package/dist/wizard-checkbox.js +130 -130
  235. package/dist/wizard-dialog.d.ts +45 -45
  236. package/dist/wizard-dialog.js +235 -235
  237. package/dist/wizard-dialog.js.map +1 -1
  238. package/dist/wizard-select.d.ts +31 -31
  239. package/dist/wizard-select.js +102 -102
  240. package/dist/wizard-textfield.d.ts +50 -50
  241. package/dist/wizard-textfield.js +162 -162
  242. package/dist/wizards.d.ts +23 -23
  243. package/dist/wizards.js +148 -148
  244. package/dist/wizards.js.map +1 -1
  245. package/dist/xml/src/foundation.js +67 -0
  246. package/dist/xml/src/foundation.js.map +1 -0
  247. package/dist/xml/src/index.js +2 -0
  248. package/dist/xml/src/index.js.map +1 -0
  249. package/package.json +38 -127
  250. package/dist/Wizarding.d.ts +0 -10
@@ -1,129 +1,129 @@
1
- import { __decorate } from "tslib";
2
- import { html, property, query, customElement, LitElement, css, } from 'lit-element';
3
- import { get, translate, registerTranslateConfig, use } from 'lit-translate';
4
- import '@material/mwc-button';
5
- import '@material/mwc-dialog';
6
- import '@material/mwc-formfield';
7
- import '@material/mwc-list/mwc-list-item';
8
- import '@material/mwc-select';
9
- import '@material/mwc-switch';
10
- import { getTheme } from '../themes.js';
11
- import { newLogEvent } from '@compas-oscd/core/foundation/deprecated/history.js';
12
- import { newLoadNsdocEvent } from '@compas-oscd/core/foundation/deprecated/settings.js';
13
- import { languages, loader } from '../translations/loader.js';
14
- import '../WizardDivider.js';
15
- import { iec6185072, iec6185073, iec6185074, iec6185081, } from '../foundation/nsd.js';
16
- import { initializeNsdoc } from '../foundation/nsdoc.js';
17
- export const defaults = {
18
- language: 'en',
19
- theme: 'light',
20
- mode: 'safe',
21
- showieds: 'off',
22
- 'IEC 61850-7-2': undefined,
23
- 'IEC 61850-7-3': undefined,
24
- 'IEC 61850-7-4': undefined,
25
- 'IEC 61850-8-1': undefined,
26
- };
27
- let OscdSettings = class OscdSettings extends LitElement {
28
- constructor() {
29
- super(...arguments);
30
- /** Object containing all *.nsdoc files and a function extracting element's label form them*/
31
- this.nsdoc = initializeNsdoc();
32
- this.nsdUploadButton = true;
33
- this.languageConfig = { languages, loader };
34
- }
35
- /** Current [[`Settings`]] in `localStorage`, default to [[`defaults`]]. */
36
- get settings() {
37
- return {
38
- language: this.getSetting('language'),
39
- theme: this.getSetting('theme'),
40
- mode: this.getSetting('mode'),
41
- showieds: this.getSetting('showieds'),
42
- 'IEC 61850-7-2': this.getSetting('IEC 61850-7-2'),
43
- 'IEC 61850-7-3': this.getSetting('IEC 61850-7-3'),
44
- 'IEC 61850-7-4': this.getSetting('IEC 61850-7-4'),
45
- 'IEC 61850-8-1': this.getSetting('IEC 61850-8-1'),
46
- };
47
- }
48
- /**
49
- * Get the versions of the current OpenSCD NSD files.
50
- * @returns Current version, revision and release for all current OpenSCD NSD files.
51
- */
52
- async nsdVersions() {
53
- const [nsd72, nsd73, nsd74, nsd81] = await Promise.all([
54
- iec6185072,
55
- iec6185073,
56
- iec6185074,
57
- iec6185081,
58
- ]);
59
- const [nsd72Ns, nsd73Ns, nsd74Ns, nsd81Ns] = [
60
- nsd72.querySelector('NS'),
61
- nsd73.querySelector('NS'),
62
- nsd74.querySelector('NS'),
63
- nsd81.querySelector('ServiceNS'),
64
- ];
65
- return {
66
- 'IEC 61850-7-2': {
67
- version: nsd72Ns?.getAttribute('version') ?? undefined,
68
- revision: nsd72Ns?.getAttribute('revision') ?? undefined,
69
- release: nsd72Ns?.getAttribute('release') ?? undefined,
70
- },
71
- 'IEC 61850-7-3': {
72
- version: nsd73Ns?.getAttribute('version') ?? undefined,
73
- revision: nsd73Ns?.getAttribute('revision') ?? undefined,
74
- release: nsd73Ns?.getAttribute('release') ?? undefined,
75
- },
76
- 'IEC 61850-7-4': {
77
- version: nsd74Ns?.getAttribute('version') ?? undefined,
78
- revision: nsd74Ns?.getAttribute('revision') ?? undefined,
79
- release: nsd74Ns?.getAttribute('release') ?? undefined,
80
- },
81
- 'IEC 61850-8-1': {
82
- version: nsd81Ns?.getAttribute('version') ?? undefined,
83
- revision: nsd81Ns?.getAttribute('revision') ?? undefined,
84
- release: nsd81Ns?.getAttribute('release') ?? undefined,
85
- },
86
- };
87
- }
88
- getSetting(setting) {
89
- return (localStorage.getItem(setting) ?? defaults[setting]);
90
- }
91
- /** Update the `value` of `setting`, storing to `localStorage`. */
92
- setSetting(setting, value) {
93
- localStorage.setItem(setting, value);
94
- this.shadowRoot
95
- ?.querySelector('wizard-dialog')
96
- ?.requestUpdate();
97
- this.requestUpdate();
98
- }
99
- /** Remove the `setting` in `localStorage`. */
100
- removeSetting(setting) {
101
- localStorage.removeItem(setting);
102
- this.shadowRoot
103
- ?.querySelector('wizard-dialog')
104
- ?.requestUpdate();
105
- this.requestUpdate();
106
- this.nsdoc = initializeNsdoc(); // update nsdoc
107
- }
108
- onClosing(ae) {
109
- if (ae.detail?.action === 'reset') {
110
- Object.keys(this.settings).forEach(item => localStorage.removeItem(item));
111
- this.requestUpdate('settings');
112
- }
113
- else if (ae.detail?.action === 'save') {
114
- this.setSetting('language', this.languageUI.value);
115
- this.setSetting('theme', this.darkThemeUI.checked ? 'dark' : 'light');
116
- this.setSetting('mode', this.modeUI.checked ? 'pro' : 'safe');
117
- this.setSetting('showieds', this.showiedsUI.checked ? 'on' : 'off');
118
- this.requestUpdate('settings');
119
- }
120
- }
121
- updated(changedProperties) {
122
- super.updated(changedProperties);
123
- if (changedProperties.has('settings'))
124
- use(this.settings.language);
125
- }
126
- renderFileSelect() {
1
+ import { __decorate } from "tslib";
2
+ import { html, property, query, customElement, LitElement, css, } from 'lit-element';
3
+ import { get, translate, registerTranslateConfig, use } from 'lit-translate';
4
+ import '@material/mwc-button';
5
+ import '@material/mwc-dialog';
6
+ import '@material/mwc-formfield';
7
+ import '@material/mwc-list/mwc-list-item';
8
+ import '@material/mwc-select';
9
+ import '@material/mwc-switch';
10
+ import { getTheme } from '../themes.js';
11
+ import { newLogEvent } from '@openscd/core/foundation/deprecated/history.js';
12
+ import { newLoadNsdocEvent } from '@openscd/core/foundation/deprecated/settings.js';
13
+ import { languages, loader } from '../translations/loader.js';
14
+ import '../WizardDivider.js';
15
+ import { iec6185072, iec6185073, iec6185074, iec6185081, } from '../foundation/nsd.js';
16
+ import { initializeNsdoc } from '../foundation/nsdoc.js';
17
+ export const defaults = {
18
+ language: 'en',
19
+ theme: 'light',
20
+ mode: 'safe',
21
+ showieds: 'off',
22
+ 'IEC 61850-7-2': undefined,
23
+ 'IEC 61850-7-3': undefined,
24
+ 'IEC 61850-7-4': undefined,
25
+ 'IEC 61850-8-1': undefined,
26
+ };
27
+ let OscdSettings = class OscdSettings extends LitElement {
28
+ constructor() {
29
+ super(...arguments);
30
+ /** Object containing all *.nsdoc files and a function extracting element's label form them*/
31
+ this.nsdoc = initializeNsdoc();
32
+ this.nsdUploadButton = true;
33
+ this.languageConfig = { languages, loader };
34
+ }
35
+ /** Current [[`Settings`]] in `localStorage`, default to [[`defaults`]]. */
36
+ get settings() {
37
+ return {
38
+ language: this.getSetting('language'),
39
+ theme: this.getSetting('theme'),
40
+ mode: this.getSetting('mode'),
41
+ showieds: this.getSetting('showieds'),
42
+ 'IEC 61850-7-2': this.getSetting('IEC 61850-7-2'),
43
+ 'IEC 61850-7-3': this.getSetting('IEC 61850-7-3'),
44
+ 'IEC 61850-7-4': this.getSetting('IEC 61850-7-4'),
45
+ 'IEC 61850-8-1': this.getSetting('IEC 61850-8-1'),
46
+ };
47
+ }
48
+ /**
49
+ * Get the versions of the current OpenSCD NSD files.
50
+ * @returns Current version, revision and release for all current OpenSCD NSD files.
51
+ */
52
+ async nsdVersions() {
53
+ const [nsd72, nsd73, nsd74, nsd81] = await Promise.all([
54
+ iec6185072,
55
+ iec6185073,
56
+ iec6185074,
57
+ iec6185081,
58
+ ]);
59
+ const [nsd72Ns, nsd73Ns, nsd74Ns, nsd81Ns] = [
60
+ nsd72.querySelector('NS'),
61
+ nsd73.querySelector('NS'),
62
+ nsd74.querySelector('NS'),
63
+ nsd81.querySelector('ServiceNS'),
64
+ ];
65
+ return {
66
+ 'IEC 61850-7-2': {
67
+ version: nsd72Ns?.getAttribute('version') ?? undefined,
68
+ revision: nsd72Ns?.getAttribute('revision') ?? undefined,
69
+ release: nsd72Ns?.getAttribute('release') ?? undefined,
70
+ },
71
+ 'IEC 61850-7-3': {
72
+ version: nsd73Ns?.getAttribute('version') ?? undefined,
73
+ revision: nsd73Ns?.getAttribute('revision') ?? undefined,
74
+ release: nsd73Ns?.getAttribute('release') ?? undefined,
75
+ },
76
+ 'IEC 61850-7-4': {
77
+ version: nsd74Ns?.getAttribute('version') ?? undefined,
78
+ revision: nsd74Ns?.getAttribute('revision') ?? undefined,
79
+ release: nsd74Ns?.getAttribute('release') ?? undefined,
80
+ },
81
+ 'IEC 61850-8-1': {
82
+ version: nsd81Ns?.getAttribute('version') ?? undefined,
83
+ revision: nsd81Ns?.getAttribute('revision') ?? undefined,
84
+ release: nsd81Ns?.getAttribute('release') ?? undefined,
85
+ },
86
+ };
87
+ }
88
+ getSetting(setting) {
89
+ return (localStorage.getItem(setting) ?? defaults[setting]);
90
+ }
91
+ /** Update the `value` of `setting`, storing to `localStorage`. */
92
+ setSetting(setting, value) {
93
+ localStorage.setItem(setting, value);
94
+ this.shadowRoot
95
+ ?.querySelector('wizard-dialog')
96
+ ?.requestUpdate();
97
+ this.requestUpdate();
98
+ }
99
+ /** Remove the `setting` in `localStorage`. */
100
+ removeSetting(setting) {
101
+ localStorage.removeItem(setting);
102
+ this.shadowRoot
103
+ ?.querySelector('wizard-dialog')
104
+ ?.requestUpdate();
105
+ this.requestUpdate();
106
+ this.nsdoc = initializeNsdoc(); // update nsdoc
107
+ }
108
+ onClosing(ae) {
109
+ if (ae.detail?.action === 'reset') {
110
+ Object.keys(this.settings).forEach(item => localStorage.removeItem(item));
111
+ this.requestUpdate('settings');
112
+ }
113
+ else if (ae.detail?.action === 'save') {
114
+ this.setSetting('language', this.languageUI.value);
115
+ this.setSetting('theme', this.darkThemeUI.checked ? 'dark' : 'light');
116
+ this.setSetting('mode', this.modeUI.checked ? 'pro' : 'safe');
117
+ this.setSetting('showieds', this.showiedsUI.checked ? 'on' : 'off');
118
+ this.requestUpdate('settings');
119
+ }
120
+ }
121
+ updated(changedProperties) {
122
+ super.updated(changedProperties);
123
+ if (changedProperties.has('settings'))
124
+ use(this.settings.language);
125
+ }
126
+ renderFileSelect() {
127
127
  return html `
128
128
  <input
129
129
  id="nsdoc-file"
@@ -137,85 +137,85 @@ let OscdSettings = class OscdSettings extends LitElement {
137
137
  <mwc-button
138
138
  label="${translate('settings.selectFileButton')}"
139
139
  id="selectFileButton"
140
- @click=${() => {
141
- const input = (this.shadowRoot.querySelector('#nsdoc-file'));
142
- input?.click();
140
+ @click=${() => {
141
+ const input = (this.shadowRoot.querySelector('#nsdoc-file'));
142
+ input?.click();
143
143
  }}
144
144
  >
145
145
  </mwc-button>
146
- `;
147
- }
148
- async uploadNsdocFile(evt) {
149
- const files = Array.from(evt.target?.files ?? []);
150
- if (files.length == 0)
151
- return;
152
- for (const file of files) {
153
- const text = await file.text();
154
- this.dispatchEvent(newLoadNsdocEvent(text, file.name));
155
- }
156
- this.nsdocFileUI.value = '';
157
- this.requestUpdate();
158
- }
159
- async onLoadNsdoc(event) {
160
- const nsdocElement = this.parseToXmlObject(event.detail.nsdoc).querySelector('NSDoc');
161
- const id = nsdocElement?.getAttribute('id');
162
- if (!id) {
163
- this.dispatchEvent(newLogEvent({
164
- kind: 'error',
165
- title: get('settings.invalidFileNoIdFound', {
166
- filename: event.detail.filename,
167
- }),
168
- }));
169
- return;
170
- }
171
- const nsdVersions = await this.nsdVersions();
172
- const nsdVersion = nsdVersions[id];
173
- const nsdocVersion = {
174
- version: nsdocElement.getAttribute('version') ?? '',
175
- revision: nsdocElement.getAttribute('revision') ?? '',
176
- release: nsdocElement.getAttribute('release') ?? '',
177
- };
178
- if (!this.isEqual(nsdVersion, nsdocVersion)) {
179
- this.dispatchEvent(newLogEvent({
180
- kind: 'warning',
181
- title: get('settings.invalidNsdocVersion', {
182
- id: id,
183
- filename: event.detail.filename,
184
- nsdVersion: `${nsdVersion.version}${nsdVersion.revision}${nsdVersion.release}`,
185
- nsdocVersion: `${nsdocVersion.version}${nsdocVersion.revision}${nsdocVersion.release}`,
186
- }),
187
- }));
188
- }
189
- this.setSetting(id, event.detail.nsdoc);
190
- this.nsdoc = initializeNsdoc(); // update nsdoc
191
- }
192
- /**
193
- * Check the equality of two NsdVersions.
194
- * @param versionA - First version to compare.
195
- * @param versionB - Second version to compare.
196
- * @returns Are they equal or not.
197
- */
198
- isEqual(versionA, versionB) {
199
- return (versionA.version == versionB.version &&
200
- versionA.revision == versionB.revision &&
201
- versionA.release == versionB.release);
202
- }
203
- /**
204
- * Render one .nsdoc item in the Settings wizard
205
- * @param key - The key of the nsdoc file in the settings.
206
- * @returns a .nsdoc item for the Settings wizard
207
- */
208
- renderNsdocItem(key) {
209
- const nsdSetting = this.settings[key];
210
- let nsdVersion;
211
- let nsdRevision;
212
- let nsdRelease;
213
- if (nsdSetting) {
214
- const nsdoc = this.parseToXmlObject(nsdSetting).querySelector('NSDoc');
215
- nsdVersion = nsdoc?.getAttribute('version');
216
- nsdRevision = nsdoc?.getAttribute('revision');
217
- nsdRelease = nsdoc?.getAttribute('release');
218
- }
146
+ `;
147
+ }
148
+ async uploadNsdocFile(evt) {
149
+ const files = Array.from(evt.target?.files ?? []);
150
+ if (files.length == 0)
151
+ return;
152
+ for (const file of files) {
153
+ const text = await file.text();
154
+ this.dispatchEvent(newLoadNsdocEvent(text, file.name));
155
+ }
156
+ this.nsdocFileUI.value = '';
157
+ this.requestUpdate();
158
+ }
159
+ async onLoadNsdoc(event) {
160
+ const nsdocElement = this.parseToXmlObject(event.detail.nsdoc).querySelector('NSDoc');
161
+ const id = nsdocElement?.getAttribute('id');
162
+ if (!id) {
163
+ this.dispatchEvent(newLogEvent({
164
+ kind: 'error',
165
+ title: get('settings.invalidFileNoIdFound', {
166
+ filename: event.detail.filename,
167
+ }),
168
+ }));
169
+ return;
170
+ }
171
+ const nsdVersions = await this.nsdVersions();
172
+ const nsdVersion = nsdVersions[id];
173
+ const nsdocVersion = {
174
+ version: nsdocElement.getAttribute('version') ?? '',
175
+ revision: nsdocElement.getAttribute('revision') ?? '',
176
+ release: nsdocElement.getAttribute('release') ?? '',
177
+ };
178
+ if (!this.isEqual(nsdVersion, nsdocVersion)) {
179
+ this.dispatchEvent(newLogEvent({
180
+ kind: 'warning',
181
+ title: get('settings.invalidNsdocVersion', {
182
+ id: id,
183
+ filename: event.detail.filename,
184
+ nsdVersion: `${nsdVersion.version}${nsdVersion.revision}${nsdVersion.release}`,
185
+ nsdocVersion: `${nsdocVersion.version}${nsdocVersion.revision}${nsdocVersion.release}`,
186
+ }),
187
+ }));
188
+ }
189
+ this.setSetting(id, event.detail.nsdoc);
190
+ this.nsdoc = initializeNsdoc(); // update nsdoc
191
+ }
192
+ /**
193
+ * Check the equality of two NsdVersions.
194
+ * @param versionA - First version to compare.
195
+ * @param versionB - Second version to compare.
196
+ * @returns Are they equal or not.
197
+ */
198
+ isEqual(versionA, versionB) {
199
+ return (versionA.version == versionB.version &&
200
+ versionA.revision == versionB.revision &&
201
+ versionA.release == versionB.release);
202
+ }
203
+ /**
204
+ * Render one .nsdoc item in the Settings wizard
205
+ * @param key - The key of the nsdoc file in the settings.
206
+ * @returns a .nsdoc item for the Settings wizard
207
+ */
208
+ renderNsdocItem(key) {
209
+ const nsdSetting = this.settings[key];
210
+ let nsdVersion;
211
+ let nsdRevision;
212
+ let nsdRelease;
213
+ if (nsdSetting) {
214
+ const nsdoc = this.parseToXmlObject(nsdSetting).querySelector('NSDoc');
215
+ nsdVersion = nsdoc?.getAttribute('version');
216
+ nsdRevision = nsdoc?.getAttribute('revision');
217
+ nsdRelease = nsdoc?.getAttribute('release');
218
+ }
219
219
  return html `<mwc-list-item
220
220
  id=${key}
221
221
  graphic="avatar"
@@ -224,41 +224,41 @@ let OscdSettings = class OscdSettings extends LitElement {
224
224
  .disabled=${!nsdSetting}
225
225
  >
226
226
  <span>${key}</span>
227
- ${nsdSetting
227
+ ${nsdSetting
228
228
  ? html `<span slot="secondary"
229
229
  >${nsdVersion}${nsdRevision}${nsdRelease}</span
230
- >`
230
+ >`
231
231
  : html ``}
232
- ${nsdSetting
233
- ? html `<mwc-icon slot="graphic" style="color:green;">done</mwc-icon>`
232
+ ${nsdSetting
233
+ ? html `<mwc-icon slot="graphic" style="color:green;">done</mwc-icon>`
234
234
  : html `<mwc-icon slot="graphic" style="color:red;">close</mwc-icon>`}
235
- ${nsdSetting
235
+ ${nsdSetting
236
236
  ? html `<mwc-icon
237
237
  id="deleteNsdocItem"
238
238
  slot="meta"
239
- @click=${() => {
240
- this.removeSetting(key);
239
+ @click=${() => {
240
+ this.removeSetting(key);
241
241
  }}
242
242
  >delete</mwc-icon
243
- >`
243
+ >`
244
244
  : html ``}
245
- </mwc-list-item>`;
246
- }
247
- parseToXmlObject(text) {
248
- return new DOMParser().parseFromString(text, 'application/xml');
249
- }
250
- connectedCallback() {
251
- super.connectedCallback();
252
- registerTranslateConfig({ loader: this.languageConfig.loader, empty: key => key });
253
- use(this.settings.language);
254
- if (this.host) {
255
- this.host.addEventListener('oscd-settings', (evt) => {
256
- evt.detail.show ? this.settingsUI.show() : this.settingsUI.close();
257
- });
258
- this.host.addEventListener('load-nsdoc', (evt) => this.onLoadNsdoc(evt));
259
- }
260
- }
261
- render() {
245
+ </mwc-list-item>`;
246
+ }
247
+ parseToXmlObject(text) {
248
+ return new DOMParser().parseFromString(text, 'application/xml');
249
+ }
250
+ connectedCallback() {
251
+ super.connectedCallback();
252
+ registerTranslateConfig({ loader: this.languageConfig.loader, empty: key => key });
253
+ use(this.settings.language);
254
+ if (this.host) {
255
+ this.host.addEventListener('oscd-settings', (evt) => {
256
+ evt.detail.show ? this.settingsUI.show() : this.settingsUI.close();
257
+ });
258
+ this.host.addEventListener('load-nsdoc', (evt) => this.onLoadNsdoc(evt));
259
+ }
260
+ }
261
+ render() {
262
262
  return html `<mwc-dialog
263
263
  id="settings"
264
264
  heading="${translate('settings.title')}"
@@ -298,11 +298,11 @@ let OscdSettings = class OscdSettings extends LitElement {
298
298
  </mwc-formfield>
299
299
  </form>
300
300
  <wizard-divider></wizard-divider>
301
- ${this.nsdUploadButton
301
+ ${this.nsdUploadButton
302
302
  ? html `<section id="shownsdbutton">
303
303
  <h3>${translate('settings.loadNsdTranslations')}</h3>
304
304
  ${this.renderFileSelect()}
305
- </section>`
305
+ </section>`
306
306
  : html ``}
307
307
  <mwc-list id="nsdocList">
308
308
  ${this.renderNsdocItem('IEC 61850-7-2')}
@@ -330,9 +330,9 @@ let OscdSettings = class OscdSettings extends LitElement {
330
330
  </mwc-button>
331
331
  </mwc-dialog>
332
332
  <slot></slot>
333
- ${getTheme(this.settings.theme)}`;
334
- }
335
- };
333
+ ${getTheme(this.settings.theme)}`;
334
+ }
335
+ };
336
336
  OscdSettings.styles = css `
337
337
  mwc-top-app-bar-fixed {
338
338
  --mdc-theme-text-disabled-on-light: rgba(255, 255, 255, 0.38);
@@ -422,44 +422,44 @@ OscdSettings.styles = css `
422
422
  .plugin.validator {
423
423
  display: flex;
424
424
  }
425
- `;
426
- __decorate([
427
- property()
428
- ], OscdSettings.prototype, "settings", null);
429
- __decorate([
430
- property({ attribute: false })
431
- ], OscdSettings.prototype, "nsdoc", void 0);
432
- __decorate([
433
- property({
434
- type: Object,
435
- })
436
- ], OscdSettings.prototype, "host", void 0);
437
- __decorate([
438
- property({ type: Boolean })
439
- ], OscdSettings.prototype, "nsdUploadButton", void 0);
440
- __decorate([
441
- property({ type: Object })
442
- ], OscdSettings.prototype, "languageConfig", void 0);
443
- __decorate([
444
- query('#settings')
445
- ], OscdSettings.prototype, "settingsUI", void 0);
446
- __decorate([
447
- query('#language')
448
- ], OscdSettings.prototype, "languageUI", void 0);
449
- __decorate([
450
- query('#dark')
451
- ], OscdSettings.prototype, "darkThemeUI", void 0);
452
- __decorate([
453
- query('#mode')
454
- ], OscdSettings.prototype, "modeUI", void 0);
455
- __decorate([
456
- query('#showieds')
457
- ], OscdSettings.prototype, "showiedsUI", void 0);
458
- __decorate([
459
- query('#nsdoc-file')
460
- ], OscdSettings.prototype, "nsdocFileUI", void 0);
461
- OscdSettings = __decorate([
462
- customElement('oscd-settings')
463
- ], OscdSettings);
464
- export { OscdSettings };
425
+ `;
426
+ __decorate([
427
+ property()
428
+ ], OscdSettings.prototype, "settings", null);
429
+ __decorate([
430
+ property({ attribute: false })
431
+ ], OscdSettings.prototype, "nsdoc", void 0);
432
+ __decorate([
433
+ property({
434
+ type: Object,
435
+ })
436
+ ], OscdSettings.prototype, "host", void 0);
437
+ __decorate([
438
+ property({ type: Boolean })
439
+ ], OscdSettings.prototype, "nsdUploadButton", void 0);
440
+ __decorate([
441
+ property({ type: Object })
442
+ ], OscdSettings.prototype, "languageConfig", void 0);
443
+ __decorate([
444
+ query('#settings')
445
+ ], OscdSettings.prototype, "settingsUI", void 0);
446
+ __decorate([
447
+ query('#language')
448
+ ], OscdSettings.prototype, "languageUI", void 0);
449
+ __decorate([
450
+ query('#dark')
451
+ ], OscdSettings.prototype, "darkThemeUI", void 0);
452
+ __decorate([
453
+ query('#mode')
454
+ ], OscdSettings.prototype, "modeUI", void 0);
455
+ __decorate([
456
+ query('#showieds')
457
+ ], OscdSettings.prototype, "showiedsUI", void 0);
458
+ __decorate([
459
+ query('#nsdoc-file')
460
+ ], OscdSettings.prototype, "nsdocFileUI", void 0);
461
+ OscdSettings = __decorate([
462
+ customElement('oscd-settings')
463
+ ], OscdSettings);
464
+ export { OscdSettings };
465
465
  //# sourceMappingURL=Settings.js.map