@compas-oscd/open-scd 0.34.1 → 0.34.2

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 (187) hide show
  1. package/dist/WizardDivider.d.ts +8 -0
  2. package/dist/Wizarding.d.ts +10 -0
  3. package/dist/Wizarding.js.map +1 -1
  4. package/dist/action-icon.d.ts +25 -0
  5. package/dist/action-pane.d.ts +25 -0
  6. package/dist/addons/Editor.d.ts +25 -0
  7. package/dist/addons/History.d.ts +86 -0
  8. package/dist/addons/Layout.d.ts +96 -0
  9. package/dist/addons/Settings.d.ts +68 -0
  10. package/dist/addons/Waiter.d.ts +14 -0
  11. package/dist/addons/Wizards.d.ts +15 -0
  12. package/dist/addons/editor/edit-action-to-v1-converter.d.ts +3 -0
  13. package/dist/addons/editor/edit-v1-to-v2-converter.d.ts +2 -0
  14. package/dist/addons/history/get-log-text.d.ts +5 -0
  15. package/dist/addons/menu-tabs/menu-tabs.d.ts +22 -0
  16. package/dist/addons/plugin-manager/custom-plugin-dialog.d.ts +28 -0
  17. package/dist/addons/plugin-manager/plugin-manager.d.ts +20 -0
  18. package/dist/filtered-list.d.ts +27 -0
  19. package/dist/finder-list.d.ts +37 -0
  20. package/dist/foundation/compare.d.ts +79 -0
  21. package/dist/foundation/dai.d.ts +30 -0
  22. package/dist/foundation/generators.d.ts +13 -0
  23. package/dist/foundation/ied.d.ts +22 -0
  24. package/dist/foundation/nsd.d.ts +4 -0
  25. package/dist/foundation/nsdoc.d.ts +14 -0
  26. package/dist/foundation/scl.d.ts +1 -0
  27. package/dist/foundation.d.ts +230 -0
  28. package/dist/icons/compare.d.ts +3 -0
  29. package/dist/icons/icons.d.ts +41 -0
  30. package/dist/icons/ied-icons.d.ts +3 -0
  31. package/dist/icons/lnode.d.ts +16 -0
  32. package/dist/open-scd.d.ts +131 -0
  33. package/dist/oscd-filter-button.d.ts +27 -0
  34. package/dist/plain-compare-list.d.ts +36 -0
  35. package/dist/plugin-tag.d.ts +6 -0
  36. package/dist/plugin.d.ts +23 -0
  37. package/dist/plugin.events.d.ts +15 -0
  38. package/dist/plugins.d.ts +3 -0
  39. package/dist/schemas.d.ts +58 -0
  40. package/dist/themes.d.ts +3 -0
  41. package/dist/translations/de.d.ts +2 -0
  42. package/dist/translations/en.d.ts +963 -0
  43. package/dist/translations/loader.d.ts +12 -0
  44. package/dist/wizard-checkbox.d.ts +37 -0
  45. package/dist/wizard-dialog.d.ts +45 -0
  46. package/dist/wizard-select.d.ts +31 -0
  47. package/dist/wizard-textfield.d.ts +50 -0
  48. package/dist/wizards.d.ts +23 -0
  49. package/package.json +1 -1
  50. package/dist/core/api/api.js +0 -7
  51. package/dist/core/api/api.js.map +0 -1
  52. package/dist/core/api/editor/subject.js +0 -22
  53. package/dist/core/api/editor/subject.js.map +0 -1
  54. package/dist/core/api/editor/xml-editor.js +0 -82
  55. package/dist/core/api/editor/xml-editor.js.map +0 -1
  56. package/dist/core/api/plugin-state-api.js +0 -27
  57. package/dist/core/api/plugin-state-api.js.map +0 -1
  58. package/dist/core/foundation/cyrb64.js +0 -26
  59. package/dist/core/foundation/cyrb64.js.map +0 -1
  60. package/dist/core/foundation/deprecated/edit-event.js +0 -44
  61. package/dist/core/foundation/deprecated/edit-event.js.map +0 -1
  62. package/dist/core/foundation/deprecated/editor.js +0 -94
  63. package/dist/core/foundation/deprecated/editor.js.map +0 -1
  64. package/dist/core/foundation/deprecated/history.js +0 -17
  65. package/dist/core/foundation/deprecated/history.js.map +0 -1
  66. package/dist/core/foundation/deprecated/open-event.js +0 -9
  67. package/dist/core/foundation/deprecated/open-event.js.map +0 -1
  68. package/dist/core/foundation/deprecated/settings.js +0 -19
  69. package/dist/core/foundation/deprecated/settings.js.map +0 -1
  70. package/dist/core/foundation/deprecated/validation.js +0 -8
  71. package/dist/core/foundation/deprecated/validation.js.map +0 -1
  72. package/dist/core/foundation/deprecated/waiter.js +0 -12
  73. package/dist/core/foundation/deprecated/waiter.js.map +0 -1
  74. package/dist/core/foundation/edit-completed-event.js +0 -11
  75. package/dist/core/foundation/edit-completed-event.js.map +0 -1
  76. package/dist/core/foundation/edit-event.js +0 -8
  77. package/dist/core/foundation/edit-event.js.map +0 -1
  78. package/dist/core/foundation/edit.js +0 -31
  79. package/dist/core/foundation/edit.js.map +0 -1
  80. package/dist/core/foundation/handle-edit.js +0 -151
  81. package/dist/core/foundation/handle-edit.js.map +0 -1
  82. package/dist/core/foundation/open-event.js +0 -8
  83. package/dist/core/foundation/open-event.js.map +0 -1
  84. package/dist/core/foundation/plugin.js +0 -2
  85. package/dist/core/foundation/plugin.js.map +0 -1
  86. package/dist/core/foundation.js +0 -14
  87. package/dist/core/foundation.js.map +0 -1
  88. package/dist/core/locales.js +0 -21
  89. package/dist/core/locales.js.map +0 -1
  90. package/dist/openscd/src/WizardDivider.js +0 -37
  91. package/dist/openscd/src/WizardDivider.js.map +0 -1
  92. package/dist/openscd/src/Wizarding.js +0 -38
  93. package/dist/openscd/src/Wizarding.js.map +0 -1
  94. package/dist/openscd/src/action-icon.js +0 -220
  95. package/dist/openscd/src/action-icon.js.map +0 -1
  96. package/dist/openscd/src/action-pane.js +0 -176
  97. package/dist/openscd/src/action-pane.js.map +0 -1
  98. package/dist/openscd/src/addons/Editor.js +0 -106
  99. package/dist/openscd/src/addons/Editor.js.map +0 -1
  100. package/dist/openscd/src/addons/History.js +0 -490
  101. package/dist/openscd/src/addons/History.js.map +0 -1
  102. package/dist/openscd/src/addons/Layout.js +0 -619
  103. package/dist/openscd/src/addons/Layout.js.map +0 -1
  104. package/dist/openscd/src/addons/Settings.js +0 -465
  105. package/dist/openscd/src/addons/Settings.js.map +0 -1
  106. package/dist/openscd/src/addons/Waiter.js +0 -45
  107. package/dist/openscd/src/addons/Waiter.js.map +0 -1
  108. package/dist/openscd/src/addons/Wizards.js +0 -48
  109. package/dist/openscd/src/addons/Wizards.js.map +0 -1
  110. package/dist/openscd/src/addons/editor/edit-action-to-v1-converter.js +0 -96
  111. package/dist/openscd/src/addons/editor/edit-action-to-v1-converter.js.map +0 -1
  112. package/dist/openscd/src/addons/editor/edit-v1-to-v2-converter.js +0 -37
  113. package/dist/openscd/src/addons/editor/edit-v1-to-v2-converter.js.map +0 -1
  114. package/dist/openscd/src/addons/history/get-log-text.js +0 -26
  115. package/dist/openscd/src/addons/history/get-log-text.js.map +0 -1
  116. package/dist/openscd/src/addons/menu-tabs/menu-tabs.js +0 -74
  117. package/dist/openscd/src/addons/menu-tabs/menu-tabs.js.map +0 -1
  118. package/dist/openscd/src/addons/plugin-manager/custom-plugin-dialog.js +0 -177
  119. package/dist/openscd/src/addons/plugin-manager/custom-plugin-dialog.js.map +0 -1
  120. package/dist/openscd/src/addons/plugin-manager/plugin-manager.js +0 -165
  121. package/dist/openscd/src/addons/plugin-manager/plugin-manager.js.map +0 -1
  122. package/dist/openscd/src/filtered-list.js +0 -168
  123. package/dist/openscd/src/filtered-list.js.map +0 -1
  124. package/dist/openscd/src/finder-list.js +0 -207
  125. package/dist/openscd/src/finder-list.js.map +0 -1
  126. package/dist/openscd/src/foundation/compare.js +0 -273
  127. package/dist/openscd/src/foundation/compare.js.map +0 -1
  128. package/dist/openscd/src/foundation/dai.js +0 -127
  129. package/dist/openscd/src/foundation/dai.js.map +0 -1
  130. package/dist/openscd/src/foundation/generators.js +0 -67
  131. package/dist/openscd/src/foundation/generators.js.map +0 -1
  132. package/dist/openscd/src/foundation/ied.js +0 -84
  133. package/dist/openscd/src/foundation/ied.js.map +0 -1
  134. package/dist/openscd/src/foundation/nsd.js +0 -13
  135. package/dist/openscd/src/foundation/nsd.js.map +0 -1
  136. package/dist/openscd/src/foundation/nsdoc.js +0 -180
  137. package/dist/openscd/src/foundation/nsdoc.js.map +0 -1
  138. package/dist/openscd/src/foundation/scl.js +0 -64
  139. package/dist/openscd/src/foundation/scl.js.map +0 -1
  140. package/dist/openscd/src/foundation.js +0 -1922
  141. package/dist/openscd/src/foundation.js.map +0 -1
  142. package/dist/openscd/src/icons/compare.js +0 -11
  143. package/dist/openscd/src/icons/compare.js.map +0 -1
  144. package/dist/openscd/src/icons/icons.js +0 -611
  145. package/dist/openscd/src/icons/icons.js.map +0 -1
  146. package/dist/openscd/src/icons/ied-icons.js +0 -11
  147. package/dist/openscd/src/icons/ied-icons.js.map +0 -1
  148. package/dist/openscd/src/icons/lnode.js +0 -50
  149. package/dist/openscd/src/icons/lnode.js.map +0 -1
  150. package/dist/openscd/src/open-scd.js +0 -483
  151. package/dist/openscd/src/open-scd.js.map +0 -1
  152. package/dist/openscd/src/oscd-filter-button.js +0 -89
  153. package/dist/openscd/src/oscd-filter-button.js.map +0 -1
  154. package/dist/openscd/src/plain-compare-list.js +0 -132
  155. package/dist/openscd/src/plain-compare-list.js.map +0 -1
  156. package/dist/openscd/src/plugin-tag.js +0 -23
  157. package/dist/openscd/src/plugin-tag.js.map +0 -1
  158. package/dist/openscd/src/plugin.events.js +0 -12
  159. package/dist/openscd/src/plugin.events.js.map +0 -1
  160. package/dist/openscd/src/plugin.js +0 -2
  161. package/dist/openscd/src/plugin.js.map +0 -1
  162. package/dist/openscd/src/plugins.js +0 -256
  163. package/dist/openscd/src/plugins.js.map +0 -1
  164. package/dist/openscd/src/schemas.js +0 -9325
  165. package/dist/openscd/src/schemas.js.map +0 -1
  166. package/dist/openscd/src/themes.js +0 -122
  167. package/dist/openscd/src/themes.js.map +0 -1
  168. package/dist/openscd/src/translations/de.js +0 -954
  169. package/dist/openscd/src/translations/de.js.map +0 -1
  170. package/dist/openscd/src/translations/en.js +0 -950
  171. package/dist/openscd/src/translations/en.js.map +0 -1
  172. package/dist/openscd/src/translations/loader.js +0 -10
  173. package/dist/openscd/src/translations/loader.js.map +0 -1
  174. package/dist/openscd/src/wizard-checkbox.js +0 -152
  175. package/dist/openscd/src/wizard-checkbox.js.map +0 -1
  176. package/dist/openscd/src/wizard-dialog.js +0 -374
  177. package/dist/openscd/src/wizard-dialog.js.map +0 -1
  178. package/dist/openscd/src/wizard-select.js +0 -115
  179. package/dist/openscd/src/wizard-select.js.map +0 -1
  180. package/dist/openscd/src/wizard-textfield.js +0 -191
  181. package/dist/openscd/src/wizard-textfield.js.map +0 -1
  182. package/dist/openscd/src/wizards.js +0 -196
  183. package/dist/openscd/src/wizards.js.map +0 -1
  184. package/dist/xml/src/foundation.js +0 -67
  185. package/dist/xml/src/foundation.js.map +0 -1
  186. package/dist/xml/src/index.js +0 -2
  187. package/dist/xml/src/index.js.map +0 -1
@@ -1,48 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { html, state, query, customElement, LitElement, property, } from 'lit-element';
3
- import '../wizard-dialog.js';
4
- /** `LitElement` mixin that adds a `workflow` property which [[`Wizard`]]s are
5
- * queued onto on incoming [[`WizardEvent`]]s, first come first displayed. */
6
- let OscdWizards = class OscdWizards extends LitElement {
7
- constructor() {
8
- super(...arguments);
9
- /** FIFO queue of [[`Wizard`]]s to display. */
10
- this.workflow = [];
11
- }
12
- onWizard(we) {
13
- const wizard = we.detail.wizard;
14
- if (wizard === null)
15
- this.workflow.shift();
16
- else if (we.detail.subwizard)
17
- this.workflow.unshift(wizard);
18
- else
19
- this.workflow.push(wizard);
20
- this.requestUpdate('workflow');
21
- this.updateComplete.then(() => this.wizardUI.updateComplete.then(() => this.wizardUI.dialog?.updateComplete.then(() => this.wizardUI.dialog?.focus())));
22
- }
23
- connectedCallback() {
24
- super.connectedCallback();
25
- this.host.addEventListener('wizard', this.onWizard.bind(this));
26
- this.host.addEventListener('editor-action', () => this.wizardUI.requestUpdate());
27
- }
28
- render() {
29
- return html `<slot></slot>
30
- <wizard-dialog .wizard=${this.workflow[0]?.() ?? []}></wizard-dialog>`;
31
- }
32
- };
33
- __decorate([
34
- property({
35
- type: Object,
36
- })
37
- ], OscdWizards.prototype, "host", void 0);
38
- __decorate([
39
- state()
40
- ], OscdWizards.prototype, "workflow", void 0);
41
- __decorate([
42
- query('wizard-dialog')
43
- ], OscdWizards.prototype, "wizardUI", void 0);
44
- OscdWizards = __decorate([
45
- customElement('oscd-wizards')
46
- ], OscdWizards);
47
- export { OscdWizards };
48
- //# sourceMappingURL=Wizards.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Wizards.js","sourceRoot":"","sources":["../../../../src/addons/Wizards.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,IAAI,EACJ,KAAK,EAEL,KAAK,EACL,aAAa,EACb,UAAU,EACV,QAAQ,GACT,MAAM,aAAa,CAAC;AAGrB,OAAO,qBAAqB,CAAC;AAG7B;6EAC6E;AAEtE,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAU;IAApC;;QAML,8CAA8C;QAE9C,aAAQ,GAAoB,EAAE,CAAC;IAgCjC,CAAC;IA5BS,QAAQ,CAAC,EAAe;QAC9B,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QAChC,IAAI,MAAM,KAAK,IAAI;YAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;aACtC,IAAI,EAAE,CAAC,MAAM,CAAC,SAAS;YAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;;YACvD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC/B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAC5B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CACrC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAC7C,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,CAC9B,CACF,CACF,CAAC;IACJ,CAAC;IAED,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,GAAG,EAAE,CAC/C,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAC9B,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;+BACgB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,mBAAmB,CAAC;IAC3E,CAAC;CACF,CAAA;AApCC;IAHC,QAAQ,CAAC;QACR,IAAI,EAAE,MAAM;KACb,CAAC;yCACiB;AAInB;IADC,KAAK,EAAE;6CACuB;AAEP;IAAvB,KAAK,CAAC,eAAe,CAAC;6CAAyB;AAVrC,WAAW;IADvB,aAAa,CAAC,cAAc,CAAC;GACjB,WAAW,CAwCvB;SAxCY,WAAW","sourcesContent":["import {\n html,\n state,\n TemplateResult,\n query,\n customElement,\n LitElement,\n property,\n} from 'lit-element';\nimport { WizardEvent, WizardFactory } from '../foundation.js';\n\nimport '../wizard-dialog.js';\nimport { WizardDialog } from '../wizard-dialog.js';\n\n/** `LitElement` mixin that adds a `workflow` property which [[`Wizard`]]s are\n * queued onto on incoming [[`WizardEvent`]]s, first come first displayed. */\n@customElement('oscd-wizards')\nexport class OscdWizards extends LitElement {\n @property({\n type: Object,\n })\n host!: HTMLElement;\n\n /** FIFO queue of [[`Wizard`]]s to display. */\n @state()\n workflow: WizardFactory[] = [];\n\n @query('wizard-dialog') wizardUI!: WizardDialog;\n\n private onWizard(we: WizardEvent) {\n const wizard = we.detail.wizard;\n if (wizard === null) this.workflow.shift();\n else if (we.detail.subwizard) this.workflow.unshift(wizard);\n else this.workflow.push(wizard);\n this.requestUpdate('workflow');\n this.updateComplete.then(() =>\n this.wizardUI.updateComplete.then(() =>\n this.wizardUI.dialog?.updateComplete.then(() =>\n this.wizardUI.dialog?.focus()\n )\n )\n );\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n this.host.addEventListener('wizard', this.onWizard.bind(this));\n this.host.addEventListener('editor-action', () =>\n this.wizardUI.requestUpdate()\n );\n }\n\n render(): TemplateResult {\n return html`<slot></slot>\n <wizard-dialog .wizard=${this.workflow[0]?.() ?? []}></wizard-dialog>`;\n }\n}\n"]}
@@ -1,96 +0,0 @@
1
- import { isCreate, isDelete, isMove, isReplace, isSimple, isUpdate } from '@openscd/core/foundation/deprecated/editor.js';
2
- import { getReference } from '../../foundation.js';
3
- export function convertEditActiontoV1(action) {
4
- if (isSimple(action)) {
5
- return convertSimpleAction(action);
6
- }
7
- else {
8
- return action.actions.map(convertSimpleAction);
9
- }
10
- }
11
- function convertSimpleAction(action) {
12
- if (isCreate(action)) {
13
- return convertCreate(action);
14
- }
15
- else if (isDelete(action)) {
16
- return convertDelete(action);
17
- }
18
- else if (isUpdate(action)) {
19
- return convertUpdate(action);
20
- }
21
- else if (isMove(action)) {
22
- return convertMove(action);
23
- }
24
- else if (isReplace(action)) {
25
- return convertReplace(action);
26
- }
27
- throw new Error('Unknown action type');
28
- }
29
- function convertCreate(action) {
30
- let reference = null;
31
- if (action.new.reference === undefined &&
32
- action.new.element instanceof Element &&
33
- action.new.parent instanceof Element) {
34
- reference = getReference(action.new.parent, action.new.element.tagName);
35
- }
36
- else {
37
- reference = action.new.reference ?? null;
38
- }
39
- return {
40
- parent: action.new.parent,
41
- node: action.new.element,
42
- reference
43
- };
44
- }
45
- function convertDelete(action) {
46
- return {
47
- node: action.old.element
48
- };
49
- }
50
- function convertUpdate(action) {
51
- const oldAttributesToRemove = {};
52
- Array.from(action.element.attributes).forEach(attr => {
53
- oldAttributesToRemove[attr.name] = null;
54
- });
55
- const attributes = {
56
- ...oldAttributesToRemove,
57
- ...action.newAttributes
58
- };
59
- return {
60
- element: action.element,
61
- attributes
62
- };
63
- }
64
- function convertMove(action) {
65
- if (action.new.reference === undefined) {
66
- action.new.reference = getReference(action.new.parent, action.old.element.tagName);
67
- }
68
- return {
69
- parent: action.new.parent,
70
- node: action.old.element,
71
- reference: action.new.reference ?? null
72
- };
73
- }
74
- function convertReplace(action) {
75
- const oldChildren = action.old.element.children;
76
- // We have to clone the children, because otherwise undoing the action would remove the children from the old element, because append removes the old parent
77
- const copiedChildren = Array.from(oldChildren).map(e => e.cloneNode(true));
78
- const newNode = action.new.element.cloneNode(true);
79
- newNode.append(...Array.from(copiedChildren));
80
- const parent = action.old.element.parentElement;
81
- if (!parent) {
82
- throw new Error('Replace action called without parent in old element');
83
- }
84
- const reference = action.old.element.nextSibling;
85
- const remove = { node: action.old.element };
86
- const insert = {
87
- parent,
88
- node: newNode,
89
- reference
90
- };
91
- return [
92
- remove,
93
- insert
94
- ];
95
- }
96
- //# sourceMappingURL=edit-action-to-v1-converter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"edit-action-to-v1-converter.js","sourceRoot":"","sources":["../../../../../src/addons/editor/edit-action-to-v1-converter.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Create,\n Delete,\n EditorAction,\n isCreate,\n isDelete,\n isMove,\n isReplace,\n isSimple,\n isUpdate,\n Move,\n Replace,\n SimpleAction,\n Update\n} from '@openscd/core/foundation/deprecated/editor.js';\nimport { Edit, Insert, Remove, Update as UpdateV2 } from '@openscd/core';\nimport { getReference, SCLTag } from '../../foundation.js';\n\n\nexport function convertEditActiontoV1(action: EditorAction): Edit {\n if (isSimple(action)) {\n return convertSimpleAction(action);\n } else {\n return action.actions.map(convertSimpleAction);\n }\n}\n\nfunction convertSimpleAction(action: SimpleAction): Edit {\n if (isCreate(action)) {\n return convertCreate(action);\n } else if (isDelete(action)) {\n return convertDelete(action);\n } else if (isUpdate(action)) {\n return convertUpdate(action);\n } else if (isMove(action)) {\n return convertMove(action);\n } else if (isReplace(action)) {\n return convertReplace(action);\n }\n\n throw new Error('Unknown action type');\n}\n\nfunction convertCreate(action: Create): Insert {\n let reference: Node | null = null;\n if (\n action.new.reference === undefined &&\n action.new.element instanceof Element &&\n action.new.parent instanceof Element\n ) {\n reference = getReference(\n action.new.parent,\n <SCLTag>action.new.element.tagName\n );\n } else {\n reference = action.new.reference ?? null; \n }\n\n return {\n parent: action.new.parent,\n node: action.new.element,\n reference\n };\n}\n\nfunction convertDelete(action: Delete): Remove {\n return {\n node: action.old.element\n };\n}\n\nfunction convertUpdate(action: Update): UpdateV2 {\n const oldAttributesToRemove: Record<string, string | null> = {};\n Array.from(action.element.attributes).forEach(attr => {\n oldAttributesToRemove[attr.name] = null;\n });\n\n const attributes = {\n ...oldAttributesToRemove,\n ...action.newAttributes\n };\n\n return {\n element: action.element,\n attributes\n };\n}\n\nfunction convertMove(action: Move): Insert {\n if (action.new.reference === undefined) {\n action.new.reference = getReference(\n action.new.parent,\n <SCLTag>action.old.element.tagName\n );\n }\n\n return {\n parent: action.new.parent,\n node: action.old.element,\n reference: action.new.reference ?? null\n }\n}\n\nfunction convertReplace(action: Replace): Edit {\n const oldChildren = action.old.element.children;\n // We have to clone the children, because otherwise undoing the action would remove the children from the old element, because append removes the old parent\n const copiedChildren = Array.from(oldChildren).map(e => e.cloneNode(true));\n\n const newNode = action.new.element.cloneNode(true) as Element;\n newNode.append(...Array.from(copiedChildren));\n const parent = action.old.element.parentElement;\n\n if (!parent) {\n throw new Error('Replace action called without parent in old element');\n }\n\n const reference = action.old.element.nextSibling;\n\n const remove: Remove = { node: action.old.element };\n const insert: Insert = {\n parent,\n node: newNode,\n reference\n };\n\n return [\n remove,\n insert\n ];\n}\n"]}
@@ -1,37 +0,0 @@
1
- import { isComplex, isInsert, isNamespaced, isRemove, isUpdate } from '@openscd/core';
2
- export function convertEditV1toV2(edit) {
3
- if (isComplex(edit)) {
4
- return edit.map(convertEditV1toV2);
5
- }
6
- else if (isRemove(edit)) {
7
- return edit;
8
- }
9
- else if (isInsert(edit)) {
10
- return edit;
11
- }
12
- else if (isUpdate(edit)) {
13
- return convertUpdate(edit);
14
- }
15
- else {
16
- throw new Error('Unknown edit type');
17
- }
18
- }
19
- function convertUpdate(edit) {
20
- const attributes = {};
21
- const attributesNS = {};
22
- Object.entries(edit.attributes).forEach(([key, value]) => {
23
- if (isNamespaced(value)) {
24
- const ns = value.namespaceURI;
25
- if (!ns)
26
- return;
27
- if (!attributesNS[ns]) {
28
- attributesNS[ns] = {};
29
- }
30
- attributesNS[ns][key] = value.value;
31
- }
32
- else
33
- attributes[key] = value;
34
- });
35
- return { element: edit.element, attributes, attributesNS };
36
- }
37
- //# sourceMappingURL=edit-v1-to-v2-converter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"edit-v1-to-v2-converter.js","sourceRoot":"","sources":["../../../../../src/addons/editor/edit-v1-to-v2-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAU,MAAM,eAAe,CAAC;AAE5G,MAAM,UAAU,iBAAiB,CAAC,IAAU;IAC1C,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;KACpC;SAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;QACzB,OAAO,IAAc,CAAC;KACvB;SAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;QACzB,OAAO,IAAc,CAAC;KACvB;SAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;QACzB,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;KAC5B;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;KACtC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,UAAU,GAA2C,EAAE,CAAC;IAC9D,MAAM,YAAY,GAEd,EAAE,CAAC;IAEP,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACvD,IAAI,YAAY,CAAC,KAAM,CAAC,EAAE;YACxB,MAAM,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC;YAC9B,IAAI,CAAC,EAAE;gBAAE,OAAO;YAEhB,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;gBACrB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;aACvB;YACD,YAAY,CAAC,EAAE,CAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;SACtC;;YAAM,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;AAC7D,CAAC","sourcesContent":["import { Edit, EditV2, isComplex, isInsert, isNamespaced, isRemove, isUpdate, Update } from '@openscd/core';\n\nexport function convertEditV1toV2(edit: Edit): EditV2 {\n if (isComplex(edit)) {\n return edit.map(convertEditV1toV2);\n } else if (isRemove(edit)) {\n return edit as EditV2;\n } else if (isInsert(edit)) {\n return edit as EditV2;\n } else if (isUpdate(edit)) {\n return convertUpdate(edit);\n } else {\n throw new Error('Unknown edit type');\n }\n}\n\nfunction convertUpdate(edit: Update): EditV2 {\n const attributes: Partial<Record<string, string | null>> = {};\n const attributesNS: Partial<\n Record<string, Partial<Record<string, string | null>>>\n > = {};\n\n Object.entries(edit.attributes).forEach(([key, value]) => {\n if (isNamespaced(value!)) {\n const ns = value.namespaceURI;\n if (!ns) return;\n\n if (!attributesNS[ns]) {\n attributesNS[ns] = {};\n }\n attributesNS[ns]![key] = value.value;\n } else attributes[key] = value;\n });\n\n return { element: edit.element, attributes, attributesNS };\n}\n"]}
@@ -1,26 +0,0 @@
1
- import { isInsertV2, isRemoveV2, isSetAttributesV2, isSetTextContentV2, isComplexV2 } from '@openscd/core';
2
- import { get } from 'lit-translate';
3
- export const getLogText = (edit) => {
4
- if (isInsertV2(edit)) {
5
- const name = edit.node instanceof Element ?
6
- edit.node.tagName :
7
- get('editing.node');
8
- return { title: get('editing.created', { name }) };
9
- }
10
- else if (isSetAttributesV2(edit) || isSetTextContentV2(edit)) {
11
- const name = edit.element.tagName;
12
- return { title: get('editing.updated', { name }) };
13
- }
14
- else if (isRemoveV2(edit)) {
15
- const name = edit.node instanceof Element ?
16
- edit.node.tagName :
17
- get('editing.node');
18
- return { title: get('editing.deleted', { name }) };
19
- }
20
- else if (isComplexV2(edit)) {
21
- const message = edit.map(e => getLogText(e)).map(({ title }) => title).join(', ');
22
- return { title: get('editing.complex'), message };
23
- }
24
- return { title: '' };
25
- };
26
- //# sourceMappingURL=get-log-text.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-log-text.js","sourceRoot":"","sources":["../../../../../src/addons/history/get-log-text.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAuC,EAAE;IAC9E,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,YAAY,OAAO,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnB,GAAG,CAAC,cAAc,CAAC,CAAC;QACpB,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;KACpD;SAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAClC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;KACpD;SAAM,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,YAAY,OAAO,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnB,GAAG,CAAC,cAAc,CAAC,CAAC;QACpB,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;KACpD;SAAM,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClF,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC;KACnD;IAED,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACvB,CAAC,CAAA","sourcesContent":["import {\n EditV2,\n isInsertV2,\n isRemoveV2,\n isSetAttributesV2,\n isSetTextContentV2,\n isComplexV2\n} from '@openscd/core';\nimport { get } from 'lit-translate';\n\nexport const getLogText = (edit: EditV2): { title: string, message?: string } => {\n if (isInsertV2(edit)) {\n const name = edit.node instanceof Element ?\n edit.node.tagName :\n get('editing.node');\n return { title: get('editing.created', { name }) };\n } else if (isSetAttributesV2(edit) || isSetTextContentV2(edit)) {\n const name = edit.element.tagName;\n return { title: get('editing.updated', { name }) };\n } else if (isRemoveV2(edit)) {\n const name = edit.node instanceof Element ?\n edit.node.tagName :\n get('editing.node');\n return { title: get('editing.deleted', { name }) };\n } else if (isComplexV2(edit)) {\n const message = edit.map(e => getLogText(e)).map(({ title }) => title).join(', ');\n return { title: get('editing.complex'), message };\n }\n \n return { title: '' };\n}\n"]}
@@ -1,74 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { customElement, html, LitElement, property, state, css } from 'lit-element';
3
- import '@material/mwc-list';
4
- import '@material/mwc-tab';
5
- import '@material/mwc-tab-bar';
6
- import '@material/mwc-button';
7
- let OscdMenuTabs = class OscdMenuTabs extends LitElement {
8
- constructor() {
9
- super(...arguments);
10
- this.editors = [];
11
- this.activeTabIndex = 0;
12
- }
13
- get activeEditor() { return this._activeEditor; }
14
- set activeEditor(editor) {
15
- this._activeEditor = editor;
16
- const editorIndex = this.editors.findIndex(e => e.name === editor?.name && e.src === editor?.src);
17
- this.activeTabIndex = editorIndex > -1 ? editorIndex : 0;
18
- this.requestUpdate();
19
- }
20
- ;
21
- render() {
22
- if (this.editors.length === 0) {
23
- return html ``;
24
- }
25
- return html `
26
- <mwc-tab-bar
27
- @MDCTabBar:activated=${this.handleActivatedEditorTab}
28
- activeIndex=${this.activeTabIndex}
29
- >
30
- ${this.editors.map(EditorTab)}
31
- </mwc-tab-bar>
32
- `;
33
- }
34
- handleActivatedEditorTab(e) {
35
- const tabIndex = e.detail.index;
36
- const editor = this.editors[tabIndex];
37
- this.activeTabIndex = tabIndex;
38
- this.dispatchActivateEditor(editor);
39
- }
40
- dispatchActivateEditor(editor) {
41
- const newEvent = new CustomEvent(TabActivatedEventKey, {
42
- detail: { editor },
43
- composed: true,
44
- bubbles: true
45
- });
46
- this.dispatchEvent(newEvent);
47
- }
48
- };
49
- OscdMenuTabs.styles = css `
50
- mwc-tab {
51
- background-color: var(--primary);
52
- --mdc-theme-primary: var(--mdc-theme-on-primary);
53
- }
54
- `;
55
- __decorate([
56
- property({ type: Array })
57
- ], OscdMenuTabs.prototype, "editors", void 0);
58
- __decorate([
59
- property({ type: Object })
60
- ], OscdMenuTabs.prototype, "activeEditor", null);
61
- __decorate([
62
- state()
63
- ], OscdMenuTabs.prototype, "activeTabIndex", void 0);
64
- OscdMenuTabs = __decorate([
65
- customElement('oscd-menu-tabs')
66
- ], OscdMenuTabs);
67
- export { OscdMenuTabs };
68
- function EditorTab({ name, icon }) {
69
- return html `
70
- <mwc-tab label=${name} icon=${icon || 'edit'}> </mwc-tab>
71
- `;
72
- }
73
- export const TabActivatedEventKey = 'oscd-editor-tab-activated';
74
- //# sourceMappingURL=menu-tabs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"menu-tabs.js","sourceRoot":"","sources":["../../../../../src/addons/menu-tabs/menu-tabs.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,aAAa,EACb,IAAI,EACJ,UAAU,EACV,QAAQ,EAER,KAAK,EAEL,GAAG,EACJ,MAAM,aAAa,CAAC;AAErB,OAAO,oBAAoB,CAAC;AAC5B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,sBAAsB,CAAC;AAQvB,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,UAAU;IAArC;;QAEsB,YAAO,GAAa,EAAE,CAAC;QAUjC,mBAAc,GAAG,CAAC,CAAC;IAqCtC,CAAC;IA7C6B,IAAI,YAAY,KAAK,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAC7E,IAAI,YAAY,CAAC,MAA0B;QACzC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;QAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM,EAAE,GAAG,CAAC,CAAC;QAClG,IAAI,CAAC,cAAc,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAAA,CAAC;IAIF,MAAM;QACJ,IAAG,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAC;YAAE,OAAO,IAAI,CAAA,EAAE,CAAC;SAAE;QAE/C,OAAO,IAAI,CAAA;;+BAEgB,IAAI,CAAC,wBAAwB;sBACtC,IAAI,CAAC,cAAc;;UAE9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAE,SAAS,CAAG;;KAEpC,CAAA;IACH,CAAC;IASO,wBAAwB,CAAC,CAAc;QAC7C,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;QAC/B,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAEO,sBAAsB,CAAE,MAAc;QAC5C,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,oBAAoB,EAAE;YACrD,MAAM,EAAE,EAAE,MAAM,EAAE;YAClB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;QACF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC9B,CAAC;;AArBM,mBAAM,GAAG,GAAG,CAAA;;;;;GAKlB,CAAA;AA9B0B;IAA1B,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;6CAAwB;AAEtB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gDAAkD;AAQpE;IAAR,KAAK,EAAE;oDAA4B;AAZzB,YAAY;IADxB,aAAa,CAAC,gBAAgB,CAAC;GACnB,YAAY,CAiDxB;SAjDY,YAAY;AAmDzB,SAAS,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAU;IACvC,OAAO,IAAI,CAAA;qBACQ,IAAI,SAAS,IAAI,IAAI,MAAM;GAC7C,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,2BAA2B,CAAA","sourcesContent":["import {\n customElement,\n html,\n LitElement,\n property,\n query,\n state,\n TemplateResult,\n css\n} from 'lit-element';\n\nimport '@material/mwc-list';\nimport '@material/mwc-tab';\nimport '@material/mwc-tab-bar';\nimport '@material/mwc-button';\n\nimport {\n Plugin,\n} from \"../../plugin.js\"\n\n\n@customElement('oscd-menu-tabs')\nexport class OscdMenuTabs extends LitElement {\n\n @property({ type: Array }) editors: Plugin[] = [];\n _activeEditor: Plugin | undefined;\n @property({ type: Object }) get activeEditor() { return this._activeEditor; }\n set activeEditor(editor: Plugin | undefined) {\n this._activeEditor = editor;\n const editorIndex = this.editors.findIndex(e => e.name === editor?.name && e.src === editor?.src);\n this.activeTabIndex = editorIndex > -1 ? editorIndex : 0;\n this.requestUpdate();\n };\n\n @state() private activeTabIndex = 0;\n\n render(){\n if(this.editors.length === 0){ return html``; }\n\n return html`\n <mwc-tab-bar\n @MDCTabBar:activated=${this.handleActivatedEditorTab}\n activeIndex=${this.activeTabIndex}\n >\n ${ this.editors.map( EditorTab ) }\n </mwc-tab-bar>\n `\n }\n\n static styles = css`\n mwc-tab {\n background-color: var(--primary);\n --mdc-theme-primary: var(--mdc-theme-on-primary);\n }\n `\n\n private handleActivatedEditorTab(e: CustomEvent): void {\n const tabIndex = e.detail.index;\n const editor = this.editors[tabIndex];\n this.activeTabIndex = tabIndex;\n this.dispatchActivateEditor(editor);\n }\n\n private dispatchActivateEditor( editor: Plugin ){\n const newEvent = new CustomEvent(TabActivatedEventKey, {\n detail: { editor },\n composed: true,\n bubbles: true\n })\n this.dispatchEvent(newEvent)\n }\n}\n\nfunction EditorTab({ name, icon }: Plugin): TemplateResult {\n return html`\n <mwc-tab label=${name} icon=${icon || 'edit'}> </mwc-tab>\n `;\n}\n\nexport const TabActivatedEventKey = 'oscd-editor-tab-activated'\nexport type TabActivatedEvent = CustomEvent<TabActivatedEventDetail>;\nexport type TabActivatedEventDetail = { editor: Plugin }\n"]}
@@ -1,177 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { customElement, html, LitElement, query, css, } from 'lit-element';
3
- import { get } from 'lit-translate';
4
- import { newAddExternalPluginEvent, pluginIcons } from '../../open-scd.js';
5
- import { menuPosition } from "../../plugin.js";
6
- import '@material/mwc-dialog';
7
- import '@material/mwc-drawer';
8
- import '@material/mwc-list';
9
- import '@material/mwc-select';
10
- import '@material/mwc-switch';
11
- import '@material/mwc-textfield';
12
- let OscdCustomPluginDialog = class OscdCustomPluginDialog extends LitElement {
13
- render() {
14
- return html `
15
- <mwc-dialog id="dialog" heading="${get('plugins.add.heading')}">
16
- <div style="display: flex; flex-direction: column; row-gap: 8px;">
17
- <p style="color:var(--mdc-theme-error);">
18
- ${get('plugins.add.warning')}
19
- </p>
20
- <mwc-textfield
21
- label="${get('plugins.add.name')}"
22
- helper="${get('plugins.add.nameHelper')}"
23
- required
24
- id="pluginNameInput"
25
- ></mwc-textfield>
26
- <mwc-list id="pluginKindList">
27
- <mwc-radio-list-item
28
- id="editor"
29
- value="editor"
30
- hasMeta
31
- selected
32
- left
33
- >
34
- ${get('plugins.editor')}
35
- <mwc-icon slot="meta">
36
- ${pluginIcons['editor']}
37
- </mwc-icon>
38
- </mwc-radio-list-item>
39
- <mwc-radio-list-item value="menu" hasMeta left>
40
- ${get('plugins.menu')}
41
- <mwc-icon slot="meta">
42
- ${pluginIcons['menu']}
43
- </mwc-icon>
44
- </mwc-radio-list-item>
45
- <div id="menudetails">
46
- <mwc-formfield
47
- id="enabledefault"
48
- label="${get('plugins.requireDoc')}"
49
- >
50
- <mwc-switch id="requireDoc" checked></mwc-switch>
51
- </mwc-formfield>
52
- <mwc-select id="positionList" value="middle" fixedpositionList>
53
- ${Object.values(menuPosition).map(menutype => html `<mwc-list-item value="${menutype}"
54
- >${get('plugins.' + menutype)}</mwc-list-item
55
- >`)}
56
- </mwc-select>
57
- </div>
58
- <style>
59
- #menudetails {
60
- display: none;
61
- padding: 20px;
62
- padding-left: 50px;
63
- }
64
- #pluginKindList [value="menu"][selected] ~ #menudetails {
65
- display: grid;
66
- }
67
- #enabledefault {
68
- padding-bottom: 20px;
69
- }
70
- #positionList {
71
- max-width: 250px;
72
- }
73
- </style>
74
- <mwc-radio-list-item id="validator" value="validator" hasMeta left>
75
- ${get('plugins.validator')}
76
- <mwc-icon slot="meta">
77
- ${pluginIcons['validator']}
78
- </mwc-icon>
79
- </mwc-radio-list-item>
80
- </mwc-list>
81
- <mwc-textfield
82
- label="${get('plugins.add.src')}"
83
- helper="${get('plugins.add.srcHelper')}"
84
- placeholder="http://example.com/plugin.js"
85
- type="url"
86
- required
87
- id="pluginSrcInput">
88
- </mwc-textfield>
89
- </div>
90
- <mwc-button
91
- slot="secondaryAction"
92
- dialogAction="close"
93
- label="${get('cancel')}">
94
- </mwc-button>
95
- <mwc-button
96
- id="addButton"
97
- slot="primaryAction"
98
- icon="add"
99
- label="${get('add')}"
100
- trailingIcon
101
- @click=${() => this.handleAddPlugin()}>
102
- </mwc-button>
103
- </mwc-dialog>
104
- `;
105
- }
106
- close() {
107
- this.dialog.close();
108
- }
109
- show() {
110
- this.dialog.show();
111
- }
112
- get open() {
113
- return this.dialog.open;
114
- }
115
- handleAddPlugin() {
116
- if (!(this.pluginSrcInput.checkValidity() &&
117
- this.pluginNameInput.checkValidity() &&
118
- this.pluginKindList.selected &&
119
- this.requireDoc &&
120
- this.positionList.selected))
121
- return;
122
- this.dispatchEvent(newAddExternalPluginEvent({
123
- src: this.pluginSrcInput.value,
124
- name: this.pluginNameInput.value,
125
- kind: this.pluginKindList.selected.value,
126
- requireDoc: this.requireDoc.checked,
127
- position: this.positionList.value,
128
- active: true,
129
- // this is an added plugin and will be remove by reset either way
130
- activeByDefault: false,
131
- }));
132
- this.requestUpdate();
133
- this.dialog.close();
134
- }
135
- };
136
- OscdCustomPluginDialog.styles = css `
137
-
138
- mwc-dialog {
139
- --mdc-dialog-max-width: 98vw;
140
- }
141
-
142
- mwc-dialog > form {
143
- display: flex;
144
- flex-direction: column;
145
- }
146
-
147
- mwc-dialog > form > * {
148
- display: block;
149
- margin-top: 16px;
150
- }
151
- `;
152
- __decorate([
153
- query('#dialog')
154
- ], OscdCustomPluginDialog.prototype, "dialog", void 0);
155
- __decorate([
156
- query('#pluginSrcInput')
157
- ], OscdCustomPluginDialog.prototype, "pluginSrcInput", void 0);
158
- __decorate([
159
- query('#pluginNameInput')
160
- ], OscdCustomPluginDialog.prototype, "pluginNameInput", void 0);
161
- __decorate([
162
- query('#pluginKindList')
163
- ], OscdCustomPluginDialog.prototype, "pluginKindList", void 0);
164
- __decorate([
165
- query('#requireDoc')
166
- ], OscdCustomPluginDialog.prototype, "requireDoc", void 0);
167
- __decorate([
168
- query('#positionList')
169
- ], OscdCustomPluginDialog.prototype, "positionList", void 0);
170
- __decorate([
171
- query('#addButton')
172
- ], OscdCustomPluginDialog.prototype, "addButton", void 0);
173
- OscdCustomPluginDialog = __decorate([
174
- customElement('oscd-custom-plugin-dialog')
175
- ], OscdCustomPluginDialog);
176
- export { OscdCustomPluginDialog };
177
- //# sourceMappingURL=custom-plugin-dialog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-plugin-dialog.js","sourceRoot":"","sources":["../../../../../src/addons/plugin-manager/custom-plugin-dialog.ts"],"names":[],"mappings":"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","sourcesContent":["\nimport {\n customElement,\n html,\n LitElement,\n query,\n TemplateResult,\n css,\n} from 'lit-element';\nimport { get } from 'lit-translate';\nimport {\n newAddExternalPluginEvent,\n pluginIcons\n} from '../../open-scd.js';\n\nimport {\n MenuPosition,\n menuPosition,\n PluginKind\n} from \"../../plugin.js\";\n\nimport type { Button } from '@material/mwc-button';\nimport type { Dialog } from '@material/mwc-dialog';\nimport { List } from '@material/mwc-list';\nimport type { ListItem } from '@material/mwc-list/mwc-list-item';\nimport type { Select } from '@material/mwc-select';\nimport type { Switch } from '@material/mwc-switch';\nimport type { TextField } from '@material/mwc-textfield';\n\nimport '@material/mwc-dialog';\nimport '@material/mwc-drawer';\nimport '@material/mwc-list';\nimport '@material/mwc-select';\nimport '@material/mwc-switch';\nimport '@material/mwc-textfield';\n\n\n@customElement('oscd-custom-plugin-dialog')\nexport class OscdCustomPluginDialog extends LitElement {\n\n @query('#dialog') dialog!: Dialog\n @query('#pluginSrcInput') pluginSrcInput!: TextField\n @query('#pluginNameInput') pluginNameInput!: TextField\n @query('#pluginKindList') pluginKindList!: List\n @query('#requireDoc') requireDoc!: Switch\n @query('#positionList') positionList!: Select\n @query('#addButton') addButton!: Button\n\n render(): TemplateResult {\n return html`\n <mwc-dialog id=\"dialog\" heading=\"${get('plugins.add.heading')}\">\n <div style=\"display: flex; flex-direction: column; row-gap: 8px;\">\n <p style=\"color:var(--mdc-theme-error);\">\n ${get('plugins.add.warning')}\n </p>\n <mwc-textfield\n label=\"${get('plugins.add.name')}\"\n helper=\"${get('plugins.add.nameHelper')}\"\n required\n id=\"pluginNameInput\"\n ></mwc-textfield>\n <mwc-list id=\"pluginKindList\">\n <mwc-radio-list-item\n id=\"editor\"\n value=\"editor\"\n hasMeta\n selected\n left\n >\n ${get('plugins.editor')}\n <mwc-icon slot=\"meta\">\n ${pluginIcons['editor']}\n </mwc-icon>\n </mwc-radio-list-item>\n <mwc-radio-list-item value=\"menu\" hasMeta left>\n ${get('plugins.menu')}\n <mwc-icon slot=\"meta\">\n ${pluginIcons['menu']}\n </mwc-icon>\n </mwc-radio-list-item>\n <div id=\"menudetails\">\n <mwc-formfield\n id=\"enabledefault\"\n label=\"${get('plugins.requireDoc')}\"\n >\n <mwc-switch id=\"requireDoc\" checked></mwc-switch>\n </mwc-formfield>\n <mwc-select id=\"positionList\" value=\"middle\" fixedpositionList>\n ${Object.values(menuPosition).map(\n menutype =>\n html`<mwc-list-item value=\"${menutype}\"\n >${get('plugins.' + menutype)}</mwc-list-item\n >`\n )}\n </mwc-select>\n </div>\n <style>\n #menudetails {\n display: none;\n padding: 20px;\n padding-left: 50px;\n }\n #pluginKindList [value=\"menu\"][selected] ~ #menudetails {\n display: grid;\n }\n #enabledefault {\n padding-bottom: 20px;\n }\n #positionList {\n max-width: 250px;\n }\n </style>\n <mwc-radio-list-item id=\"validator\" value=\"validator\" hasMeta left>\n ${get('plugins.validator')}\n <mwc-icon slot=\"meta\">\n ${pluginIcons['validator']}\n </mwc-icon>\n </mwc-radio-list-item>\n </mwc-list>\n <mwc-textfield\n label=\"${get('plugins.add.src')}\"\n helper=\"${get('plugins.add.srcHelper')}\"\n placeholder=\"http://example.com/plugin.js\"\n type=\"url\"\n required\n id=\"pluginSrcInput\">\n </mwc-textfield>\n </div>\n <mwc-button\n slot=\"secondaryAction\"\n dialogAction=\"close\"\n label=\"${get('cancel')}\">\n </mwc-button>\n <mwc-button\n id=\"addButton\"\n slot=\"primaryAction\"\n icon=\"add\"\n label=\"${get('add')}\"\n trailingIcon\n @click=${() => this.handleAddPlugin()}>\n </mwc-button>\n </mwc-dialog>\n `;\n }\n\n static styles = css`\n\n mwc-dialog {\n --mdc-dialog-max-width: 98vw;\n }\n\n mwc-dialog > form {\n display: flex;\n flex-direction: column;\n }\n\n mwc-dialog > form > * {\n display: block;\n margin-top: 16px;\n }\n `\n\n public close(){\n this.dialog.close()\n }\n\n public show(){\n this.dialog.show()\n }\n\n get open(){\n return this.dialog.open\n }\n\n private handleAddPlugin() {\n\n if (\n !(\n this.pluginSrcInput.checkValidity() &&\n this.pluginNameInput.checkValidity() &&\n this.pluginKindList.selected &&\n this.requireDoc &&\n this.positionList.selected\n )\n )\n return;\n\n this.dispatchEvent(\n newAddExternalPluginEvent({\n src: this.pluginSrcInput.value,\n name: this.pluginNameInput.value,\n kind: <PluginKind>(<ListItem>this.pluginKindList.selected).value,\n requireDoc: this.requireDoc.checked,\n position: <MenuPosition>this.positionList.value,\n active: true,\n // this is an added plugin and will be remove by reset either way\n activeByDefault: false,\n })\n );\n\n this.requestUpdate();\n this.dialog.close();\n }\n\n}\n\n\n"]}