@compas-oscd/open-scd 0.34.17 → 0.34.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/WizardDivider.d.ts +8 -8
- package/dist/WizardDivider.js +26 -26
- package/dist/Wizarding.js +36 -36
- package/dist/Wizarding.js.map +1 -1
- package/dist/action-icon.d.ts +25 -25
- package/dist/action-icon.js +51 -51
- package/dist/action-pane.d.ts +25 -25
- package/dist/action-pane.js +86 -86
- package/dist/addons/Editor.d.ts +25 -25
- package/dist/addons/Editor.js +105 -105
- package/dist/addons/Editor.js.map +1 -1
- package/dist/addons/History.d.ts +86 -93
- package/dist/addons/History.js +301 -302
- package/dist/addons/History.js.map +1 -1
- package/dist/addons/Layout.d.ts +96 -96
- package/dist/addons/Layout.js +448 -448
- package/dist/addons/Layout.js.map +1 -1
- package/dist/addons/Settings.d.ts +68 -68
- package/dist/addons/Settings.js +272 -272
- package/dist/addons/Settings.js.map +1 -1
- package/dist/addons/Waiter.d.ts +14 -14
- package/dist/addons/Waiter.js +40 -40
- package/dist/addons/Waiter.js.map +1 -1
- package/dist/addons/Wizards.d.ts +15 -15
- package/dist/addons/Wizards.js +46 -46
- package/dist/addons/editor/edit-action-to-v1-converter.d.ts +3 -3
- package/dist/addons/editor/edit-action-to-v1-converter.js +95 -95
- package/dist/addons/editor/edit-action-to-v1-converter.js.map +1 -1
- package/dist/addons/editor/edit-v1-to-v2-converter.d.ts +2 -2
- package/dist/addons/editor/edit-v1-to-v2-converter.js +36 -36
- package/dist/addons/editor/edit-v1-to-v2-converter.js.map +1 -1
- package/dist/addons/history/get-log-text.d.ts +5 -5
- package/dist/addons/history/get-log-text.js +25 -25
- package/dist/addons/history/get-log-text.js.map +1 -1
- package/dist/addons/menu-tabs/menu-tabs.d.ts +22 -22
- package/dist/addons/menu-tabs/menu-tabs.js +59 -59
- package/dist/addons/plugin-manager/custom-plugin-dialog.d.ts +28 -28
- package/dist/addons/plugin-manager/custom-plugin-dialog.js +71 -71
- package/dist/addons/plugin-manager/plugin-manager.d.ts +20 -20
- package/dist/addons/plugin-manager/plugin-manager.js +77 -77
- package/dist/core/api/api.js +7 -0
- package/dist/core/api/api.js.map +1 -0
- package/dist/core/api/editor/subject.js +22 -0
- package/dist/core/api/editor/subject.js.map +1 -0
- package/dist/core/api/editor/xml-editor.js +82 -0
- package/dist/core/api/editor/xml-editor.js.map +1 -0
- package/dist/core/api/plugin-state-api.js +27 -0
- package/dist/core/api/plugin-state-api.js.map +1 -0
- package/dist/core/foundation/cyrb64.js +26 -0
- package/dist/core/foundation/cyrb64.js.map +1 -0
- package/dist/core/foundation/deprecated/edit-event.js +44 -0
- package/dist/core/foundation/deprecated/edit-event.js.map +1 -0
- package/dist/core/foundation/deprecated/editor.js +94 -0
- package/dist/core/foundation/deprecated/editor.js.map +1 -0
- package/dist/core/foundation/deprecated/history.js +17 -0
- package/dist/core/foundation/deprecated/history.js.map +1 -0
- package/dist/core/foundation/deprecated/open-event.js +9 -0
- package/dist/core/foundation/deprecated/open-event.js.map +1 -0
- package/dist/core/foundation/deprecated/settings.js +19 -0
- package/dist/core/foundation/deprecated/settings.js.map +1 -0
- package/dist/core/foundation/deprecated/validation.js +8 -0
- package/dist/core/foundation/deprecated/validation.js.map +1 -0
- package/dist/core/foundation/deprecated/waiter.js +12 -0
- package/dist/core/foundation/deprecated/waiter.js.map +1 -0
- package/dist/core/foundation/edit-completed-event.js +11 -0
- package/dist/core/foundation/edit-completed-event.js.map +1 -0
- package/dist/core/foundation/edit-event.js +8 -0
- package/dist/core/foundation/edit-event.js.map +1 -0
- package/dist/core/foundation/edit.js +31 -0
- package/dist/core/foundation/edit.js.map +1 -0
- package/dist/core/foundation/handle-edit.js +151 -0
- package/dist/core/foundation/handle-edit.js.map +1 -0
- package/dist/core/foundation/open-event.js +8 -0
- package/dist/core/foundation/open-event.js.map +1 -0
- package/dist/core/foundation/plugin.js +2 -0
- package/dist/core/foundation/plugin.js.map +1 -0
- package/dist/core/foundation.js +14 -0
- package/dist/core/foundation.js.map +1 -0
- package/dist/core/locales.js +21 -0
- package/dist/core/locales.js.map +1 -0
- package/dist/filtered-list.d.ts +27 -27
- package/dist/filtered-list.js +118 -118
- package/dist/finder-list.d.ts +37 -37
- package/dist/finder-list.js +153 -153
- package/dist/foundation/compare.d.ts +79 -79
- package/dist/foundation/compare.js +216 -216
- package/dist/foundation/dai.d.ts +30 -30
- package/dist/foundation/dai.js +126 -126
- package/dist/foundation/generators.d.ts +13 -13
- package/dist/foundation/generators.js +66 -66
- package/dist/foundation/ied.d.ts +22 -22
- package/dist/foundation/ied.js +83 -83
- package/dist/foundation/ied.js.map +1 -1
- package/dist/foundation/nsd.d.ts +4 -4
- package/dist/foundation/nsd.js +12 -12
- package/dist/foundation/nsdoc.d.ts +14 -14
- package/dist/foundation/nsdoc.js +178 -178
- package/dist/foundation/scl.d.ts +1 -1
- package/dist/foundation/scl.js +63 -63
- package/dist/foundation.d.ts +230 -230
- package/dist/foundation.js +1921 -1921
- package/dist/foundation.js.map +1 -1
- package/dist/icons/compare.d.ts +3 -3
- package/dist/icons/compare.js +4 -4
- package/dist/icons/icons.d.ts +41 -41
- package/dist/icons/icons.js +92 -92
- package/dist/icons/ied-icons.d.ts +3 -3
- package/dist/icons/ied-icons.js +4 -4
- package/dist/icons/lnode.d.ts +16 -16
- package/dist/icons/lnode.js +17 -17
- package/dist/open-scd.d.ts +131 -131
- package/dist/open-scd.js +438 -438
- package/dist/open-scd.js.map +1 -1
- package/dist/openscd/src/WizardDivider.js +37 -0
- package/dist/openscd/src/WizardDivider.js.map +1 -0
- package/dist/openscd/src/Wizarding.js +38 -0
- package/dist/openscd/src/Wizarding.js.map +1 -0
- package/dist/openscd/src/action-icon.js +220 -0
- package/dist/openscd/src/action-icon.js.map +1 -0
- package/dist/openscd/src/action-pane.js +176 -0
- package/dist/openscd/src/action-pane.js.map +1 -0
- package/dist/openscd/src/addons/Editor.js +106 -0
- package/dist/openscd/src/addons/Editor.js.map +1 -0
- package/dist/openscd/src/addons/History.js +490 -0
- package/dist/openscd/src/addons/History.js.map +1 -0
- package/dist/openscd/src/addons/Layout.js +619 -0
- package/dist/openscd/src/addons/Layout.js.map +1 -0
- package/dist/openscd/src/addons/Settings.js +465 -0
- package/dist/openscd/src/addons/Settings.js.map +1 -0
- package/dist/openscd/src/addons/Waiter.js +45 -0
- package/dist/openscd/src/addons/Waiter.js.map +1 -0
- package/dist/openscd/src/addons/Wizards.js +48 -0
- package/dist/openscd/src/addons/Wizards.js.map +1 -0
- package/dist/openscd/src/addons/editor/edit-action-to-v1-converter.js +96 -0
- package/dist/openscd/src/addons/editor/edit-action-to-v1-converter.js.map +1 -0
- package/dist/openscd/src/addons/editor/edit-v1-to-v2-converter.js +37 -0
- package/dist/openscd/src/addons/editor/edit-v1-to-v2-converter.js.map +1 -0
- package/dist/openscd/src/addons/history/get-log-text.js +26 -0
- package/dist/openscd/src/addons/history/get-log-text.js.map +1 -0
- package/dist/openscd/src/addons/menu-tabs/menu-tabs.js +74 -0
- package/dist/openscd/src/addons/menu-tabs/menu-tabs.js.map +1 -0
- package/dist/openscd/src/addons/plugin-manager/custom-plugin-dialog.js +177 -0
- package/dist/openscd/src/addons/plugin-manager/custom-plugin-dialog.js.map +1 -0
- package/dist/openscd/src/addons/plugin-manager/plugin-manager.js +165 -0
- package/dist/openscd/src/addons/plugin-manager/plugin-manager.js.map +1 -0
- package/dist/openscd/src/filtered-list.js +168 -0
- package/dist/openscd/src/filtered-list.js.map +1 -0
- package/dist/openscd/src/finder-list.js +207 -0
- package/dist/openscd/src/finder-list.js.map +1 -0
- package/dist/openscd/src/foundation/compare.js +273 -0
- package/dist/openscd/src/foundation/compare.js.map +1 -0
- package/dist/openscd/src/foundation/dai.js +127 -0
- package/dist/openscd/src/foundation/dai.js.map +1 -0
- package/dist/openscd/src/foundation/generators.js +67 -0
- package/dist/openscd/src/foundation/generators.js.map +1 -0
- package/dist/openscd/src/foundation/ied.js +84 -0
- package/dist/openscd/src/foundation/ied.js.map +1 -0
- package/dist/openscd/src/foundation/nsd.js +13 -0
- package/dist/openscd/src/foundation/nsd.js.map +1 -0
- package/dist/openscd/src/foundation/nsdoc.js +180 -0
- package/dist/openscd/src/foundation/nsdoc.js.map +1 -0
- package/dist/openscd/src/foundation/scl.js +64 -0
- package/dist/openscd/src/foundation/scl.js.map +1 -0
- package/dist/openscd/src/foundation.js +1922 -0
- package/dist/openscd/src/foundation.js.map +1 -0
- package/dist/openscd/src/icons/compare.js +11 -0
- package/dist/openscd/src/icons/compare.js.map +1 -0
- package/dist/openscd/src/icons/icons.js +611 -0
- package/dist/openscd/src/icons/icons.js.map +1 -0
- package/dist/openscd/src/icons/ied-icons.js +11 -0
- package/dist/openscd/src/icons/ied-icons.js.map +1 -0
- package/dist/openscd/src/icons/lnode.js +50 -0
- package/dist/openscd/src/icons/lnode.js.map +1 -0
- package/dist/openscd/src/open-scd.js +483 -0
- package/dist/openscd/src/open-scd.js.map +1 -0
- package/dist/openscd/src/oscd-filter-button.js +89 -0
- package/dist/openscd/src/oscd-filter-button.js.map +1 -0
- package/dist/openscd/src/plain-compare-list.js +132 -0
- package/dist/openscd/src/plain-compare-list.js.map +1 -0
- package/dist/openscd/src/plugin-tag.js +23 -0
- package/dist/openscd/src/plugin-tag.js.map +1 -0
- package/dist/openscd/src/plugin.events.js +12 -0
- package/dist/openscd/src/plugin.events.js.map +1 -0
- package/dist/openscd/src/plugin.js +2 -0
- package/dist/openscd/src/plugin.js.map +1 -0
- package/dist/openscd/src/plugins.js +256 -0
- package/dist/openscd/src/plugins.js.map +1 -0
- package/dist/openscd/src/schemas.js +9325 -0
- package/dist/openscd/src/schemas.js.map +1 -0
- package/dist/openscd/src/themes.js +122 -0
- package/dist/openscd/src/themes.js.map +1 -0
- package/dist/openscd/src/translations/de.js +954 -0
- package/dist/openscd/src/translations/de.js.map +1 -0
- package/dist/openscd/src/translations/en.js +950 -0
- package/dist/openscd/src/translations/en.js.map +1 -0
- package/dist/openscd/src/translations/loader.js +10 -0
- package/dist/openscd/src/translations/loader.js.map +1 -0
- package/dist/openscd/src/wizard-checkbox.js +152 -0
- package/dist/openscd/src/wizard-checkbox.js.map +1 -0
- package/dist/openscd/src/wizard-dialog.js +374 -0
- package/dist/openscd/src/wizard-dialog.js.map +1 -0
- package/dist/openscd/src/wizard-select.js +115 -0
- package/dist/openscd/src/wizard-select.js.map +1 -0
- package/dist/openscd/src/wizard-textfield.js +191 -0
- package/dist/openscd/src/wizard-textfield.js.map +1 -0
- package/dist/openscd/src/wizards.js +196 -0
- package/dist/openscd/src/wizards.js.map +1 -0
- package/dist/oscd-filter-button.d.ts +27 -27
- package/dist/oscd-filter-button.js +59 -59
- package/dist/plain-compare-list.d.ts +36 -36
- package/dist/plain-compare-list.js +70 -70
- package/dist/plugin-tag.d.ts +6 -6
- package/dist/plugin-tag.js +22 -22
- package/dist/plugin.d.ts +23 -23
- package/dist/plugin.events.d.ts +15 -15
- package/dist/plugin.events.js +11 -11
- package/dist/plugin.js +1 -1
- package/dist/plugin.js.map +1 -1
- package/dist/plugins.d.ts +3 -3
- package/dist/plugins.js +255 -255
- package/dist/schemas.d.ts +58 -58
- package/dist/schemas.js +59 -59
- package/dist/themes.d.ts +3 -3
- package/dist/themes.js +13 -13
- package/dist/themes.js.map +1 -1
- package/dist/translations/de.d.ts +2 -2
- package/dist/translations/de.js +952 -952
- package/dist/translations/en.d.ts +963 -963
- package/dist/translations/en.js +948 -948
- package/dist/translations/loader.d.ts +12 -12
- package/dist/translations/loader.js +9 -9
- package/dist/translations/loader.js.map +1 -1
- package/dist/wizard-checkbox.d.ts +37 -37
- package/dist/wizard-checkbox.js +130 -130
- package/dist/wizard-dialog.d.ts +45 -45
- package/dist/wizard-dialog.js +235 -235
- package/dist/wizard-dialog.js.map +1 -1
- package/dist/wizard-select.d.ts +31 -31
- package/dist/wizard-select.js +102 -102
- package/dist/wizard-textfield.d.ts +50 -50
- package/dist/wizard-textfield.js +162 -162
- package/dist/wizards.d.ts +23 -23
- package/dist/wizards.js +148 -148
- package/dist/wizards.js.map +1 -1
- package/dist/xml/src/foundation.js +67 -0
- package/dist/xml/src/foundation.js.map +1 -0
- package/dist/xml/src/index.js +2 -0
- package/dist/xml/src/index.js.map +1 -0
- package/package.json +38 -127
- package/dist/Wizarding.d.ts +0 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Settings.js","sourceRoot":"","sources":["../../src/addons/Settings.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n html,\n property,\n query,\n TemplateResult,\n customElement,\n LitElement,\n css,\n} from 'lit-element';\nimport { get, translate, registerTranslateConfig, Strings, use } from 'lit-translate';\n\nimport '@material/mwc-button';\nimport '@material/mwc-dialog';\nimport '@material/mwc-formfield';\nimport '@material/mwc-list/mwc-list-item';\nimport '@material/mwc-select';\nimport '@material/mwc-switch';\n\nimport { Dialog } from '@material/mwc-dialog';\nimport { Select } from '@material/mwc-select';\nimport { Switch } from '@material/mwc-switch';\n\nimport { getTheme } from '../themes.js';\n\nimport { newLogEvent } from '@compas-oscd/core/foundation/deprecated/history.js';\nimport { \n Settings, \n SettingsUIEvent, \n Language,\n NsdVersions,\n NsdVersion,\n LoadNsdocEvent,\n newLoadNsdocEvent\n} from '@compas-oscd/core/foundation/deprecated/settings.js';\nimport { Languages, languages, loader } from '../translations/loader.js';\n\nimport '../WizardDivider.js';\nimport { WizardDialog } from '../wizard-dialog.js';\n\nimport {\n iec6185072,\n iec6185073,\n iec6185074,\n iec6185081,\n} from '../foundation/nsd.js';\nimport { initializeNsdoc, Nsdoc } from '../foundation/nsdoc.js';\n\ninterface LanguageConfig {\n loader(lang: string): Promise<Strings>;\n languages: Languages;\n}\n\nexport const defaults: Settings = {\n language: 'en',\n theme: 'light',\n mode: 'safe',\n showieds: 'off',\n 'IEC 61850-7-2': undefined,\n 'IEC 61850-7-3': undefined,\n 'IEC 61850-7-4': undefined,\n 'IEC 61850-8-1': undefined,\n};\n\n@customElement('oscd-settings')\nexport class OscdSettings extends LitElement {\n /** Current [[`Settings`]] in `localStorage`, default to [[`defaults`]]. */\n @property()\n get settings(): Settings {\n return {\n language: this.getSetting('language'),\n theme: this.getSetting('theme'),\n mode: this.getSetting('mode'),\n showieds: this.getSetting('showieds'),\n 'IEC 61850-7-2': this.getSetting('IEC 61850-7-2'),\n 'IEC 61850-7-3': this.getSetting('IEC 61850-7-3'),\n 'IEC 61850-7-4': this.getSetting('IEC 61850-7-4'),\n 'IEC 61850-8-1': this.getSetting('IEC 61850-8-1'),\n };\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 @property({\n type: Object,\n })\n host!: HTMLElement;\n\n @property({ type: Boolean })\n nsdUploadButton = true;\n\n @property({ type: Object })\n languageConfig: LanguageConfig = { languages, loader };\n\n /**\n * Get the versions of the current OpenSCD NSD files.\n * @returns Current version, revision and release for all current OpenSCD NSD files.\n */\n private async nsdVersions(): Promise<NsdVersions> {\n const [nsd72, nsd73, nsd74, nsd81] = await Promise.all([\n iec6185072,\n iec6185073,\n iec6185074,\n iec6185081,\n ]);\n const [nsd72Ns, nsd73Ns, nsd74Ns, nsd81Ns] = [\n nsd72.querySelector('NS'),\n nsd73.querySelector('NS'),\n nsd74.querySelector('NS'),\n nsd81.querySelector('ServiceNS'),\n ];\n\n return {\n 'IEC 61850-7-2': {\n version: nsd72Ns?.getAttribute('version') ?? undefined,\n revision: nsd72Ns?.getAttribute('revision') ?? undefined,\n release: nsd72Ns?.getAttribute('release') ?? undefined,\n },\n 'IEC 61850-7-3': {\n version: nsd73Ns?.getAttribute('version') ?? undefined,\n revision: nsd73Ns?.getAttribute('revision') ?? undefined,\n release: nsd73Ns?.getAttribute('release') ?? undefined,\n },\n 'IEC 61850-7-4': {\n version: nsd74Ns?.getAttribute('version') ?? undefined,\n revision: nsd74Ns?.getAttribute('revision') ?? undefined,\n release: nsd74Ns?.getAttribute('release') ?? undefined,\n },\n 'IEC 61850-8-1': {\n version: nsd81Ns?.getAttribute('version') ?? undefined,\n revision: nsd81Ns?.getAttribute('revision') ?? undefined,\n release: nsd81Ns?.getAttribute('release') ?? undefined,\n },\n };\n }\n\n @query('#settings')\n settingsUI!: Dialog;\n @query('#language')\n languageUI!: Select;\n @query('#dark')\n darkThemeUI!: Switch;\n @query('#mode')\n modeUI!: Switch;\n @query('#showieds')\n showiedsUI!: Switch;\n\n @query('#nsdoc-file')\n private nsdocFileUI!: HTMLInputElement;\n\n private getSetting<T extends keyof Settings>(setting: T): Settings[T] {\n return (\n <Settings[T] | null>localStorage.getItem(setting) ?? defaults[setting]\n );\n }\n\n /** Update the `value` of `setting`, storing to `localStorage`. */\n setSetting<T extends keyof Settings>(setting: T, value: Settings[T]): void {\n localStorage.setItem(setting, <string>(<unknown>value));\n this.shadowRoot\n ?.querySelector<WizardDialog>('wizard-dialog')\n ?.requestUpdate();\n this.requestUpdate();\n }\n\n /** Remove the `setting` in `localStorage`. */\n removeSetting<T extends keyof Settings>(setting: T): void {\n localStorage.removeItem(setting);\n this.shadowRoot\n ?.querySelector<WizardDialog>('wizard-dialog')\n ?.requestUpdate();\n this.requestUpdate();\n\n this.nsdoc = initializeNsdoc(); // update nsdoc\n }\n\n private onClosing(ae: CustomEvent<{ action: string } | null>): void {\n if (ae.detail?.action === 'reset') {\n Object.keys(this.settings).forEach(item => localStorage.removeItem(item));\n this.requestUpdate('settings');\n } else if (ae.detail?.action === 'save') {\n this.setSetting('language', <Language>this.languageUI.value);\n this.setSetting('theme', this.darkThemeUI.checked ? 'dark' : 'light');\n this.setSetting('mode', this.modeUI.checked ? 'pro' : 'safe');\n this.setSetting('showieds', this.showiedsUI.checked ? 'on' : 'off');\n this.requestUpdate('settings');\n }\n }\n\n updated(changedProperties: Map<string | number | symbol, unknown>): void {\n super.updated(changedProperties);\n if (changedProperties.has('settings')) use(this.settings.language);\n }\n\n private renderFileSelect(): TemplateResult {\n return html`\n <input\n id=\"nsdoc-file\"\n accept=\".nsdoc\"\n type=\"file\"\n hidden\n required\n multiple\n @change=\"${(evt: Event) => this.uploadNsdocFile(evt)}}\"\n />\n <mwc-button\n label=\"${translate('settings.selectFileButton')}\"\n id=\"selectFileButton\"\n @click=${() => {\n const input = <HTMLInputElement | null>(\n this.shadowRoot!.querySelector('#nsdoc-file')\n );\n input?.click();\n }}\n >\n </mwc-button>\n `;\n }\n\n private async uploadNsdocFile(evt: Event): Promise<void> {\n const files = Array.from(\n (<HTMLInputElement | null>evt.target)?.files ?? []\n );\n\n if (files.length == 0) return;\n for (const file of files) {\n const text = await file.text();\n this.dispatchEvent(newLoadNsdocEvent(text, file.name));\n }\n\n this.nsdocFileUI.value = '';\n this.requestUpdate();\n }\n\n private async onLoadNsdoc(event: LoadNsdocEvent) {\n const nsdocElement = this.parseToXmlObject(\n event.detail.nsdoc\n ).querySelector('NSDoc');\n\n const id = nsdocElement?.getAttribute('id');\n if (!id) {\n this.dispatchEvent(\n newLogEvent({\n kind: 'error',\n title: get('settings.invalidFileNoIdFound', {\n filename: event.detail.filename,\n }),\n })\n );\n return;\n }\n\n const nsdVersions = await this.nsdVersions();\n const nsdVersion = nsdVersions[id as keyof NsdVersions];\n const nsdocVersion = {\n version: nsdocElement!.getAttribute('version') ?? '',\n revision: nsdocElement!.getAttribute('revision') ?? '',\n release: nsdocElement!.getAttribute('release') ?? '',\n };\n\n if (!this.isEqual(nsdVersion, nsdocVersion)) {\n this.dispatchEvent(\n newLogEvent({\n kind: 'warning',\n title: get('settings.invalidNsdocVersion', {\n id: id,\n filename: event.detail.filename,\n nsdVersion: `${nsdVersion.version}${nsdVersion.revision}${nsdVersion.release}`,\n nsdocVersion: `${nsdocVersion.version}${nsdocVersion.revision}${nsdocVersion.release}`,\n }),\n })\n );\n }\n\n this.setSetting(id as keyof Settings, event.detail.nsdoc);\n this.nsdoc = initializeNsdoc(); // update nsdoc\n }\n\n /**\n * Check the equality of two NsdVersions.\n * @param versionA - First version to compare.\n * @param versionB - Second version to compare.\n * @returns Are they equal or not.\n */\n private isEqual(versionA: NsdVersion, versionB: NsdVersion): boolean {\n return (\n versionA.version == versionB.version &&\n versionA.revision == versionB.revision &&\n versionA.release == versionB.release\n );\n }\n\n /**\n * Render one .nsdoc item in the Settings wizard\n * @param key - The key of the nsdoc file in the settings.\n * @returns a .nsdoc item for the Settings wizard\n */\n private renderNsdocItem<T extends keyof Settings>(key: T): TemplateResult {\n const nsdSetting = this.settings[key];\n let nsdVersion: string | undefined | null;\n let nsdRevision: string | undefined | null;\n let nsdRelease: string | undefined | null;\n\n if (nsdSetting) {\n const nsdoc = this.parseToXmlObject(nsdSetting)!.querySelector('NSDoc');\n nsdVersion = nsdoc?.getAttribute('version');\n nsdRevision = nsdoc?.getAttribute('revision');\n nsdRelease = nsdoc?.getAttribute('release');\n }\n\n return html`<mwc-list-item\n id=${key}\n graphic=\"avatar\"\n hasMeta\n twoline\n .disabled=${!nsdSetting}\n >\n <span>${key}</span>\n ${nsdSetting\n ? html`<span slot=\"secondary\"\n >${nsdVersion}${nsdRevision}${nsdRelease}</span\n >`\n : html``}\n ${nsdSetting\n ? html`<mwc-icon slot=\"graphic\" style=\"color:green;\">done</mwc-icon>`\n : html`<mwc-icon slot=\"graphic\" style=\"color:red;\">close</mwc-icon>`}\n ${nsdSetting\n ? html`<mwc-icon\n id=\"deleteNsdocItem\"\n slot=\"meta\"\n @click=${() => {\n this.removeSetting(key);\n }}\n >delete</mwc-icon\n >`\n : html``}\n </mwc-list-item>`;\n }\n\n private parseToXmlObject(text: string): XMLDocument {\n return new DOMParser().parseFromString(text, 'application/xml');\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n\n registerTranslateConfig({ loader: this.languageConfig.loader, empty: key => key });\n use(this.settings.language);\n\n if (this.host) {\n this.host!.addEventListener('oscd-settings', (evt: SettingsUIEvent) => {\n evt.detail.show ? this.settingsUI.show() : this.settingsUI.close();\n });\n (<any>this.host).addEventListener('load-nsdoc', (evt: LoadNsdocEvent) =>\n this.onLoadNsdoc(evt)\n );\n }\n }\n\n render(): TemplateResult {\n return html`<mwc-dialog\n id=\"settings\"\n heading=\"${translate('settings.title')}\"\n @closing=${this.onClosing}\n >\n <form>\n <mwc-select\n fixedMenuPosition\n id=\"language\"\n icon=\"language\"\n label=\"${translate('settings.language')}\"\n >\n ${Object.keys(this.languageConfig.languages).map(\n lang =>\n html`<mwc-list-item\n graphic=\"icon\"\n value=\"${lang}\"\n ?selected=${lang === this.settings.language}\n >${translate(`settings.languages.${lang}`)}</mwc-list-item\n >`\n )}\n </mwc-select>\n <mwc-formfield label=\"${translate('settings.dark')}\">\n <mwc-switch\n id=\"dark\"\n ?checked=${this.settings.theme === 'dark'}\n ></mwc-switch>\n </mwc-formfield>\n <mwc-formfield label=\"${translate('settings.mode')}\">\n <mwc-switch\n id=\"mode\"\n ?checked=${this.settings.mode === 'pro'}\n ></mwc-switch>\n </mwc-formfield>\n <mwc-formfield label=\"${translate('settings.showieds')}\">\n <mwc-switch\n id=\"showieds\"\n ?checked=${this.settings.showieds === 'on'}\n ></mwc-switch>\n </mwc-formfield>\n </form>\n <wizard-divider></wizard-divider>\n ${this.nsdUploadButton\n ? html`<section id=\"shownsdbutton\">\n <h3>${translate('settings.loadNsdTranslations')}</h3>\n ${this.renderFileSelect()}\n </section>`\n : html``}\n <mwc-list id=\"nsdocList\">\n ${this.renderNsdocItem('IEC 61850-7-2')}\n ${this.renderNsdocItem('IEC 61850-7-3')}\n ${this.renderNsdocItem('IEC 61850-7-4')}\n ${this.renderNsdocItem('IEC 61850-8-1')}\n </mwc-list>\n <mwc-button slot=\"secondaryAction\" dialogAction=\"close\">\n ${translate('cancel')}\n </mwc-button>\n <mwc-button\n style=\"--mdc-theme-primary: var(--mdc-theme-error)\"\n slot=\"secondaryAction\"\n dialogAction=\"reset\"\n >\n ${translate('reset')}\n </mwc-button>\n <mwc-button\n icon=\"save\"\n trailingIcon\n slot=\"primaryAction\"\n dialogAction=\"save\"\n >\n ${translate('save')}\n </mwc-button>\n </mwc-dialog>\n <slot></slot>\n ${getTheme(this.settings.theme)}`;\n }\n\n static styles = css`\n mwc-top-app-bar-fixed {\n --mdc-theme-text-disabled-on-light: rgba(255, 255, 255, 0.38);\n } /* hack to fix disabled icon buttons rendering black */\n\n mwc-tab {\n background-color: var(--primary);\n --mdc-theme-primary: var(--mdc-theme-on-primary);\n }\n\n input[type='file'] {\n display: none;\n }\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 mwc-linear-progress {\n position: fixed;\n --mdc-linear-progress-buffer-color: var(--primary);\n --mdc-theme-primary: var(--secondary);\n left: 0px;\n top: 0px;\n width: 100%;\n pointer-events: none;\n z-index: 1000;\n }\n\n tt {\n font-family: 'Roboto Mono', monospace;\n font-weight: 300;\n }\n\n .landing {\n position: absolute;\n text-align: center;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 100%;\n }\n\n .landing_icon:hover {\n box-shadow: 0 12px 17px 2px rgba(0, 0, 0, 0.14),\n 0 5px 22px 4px rgba(0, 0, 0, 0.12), 0 7px 8px -4px rgba(0, 0, 0, 0.2);\n }\n\n .landing_icon {\n margin: 12px;\n border-radius: 16px;\n width: 160px;\n height: 140px;\n text-align: center;\n color: var(--mdc-theme-on-secondary);\n background: var(--secondary);\n --mdc-icon-button-size: 100px;\n --mdc-icon-size: 100px;\n --mdc-ripple-color: rgba(0, 0, 0, 0);\n box-shadow: rgb(0 0 0 / 14%) 0px 6px 10px 0px,\n rgb(0 0 0 / 12%) 0px 1px 18px 0px, rgb(0 0 0 / 20%) 0px 3px 5px -1px;\n transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .landing_label {\n width: 160px;\n height: 50px;\n margin-top: 100px;\n margin-left: -30px;\n font-family: 'Roboto', sans-serif;\n }\n\n .plugin.menu {\n display: flex;\n }\n\n .plugin.validator {\n display: flex;\n }\n `;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Settings.js","sourceRoot":"","sources":["../../src/addons/Settings.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n html,\n property,\n query,\n TemplateResult,\n customElement,\n LitElement,\n css,\n} from 'lit-element';\nimport { get, translate, registerTranslateConfig, Strings, use } from 'lit-translate';\n\nimport '@material/mwc-button';\nimport '@material/mwc-dialog';\nimport '@material/mwc-formfield';\nimport '@material/mwc-list/mwc-list-item';\nimport '@material/mwc-select';\nimport '@material/mwc-switch';\n\nimport { Dialog } from '@material/mwc-dialog';\nimport { Select } from '@material/mwc-select';\nimport { Switch } from '@material/mwc-switch';\n\nimport { getTheme } from '../themes.js';\n\nimport { newLogEvent } from '@openscd/core/foundation/deprecated/history.js';\nimport { \n Settings, \n SettingsUIEvent, \n Language,\n NsdVersions,\n NsdVersion,\n LoadNsdocEvent,\n newLoadNsdocEvent\n} from '@openscd/core/foundation/deprecated/settings.js';\nimport { Languages, languages, loader } from '../translations/loader.js';\n\nimport '../WizardDivider.js';\nimport { WizardDialog } from '../wizard-dialog.js';\n\nimport {\n iec6185072,\n iec6185073,\n iec6185074,\n iec6185081,\n} from '../foundation/nsd.js';\nimport { initializeNsdoc, Nsdoc } from '../foundation/nsdoc.js';\n\ninterface LanguageConfig {\n loader(lang: string): Promise<Strings>;\n languages: Languages;\n}\n\nexport const defaults: Settings = {\n language: 'en',\n theme: 'light',\n mode: 'safe',\n showieds: 'off',\n 'IEC 61850-7-2': undefined,\n 'IEC 61850-7-3': undefined,\n 'IEC 61850-7-4': undefined,\n 'IEC 61850-8-1': undefined,\n};\n\n@customElement('oscd-settings')\nexport class OscdSettings extends LitElement {\n /** Current [[`Settings`]] in `localStorage`, default to [[`defaults`]]. */\n @property()\n get settings(): Settings {\n return {\n language: this.getSetting('language'),\n theme: this.getSetting('theme'),\n mode: this.getSetting('mode'),\n showieds: this.getSetting('showieds'),\n 'IEC 61850-7-2': this.getSetting('IEC 61850-7-2'),\n 'IEC 61850-7-3': this.getSetting('IEC 61850-7-3'),\n 'IEC 61850-7-4': this.getSetting('IEC 61850-7-4'),\n 'IEC 61850-8-1': this.getSetting('IEC 61850-8-1'),\n };\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 @property({\n type: Object,\n })\n host!: HTMLElement;\n\n @property({ type: Boolean })\n nsdUploadButton = true;\n\n @property({ type: Object })\n languageConfig: LanguageConfig = { languages, loader };\n\n /**\n * Get the versions of the current OpenSCD NSD files.\n * @returns Current version, revision and release for all current OpenSCD NSD files.\n */\n private async nsdVersions(): Promise<NsdVersions> {\n const [nsd72, nsd73, nsd74, nsd81] = await Promise.all([\n iec6185072,\n iec6185073,\n iec6185074,\n iec6185081,\n ]);\n const [nsd72Ns, nsd73Ns, nsd74Ns, nsd81Ns] = [\n nsd72.querySelector('NS'),\n nsd73.querySelector('NS'),\n nsd74.querySelector('NS'),\n nsd81.querySelector('ServiceNS'),\n ];\n\n return {\n 'IEC 61850-7-2': {\n version: nsd72Ns?.getAttribute('version') ?? undefined,\n revision: nsd72Ns?.getAttribute('revision') ?? undefined,\n release: nsd72Ns?.getAttribute('release') ?? undefined,\n },\n 'IEC 61850-7-3': {\n version: nsd73Ns?.getAttribute('version') ?? undefined,\n revision: nsd73Ns?.getAttribute('revision') ?? undefined,\n release: nsd73Ns?.getAttribute('release') ?? undefined,\n },\n 'IEC 61850-7-4': {\n version: nsd74Ns?.getAttribute('version') ?? undefined,\n revision: nsd74Ns?.getAttribute('revision') ?? undefined,\n release: nsd74Ns?.getAttribute('release') ?? undefined,\n },\n 'IEC 61850-8-1': {\n version: nsd81Ns?.getAttribute('version') ?? undefined,\n revision: nsd81Ns?.getAttribute('revision') ?? undefined,\n release: nsd81Ns?.getAttribute('release') ?? undefined,\n },\n };\n }\n\n @query('#settings')\n settingsUI!: Dialog;\n @query('#language')\n languageUI!: Select;\n @query('#dark')\n darkThemeUI!: Switch;\n @query('#mode')\n modeUI!: Switch;\n @query('#showieds')\n showiedsUI!: Switch;\n\n @query('#nsdoc-file')\n private nsdocFileUI!: HTMLInputElement;\n\n private getSetting<T extends keyof Settings>(setting: T): Settings[T] {\n return (\n <Settings[T] | null>localStorage.getItem(setting) ?? defaults[setting]\n );\n }\n\n /** Update the `value` of `setting`, storing to `localStorage`. */\n setSetting<T extends keyof Settings>(setting: T, value: Settings[T]): void {\n localStorage.setItem(setting, <string>(<unknown>value));\n this.shadowRoot\n ?.querySelector<WizardDialog>('wizard-dialog')\n ?.requestUpdate();\n this.requestUpdate();\n }\n\n /** Remove the `setting` in `localStorage`. */\n removeSetting<T extends keyof Settings>(setting: T): void {\n localStorage.removeItem(setting);\n this.shadowRoot\n ?.querySelector<WizardDialog>('wizard-dialog')\n ?.requestUpdate();\n this.requestUpdate();\n\n this.nsdoc = initializeNsdoc(); // update nsdoc\n }\n\n private onClosing(ae: CustomEvent<{ action: string } | null>): void {\n if (ae.detail?.action === 'reset') {\n Object.keys(this.settings).forEach(item => localStorage.removeItem(item));\n this.requestUpdate('settings');\n } else if (ae.detail?.action === 'save') {\n this.setSetting('language', <Language>this.languageUI.value);\n this.setSetting('theme', this.darkThemeUI.checked ? 'dark' : 'light');\n this.setSetting('mode', this.modeUI.checked ? 'pro' : 'safe');\n this.setSetting('showieds', this.showiedsUI.checked ? 'on' : 'off');\n this.requestUpdate('settings');\n }\n }\n\n updated(changedProperties: Map<string | number | symbol, unknown>): void {\n super.updated(changedProperties);\n if (changedProperties.has('settings')) use(this.settings.language);\n }\n\n private renderFileSelect(): TemplateResult {\n return html`\n <input\n id=\"nsdoc-file\"\n accept=\".nsdoc\"\n type=\"file\"\n hidden\n required\n multiple\n @change=\"${(evt: Event) => this.uploadNsdocFile(evt)}}\"\n />\n <mwc-button\n label=\"${translate('settings.selectFileButton')}\"\n id=\"selectFileButton\"\n @click=${() => {\n const input = <HTMLInputElement | null>(\n this.shadowRoot!.querySelector('#nsdoc-file')\n );\n input?.click();\n }}\n >\n </mwc-button>\n `;\n }\n\n private async uploadNsdocFile(evt: Event): Promise<void> {\n const files = Array.from(\n (<HTMLInputElement | null>evt.target)?.files ?? []\n );\n\n if (files.length == 0) return;\n for (const file of files) {\n const text = await file.text();\n this.dispatchEvent(newLoadNsdocEvent(text, file.name));\n }\n\n this.nsdocFileUI.value = '';\n this.requestUpdate();\n }\n\n private async onLoadNsdoc(event: LoadNsdocEvent) {\n const nsdocElement = this.parseToXmlObject(\n event.detail.nsdoc\n ).querySelector('NSDoc');\n\n const id = nsdocElement?.getAttribute('id');\n if (!id) {\n this.dispatchEvent(\n newLogEvent({\n kind: 'error',\n title: get('settings.invalidFileNoIdFound', {\n filename: event.detail.filename,\n }),\n })\n );\n return;\n }\n\n const nsdVersions = await this.nsdVersions();\n const nsdVersion = nsdVersions[id as keyof NsdVersions];\n const nsdocVersion = {\n version: nsdocElement!.getAttribute('version') ?? '',\n revision: nsdocElement!.getAttribute('revision') ?? '',\n release: nsdocElement!.getAttribute('release') ?? '',\n };\n\n if (!this.isEqual(nsdVersion, nsdocVersion)) {\n this.dispatchEvent(\n newLogEvent({\n kind: 'warning',\n title: get('settings.invalidNsdocVersion', {\n id: id,\n filename: event.detail.filename,\n nsdVersion: `${nsdVersion.version}${nsdVersion.revision}${nsdVersion.release}`,\n nsdocVersion: `${nsdocVersion.version}${nsdocVersion.revision}${nsdocVersion.release}`,\n }),\n })\n );\n }\n\n this.setSetting(id as keyof Settings, event.detail.nsdoc);\n this.nsdoc = initializeNsdoc(); // update nsdoc\n }\n\n /**\n * Check the equality of two NsdVersions.\n * @param versionA - First version to compare.\n * @param versionB - Second version to compare.\n * @returns Are they equal or not.\n */\n private isEqual(versionA: NsdVersion, versionB: NsdVersion): boolean {\n return (\n versionA.version == versionB.version &&\n versionA.revision == versionB.revision &&\n versionA.release == versionB.release\n );\n }\n\n /**\n * Render one .nsdoc item in the Settings wizard\n * @param key - The key of the nsdoc file in the settings.\n * @returns a .nsdoc item for the Settings wizard\n */\n private renderNsdocItem<T extends keyof Settings>(key: T): TemplateResult {\n const nsdSetting = this.settings[key];\n let nsdVersion: string | undefined | null;\n let nsdRevision: string | undefined | null;\n let nsdRelease: string | undefined | null;\n\n if (nsdSetting) {\n const nsdoc = this.parseToXmlObject(nsdSetting)!.querySelector('NSDoc');\n nsdVersion = nsdoc?.getAttribute('version');\n nsdRevision = nsdoc?.getAttribute('revision');\n nsdRelease = nsdoc?.getAttribute('release');\n }\n\n return html`<mwc-list-item\n id=${key}\n graphic=\"avatar\"\n hasMeta\n twoline\n .disabled=${!nsdSetting}\n >\n <span>${key}</span>\n ${nsdSetting\n ? html`<span slot=\"secondary\"\n >${nsdVersion}${nsdRevision}${nsdRelease}</span\n >`\n : html``}\n ${nsdSetting\n ? html`<mwc-icon slot=\"graphic\" style=\"color:green;\">done</mwc-icon>`\n : html`<mwc-icon slot=\"graphic\" style=\"color:red;\">close</mwc-icon>`}\n ${nsdSetting\n ? html`<mwc-icon\n id=\"deleteNsdocItem\"\n slot=\"meta\"\n @click=${() => {\n this.removeSetting(key);\n }}\n >delete</mwc-icon\n >`\n : html``}\n </mwc-list-item>`;\n }\n\n private parseToXmlObject(text: string): XMLDocument {\n return new DOMParser().parseFromString(text, 'application/xml');\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n\n registerTranslateConfig({ loader: this.languageConfig.loader, empty: key => key });\n use(this.settings.language);\n\n if (this.host) {\n this.host!.addEventListener('oscd-settings', (evt: SettingsUIEvent) => {\n evt.detail.show ? this.settingsUI.show() : this.settingsUI.close();\n });\n (<any>this.host).addEventListener('load-nsdoc', (evt: LoadNsdocEvent) =>\n this.onLoadNsdoc(evt)\n );\n }\n }\n\n render(): TemplateResult {\n return html`<mwc-dialog\n id=\"settings\"\n heading=\"${translate('settings.title')}\"\n @closing=${this.onClosing}\n >\n <form>\n <mwc-select\n fixedMenuPosition\n id=\"language\"\n icon=\"language\"\n label=\"${translate('settings.language')}\"\n >\n ${Object.keys(this.languageConfig.languages).map(\n lang =>\n html`<mwc-list-item\n graphic=\"icon\"\n value=\"${lang}\"\n ?selected=${lang === this.settings.language}\n >${translate(`settings.languages.${lang}`)}</mwc-list-item\n >`\n )}\n </mwc-select>\n <mwc-formfield label=\"${translate('settings.dark')}\">\n <mwc-switch\n id=\"dark\"\n ?checked=${this.settings.theme === 'dark'}\n ></mwc-switch>\n </mwc-formfield>\n <mwc-formfield label=\"${translate('settings.mode')}\">\n <mwc-switch\n id=\"mode\"\n ?checked=${this.settings.mode === 'pro'}\n ></mwc-switch>\n </mwc-formfield>\n <mwc-formfield label=\"${translate('settings.showieds')}\">\n <mwc-switch\n id=\"showieds\"\n ?checked=${this.settings.showieds === 'on'}\n ></mwc-switch>\n </mwc-formfield>\n </form>\n <wizard-divider></wizard-divider>\n ${this.nsdUploadButton\n ? html`<section id=\"shownsdbutton\">\n <h3>${translate('settings.loadNsdTranslations')}</h3>\n ${this.renderFileSelect()}\n </section>`\n : html``}\n <mwc-list id=\"nsdocList\">\n ${this.renderNsdocItem('IEC 61850-7-2')}\n ${this.renderNsdocItem('IEC 61850-7-3')}\n ${this.renderNsdocItem('IEC 61850-7-4')}\n ${this.renderNsdocItem('IEC 61850-8-1')}\n </mwc-list>\n <mwc-button slot=\"secondaryAction\" dialogAction=\"close\">\n ${translate('cancel')}\n </mwc-button>\n <mwc-button\n style=\"--mdc-theme-primary: var(--mdc-theme-error)\"\n slot=\"secondaryAction\"\n dialogAction=\"reset\"\n >\n ${translate('reset')}\n </mwc-button>\n <mwc-button\n icon=\"save\"\n trailingIcon\n slot=\"primaryAction\"\n dialogAction=\"save\"\n >\n ${translate('save')}\n </mwc-button>\n </mwc-dialog>\n <slot></slot>\n ${getTheme(this.settings.theme)}`;\n }\n\n static styles = css`\n mwc-top-app-bar-fixed {\n --mdc-theme-text-disabled-on-light: rgba(255, 255, 255, 0.38);\n } /* hack to fix disabled icon buttons rendering black */\n\n mwc-tab {\n background-color: var(--primary);\n --mdc-theme-primary: var(--mdc-theme-on-primary);\n }\n\n input[type='file'] {\n display: none;\n }\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 mwc-linear-progress {\n position: fixed;\n --mdc-linear-progress-buffer-color: var(--primary);\n --mdc-theme-primary: var(--secondary);\n left: 0px;\n top: 0px;\n width: 100%;\n pointer-events: none;\n z-index: 1000;\n }\n\n tt {\n font-family: 'Roboto Mono', monospace;\n font-weight: 300;\n }\n\n .landing {\n position: absolute;\n text-align: center;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 100%;\n }\n\n .landing_icon:hover {\n box-shadow: 0 12px 17px 2px rgba(0, 0, 0, 0.14),\n 0 5px 22px 4px rgba(0, 0, 0, 0.12), 0 7px 8px -4px rgba(0, 0, 0, 0.2);\n }\n\n .landing_icon {\n margin: 12px;\n border-radius: 16px;\n width: 160px;\n height: 140px;\n text-align: center;\n color: var(--mdc-theme-on-secondary);\n background: var(--secondary);\n --mdc-icon-button-size: 100px;\n --mdc-icon-size: 100px;\n --mdc-ripple-color: rgba(0, 0, 0, 0);\n box-shadow: rgb(0 0 0 / 14%) 0px 6px 10px 0px,\n rgb(0 0 0 / 12%) 0px 1px 18px 0px, rgb(0 0 0 / 20%) 0px 3px 5px -1px;\n transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .landing_label {\n width: 160px;\n height: 50px;\n margin-top: 100px;\n margin-left: -30px;\n font-family: 'Roboto', sans-serif;\n }\n\n .plugin.menu {\n display: flex;\n }\n\n .plugin.validator {\n display: flex;\n }\n `;\n}\n"]}
|
package/dist/addons/Waiter.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { LitElement, TemplateResult } from 'lit-element';
|
|
2
|
-
import '@material/mwc-linear-progress';
|
|
3
|
-
export declare class OscdWaiter extends LitElement {
|
|
4
|
-
/** Whether the element is currently waiting for some async work. */
|
|
5
|
-
waiting: boolean;
|
|
6
|
-
private work;
|
|
7
|
-
/** A promise which resolves once all currently pending work is done. */
|
|
8
|
-
workDone: Promise<PromiseSettledResult<void>[]>;
|
|
9
|
-
private onPendingState;
|
|
10
|
-
constructor();
|
|
11
|
-
connectedCallback(): void;
|
|
12
|
-
disconnectedCallback(): void;
|
|
13
|
-
render(): TemplateResult;
|
|
14
|
-
}
|
|
1
|
+
import { LitElement, TemplateResult } from 'lit-element';
|
|
2
|
+
import '@material/mwc-linear-progress';
|
|
3
|
+
export declare class OscdWaiter extends LitElement {
|
|
4
|
+
/** Whether the element is currently waiting for some async work. */
|
|
5
|
+
waiting: boolean;
|
|
6
|
+
private work;
|
|
7
|
+
/** A promise which resolves once all currently pending work is done. */
|
|
8
|
+
workDone: Promise<PromiseSettledResult<void>[]>;
|
|
9
|
+
private onPendingState;
|
|
10
|
+
constructor();
|
|
11
|
+
connectedCallback(): void;
|
|
12
|
+
disconnectedCallback(): void;
|
|
13
|
+
render(): TemplateResult;
|
|
14
|
+
}
|
package/dist/addons/Waiter.js
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { customElement, html, LitElement, property, } from 'lit-element';
|
|
3
|
-
import '@material/mwc-linear-progress';
|
|
4
|
-
let OscdWaiter = class OscdWaiter extends LitElement {
|
|
5
|
-
async onPendingState(e) {
|
|
6
|
-
this.waiting = true;
|
|
7
|
-
this.work.add(e.detail.promise);
|
|
8
|
-
this.workDone = Promise.allSettled(this.work);
|
|
9
|
-
await e.detail.promise.catch(reason => console.warn(reason));
|
|
10
|
-
this.work.delete(e.detail.promise);
|
|
11
|
-
this.waiting = this.work.size > 0;
|
|
12
|
-
}
|
|
13
|
-
constructor() {
|
|
14
|
-
super();
|
|
15
|
-
/** Whether the element is currently waiting for some async work. */
|
|
16
|
-
this.waiting = false;
|
|
17
|
-
this.work = new Set();
|
|
18
|
-
/** A promise which resolves once all currently pending work is done. */
|
|
19
|
-
this.workDone = Promise.allSettled(this.work);
|
|
20
|
-
this.onPendingState = this.onPendingState.bind(this);
|
|
21
|
-
}
|
|
22
|
-
connectedCallback() {
|
|
23
|
-
super.connectedCallback();
|
|
24
|
-
this.addEventListener('pending-state', this.onPendingState);
|
|
25
|
-
}
|
|
26
|
-
disconnectedCallback() {
|
|
27
|
-
super.disconnectedCallback();
|
|
28
|
-
this.removeEventListener('pending-state', this.onPendingState);
|
|
29
|
-
}
|
|
30
|
-
render() {
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { customElement, html, LitElement, property, } from 'lit-element';
|
|
3
|
+
import '@material/mwc-linear-progress';
|
|
4
|
+
let OscdWaiter = class OscdWaiter extends LitElement {
|
|
5
|
+
async onPendingState(e) {
|
|
6
|
+
this.waiting = true;
|
|
7
|
+
this.work.add(e.detail.promise);
|
|
8
|
+
this.workDone = Promise.allSettled(this.work);
|
|
9
|
+
await e.detail.promise.catch(reason => console.warn(reason));
|
|
10
|
+
this.work.delete(e.detail.promise);
|
|
11
|
+
this.waiting = this.work.size > 0;
|
|
12
|
+
}
|
|
13
|
+
constructor() {
|
|
14
|
+
super();
|
|
15
|
+
/** Whether the element is currently waiting for some async work. */
|
|
16
|
+
this.waiting = false;
|
|
17
|
+
this.work = new Set();
|
|
18
|
+
/** A promise which resolves once all currently pending work is done. */
|
|
19
|
+
this.workDone = Promise.allSettled(this.work);
|
|
20
|
+
this.onPendingState = this.onPendingState.bind(this);
|
|
21
|
+
}
|
|
22
|
+
connectedCallback() {
|
|
23
|
+
super.connectedCallback();
|
|
24
|
+
this.addEventListener('pending-state', this.onPendingState);
|
|
25
|
+
}
|
|
26
|
+
disconnectedCallback() {
|
|
27
|
+
super.disconnectedCallback();
|
|
28
|
+
this.removeEventListener('pending-state', this.onPendingState);
|
|
29
|
+
}
|
|
30
|
+
render() {
|
|
31
31
|
return html `<slot></slot>
|
|
32
32
|
<mwc-linear-progress
|
|
33
33
|
.closed=${!this.waiting}
|
|
34
34
|
indeterminate
|
|
35
|
-
></mwc-linear-progress>`;
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
__decorate([
|
|
39
|
-
property({ type: Boolean })
|
|
40
|
-
], OscdWaiter.prototype, "waiting", void 0);
|
|
41
|
-
OscdWaiter = __decorate([
|
|
42
|
-
customElement('oscd-waiter')
|
|
43
|
-
], OscdWaiter);
|
|
44
|
-
export { OscdWaiter };
|
|
35
|
+
></mwc-linear-progress>`;
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
__decorate([
|
|
39
|
+
property({ type: Boolean })
|
|
40
|
+
], OscdWaiter.prototype, "waiting", void 0);
|
|
41
|
+
OscdWaiter = __decorate([
|
|
42
|
+
customElement('oscd-waiter')
|
|
43
|
+
], OscdWaiter);
|
|
44
|
+
export { OscdWaiter };
|
|
45
45
|
//# sourceMappingURL=Waiter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Waiter.js","sourceRoot":"","sources":["../../src/addons/Waiter.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,aAAa,EACb,IAAI,EACJ,UAAU,EACV,QAAQ,GAET,MAAM,aAAa,CAAC;AAErB,OAAO,+BAA+B,CAAC;AAKhC,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,UAAU;IAShC,KAAK,CAAC,cAAc,CAAC,CAAkC;QAC7D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IACpC,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QAlBV,oEAAoE;QAEpE,YAAO,GAAG,KAAK,CAAC;QAER,SAAI,GAAuB,IAAI,GAAG,EAAE,CAAC;QAC7C,wEAAwE;QACxE,aAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAavC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9D,CAAC;IAED,oBAAoB;QAClB,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACjE,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;kBAEG,CAAC,IAAI,CAAC,OAAO;;8BAED,CAAC;IAC7B,CAAC;CACF,CAAA;AArCC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;2CACZ;AAHL,UAAU;IADtB,aAAa,CAAC,aAAa,CAAC;GAChB,UAAU,CAwCtB;SAxCY,UAAU","sourcesContent":["import {\n customElement,\n html,\n LitElement,\n property,\n TemplateResult,\n} from 'lit-element';\n\nimport '@material/mwc-linear-progress';\n\nimport { PendingStateDetail } from '@
|
|
1
|
+
{"version":3,"file":"Waiter.js","sourceRoot":"","sources":["../../src/addons/Waiter.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,aAAa,EACb,IAAI,EACJ,UAAU,EACV,QAAQ,GAET,MAAM,aAAa,CAAC;AAErB,OAAO,+BAA+B,CAAC;AAKhC,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,UAAU;IAShC,KAAK,CAAC,cAAc,CAAC,CAAkC;QAC7D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IACpC,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QAlBV,oEAAoE;QAEpE,YAAO,GAAG,KAAK,CAAC;QAER,SAAI,GAAuB,IAAI,GAAG,EAAE,CAAC;QAC7C,wEAAwE;QACxE,aAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAavC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9D,CAAC;IAED,oBAAoB;QAClB,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACjE,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;kBAEG,CAAC,IAAI,CAAC,OAAO;;8BAED,CAAC;IAC7B,CAAC;CACF,CAAA;AArCC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;2CACZ;AAHL,UAAU;IADtB,aAAa,CAAC,aAAa,CAAC;GAChB,UAAU,CAwCtB;SAxCY,UAAU","sourcesContent":["import {\n customElement,\n html,\n LitElement,\n property,\n TemplateResult,\n} from 'lit-element';\n\nimport '@material/mwc-linear-progress';\n\nimport { PendingStateDetail } from '@openscd/core/foundation/deprecated/waiter.js';\n\n@customElement('oscd-waiter')\nexport class OscdWaiter extends LitElement {\n /** Whether the element is currently waiting for some async work. */\n @property({ type: Boolean })\n waiting = false;\n\n private work: Set<Promise<void>> = new Set();\n /** A promise which resolves once all currently pending work is done. */\n workDone = Promise.allSettled(this.work);\n\n private async onPendingState(e: CustomEvent<PendingStateDetail>) {\n this.waiting = true;\n this.work.add(e.detail.promise);\n this.workDone = Promise.allSettled(this.work);\n await e.detail.promise.catch(reason => console.warn(reason));\n this.work.delete(e.detail.promise);\n this.waiting = this.work.size > 0;\n }\n\n constructor() {\n super();\n this.onPendingState = this.onPendingState.bind(this);\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('pending-state', this.onPendingState);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('pending-state', this.onPendingState);\n }\n\n render(): TemplateResult {\n return html`<slot></slot>\n <mwc-linear-progress\n .closed=${!this.waiting}\n indeterminate\n ></mwc-linear-progress>`;\n }\n}\n"]}
|
package/dist/addons/Wizards.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { TemplateResult, LitElement } from 'lit-element';
|
|
2
|
-
import { WizardFactory } from '../foundation.js';
|
|
3
|
-
import '../wizard-dialog.js';
|
|
4
|
-
import { WizardDialog } from '../wizard-dialog.js';
|
|
5
|
-
/** `LitElement` mixin that adds a `workflow` property which [[`Wizard`]]s are
|
|
6
|
-
* queued onto on incoming [[`WizardEvent`]]s, first come first displayed. */
|
|
7
|
-
export declare class OscdWizards extends LitElement {
|
|
8
|
-
host: HTMLElement;
|
|
9
|
-
/** FIFO queue of [[`Wizard`]]s to display. */
|
|
10
|
-
workflow: WizardFactory[];
|
|
11
|
-
wizardUI: WizardDialog;
|
|
12
|
-
private onWizard;
|
|
13
|
-
connectedCallback(): void;
|
|
14
|
-
render(): TemplateResult;
|
|
15
|
-
}
|
|
1
|
+
import { TemplateResult, LitElement } from 'lit-element';
|
|
2
|
+
import { WizardFactory } from '../foundation.js';
|
|
3
|
+
import '../wizard-dialog.js';
|
|
4
|
+
import { WizardDialog } from '../wizard-dialog.js';
|
|
5
|
+
/** `LitElement` mixin that adds a `workflow` property which [[`Wizard`]]s are
|
|
6
|
+
* queued onto on incoming [[`WizardEvent`]]s, first come first displayed. */
|
|
7
|
+
export declare class OscdWizards extends LitElement {
|
|
8
|
+
host: HTMLElement;
|
|
9
|
+
/** FIFO queue of [[`Wizard`]]s to display. */
|
|
10
|
+
workflow: WizardFactory[];
|
|
11
|
+
wizardUI: WizardDialog;
|
|
12
|
+
private onWizard;
|
|
13
|
+
connectedCallback(): void;
|
|
14
|
+
render(): TemplateResult;
|
|
15
|
+
}
|
package/dist/addons/Wizards.js
CHANGED
|
@@ -1,48 +1,48 @@
|
|
|
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() {
|
|
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
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 };
|
|
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
48
|
//# sourceMappingURL=Wizards.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { EditorAction } from '@
|
|
2
|
-
import { Edit } from '@
|
|
3
|
-
export declare function convertEditActiontoV1(action: EditorAction): Edit;
|
|
1
|
+
import { EditorAction } from '@openscd/core/foundation/deprecated/editor.js';
|
|
2
|
+
import { Edit } from '@openscd/core';
|
|
3
|
+
export declare function convertEditActiontoV1(action: EditorAction): Edit;
|
|
@@ -1,96 +1,96 @@
|
|
|
1
|
-
import { isCreate, isDelete, isMove, isReplace, isSimple, isUpdate } from '@
|
|
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
|
-
}
|
|
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
96
|
//# sourceMappingURL=edit-action-to-v1-converter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit-action-to-v1-converter.js","sourceRoot":"","sources":["../../../src/addons/editor/edit-action-to-v1-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,SAAS,EACT,QAAQ,EACR,QAAQ,EAKT,MAAM,
|
|
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,2 +1,2 @@
|
|
|
1
|
-
import { Edit, EditV2 } from '@
|
|
2
|
-
export declare function convertEditV1toV2(edit: Edit): EditV2;
|
|
1
|
+
import { Edit, EditV2 } from '@openscd/core';
|
|
2
|
+
export declare function convertEditV1toV2(edit: Edit): EditV2;
|