Skip to content

Commit 4e2bf44

Browse files
author
Rob Tjalma
authored
Merge pull request #115 from com-pas/stablize_npm_build
Refactoring and stablize NPM build
2 parents f905221 + acd0030 commit 4e2bf44

19 files changed

+106
-84
lines changed

src/Logging.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ export function Logging<TBase extends LitElementConstructor>(Base: TBase) {
148148
};
149149
}
150150

151-
private async onLoadHistoryFromDoc(event: OpenDocEvent) {
151+
private onLoadHistoryFromDoc(event: OpenDocEvent) {
152152
const doc = event.detail.doc;
153153

154154
Array.from(

src/compas-editors/CompasVersions.ts

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,19 @@ import '@material/mwc-list/mwc-list-item';
99
import '@material/mwc-list/mwc-check-list-item';
1010

1111
import {newLogEvent, newWizardEvent, Wizard} from "../foundation.js";
12+
import {MultiSelectedEvent} from "@material/mwc-list/mwc-list-foundation";
1213

1314
import {CompasSclDataService, SDS_NAMESPACE} from "../compas-services/CompasSclDataService.js";
1415
import {createLogEvent} from "../compas-services/foundation.js";
15-
import {getTypeFromDocName, updateDocumentInOpenSCD} from "../compas/foundation.js";
16-
import {getElementByName, getOpenScdElement, styles} from './foundation.js';
16+
import {
17+
dispatchEventOnOpenScd,
18+
getOpenScdElement,
19+
getTypeFromDocName,
20+
updateDocumentInOpenSCD
21+
} from "../compas/foundation.js";
1722
import {addVersionToCompasWizard} from "../compas/CompasUploadVersion.js";
1823
import {compareWizard} from "../compas/CompasCompareDialog.js";
19-
import {MultiSelectedEvent} from "@material/mwc-list/mwc-list-foundation";
24+
import {getElementByName, styles} from './foundation.js';
2025

2126
// Save the selection for the current document.
2227
let selectedVersionsOnCompasVersionsEditor: Set<number> = new Set();
@@ -38,7 +43,7 @@ export default class CompasVersionsPlugin extends LitElement {
3843

3944
// Add event to get a notification when a new document is opened.
4045
const openSCD = getOpenScdElement();
41-
if (openSCD) {
46+
if (openSCD !== null) {
4247
openSCD.addEventListener('open-doc', this.resetSelection);
4348
}
4449
}
@@ -273,23 +278,25 @@ export default class CompasVersionsPlugin extends LitElement {
273278
function confirmDeleteCompasWizard(docName: string, docId: string): Wizard {
274279
function deleteScl(docName: string, docId: string) {
275280
return function () {
276-
const openScd = getOpenScdElement();
277281
const type = getTypeFromDocName(docName);
278282

279283
CompasSclDataService()
280284
.deleteSclDocument(type, docId)
281285
.then (() => {
282-
openScd.docId = '';
283-
openScd.dispatchEvent(
284-
newLogEvent({
285-
kind: 'info',
286-
title: get('compas.versions.deleteSuccess')
287-
}));
286+
const openScd = getOpenScdElement();
287+
if (openScd !== null) {
288+
openScd.docId = '';
289+
openScd.dispatchEvent(
290+
newLogEvent({
291+
kind: 'info',
292+
title: get('compas.versions.deleteSuccess')
293+
}));
294+
}
288295
})
289296
.catch(createLogEvent);
290297

291298
// Close the Restore Dialog.
292-
openScd.dispatchEvent(newWizardEvent());
299+
dispatchEventOnOpenScd(newWizardEvent());
293300

294301
return [];
295302
}
@@ -313,14 +320,13 @@ function confirmDeleteCompasWizard(docName: string, docId: string): Wizard {
313320
function confirmRestoreVersionCompasWizard(docName: string, docId: string, version: string): Wizard {
314321
function openScl(docName: string, docId: string, version: string) {
315322
return function () {
316-
const openScd = getOpenScdElement();
317323
const type = getTypeFromDocName(docName);
318324

319325
CompasSclDataService().getSclDocumentVersion(type, docId, version)
320326
.then(sclDocument => {
321327
updateDocumentInOpenSCD(sclDocument);
322328

323-
openScd.dispatchEvent(
329+
dispatchEventOnOpenScd(
324330
newLogEvent({
325331
kind: 'info',
326332
title: get('compas.versions.restoreVersionSuccess', {version : version})
@@ -329,7 +335,7 @@ function confirmRestoreVersionCompasWizard(docName: string, docId: string, versi
329335
.catch(createLogEvent);
330336

331337
// Close the Restore Dialog.
332-
openScd.dispatchEvent(newWizardEvent());
338+
dispatchEventOnOpenScd(newWizardEvent());
333339

334340
return [];
335341
}
@@ -353,13 +359,12 @@ function confirmRestoreVersionCompasWizard(docName: string, docId: string, versi
353359
function confirmDeleteVersionCompasWizard(docName: string, docId: string, version: string): Wizard {
354360
function deleteSclVersion(docName: string, docId: string, version: string) {
355361
return function () {
356-
const openScd = getOpenScdElement();
357362
const type = getTypeFromDocName(docName);
358363

359364
CompasSclDataService()
360365
.deleteSclDocumentVersion(type, docId, version)
361366
.then(() => {
362-
openScd.dispatchEvent(
367+
dispatchEventOnOpenScd(
363368
newLogEvent({
364369
kind: 'info',
365370
title: get('compas.versions.deleteVersionSuccess', {version : version})
@@ -368,7 +373,7 @@ function confirmDeleteVersionCompasWizard(docName: string, docId: string, versio
368373
.catch(createLogEvent);
369374

370375
// Close the Restore Dialog.
371-
openScd.dispatchEvent(newWizardEvent());
376+
dispatchEventOnOpenScd(newWizardEvent());
372377

373378
return [];
374379
}

src/compas-editors/foundation.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import {css} from "lit-element";
2-
import {OpenSCD} from "../open-scd.js";
32

43
export function getElementByName(parent: Element, namespace: string, tagName: string): Element | null {
54
const elements = parent.getElementsByTagNameNS(namespace, tagName);
@@ -9,10 +8,6 @@ export function getElementByName(parent: Element, namespace: string, tagName: st
98
return null;
109
}
1110

12-
export function getOpenScdElement(): OpenSCD {
13-
return <OpenSCD>document.querySelector('open-scd');
14-
}
15-
1611
/** Common `CSS` styles used by Compas Editors subeditors */
1712
export const styles = css`
1813
:host(.moving) section {

src/compas-services/foundation.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,13 @@
11
import {get} from "lit-translate";
2-
3-
import {OpenSCD} from "../open-scd.js";
42
import {newLogEvent} from "../foundation.js";
3+
import {dispatchEventOnOpenScd} from "../compas/foundation.js";
54

65
export const NOT_FOUND_ERROR = 'NotFoundError';
76
export const APPLICATION_ERROR = 'ApplicationError';
87
export const SERVER_ERROR = 'ServerError';
98

109
export const COMMONS_NAMESPACE = 'https://www.lfenergy.org/compas/commons/v1';
1110

12-
export function getOpenScdElement(): OpenSCD {
13-
return <OpenSCD>document.querySelector('open-scd');
14-
}
15-
1611
export async function handleResponse(response: Response): Promise<string> {
1712
if (!response.ok) {
1813
let type = APPLICATION_ERROR;
@@ -75,7 +70,7 @@ export function createLogEvent(reason: any): void {
7570
message += " (" + reason.status + ")";
7671
}
7772

78-
getOpenScdElement().dispatchEvent(
73+
dispatchEventOnOpenScd(
7974
newLogEvent({
8075
kind: 'error',
8176
title: get('compas.error.server'),

src/compas/CompasAutoAlignment.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import '@material/mwc-list';
55
import '@material/mwc-list/mwc-check-list-item';
66

77
import {newLogEvent, newOpenDocEvent, newWizardEvent} from "../foundation.js";
8-
import {getOpenScdElement} from "./foundation.js";
8+
import {dispatchEventOnOpenScd, getOpenScdElement} from "./foundation.js";
99

1010
import {CompasSclAutoAlignmentService} from "../compas-services/CompasSclAutoAlignmentService.js";
1111
import {createLogEvent} from "../compas-services/foundation.js";
@@ -37,11 +37,15 @@ export default class CompasAutoAlignmentElement extends LitElement {
3737
if (this.valid()) {
3838
await CompasSclAutoAlignmentService().updateSCL(this.doc, this.getSelectedValues())
3939
.then(sclDocument => {
40-
const openScd = getOpenScdElement();
41-
openScd.dispatchEvent(newLogEvent({kind: 'reset'}));
42-
openScd.dispatchEvent(newOpenDocEvent(sclDocument, this.docName, {detail: {docId: this.docId}}));
40+
dispatchEventOnOpenScd(newLogEvent({kind: 'reset'}));
41+
dispatchEventOnOpenScd(
42+
newOpenDocEvent(
43+
sclDocument,
44+
this.docName,
45+
{detail: {docId: this.docId}}
46+
));
4347

44-
openScd.dispatchEvent(
48+
dispatchEventOnOpenScd(
4549
newLogEvent({
4650
kind: 'info',
4751
title: get('compas.autoAlignment.success')

src/compas/CompasCompareDialog.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import '@material/mwc-icon';
88

99
import {identity, isSame, newWizardEvent, Wizard} from "../foundation.js";
1010

11-
import {getOpenScdElement} from "./foundation.js";
11+
import {dispatchEventOnOpenScd} from "./foundation.js";
1212

1313
interface CompareOptions {
1414
title: string;
@@ -180,7 +180,7 @@ export function compareWizard(
180180
): Wizard {
181181
function close() {
182182
return function () {
183-
getOpenScdElement().dispatchEvent(newWizardEvent())
183+
dispatchEventOnOpenScd(newWizardEvent())
184184
return [];
185185
};
186186
}

src/compas/CompasOpen.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {newPendingStateEvent} from "../foundation.js";
77

88
import {CompasSclDataService} from "../compas-services/CompasSclDataService.js";
99
import {createLogEvent} from "../compas-services/foundation.js";
10-
import {getOpenScdElement} from "./foundation.js";
10+
import {dispatchEventOnOpenScd} from "./foundation.js";
1111
import {SclSelectedEvent} from "./CompasScl.js";
1212
import {TypeSelectedEvent} from "./CompasSclTypeList.js";
1313

@@ -66,7 +66,7 @@ export default class CompasOpenElement extends LitElement {
6666
<input id="scl-file" accept=".sed,.scd,.ssd,.isd,.iid,.cid,.icd"
6767
type="file" hidden required
6868
@change=${(evt: Event) =>
69-
getOpenScdElement().dispatchEvent(newPendingStateEvent(this.getSclFile(evt)))
69+
dispatchEventOnOpenScd(newPendingStateEvent(this.getSclFile(evt)))
7070
}>
7171
7272
<mwc-button label="${translate('compas.open.selectFileButton')}"
@@ -92,7 +92,7 @@ export default class CompasOpenElement extends LitElement {
9292
<p>${translate('compas.open.listScls', {type: this.selectedType??''})}</p>
9393
<compas-scl-list .type=${this.selectedType}
9494
@sclSelected=${(evt: SclSelectedEvent) =>
95-
getOpenScdElement().dispatchEvent(newPendingStateEvent(this.getSclDocument(evt.detail.docId)))
95+
dispatchEventOnOpenScd(newPendingStateEvent(this.getSclDocument(evt.detail.docId)))
9696
}/>
9797
</compas-scl-list>
9898
<mwc-button id="reselect-type"

src/compas/CompasSave.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,12 @@ import {CompasSclTypeRadiogroup} from "./CompasSclTypeRadiogroup.js";
1414
import {CompasCommentElement} from "./CompasComment.js";
1515
import {CompasSclDataService} from "../compas-services/CompasSclDataService.js";
1616
import {createLogEvent} from "../compas-services/foundation.js";
17-
import {getOpenScdElement, getTypeFromDocName, stripExtensionFromName, updateDocumentInOpenSCD} from "./foundation.js";
17+
import {
18+
dispatchEventOnOpenScd,
19+
getTypeFromDocName,
20+
stripExtensionFromName,
21+
updateDocumentInOpenSCD
22+
} from "./foundation.js";
1823

1924
import './CompasChangeSetRadiogroup.js';
2025
import './CompasComment.js';
@@ -62,8 +67,7 @@ export default class CompasSaveElement extends CompasExistsIn(LitElement) {
6267
.then(sclDocument => {
6368
updateDocumentInOpenSCD(sclDocument);
6469

65-
const openScd = getOpenScdElement();
66-
openScd.dispatchEvent(
70+
dispatchEventOnOpenScd(
6771
newLogEvent({
6872
kind: 'info',
6973
title: get('compas.save.addSuccess')
@@ -84,8 +88,7 @@ export default class CompasSaveElement extends CompasExistsIn(LitElement) {
8488
.then(sclDocument => {
8589
updateDocumentInOpenSCD(sclDocument);
8690

87-
const openScd = getOpenScdElement();
88-
openScd.dispatchEvent(
91+
dispatchEventOnOpenScd(
8992
newLogEvent({
9093
kind: 'info',
9194
title: get('compas.save.updateSuccess')

src/compas/CompasSession.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import '@material/mwc-dialog';
66
import '@material/mwc-button';
77

88
import {saveDocumentToFile} from "../file.js";
9-
import {getOpenScdElement} from "./foundation.js";
9+
import {dispatchEventOnOpenScd, getOpenScdElement} from "./foundation.js";
1010

1111
import {CompasUserInfoService} from "../compas-services/CompasUserInfoService.js";
1212
import {newUserInfoEvent} from "../foundation.js";
@@ -22,7 +22,7 @@ export class CompasSessionExpiringDialogElement extends LitElement {
2222
private expiringSessionWarningTimer: NodeJS.Timeout | null = null;
2323

2424
static getElement(): CompasSessionExpiringDialogElement {
25-
return (<CompasSessionExpiringDialogElement>getOpenScdElement()
25+
return (<CompasSessionExpiringDialogElement>getOpenScdElement()!
2626
.shadowRoot!.querySelector('compas-session-expiring-dialog'));
2727
}
2828

@@ -85,7 +85,7 @@ export class CompasSessionExpiredDialogElement extends LitElement {
8585
private expiredSessionMessageTimer: NodeJS.Timeout | null = null;
8686

8787
static getElement(): CompasSessionExpiredDialogElement {
88-
return (<CompasSessionExpiredDialogElement>getOpenScdElement()
88+
return (<CompasSessionExpiredDialogElement>getOpenScdElement()!
8989
.shadowRoot!.querySelector('compas-session-expired-dialog'));
9090
}
9191

@@ -131,7 +131,7 @@ export class CompasSessionExpiredDialogElement extends LitElement {
131131
translateUnsafeHTML('compas.session.explainExpiredWithProject',
132132
{expiredSessionMessage: expiredSessionMessage}) }
133133
</div>
134-
${(this.doc != null) ?
134+
${(this.doc !== null) ?
135135
html `<mwc-button slot="primaryAction"
136136
@click=${() => this.save()}
137137
?disabled=${this.doc == null}>
@@ -213,8 +213,8 @@ export async function retrieveUserInfo(): Promise<void> {
213213
await CompasUserInfoService().getCompasUserInfo()
214214
.then(response => {
215215
const name = response.querySelectorAll("Name").item(0)?.textContent;
216-
if (name != null) {
217-
getOpenScdElement().dispatchEvent(newUserInfoEvent(name));
216+
if (name !== null) {
217+
dispatchEventOnOpenScd(newUserInfoEvent(name));
218218
}
219219

220220
const sessionWarning = response.querySelectorAll("SessionWarning").item(0)?.textContent??"15";
@@ -226,4 +226,3 @@ export async function retrieveUserInfo(): Promise<void> {
226226
setSessionTimeouts(10, 15);
227227
});
228228
}
229-
retrieveUserInfo();

src/compas/CompasSettings.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import '@material/mwc-button';
66

77
import {newWizardEvent} from '../foundation.js';
88
import {TextFieldBase} from "@material/mwc-textfield/mwc-textfield-base";
9-
import {getOpenScdElement} from "./foundation.js";
9+
import {dispatchEventOnOpenScd} from "./foundation.js";
1010

1111
export type CompasSettingsRecord = {
1212
sclDataServiceUrl: string;
@@ -92,8 +92,7 @@ export class CompasSettingsElement extends LitElement {
9292

9393
close(): void {
9494
// Close the Save Dialog.
95-
const openScd = getOpenScdElement();
96-
openScd.dispatchEvent(newWizardEvent());
95+
dispatchEventOnOpenScd(newWizardEvent());
9796
}
9897

9998
render(): TemplateResult {

0 commit comments

Comments
 (0)