@compas-oscd/open-scd 0.34.39 → 0.34.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/WizardDivider.js.map +1 -0
- package/dist/Wizarding.js.map +1 -0
- package/dist/action-icon.js.map +1 -0
- package/dist/action-pane.js.map +1 -0
- package/dist/addons/Editor.js.map +1 -0
- package/dist/addons/History.js.map +1 -0
- package/dist/addons/Layout.js.map +1 -0
- package/dist/addons/Settings.js.map +1 -0
- package/dist/addons/Waiter.js.map +1 -0
- package/dist/addons/Wizards.js.map +1 -0
- package/dist/addons/editor/edit-action-to-v1-converter.js.map +1 -0
- package/dist/addons/editor/edit-v1-to-v2-converter.js.map +1 -0
- package/dist/addons/history/get-log-text.js.map +1 -0
- package/dist/addons/menu-tabs/menu-tabs.js.map +1 -0
- package/dist/addons/plugin-manager/custom-plugin-dialog.js.map +1 -0
- package/dist/addons/plugin-manager/plugin-manager.js.map +1 -0
- package/dist/filtered-list.js.map +1 -0
- package/dist/finder-list.js.map +1 -0
- package/dist/foundation/compare.js.map +1 -0
- package/dist/foundation/dai.js.map +1 -0
- package/dist/foundation/generators.js.map +1 -0
- package/dist/foundation/ied.js.map +1 -0
- package/dist/foundation/nsd.js.map +1 -0
- package/dist/foundation/nsdoc.js.map +1 -0
- package/dist/foundation/scl.js.map +1 -0
- package/dist/foundation.js.map +1 -0
- package/dist/icons/compare.js.map +1 -0
- package/dist/icons/icons.js.map +1 -0
- package/dist/icons/ied-icons.js.map +1 -0
- package/dist/icons/lnode.js.map +1 -0
- package/dist/{src/index.d.ts → index.d.ts} +8 -2
- package/dist/{src/index.js → index.js} +8 -3
- package/dist/index.js.map +1 -0
- package/dist/open-scd.js.map +1 -0
- package/dist/oscd-filter-button.js.map +1 -0
- package/dist/plain-compare-list.js.map +1 -0
- package/dist/plugin-tag.js.map +1 -0
- package/dist/plugin.events.js.map +1 -0
- package/dist/plugin.js.map +1 -0
- package/dist/plugins.js.map +1 -0
- package/dist/schemas.js.map +1 -0
- package/dist/themes.js.map +1 -0
- package/dist/translations/de.js.map +1 -0
- package/dist/translations/en.js.map +1 -0
- package/dist/translations/loader.js.map +1 -0
- package/dist/wizard-checkbox.js.map +1 -0
- package/dist/wizard-dialog.js.map +1 -0
- package/dist/wizard-select.js.map +1 -0
- package/dist/wizard-textfield.js.map +1 -0
- package/dist/wizards.js.map +1 -0
- package/package.json +4 -2
- package/dist/src/WizardDivider.js.map +0 -1
- package/dist/src/Wizarding.js.map +0 -1
- package/dist/src/action-icon.js.map +0 -1
- package/dist/src/action-pane.js.map +0 -1
- package/dist/src/addons/Editor.js.map +0 -1
- package/dist/src/addons/History.js.map +0 -1
- package/dist/src/addons/Layout.js.map +0 -1
- package/dist/src/addons/Settings.js.map +0 -1
- package/dist/src/addons/Waiter.js.map +0 -1
- package/dist/src/addons/Wizards.js.map +0 -1
- package/dist/src/addons/editor/edit-action-to-v1-converter.js.map +0 -1
- package/dist/src/addons/editor/edit-v1-to-v2-converter.js.map +0 -1
- package/dist/src/addons/history/get-log-text.js.map +0 -1
- package/dist/src/addons/menu-tabs/menu-tabs.js.map +0 -1
- package/dist/src/addons/plugin-manager/custom-plugin-dialog.js.map +0 -1
- package/dist/src/addons/plugin-manager/plugin-manager.js.map +0 -1
- package/dist/src/filtered-list.js.map +0 -1
- package/dist/src/finder-list.js.map +0 -1
- package/dist/src/foundation/compare.js.map +0 -1
- package/dist/src/foundation/dai.js.map +0 -1
- package/dist/src/foundation/generators.js.map +0 -1
- package/dist/src/foundation/ied.js.map +0 -1
- package/dist/src/foundation/nsd.js.map +0 -1
- package/dist/src/foundation/nsdoc.js.map +0 -1
- package/dist/src/foundation/scl.js.map +0 -1
- package/dist/src/foundation.js.map +0 -1
- package/dist/src/icons/compare.js.map +0 -1
- package/dist/src/icons/icons.js.map +0 -1
- package/dist/src/icons/ied-icons.js.map +0 -1
- package/dist/src/icons/lnode.js.map +0 -1
- package/dist/src/index.js.map +0 -1
- package/dist/src/open-scd.js.map +0 -1
- package/dist/src/oscd-filter-button.js.map +0 -1
- package/dist/src/plain-compare-list.js.map +0 -1
- package/dist/src/plugin-tag.js.map +0 -1
- package/dist/src/plugin.events.js.map +0 -1
- package/dist/src/plugin.js.map +0 -1
- package/dist/src/plugins.js.map +0 -1
- package/dist/src/schemas.js.map +0 -1
- package/dist/src/themes.js.map +0 -1
- package/dist/src/translations/de.js.map +0 -1
- package/dist/src/translations/en.js.map +0 -1
- package/dist/src/translations/loader.js.map +0 -1
- package/dist/src/wizard-checkbox.js.map +0 -1
- package/dist/src/wizard-dialog.js.map +0 -1
- package/dist/src/wizard-select.js.map +0 -1
- package/dist/src/wizard-textfield.js.map +0 -1
- package/dist/src/wizards.js.map +0 -1
- package/dist/test/mock-open-scd.d.ts +0 -22
- package/dist/test/mock-open-scd.js +0 -53
- package/dist/test/mock-open-scd.js.map +0 -1
- package/dist/test/mock-wizard-editor.d.ts +0 -15
- package/dist/test/mock-wizard-editor.js +0 -50
- package/dist/test/mock-wizard-editor.js.map +0 -1
- /package/dist/{src/WizardDivider.d.ts → WizardDivider.d.ts} +0 -0
- /package/dist/{src/WizardDivider.js → WizardDivider.js} +0 -0
- /package/dist/{src/Wizarding.d.ts → Wizarding.d.ts} +0 -0
- /package/dist/{src/Wizarding.js → Wizarding.js} +0 -0
- /package/dist/{src/action-icon.d.ts → action-icon.d.ts} +0 -0
- /package/dist/{src/action-icon.js → action-icon.js} +0 -0
- /package/dist/{src/action-pane.d.ts → action-pane.d.ts} +0 -0
- /package/dist/{src/action-pane.js → action-pane.js} +0 -0
- /package/dist/{src/addons → addons}/Editor.d.ts +0 -0
- /package/dist/{src/addons → addons}/Editor.js +0 -0
- /package/dist/{src/addons → addons}/History.d.ts +0 -0
- /package/dist/{src/addons → addons}/History.js +0 -0
- /package/dist/{src/addons → addons}/Layout.d.ts +0 -0
- /package/dist/{src/addons → addons}/Layout.js +0 -0
- /package/dist/{src/addons → addons}/Settings.d.ts +0 -0
- /package/dist/{src/addons → addons}/Settings.js +0 -0
- /package/dist/{src/addons → addons}/Waiter.d.ts +0 -0
- /package/dist/{src/addons → addons}/Waiter.js +0 -0
- /package/dist/{src/addons → addons}/Wizards.d.ts +0 -0
- /package/dist/{src/addons → addons}/Wizards.js +0 -0
- /package/dist/{src/addons → addons}/editor/edit-action-to-v1-converter.d.ts +0 -0
- /package/dist/{src/addons → addons}/editor/edit-action-to-v1-converter.js +0 -0
- /package/dist/{src/addons → addons}/editor/edit-v1-to-v2-converter.d.ts +0 -0
- /package/dist/{src/addons → addons}/editor/edit-v1-to-v2-converter.js +0 -0
- /package/dist/{src/addons → addons}/history/get-log-text.d.ts +0 -0
- /package/dist/{src/addons → addons}/history/get-log-text.js +0 -0
- /package/dist/{src/addons → addons}/menu-tabs/menu-tabs.d.ts +0 -0
- /package/dist/{src/addons → addons}/menu-tabs/menu-tabs.js +0 -0
- /package/dist/{src/addons → addons}/plugin-manager/custom-plugin-dialog.d.ts +0 -0
- /package/dist/{src/addons → addons}/plugin-manager/custom-plugin-dialog.js +0 -0
- /package/dist/{src/addons → addons}/plugin-manager/plugin-manager.d.ts +0 -0
- /package/dist/{src/addons → addons}/plugin-manager/plugin-manager.js +0 -0
- /package/dist/{src/filtered-list.d.ts → filtered-list.d.ts} +0 -0
- /package/dist/{src/filtered-list.js → filtered-list.js} +0 -0
- /package/dist/{src/finder-list.d.ts → finder-list.d.ts} +0 -0
- /package/dist/{src/finder-list.js → finder-list.js} +0 -0
- /package/dist/{src/foundation → foundation}/compare.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/compare.js +0 -0
- /package/dist/{src/foundation → foundation}/dai.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/dai.js +0 -0
- /package/dist/{src/foundation → foundation}/generators.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/generators.js +0 -0
- /package/dist/{src/foundation → foundation}/ied.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/ied.js +0 -0
- /package/dist/{src/foundation → foundation}/nsd.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/nsd.js +0 -0
- /package/dist/{src/foundation → foundation}/nsdoc.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/nsdoc.js +0 -0
- /package/dist/{src/foundation → foundation}/scl.d.ts +0 -0
- /package/dist/{src/foundation → foundation}/scl.js +0 -0
- /package/dist/{src/foundation.d.ts → foundation.d.ts} +0 -0
- /package/dist/{src/foundation.js → foundation.js} +0 -0
- /package/dist/{src/icons → icons}/compare.d.ts +0 -0
- /package/dist/{src/icons → icons}/compare.js +0 -0
- /package/dist/{src/icons → icons}/icons.d.ts +0 -0
- /package/dist/{src/icons → icons}/icons.js +0 -0
- /package/dist/{src/icons → icons}/ied-icons.d.ts +0 -0
- /package/dist/{src/icons → icons}/ied-icons.js +0 -0
- /package/dist/{src/icons → icons}/lnode.d.ts +0 -0
- /package/dist/{src/icons → icons}/lnode.js +0 -0
- /package/dist/{src/open-scd.d.ts → open-scd.d.ts} +0 -0
- /package/dist/{src/open-scd.js → open-scd.js} +0 -0
- /package/dist/{src/oscd-filter-button.d.ts → oscd-filter-button.d.ts} +0 -0
- /package/dist/{src/oscd-filter-button.js → oscd-filter-button.js} +0 -0
- /package/dist/{src/plain-compare-list.d.ts → plain-compare-list.d.ts} +0 -0
- /package/dist/{src/plain-compare-list.js → plain-compare-list.js} +0 -0
- /package/dist/{src/plugin-tag.d.ts → plugin-tag.d.ts} +0 -0
- /package/dist/{src/plugin-tag.js → plugin-tag.js} +0 -0
- /package/dist/{src/plugin.d.ts → plugin.d.ts} +0 -0
- /package/dist/{src/plugin.events.d.ts → plugin.events.d.ts} +0 -0
- /package/dist/{src/plugin.events.js → plugin.events.js} +0 -0
- /package/dist/{src/plugin.js → plugin.js} +0 -0
- /package/dist/{src/plugins.d.ts → plugins.d.ts} +0 -0
- /package/dist/{src/plugins.js → plugins.js} +0 -0
- /package/dist/{src/schemas.d.ts → schemas.d.ts} +0 -0
- /package/dist/{src/schemas.js → schemas.js} +0 -0
- /package/dist/{src/themes.d.ts → themes.d.ts} +0 -0
- /package/dist/{src/themes.js → themes.js} +0 -0
- /package/dist/{src/translations → translations}/de.d.ts +0 -0
- /package/dist/{src/translations → translations}/de.js +0 -0
- /package/dist/{src/translations → translations}/en.d.ts +0 -0
- /package/dist/{src/translations → translations}/en.js +0 -0
- /package/dist/{src/translations → translations}/loader.d.ts +0 -0
- /package/dist/{src/translations → translations}/loader.js +0 -0
- /package/dist/{src/wizard-checkbox.d.ts → wizard-checkbox.d.ts} +0 -0
- /package/dist/{src/wizard-checkbox.js → wizard-checkbox.js} +0 -0
- /package/dist/{src/wizard-dialog.d.ts → wizard-dialog.d.ts} +0 -0
- /package/dist/{src/wizard-dialog.js → wizard-dialog.js} +0 -0
- /package/dist/{src/wizard-select.d.ts → wizard-select.d.ts} +0 -0
- /package/dist/{src/wizard-select.js → wizard-select.js} +0 -0
- /package/dist/{src/wizard-textfield.d.ts → wizard-textfield.d.ts} +0 -0
- /package/dist/{src/wizard-textfield.js → wizard-textfield.js} +0 -0
- /package/dist/{src/wizards.d.ts → wizards.d.ts} +0 -0
- /package/dist/{src/wizards.js → wizards.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open-scd.js","sourceRoot":"","sources":["../src/open-scd.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n customElement,\n html,\n LitElement,\n property,\n state,\n TemplateResult,\n} from 'lit-element';\nimport { classMap } from 'lit-html/directives/class-map';\n\nimport '@material/mwc-icon';\nimport '@material/mwc-icon-button';\nimport '@material/mwc-linear-progress';\nimport '@material/mwc-list';\nimport '@material/mwc-list/mwc-list-item';\nimport '@material/mwc-tab';\nimport '@material/mwc-tab-bar';\nimport '@material/mwc-top-app-bar-fixed';\nimport '@material/mwc-drawer';\nimport '@material/mwc-button';\nimport '@material/mwc-dialog';\nimport '@material/mwc-formfield';\nimport '@material/mwc-list/mwc-check-list-item';\nimport '@material/mwc-list/mwc-radio-list-item';\nimport '@material/mwc-select';\nimport '@material/mwc-switch';\nimport '@material/mwc-textfield';\n\nimport { newOpenDocEvent, newPendingStateEvent } from '@compas-oscd/core';\n\nimport './addons/Settings.js';\nimport './addons/Waiter.js';\nimport './addons/Wizards.js';\nimport './addons/Editor.js';\nimport './addons/History.js';\nimport './addons/Layout.js';\n\nimport { ActionDetail } from '@material/mwc-list';\n\nimport { officialPlugins as builtinPlugins } from './plugins.js';\nimport { initializeNsdoc, Nsdoc } from './foundation/nsdoc.js';\nimport { OscdApi, XMLEditor, newLogEvent } from '@compas-oscd/core';\nimport type {\n PluginSet,\n Plugin as CorePlugin,\n} from '@compas-oscd/core';\n\nimport { InstalledOfficialPlugin, MenuPosition, PluginKind, Plugin } from \"./plugin.js\"\nimport { ConfigurePluginEvent, newConfigurePluginEvent } from './plugin.events.js';\nimport { pluginTag } from './plugin-tag.js';\n\n\n\n/** The `<open-scd>` custom element is the main entry point of the\n * Open Substation Configuration Designer. */\n@customElement('open-scd')\nexport class OpenSCD extends LitElement {\n\n render(): TemplateResult {\n return html`<oscd-waiter>\n <oscd-settings .host=${this}>\n <oscd-wizards .host=${this}>\n <oscd-history\n .host=${this}\n .editor=${this.editor}\n >\n <oscd-editor\n .doc=${this.doc}\n .docName=${this.docName}\n .docId=${this.docId}\n .host=${this}\n .editCount=${this.editCount}\n .editor=${this.editor}\n >\n <oscd-layout\n @add-external-plugin=${this.handleAddExternalPlugin}\n @oscd-configure-plugin=${this.handleConfigurationPluginEvent}\n @set-plugins=${ (e: SetPluginsEvent) => this.setPlugins(e.detail.selectedPlugins) }\n .host=${this}\n .doc=${this.doc}\n .docName=${this.docName}\n .editCount=${this.editCount}\n .plugins=${this.storedPlugins}\n .editor=${this.editor}\n >\n </oscd-layout>\n </oscd-editor>\n </oscd-history>\n </oscd-wizards>\n </oscd-settings>\n </oscd-waiter>`;\n }\n\n\n @property({ attribute: false })\n doc: XMLDocument | null = null;\n /** The name of the current [[`doc`]] */\n @property({ type: String }) docName = '';\n /** The UUID of the current [[`doc`]] */\n @property({ type: String }) docId = '';\n\n editor = new XMLEditor();\n\n /** Object containing all *.nsdoc files and a function extracting element's label form them*/\n @property({ attribute: false })\n nsdoc: Nsdoc = initializeNsdoc();\n\n private currentSrc = '';\n /** The current file's URL. `blob:` URLs are *revoked after parsing*! */\n @property({ type: String })\n get src(): string {\n return this.currentSrc;\n }\n\n set src(value: string) {\n this.currentSrc = value;\n this.dispatchEvent(newPendingStateEvent(this.loadDoc(value)));\n }\n\n @state() private storedPlugins: Plugin[] = [];\n\n @state() private editCount = -1;\n\n private unsubscribers: (() => any)[] = [];\n\n /** Loads and parses an `XMLDocument` after [[`src`]] has changed. */\n private async loadDoc(src: string): Promise<void> {\n const response = await fetch(src);\n const text = await response.text();\n if (!text) return;\n\n const doc = new DOMParser().parseFromString(text, 'application/xml');\n const docName = src;\n this.dispatchEvent(newOpenDocEvent(doc, docName));\n\n if (src.startsWith('blob:')) URL.revokeObjectURL(src);\n }\n\n /**\n *\n * @deprecated Use `handleConfigurationPluginEvent` instead\n */\n public handleAddExternalPlugin(e: AddExternalPluginEvent){\n this.addExternalPlugin(e.detail.plugin);\n const {name, kind} = e.detail.plugin\n\n const event = newConfigurePluginEvent(name,kind, e.detail.plugin)\n\n this.handleConfigurationPluginEvent(event)\n }\n\n\n public handleConfigurationPluginEvent(e: ConfigurePluginEvent){\n const { name, kind, config } = e.detail;\n\n const hasPlugin = this.hasPlugin(name, kind);\n const hasConfig = config !== null;\n const isChangeEvent = hasPlugin && hasConfig;\n const isRemoveEvent = hasPlugin && !hasConfig;\n const isAddEvent = !hasPlugin && hasConfig;\n\n // the `&& config`is only because typescript\n // cannot infer that `isChangeEvent` and `isAddEvent` implies `config !== null`\n if(isChangeEvent && config){\n this.changePlugin(config);\n\n }else if(isRemoveEvent){\n this.removePlugin(name, kind);\n\n }else if(isAddEvent && config){\n this.addPlugin(config);\n\n }else{\n const event = newLogEvent({\n kind: \"error\",\n title: \"Invalid plugin configuration event\",\n message: JSON.stringify({name, kind, config}),\n });\n this.dispatchEvent(event);\n }\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.loadPlugins();\n\n this.unsubscribers.push(\n this.editor.subscribe((_e: unknown) => this.editCount++),\n this.editor.subscribeUndoRedo((_e: unknown) => this.editCount++)\n );\n\n // TODO: let Lit handle the event listeners, move to render()\n this.addEventListener('reset-plugins', this.resetPlugins);\n }\n\n disconnectedCallback(): void {\n this.unsubscribers.forEach(u => u());\n }\n\n\n /**\n *\n * @param name\n * @param kind\n * @returns the index of the plugin in the stored plugin list\n */\n private findPluginIndex(name: string, kind: PluginKind): number {\n return this.storedPlugins.findIndex(p => p.name === name && p.kind === kind);\n }\n\n private hasPlugin(name: string, kind: PluginKind): boolean {\n return this.findPluginIndex(name, kind) > -1;\n }\n\n private removePlugin(name: string, kind: PluginKind) {\n const newPlugins = this.storedPlugins.filter(\n p => p.name !== name || p.kind !== kind\n );\n this.updateStoredPlugins(newPlugins);\n }\n\n private addPlugin(plugin: Plugin) {\n const newPlugins = [...this.storedPlugins, plugin];\n this.updateStoredPlugins(newPlugins);\n }\n\n /**\n *\n * @param plugin\n * @throws if the plugin is not found\n */\n private changePlugin(plugin: Plugin) {\n const storedPlugins = this.storedPlugins;\n const {name, kind} = plugin;\n const pluginIndex = this.findPluginIndex(name, kind);\n\n if(pluginIndex < 0) {\n const event = newLogEvent({\n kind: \"error\",\n title: \"Plugin not found, stopping change process\",\n message: JSON.stringify({name, kind}),\n })\n this.dispatchEvent(event);\n return;\n }\n\n const pluginToChange = storedPlugins[pluginIndex]\n const changedPlugin = {...pluginToChange, ...plugin}\n const newPlugins = [...storedPlugins]\n newPlugins.splice(pluginIndex, 1, changedPlugin)\n\n // this.storePlugins(newPlugins);\n this.updateStoredPlugins(newPlugins);\n }\n\n private resetPlugins(): void {\n const builtInPlugins = this.getBuiltInPlugins() ?? [];\n const parsedPlugins = this.parsedPlugins ?? [];\n const allPlugins = [...builtInPlugins, ...parsedPlugins];\n\n const newPluginConfigs = allPlugins.map(plugin => {\n return {\n ...plugin,\n active: plugin.activeByDefault ?? false,\n }\n })\n\n this.storePlugins(newPluginConfigs)\n }\n\n /**\n * @prop {PluginSet} plugins - Set of plugins that are used by OpenSCD\n */\n @property({ type: Object }) plugins: PluginSet = { menu: [], editor: [] };\n get parsedPlugins(): Plugin[] {\n const menuPlugins: Plugin[] = (this.plugins.menu ?? []).map((plugin: any) => {\n let newPosition: MenuPosition | undefined = plugin.position as MenuPosition;\n if(typeof plugin.position === 'number') {\n newPosition = undefined\n }\n\n return {\n ...plugin,\n position: newPosition,\n kind: 'menu' as PluginKind,\n active: plugin.active ?? false,\n }\n })\n\n const editorPlugins: Plugin[] = (this.plugins.editor ?? []).map((plugin: any) => {\n const editorPlugin: Plugin = {\n ...plugin,\n position: undefined,\n kind: 'editor' as PluginKind,\n active: plugin.active ?? false,\n }\n return editorPlugin\n })\n\n const allPlugnis = [...menuPlugins, ...editorPlugins]\n return allPlugnis\n }\n\n\n\n private updateStoredPlugins(newPlugins: Plugin[]) {\n //\n // Generate content of each plugin\n //\n const plugins = newPlugins.map(plugin => {\n const isInstalled = plugin.src && plugin.active\n if(!isInstalled) { return plugin }\n\n return this.addContent(plugin)\n })\n\n //\n // Merge built-in plugins\n //\n const mergedPlugins = plugins.map(plugin => {\n const isBuiltIn = !plugin?.official\n if (!isBuiltIn){ return plugin };\n\n const builtInPlugin = [...this.getBuiltInPlugins(), ...this.parsedPlugins]\n .find(p => p.src === plugin.src);\n\n return <Plugin>{\n ...builtInPlugin,\n ...plugin,\n };\n })\n this.storePlugins(mergedPlugins);\n }\n\n private storePlugins(plugins: Plugin[]) {\n this.storedPlugins = plugins\n const pluginConfigs = JSON.stringify(plugins.map(withoutContent))\n localStorage.setItem('plugins', pluginConfigs);\n }\n private getPluginConfigsFromLocalStorage(): Plugin[] {\n const pluginsConfigStr = localStorage.getItem('plugins') ?? '[]'\n return JSON.parse(pluginsConfigStr) as Plugin[]\n }\n\n\n protected get locale(): string {\n return navigator.language || 'en-US';\n }\n\n get docs(): Record<string, XMLDocument> {\n const docs: Record<string, XMLDocument> = {};\n\n if (this.doc) {\n docs[this.docName] = this.doc;\n }\n\n return docs;\n }\n\n private setPlugins(selectedPlugins: Plugin[]) {\n\n const newPlugins: Plugin[] = this.storedPlugins.map((storedPlugin) => {\n const isSelected = selectedPlugins.some( (selectedPlugin) => {\n return selectedPlugin.name === storedPlugin.name\n && selectedPlugin.src === storedPlugin.src\n })\n return {\n ...storedPlugin,\n active: isSelected\n }\n })\n\n this.updateStoredPlugins(newPlugins);\n }\n\n private loadPlugins(){\n const localPluginConfigs = this.getPluginConfigsFromLocalStorage()\n\n const overwritesOfBultInPlugins = localPluginConfigs.filter((p) => {\n return this.getBuiltInPlugins().some(b => b.src === p.src)\n })\n\n const userInstalledPlugins = localPluginConfigs.filter((p) => {\n return !this.getBuiltInPlugins().some(b => b.src === p.src)\n })\n const mergedBuiltInPlugins = this.getBuiltInPlugins().map((builtInPlugin) => {\n let overwrite = overwritesOfBultInPlugins.find(p => p.src === builtInPlugin.src)\n\n const mergedPlugin: Plugin = {\n ...builtInPlugin,\n ...overwrite,\n active: overwrite?.active ?? builtInPlugin.activeByDefault,\n }\n\n return mergedPlugin\n })\n\n const mergedPlugins = [...mergedBuiltInPlugins, ...userInstalledPlugins]\n\n this.updateStoredPlugins(mergedPlugins)\n }\n\n private async addExternalPlugin(\n plugin: Omit<Plugin, 'content'>\n ): Promise<void> {\n if (this.storedPlugins.some(p => p.src === plugin.src)) return;\n\n const newPlugins: Omit<Plugin, 'content'>[] = this.storedPlugins;\n newPlugins.push(plugin);\n this.storePlugins(newPlugins);\n }\n\n protected getBuiltInPlugins(): CorePlugin[] {\n return builtinPlugins\n }\n\n private addContent(plugin: Omit<Plugin, 'content'>): Plugin {\n const tag = this.pluginTag(plugin.src);\n\n if (!this.loadedPlugins.has(tag)) {\n this.loadedPlugins.add(tag);\n import(plugin.src).then((mod) => {\n customElements.define(tag, mod.default)\n })\n }\n return {\n ...plugin,\n content: () => {\n return staticTagHtml`<${tag}\n .doc=${this.doc}\n .docName=${this.docName}\n .editCount=${this.editCount}\n .plugins=${this.storedPlugins}\n .docId=${this.docId}\n .pluginId=${plugin.src}\n .nsdoc=${this.nsdoc}\n .docs=${this.docs}\n .locale=${this.locale}\n .oscdApi=${new OscdApi(tag)}\n .editor=${this.editor}\n class=\"${classMap({\n plugin: true,\n menu: plugin.kind === 'menu',\n validator: plugin.kind === 'validator',\n editor: plugin.kind === 'editor',\n })}\"\n ></${tag}>`\n },\n };\n }\n\n @state() private loadedPlugins = new Set<string>();\n\n // PLUGGING INTERFACES\n @state() private pluginTags = new Map<string, string>();\n\n private pluginTag(uri: string): string {\n if (!this.pluginTags.has(uri)) {\n const tag = pluginTag(uri);\n this.pluginTags.set(uri, tag);\n }\n\n return this.pluginTags.get(uri)!;\n }\n\n\n}\n\ndeclare global {\n interface ElementEventMap {\n 'reset-plugins': CustomEvent;\n 'add-external-plugin': CustomEvent<AddExternalPluginDetail>;\n 'set-plugins': CustomEvent<SetPluginsDetail>;\n }\n}\n\n\n// HOSTING INTERFACES\n\nexport interface MenuItem {\n icon: string;\n name: string;\n src?: string;\n hint?: string;\n actionItem?: boolean;\n action?: (event: CustomEvent<ActionDetail>) => void;\n disabled?: () => boolean;\n content: () => TemplateResult;\n kind: string;\n}\n\nexport interface Validator {\n validate: () => Promise<void>;\n}\n\nexport interface MenuPlugin {\n run: () => Promise<void>;\n}\n\nexport function newResetPluginsEvent(): CustomEvent {\n return new CustomEvent('reset-plugins', { bubbles: true, composed: true });\n}\n\nexport interface AddExternalPluginDetail {\n plugin: Omit<Plugin, 'content'>;\n}\n\nexport type AddExternalPluginEvent = CustomEvent<AddExternalPluginDetail>;\n\nexport function newAddExternalPluginEvent(\n plugin: Omit<Plugin, 'content'>\n): AddExternalPluginEvent {\n return new CustomEvent<AddExternalPluginDetail>('add-external-plugin', {\n bubbles: true,\n composed: true,\n detail: { plugin },\n });\n}\n\nexport interface SetPluginsDetail {\n selectedPlugins: Plugin[];\n}\n\nexport type SetPluginsEvent = CustomEvent<SetPluginsDetail>;\n\nexport function newSetPluginsEvent(selectedPlugins: Plugin[]): SetPluginsEvent {\n return new CustomEvent<SetPluginsDetail>('set-plugins', {\n bubbles: true,\n composed: true,\n detail: { selectedPlugins },\n });\n}\n\n\n\n\n/**\n * This is a template literal tag function. See:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#tagged_templates\n *\n * Passes its arguments to LitElement's `html` tag after combining the first and\n * last expressions with the first two and last two static strings.\n * Throws unless the first and last expressions are identical strings.\n *\n * We need this to get around the expression location limitations documented in\n * https://lit.dev/docs/templates/expressions/#expression-locations\n *\n * After upgrading to Lit 2 we can use their static HTML functions instead:\n * https://lit.dev/docs/api/static-html/\n */\nfunction staticTagHtml(\n oldStrings: ReadonlyArray<string>,\n ...oldArgs: unknown[]\n): TemplateResult {\n const args = [...oldArgs];\n const firstArg = args.shift();\n const lastArg = args.pop();\n\n if (firstArg !== lastArg)\n throw new Error(\n `Opening tag <${firstArg}> does not match closing tag </${lastArg}>.`\n );\n\n const strings = [...oldStrings] as string[] & { raw: string[] };\n const firstString = strings.shift();\n const secondString = strings.shift();\n\n const lastString = strings.pop();\n const penultimateString = strings.pop();\n\n strings.unshift(`${firstString}${firstArg}${secondString}`);\n strings.push(`${penultimateString}${lastArg}${lastString}`);\n\n return html(<TemplateStringsArray>strings, ...args);\n}\n\n\nfunction withoutContent<P extends Plugin | InstalledOfficialPlugin>(\n plugin: P\n): P {\n const { content, ...rest } = plugin as any;\n return { ...rest, content: undefined } as P;\n}\n\nexport const pluginIcons: Record<PluginKind | MenuPosition, string> = {\n editor: 'tab',\n menu: 'play_circle',\n validator: 'rule_folder',\n top: 'play_circle',\n middle: 'play_circle',\n bottom: 'play_circle',\n};\n\nconst menuOrder: (PluginKind | MenuPosition)[] = [\n 'editor',\n 'top',\n 'validator',\n 'middle',\n 'bottom',\n];\n\nfunction menuCompare(a: Plugin, b: Plugin): -1 | 0 | 1 {\n if (a.kind === b.kind && a.position === b.position) return 0;\n const earlier = menuOrder.find(kind =>\n [a.kind, b.kind, a.position, b.position].includes(kind)\n );\n return [a.kind, a.position].includes(earlier) ? -1 : 1;\n}\n\nfunction compareNeedsDoc(a: Plugin, b: Plugin): -1 | 0 | 1 {\n if (a.requireDoc === b.requireDoc) return 0;\n return a.requireDoc ? 1 : -1;\n}\n\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oscd-filter-button.js","sourceRoot":"","sources":["../src/oscd-filter-button.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,GAAG,EACH,aAAa,EACb,IAAI,EACJ,QAAQ,EACR,KAAK,EAEL,SAAS,GACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,OAAO,2BAA2B,CAAC;AACnC,OAAO,sBAAsB,CAAC;AAE9B,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD;;GAEG;AAEI,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,YAAY;IAAvC;;QAML,aAAQ,GAAG,KAAK,CAAC;IAuDnB,CAAC;IAlDS,UAAU;QAChB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAEO,SAAS;QACf,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,IAAI,CAAC,QAAQ,YAAY,KAAK,EAAE;gBAClC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aAC/D;iBAAM;gBACL,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,aAAa,CAAC,CAAC,CAAC;SACjE;IACH,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;gBAEC,IAAI,CAAC,IAAI;kBACP,IAAI,CAAC,UAAU;qBACZ,IAAI,CAAC,QAAQ;;;;;;mBAMf,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;;oBAExC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;;UAEhC,KAAK,CAAC,MAAM,EAAE;;YAEZ,GAAG,CAAC,OAAO,CAAC;;;KAGnB,CAAC;IACJ,CAAC;;AAEM,mBAAM,GAAG,GAAG,CAAA;MACf,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC;;;;;;;;;GASjC,CAAC;AA1DF;IADC,QAAQ,EAAE;4CACsB;AAEjC;IADC,QAAQ,EAAE;0CACG;AAEd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;8CACX;AAGjB;IADC,KAAK,CAAC,eAAe,CAAC;kDACO;AATnB,YAAY;IADxB,aAAa,CAAC,oBAAoB,CAAC;GACvB,YAAY,CA6DxB;SA7DY,YAAY;AAmEzB,SAAS,4BAA4B,CACnC,aAAuB,EACvB,aAA2D;IAE3D,OAAO,IAAI,WAAW,CAA6B,wBAAwB,EAAE;QAC3E,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI;QACd,GAAG,aAAa;QAChB,MAAM,EAAE,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,MAAM,EAAE;KACpD,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {\n css,\n customElement,\n html,\n property,\n query,\n TemplateResult,\n unsafeCSS,\n} from 'lit-element';\nimport { get } from 'lit-translate';\n\nimport '@material/mwc-icon-button';\nimport '@material/mwc-dialog';\n\nimport './filtered-list.js';\n\nimport { FilteredList } from './filtered-list.js';\nimport { Dialog } from '@material/mwc-dialog';\n\n/**\n * A mwc-list with mwc-textfield that filters the list items for given or separated terms\n */\n@customElement('oscd-filter-button')\nexport class FilterButton extends FilteredList {\n @property()\n header!: TemplateResult | string;\n @property()\n icon!: string;\n @property({ type: Boolean })\n disabled = false;\n\n @query('#filterDialog')\n private filterDialog!: Dialog;\n\n private toggleList(): void {\n this.filterDialog.show();\n }\n\n private onClosing(): void {\n const selectedItems: string[] = [];\n if (this.selected) {\n if (this.selected instanceof Array) {\n this.selected.forEach(item => selectedItems.push(item.value));\n } else {\n selectedItems.push(this.selected.value);\n }\n this.dispatchEvent(newSelectedItemsChangedEvent(selectedItems));\n }\n }\n\n render(): TemplateResult {\n return html`\n <mwc-icon-button\n icon=\"${this.icon}\"\n @click=\"${this.toggleList}\"\n ?disabled=\"${this.disabled}\"\n >\n <slot name=\"icon\"></slot>\n </mwc-icon-button>\n <mwc-dialog\n id=\"filterDialog\"\n heading=\"${this.header ? this.header : get('filter')}\"\n scrimClickAction=\"\"\n @closing=\"${() => this.onClosing()}\"\n >\n ${super.render()}\n <mwc-button slot=\"primaryAction\" dialogAction=\"close\">\n ${get('close')}\n </mwc-button>\n </mwc-dialog>\n `;\n }\n\n static styles = css`\n ${unsafeCSS(FilteredList.styles)}\n\n mwc-icon-button {\n color: var(--mdc-theme-on-surface);\n }\n\n mwc-dialog {\n --mdc-dialog-max-height: calc(100vh - 150px);\n }\n `;\n}\n\nexport interface SelectedItemsChangedDetail {\n selectedItems: string[];\n}\nexport type SelectedItemsChangedEvent = CustomEvent<SelectedItemsChangedDetail>;\nfunction newSelectedItemsChangedEvent(\n selectedItems: string[],\n eventInitDict?: CustomEventInit<SelectedItemsChangedDetail>\n): SelectedItemsChangedEvent {\n return new CustomEvent<SelectedItemsChangedDetail>('selected-items-changed', {\n bubbles: true,\n composed: true,\n ...eventInitDict,\n detail: { selectedItems, ...eventInitDict?.detail },\n });\n}\n\ndeclare global {\n interface ElementEventMap {\n ['selected-items-changed']: SelectedItemsChangedEvent;\n }\n}\n"]}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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"]}
|
|
@@ -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 \"@compas-oscd/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 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"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","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"]}
|