@compas-oscd/open-scd 0.34.0 → 0.34.1

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 (233) hide show
  1. package/dist/WizardDivider.js +37 -0
  2. package/dist/WizardDivider.js.map +1 -0
  3. package/dist/Wizarding.js +38 -0
  4. package/dist/Wizarding.js.map +1 -0
  5. package/dist/action-icon.js +220 -0
  6. package/dist/action-icon.js.map +1 -0
  7. package/dist/action-pane.js +176 -0
  8. package/dist/action-pane.js.map +1 -0
  9. package/dist/addons/Editor.js +106 -0
  10. package/dist/addons/Editor.js.map +1 -0
  11. package/dist/addons/History.js +490 -0
  12. package/dist/addons/History.js.map +1 -0
  13. package/dist/addons/Layout.js +619 -0
  14. package/dist/addons/Layout.js.map +1 -0
  15. package/dist/addons/Settings.js +465 -0
  16. package/dist/addons/Settings.js.map +1 -0
  17. package/dist/addons/Waiter.js +45 -0
  18. package/dist/addons/Waiter.js.map +1 -0
  19. package/dist/addons/Wizards.js +48 -0
  20. package/dist/addons/Wizards.js.map +1 -0
  21. package/dist/addons/editor/edit-action-to-v1-converter.js +96 -0
  22. package/dist/addons/editor/edit-action-to-v1-converter.js.map +1 -0
  23. package/dist/addons/editor/edit-v1-to-v2-converter.js +37 -0
  24. package/dist/addons/editor/edit-v1-to-v2-converter.js.map +1 -0
  25. package/dist/addons/history/get-log-text.js +26 -0
  26. package/dist/addons/history/get-log-text.js.map +1 -0
  27. package/dist/addons/menu-tabs/menu-tabs.js +74 -0
  28. package/dist/addons/menu-tabs/menu-tabs.js.map +1 -0
  29. package/dist/addons/plugin-manager/custom-plugin-dialog.js +177 -0
  30. package/dist/addons/plugin-manager/custom-plugin-dialog.js.map +1 -0
  31. package/dist/addons/plugin-manager/plugin-manager.js +165 -0
  32. package/dist/addons/plugin-manager/plugin-manager.js.map +1 -0
  33. package/dist/core/api/api.js +7 -0
  34. package/dist/core/api/api.js.map +1 -0
  35. package/dist/core/api/editor/subject.js +22 -0
  36. package/dist/core/api/editor/subject.js.map +1 -0
  37. package/dist/core/api/editor/xml-editor.js +82 -0
  38. package/dist/core/api/editor/xml-editor.js.map +1 -0
  39. package/dist/core/api/plugin-state-api.js +27 -0
  40. package/dist/core/api/plugin-state-api.js.map +1 -0
  41. package/dist/core/foundation/cyrb64.js +26 -0
  42. package/dist/core/foundation/cyrb64.js.map +1 -0
  43. package/dist/core/foundation/deprecated/edit-event.js +44 -0
  44. package/dist/core/foundation/deprecated/edit-event.js.map +1 -0
  45. package/dist/core/foundation/deprecated/editor.js +94 -0
  46. package/dist/core/foundation/deprecated/editor.js.map +1 -0
  47. package/dist/core/foundation/deprecated/history.js +17 -0
  48. package/dist/core/foundation/deprecated/history.js.map +1 -0
  49. package/dist/core/foundation/deprecated/open-event.js +9 -0
  50. package/dist/core/foundation/deprecated/open-event.js.map +1 -0
  51. package/dist/core/foundation/deprecated/settings.js +19 -0
  52. package/dist/core/foundation/deprecated/settings.js.map +1 -0
  53. package/dist/core/foundation/deprecated/validation.js +8 -0
  54. package/dist/core/foundation/deprecated/validation.js.map +1 -0
  55. package/dist/core/foundation/deprecated/waiter.js +12 -0
  56. package/dist/core/foundation/deprecated/waiter.js.map +1 -0
  57. package/dist/core/foundation/edit-completed-event.js +11 -0
  58. package/dist/core/foundation/edit-completed-event.js.map +1 -0
  59. package/dist/core/foundation/edit-event.js +8 -0
  60. package/dist/core/foundation/edit-event.js.map +1 -0
  61. package/dist/core/foundation/edit.js +31 -0
  62. package/dist/core/foundation/edit.js.map +1 -0
  63. package/dist/core/foundation/handle-edit.js +151 -0
  64. package/dist/core/foundation/handle-edit.js.map +1 -0
  65. package/dist/core/foundation/open-event.js +8 -0
  66. package/dist/core/foundation/open-event.js.map +1 -0
  67. package/dist/core/foundation/plugin.js +2 -0
  68. package/dist/core/foundation/plugin.js.map +1 -0
  69. package/dist/core/foundation.js +14 -0
  70. package/dist/core/foundation.js.map +1 -0
  71. package/dist/core/locales.js +21 -0
  72. package/dist/core/locales.js.map +1 -0
  73. package/dist/filtered-list.js +168 -0
  74. package/dist/filtered-list.js.map +1 -0
  75. package/dist/finder-list.js +207 -0
  76. package/dist/finder-list.js.map +1 -0
  77. package/dist/foundation/compare.js +273 -0
  78. package/dist/foundation/compare.js.map +1 -0
  79. package/dist/foundation/dai.js +127 -0
  80. package/dist/foundation/dai.js.map +1 -0
  81. package/dist/foundation/generators.js +67 -0
  82. package/dist/foundation/generators.js.map +1 -0
  83. package/dist/foundation/ied.js +84 -0
  84. package/dist/foundation/ied.js.map +1 -0
  85. package/dist/foundation/nsd.js +13 -0
  86. package/dist/foundation/nsd.js.map +1 -0
  87. package/dist/foundation/nsdoc.js +180 -0
  88. package/dist/foundation/nsdoc.js.map +1 -0
  89. package/dist/foundation/scl.js +64 -0
  90. package/dist/foundation/scl.js.map +1 -0
  91. package/dist/foundation.js +1922 -0
  92. package/dist/foundation.js.map +1 -0
  93. package/dist/icons/compare.js +11 -0
  94. package/dist/icons/compare.js.map +1 -0
  95. package/dist/icons/icons.js +611 -0
  96. package/dist/icons/icons.js.map +1 -0
  97. package/dist/icons/ied-icons.js +11 -0
  98. package/dist/icons/ied-icons.js.map +1 -0
  99. package/dist/icons/lnode.js +50 -0
  100. package/dist/icons/lnode.js.map +1 -0
  101. package/dist/open-scd.js +483 -0
  102. package/dist/open-scd.js.map +1 -0
  103. package/dist/openscd/src/WizardDivider.js +37 -0
  104. package/dist/openscd/src/WizardDivider.js.map +1 -0
  105. package/dist/openscd/src/Wizarding.js +38 -0
  106. package/dist/openscd/src/Wizarding.js.map +1 -0
  107. package/dist/openscd/src/action-icon.js +220 -0
  108. package/dist/openscd/src/action-icon.js.map +1 -0
  109. package/dist/openscd/src/action-pane.js +176 -0
  110. package/dist/openscd/src/action-pane.js.map +1 -0
  111. package/dist/openscd/src/addons/Editor.js +106 -0
  112. package/dist/openscd/src/addons/Editor.js.map +1 -0
  113. package/dist/openscd/src/addons/History.js +490 -0
  114. package/dist/openscd/src/addons/History.js.map +1 -0
  115. package/dist/openscd/src/addons/Layout.js +619 -0
  116. package/dist/openscd/src/addons/Layout.js.map +1 -0
  117. package/dist/openscd/src/addons/Settings.js +465 -0
  118. package/dist/openscd/src/addons/Settings.js.map +1 -0
  119. package/dist/openscd/src/addons/Waiter.js +45 -0
  120. package/dist/openscd/src/addons/Waiter.js.map +1 -0
  121. package/dist/openscd/src/addons/Wizards.js +48 -0
  122. package/dist/openscd/src/addons/Wizards.js.map +1 -0
  123. package/dist/openscd/src/addons/editor/edit-action-to-v1-converter.js +96 -0
  124. package/dist/openscd/src/addons/editor/edit-action-to-v1-converter.js.map +1 -0
  125. package/dist/openscd/src/addons/editor/edit-v1-to-v2-converter.js +37 -0
  126. package/dist/openscd/src/addons/editor/edit-v1-to-v2-converter.js.map +1 -0
  127. package/dist/openscd/src/addons/history/get-log-text.js +26 -0
  128. package/dist/openscd/src/addons/history/get-log-text.js.map +1 -0
  129. package/dist/openscd/src/addons/menu-tabs/menu-tabs.js +74 -0
  130. package/dist/openscd/src/addons/menu-tabs/menu-tabs.js.map +1 -0
  131. package/dist/openscd/src/addons/plugin-manager/custom-plugin-dialog.js +177 -0
  132. package/dist/openscd/src/addons/plugin-manager/custom-plugin-dialog.js.map +1 -0
  133. package/dist/openscd/src/addons/plugin-manager/plugin-manager.js +165 -0
  134. package/dist/openscd/src/addons/plugin-manager/plugin-manager.js.map +1 -0
  135. package/dist/openscd/src/filtered-list.js +168 -0
  136. package/dist/openscd/src/filtered-list.js.map +1 -0
  137. package/dist/openscd/src/finder-list.js +207 -0
  138. package/dist/openscd/src/finder-list.js.map +1 -0
  139. package/dist/openscd/src/foundation/compare.js +273 -0
  140. package/dist/openscd/src/foundation/compare.js.map +1 -0
  141. package/dist/openscd/src/foundation/dai.js +127 -0
  142. package/dist/openscd/src/foundation/dai.js.map +1 -0
  143. package/dist/openscd/src/foundation/generators.js +67 -0
  144. package/dist/openscd/src/foundation/generators.js.map +1 -0
  145. package/dist/openscd/src/foundation/ied.js +84 -0
  146. package/dist/openscd/src/foundation/ied.js.map +1 -0
  147. package/dist/openscd/src/foundation/nsd.js +13 -0
  148. package/dist/openscd/src/foundation/nsd.js.map +1 -0
  149. package/dist/openscd/src/foundation/nsdoc.js +180 -0
  150. package/dist/openscd/src/foundation/nsdoc.js.map +1 -0
  151. package/dist/openscd/src/foundation/scl.js +64 -0
  152. package/dist/openscd/src/foundation/scl.js.map +1 -0
  153. package/dist/openscd/src/foundation.js +1922 -0
  154. package/dist/openscd/src/foundation.js.map +1 -0
  155. package/dist/openscd/src/icons/compare.js +11 -0
  156. package/dist/openscd/src/icons/compare.js.map +1 -0
  157. package/dist/openscd/src/icons/icons.js +611 -0
  158. package/dist/openscd/src/icons/icons.js.map +1 -0
  159. package/dist/openscd/src/icons/ied-icons.js +11 -0
  160. package/dist/openscd/src/icons/ied-icons.js.map +1 -0
  161. package/dist/openscd/src/icons/lnode.js +50 -0
  162. package/dist/openscd/src/icons/lnode.js.map +1 -0
  163. package/dist/openscd/src/open-scd.js +483 -0
  164. package/dist/openscd/src/open-scd.js.map +1 -0
  165. package/dist/openscd/src/oscd-filter-button.js +89 -0
  166. package/dist/openscd/src/oscd-filter-button.js.map +1 -0
  167. package/dist/openscd/src/plain-compare-list.js +132 -0
  168. package/dist/openscd/src/plain-compare-list.js.map +1 -0
  169. package/dist/openscd/src/plugin-tag.js +23 -0
  170. package/dist/openscd/src/plugin-tag.js.map +1 -0
  171. package/dist/openscd/src/plugin.events.js +12 -0
  172. package/dist/openscd/src/plugin.events.js.map +1 -0
  173. package/dist/openscd/src/plugin.js +2 -0
  174. package/dist/openscd/src/plugin.js.map +1 -0
  175. package/dist/openscd/src/plugins.js +256 -0
  176. package/dist/openscd/src/plugins.js.map +1 -0
  177. package/dist/openscd/src/schemas.js +9325 -0
  178. package/dist/openscd/src/schemas.js.map +1 -0
  179. package/dist/openscd/src/themes.js +122 -0
  180. package/dist/openscd/src/themes.js.map +1 -0
  181. package/dist/openscd/src/translations/de.js +954 -0
  182. package/dist/openscd/src/translations/de.js.map +1 -0
  183. package/dist/openscd/src/translations/en.js +950 -0
  184. package/dist/openscd/src/translations/en.js.map +1 -0
  185. package/dist/openscd/src/translations/loader.js +10 -0
  186. package/dist/openscd/src/translations/loader.js.map +1 -0
  187. package/dist/openscd/src/wizard-checkbox.js +152 -0
  188. package/dist/openscd/src/wizard-checkbox.js.map +1 -0
  189. package/dist/openscd/src/wizard-dialog.js +374 -0
  190. package/dist/openscd/src/wizard-dialog.js.map +1 -0
  191. package/dist/openscd/src/wizard-select.js +115 -0
  192. package/dist/openscd/src/wizard-select.js.map +1 -0
  193. package/dist/openscd/src/wizard-textfield.js +191 -0
  194. package/dist/openscd/src/wizard-textfield.js.map +1 -0
  195. package/dist/openscd/src/wizards.js +196 -0
  196. package/dist/openscd/src/wizards.js.map +1 -0
  197. package/dist/oscd-filter-button.js +89 -0
  198. package/dist/oscd-filter-button.js.map +1 -0
  199. package/dist/plain-compare-list.js +132 -0
  200. package/dist/plain-compare-list.js.map +1 -0
  201. package/dist/plugin-tag.js +23 -0
  202. package/dist/plugin-tag.js.map +1 -0
  203. package/dist/plugin.events.js +12 -0
  204. package/dist/plugin.events.js.map +1 -0
  205. package/dist/plugin.js +2 -0
  206. package/dist/plugin.js.map +1 -0
  207. package/dist/plugins.js +256 -0
  208. package/dist/plugins.js.map +1 -0
  209. package/dist/schemas.js +9325 -0
  210. package/dist/schemas.js.map +1 -0
  211. package/dist/themes.js +122 -0
  212. package/dist/themes.js.map +1 -0
  213. package/dist/translations/de.js +954 -0
  214. package/dist/translations/de.js.map +1 -0
  215. package/dist/translations/en.js +950 -0
  216. package/dist/translations/en.js.map +1 -0
  217. package/dist/translations/loader.js +10 -0
  218. package/dist/translations/loader.js.map +1 -0
  219. package/dist/wizard-checkbox.js +152 -0
  220. package/dist/wizard-checkbox.js.map +1 -0
  221. package/dist/wizard-dialog.js +374 -0
  222. package/dist/wizard-dialog.js.map +1 -0
  223. package/dist/wizard-select.js +115 -0
  224. package/dist/wizard-select.js.map +1 -0
  225. package/dist/wizard-textfield.js +191 -0
  226. package/dist/wizard-textfield.js.map +1 -0
  227. package/dist/wizards.js +196 -0
  228. package/dist/wizards.js.map +1 -0
  229. package/dist/xml/src/foundation.js +67 -0
  230. package/dist/xml/src/foundation.js.map +1 -0
  231. package/dist/xml/src/index.js +2 -0
  232. package/dist/xml/src/index.js.map +1 -0
  233. package/package.json +99 -4
@@ -0,0 +1,132 @@
1
+ import { __decorate } from "tslib";
2
+ import { customElement, LitElement, property, html, css, state, } from 'lit-element';
3
+ import { get } from 'lit-translate';
4
+ import { renderDiff } from './foundation/compare.js';
5
+ let PlainCompareList = class PlainCompareList extends LitElement {
6
+ constructor() {
7
+ super(...arguments);
8
+ /**
9
+ * The title of the left list
10
+ */
11
+ this.leftHandTitle = '';
12
+ /**
13
+ * The title of the right list
14
+ */
15
+ this.rightHandTitle = '';
16
+ /**
17
+ * The subtitle of the left list (optional)
18
+ */
19
+ this.leftHandSubtitle = '';
20
+ /**
21
+ * The subtitle of the right list (optional)
22
+ */
23
+ this.rightHandSubtitle = '';
24
+ this.filterMutables = true;
25
+ }
26
+ render() {
27
+ return html `
28
+ ${this.renderFilterCheckbox()}
29
+ <div class="container container--alt">
30
+ <div class="list__container list__container--left">
31
+ <h3 class="mdc-dialog__title">${this.leftHandTitle}</h3>
32
+ ${this.leftHandSubtitle && this.leftHandSubtitle.length > 0
33
+ ? html `<h5 class="mdc-dialog__title">${this.leftHandSubtitle}</h5> `
34
+ : ''}
35
+ </div>
36
+ <div class="list__container">
37
+ <h3 class="mdc-dialog__title">${this.rightHandTitle}</h3>
38
+ ${this.rightHandSubtitle && this.rightHandSubtitle.length > 0
39
+ ? html `<h5 class="mdc-dialog__title">
40
+ ${this.rightHandSubtitle}
41
+ </h5> `
42
+ : ''}
43
+ </div>
44
+ </div>
45
+ ${this.leftHandObject && this.rightHandObject
46
+ ? html `
47
+ ${renderDiff(this.rightHandObject, this.leftHandObject, this.filterMutables ? this.filterToIgnore : {})}
48
+ `
49
+ : ''}
50
+ `;
51
+ }
52
+ renderFilterCheckbox() {
53
+ if (this.filterToIgnore) {
54
+ return html `
55
+ <div class="container">
56
+ <div class="flex"></div>
57
+ <mwc-formfield label="${get('compare.filterMutables')}">
58
+ <mwc-checkbox
59
+ ?checked=${this.filterMutables}
60
+ @change=${() => (this.filterMutables = !this.filterMutables)}
61
+ >
62
+ </mwc-checkbox>
63
+ </mwc-formfield>
64
+ </div>
65
+ `;
66
+ }
67
+ return html ``;
68
+ }
69
+ };
70
+ PlainCompareList.styles = css `
71
+ mwc-list-item {
72
+ --mdc-list-item-graphic-margin: 0;
73
+ }
74
+
75
+ .mdc-dialog__title {
76
+ padding: 0 16px;
77
+ }
78
+
79
+ .container {
80
+ display: flex;
81
+ gap: 4px;
82
+ }
83
+
84
+ .container--alt {
85
+ background: var(--base2);
86
+ }
87
+
88
+ .list__container {
89
+ width: 50%;
90
+ background: var(--base3);
91
+ }
92
+ .list__container--left {
93
+ text-align: right;
94
+ }
95
+ .flex {
96
+ flex: 1;
97
+ }
98
+
99
+ mwc-list-item[right] {
100
+ text-align: right;
101
+ direction: rtl;
102
+ }
103
+ `;
104
+ __decorate([
105
+ property({ type: String })
106
+ ], PlainCompareList.prototype, "leftHandTitle", void 0);
107
+ __decorate([
108
+ property({ type: String })
109
+ ], PlainCompareList.prototype, "rightHandTitle", void 0);
110
+ __decorate([
111
+ property({ type: Object })
112
+ ], PlainCompareList.prototype, "leftHandObject", void 0);
113
+ __decorate([
114
+ property({ type: Object })
115
+ ], PlainCompareList.prototype, "rightHandObject", void 0);
116
+ __decorate([
117
+ property({ type: Object })
118
+ ], PlainCompareList.prototype, "filterToIgnore", void 0);
119
+ __decorate([
120
+ property({ type: String })
121
+ ], PlainCompareList.prototype, "leftHandSubtitle", void 0);
122
+ __decorate([
123
+ property({ type: String })
124
+ ], PlainCompareList.prototype, "rightHandSubtitle", void 0);
125
+ __decorate([
126
+ state()
127
+ ], PlainCompareList.prototype, "filterMutables", void 0);
128
+ PlainCompareList = __decorate([
129
+ customElement('plain-compare-list')
130
+ ], PlainCompareList);
131
+ export { PlainCompareList };
132
+ //# sourceMappingURL=plain-compare-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plain-compare-list.js","sourceRoot":"","sources":["../src/plain-compare-list.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,aAAa,EACb,UAAU,EACV,QAAQ,EACR,IAAI,EAEJ,GAAG,EACH,KAAK,GACN,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,OAAO,EAAc,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAG1D,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,UAAU;IAAzC;;QACL;;WAEG;QAEH,kBAAa,GAAG,EAAE,CAAC;QAEnB;;WAEG;QAEH,mBAAc,GAAG,EAAE,CAAC;QAoBpB;;WAEG;QAEH,qBAAgB,GAAG,EAAE,CAAC;QAEtB;;WAEG;QAEH,sBAAiB,GAAG,EAAE,CAAC;QAGvB,mBAAc,GAAG,IAAI,CAAC;IAqFxB,CAAC;IAnFC,MAAM;QACJ,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,oBAAoB,EAAE;;;0CAGO,IAAI,CAAC,aAAa;YAChD,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;YACzD,CAAC,CAAC,IAAI,CAAA,iCAAiC,IAAI,CAAC,gBAAgB,QAAQ;YACpE,CAAC,CAAC,EAAE;;;0CAG0B,IAAI,CAAC,cAAc;YACjD,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;YAC3D,CAAC,CAAC,IAAI,CAAA;kBACA,IAAI,CAAC,iBAAiB;qBACnB;YACT,CAAC,CAAC,EAAE;;;QAGR,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,eAAe;YAC3C,CAAC,CAAC,IAAI,CAAA;cACA,UAAU,CACV,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAC/C;WACF;YACH,CAAC,CAAC,EAAE;KACP,CAAC;IACJ,CAAC;IAES,oBAAoB;QAC5B,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,OAAO,IAAI,CAAA;;;kCAGiB,GAAG,CAAC,wBAAwB,CAAC;;yBAEtC,IAAI,CAAC,cAAc;wBACpB,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;;;;;OAKnE,CAAC;SACH;QACD,OAAO,IAAI,CAAA,EAAE,CAAC;IAChB,CAAC;;AAEM,uBAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiClB,CAAC;AA3HF;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uDACR;AAMnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wDACP;AAMpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wDACF;AAMzB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yDACD;AAM1B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wDACU;AAMrC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0DACL;AAMtB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2DACJ;AAGvB;IADC,KAAK,EAAE;wDACc;AA5CX,gBAAgB;IAD5B,aAAa,CAAC,oBAAoB,CAAC;GACvB,gBAAgB,CAiI5B;SAjIY,gBAAgB","sourcesContent":["import {\n customElement,\n LitElement,\n property,\n html,\n TemplateResult,\n css,\n state,\n} from 'lit-element';\nimport { get } from 'lit-translate';\n\nimport { DiffFilter, renderDiff } from './foundation/compare.js';\n\n@customElement('plain-compare-list')\nexport class PlainCompareList extends LitElement {\n /**\n * The title of the left list\n */\n @property({ type: String })\n leftHandTitle = '';\n\n /**\n * The title of the right list\n */\n @property({ type: String })\n rightHandTitle = '';\n\n /**\n * The left Element that should be compared\n */\n @property({ type: Object })\n leftHandObject!: Element;\n\n /**\n * The right element that should be compared against\n */\n @property({ type: Object })\n rightHandObject!: Element;\n\n /**\n * Optional filter to ignore differences\n */\n @property({ type: Object })\n filterToIgnore?: DiffFilter<Element>;\n\n /**\n * The subtitle of the left list (optional)\n */\n @property({ type: String })\n leftHandSubtitle = '';\n\n /**\n * The subtitle of the right list (optional)\n */\n @property({ type: String })\n rightHandSubtitle = '';\n\n @state()\n filterMutables = true;\n\n render(): TemplateResult {\n return html`\n ${this.renderFilterCheckbox()}\n <div class=\"container container--alt\">\n <div class=\"list__container list__container--left\">\n <h3 class=\"mdc-dialog__title\">${this.leftHandTitle}</h3>\n ${this.leftHandSubtitle && this.leftHandSubtitle.length > 0\n ? html`<h5 class=\"mdc-dialog__title\">${this.leftHandSubtitle}</h5> `\n : ''}\n </div>\n <div class=\"list__container\">\n <h3 class=\"mdc-dialog__title\">${this.rightHandTitle}</h3>\n ${this.rightHandSubtitle && this.rightHandSubtitle.length > 0\n ? html`<h5 class=\"mdc-dialog__title\">\n ${this.rightHandSubtitle}\n </h5> `\n : ''}\n </div>\n </div>\n ${this.leftHandObject && this.rightHandObject\n ? html`\n ${renderDiff(\n this.rightHandObject,\n this.leftHandObject,\n this.filterMutables ? this.filterToIgnore : {}\n )}\n `\n : ''}\n `;\n }\n\n protected renderFilterCheckbox(): TemplateResult {\n if (this.filterToIgnore) {\n return html`\n <div class=\"container\">\n <div class=\"flex\"></div>\n <mwc-formfield label=\"${get('compare.filterMutables')}\">\n <mwc-checkbox\n ?checked=${this.filterMutables}\n @change=${() => (this.filterMutables = !this.filterMutables)}\n >\n </mwc-checkbox>\n </mwc-formfield>\n </div>\n `;\n }\n return html``;\n }\n\n static styles = css`\n mwc-list-item {\n --mdc-list-item-graphic-margin: 0;\n }\n\n .mdc-dialog__title {\n padding: 0 16px;\n }\n\n .container {\n display: flex;\n gap: 4px;\n }\n\n .container--alt {\n background: var(--base2);\n }\n\n .list__container {\n width: 50%;\n background: var(--base3);\n }\n .list__container--left {\n text-align: right;\n }\n .flex {\n flex: 1;\n }\n\n mwc-list-item[right] {\n text-align: right;\n direction: rtl;\n }\n `;\n}\n"]}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Hashes `uri` using cyrb64 analogous to
3
+ * https://github.com/bryc/code/blob/master/jshash/experimental/cyrb53.js .
4
+ * @returns a valid customElement tagName containing the URI hash.
5
+ */
6
+ export function pluginTag(uri) {
7
+ let h1 = 0xdeadbeef, h2 = 0x41c6ce57;
8
+ for (let i = 0, ch; i < uri.length; i++) {
9
+ ch = uri.charCodeAt(i);
10
+ h1 = Math.imul(h1 ^ ch, 2654435761);
11
+ h2 = Math.imul(h2 ^ ch, 1597334677);
12
+ }
13
+ h1 =
14
+ Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^
15
+ Math.imul(h2 ^ (h2 >>> 13), 3266489909);
16
+ h2 =
17
+ Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^
18
+ Math.imul(h1 ^ (h1 >>> 13), 3266489909);
19
+ return 'oscd-plugin' +
20
+ ((h2 >>> 0).toString(16).padStart(8, '0') +
21
+ (h1 >>> 0).toString(16).padStart(8, '0'));
22
+ }
23
+ //# sourceMappingURL=plugin-tag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-tag.js","sourceRoot":"","sources":["../src/plugin-tag.ts"],"names":[],"mappings":"AACA;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACjC,IAAI,EAAE,GAAG,UAAU,EACnB,EAAE,GAAG,UAAU,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACzC,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACvB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QACpC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;KACnC;IACD,EAAE;QACF,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;IACxC,EAAE;QACF,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;IACxC,OAAO,aAAa;QAChB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;YACzC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;AACjD,CAAC","sourcesContent":["\n/**\n * Hashes `uri` using cyrb64 analogous to\n * https://github.com/bryc/code/blob/master/jshash/experimental/cyrb53.js .\n * @returns a valid customElement tagName containing the URI hash.\n */\nexport function pluginTag(uri: string): string {\n let h1 = 0xdeadbeef,\n h2 = 0x41c6ce57;\n for (let i = 0, ch; i < uri.length; i++) {\n ch = uri.charCodeAt(i);\n h1 = Math.imul(h1 ^ ch, 2654435761);\n h2 = Math.imul(h2 ^ ch, 1597334677);\n }\n h1 =\n Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^\n Math.imul(h2 ^ (h2 >>> 13), 3266489909);\n h2 =\n Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^\n Math.imul(h1 ^ (h1 >>> 13), 3266489909);\n return 'oscd-plugin' +\n ((h2 >>> 0).toString(16).padStart(8, '0') +\n (h1 >>> 0).toString(16).padStart(8, '0'))\n}\n"]}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The combination of name and kind uniquely identifies the plugin to be configured.
3
+ * If config is null, the plugin is removed. Otherwise, the plugin is added or reconfigured.
4
+ */
5
+ export function newConfigurePluginEvent(name, kind, config) {
6
+ return new CustomEvent('oscd-configure-plugin', {
7
+ bubbles: true,
8
+ composed: true,
9
+ detail: { name, kind, config },
10
+ });
11
+ }
12
+ //# sourceMappingURL=plugin.events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.events.js","sourceRoot":"","sources":["../src/plugin.events.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAY,EAAE,IAAgB,EAAE,MAAqB;IAC3F,OAAO,IAAI,WAAW,CAAwB,uBAAuB,EAAE;QACrE,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;KAC/B,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { Plugin, PluginKind } from './plugin.js';\n\n/**\n * The configure plugin event allows the plugin to request that OpenSCD core add, remove, or reconfigure a plugin.\n */\nexport type ConfigurePluginDetail = {\n name: string;\n // The API describes only 'menu' and 'editor' kinds b\n // but we still use the 'validator' too, so I just use the type PluginKind\n kind: PluginKind;\n config: Plugin | null;\n};\n\nexport type ConfigurePluginEvent = CustomEvent<ConfigurePluginDetail>;\n\n/**\n * The combination of name and kind uniquely identifies the plugin to be configured.\n * If config is null, the plugin is removed. Otherwise, the plugin is added or reconfigured.\n */\nexport function newConfigurePluginEvent(name: string, kind: PluginKind, config: Plugin | null): ConfigurePluginEvent {\n return new CustomEvent<ConfigurePluginDetail>('oscd-configure-plugin', {\n bubbles: true,\n composed: true,\n detail: { name, kind, config },\n });\n}\n"]}
package/dist/plugin.js ADDED
@@ -0,0 +1,2 @@
1
+ export const menuPosition = ['top', 'middle', 'bottom'];
2
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AA2BA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC","sourcesContent":["import { TemplateResult } from 'lit-element';\nimport { Plugin as CorePlugin } from \"@openscd/core\"\n\nexport type Plugin = CorePlugin & {\n official?: boolean;\n active: boolean;\n content?: () => TemplateResult;\n};\n\nexport type PluginConfig = PluginConfigNotMenu | PluginConfigMenu\n\nexport type PluginConfigNotMenu = Omit<Plugin, \"position\" | \"active\"> & {\n kind: 'editor' | 'validator';\n}\n\nexport type PluginConfigMenu = Omit<Plugin, \"active\"> & {\n kind: 'menu';\n position: MenuPosition;\n}\n\nexport type InstalledOfficialPlugin = Plugin & {\n src: string;\n official: true;\n installed: boolean;\n};\n\nexport type PluginKind = 'editor' | 'menu' | 'validator';\nexport const menuPosition = ['top', 'middle', 'bottom'] as const;\nexport type MenuPosition = (typeof menuPosition)[number];\n\n"]}
@@ -0,0 +1,256 @@
1
+ export function generatePluginPath(plugin) {
2
+ return location.origin + location.pathname + plugin;
3
+ }
4
+ export const officialPlugins = [
5
+ {
6
+ name: 'IED',
7
+ src: generatePluginPath('plugins/src/editors/IED.js'),
8
+ icon: 'developer_board',
9
+ activeByDefault: true,
10
+ kind: 'editor',
11
+ requireDoc: true,
12
+ },
13
+ {
14
+ name: 'Substation',
15
+ src: generatePluginPath('plugins/src/editors/Substation.js'),
16
+ icon: 'margin',
17
+ activeByDefault: true,
18
+ kind: 'editor',
19
+ requireDoc: true,
20
+ },
21
+ {
22
+ name: 'Single Line Diagram',
23
+ src: generatePluginPath('plugins/src/editors/SingleLineDiagram.js'),
24
+ icon: 'edit',
25
+ activeByDefault: false,
26
+ kind: 'editor',
27
+ requireDoc: true,
28
+ },
29
+ {
30
+ name: 'Subscriber Message Binding (GOOSE)',
31
+ src: generatePluginPath('plugins/src/editors/GooseSubscriberMessageBinding.js'),
32
+ icon: 'link',
33
+ activeByDefault: false,
34
+ kind: 'editor',
35
+ requireDoc: true,
36
+ },
37
+ {
38
+ name: 'Subscriber Data Binding (GOOSE)',
39
+ src: generatePluginPath('plugins/src/editors/GooseSubscriberDataBinding.js'),
40
+ icon: 'link',
41
+ activeByDefault: false,
42
+ kind: 'editor',
43
+ requireDoc: true,
44
+ },
45
+ {
46
+ name: 'Subscriber Message Binding (SMV)',
47
+ src: generatePluginPath('plugins/src/editors/SMVSubscriberMessageBinding.js'),
48
+ icon: 'link',
49
+ activeByDefault: false,
50
+ kind: 'editor',
51
+ requireDoc: true,
52
+ },
53
+ {
54
+ name: 'Subscriber Data Binding (SMV)',
55
+ src: generatePluginPath('plugins/src/editors/SMVSubscriberDataBinding.js'),
56
+ icon: 'link',
57
+ activeByDefault: false,
58
+ kind: 'editor',
59
+ requireDoc: true,
60
+ },
61
+ {
62
+ name: 'Subscriber Later Binding (SMV/GOOSE)',
63
+ src: generatePluginPath('external-plugins/oscd-subscriber-later-binding/oscd-subscriber-later-binding.js'),
64
+ icon: 'link',
65
+ activeByDefault: true,
66
+ kind: 'editor',
67
+ requireDoc: true
68
+ },
69
+ {
70
+ name: 'Communication',
71
+ src: generatePluginPath('plugins/src/editors/Communication.js'),
72
+ icon: 'settings_ethernet',
73
+ activeByDefault: true,
74
+ kind: 'editor',
75
+ requireDoc: true,
76
+ },
77
+ {
78
+ name: '104',
79
+ src: generatePluginPath('plugins/src/editors/Protocol104.js'),
80
+ icon: 'settings_ethernet',
81
+ activeByDefault: false,
82
+ kind: 'editor',
83
+ requireDoc: true,
84
+ },
85
+ {
86
+ name: 'Templates',
87
+ src: generatePluginPath('plugins/src/editors/Templates.js'),
88
+ icon: 'copy_all',
89
+ activeByDefault: true,
90
+ kind: 'editor',
91
+ requireDoc: true,
92
+ },
93
+ {
94
+ name: 'Publisher',
95
+ src: generatePluginPath('external-plugins/oscd-publisher/oscd-publisher.js'),
96
+ icon: 'publish',
97
+ activeByDefault: false,
98
+ kind: 'editor',
99
+ requireDoc: true,
100
+ },
101
+ {
102
+ name: 'Cleanup',
103
+ src: generatePluginPath('plugins/src/editors/Cleanup.js'),
104
+ icon: 'cleaning_services',
105
+ activeByDefault: false,
106
+ kind: 'editor',
107
+ requireDoc: true,
108
+ },
109
+ {
110
+ name: 'Open project',
111
+ src: generatePluginPath('plugins/src/menu/OpenProject.js'),
112
+ icon: 'folder_open',
113
+ activeByDefault: true,
114
+ kind: 'menu',
115
+ requireDoc: false,
116
+ position: 'top',
117
+ },
118
+ {
119
+ name: 'New project',
120
+ src: generatePluginPath('plugins/src/menu/NewProject.js'),
121
+ icon: 'create_new_folder',
122
+ activeByDefault: true,
123
+ kind: 'menu',
124
+ requireDoc: false,
125
+ position: 'top',
126
+ },
127
+ {
128
+ name: 'Plugin Store (Beta)',
129
+ src: 'https://sprinteins.github.io/oscd-plugin-store/index.js',
130
+ icon: 'shopping_bag',
131
+ activeByDefault: false,
132
+ kind: 'menu',
133
+ requireDoc: false,
134
+ position: 'bottom',
135
+ },
136
+ {
137
+ name: 'Save project',
138
+ src: generatePluginPath('plugins/src/menu/SaveProject.js'),
139
+ icon: 'save',
140
+ activeByDefault: true,
141
+ kind: 'menu',
142
+ requireDoc: true,
143
+ position: 'top',
144
+ },
145
+ {
146
+ name: 'Validate Schema',
147
+ src: generatePluginPath('plugins/src/validators/ValidateSchema.js'),
148
+ icon: 'rule_folder',
149
+ activeByDefault: true,
150
+ kind: 'validator',
151
+ },
152
+ {
153
+ name: 'Validate Templates',
154
+ src: generatePluginPath('plugins/src/validators/ValidateTemplates.js'),
155
+ icon: 'rule_folder',
156
+ activeByDefault: true,
157
+ kind: 'validator',
158
+ },
159
+ {
160
+ name: 'Import IEDs',
161
+ src: generatePluginPath('plugins/src/menu/ImportIEDs.js'),
162
+ icon: 'snippet_folder',
163
+ activeByDefault: true,
164
+ kind: 'menu',
165
+ requireDoc: true,
166
+ position: 'middle',
167
+ },
168
+ {
169
+ name: 'Create Virtual IED',
170
+ src: generatePluginPath('plugins/src/menu/VirtualTemplateIED.js'),
171
+ icon: 'developer_board',
172
+ activeByDefault: false,
173
+ kind: 'menu',
174
+ requireDoc: true,
175
+ position: 'middle',
176
+ },
177
+ {
178
+ name: 'Subscriber Update',
179
+ src: generatePluginPath('plugins/src/menu/SubscriberInfo.js'),
180
+ activeByDefault: true,
181
+ kind: 'menu',
182
+ requireDoc: true,
183
+ position: 'middle',
184
+ },
185
+ {
186
+ name: 'Update desc (ABB)',
187
+ src: generatePluginPath('plugins/src/menu/UpdateDescriptionABB.js'),
188
+ activeByDefault: false,
189
+ kind: 'menu',
190
+ requireDoc: true,
191
+ position: 'middle',
192
+ },
193
+ {
194
+ name: 'Update desc (SEL)',
195
+ src: generatePluginPath('plugins/src/menu/UpdateDescriptionSEL.js'),
196
+ activeByDefault: false,
197
+ kind: 'menu',
198
+ requireDoc: true,
199
+ position: 'middle',
200
+ },
201
+ {
202
+ name: 'Merge Project',
203
+ src: generatePluginPath('plugins/src/menu/Merge.js'),
204
+ icon: 'merge_type',
205
+ activeByDefault: true,
206
+ kind: 'menu',
207
+ requireDoc: true,
208
+ position: 'middle',
209
+ },
210
+ {
211
+ name: 'Update Substation',
212
+ src: generatePluginPath('plugins/src/menu/UpdateSubstation.js'),
213
+ icon: 'merge_type',
214
+ activeByDefault: true,
215
+ kind: 'menu',
216
+ requireDoc: true,
217
+ position: 'middle',
218
+ },
219
+ {
220
+ name: 'Compare IED',
221
+ src: generatePluginPath('plugins/src/menu/CompareIED.js'),
222
+ icon: 'compare_arrows',
223
+ activeByDefault: true,
224
+ kind: 'menu',
225
+ requireDoc: true,
226
+ position: 'middle',
227
+ },
228
+ {
229
+ name: 'Show SCL History',
230
+ src: generatePluginPath('plugins/src/menu/SclHistory.js'),
231
+ icon: 'history_toggle_off',
232
+ activeByDefault: true,
233
+ kind: 'menu',
234
+ requireDoc: true,
235
+ position: 'bottom',
236
+ },
237
+ {
238
+ name: 'Help',
239
+ src: generatePluginPath('plugins/src/menu/Help.js'),
240
+ icon: 'help',
241
+ activeByDefault: true,
242
+ kind: 'menu',
243
+ requireDoc: false,
244
+ position: 'bottom',
245
+ },
246
+ {
247
+ name: 'Export Communication Section',
248
+ src: generatePluginPath('plugins/src/menu/ExportCommunication.js'),
249
+ icon: 'sim_card_download',
250
+ activeByDefault: false,
251
+ kind: 'menu',
252
+ requireDoc: true,
253
+ position: 'middle',
254
+ },
255
+ ];
256
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,QAAQ,CAAC,MAAM,GAAC,QAAQ,CAAC,QAAQ,GAAC,MAAM,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAmB;IAC7C;QACE,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,kBAAkB,CAAC,4BAA4B,CAAC;QACrD,IAAI,EAAE,iBAAiB;QACvB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,IAAI;KACjB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,kBAAkB,CAAC,mCAAmC,CAAC;QAC5D,IAAI,EAAE,QAAQ;QACd,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,IAAI;KACjB;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,GAAG,EAAE,kBAAkB,CAAC,0CAA0C,CAAC;QACnE,IAAI,EAAE,MAAM;QACZ,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,IAAI;KACjB;IACD;QACE,IAAI,EAAE,oCAAoC;QAC1C,GAAG,EAAE,kBAAkB,CAAC,sDAAsD,CAAC;QAC/E,IAAI,EAAE,MAAM;QACZ,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,IAAI;KACjB;IACD;QACE,IAAI,EAAE,iCAAiC;QACvC,GAAG,EAAE,kBAAkB,CAAC,mDAAmD,CAAC;QAC5E,IAAI,EAAE,MAAM;QACZ,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,IAAI;KACjB;IACD;QACE,IAAI,EAAE,kCAAkC;QACxC,GAAG,EAAE,kBAAkB,CAAC,oDAAoD,CAAC;QAC7E,IAAI,EAAE,MAAM;QACZ,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,IAAI;KACjB;IACD;QACE,IAAI,EAAE,+BAA+B;QACrC,GAAG,EAAE,kBAAkB,CAAC,iDAAiD,CAAC;QAC1E,IAAI,EAAE,MAAM;QACZ,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,IAAI;KACjB;IACD;QACE,IAAI,EAAE,sCAAsC;QAC5C,GAAG,EAAE,kBAAkB,CAAC,iFAAiF,CAAC;QAC1G,IAAI,EAAE,MAAM;QACZ,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,IAAI;KACjB;IACD;QACE,IAAI,EAAE,eAAe;QACrB,GAAG,EAAE,kBAAkB,CAAC,sCAAsC,CAAC;QAC/D,IAAI,EAAE,mBAAmB;QACzB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,IAAI;KACjB;IACD;QACE,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,kBAAkB,CAAC,oCAAoC,CAAC;QAC7D,IAAI,EAAE,mBAAmB;QACzB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,IAAI;KACjB;IACD;QACE,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,kBAAkB,CAAC,kCAAkC,CAAC;QAC3D,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,IAAI;KACjB;IACD;QACE,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,kBAAkB,CAAC,mDAAmD,CAAC;QAC5E,IAAI,EAAE,SAAS;QACf,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,IAAI;KACjB;IACD;QACE,IAAI,EAAE,SAAS;QACf,GAAG,EAAE,kBAAkB,CAAC,gCAAgC,CAAC;QACzD,IAAI,EAAE,mBAAmB;QACzB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,IAAI;KACjB;IACD;QACE,IAAI,EAAE,cAAc;QACpB,GAAG,EAAE,kBAAkB,CAAC,iCAAiC,CAAC;QAC1D,IAAI,EAAE,aAAa;QACnB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,aAAa;QACnB,GAAG,EAAE,kBAAkB,CAAC,gCAAgC,CAAC;QACzD,IAAI,EAAE,mBAAmB;QACzB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,GAAG,EAAE,yDAAyD;QAC9D,IAAI,EAAE,cAAc;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,IAAI,EAAE,cAAc;QACpB,GAAG,EAAE,kBAAkB,CAAC,iCAAiC,CAAC;QAC1D,IAAI,EAAE,MAAM;QACZ,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,GAAG,EAAE,kBAAkB,CAAC,0CAA0C,CAAC;QACnE,IAAI,EAAE,aAAa;QACnB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,WAAW;KAClB;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,GAAG,EAAE,kBAAkB,CAAC,6CAA6C,CAAC;QACtE,IAAI,EAAE,aAAa;QACnB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,WAAW;KAClB;IACD;QACE,IAAI,EAAE,aAAa;QACnB,GAAG,EAAE,kBAAkB,CAAC,gCAAgC,CAAC;QACzD,IAAI,EAAE,gBAAgB;QACtB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,GAAG,EAAE,kBAAkB,CAAC,wCAAwC,CAAC;QACjE,IAAI,EAAE,iBAAiB;QACvB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,GAAG,EAAE,kBAAkB,CAAC,oCAAoC,CAAC;QAC7D,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,GAAG,EAAE,kBAAkB,CAAC,0CAA0C,CAAC;QACnE,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,GAAG,EAAE,kBAAkB,CAAC,0CAA0C,CAAC;QACnE,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,IAAI,EAAE,eAAe;QACrB,GAAG,EAAE,kBAAkB,CAAC,2BAA2B,CAAC;QACpD,IAAI,EAAE,YAAY;QAClB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,GAAG,EAAE,kBAAkB,CAAC,sCAAsC,CAAC;QAC/D,IAAI,EAAE,YAAY;QAClB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,IAAI,EAAE,aAAa;QACnB,GAAG,EAAE,kBAAkB,CAAC,gCAAgC,CAAC;QACzD,IAAI,EAAE,gBAAgB;QACtB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,GAAG,EAAE,kBAAkB,CAAC,gCAAgC,CAAC;QACzD,IAAI,EAAE,oBAAoB;QAC1B,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,kBAAkB,CAAC,0BAA0B,CAAC;QACnD,IAAI,EAAE,MAAM;QACZ,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,IAAI,EAAE,8BAA8B;QACpC,GAAG,EAAE,kBAAkB,CAAC,yCAAyC,CAAC;QAClE,IAAI,EAAE,mBAAmB;QACzB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,QAAQ;KACnB;CACF,CAAC","sourcesContent":["import { PluginConfig } from './plugin.js';\n\nexport function generatePluginPath(plugin: string): string {\n return location.origin+location.pathname+plugin;\n}\n\nexport const officialPlugins: PluginConfig[] = [\n {\n name: 'IED',\n src: generatePluginPath('plugins/src/editors/IED.js'),\n icon: 'developer_board',\n activeByDefault: true,\n kind: 'editor',\n requireDoc: true,\n },\n {\n name: 'Substation',\n src: generatePluginPath('plugins/src/editors/Substation.js'),\n icon: 'margin',\n activeByDefault: true,\n kind: 'editor',\n requireDoc: true,\n },\n {\n name: 'Single Line Diagram',\n src: generatePluginPath('plugins/src/editors/SingleLineDiagram.js'),\n icon: 'edit',\n activeByDefault: false,\n kind: 'editor',\n requireDoc: true,\n },\n {\n name: 'Subscriber Message Binding (GOOSE)',\n src: generatePluginPath('plugins/src/editors/GooseSubscriberMessageBinding.js'),\n icon: 'link',\n activeByDefault: false,\n kind: 'editor',\n requireDoc: true,\n },\n {\n name: 'Subscriber Data Binding (GOOSE)',\n src: generatePluginPath('plugins/src/editors/GooseSubscriberDataBinding.js'),\n icon: 'link',\n activeByDefault: false,\n kind: 'editor',\n requireDoc: true,\n },\n {\n name: 'Subscriber Message Binding (SMV)',\n src: generatePluginPath('plugins/src/editors/SMVSubscriberMessageBinding.js'),\n icon: 'link',\n activeByDefault: false,\n kind: 'editor',\n requireDoc: true,\n },\n {\n name: 'Subscriber Data Binding (SMV)',\n src: generatePluginPath('plugins/src/editors/SMVSubscriberDataBinding.js'),\n icon: 'link',\n activeByDefault: false,\n kind: 'editor',\n requireDoc: true,\n },\n {\n name: 'Subscriber Later Binding (SMV/GOOSE)',\n src: generatePluginPath('external-plugins/oscd-subscriber-later-binding/oscd-subscriber-later-binding.js'),\n icon: 'link',\n activeByDefault: true,\n kind: 'editor',\n requireDoc: true\n },\n {\n name: 'Communication',\n src: generatePluginPath('plugins/src/editors/Communication.js'),\n icon: 'settings_ethernet',\n activeByDefault: true,\n kind: 'editor',\n requireDoc: true,\n },\n {\n name: '104',\n src: generatePluginPath('plugins/src/editors/Protocol104.js'),\n icon: 'settings_ethernet',\n activeByDefault: false,\n kind: 'editor',\n requireDoc: true,\n },\n {\n name: 'Templates',\n src: generatePluginPath('plugins/src/editors/Templates.js'),\n icon: 'copy_all',\n activeByDefault: true,\n kind: 'editor',\n requireDoc: true,\n },\n {\n name: 'Publisher',\n src: generatePluginPath('external-plugins/oscd-publisher/oscd-publisher.js'),\n icon: 'publish',\n activeByDefault: false,\n kind: 'editor',\n requireDoc: true,\n },\n {\n name: 'Cleanup',\n src: generatePluginPath('plugins/src/editors/Cleanup.js'),\n icon: 'cleaning_services',\n activeByDefault: false,\n kind: 'editor',\n requireDoc: true,\n },\n {\n name: 'Open project',\n src: generatePluginPath('plugins/src/menu/OpenProject.js'),\n icon: 'folder_open',\n activeByDefault: true,\n kind: 'menu',\n requireDoc: false,\n position: 'top',\n },\n {\n name: 'New project',\n src: generatePluginPath('plugins/src/menu/NewProject.js'),\n icon: 'create_new_folder',\n activeByDefault: true,\n kind: 'menu',\n requireDoc: false,\n position: 'top',\n },\n {\n name: 'Plugin Store (Beta)',\n src: 'https://sprinteins.github.io/oscd-plugin-store/index.js',\n icon: 'shopping_bag',\n activeByDefault: false,\n kind: 'menu',\n requireDoc: false,\n position: 'bottom',\n },\n {\n name: 'Save project',\n src: generatePluginPath('plugins/src/menu/SaveProject.js'),\n icon: 'save',\n activeByDefault: true,\n kind: 'menu',\n requireDoc: true,\n position: 'top',\n },\n {\n name: 'Validate Schema',\n src: generatePluginPath('plugins/src/validators/ValidateSchema.js'),\n icon: 'rule_folder',\n activeByDefault: true,\n kind: 'validator',\n },\n {\n name: 'Validate Templates',\n src: generatePluginPath('plugins/src/validators/ValidateTemplates.js'),\n icon: 'rule_folder',\n activeByDefault: true,\n kind: 'validator',\n },\n {\n name: 'Import IEDs',\n src: generatePluginPath('plugins/src/menu/ImportIEDs.js'),\n icon: 'snippet_folder',\n activeByDefault: true,\n kind: 'menu',\n requireDoc: true,\n position: 'middle',\n },\n {\n name: 'Create Virtual IED',\n src: generatePluginPath('plugins/src/menu/VirtualTemplateIED.js'),\n icon: 'developer_board',\n activeByDefault: false,\n kind: 'menu',\n requireDoc: true,\n position: 'middle',\n },\n {\n name: 'Subscriber Update',\n src: generatePluginPath('plugins/src/menu/SubscriberInfo.js'),\n activeByDefault: true,\n kind: 'menu',\n requireDoc: true,\n position: 'middle',\n },\n {\n name: 'Update desc (ABB)',\n src: generatePluginPath('plugins/src/menu/UpdateDescriptionABB.js'),\n activeByDefault: false,\n kind: 'menu',\n requireDoc: true,\n position: 'middle',\n },\n {\n name: 'Update desc (SEL)',\n src: generatePluginPath('plugins/src/menu/UpdateDescriptionSEL.js'),\n activeByDefault: false,\n kind: 'menu',\n requireDoc: true,\n position: 'middle',\n },\n {\n name: 'Merge Project',\n src: generatePluginPath('plugins/src/menu/Merge.js'),\n icon: 'merge_type',\n activeByDefault: true,\n kind: 'menu',\n requireDoc: true,\n position: 'middle',\n },\n {\n name: 'Update Substation',\n src: generatePluginPath('plugins/src/menu/UpdateSubstation.js'),\n icon: 'merge_type',\n activeByDefault: true,\n kind: 'menu',\n requireDoc: true,\n position: 'middle',\n },\n {\n name: 'Compare IED',\n src: generatePluginPath('plugins/src/menu/CompareIED.js'),\n icon: 'compare_arrows',\n activeByDefault: true,\n kind: 'menu',\n requireDoc: true,\n position: 'middle',\n },\n {\n name: 'Show SCL History',\n src: generatePluginPath('plugins/src/menu/SclHistory.js'),\n icon: 'history_toggle_off',\n activeByDefault: true,\n kind: 'menu',\n requireDoc: true,\n position: 'bottom',\n },\n {\n name: 'Help',\n src: generatePluginPath('plugins/src/menu/Help.js'),\n icon: 'help',\n activeByDefault: true,\n kind: 'menu',\n requireDoc: false,\n position: 'bottom',\n },\n {\n name: 'Export Communication Section',\n src: generatePluginPath('plugins/src/menu/ExportCommunication.js'),\n icon: 'sim_card_download',\n activeByDefault: false,\n kind: 'menu',\n requireDoc: true,\n position: 'middle',\n },\n];\n"]}