@compas-oscd/open-scd 0.35.2 → 0.35.3

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.
@@ -43,6 +43,7 @@ export declare class OscdHistory extends LitElement {
43
43
  host: HTMLElement;
44
44
  latestIssue: IssueDetail;
45
45
  history: HistoryItem[];
46
+ validationTimes: Map<string, Date>;
46
47
  get canRedo(): boolean;
47
48
  get canUndo(): boolean;
48
49
  logUI: Dialog;
@@ -69,6 +70,7 @@ export declare class OscdHistory extends LitElement {
69
70
  renderLogEntry(entry: InfoEntry, index: number, log: LogEntry[]): TemplateResult;
70
71
  renderHistoryEntry(entry: HistoryItem): TemplateResult;
71
72
  private formatTime;
73
+ private formatValidationTime;
72
74
  private renderLog;
73
75
  private renderHistory;
74
76
  protected renderIssueEntry(issue: IssueDetail): TemplateResult;
@@ -72,6 +72,7 @@ let OscdHistory = class OscdHistory extends LitElement {
72
72
  this.diagnoses.set(de.detail.validatorId, [de.detail]);
73
73
  else
74
74
  issues?.push(de.detail);
75
+ this.validationTimes.set(de.detail.validatorId, new Date());
75
76
  this.latestIssue = de.detail;
76
77
  this.issueUI.close();
77
78
  this.issueUI.show();
@@ -171,6 +172,7 @@ let OscdHistory = class OscdHistory extends LitElement {
171
172
  this.log = [];
172
173
  this.diagnoses = new Map();
173
174
  this.history = [];
175
+ this.validationTimes = new Map();
174
176
  this.unsubscribers = [];
175
177
  this.undo = this.undo.bind(this);
176
178
  this.redo = this.redo.bind(this);
@@ -199,12 +201,12 @@ let OscdHistory = class OscdHistory extends LitElement {
199
201
  graphic="icon"
200
202
  ?twoline=${!!entry.message}
201
203
  >
202
- <span>
204
+ <span class="selectable-text">
203
205
  <!-- FIXME: replace tt with mwc-chip asap -->
204
206
  <tt>${entry.time?.toLocaleString()}</tt>
205
207
  ${entry.title}</span
206
208
  >
207
- <span slot="secondary">${entry.message}</span>
209
+ <span class="selectable-text" slot="secondary">${entry.message}</span>
208
210
  <mwc-icon
209
211
  slot="graphic"
210
212
  style="--mdc-theme-text-icon-on-background:var(${iconColors[entry.kind]})"
@@ -233,6 +235,12 @@ let OscdHistory = class OscdHistory extends LitElement {
233
235
  const minutes = date.getMinutes();
234
236
  return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`;
235
237
  }
238
+ formatValidationTime(time) {
239
+ const date = new Date(time);
240
+ const dateStr = date.toLocaleDateString();
241
+ const timeStr = date.toLocaleTimeString();
242
+ return `${dateStr} ${timeStr}`;
243
+ }
236
244
  renderLog() {
237
245
  if (this.log.length > 0)
238
246
  return this.log.slice().reverse().map(this.renderLogEntry, this);
@@ -253,19 +261,28 @@ let OscdHistory = class OscdHistory extends LitElement {
253
261
  }
254
262
  renderIssueEntry(issue) {
255
263
  return html ` <abbr title="${issue.title + '\n' + issue.message}"
256
- ><mwc-list-item ?twoline=${!!issue.message}>
257
- <span> ${issue.title}</span>
258
- <span slot="secondary">${issue.message}</span>
264
+ ><mwc-list-item noninteractive ?twoline=${!!issue.message}>
265
+ <span class="selectable-text"> ${issue.title}</span>
266
+ <span class="selectable-text" slot="secondary">${issue.message}</span>
259
267
  </mwc-list-item></abbr
260
268
  >`;
261
269
  }
262
270
  renderValidatorsIssues(issues) {
263
271
  if (issues.length === 0)
264
272
  return [html ``];
273
+ const lastValidated = this.validationTimes.get(issues[0].validatorId);
265
274
  return [
266
275
  html `
267
- <mwc-list-item noninteractive>
268
- ${getPluginName(issues[0].validatorId)}
276
+ <mwc-list-item noninteractive ?twoline=${!!lastValidated}>
277
+ <span>${getPluginName(issues[0].validatorId)}</span>
278
+ ${lastValidated
279
+ ? html `<span slot="secondary" class="validation-time"
280
+ >${get('diag.lastValidated', {
281
+ time: this.formatValidationTime(lastValidated.getTime()),
282
+ })}</span
283
+ >`
284
+ : ''}
285
+ </span>
269
286
  </mwc-list-item>
270
287
  `,
271
288
  html `<li divider padded role="separator"></li>`,
@@ -324,6 +341,18 @@ let OscdHistory = class OscdHistory extends LitElement {
324
341
  render() {
325
342
  return html `<slot></slot>
326
343
  <style>
344
+ .selectable-text {
345
+ user-select: text;
346
+ -webkit-user-select: text;
347
+ cursor: text;
348
+ }
349
+
350
+ .validation-time {
351
+ color: var(--base1);
352
+ font-size: 0.85em;
353
+ white-space: nowrap;
354
+ }
355
+
327
356
  #log > mwc-icon-button-toggle {
328
357
  position: absolute;
329
358
  top: 8px;
@@ -469,6 +498,9 @@ __decorate([
469
498
  __decorate([
470
499
  state()
471
500
  ], OscdHistory.prototype, "history", void 0);
501
+ __decorate([
502
+ state()
503
+ ], OscdHistory.prototype, "validationTimes", void 0);
472
504
  __decorate([
473
505
  query('#log')
474
506
  ], OscdHistory.prototype, "logUI", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"History.js","sourceRoot":"","sources":["../../src/addons/History.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,KAAK,EAEL,aAAa,EACb,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,OAAO,sBAAsB,CAAC;AAC9B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,2BAA2B,CAAC;AACnC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,oBAAoB,CAAC;AAC5B,OAAO,kCAAkC,CAAC;AAC1C,OAAO,wBAAwB,CAAC;AAIhC,OAAO,qBAAqB,CAAC;AAY7B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAK9D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AASvD,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,QAAQ;CAChB,CAAC;AAEF,SAAS,aAAa,CAAC,GAAW;IAEhC,IAAI,mBAAmB,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1D,IAAG,CAAC,mBAAmB,EAAE;QACvB,mBAAmB,GAAG,IAAI,CAAC;KAC5B;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAa,CAAC;IAClE,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IAEtE,IAAG,CAAC,YAAY,EAAE;QAChB,OAAO,mBAAmB,GAAG,OAAO,mBAAmB,EAAE,CAAC;KAC3D;IAED,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;IAE/B,IAAG,CAAC,IAAI,EAAC;QACP,OAAO,mBAAmB,GAAG,EAAE,CAAC;KACjC;IAED,OAAO,IAAI,CAAC;AAEd,CAAC;AAED,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,4BAAW,CAAA;IACX,oCAAmB,CAAA;IACnB,0CAAyB,CAAA;AAC3B,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAQD,MAAM,UAAU,iBAAiB,CAC/B,IAAa,EACb,IAAmB,EACnB,aAAyD;IAEzD,OAAO,IAAI,WAAW,CAAkB,mBAAmB,EAAE;QAC3D,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI;QACd,GAAG,aAAa;QAChB,MAAM,EAAE;YACN,IAAI;YACJ,IAAI;YACJ,GAAG,aAAa,EAAE,MAAM;SACzB;KACF,CAAC,CAAC;AACL,CAAC;AAQD,MAAM,UAAU,mBAAmB,CACjC,SAAiB,EACjB,aAA2D;IAE3D,OAAO,IAAI,WAAW,CAAoB,cAAc,EAAE;QACxD,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI;QACd,GAAG,aAAa;QAChB,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,MAAM,EAAE;KAChD,CAAC,CAAC;AACL,CAAC;AAGM,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAU;IAoBzC,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;IACtC,CAAC;IAYO,OAAO,CAAC,EAAc;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAEzD,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;;YAC/D,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAE7B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IACD,IAAI;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,MAAM,CAAC,MAAkB;QAC/B,MAAM,KAAK,GAAc;YACvB,IAAI,EAAE,IAAI,IAAI,EAAE;YAChB,GAAG,MAAM;SACV,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACpB,MAAM,EAAE,GAAG;gBACT,KAAK,EAAE,IAAI,CAAC,OAAO;gBACnB,OAAO,EAAE,IAAI,CAAC,SAAS;gBACvB,IAAI,EAAE,IAAI,CAAC,MAAM;aAClB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAEf,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,EAAE,CAAC,IAAI,EAAE,CAAC;SACX;QACD,IAAI,MAAM,CAAC,IAAI,IAAI,OAAO,EAAE;YAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,wBAAwB;YAC9C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SACrB;QACD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,EAAY;QACxB,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;YACtB,KAAK,OAAO;gBACV,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,MAAM;YACR,KAAK,QAAQ;gBACX,mBAAmB;gBACnB,MAAM;YACR;gBACE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;gBACvB,MAAM;SACT;IACH,CAAC;IAEO,gBAAgB,CAAC,CAAiB;QACxC,MAAM,EAAE,GAAG;YACT,GAAG,EAAE,IAAI,CAAC,KAAK;YACf,OAAO,EAAE,IAAI,CAAC,SAAS;YACvB,UAAU,EAAE,IAAI,CAAC,YAAY;SAC9B,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEjB,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI;YAAE,EAAE,CAAC,IAAI,EAAE,CAAC;;YACxB,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IAEO,kBAAkB,CAAC,CAAmB;QAC5C,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;YACxC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACvD,CAAC;IAEO,cAAc,CAAC,CAAgB;QACrC,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC;QAE5D,IAAI,OAAO,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC3E,IAAI,OAAO,CAAC,GAAG,CAAC;YACd,IAAI,CAAC,YAAY,CAAC,IAAI;gBACpB,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;gBAC3B,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAEO,aAAa;QACnB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAErC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACpC,MAAM,UAAU,GAAG,CAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAE,CAAC;QAE1C,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;YACzC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,IAAW,CAAC,CAAC;YAErD,OAAO;gBACL,QAAQ,EAAE,KAAK,KAAK,WAAW;gBAC/B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK;gBACvB,OAAO;aACR,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QApJV,mEAAmE;QAEnE,QAAG,GAAgB,EAAE,CAAC;QAMtB,cAAS,GAAG,IAAI,GAAG,EAAyB,CAAC;QAS7C,YAAO,GAAkB,EAAE,CAAC;QAkBpB,kBAAa,GAAkB,EAAE,CAAC;QAkHxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;IAC3C,CAAC;IAED,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CACzB,IAAI,CAAC,aAAa,EAAE,CACrB,CACF,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACvE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACtE,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,cAAc,CACZ,KAAgB,EAChB,KAAa,EACb,GAAe;QAEf,OAAO,IAAI,CAAA,iBAAiB,KAAK,CAAC,KAAK;;iBAE1B,KAAK,CAAC,IAAI;;mBAER,CAAC,CAAC,KAAK,CAAC,OAAO;;;;gBAIlB,KAAK,CAAC,IAAI,EAAE,cAAc,EAAE;YAChC,KAAK,CAAC,KAAK;;iCAEU,KAAK,CAAC,OAAO;;;2DAGa,UAAU,CACzD,KAAK,CAAC,IAAI,CACX;aACE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;;;MAGxB,CAAC;IACL,CAAC;IAED,kBAAkB,CAChB,KAAkB;QAElB,OAAO,IAAI,CAAA,iBAAiB,KAAK,CAAC,KAAK;;mBAExB,CAAC,CAAC,KAAK,CAAC,OAAO;qBACb,KAAK,CAAC,QAAQ;;;gBAGnB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;YAC/B,KAAK,CAAC,KAAK;;iCAEU,KAAK,CAAC,OAAO;;YAElC,CAAC;IACX,CAAC;IAEO,UAAU,CAAC,IAAY;QAC7B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;IACtF,CAAC;IAEO,SAAS;QACf,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC;YACrB,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;;YAEjE,OAAO,IAAI,CAAA;gBACD,GAAG,CAAC,iBAAiB,CAAC;;uBAEf,CAAC;IACtB,CAAC;IAEO,aAAa;QACnB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YACzB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;;YAE3E,OAAO,IAAI,CAAA;gBACD,GAAG,CAAC,qBAAqB,CAAC;;uBAEnB,CAAC;IACtB,CAAC;IAES,gBAAgB,CAAC,KAAkB;QAC3C,OAAO,IAAI,CAAA,iBAAiB,KAAK,CAAC,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,OAAO;iCACjC,CAAC,CAAC,KAAK,CAAC,OAAO;iBAC/B,KAAK,CAAC,KAAK;iCACK,KAAK,CAAC,OAAO;;MAExC,CAAC;IACL,CAAC;IAED,sBAAsB,CAAC,MAAqB;QAC1C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,IAAI,CAAA,EAAE,CAAC,CAAC;QACzC,OAAO;YACL,IAAI,CAAA;;YAEE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;;OAEzC;YACD,IAAI,CAAA,2CAA2C;YAC/C,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SACrD,CAAC;IACJ,CAAC;IAEO,YAAY;QAClB,MAAM,UAAU,GAAqB,EAAE,CAAC;QAExC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC9B,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CACtD,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAC3B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC,MAAM;YACtB,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,IAAI,CAAA;kBACM,GAAG,CAAC,kBAAkB,CAAC;;yBAEhB,CAAC;IACxB,CAAC;IAEO,mBAAmB;QACzB,OAAwB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC,GAAG,CAC7C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAA,+BAA+B,IAAI;WAC1C,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC;UAC3B,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC;QAC3B,CACH,CAAC;IACJ,CAAC;IAEO,eAAe;QACrB,OAAO,IAAI,CAAA,kCAAkC,GAAG,CAAC,UAAU,CAAC;QACxD,IAAI,CAAC,mBAAmB,EAAE;yCACO,IAAI,CAAC,SAAS,EAAE;;WAE9C,GAAG,CAAC,OAAO,CAAC;;kBAEL,CAAC;IACjB,CAAC;IAEO,eAAe;QACrB,OAAO,IAAI,CAAA,sCAAsC,GAAG,CAAC,cAAc,CAAC;yCAC/B,IAAI,CAAC,aAAa,EAAE;;;iBAG5C,GAAG,CAAC,MAAM,CAAC;oBACR,CAAC,IAAI,CAAC,OAAO;iBAChB,IAAI,CAAC,IAAI;;;;;iBAKT,GAAG,CAAC,MAAM,CAAC;oBACR,CAAC,IAAI,CAAC,OAAO;iBAChB,IAAI,CAAC,IAAI;;;;WAIf,GAAG,CAAC,OAAO,CAAC;;kBAEL,CAAC;IACjB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA0DP,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE;6CACX,GAAG,CAAC,WAAW,CAAC;;YAEjD,IAAI,CAAC,YAAY,EAAE;;;YAGnB,GAAG,CAAC,OAAO,CAAC;;;;;;;qBAOH,IAAI,CAAC,GAAG;aAClB,KAAK,EAAE;aACP,OAAO,EAAE;aACT,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,KAAK;YACxC,GAAG,CAAC,0BAA0B,CAAC;;;;;;;qBAOlB,IAAI,CAAC,GAAG;aAClB,KAAK,EAAE;aACP,OAAO,EAAE;aACT,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,KAAK;YAC3C,GAAG,CAAC,0BAA0B,CAAC;;;;;mBAKpB,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;aAC7B,GAAG,CAAC,mBAAmB,CAAC;;;;;;;qBAOhB,IAAI,CAAC,GAAG;aAClB,KAAK,EAAE;aACP,OAAO,EAAE;aACT,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,KAAK;YACzC,GAAG,CAAC,0BAA0B,CAAC;;;;;mBAKpB,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;aAC7B,GAAG,CAAC,mBAAmB,CAAC;;;;;;;qBAOhB,IAAI,CAAC,WAAW,EAAE,KAAK;YACpC,GAAG,CAAC,0BAA0B,CAAC;;;;;mBAKpB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;aACpC,GAAG,CAAC,mBAAmB,CAAC;;;sBAGf,CAAC;IACrB,CAAC;CACF,CAAA;AA1cC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;wCACJ;AAGM;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2CAAoB;AAG/C;IADC,QAAQ,EAAE;8CACkC;AAG7C;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yCACR;AAGnB;IADC,KAAK,EAAE;gDACkB;AAG1B;IADC,KAAK,EAAE;4CACoB;AAUb;IAAd,KAAK,CAAC,MAAM,CAAC;0CAAgB;AACX;IAAlB,KAAK,CAAC,UAAU,CAAC;8CAAoB;AAChB;IAArB,KAAK,CAAC,aAAa,CAAC;iDAAuB;AAC3B;IAAhB,KAAK,CAAC,QAAQ,CAAC;4CAAoB;AACjB;IAAlB,KAAK,CAAC,UAAU,CAAC;8CAAsB;AACxB;IAAf,KAAK,CAAC,OAAO,CAAC;2CAAmB;AACjB;IAAhB,KAAK,CAAC,QAAQ,CAAC;4CAAoB;AAlCzB,WAAW;IADvB,aAAa,CAAC,cAAc,CAAC;GACjB,WAAW,CA6cvB;SA7cY,WAAW","sourcesContent":["import {\n html,\n state,\n property,\n query,\n TemplateResult,\n customElement,\n LitElement,\n} from 'lit-element';\n\nimport { get } from 'lit-translate';\n\nimport '@material/mwc-button';\nimport '@material/mwc-dialog';\nimport '@material/mwc-icon';\nimport '@material/mwc-icon-button';\nimport '@material/mwc-icon-button-toggle';\nimport '@material/mwc-list';\nimport '@material/mwc-list/mwc-list-item';\nimport '@material/mwc-snackbar';\nimport { Dialog } from '@material/mwc-dialog';\nimport { Snackbar } from '@material/mwc-snackbar';\n\nimport '../filtered-list.js';\n\nimport {\n InfoDetail,\n InfoEntry,\n IssueDetail,\n IssueEvent,\n LogEntry,\n LogEntryType,\n LogEvent,\n} from '@compas-oscd/core';\n\nimport { getFilterIcon, iconColors } from '../icons/icons.js';\n\nimport { Plugin } from '../plugin.js';\nimport { XMLEditor } from '@openscd/oscd-editor';\n\nimport { getLogText } from './history/get-log-text.js';\n\ninterface HistoryItem {\n title: string;\n message?: string;\n time: number;\n isActive: boolean;\n}\n\nconst icons = {\n info: 'info',\n warning: 'warning',\n error: 'report',\n};\n\nfunction getPluginName(src: string): string {\n\n let storedPluginsString = localStorage.getItem('plugins');\n if(!storedPluginsString) {\n storedPluginsString = '[]';\n }\n\n const storedPlugins = JSON.parse(storedPluginsString) as Plugin[];\n const wantedPlugin = storedPlugins.find((p: Plugin) => p.src === src);\n\n if(!wantedPlugin) {\n return `pluginnotfound: ${src} in ${storedPluginsString}`;\n }\n\n const name = wantedPlugin.name;\n\n if(!name){\n return `pluginhasnoname:${src}`;\n }\n\n return name;\n\n}\n\nexport enum HistoryUIKind {\n log = 'log',\n history = 'history',\n diagnostic = 'diagnostic',\n}\nexport interface HistoryUIDetail {\n show: boolean;\n kind: HistoryUIKind;\n}\n\nexport type HistoryUIEvent = CustomEvent<HistoryUIDetail>;\n\nexport function newHistoryUIEvent(\n show: boolean,\n kind: HistoryUIKind,\n eventInitDict?: CustomEventInit<Partial<HistoryUIDetail>>\n): HistoryUIEvent {\n return new CustomEvent<HistoryUIDetail>('history-dialog-ui', {\n bubbles: true,\n composed: true,\n ...eventInitDict,\n detail: {\n show,\n kind,\n ...eventInitDict?.detail,\n },\n });\n}\n\nexport interface EmptyIssuesDetail {\n pluginSrc: string;\n}\n\nexport type EmptyIssuesEvent = CustomEvent<EmptyIssuesDetail>;\n\nexport function newEmptyIssuesEvent(\n pluginSrc: string,\n eventInitDict?: CustomEventInit<Partial<EmptyIssuesDetail>>\n): EmptyIssuesEvent {\n return new CustomEvent<EmptyIssuesDetail>('empty-issues', {\n bubbles: true,\n composed: true,\n ...eventInitDict,\n detail: { pluginSrc, ...eventInitDict?.detail },\n });\n}\n\n@customElement('oscd-history')\nexport class OscdHistory extends LitElement {\n /** All [[`LogEntry`]]s received so far through [[`LogEvent`]]s. */\n @property({ type: Array })\n log: InfoEntry[] = [];\n\n /** XML Editor to apply changes to the scd */\n @property({ type: Object }) editor!: XMLEditor;\n\n @property()\n diagnoses = new Map<string, IssueDetail[]>();\n\n @property({ type: Object })\n host!: HTMLElement;\n\n @state()\n latestIssue!: IssueDetail;\n\n @state()\n history: HistoryItem[] = [];\n\n get canRedo(): boolean {\n return this.editor.future.length >= 1;\n }\n\n get canUndo(): boolean {\n return this.editor.past.length >= 1;\n }\n\n @query('#log') logUI!: Dialog;\n @query('#history') historyUI!: Dialog;\n @query('#diagnostic') diagnosticUI!: Dialog;\n @query('#error') errorUI!: Snackbar;\n @query('#warning') warningUI!: Snackbar;\n @query('#info') infoUI!: Snackbar;\n @query('#issue') issueUI!: Snackbar;\n\n private unsubscribers: (() => any)[] = [];\n\n private onIssue(de: IssueEvent): void {\n const issues = this.diagnoses.get(de.detail.validatorId);\n\n if (!issues) this.diagnoses.set(de.detail.validatorId, [de.detail]);\n else issues?.push(de.detail);\n\n this.latestIssue = de.detail;\n this.issueUI.close();\n this.issueUI.show();\n }\n\n undo(): void {\n this.editor.undo();\n }\n redo(): void {\n this.editor.redo();\n }\n\n private onReset() {\n this.log = [];\n this.diagnoses.clear();\n this.editor.past = [];\n this.editor.future = [];\n this.updateHistory();\n }\n\n private onInfo(detail: InfoDetail) {\n const entry: InfoEntry = {\n time: new Date(),\n ...detail,\n };\n\n this.log.push(entry);\n if (!this.logUI.open) {\n const ui = {\n error: this.errorUI,\n warning: this.warningUI,\n info: this.infoUI,\n }[detail.kind];\n\n ui.close();\n ui.show();\n }\n if (detail.kind == 'error') {\n this.errorUI.close(); // hack to reset timeout\n this.errorUI.show();\n }\n this.requestUpdate('log', []);\n }\n\n private onLog(le: LogEvent): void {\n switch (le.detail.kind) {\n case 'reset':\n this.onReset();\n break;\n case 'action':\n // No longer needed\n break;\n default:\n this.onInfo(le.detail);\n break;\n }\n }\n\n private historyUIHandler(e: HistoryUIEvent): void {\n const ui = {\n log: this.logUI,\n history: this.historyUI,\n diagnostic: this.diagnosticUI,\n }[e.detail.kind];\n\n if (e.detail.show) ui.show();\n else ui.close();\n }\n\n private emptyIssuesHandler(e: EmptyIssuesEvent): void {\n if (this.diagnoses.get(e.detail.pluginSrc))\n this.diagnoses.get(e.detail.pluginSrc)!.length = 0;\n }\n\n private handleKeyPress(e: KeyboardEvent): void {\n const ctrlAnd = (key: string) => e.key === key && e.ctrlKey;\n\n if (ctrlAnd('y')) this.redo();\n if (ctrlAnd('z')) this.undo();\n if (ctrlAnd('l')) this.logUI.open ? this.logUI.close() : this.logUI.show();\n if (ctrlAnd('d'))\n this.diagnosticUI.open\n ? this.diagnosticUI.close()\n : this.diagnosticUI.show();\n }\n\n private updateHistory(): void {\n const { past, future } = this.editor;\n\n const activeIndex = past.length - 1;\n const allEntries = [ ...past, ...future ];\n\n this.history = allEntries.map((e, index) => {\n const { title, message } = getLogText(e.redo as any);\n\n return {\n isActive: index === activeIndex,\n time: e.time,\n title: e.title ?? title,\n message\n };\n });\n }\n\n constructor() {\n super();\n this.undo = this.undo.bind(this);\n this.redo = this.redo.bind(this);\n this.onLog = this.onLog.bind(this);\n this.onIssue = this.onIssue.bind(this);\n this.historyUIHandler = this.historyUIHandler.bind(this);\n this.emptyIssuesHandler = this.emptyIssuesHandler.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n document.onkeydown = this.handleKeyPress;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n\n this.unsubscribers.push(\n this.editor.subscribe(() =>\n this.updateHistory()\n )\n );\n\n this.host.addEventListener('log', this.onLog);\n this.host.addEventListener('issue', this.onIssue);\n this.host.addEventListener('history-dialog-ui', this.historyUIHandler);\n this.host.addEventListener('empty-issues', this.emptyIssuesHandler);\n }\n\n disconnectedCallback(): void {\n this.unsubscribers.forEach(u => u());\n }\n\n renderLogEntry(\n entry: InfoEntry,\n index: number,\n log: LogEntry[]\n ): TemplateResult {\n return html` <abbr title=\"${entry.title}\">\n <mwc-list-item\n class=\"${entry.kind}\"\n graphic=\"icon\"\n ?twoline=${!!entry.message}\n >\n <span>\n <!-- FIXME: replace tt with mwc-chip asap -->\n <tt>${entry.time?.toLocaleString()}</tt>\n ${entry.title}</span\n >\n <span slot=\"secondary\">${entry.message}</span>\n <mwc-icon\n slot=\"graphic\"\n style=\"--mdc-theme-text-icon-on-background:var(${iconColors[\n entry.kind\n ]})\"\n >${icons[entry.kind]}</mwc-icon\n >\n </mwc-list-item></abbr\n >`;\n }\n\n renderHistoryEntry(\n entry: HistoryItem\n ): TemplateResult {\n return html` <abbr title=\"${entry.title}\">\n <mwc-list-item\n ?twoline=${!!entry.message}\n ?activated=${entry.isActive}\n >\n <span>\n <tt>${this.formatTime(entry.time)}</tt>\n ${entry.title}\n </span>\n <span slot=\"secondary\">${entry.message}</span>\n </mwc-list-item>\n </abbr>`;\n }\n\n private formatTime(time: number): string {\n const date = new Date(time);\n const hours = date.getHours();\n const minutes = date.getMinutes();\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`\n }\n\n private renderLog(): TemplateResult[] | TemplateResult {\n if (this.log.length > 0)\n return this.log.slice().reverse().map(this.renderLogEntry, this);\n else\n return html`<mwc-list-item disabled graphic=\"icon\">\n <span>${get('log.placeholder')}</span>\n <mwc-icon slot=\"graphic\">info</mwc-icon>\n </mwc-list-item>`;\n }\n\n private renderHistory(): TemplateResult[] | TemplateResult {\n if (this.history.length > 0)\n return this.history.slice().reverse().map(e => this.renderHistoryEntry(e));\n else\n return html`<mwc-list-item disabled graphic=\"icon\">\n <span>${get('history.placeholder')}</span>\n <mwc-icon slot=\"graphic\">info</mwc-icon>\n </mwc-list-item>`;\n }\n\n protected renderIssueEntry(issue: IssueDetail): TemplateResult {\n return html` <abbr title=\"${issue.title + '\\n' + issue.message}\"\n ><mwc-list-item ?twoline=${!!issue.message}>\n <span> ${issue.title}</span>\n <span slot=\"secondary\">${issue.message}</span>\n </mwc-list-item></abbr\n >`;\n }\n\n renderValidatorsIssues(issues: IssueDetail[]): TemplateResult[] {\n if (issues.length === 0) return [html``];\n return [\n html`\n <mwc-list-item noninteractive>\n ${getPluginName(issues[0].validatorId)}\n </mwc-list-item>\n `,\n html`<li divider padded role=\"separator\"></li>`,\n ...issues.map(issue => this.renderIssueEntry(issue)),\n ];\n }\n\n private renderIssues(): TemplateResult[] | TemplateResult {\n const issueItems: TemplateResult[] = [];\n\n this.diagnoses.forEach(issues => {\n this.renderValidatorsIssues(issues).forEach(issueItem =>\n issueItems.push(issueItem)\n );\n });\n\n return issueItems.length\n ? issueItems\n : html`<mwc-list-item disabled graphic=\"icon\">\n <span>${get('diag.placeholder')}</span>\n <mwc-icon slot=\"graphic\">info</mwc-icon>\n </mwc-list-item>`;\n }\n\n private renderFilterButtons() {\n return (<LogEntryType[]>Object.keys(icons)).map(\n kind => html`<mwc-icon-button-toggle id=\"${kind}filter\" on\n >${getFilterIcon(kind, false)}\n ${getFilterIcon(kind, true)}</mwc-icon-button-toggle\n >`\n );\n }\n\n private renderLogDialog(): TemplateResult {\n return html` <mwc-dialog id=\"log\" heading=\"${get('log.name')}\">\n ${this.renderFilterButtons()}\n <mwc-list id=\"content\" wrapFocus>${this.renderLog()}</mwc-list>\n <mwc-button slot=\"primaryAction\" dialogaction=\"close\"\n >${get('close')}</mwc-button\n >\n </mwc-dialog>`;\n }\n\n private renderHistoryUI(): TemplateResult {\n return html` <mwc-dialog id=\"history\" heading=\"${get('history.name')}\">\n <mwc-list id=\"content\" wrapFocus>${this.renderHistory()}</mwc-list>\n <mwc-button\n icon=\"undo\"\n label=\"${get('undo')}\"\n ?disabled=${!this.canUndo}\n @click=${this.undo}\n slot=\"secondaryAction\"\n ></mwc-button>\n <mwc-button\n icon=\"redo\"\n label=\"${get('redo')}\"\n ?disabled=${!this.canRedo}\n @click=${this.redo}\n slot=\"secondaryAction\"\n ></mwc-button>\n <mwc-button slot=\"primaryAction\" dialogaction=\"close\"\n >${get('close')}</mwc-button\n >\n </mwc-dialog>`;\n }\n\n render(): TemplateResult {\n return html`<slot></slot>\n <style>\n #log > mwc-icon-button-toggle {\n position: absolute;\n top: 8px;\n right: 14px;\n }\n #log > mwc-icon-button-toggle:nth-child(2) {\n right: 62px;\n }\n #log > mwc-icon-button-toggle:nth-child(3) {\n right: 110px;\n }\n #log > mwc-icon-button-toggle:nth-child(4) {\n right: 158px;\n }\n #content mwc-list-item.info,\n #content mwc-list-item.warning,\n #content mwc-list-item.error {\n display: none;\n }\n #infofilter[on] ~ #content mwc-list-item.info {\n display: flex;\n }\n #warningfilter[on] ~ #content mwc-list-item.warning {\n display: flex;\n }\n #errorfilter[on] ~ #content mwc-list-item.error {\n display: flex;\n }\n\n #infofilter[on] {\n color: var(--cyan);\n }\n\n #warningfilter[on] {\n color: var(--yellow);\n }\n\n #errorfilter[on] {\n color: var(--red);\n }\n\n #actionfilter[on] {\n color: var(--blue);\n }\n\n #log,\n #history {\n --mdc-dialog-min-width: 92vw;\n }\n\n #log > #filterContainer {\n position: absolute;\n top: 14px;\n right: 14px;\n }\n </style>\n ${this.renderLogDialog()} ${this.renderHistoryUI()}\n <mwc-dialog id=\"diagnostic\" heading=\"${get('diag.name')}\">\n <filtered-list id=\"content\" wrapFocus>\n ${this.renderIssues()}\n </filtered-list>\n <mwc-button slot=\"primaryAction\" dialogaction=\"close\">\n ${get('close')}\n </mwc-button>\n </mwc-dialog>\n\n <mwc-snackbar\n id=\"info\"\n timeoutMs=\"4000\"\n labelText=\"${this.log\n .slice()\n .reverse()\n .find(le => le.kind === 'info')?.title ??\n get('log.snackbar.placeholder')}\"\n >\n <mwc-icon-button icon=\"close\" slot=\"dismiss\"></mwc-icon-button>\n </mwc-snackbar>\n <mwc-snackbar\n id=\"warning\"\n timeoutMs=\"6000\"\n labelText=\"${this.log\n .slice()\n .reverse()\n .find(le => le.kind === 'warning')?.title ??\n get('log.snackbar.placeholder')}\"\n >\n <mwc-button\n slot=\"action\"\n icon=\"history\"\n @click=${() => this.logUI.show()}\n >${get('log.snackbar.show')}</mwc-button\n >\n <mwc-icon-button icon=\"close\" slot=\"dismiss\"></mwc-icon-button>\n </mwc-snackbar>\n <mwc-snackbar\n id=\"error\"\n timeoutMs=\"10000\"\n labelText=\"${this.log\n .slice()\n .reverse()\n .find(le => le.kind === 'error')?.title ??\n get('log.snackbar.placeholder')}\"\n >\n <mwc-button\n slot=\"action\"\n icon=\"history\"\n @click=${() => this.logUI.show()}\n >${get('log.snackbar.show')}</mwc-button\n >\n <mwc-icon-button icon=\"close\" slot=\"dismiss\"></mwc-icon-button>\n </mwc-snackbar>\n <mwc-snackbar\n id=\"issue\"\n timeoutMs=\"10000\"\n labelText=\"${this.latestIssue?.title ??\n get('log.snackbar.placeholder')}\"\n >\n <mwc-button\n slot=\"action\"\n icon=\"rule\"\n @click=${() => this.diagnosticUI.show()}\n >${get('log.snackbar.show')}</mwc-button\n >\n <mwc-icon-button icon=\"close\" slot=\"dismiss\"></mwc-icon-button>\n </mwc-snackbar>`;\n }\n}\n\ndeclare global {\n interface ElementEventMap {\n 'history-dialog-ui': CustomEvent<HistoryUIDetail>;\n 'empty-issues': CustomEvent<EmptyIssuesDetail>;\n }\n}\n"]}
1
+ {"version":3,"file":"History.js","sourceRoot":"","sources":["../../src/addons/History.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n html,\n state,\n property,\n query,\n TemplateResult,\n customElement,\n LitElement,\n} from 'lit-element';\n\nimport { get } from 'lit-translate';\n\nimport '@material/mwc-button';\nimport '@material/mwc-dialog';\nimport '@material/mwc-icon';\nimport '@material/mwc-icon-button';\nimport '@material/mwc-icon-button-toggle';\nimport '@material/mwc-list';\nimport '@material/mwc-list/mwc-list-item';\nimport '@material/mwc-snackbar';\nimport { Dialog } from '@material/mwc-dialog';\nimport { Snackbar } from '@material/mwc-snackbar';\n\nimport '../filtered-list.js';\n\nimport {\n InfoDetail,\n InfoEntry,\n IssueDetail,\n IssueEvent,\n LogEntry,\n LogEntryType,\n LogEvent,\n} from '@compas-oscd/core';\n\nimport { getFilterIcon, iconColors } from '../icons/icons.js';\n\nimport { Plugin } from '../plugin.js';\nimport { XMLEditor } from '@openscd/oscd-editor';\n\nimport { getLogText } from './history/get-log-text.js';\n\ninterface HistoryItem {\n title: string;\n message?: string;\n time: number;\n isActive: boolean;\n}\n\nconst icons = {\n info: 'info',\n warning: 'warning',\n error: 'report',\n};\n\nfunction getPluginName(src: string): string {\n\n let storedPluginsString = localStorage.getItem('plugins');\n if(!storedPluginsString) {\n storedPluginsString = '[]';\n }\n\n const storedPlugins = JSON.parse(storedPluginsString) as Plugin[];\n const wantedPlugin = storedPlugins.find((p: Plugin) => p.src === src);\n\n if(!wantedPlugin) {\n return `pluginnotfound: ${src} in ${storedPluginsString}`;\n }\n\n const name = wantedPlugin.name;\n\n if(!name){\n return `pluginhasnoname:${src}`;\n }\n\n return name;\n\n}\n\nexport enum HistoryUIKind {\n log = 'log',\n history = 'history',\n diagnostic = 'diagnostic',\n}\nexport interface HistoryUIDetail {\n show: boolean;\n kind: HistoryUIKind;\n}\n\nexport type HistoryUIEvent = CustomEvent<HistoryUIDetail>;\n\nexport function newHistoryUIEvent(\n show: boolean,\n kind: HistoryUIKind,\n eventInitDict?: CustomEventInit<Partial<HistoryUIDetail>>\n): HistoryUIEvent {\n return new CustomEvent<HistoryUIDetail>('history-dialog-ui', {\n bubbles: true,\n composed: true,\n ...eventInitDict,\n detail: {\n show,\n kind,\n ...eventInitDict?.detail,\n },\n });\n}\n\nexport interface EmptyIssuesDetail {\n pluginSrc: string;\n}\n\nexport type EmptyIssuesEvent = CustomEvent<EmptyIssuesDetail>;\n\nexport function newEmptyIssuesEvent(\n pluginSrc: string,\n eventInitDict?: CustomEventInit<Partial<EmptyIssuesDetail>>\n): EmptyIssuesEvent {\n return new CustomEvent<EmptyIssuesDetail>('empty-issues', {\n bubbles: true,\n composed: true,\n ...eventInitDict,\n detail: { pluginSrc, ...eventInitDict?.detail },\n });\n}\n\n@customElement('oscd-history')\nexport class OscdHistory extends LitElement {\n /** All [[`LogEntry`]]s received so far through [[`LogEvent`]]s. */\n @property({ type: Array })\n log: InfoEntry[] = [];\n\n /** XML Editor to apply changes to the scd */\n @property({ type: Object }) editor!: XMLEditor;\n\n @property()\n diagnoses = new Map<string, IssueDetail[]>();\n\n @property({ type: Object })\n host!: HTMLElement;\n\n @state()\n latestIssue!: IssueDetail;\n\n @state()\n history: HistoryItem[] = [];\n\n @state()\n validationTimes = new Map<string, Date>();\n\n get canRedo(): boolean {\n return this.editor.future.length >= 1;\n }\n\n get canUndo(): boolean {\n return this.editor.past.length >= 1;\n }\n\n @query('#log') logUI!: Dialog;\n @query('#history') historyUI!: Dialog;\n @query('#diagnostic') diagnosticUI!: Dialog;\n @query('#error') errorUI!: Snackbar;\n @query('#warning') warningUI!: Snackbar;\n @query('#info') infoUI!: Snackbar;\n @query('#issue') issueUI!: Snackbar;\n\n private unsubscribers: (() => any)[] = [];\n\n private onIssue(de: IssueEvent): void {\n const issues = this.diagnoses.get(de.detail.validatorId);\n\n if (!issues) this.diagnoses.set(de.detail.validatorId, [de.detail]);\n else issues?.push(de.detail);\n\n this.validationTimes.set(de.detail.validatorId, new Date());\n\n this.latestIssue = de.detail;\n this.issueUI.close();\n this.issueUI.show();\n }\n\n undo(): void {\n this.editor.undo();\n }\n redo(): void {\n this.editor.redo();\n }\n\n private onReset() {\n this.log = [];\n this.diagnoses.clear();\n this.editor.past = [];\n this.editor.future = [];\n this.updateHistory();\n }\n\n private onInfo(detail: InfoDetail) {\n const entry: InfoEntry = {\n time: new Date(),\n ...detail,\n };\n\n this.log.push(entry);\n if (!this.logUI.open) {\n const ui = {\n error: this.errorUI,\n warning: this.warningUI,\n info: this.infoUI,\n }[detail.kind];\n\n ui.close();\n ui.show();\n }\n if (detail.kind == 'error') {\n this.errorUI.close(); // hack to reset timeout\n this.errorUI.show();\n }\n this.requestUpdate('log', []);\n }\n\n private onLog(le: LogEvent): void {\n switch (le.detail.kind) {\n case 'reset':\n this.onReset();\n break;\n case 'action':\n // No longer needed\n break;\n default:\n this.onInfo(le.detail);\n break;\n }\n }\n\n private historyUIHandler(e: HistoryUIEvent): void {\n const ui = {\n log: this.logUI,\n history: this.historyUI,\n diagnostic: this.diagnosticUI,\n }[e.detail.kind];\n\n if (e.detail.show) ui.show();\n else ui.close();\n }\n\n private emptyIssuesHandler(e: EmptyIssuesEvent): void {\n if (this.diagnoses.get(e.detail.pluginSrc))\n this.diagnoses.get(e.detail.pluginSrc)!.length = 0;\n }\n\n private handleKeyPress(e: KeyboardEvent): void {\n const ctrlAnd = (key: string) => e.key === key && e.ctrlKey;\n\n if (ctrlAnd('y')) this.redo();\n if (ctrlAnd('z')) this.undo();\n if (ctrlAnd('l')) this.logUI.open ? this.logUI.close() : this.logUI.show();\n if (ctrlAnd('d'))\n this.diagnosticUI.open\n ? this.diagnosticUI.close()\n : this.diagnosticUI.show();\n }\n\n private updateHistory(): void {\n const { past, future } = this.editor;\n\n const activeIndex = past.length - 1;\n const allEntries = [ ...past, ...future ];\n\n this.history = allEntries.map((e, index) => {\n const { title, message } = getLogText(e.redo as any);\n\n return {\n isActive: index === activeIndex,\n time: e.time,\n title: e.title ?? title,\n message\n };\n });\n }\n\n constructor() {\n super();\n this.undo = this.undo.bind(this);\n this.redo = this.redo.bind(this);\n this.onLog = this.onLog.bind(this);\n this.onIssue = this.onIssue.bind(this);\n this.historyUIHandler = this.historyUIHandler.bind(this);\n this.emptyIssuesHandler = this.emptyIssuesHandler.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n document.onkeydown = this.handleKeyPress;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n\n this.unsubscribers.push(\n this.editor.subscribe(() =>\n this.updateHistory()\n )\n );\n\n this.host.addEventListener('log', this.onLog);\n this.host.addEventListener('issue', this.onIssue);\n this.host.addEventListener('history-dialog-ui', this.historyUIHandler);\n this.host.addEventListener('empty-issues', this.emptyIssuesHandler);\n }\n\n disconnectedCallback(): void {\n this.unsubscribers.forEach(u => u());\n }\n\n renderLogEntry(\n entry: InfoEntry,\n index: number,\n log: LogEntry[]\n ): TemplateResult {\n return html` <abbr title=\"${entry.title}\">\n <mwc-list-item\n class=\"${entry.kind}\"\n graphic=\"icon\"\n ?twoline=${!!entry.message}\n >\n <span class=\"selectable-text\">\n <!-- FIXME: replace tt with mwc-chip asap -->\n <tt>${entry.time?.toLocaleString()}</tt>\n ${entry.title}</span\n >\n <span class=\"selectable-text\" slot=\"secondary\">${entry.message}</span>\n <mwc-icon\n slot=\"graphic\"\n style=\"--mdc-theme-text-icon-on-background:var(${iconColors[\n entry.kind\n ]})\"\n >${icons[entry.kind]}</mwc-icon\n >\n </mwc-list-item></abbr\n >`;\n }\n\n renderHistoryEntry(\n entry: HistoryItem\n ): TemplateResult {\n return html` <abbr title=\"${entry.title}\">\n <mwc-list-item\n ?twoline=${!!entry.message}\n ?activated=${entry.isActive}\n >\n <span>\n <tt>${this.formatTime(entry.time)}</tt>\n ${entry.title}\n </span>\n <span slot=\"secondary\">${entry.message}</span>\n </mwc-list-item>\n </abbr>`;\n }\n\n private formatTime(time: number): string {\n const date = new Date(time);\n const hours = date.getHours();\n const minutes = date.getMinutes();\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`\n }\n\n private formatValidationTime(time: number): string {\n const date = new Date(time);\n const dateStr = date.toLocaleDateString();\n const timeStr = date.toLocaleTimeString();\n return `${dateStr} ${timeStr}`;\n }\n\n private renderLog(): TemplateResult[] | TemplateResult {\n if (this.log.length > 0)\n return this.log.slice().reverse().map(this.renderLogEntry, this);\n else\n return html`<mwc-list-item disabled graphic=\"icon\">\n <span>${get('log.placeholder')}</span>\n <mwc-icon slot=\"graphic\">info</mwc-icon>\n </mwc-list-item>`;\n }\n\n private renderHistory(): TemplateResult[] | TemplateResult {\n if (this.history.length > 0)\n return this.history.slice().reverse().map(e => this.renderHistoryEntry(e));\n else\n return html`<mwc-list-item disabled graphic=\"icon\">\n <span>${get('history.placeholder')}</span>\n <mwc-icon slot=\"graphic\">info</mwc-icon>\n </mwc-list-item>`;\n }\n\n protected renderIssueEntry(issue: IssueDetail): TemplateResult {\n return html` <abbr title=\"${issue.title + '\\n' + issue.message}\"\n ><mwc-list-item noninteractive ?twoline=${!!issue.message}>\n <span class=\"selectable-text\"> ${issue.title}</span>\n <span class=\"selectable-text\" slot=\"secondary\">${issue.message}</span>\n </mwc-list-item></abbr\n >`;\n }\n\n renderValidatorsIssues(issues: IssueDetail[]): TemplateResult[] {\n if (issues.length === 0) return [html``];\n\n const lastValidated = this.validationTimes.get(issues[0].validatorId);\n\n return [\n html`\n <mwc-list-item noninteractive ?twoline=${!!lastValidated}>\n <span>${getPluginName(issues[0].validatorId)}</span>\n ${lastValidated\n ? html`<span slot=\"secondary\" class=\"validation-time\"\n >${get('diag.lastValidated', {\n time: this.formatValidationTime(lastValidated.getTime()),\n })}</span\n >`\n : ''}\n </span>\n </mwc-list-item>\n `,\n html`<li divider padded role=\"separator\"></li>`,\n ...issues.map(issue => this.renderIssueEntry(issue)),\n ];\n }\n\n private renderIssues(): TemplateResult[] | TemplateResult {\n const issueItems: TemplateResult[] = [];\n\n this.diagnoses.forEach(issues => {\n this.renderValidatorsIssues(issues).forEach(issueItem =>\n issueItems.push(issueItem)\n );\n });\n\n return issueItems.length\n ? issueItems\n : html`<mwc-list-item disabled graphic=\"icon\">\n <span>${get('diag.placeholder')}</span>\n <mwc-icon slot=\"graphic\">info</mwc-icon>\n </mwc-list-item>`;\n }\n\n private renderFilterButtons() {\n return (<LogEntryType[]>Object.keys(icons)).map(\n kind => html`<mwc-icon-button-toggle id=\"${kind}filter\" on\n >${getFilterIcon(kind, false)}\n ${getFilterIcon(kind, true)}</mwc-icon-button-toggle\n >`\n );\n }\n\n private renderLogDialog(): TemplateResult {\n return html` <mwc-dialog id=\"log\" heading=\"${get('log.name')}\">\n ${this.renderFilterButtons()}\n <mwc-list id=\"content\" wrapFocus>${this.renderLog()}</mwc-list>\n <mwc-button slot=\"primaryAction\" dialogaction=\"close\"\n >${get('close')}</mwc-button\n >\n </mwc-dialog>`;\n }\n\n private renderHistoryUI(): TemplateResult {\n return html` <mwc-dialog id=\"history\" heading=\"${get('history.name')}\">\n <mwc-list id=\"content\" wrapFocus>${this.renderHistory()}</mwc-list>\n <mwc-button\n icon=\"undo\"\n label=\"${get('undo')}\"\n ?disabled=${!this.canUndo}\n @click=${this.undo}\n slot=\"secondaryAction\"\n ></mwc-button>\n <mwc-button\n icon=\"redo\"\n label=\"${get('redo')}\"\n ?disabled=${!this.canRedo}\n @click=${this.redo}\n slot=\"secondaryAction\"\n ></mwc-button>\n <mwc-button slot=\"primaryAction\" dialogaction=\"close\"\n >${get('close')}</mwc-button\n >\n </mwc-dialog>`;\n }\n\n render(): TemplateResult {\n return html`<slot></slot>\n <style>\n .selectable-text {\n user-select: text;\n -webkit-user-select: text;\n cursor: text;\n }\n \n .validation-time {\n color: var(--base1);\n font-size: 0.85em;\n white-space: nowrap;\n }\n \n #log > mwc-icon-button-toggle {\n position: absolute;\n top: 8px;\n right: 14px;\n }\n #log > mwc-icon-button-toggle:nth-child(2) {\n right: 62px;\n }\n #log > mwc-icon-button-toggle:nth-child(3) {\n right: 110px;\n }\n #log > mwc-icon-button-toggle:nth-child(4) {\n right: 158px;\n }\n #content mwc-list-item.info,\n #content mwc-list-item.warning,\n #content mwc-list-item.error {\n display: none;\n }\n #infofilter[on] ~ #content mwc-list-item.info {\n display: flex;\n }\n #warningfilter[on] ~ #content mwc-list-item.warning {\n display: flex;\n }\n #errorfilter[on] ~ #content mwc-list-item.error {\n display: flex;\n }\n\n #infofilter[on] {\n color: var(--cyan);\n }\n\n #warningfilter[on] {\n color: var(--yellow);\n }\n\n #errorfilter[on] {\n color: var(--red);\n }\n\n #actionfilter[on] {\n color: var(--blue);\n }\n\n #log,\n #history {\n --mdc-dialog-min-width: 92vw;\n }\n\n #log > #filterContainer {\n position: absolute;\n top: 14px;\n right: 14px;\n }\n </style>\n ${this.renderLogDialog()} ${this.renderHistoryUI()}\n <mwc-dialog id=\"diagnostic\" heading=\"${get('diag.name')}\">\n <filtered-list id=\"content\" wrapFocus>\n ${this.renderIssues()}\n </filtered-list>\n <mwc-button slot=\"primaryAction\" dialogaction=\"close\">\n ${get('close')}\n </mwc-button>\n </mwc-dialog>\n\n <mwc-snackbar\n id=\"info\"\n timeoutMs=\"4000\"\n labelText=\"${this.log\n .slice()\n .reverse()\n .find(le => le.kind === 'info')?.title ??\n get('log.snackbar.placeholder')}\"\n >\n <mwc-icon-button icon=\"close\" slot=\"dismiss\"></mwc-icon-button>\n </mwc-snackbar>\n <mwc-snackbar\n id=\"warning\"\n timeoutMs=\"6000\"\n labelText=\"${this.log\n .slice()\n .reverse()\n .find(le => le.kind === 'warning')?.title ??\n get('log.snackbar.placeholder')}\"\n >\n <mwc-button\n slot=\"action\"\n icon=\"history\"\n @click=${() => this.logUI.show()}\n >${get('log.snackbar.show')}</mwc-button\n >\n <mwc-icon-button icon=\"close\" slot=\"dismiss\"></mwc-icon-button>\n </mwc-snackbar>\n <mwc-snackbar\n id=\"error\"\n timeoutMs=\"10000\"\n labelText=\"${this.log\n .slice()\n .reverse()\n .find(le => le.kind === 'error')?.title ??\n get('log.snackbar.placeholder')}\"\n >\n <mwc-button\n slot=\"action\"\n icon=\"history\"\n @click=${() => this.logUI.show()}\n >${get('log.snackbar.show')}</mwc-button\n >\n <mwc-icon-button icon=\"close\" slot=\"dismiss\"></mwc-icon-button>\n </mwc-snackbar>\n <mwc-snackbar\n id=\"issue\"\n timeoutMs=\"10000\"\n labelText=\"${this.latestIssue?.title ??\n get('log.snackbar.placeholder')}\"\n >\n <mwc-button\n slot=\"action\"\n icon=\"rule\"\n @click=${() => this.diagnosticUI.show()}\n >${get('log.snackbar.show')}</mwc-button\n >\n <mwc-icon-button icon=\"close\" slot=\"dismiss\"></mwc-icon-button>\n </mwc-snackbar>`;\n }\n}\n\ndeclare global {\n interface ElementEventMap {\n 'history-dialog-ui': CustomEvent<HistoryUIDetail>;\n 'empty-issues': CustomEvent<EmptyIssuesDetail>;\n }\n}\n"]}
@@ -248,6 +248,7 @@ let OscdLayout = class OscdLayout extends LitElement {
248
248
  if (!menuContentElement) {
249
249
  return;
250
250
  }
251
+ this.dispatchEvent(newEmptyIssuesEvent(src));
251
252
  return menuContentElement.validate();
252
253
  })).then();
253
254
  this.dispatchEvent(newPendingStateEvent(this.validated));
@@ -1 +1 @@
1
- {"version":3,"file":"Layout.js","sourceRoot":"","sources":["../../src/addons/Layout.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n customElement,\n html,\n LitElement,\n property,\n state,\n TemplateResult,\n query,\n css,\n} from 'lit-element';\nimport { get } from 'lit-translate';\nimport { classMap } from 'lit-html/directives/class-map.js';\nimport { newPendingStateEvent } from '@compas-oscd/core';\nimport { newSettingsUIEvent } from '@compas-oscd/core';\nimport { OscdApi } from '@compas-oscd/core';\nimport { XMLEditor } from '@openscd/oscd-editor';\nimport {\n MenuItem,\n Validator,\n MenuPlugin,\n pluginIcons,\n OpenSCD\n} from '../open-scd.js';\n\nimport {\n Plugin,\n ContentContext,\n PluginKind\n} from \"../plugin.js\"\n\nimport {\n HistoryUIKind,\n newEmptyIssuesEvent,\n newHistoryUIEvent\n} from './History.js';\nimport type { Drawer } from '@material/mwc-drawer';\nimport type { ActionDetail } from '@material/mwc-list';\nimport { List } from '@material/mwc-list';\nimport type { ListItem } from '@material/mwc-list/mwc-list-item';\n\nimport '@material/mwc-drawer';\nimport '@material/mwc-list';\nimport '@material/mwc-dialog';\nimport '@material/mwc-switch';\nimport '@material/mwc-select';\nimport '@material/mwc-textfield';\nimport { pluginTag } from '../plugin-tag.js';\n\nimport {OscdPluginManager} from \"./plugin-manager/plugin-manager.js\";\nimport \"./plugin-manager/plugin-manager.js\";\nimport {OscdCustomPluginDialog} from \"./plugin-manager/custom-plugin-dialog.js\";\nimport \"./plugin-manager/custom-plugin-dialog.js\";\nimport \"./menu-tabs/menu-tabs.js\";\nimport { TabActivatedEvent } from \"./menu-tabs/menu-tabs.js\";\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\ninterface RenderAblePlugin {\n src?: string;\n kind: string;\n content?: ContentContext;\n}\n\n@customElement('oscd-layout')\nexport class OscdLayout extends LitElement {\n\n /** The `XMLDocument` to be edited */\n @property({ attribute: false }) doc: XMLDocument | null = null;\n /** The name of the current [[`doc`]] */\n @property({ type: String }) docName = '';\n /** Index of the last [[`EditorAction`]] applied. */\n @property({ type: Number }) editCount = -1;\n\n /** XML Editor to apply changes to the scd */\n @property({ type: Object }) editor!: XMLEditor;\n\n /** The plugins to render the layout. */\n @property({ type: Array }) plugins: Plugin[] = [];\n\n /** The open-scd host element */\n @property({ type: Object }) host!: OpenSCD;\n\n @state() validated: Promise<void> = Promise.resolve();\n @state() shouldValidate = false;\n @state() activeEditor: Plugin | undefined = this.calcActiveEditors()[0];\n\n @query('#menu') menuUI!: Drawer;\n @query('#menuContent') menuContent!: List;\n @query('#pluginManager') pluginUI!: OscdPluginManager;\n @query('#pluginList') pluginList!: List;\n @query('#pluginAdd') pluginDownloadUI!: OscdCustomPluginDialog;\n\n\n render(): TemplateResult {\n return html`\n <div\n @open-plugin-download=${() => this.pluginDownloadUI.show()}\n @oscd-activate-editor=${this.handleActivateEditorByEvent}\n @oscd-run-menu=${this.handleRunMenuByEvent}\n >\n <slot></slot>\n ${this.renderHeader()} ${this.renderAside()} ${this.renderMenuContent()}\n ${this.renderContent()} ${this.renderLanding()} ${this.renderPlugging()}\n </div>\n `;\n }\n\n protected componentHtml(strings: TemplateStringsArray, ...values: unknown[]): TemplateResult {\n return html(strings, ...values);\n }\n\n\n private renderPlugging(): TemplateResult {\n return html` ${this.renderPluginUI()} ${this.renderDownloadUI()} `;\n }\n\n private getMenuContent(src: string) {\n const tag = pluginTag(src);\n return this.menuContent.querySelector(tag);\n }\n\n /** Renders the \"Add Custom Plug-in\" UI*/\n protected renderDownloadUI(): TemplateResult {\n return html`\n <oscd-custom-plugin-dialog id=\"pluginAdd\"></oscd-custom-plugin-dialog>\n `\n }\n\n /**\n * Renders the plug-in management UI (turning plug-ins on/off)\n */\n protected renderPluginUI(): TemplateResult {\n return html`\n <oscd-plugin-manager id=\"pluginManager\" .plugins=${this.plugins}></oscd-plugin-manager>\n `\n }\n\n // Computed properties\n\n get validators(): Plugin[] {\n return this.plugins.filter(\n plugin => plugin.active && plugin.kind === 'validator'\n );\n }\n get menuEntries(): Plugin[] {\n return this.plugins.filter(\n plugin => plugin.active && plugin.kind === 'menu'\n );\n }\n get topMenu(): Plugin[] {\n return this.menuEntries.filter(plugin => plugin.position === 'top');\n }\n get middleMenu(): Plugin[] {\n return this.menuEntries.filter(plugin => plugin.position === 'middle');\n }\n get bottomMenu(): Plugin[] {\n return this.menuEntries.filter(plugin => plugin.position === 'bottom');\n }\n\n\n get menu(): (MenuItem | 'divider')[] {\n\n const topMenu = this.generateMenu(this.topMenu, 'top');\n const middleMenu = this.generateMenu(this.middleMenu, 'middle');\n const bottomMenu = this.generateMenu(this.bottomMenu, 'bottom');\n const validators = this.generateValidatorMenus(this.validators);\n const canUndo = this.editor.past.length > 0;\n const canRedo = this.editor.future.length > 0;\n\n if (middleMenu.length > 0) middleMenu.push('divider');\n if (bottomMenu.length > 0) bottomMenu.push('divider');\n\n return [\n 'divider',\n ...topMenu,\n 'divider',\n {\n icon: 'undo',\n name: 'undo',\n actionItem: true,\n action: (): void => {\n this.editor.undo();\n },\n disabled: (): boolean => !canUndo,\n kind: 'static',\n content: { tag: '' },\n },\n {\n icon: 'redo',\n name: 'redo',\n actionItem: true,\n action: (): void => {\n this.editor.redo();\n },\n disabled: (): boolean => !canRedo,\n kind: 'static',\n content: { tag: '' },\n },\n ...validators,\n {\n icon: 'list',\n name: 'menu.viewLog',\n actionItem: true,\n action: (): void => {\n this.dispatchEvent(newHistoryUIEvent(true, HistoryUIKind.log));\n },\n kind: 'static',\n content: { tag: '' },\n },\n {\n icon: 'history',\n name: 'menu.viewHistory',\n actionItem: true,\n action: (): void => {\n this.dispatchEvent(newHistoryUIEvent(true, HistoryUIKind.history));\n },\n kind: 'static',\n content: { tag: '' },\n },\n {\n icon: 'rule',\n name: 'menu.viewDiag',\n actionItem: true,\n action: (): void => {\n this.dispatchEvent(newHistoryUIEvent(true, HistoryUIKind.diagnostic));\n },\n kind: 'static',\n content: { tag: '' },\n },\n 'divider',\n ...middleMenu,\n {\n icon: 'settings',\n name: 'settings.title',\n action: (): void => {\n this.dispatchEvent(newSettingsUIEvent(true));\n },\n kind: 'static',\n content: { tag: '' },\n },\n ...bottomMenu,\n {\n icon: 'extension',\n name: 'plugins.heading',\n action: (): void => this.pluginUI.show(),\n kind: 'static',\n content: { tag: '' },\n },\n ];\n }\n\n get editors(): Plugin[] {\n return this.plugins.filter(\n plugin => plugin.active && plugin.kind === 'editor'\n );\n }\n\n // Keyboard Shortcuts\n private handleKeyPress(e: KeyboardEvent): void {\n // currently we only handley key shortcuts when users press ctrl\n if(!e.ctrlKey){ return }\n\n const keyFunctionMap: {[key:string]: () => void} = {\n 'm': () => this.menuUI.open = !this.menuUI.open,\n 'o': () => this.menuUI.querySelector<ListItem>('mwc-list-item[iconid=\"folder_open\"]')?.click(),\n 'O': () => this.menuUI.querySelector<ListItem>('mwc-list-item[iconid=\"create_new_folder\"]')?.click(),\n 's': () => this.menuUI.querySelector<ListItem>('mwc-list-item[iconid=\"save\"]')?.click(),\n 'P': () => this.pluginUI.show(),\n }\n\n const fn = keyFunctionMap[e.key];\n if(!fn){ return; }\n\n e.preventDefault();\n fn();\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.host.addEventListener('close-drawer', async () => {\n this.menuUI.open = false;\n });\n this.host.addEventListener('validate', async () => {\n this.shouldValidate = true;\n await this.validated;\n\n if (!this.shouldValidate){ return; }\n\n this.shouldValidate = false;\n\n this.validated = Promise.allSettled(\n this.menuUI\n .querySelector('mwc-list')!\n .items.filter(item => item.className === 'validator')\n .map(item => {\n const src = item.dataset.src ?? '';\n const menuContentElement = this.getMenuContent(src);\n\n if (!menuContentElement) {\n return;\n }\n\n return (menuContentElement as unknown as Validator).validate()\n })\n ).then();\n this.dispatchEvent(newPendingStateEvent(this.validated));\n });\n this.handleKeyPress = this.handleKeyPress.bind(this);\n document.onkeydown = this.handleKeyPress;\n\n document.addEventListener(\"open-plugin-download\", () => {\n this.pluginDownloadUI.show();\n });\n }\n\n\n private generateMenu(plugins:Plugin[], kind: 'top' | 'middle' | 'bottom'): (MenuItem | 'divider')[]{\n return plugins.map(plugin => {\n return {\n icon: plugin.icon || pluginIcons['menu'],\n name: plugin.name,\n src: plugin.src,\n action: ae => {\n const menuContentElement = this.getMenuContent(plugin.src);\n if (!menuContentElement) {\n return;\n }\n\n this.dispatchEvent(newPendingStateEvent((menuContentElement as unknown as MenuPlugin).run()))\n },\n disabled: (): boolean => plugin.requireDoc! && this.doc === null,\n content: plugin.content ?? { tag: '' },\n kind: kind,\n }\n })\n }\n\n private generateValidatorMenus(plugins: Plugin[]): (MenuItem | 'divider')[] {\n return plugins.map(plugin =>{\n return {\n icon: plugin.icon || pluginIcons['validator'],\n name: plugin.name,\n src: plugin.src,\n action: ae => {\n this.dispatchEvent(newEmptyIssuesEvent(plugin.src));\n\n const menuContentElement = this.getMenuContent(plugin.src);\n if (!menuContentElement) {\n return;\n }\n\n this.dispatchEvent(newPendingStateEvent((menuContentElement as unknown as Validator).validate()))\n },\n disabled: (): boolean => this.doc === null,\n content: plugin.content ?? { tag: '' },\n kind: 'validator',\n }\n });\n }\n\n private renderMenuItem(me: MenuItem | 'divider'): TemplateResult {\n const isDivider = me === 'divider';\n const hasActionItem = me !== 'divider' && me.actionItem;\n\n if (isDivider) { return html`<li divider padded role=\"separator\"></li>`; }\n if (hasActionItem){ return html``; }\n return html`\n <mwc-list-item\n class=\"${me.kind}\"\n iconid=\"${me.icon}\"\n graphic=\"icon\"\n data-name=\"${me.name}\"\n data-src=\"${me.src ?? ''}\"\n .disabled=${me.disabled?.() || !me.action}\n ><mwc-icon slot=\"graphic\">${me.icon}</mwc-icon>\n <span>${get(me.name)}</span>\n ${me.hint\n ? html`<span slot=\"secondary\"><tt>${me.hint}</tt></span>`\n : ''}\n </mwc-list-item>\n `;\n }\n\n protected renderActionItem(me: MenuItem | 'divider'): TemplateResult {\n if(me === 'divider' || !me.actionItem){ return html`` }\n\n return html`\n <mwc-icon-button\n slot=\"actionItems\"\n icon=\"${me.icon}\"\n label=\"${me.name}\"\n ?disabled=${me.disabled?.() || !me.action}\n @click=${me.action}\n ></mwc-icon-button>`;\n }\n\n private renderEditorTab({ name, icon }: Plugin): TemplateResult {\n return html`<mwc-tab label=${name} icon=${icon || 'edit'}> </mwc-tab>`;\n }\n\n /** Renders top bar which features icon buttons for undo, redo, log, scl history and diagnostics*/\n protected renderHeader(): TemplateResult {\n return html`<mwc-top-app-bar-fixed>\n <mwc-icon-button\n icon=\"menu\"\n label=\"Menu\"\n slot=\"navigationIcon\"\n @click=${() => (this.menuUI.open = true)}\n ></mwc-icon-button>\n ${this.renderTitle()}\n ${this.renderActionItems()}\n </mwc-top-app-bar-fixed>`;\n }\n\n /**\n * Renders the title section in the top bar\n * Make sure to use slot=\"title\" for the returned template\n */\n protected renderTitle(): TemplateResult {\n return html`<div slot=\"title\" id=\"title\">${this.docName}</div>`;\n }\n\n /**\n * Renders the action items for the top bar\n * Make sure to use slot=\"actionItems\" for each element\n */\n protected renderActionItems(): TemplateResult {\n return html`${this.menu.map(this.renderActionItem)}`;\n }\n\n protected renderMenuContent(): TemplateResult {\n return html`\n <div id=\"menuContent\">\n ${\n this.menu\n .filter(p => (p as MenuItem).content)\n .map(p => this.renderPluginContent((p as MenuItem)))\n }\n </div>\n `;\n }\n\n /**\n * Renders a drawer toolbar featuring the scl filename, enabled menu plugins,\n * settings, help, scl history and plug-ins management\n */\n protected renderAside(): TemplateResult {\n\n return html`\n <mwc-drawer class=\"mdc-theme--surface\" hasheader type=\"modal\" id=\"menu\">\n <span slot=\"title\">${get('menu.title')}</span>\n ${renderTitle(this.docName)}\n <mwc-list\n wrapFocus\n @action=${makeListAction(this.menu)}\n >\n ${this.menu.map(this.renderMenuItem)}\n </mwc-list>\n </mwc-drawer>\n `;\n\n function renderTitle(docName?: string){\n if(!docName) return html``;\n\n return html`<span slot=\"subtitle\">${docName}</span>`;\n }\n\n function makeListAction(menuItems : (MenuItem|'divider')[]){\n return function listAction(ae: CustomEvent<ActionDetail>){\n //FIXME: dirty hack to be fixed in open-scd-core\n // if clause not necessary when oscd... components in open-scd not list\n if (ae.target instanceof List)\n (<MenuItem>(\n menuItems.filter(\n item => item !== 'divider' && !item.actionItem\n )[ae.detail.index]\n ))?.action?.(ae);\n }\n }\n\n\n }\n\n private calcActiveEditors(){\n const hasActiveDoc = Boolean(this.doc);\n\n return this.editors\n .filter(editor => {\n // this is necessary because `requireDoc` can be undefined\n // and that is not the same as false\n const doesNotRequireDoc = editor.requireDoc === false\n return doesNotRequireDoc || hasActiveDoc\n })\n }\n\n /** Renders the enabled editor plugins and a tab bar to switch between them*/\n protected renderContent(): TemplateResult {\n\n const activeEditors = this.calcActiveEditors()\n .map(this.renderEditorTab)\n\n const hasActiveEditors = activeEditors.length > 0;\n if(!hasActiveEditors){ return html``; }\n\n const renderEditorContent = (doc: XMLDocument | null, activeEditor?: Plugin) => {\n const editor = activeEditor;\n const requireDoc = editor?.requireDoc\n if(requireDoc && !doc) { return html`` }\n\n const tag = editor?.content?.tag;\n if(!tag) { return html`` }\n\n return this.renderPluginContent(editor);\n }\n\n return html`\n <oscd-menu-tabs\n .editors=${this.calcActiveEditors()}\n .activeEditor=${this.activeEditor}\n @oscd-editor-tab-activated=${this.handleEditorTabActivated}\n >\n </oscd-menu-tabs>\n ${renderEditorContent(this.doc, this.activeEditor, )}\n `;\n }\n\n private handleEditorTabActivated(e: TabActivatedEvent){\n this.activeEditor = e.detail.editor\n }\n\n private handleActivateEditorByEvent(e: CustomEvent<{name: string, src: string}>): void {\n const {name, src} = e.detail;\n const editors = this.calcActiveEditors()\n const wantedEditor = editors.find(editor => editor.name === name || editor.src === src)\n if(!wantedEditor){ return; } // TODO: log error\n\n this.activeEditor = wantedEditor;\n }\n\n private handleRunMenuByEvent(e: CustomEvent<{name: string}>): void {\n\n // TODO: this is a workaround, fix it\n this.menuUI.open = true;\n const menuEntry = this.menuUI.querySelector(`[data-name=\"${e.detail.name}\"]`) as HTMLElement\n\n const menuContentElement = this.getMenuContent(menuEntry.dataset.src ?? '');\n if (!menuContentElement) {\n return;\n }\n\n (menuContentElement as unknown as MenuPlugin).run();\n }\n\n /**\n * Renders the landing buttons (open project and new project)\n * it no document loaded we display the menu item that are in the position\n * 'top' and are not disabled\n *\n * To enable replacement of this part we have to convert it to either an addon\n * or a plugin\n */\n protected renderLanding(): TemplateResult {\n if(this.doc){ return html``; }\n\n return html`\n <div class=\"landing\">\n ${renderMenuItems(this.menu, this.menuUI)}\n </div>`\n\n function renderMenuItems(menuItemsAndDividers: (MenuItem | 'divider')[], menuUI: Drawer){\n\n const menuItems = menuItemsAndDividers.filter(mi => mi !== 'divider') as MenuItem[];\n\n return menuItems.map((mi: MenuItem, index) => {\n if(mi.kind !== 'top' || mi.disabled?.()) { return html``; }\n\n return html`\n <mwc-icon-button\n class=\"landing_icon\"\n icon=\"${mi.icon}\"\n @click=\"${() => clickListItem(index)}\"\n >\n <div class=\"landing_label\">${mi.name}</div>\n </mwc-icon-button>\n `\n })\n\n function clickListItem(index:number) {\n const listItem = menuUI.querySelector('mwc-list')!.items[index];\n listItem.click();\n }\n\n }\n }\n\n protected renderPluginContent(plugin: RenderAblePlugin): TemplateResult {\n const tag = plugin.content?.tag ?? '';\n\n if (!tag) {\n return html``;\n }\n\n const osdcApi = new OscdApi(tag);\n return staticTagHtml`<${tag}\n .doc=${this.doc}\n .docName=${this.docName}\n .editCount=${this.editCount}\n .plugins=${this.host.storedPlugins}\n .docId=${this.host.docId}\n .pluginId=${plugin.src}\n .nsdoc=${this.host.nsdoc}\n .docs=${this.host.docs}\n .locale=${this.host.locale}\n .oscdApi=${osdcApi}\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\n static styles = css`\n mwc-drawer {\n position: absolute;\n top: 0;\n }\n\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 #menuContent {\n height: 0px;\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":"Layout.js","sourceRoot":"","sources":["../../src/addons/Layout.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n customElement,\n html,\n LitElement,\n property,\n state,\n TemplateResult,\n query,\n css,\n} from 'lit-element';\nimport { get } from 'lit-translate';\nimport { classMap } from 'lit-html/directives/class-map.js';\nimport { newPendingStateEvent } from '@compas-oscd/core';\nimport { newSettingsUIEvent } from '@compas-oscd/core';\nimport { OscdApi } from '@compas-oscd/core';\nimport { XMLEditor } from '@openscd/oscd-editor';\nimport {\n MenuItem,\n Validator,\n MenuPlugin,\n pluginIcons,\n OpenSCD\n} from '../open-scd.js';\n\nimport {\n Plugin,\n ContentContext,\n PluginKind\n} from \"../plugin.js\"\n\nimport {\n HistoryUIKind,\n newEmptyIssuesEvent,\n newHistoryUIEvent\n} from './History.js';\nimport type { Drawer } from '@material/mwc-drawer';\nimport type { ActionDetail } from '@material/mwc-list';\nimport { List } from '@material/mwc-list';\nimport type { ListItem } from '@material/mwc-list/mwc-list-item';\n\nimport '@material/mwc-drawer';\nimport '@material/mwc-list';\nimport '@material/mwc-dialog';\nimport '@material/mwc-switch';\nimport '@material/mwc-select';\nimport '@material/mwc-textfield';\nimport { pluginTag } from '../plugin-tag.js';\n\nimport {OscdPluginManager} from \"./plugin-manager/plugin-manager.js\";\nimport \"./plugin-manager/plugin-manager.js\";\nimport {OscdCustomPluginDialog} from \"./plugin-manager/custom-plugin-dialog.js\";\nimport \"./plugin-manager/custom-plugin-dialog.js\";\nimport \"./menu-tabs/menu-tabs.js\";\nimport { TabActivatedEvent } from \"./menu-tabs/menu-tabs.js\";\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\ninterface RenderAblePlugin {\n src?: string;\n kind: string;\n content?: ContentContext;\n}\n\n@customElement('oscd-layout')\nexport class OscdLayout extends LitElement {\n\n /** The `XMLDocument` to be edited */\n @property({ attribute: false }) doc: XMLDocument | null = null;\n /** The name of the current [[`doc`]] */\n @property({ type: String }) docName = '';\n /** Index of the last [[`EditorAction`]] applied. */\n @property({ type: Number }) editCount = -1;\n\n /** XML Editor to apply changes to the scd */\n @property({ type: Object }) editor!: XMLEditor;\n\n /** The plugins to render the layout. */\n @property({ type: Array }) plugins: Plugin[] = [];\n\n /** The open-scd host element */\n @property({ type: Object }) host!: OpenSCD;\n\n @state() validated: Promise<void> = Promise.resolve();\n @state() shouldValidate = false;\n @state() activeEditor: Plugin | undefined = this.calcActiveEditors()[0];\n\n @query('#menu') menuUI!: Drawer;\n @query('#menuContent') menuContent!: List;\n @query('#pluginManager') pluginUI!: OscdPluginManager;\n @query('#pluginList') pluginList!: List;\n @query('#pluginAdd') pluginDownloadUI!: OscdCustomPluginDialog;\n\n\n render(): TemplateResult {\n return html`\n <div\n @open-plugin-download=${() => this.pluginDownloadUI.show()}\n @oscd-activate-editor=${this.handleActivateEditorByEvent}\n @oscd-run-menu=${this.handleRunMenuByEvent}\n >\n <slot></slot>\n ${this.renderHeader()} ${this.renderAside()} ${this.renderMenuContent()}\n ${this.renderContent()} ${this.renderLanding()} ${this.renderPlugging()}\n </div>\n `;\n }\n\n protected componentHtml(strings: TemplateStringsArray, ...values: unknown[]): TemplateResult {\n return html(strings, ...values);\n }\n\n\n private renderPlugging(): TemplateResult {\n return html` ${this.renderPluginUI()} ${this.renderDownloadUI()} `;\n }\n\n private getMenuContent(src: string) {\n const tag = pluginTag(src);\n return this.menuContent.querySelector(tag);\n }\n\n /** Renders the \"Add Custom Plug-in\" UI*/\n protected renderDownloadUI(): TemplateResult {\n return html`\n <oscd-custom-plugin-dialog id=\"pluginAdd\"></oscd-custom-plugin-dialog>\n `\n }\n\n /**\n * Renders the plug-in management UI (turning plug-ins on/off)\n */\n protected renderPluginUI(): TemplateResult {\n return html`\n <oscd-plugin-manager id=\"pluginManager\" .plugins=${this.plugins}></oscd-plugin-manager>\n `\n }\n\n // Computed properties\n\n get validators(): Plugin[] {\n return this.plugins.filter(\n plugin => plugin.active && plugin.kind === 'validator'\n );\n }\n get menuEntries(): Plugin[] {\n return this.plugins.filter(\n plugin => plugin.active && plugin.kind === 'menu'\n );\n }\n get topMenu(): Plugin[] {\n return this.menuEntries.filter(plugin => plugin.position === 'top');\n }\n get middleMenu(): Plugin[] {\n return this.menuEntries.filter(plugin => plugin.position === 'middle');\n }\n get bottomMenu(): Plugin[] {\n return this.menuEntries.filter(plugin => plugin.position === 'bottom');\n }\n\n\n get menu(): (MenuItem | 'divider')[] {\n\n const topMenu = this.generateMenu(this.topMenu, 'top');\n const middleMenu = this.generateMenu(this.middleMenu, 'middle');\n const bottomMenu = this.generateMenu(this.bottomMenu, 'bottom');\n const validators = this.generateValidatorMenus(this.validators);\n const canUndo = this.editor.past.length > 0;\n const canRedo = this.editor.future.length > 0;\n\n if (middleMenu.length > 0) middleMenu.push('divider');\n if (bottomMenu.length > 0) bottomMenu.push('divider');\n\n return [\n 'divider',\n ...topMenu,\n 'divider',\n {\n icon: 'undo',\n name: 'undo',\n actionItem: true,\n action: (): void => {\n this.editor.undo();\n },\n disabled: (): boolean => !canUndo,\n kind: 'static',\n content: { tag: '' },\n },\n {\n icon: 'redo',\n name: 'redo',\n actionItem: true,\n action: (): void => {\n this.editor.redo();\n },\n disabled: (): boolean => !canRedo,\n kind: 'static',\n content: { tag: '' },\n },\n ...validators,\n {\n icon: 'list',\n name: 'menu.viewLog',\n actionItem: true,\n action: (): void => {\n this.dispatchEvent(newHistoryUIEvent(true, HistoryUIKind.log));\n },\n kind: 'static',\n content: { tag: '' },\n },\n {\n icon: 'history',\n name: 'menu.viewHistory',\n actionItem: true,\n action: (): void => {\n this.dispatchEvent(newHistoryUIEvent(true, HistoryUIKind.history));\n },\n kind: 'static',\n content: { tag: '' },\n },\n {\n icon: 'rule',\n name: 'menu.viewDiag',\n actionItem: true,\n action: (): void => {\n this.dispatchEvent(newHistoryUIEvent(true, HistoryUIKind.diagnostic));\n },\n kind: 'static',\n content: { tag: '' },\n },\n 'divider',\n ...middleMenu,\n {\n icon: 'settings',\n name: 'settings.title',\n action: (): void => {\n this.dispatchEvent(newSettingsUIEvent(true));\n },\n kind: 'static',\n content: { tag: '' },\n },\n ...bottomMenu,\n {\n icon: 'extension',\n name: 'plugins.heading',\n action: (): void => this.pluginUI.show(),\n kind: 'static',\n content: { tag: '' },\n },\n ];\n }\n\n get editors(): Plugin[] {\n return this.plugins.filter(\n plugin => plugin.active && plugin.kind === 'editor'\n );\n }\n\n // Keyboard Shortcuts\n private handleKeyPress(e: KeyboardEvent): void {\n // currently we only handley key shortcuts when users press ctrl\n if(!e.ctrlKey){ return }\n\n const keyFunctionMap: {[key:string]: () => void} = {\n 'm': () => this.menuUI.open = !this.menuUI.open,\n 'o': () => this.menuUI.querySelector<ListItem>('mwc-list-item[iconid=\"folder_open\"]')?.click(),\n 'O': () => this.menuUI.querySelector<ListItem>('mwc-list-item[iconid=\"create_new_folder\"]')?.click(),\n 's': () => this.menuUI.querySelector<ListItem>('mwc-list-item[iconid=\"save\"]')?.click(),\n 'P': () => this.pluginUI.show(),\n }\n\n const fn = keyFunctionMap[e.key];\n if(!fn){ return; }\n\n e.preventDefault();\n fn();\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.host.addEventListener('close-drawer', async () => {\n this.menuUI.open = false;\n });\n this.host.addEventListener('validate', async () => {\n this.shouldValidate = true;\n await this.validated;\n\n if (!this.shouldValidate){ return; }\n\n this.shouldValidate = false;\n\n this.validated = Promise.allSettled(\n this.menuUI\n .querySelector('mwc-list')!\n .items.filter(item => item.className === 'validator')\n .map(item => {\n const src = item.dataset.src ?? '';\n const menuContentElement = this.getMenuContent(src);\n\n if (!menuContentElement) {\n return;\n }\n\n this.dispatchEvent(newEmptyIssuesEvent(src));\n\n return (menuContentElement as unknown as Validator).validate()\n })\n ).then();\n this.dispatchEvent(newPendingStateEvent(this.validated));\n });\n this.handleKeyPress = this.handleKeyPress.bind(this);\n document.onkeydown = this.handleKeyPress;\n\n document.addEventListener(\"open-plugin-download\", () => {\n this.pluginDownloadUI.show();\n });\n }\n\n\n private generateMenu(plugins:Plugin[], kind: 'top' | 'middle' | 'bottom'): (MenuItem | 'divider')[]{\n return plugins.map(plugin => {\n return {\n icon: plugin.icon || pluginIcons['menu'],\n name: plugin.name,\n src: plugin.src,\n action: ae => {\n const menuContentElement = this.getMenuContent(plugin.src);\n if (!menuContentElement) {\n return;\n }\n\n this.dispatchEvent(newPendingStateEvent((menuContentElement as unknown as MenuPlugin).run()))\n },\n disabled: (): boolean => plugin.requireDoc! && this.doc === null,\n content: plugin.content ?? { tag: '' },\n kind: kind,\n }\n })\n }\n\n private generateValidatorMenus(plugins: Plugin[]): (MenuItem | 'divider')[] {\n return plugins.map(plugin =>{\n return {\n icon: plugin.icon || pluginIcons['validator'],\n name: plugin.name,\n src: plugin.src,\n action: ae => {\n this.dispatchEvent(newEmptyIssuesEvent(plugin.src));\n\n const menuContentElement = this.getMenuContent(plugin.src);\n if (!menuContentElement) {\n return;\n }\n\n this.dispatchEvent(newPendingStateEvent((menuContentElement as unknown as Validator).validate()))\n },\n disabled: (): boolean => this.doc === null,\n content: plugin.content ?? { tag: '' },\n kind: 'validator',\n }\n });\n }\n\n private renderMenuItem(me: MenuItem | 'divider'): TemplateResult {\n const isDivider = me === 'divider';\n const hasActionItem = me !== 'divider' && me.actionItem;\n\n if (isDivider) { return html`<li divider padded role=\"separator\"></li>`; }\n if (hasActionItem){ return html``; }\n return html`\n <mwc-list-item\n class=\"${me.kind}\"\n iconid=\"${me.icon}\"\n graphic=\"icon\"\n data-name=\"${me.name}\"\n data-src=\"${me.src ?? ''}\"\n .disabled=${me.disabled?.() || !me.action}\n ><mwc-icon slot=\"graphic\">${me.icon}</mwc-icon>\n <span>${get(me.name)}</span>\n ${me.hint\n ? html`<span slot=\"secondary\"><tt>${me.hint}</tt></span>`\n : ''}\n </mwc-list-item>\n `;\n }\n\n protected renderActionItem(me: MenuItem | 'divider'): TemplateResult {\n if(me === 'divider' || !me.actionItem){ return html`` }\n\n return html`\n <mwc-icon-button\n slot=\"actionItems\"\n icon=\"${me.icon}\"\n label=\"${me.name}\"\n ?disabled=${me.disabled?.() || !me.action}\n @click=${me.action}\n ></mwc-icon-button>`;\n }\n\n private renderEditorTab({ name, icon }: Plugin): TemplateResult {\n return html`<mwc-tab label=${name} icon=${icon || 'edit'}> </mwc-tab>`;\n }\n\n /** Renders top bar which features icon buttons for undo, redo, log, scl history and diagnostics*/\n protected renderHeader(): TemplateResult {\n return html`<mwc-top-app-bar-fixed>\n <mwc-icon-button\n icon=\"menu\"\n label=\"Menu\"\n slot=\"navigationIcon\"\n @click=${() => (this.menuUI.open = true)}\n ></mwc-icon-button>\n ${this.renderTitle()}\n ${this.renderActionItems()}\n </mwc-top-app-bar-fixed>`;\n }\n\n /**\n * Renders the title section in the top bar\n * Make sure to use slot=\"title\" for the returned template\n */\n protected renderTitle(): TemplateResult {\n return html`<div slot=\"title\" id=\"title\">${this.docName}</div>`;\n }\n\n /**\n * Renders the action items for the top bar\n * Make sure to use slot=\"actionItems\" for each element\n */\n protected renderActionItems(): TemplateResult {\n return html`${this.menu.map(this.renderActionItem)}`;\n }\n\n protected renderMenuContent(): TemplateResult {\n return html`\n <div id=\"menuContent\">\n ${\n this.menu\n .filter(p => (p as MenuItem).content)\n .map(p => this.renderPluginContent((p as MenuItem)))\n }\n </div>\n `;\n }\n\n /**\n * Renders a drawer toolbar featuring the scl filename, enabled menu plugins,\n * settings, help, scl history and plug-ins management\n */\n protected renderAside(): TemplateResult {\n\n return html`\n <mwc-drawer class=\"mdc-theme--surface\" hasheader type=\"modal\" id=\"menu\">\n <span slot=\"title\">${get('menu.title')}</span>\n ${renderTitle(this.docName)}\n <mwc-list\n wrapFocus\n @action=${makeListAction(this.menu)}\n >\n ${this.menu.map(this.renderMenuItem)}\n </mwc-list>\n </mwc-drawer>\n `;\n\n function renderTitle(docName?: string){\n if(!docName) return html``;\n\n return html`<span slot=\"subtitle\">${docName}</span>`;\n }\n\n function makeListAction(menuItems : (MenuItem|'divider')[]){\n return function listAction(ae: CustomEvent<ActionDetail>){\n //FIXME: dirty hack to be fixed in open-scd-core\n // if clause not necessary when oscd... components in open-scd not list\n if (ae.target instanceof List)\n (<MenuItem>(\n menuItems.filter(\n item => item !== 'divider' && !item.actionItem\n )[ae.detail.index]\n ))?.action?.(ae);\n }\n }\n\n\n }\n\n private calcActiveEditors(){\n const hasActiveDoc = Boolean(this.doc);\n\n return this.editors\n .filter(editor => {\n // this is necessary because `requireDoc` can be undefined\n // and that is not the same as false\n const doesNotRequireDoc = editor.requireDoc === false\n return doesNotRequireDoc || hasActiveDoc\n })\n }\n\n /** Renders the enabled editor plugins and a tab bar to switch between them*/\n protected renderContent(): TemplateResult {\n\n const activeEditors = this.calcActiveEditors()\n .map(this.renderEditorTab)\n\n const hasActiveEditors = activeEditors.length > 0;\n if(!hasActiveEditors){ return html``; }\n\n const renderEditorContent = (doc: XMLDocument | null, activeEditor?: Plugin) => {\n const editor = activeEditor;\n const requireDoc = editor?.requireDoc\n if(requireDoc && !doc) { return html`` }\n\n const tag = editor?.content?.tag;\n if(!tag) { return html`` }\n\n return this.renderPluginContent(editor);\n }\n\n return html`\n <oscd-menu-tabs\n .editors=${this.calcActiveEditors()}\n .activeEditor=${this.activeEditor}\n @oscd-editor-tab-activated=${this.handleEditorTabActivated}\n >\n </oscd-menu-tabs>\n ${renderEditorContent(this.doc, this.activeEditor, )}\n `;\n }\n\n private handleEditorTabActivated(e: TabActivatedEvent){\n this.activeEditor = e.detail.editor\n }\n\n private handleActivateEditorByEvent(e: CustomEvent<{name: string, src: string}>): void {\n const {name, src} = e.detail;\n const editors = this.calcActiveEditors()\n const wantedEditor = editors.find(editor => editor.name === name || editor.src === src)\n if(!wantedEditor){ return; } // TODO: log error\n\n this.activeEditor = wantedEditor;\n }\n\n private handleRunMenuByEvent(e: CustomEvent<{name: string}>): void {\n\n // TODO: this is a workaround, fix it\n this.menuUI.open = true;\n const menuEntry = this.menuUI.querySelector(`[data-name=\"${e.detail.name}\"]`) as HTMLElement\n\n const menuContentElement = this.getMenuContent(menuEntry.dataset.src ?? '');\n if (!menuContentElement) {\n return;\n }\n\n (menuContentElement as unknown as MenuPlugin).run();\n }\n\n /**\n * Renders the landing buttons (open project and new project)\n * it no document loaded we display the menu item that are in the position\n * 'top' and are not disabled\n *\n * To enable replacement of this part we have to convert it to either an addon\n * or a plugin\n */\n protected renderLanding(): TemplateResult {\n if(this.doc){ return html``; }\n\n return html`\n <div class=\"landing\">\n ${renderMenuItems(this.menu, this.menuUI)}\n </div>`\n\n function renderMenuItems(menuItemsAndDividers: (MenuItem | 'divider')[], menuUI: Drawer){\n\n const menuItems = menuItemsAndDividers.filter(mi => mi !== 'divider') as MenuItem[];\n\n return menuItems.map((mi: MenuItem, index) => {\n if(mi.kind !== 'top' || mi.disabled?.()) { return html``; }\n\n return html`\n <mwc-icon-button\n class=\"landing_icon\"\n icon=\"${mi.icon}\"\n @click=\"${() => clickListItem(index)}\"\n >\n <div class=\"landing_label\">${mi.name}</div>\n </mwc-icon-button>\n `\n })\n\n function clickListItem(index:number) {\n const listItem = menuUI.querySelector('mwc-list')!.items[index];\n listItem.click();\n }\n\n }\n }\n\n protected renderPluginContent(plugin: RenderAblePlugin): TemplateResult {\n const tag = plugin.content?.tag ?? '';\n\n if (!tag) {\n return html``;\n }\n\n const osdcApi = new OscdApi(tag);\n return staticTagHtml`<${tag}\n .doc=${this.doc}\n .docName=${this.docName}\n .editCount=${this.editCount}\n .plugins=${this.host.storedPlugins}\n .docId=${this.host.docId}\n .pluginId=${plugin.src}\n .nsdoc=${this.host.nsdoc}\n .docs=${this.host.docs}\n .locale=${this.host.locale}\n .oscdApi=${osdcApi}\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\n static styles = css`\n mwc-drawer {\n position: absolute;\n top: 0;\n }\n\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 #menuContent {\n height: 0px;\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"]}
@@ -170,6 +170,7 @@ export const de = {
170
170
  zeroissues: 'Es konnten keine Fehler in dem Projekt gefunden werden.',
171
171
  placeholder: 'Hier werden Validierungsfehler angezeigt.',
172
172
  missingnsd: 'DataTypeTemplates können nicht validiert werden. Das Projekt muss die Version 2007B4 oder höher haben.',
173
+ lastValidated: 'Validiert um {{ time }}',
173
174
  },
174
175
  plugins: {
175
176
  heading: 'Plug-ins',
@@ -1 +1 @@
1
- {"version":3,"file":"de.js","sourceRoot":"","sources":["../../src/translations/de.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,EAAE,GAAiB;IAC9B,GAAG,EAAE;QACH,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,cAAc;QACpB,GAAG,EAAE,MAAM;QACX,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,WAAW;QACpB,QAAQ,EAAE,UAAU;QACpB,EAAE,EAAE,eAAe;QACnB,EAAE,EAAE,aAAa;QACjB,MAAM,EAAE,mBAAmB;QAC3B,MAAM,EAAE,iBAAiB;QACzB,GAAG,EAAE,uBAAuB;QAC5B,MAAM,EAAE,QAAQ;QAChB,EAAE,EAAE,kBAAkB;QACtB,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,YAAY;QACrB,SAAS,EAAE,cAAc;QACzB,EAAE,EAAE,2BAA2B;QAC/B,SAAS,EAAE,uBAAuB;QAClC,OAAO,EAAE,yBAAyB;QAClC,aAAa,EAAE,mBAAmB;QAClC,SAAS,EAAE,sBAAsB;QACjC,GAAG,EAAE,cAAc;QACnB,IAAI,EAAE,4BAA4B;QAClC,IAAI,EAAE,gCAAgC;QACtC,IAAI,EAAE,0BAA0B;QAChC,MAAM,EAAE,uBAAuB;QAC/B,EAAE,EAAE,kBAAkB;QACtB,SAAS,EAAE,eAAe;QAC1B,cAAc,EAAE,4BAA4B;QAC5C,OAAO,EAAE,WAAW;QACpB,aAAa,EAAE,eAAe;QAC9B,MAAM,EAAE,oBAAoB;QAC5B,SAAS,EAAE,kBAAkB;QAC7B,SAAS,EAAE,wBAAwB;QACnC,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE,8BAA8B;QACvC,MAAM,EAAE,2BAA2B;QACnC,SAAS,EAAE,yBAAyB;QACpC,OAAO,EAAE,iCAAiC;QAC1C,UAAU,EAAE,gCAAgC;QAC5C,OAAO,EAAE,8BAA8B;QACvC,OAAO,EAAE,sBAAsB;QAC/B,SAAS,EAAE,qCAAqC;QAChD,OAAO,EAAE,+CAA+C;QACxD,OAAO,EAAE,2BAA2B;QACpC,QAAQ,EAAE,oBAAoB;QAC9B,SAAS,EAAE,kBAAkB;QAC7B,OAAO,EAAE,sCAAsC;QAC/C,MAAM,EAAE,8CAA8C;QACtD,OAAO,EAAE,yBAAyB;QAClC,WAAW,EAAE,qDAAqD;QAClE,UAAU,EAAE,mCAAmC;QAC/C,QAAQ,EAAE,kDAAkD;QAC5D,aAAa,EAAE,iDAAiD;QAChE,mBAAmB,EAAE,6BAA6B;QAClD,OAAO,EAAE,oBAAoB;QAC7B,MAAM,EAAE,gCAAgC;QACxC,MAAM,EAAE,8BAA8B;QACtC,MAAM,EAAE,+BAA+B;QACvC,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,OAAO;KACf;IACD,QAAQ,EAAE;QACR,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE,SAAS;QACnB,SAAS,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,oBAAoB,EAAE;QACtD,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,iCAAiC;QAC3C,gBAAgB,EAAE,iBAAiB;QACnC,mBAAmB,EAAE,yBAAyB;QAC9C,oBAAoB,EAClB,6EAA6E;QAC/E,mBAAmB,EACjB,qHAAqH;KACxH;IACD,IAAI,EAAE;QACJ,GAAG,EAAE,eAAe;QACpB,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,oBAAoB;QAC7B,QAAQ,EAAE,mBAAmB;KAC9B;IACD,MAAM,EAAE;QACN,KAAK,EAAE;YACL,MAAM,EAAE,uBAAuB;YAC/B,IAAI,EAAE,wBAAwB;YAC9B,GAAG,EAAE,wBAAwB;YAC7B,QAAQ,EAAE,uBAAuB;SAClC;KACF;IACD,OAAO,EAAE;QACP,OAAO,EAAE,yBAAyB;QAClC,MAAM,EAAE,oBAAoB;QAC5B,SAAS,EAAE,uBAAuB;QAClC,SAAS,EAAE,wBAAwB;KACpC;IACD,QAAQ,EAAE;QACR,WAAW,EAAE,wBAAwB;QACrC,QAAQ,EAAE,+CAA+C;QACzD,aAAa,EAAE,0CAA0C;QACzD,OAAO,EAAE,yBAAyB;QAClC,aAAa,EAAE,kBAAkB;QACjC,UAAU,EAAE,iBAAiB;QAC7B,UAAU,EAAE,yBAAyB;KACtC;IACD,OAAO,EAAE;QACP,IAAI,EAAE,4BAA4B;QAClC,OAAO,EAAE,wBAAwB;QACjC,OAAO,EAAE,qBAAqB;QAC9B,KAAK,EAAE,uBAAuB;QAC9B,OAAO,EAAE,uBAAuB;QAChC,MAAM,EAAE,qBAAqB;QAC7B,OAAO,EAAE,6BAA6B;QACtC,KAAK,EAAE;YACL,MAAM,EAAE,oCAAoC;YAC5C,MAAM,EAAE,oCAAoC;YAC5C,IAAI,EAAE,qCAAqC;YAC3C,SAAS,EAAE,gCAAgC;YAC3C,SAAS,EACP,uEAAuE;YACzE,OAAO,EAAE,+CAA+C;SACzD;KACF;IACD,SAAS,EAAE;QACT,MAAM,EAAE;YACN,KAAK,EAAE,oBAAoB;YAC3B,KAAK,EAAE,mDAAmD;YAC1D,OAAO,EAAE,8CAA8C;YACvD,KAAK,EAAE,4BAA4B;YACnC,SAAS,EAAE,0CAA0C;SACtD;QACD,SAAS,EAAE;YACT,KAAK,EAAE,sBAAsB;YAC7B,cAAc,EACZ,gFAAgF;YAClF,gBAAgB,EACd,iEAAiE;YACnE,kBAAkB,EAChB,0EAA0E;YAC5E,gBAAgB,EACd,8EAA8E;SACjF;KACF;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE,sBAAsB;QAChC,YAAY,EAAE,QAAQ;QACtB,MAAM,EAAE,6BAA6B;KACtC;IACD,OAAO,EAAE;QACP,aAAa,EAAE,kBAAkB;QACjC,UAAU,EAAE,iCAAiC;QAC7C,QAAQ,EAAE,oCAAoC;QAC9C,cAAc,EAAE,2CAA2C;KAC5D;IACD,GAAG,EAAE;QACH,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,gEAAgE;QAClE,QAAQ,EAAE;YACR,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,cAAc;SAC5B;KACF;IACD,OAAO,EAAE;QACP,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,eAAe;QAC5B,SAAS,EAAE,mCAAmC;KAC/C;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,mBAAmB;QACzB,UAAU,EAAE,yDAAyD;QACrE,WAAW,EAAE,2CAA2C;QACxD,UAAU,EACR,wGAAwG;KAC3G;IACD,OAAO,EAAE;QACP,OAAO,EAAE,UAAU;QACnB,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,mBAAmB;QAC/B,GAAG,EAAE,MAAM;QACX,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,OAAO;QACf,SAAS,EAAE,WAAW;QACtB,GAAG,EAAE;YACH,OAAO,EAAE,4BAA4B;YACrC,OAAO,EAAE;wDACyC;YAClD,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,yCAAyC;YACrD,GAAG,EAAE,KAAK;YACV,SAAS,EAAE,iCAAiC;SAC7C;KACF;IACD,UAAU,EAAE;QACV,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,oBAAoB;QAC7B,MAAM,EAAE;YACN,UAAU,EAAE,uBAAuB;YACnC,UAAU,EAAE,+BAA+B;YAC3C,KAAK,EAAE;gBACL,GAAG,EAAE,yBAAyB;gBAC9B,IAAI,EAAE,yBAAyB;aAChC;SACF;QACD,MAAM,EAAE;YACN,eAAe,EAAE,2BAA2B;YAC5C,gBAAgB,EAAE,oCAAoC;SACvD;QACD,KAAK,EAAE;YACL,QAAQ,EAAE,iBAAiB;YAC3B,UAAU,EAAE,eAAe;YAC3B,SAAS,EAAE,iBAAiB;YAC5B,OAAO,EAAE,UAAU;SACpB;KACF;IACD,SAAS,EAAE;QACT,WAAW,EAAE,eAAe;QAC5B,QAAQ,EAAE,4BAA4B;QACtC,OAAO,EAAE,oBAAoB;QAC7B,mBAAmB,EAAE,yBAAyB;QAC9C,QAAQ,EAAE,iCAAiC;QAC3C,SAAS,EAAE,0BAA0B;QACrC,cAAc,EAAE,wBAAwB;QACxC,MAAM,EAAE;YACN,OAAO,EAAE,2BAA2B;YACpC,OAAO,EAAE,2BAA2B;YACpC,gBAAgB,EAAE,oBAAoB;YACtC,cAAc,EAAE,sBAAsB;YACtC,cAAc,EAAE,sBAAsB;YACtC,GAAG,EAAE,KAAK;YACV,WAAW,EAAE,cAAc;YAC3B,OAAO,EAAE,iBAAiB;YAC1B,QAAQ,EAAE,WAAW;YACrB,aAAa,EAAE,iBAAiB;YAChC,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,sBAAsB;YAC7B,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,SAAS;SACnB;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,UAAU;YACnB,eAAe,EAAE,2CAA2C;YAC5D,eAAe,EAAE,+BAA+B;SACjD;QACD,oBAAoB,EAAE;YACpB,KAAK,EAAE,wBAAwB;YAC/B,UAAU,EAAE,kBAAkB;YAC9B,UAAU,EAAE,0BAA0B;YACtC,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,qBAAqB;YACrC,iBAAiB,EAAE,uBAAuB;YAC1C,YAAY,EAAE,uBAAuB;YACrC,eAAe,EAAE,mDAAmD;YACpE,eAAe,EAAE,uCAAuC;YACxD,gBAAgB,EAAE,8BAA8B;SACjD;QACD,gBAAgB,EAAE;YAChB,KAAK,EAAE,oBAAoB;YAC3B,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,sBAAsB;YAC5B,iBAAiB,EAAE,+BAA+B;YAClD,eAAe,EAAE,+CAA+C;YAChE,eAAe,EAAE,mCAAmC;YACpD,gBAAgB,EAAE,0BAA0B;SAC7C;QACD,WAAW,EAAE;YACX,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,4BAA4B;YACpC,SAAS,EAAE,mCAAmC;SAC/C;KACF;IACD,WAAW,EAAE;QACX,MAAM,EAAE;YACN,UAAU,EAAE,kBAAkB;YAC9B,UAAU,EAAE,0BAA0B;YACtC,KAAK,EAAE;gBACL,GAAG,EAAE,wBAAwB;gBAC7B,IAAI,EAAE,wBAAwB;gBAC9B,MAAM,EAAE,0CAA0C;gBAClD,UAAU,EAAE,yBAAyB;aACtC;SACF;KACF;IACD,GAAG,EAAE;QACH,MAAM,EAAE;YACN,UAAU,EAAE,cAAc;YAC1B,UAAU,EAAE,sBAAsB;YAClC,kBAAkB,EAAE,oBAAoB;YACxC,KAAK,EAAE;gBACL,IAAI,EAAE,gBAAgB;gBACtB,MAAM,EAAE,kCAAkC;gBAC1C,UAAU,EAAE,yBAAyB;aACtC;SACF;QACD,MAAM,EAAE;YACN,SAAS,EAAE,2BAA2B;YACtC,SAAS,EAAE,yBAAyB;SACrC;KACF;IACD,OAAO,EAAE;QACP,MAAM,EAAE;YACN,UAAU,EAAE,0BAA0B;YACtC,mBAAmB,EAAE,6CAA6C;YAClE,UAAU,EAAE,kCAAkC;YAC9C,UAAU,EAAE,6BAA6B;YACzC,KAAK,EAAE;gBACL,IAAI,EAAE,4BAA4B;aACnC;SACF;KACF;IACD,EAAE,EAAE;QACF,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,IAAI,EAAE,eAAe;aACtB;YACD,UAAU,EAAE,2BAA2B;YACvC,YAAY,EAAE,kBAAkB;YAChC,YAAY,EAAE,0BAA0B;YACxC,aAAa,EAAE,qBAAqB;YACpC,UAAU,EAAE,SAAS;SACtB;KACF;IACD,GAAG,EAAE;QACH,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,IAAI,EAAE,gBAAgB;aACvB;YACD,UAAU,EAAE,2BAA2B;YACvC,YAAY,EAAE,kBAAkB;YAChC,aAAa,EAAE,qBAAqB;YACpC,UAAU,EAAE,SAAS;SACtB;KACF;IACD,gBAAgB,EAAE;QAChB,MAAM,EAAE;YACN,UAAU,EAAE,mCAAmC;YAC/C,UAAU,EAAE,0CAA0C;YACtD,UAAU,EAAE,kCAAkC;YAC9C,KAAK,EAAE;gBACL,GAAG,EAAE,mCAAmC;gBACxC,IAAI,EAAE,mCAAmC;aAC1C;SACF;KACF;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE;YACN,UAAU,EAAE,yBAAyB;YACrC,UAAU,EAAE,iCAAiC;YAC7C,aAAa,EAAE,cAAc;YAC7B,cAAc,EAAE,cAAc;YAC9B,aAAa,EAAE,cAAc;YAC7B,KAAK,EAAE;gBACL,GAAG,EAAE,2BAA2B;gBAChC,IAAI,EAAE,2BAA2B;aAClC;SACF;QACD,MAAM,EAAE;YACN,kBAAkB,EAAE,sCAAsC;SAC3D;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,OAAO;QACb,MAAM,EAAE;YACN,UAAU,EAAE,WAAW;YACvB,UAAU,EAAE,yBAAyB;YACrC,UAAU,EAAE,iBAAiB;YAC7B,KAAK,EAAE;gBACL,GAAG,EAAE,kBAAkB;gBACvB,IAAI,EAAE,kBAAkB;aACzB;SACF;QACD,MAAM,EAAE;YACN,UAAU,EAAE,wBAAwB;SACrC;KACF;IACD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,MAAM,EAAE;YACN,UAAU,EAAE,aAAa;YACzB,UAAU,EAAE,4BAA4B;YACxC,UAAU,EAAE,oBAAoB;YAChC,KAAK,EAAE;gBACL,GAAG,EAAE,oBAAoB;gBACzB,IAAI,EAAE,oBAAoB;aAC3B;SACF;QACD,MAAM,EAAE;YACN,aAAa,EAAE,2BAA2B;SAC3C;KACF;IACD,GAAG,EAAE;QACH,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE;YACN,UAAU,EAAE,UAAU;YACtB,UAAU,EAAE,yBAAyB;YACrC,KAAK,EAAE;gBACL,GAAG,EAAE,iBAAiB;gBACtB,IAAI,EAAE,iBAAiB;aACxB;SACF;QACD,MAAM,EAAE;YACN,SAAS,EAAE,4BAA4B;SACxC;KACF;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE;YACN,UAAU,EAAE,yBAAyB;YACrC,UAAU,EAAE,iCAAiC;YAC7C,UAAU,EAAE,yBAAyB;YACrC,KAAK,EAAE;gBACL,GAAG,EAAE,0BAA0B;gBAC/B,IAAI,EAAE,0BAA0B;aACjC;SACF;QACD,WAAW,EAAE,iBAAiB;KAC/B;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,mBAAmB;QACzB,MAAM,EAAE;YACN,UAAU,EAAE,wBAAwB;YACpC,cAAc,EAAE,gCAAgC;YAChD,KAAK,EAAE;gBACL,GAAG,EAAE,8BAA8B;gBACnC,IAAI,EAAE,8BAA8B;aACrC;SACF;KACF;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE;YACN,UAAU,EAAE,gBAAgB;YAC5B,sBAAsB,EAAE,6BAA6B;YACrD,eAAe,EAAE,kCAAkC;YACnD,KAAK,EAAE;gBACL,GAAG,EAAE,4BAA4B;gBACjC,IAAI,EAAE,4BAA4B;aACnC;SACF;KACF;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,0BAA0B;QACnC,GAAG,EAAE,8BAA8B;KACpC;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,4BAA4B;QAClC,OAAO,EAAE,0BAA0B;QACnC,UAAU,EAAE,mCAAmC;QAC/C,UAAU,EAAE;YACV,UAAU,EAAE,WAAW;YACvB,aAAa,EAAE,iBAAiB;YAChC,oBAAoB,EAAE,uBAAuB;YAC7C,mBAAmB,EAAE,qBAAqB;YAC1C,sBAAsB,EAAE,gCAAgC;YACxD,aAAa,EAAE,sBAAsB;SACtC;QACD,KAAK,EAAE;YACL,SAAS,EAAE;gBACT,KAAK,EAAE,mBAAmB;gBAC1B,eAAe,EAAE,8BAA8B;aAChD;YACD,UAAU,EAAE;gBACV,YAAY,EAAE,+BAA+B;gBAC7C,cAAc,EAAE,8CAA8C;aAC/D;YACD,IAAI,EAAE;gBACJ,aAAa,EAAE,wBAAwB;gBACvC,cAAc,EAAE,wBAAwB;aACzC;SACF;QACD,GAAG,EAAE;YACH,SAAS,EAAE;gBACT,KAAK,EAAE,0BAA0B;gBACjC,eAAe,EAAE,8BAA8B;aAChD;YACD,UAAU,EAAE;gBACV,YAAY,EAAE,8BAA8B;gBAC5C,cAAc,EAAE,6CAA6C;aAC9D;YACD,IAAI,EAAE;gBACJ,aAAa,EAAE,wBAAwB;gBACvC,cAAc,EAAE,wBAAwB;aACzC;SACF;QACD,OAAO,EAAE;YACP,UAAU,EAAE;gBACV,KAAK,EAAE,kDAAkD;gBACzD,WAAW,EAAE,iCAAiC;gBAC9C,eAAe,EAAE,qDAAqD;gBACtE,cAAc,EACZ,8DAA8D;aACjE;SACF;QACD,YAAY,EAAE;YACZ,UAAU,EAAE;gBACV,KAAK,EAAE,sDAAsD;gBAC7D,WAAW,EAAE,gCAAgC;gBAC7C,mBAAmB,EAAE,gCAAgC;gBACrD,kBAAkB,EAAE,sCAAsC;aAC3D;SACF;QACD,mBAAmB,EAAE;YACnB,gBAAgB,EAAE;gBAChB,KAAK,EAAE,wBAAwB;gBAC/B,mBAAmB,EAAE,+BAA+B;aACrD;SACF;QACD,UAAU,EAAE;YACV,gBAAgB,EAAE;gBAChB,KAAK,EAAE,iBAAiB;gBACxB,mBAAmB,EAAE,uBAAuB;aAC7C;SACF;KACF;IACD,WAAW,EAAE;QACX,mBAAmB,EAAE,yBAAyB;QAC9C,IAAI,EAAE;YACJ,UAAU,EAAE,OAAO;YACnB,WAAW,EAAE,UAAU;SACxB;QACD,SAAS,EACP,wFAAwF;QAC1F,MAAM,EAAE;YACN,OAAO,EAAE,2BAA2B;YACpC,eAAe,EAAE,yBAAyB;YAC1C,gBAAgB,EACd,6DAA6D;YAC/D,YAAY,EACV,sEAAsE;YACxE,WAAW,EAAE;gBACX,SAAS,EAAE,uBAAuB;gBAClC,SAAS,EAAE,sBAAsB;gBACjC,SAAS,EAAE,4BAA4B;gBACvC,SAAS,EAAE,uBAAuB;gBAClC,SAAS,EAAE,sCAAsC;gBACjD,UAAU,EAAE,iCAAiC;gBAC7C,UAAU,EAAE,sCAAsC;gBAClD,UAAU,EAAE,oBAAoB;gBAChC,UAAU,EACR,8DAA8D;gBAChE,UAAU,EACR,iEAAiE;gBACnE,UAAU,EAAE,kDAAkD;gBAC9D,UAAU,EAAE,iDAAiD;gBAC7D,UAAU,EAAE,uDAAuD;gBACnE,UAAU,EAAE,kDAAkD;gBAC9D,UAAU,EACR,iEAAiE;gBACnE,UAAU,EACR,4DAA4D;gBAC9D,UAAU,EACR,iEAAiE;gBACnE,UAAU,EAAE,+CAA+C;gBAC3D,UAAU,EAAE,2DAA2D;gBACvE,UAAU,EACR,4EAA4E;gBAC9E,UAAU,EACR,6FAA6F;gBAC/F,UAAU,EAAE,cAAc;gBAC1B,UAAU,EAAE,cAAc;gBAC1B,UAAU,EAAE,yBAAyB;gBACrC,UAAU,EAAE,qCAAqC;gBACjD,UAAU,EAAE,gCAAgC;gBAC5C,UAAU,EAAE,qCAAqC;gBACjD,UAAU,EAAE,8BAA8B;gBAC1C,UAAU,EAAE,yCAAyC;gBACrD,UAAU,EAAE,yCAAyC;gBACrD,UAAU,EAAE,oDAAoD;gBAChE,UAAU,EACR,wEAAwE;gBAC1E,UAAU,EACR,mEAAmE;gBACrE,UAAU,EACR,wEAAwE;gBAC1E,UAAU,EAAE,yDAAyD;gBACrE,OAAO,EAAE,8BAA8B;aACxC;SACF;QACD,OAAO,EAAE;YACP,WAAW,EAAE;gBACX,MAAM,EAAE;oBACN,KAAK,EAAE;wBACL,IAAI,EAAE,wBAAwB;qBAC/B;oBACD,qBAAqB,EAAE,WAAW;oBAClC,oBAAoB,EAAE,kBAAkB;oBACxC,2BAA2B,EAAE,kCAAkC;oBAC/D,kBAAkB,EAAE,2BAA2B;oBAC/C,iBAAiB,EAAE,YAAY;oBAC/B,QAAQ,EAAE,YAAY;oBACtB,cAAc,EAAE,cAAc;oBAC9B,aAAa,EAAE,KAAK;oBACpB,aAAa,EAAE,KAAK;oBACpB,cAAc,EAAE,wCAAwC;oBACxD,cAAc,EAAE,KAAK;oBACrB,cAAc,EAAE,KAAK;oBACrB,cAAc,EAAE,KAAK;iBACtB;aACF;YACD,eAAe,EAAE;gBACf,MAAM,EAAE;oBACN,KAAK,EAAE;wBACL,IAAI,EAAE,4BAA4B;wBAClC,GAAG,EAAE,4BAA4B;qBAClC;oBACD,0BAA0B,EAAE,wBAAwB;oBACpD,qBAAqB,EACnB,4HAA4H;oBAC9H,qBAAqB,EACnB,4HAA4H;oBAC9H,sBAAsB,EACpB,4HAA4H;oBAC9H,mBAAmB,EAAE,KAAK;oBAC1B,qBAAqB,EAAE,KAAK;oBAC5B,YAAY,EAAE,KAAK;iBACpB;aACF;YACD,SAAS,EAAE;gBACT,MAAM,EAAE;oBACN,KAAK,EAAE;wBACL,IAAI,EAAE,KAAK;wBACX,GAAG,EAAE,KAAK;qBACX;oBACD,oBAAoB,EAAE,KAAK;oBAC3B,cAAc,EACZ,2GAA2G;oBAC7G,eAAe,EACb,2GAA2G;oBAC7G,gBAAgB,EACd,2GAA2G;iBAC9G;aACF;SACF;QACD,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,OAAO,EAAE,iBAAiB;gBAC1B,WAAW,EAAE,wBAAwB;gBACrC,UAAU,EAAE,wBAAwB;aACrC;YACD,KAAK,EAAE;gBACL,WAAW,EAAE,kDAAkD;gBAC/D,eAAe,EACb,oIAAoI;aACvI;YACD,WAAW,EAAE,YAAY;YACzB,SAAS,EAAE,UAAU;YACrB,eAAe,EAAE,oBAAoB;YACrC,eAAe,EAAE,KAAK;YACtB,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,eAAe,EAAE,KAAK;YACtB,YAAY,EAAE,KAAK;YACnB,mBAAmB,EAAE,KAAK;YAC1B,oBAAoB,EAAE,KAAK;YAC3B,qBAAqB,EAAE,KAAK;YAC5B,iBAAiB,EAAE,KAAK;SACzB;KACF;IACD,aAAa,EAAE;QACb,kBAAkB,EAAE,uBAAuB;QAC3C,cAAc,EAAE,8BAA8B;QAC9C,WAAW,EAAE,4BAA4B;QACzC,eAAe,EAAE,iBAAiB;QAClC,gBAAgB,EAAE,kBAAkB;QACpC,eAAe,EAAE,eAAe;QAChC,oBAAoB,EAAE,mBAAmB;QACzC,MAAM,EACJ,qHAAqH;KACxH;IACD,UAAU,EAAE;QACV,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,GAAG,EAAE,oBAAoB;gBACzB,IAAI,EAAE,oBAAoB;aAC3B;SACF;KACF;IACD,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,GAAG,EAAE,qBAAqB;gBAC1B,IAAI,EAAE,qBAAqB;aAC5B;SACF;QACD,MAAM,EAAE;YACN,IAAI,EAAE,sEAAsE;SAC7E;KACF;IACD,MAAM,EAAE;QACN,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,GAAG,EAAE,mBAAmB;gBACxB,IAAI,EAAE,mBAAmB;aAC1B;SACF;QACD,MAAM,EAAE;YACN,IAAI,EAAE,wEAAwE;SAC/E;KACF;IACD,GAAG,EAAE;QACH,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,GAAG,EAAE,gBAAgB;gBACrB,IAAI,EAAE,gBAAgB;aACvB;SACF;KACF;IACD,EAAE,EAAE;QACF,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,GAAG,EAAE,QAAQ;gBACb,IAAI,EAAE,SAAS;aAChB;SACF;KACF;IACD,GAAG,EAAE;QACH,MAAM,EAAE;YACN,WAAW,EAAE,uCAAuC;YACpD,KAAK,EAAE;gBACL,MAAM,EAAE,8BAA8B;gBACtC,IAAI,EAAE,8BAA8B;aACrC;SACF;QACD,MAAM,EAAE;YACN,SAAS,EAAE,+BAA+B;YAC1C,SAAS,EAAE,8BAA8B;SAC1C;KACF;IACD,GAAG,EAAE;QACH,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,GAAG,EAAE,gBAAgB;gBACrB,IAAI,EAAE,gBAAgB;aACvB;SACF;KACF;IACD,EAAE,EAAE;QACF,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,GAAG,EAAE,eAAe;gBACpB,IAAI,EAAE,eAAe;aACtB;SACF;KACF;IACD,MAAM,EAAE;QACN,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,GAAG,EAAE,mBAAmB;gBACxB,IAAI,EAAE,mBAAmB;aAC1B;YACD,KAAK,EAAE,uBAAuB;SAC/B;QACD,MAAM,EAAE;YACN,IAAI,EAAE,sEAAsE;SAC7E;KACF;IACD,SAAS,EAAE;QACT,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,GAAG,EAAE,sBAAsB;gBAC3B,IAAI,EAAE,sBAAsB;gBAC5B,MAAM,EAAE,wBAAwB;aACjC;SACF;QACD,MAAM,EAAE;YACN,IAAI,EAAE,yEAAyE;SAChF;QACD,UAAU,EAAE,2CAA2C;QACvD,cAAc,EAAE,+BAA+B;KAChD;IACD,KAAK,EAAE;QACL,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,UAAU,EAAE,cAAc;gBAC1B,SAAS,EAAE,yBAAyB;gBACpC,SAAS,EAAE,yBAAyB;gBACpC,gBAAgB,EAAE,8BAA8B;aACjD;YACD,WAAW,EAAE,2DAA2D;YACxE,aAAa,EAAE,0CAA0C;YACzD,SAAS,EAAE,qDAAqD;YAChE,QAAQ,EAAE,6CAA6C;SACxD;QACD,GAAG,EAAE;YACH,KAAK,EAAE,0DAA0D;YACjE,eAAe,EAAE,mCAAmC;YACpD,SAAS,EAAE,2CAA2C;SACvD;QACD,OAAO,EAAE,wCAAwC;KAClD;IACD,KAAK,EAAE;QACL,MAAM,EAAE;YACN,OAAO,EAAE,gBAAgB;YACzB,KAAK,EAAE,mCAAmC;YAC1C,WAAW,EAAE,sIAAsI;SACpJ;KACF;IACD,KAAK,EAAE;QACL,KAAK,EAAE,YAAY;QACnB,YAAY,EAAE,kDAAkD;QAChE,GAAG,EAAE,iDAAiD;QACtD,QAAQ,EAAE,cAAc;KACzB;IACD,MAAM,EAAE;QACN,KAAK,EAAE,kBAAkB;QACzB,GAAG,EAAE;YACH,UAAU,EAAE,sBAAsB;YAClC,WAAW,EAAE,eAAe;YAC5B,SAAS,EAAE,iCAAiC;YAC5C,WAAW,EAAE,0CAA0C;YACvD,UAAU,EAAE,+BAA+B;YAC3C,WAAW,EAAE,wCAAwC;SACtD;KACF;IACD,aAAa,EAAE;QACb,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE,kBAAkB;KAC5B;IACD,UAAU,EAAE;QACV,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE;YACN,UAAU,EAAE,wBAAwB;YACpC,UAAU,EAAE,gCAAgC;YAC5C,UAAU,EAAE,0BAA0B;YACtC,aAAa,EAAE,kBAAkB;YACjC,KAAK,EAAE;gBACL,GAAG,EAAE,wBAAwB;gBAC7B,IAAI,EAAE,wBAAwB;aAC/B;SACF;KACF;IACD,WAAW,EAAE;QACX,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE;YACN,iBAAiB,EAAE,oCAAoC;SACxD;QACD,MAAM,EAAE;YACN,UAAU,EAAE,kDAAkD;SAC/D;KACF;IACD,GAAG,EAAE;QACH,MAAM,EAAE;YACN,UAAU,EAAE,+BAA+B;SAC5C;QACD,WAAW,EACT,oEAAoE;KACvE;IACD,GAAG,EAAE;QACH,MAAM,EAAE;YACN,UAAU,EAAE,+BAA+B;SAC5C;QACD,WAAW,EACT,oEAAoE;KACvE;IACD,UAAU,EAAE;QACV,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,6BAA6B;QAC1C,UAAU,EAAE,wCAAwC;QACpD,OAAO,EAAE,iDAAiD;KAC3D;IACD,OAAO,EAAE;QACP,KAAK,EAAE,yBAAyB;QAChC,SAAS,EAAE,sBAAsB;QACjC,YAAY,EAAE,2BAA2B;QACzC,SAAS,EAAE,YAAY;QACvB,OAAO,EAAE,WAAW;KACrB;IACD,gBAAgB,EAAE;QAChB,KAAK,EAAE,4BAA4B;KACpC;IACD,IAAI,EAAE;QACJ,GAAG,EAAE,0CAA0C;KAChD;IACD,UAAU,EAAE;QACV,GAAG,EAAE,8CAA8C;QACnD,GAAG,EAAE,8CAA8C;KACpD;IACD,GAAG,EAAE;QACH,kBAAkB,EAAE,wBAAwB;QAC5C,MAAM,EAAE;YACN,iBAAiB,EAAE,2CAA2C;YAC9D,iBAAiB,EAAE,2CAA2C;SAC/D;KACF;IACD,OAAO,EAAE;QACP,IAAI,EAAE,EAAE,GAAG,EAAE,4BAA4B,EAAE;QAC3C,GAAG,EAAE,EAAE,GAAG,EAAE,0BAA0B,EAAE;KACzC;IACD,MAAM,EAAE;QACN,MAAM,EAAE,EAAE,QAAQ,EAAE,8BAA8B,EAAE;QACpD,KAAK,EAAE,6BAA6B;KACrC;IACD,OAAO,EAAE;QACP,oBAAoB,EAAE;YACpB,KAAK,EAAE,gCAAgC;YACvC,YAAY,EAAE,kCAAkC;YAChD,OAAO,EACL,sGAAsG;SACzG;QACD,oBAAoB,EAAE;YACpB,KAAK,EAAE,gEAAgE;YACvE,YAAY,EAAE,sCAAsC;YACpD,OAAO,EACL,oHAAoH;YACtH,wBAAwB,EACtB,qFAAqF;YACvF,2BAA2B,EAAE,qCAAqC;SACnE;QACD,qBAAqB,EAAE;YACrB,KAAK,EAAE,gCAAgC;YACvC,YAAY,EAAE,kCAAkC;YAChD,OAAO,EACL,6GAA6G;YAC/G,kBAAkB,EAAE,+BAA+B;YACnD,aAAa,EACX,oKAAoK;SACvK;KACF;IACD,YAAY,EAAE;QACZ,MAAM,EAAE;YACN,IAAI,EAAE,mDAAmD;YACzD,GAAG,EAAE,oDAAoD;YACzD,MAAM,EACJ,4EAA4E;SAC/E;QACD,KAAK,EAAE;YACL,MAAM,EAAE,WAAW;YACnB,aAAa,EAAE,uBAAuB;YACtC,KAAK,EAAE,2CAA2C;YAClD,cAAc,EAAE,4BAA4B;YAC5C,KAAK,EAAE,qBAAqB;SAC7B;QACD,KAAK,EAAE;YACL,IAAI,EAAE,gCAAgC;SACvC;KACF;IACD,UAAU,EAAE;QACV,MAAM,EAAE,EAAE,QAAQ,EAAE,4BAA4B,EAAE;KACnD;IACD,oBAAoB,EAAE;QACpB,MAAM,EAAE;YACN,QAAQ,EAAE,yDAAyD;SACpE;KACF;IACD,SAAS,EAAE;QACT,YAAY,EAAE,oBAAoB;QAClC,SAAS,EAAE,4BAA4B;QACvC,GAAG,EAAE;YACH,WAAW,EAAE,+BAA+B;YAC5C,aAAa,EAAE,uCAAuC;YACtD,OAAO,EAAE,kBAAkB;SAC5B;KACF;IACD,mBAAmB,EAAE;QACnB,sBAAsB,EAAE,qCAAqC;KAC9D;IACD,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,WAAW;IACnB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE,WAAW;IACnB,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,iBAAiB;IACzB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,cAAc;IACrB,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,aAAa;IACnB,SAAS,EAAE,QAAQ;IACnB,OAAO,EAAE,WAAW;IACpB,UAAU,EAAE,SAAS;IACrB,IAAI,EAAE,QAAQ;CACf,CAAC","sourcesContent":["import { Translations } from './loader.js';\n\nexport const de: Translations = {\n scl: {\n id: 'ID',\n name: 'Name',\n desc: 'Beschreibung',\n ord: 'Rang',\n value: 'Wert',\n EnumVal: 'Enum Wert',\n EnumType: 'Enum Typ',\n DA: 'Datenattribut',\n DO: 'Datenobjekt',\n DAType: 'Datenattribut Typ',\n DOType: 'Datenobjekt Typ',\n CDC: ' Datenklasse nach 7-3',\n Report: 'Report',\n LN: 'Logischer Knoten',\n bType: 'Basic type',\n type: 'Type',\n sAddr: 'Short address',\n valKind: 'Value kind',\n valImport: 'Import value',\n fc: 'Funktionale Einschränkung',\n LNodeType: 'Logischer Knoten Type',\n lnClass: 'Klasse logischer Knoten',\n accessControl: 'Zugriffskontrolle',\n transient: 'Datenpunkt transient',\n Val: 'Standardwert',\n dchg: 'Detenänderung ist Auslöser',\n qchg: 'Qualitätsanderung ist Auslöser',\n dupd: 'Datenupdate ist Auslöser',\n period: 'Periodisch übertragen',\n gi: 'Manuelle Abfrage',\n fixedOffs: 'Fester Offset',\n securityEnable: 'Aktive Sicherungsmaßnahmen',\n DataSet: 'Datensatz',\n Communication: 'Kommunikation',\n TrgOps: 'Triggerbedingungen',\n OptFields: 'Optionale felder',\n multicast: 'SMV nach IEC 61850 9-2',\n smpMod: 'Abtast-Art',\n smpRate: 'Abtastrate',\n nofASDU: 'Abtastpunkte pro Datenpacket',\n seqNum: 'Sequenznummer mitschicken',\n timeStamp: 'Zeitstempel mitschicken',\n dataSet: 'Datensatz-Reference mitschicken',\n reasonCode: 'Was hat den Report getriggert?',\n dataRef: 'Beschreibung der Datensatzes',\n entryID: 'Entry ID mitschicken',\n configRef: 'Konfigurations-Revision mitschicken',\n bufOvfl: 'Überlauf des internen Speichers signalisieren',\n indexed: 'Mehrere Instanzen möglich',\n buffered: 'Gepufferter Report',\n maxReport: 'Anzahl Instanzen',\n bufTime: 'Min. Intervall zwischen zwei Reports',\n intgPd: 'Intervall zwischen zwei periodischen Reports',\n SmvOpts: 'Optionale Informationen',\n refreshTime: 'Zeitstempel des Abtastwertes zu Telegram hinzufügen',\n sampleRate: 'Abtastrate zu Telegram hinzufügen',\n security: 'Potentiel in Zukunft für z.B. digitale Signature',\n synchSourceId: 'Identität der Zeitquelle zu Telegram hinzufügen',\n SampledValueControl: 'Sampled Value Kontrollblock',\n iedName: 'Referenziertes IED',\n ldInst: 'Referenziertes logisches Gerät',\n prefix: 'Präfix des logischen Knotens',\n lnInst: 'Instanz des logischen Knotens',\n virtual: 'Virtuell',\n phase: 'Phase',\n },\n settings: {\n title: 'Einstellungen',\n language: 'Sprache',\n languages: { de: 'Deutsch', en: 'Englisch (English)' },\n dark: 'Dunkles Design',\n mode: 'Profimodus',\n showieds: 'Zeige IEDs im Substation-Editor',\n selectFileButton: 'Datei auswählen',\n loadNsdTranslations: 'NSDoc-Dateien hochladen',\n invalidFileNoIdFound:\n \"Ungültiges NSDoc ({{ filename }}); kein 'id'-Attribut in der Datei gefunden\",\n invalidNsdocVersion:\n 'Die Version {{ id }} NSD ({{ nsdVersion }}) passt nicht zu der geladenen NSDoc ({{ filename }}, {{ nsdocVersion }})',\n },\n menu: {\n new: 'Neues projekt',\n title: 'Menü',\n viewLog: 'Protokoll anzeigen',\n viewDiag: 'Daignose anzeigen',\n },\n wizard: {\n title: {\n select: '{{tagName}} auswählen',\n edit: '{{tagName}} bearbeiten',\n add: '{{tagName}} hinzufügen',\n selectAp: 'ConnectedAP auswählen',\n },\n },\n openSCD: {\n loading: 'Lade Projekt {{ name }}',\n loaded: '{{ name }} geladen',\n readError: '{{ name }} Lesefehler',\n readAbort: '{{ name }} Leseabbruch',\n },\n zeroline: {\n iedsloading: 'IEDs werden geladen...',\n showieds: 'IEDs im Substation-Editor anzeigen/ausblenden',\n showfunctions: 'Funktionselemente in der Ansicht filtern',\n commmap: 'Kommunikationszuordnung',\n reportcontrol: 'Reports anzeigen',\n gsecontrol: 'GOOSEs anzeigen',\n smvcontrol: 'Sampled Values anzeigen',\n },\n editing: {\n node: 'Benutzerdefiniertes Objekt',\n created: '{{ name }} hinzugefügt',\n deleted: '{{ name }} entfernt',\n moved: '{{ name }} verschoben',\n updated: '{{ name }} bearbeitet',\n import: '{{name}} importiert',\n complex: 'Mehrere Elemente bearbeitet',\n error: {\n create: 'Konnte {{ name }} nicht hinzufügen',\n update: 'Konnte {{ name }} nicht bearbeiten',\n move: 'Konnte {{ name }} nicht verschieben',\n duplicate: 'Konnte {{name}} nicht kopieren',\n nameClash:\n '{{ parent }} enthält bereits ein {{ child }} Kind namens \"{{ name }}\"',\n idClash: 'Das Projekt enthält bereits die ID \"{{ id }}\"',\n },\n },\n validator: {\n schema: {\n title: 'Projekt validieren',\n valid: '{{ name }} erfolgreich validiert gegen XML-Schema',\n invalid: '{{ name }} Schema-Validierung fehlgeschlagen',\n fatal: 'Fataler Validierungsfehler',\n loadError: 'Konnte XML-Schema {{ name }} nicht laden',\n },\n templates: {\n title: 'Templates validieren',\n mandatoryChild:\n '{{ tag }} {{ id }} fehlt ein obligatorisches {{ childTag }}-Kind {{ childId }}',\n missingAttribute:\n 'Das Attribut {{attr}} ist verpflichted und fehlt in {{element}}',\n incorrectAttribute:\n 'Das Attribut {{attr}} in Element {{element}} folgt nicht der Definition.',\n missingReference:\n '{{tag}} \"{{name}}\" hat eine ungültige Referenz - es fehlt der definierte Typ',\n },\n },\n textfield: {\n required: 'Pflichtfeld',\n nonempty: 'Darf nicht leer sein',\n noMultiplier: 'keiner',\n unique: 'Darf sich nicht wiederholen',\n },\n compare: {\n compareButton: 'Starte Vergleich',\n attributes: 'Attribute von {{ elementName }}',\n children: 'Kindelemente von {{ elementName }}',\n filterMutables: 'Projektspzifische Unterschiede ausblenden',\n },\n log: {\n name: 'Protokoll',\n placeholder:\n 'Hier werden Änderungen, Fehler und andere Meldungen angezeigt.',\n snackbar: {\n show: 'Anzeigen',\n placeholder: 'Keine Fehler',\n },\n },\n history: {\n name: 'SCL History',\n placeholder: 'Keine History',\n noEntries: 'Keine Einträge in der SCL History',\n },\n diag: {\n name: 'Daignoseübersicht',\n zeroissues: 'Es konnten keine Fehler in dem Projekt gefunden werden.',\n placeholder: 'Hier werden Validierungsfehler angezeigt.',\n missingnsd:\n 'DataTypeTemplates können nicht validiert werden. Das Projekt muss die Version 2007B4 oder höher haben.',\n },\n plugins: {\n heading: 'Plug-ins',\n editor: 'Editor',\n menu: 'Menüeintrag',\n requireDoc: 'Benötigt Dokument',\n top: 'oben',\n middle: 'mittig',\n bottom: 'unten',\n validator: 'Validator',\n add: {\n heading: 'Benutzerdefinierte plug-in',\n warning: `Hier können Sie benutzerdefinierte plug-ins hinzufügen.\n OpenSCD übernimmt hierfür keine Gewähr.`,\n name: 'Name',\n nameHelper: 'Lokaler Name der plug-in (frei wählbar)',\n src: 'URL',\n srcHelper: 'Die plug-in-URL des Herstellers',\n },\n },\n substation: {\n name: 'Schaltanlage',\n missing: 'Keine Schaltanlage',\n wizard: {\n nameHelper: 'Name der Schaltanlage',\n descHelper: 'Beschreibung der Schaltanlage',\n title: {\n add: 'Schaltanlage hinzufügen',\n edit: 'Schaltanlage bearbeiten',\n },\n },\n action: {\n addvoltagelevel: 'Spannungsebene hinzufügen',\n updatesubstation: 'Schaltanlage \"{{name}}\" bearbeitet',\n },\n clone: {\n redirect: 'LNode mitnehmen',\n cloneclose: 'Einmal klonen',\n cloneproc: 'Mehrfach klonen',\n newname: 'Klonname',\n },\n },\n iededitor: {\n iedSelector: 'IED auswählen',\n lnFilter: 'Filter für logische Knoten',\n missing: 'Kein IED vorhanden',\n toggleChildElements: 'Kindelemente umschalten',\n settings: 'Services für IED or AccessPoint',\n createIed: 'Virtuelles IED erstellen',\n addAccessPoint: 'AccessPoint hinzufügen',\n wizard: {\n daTitle: 'DA Informationen anzeigen',\n doTitle: 'DO Informationen anzeigen',\n nsdocDescription: 'NSDoc Beschreibung',\n doiDescription: 'Beschreibung des DOI',\n daiDescription: 'Beschreibung des DAI',\n ied: 'IED',\n accessPoint: 'Zugangspunkt',\n lDevice: 'Logisches Gerät',\n lnPrefix: 'LN Präfix',\n lnDescription: 'LN Beschreibung',\n lnInst: 'LN Instanz',\n doName: 'DO Name',\n doCdc: 'DO Common Data Class',\n daName: 'DA Name',\n daFc: 'DA Functional Constraint',\n daBType: 'DA Typ',\n daValue: 'DA Wert',\n },\n createDialog: {\n iedName: 'IED Name',\n nameFormatError: 'IED Name darf keine Leerzeichen enthalten',\n nameUniqueError: 'IED Name ist bereits vergeben',\n },\n addAccessPointDialog: {\n title: 'AccessPoint hinzufügen',\n nameHelper: 'AccessPoint Name',\n descHelper: 'AccessPoint Beschreibung',\n apName: 'AccessPoint Name',\n createServerAt: 'ServerAt hinzufügen',\n selectAccessPoint: 'AccessPoint auswählen',\n serverAtDesc: 'ServerAt Beschreibung',\n nameFormatError: 'AccessPoint Name darf keine Leerzeichen enthalten',\n nameUniqueError: 'AccessPoint Name ist bereits vergeben',\n nameTooLongError: 'AccessPoint Name ist zu lang',\n },\n addLDeviceDialog: {\n title: 'LDevice hinzufügen',\n inst: 'LDevice inst',\n desc: 'LDevice Beschreibung',\n instRequiredError: 'LDevice inst ist erforderlich',\n instFormatError: 'LDevice inst darf keine Leerzeichen enthalten',\n instUniqueError: 'LDevice inst ist bereits vergeben',\n instTooLongError: 'LDevice inst ist zu lang',\n },\n addLnDialog: {\n title: 'LN hinzufügen',\n amount: 'Menge',\n prefix: 'Prefix',\n filter: 'Logical Node Types filtern',\n noResults: 'Keine Logical Node Types gefunden',\n },\n },\n accesspoint: {\n wizard: {\n nameHelper: 'AccessPoint Name',\n descHelper: 'AccessPoint Beschreibung',\n title: {\n add: 'AccessPoint hinzufügen',\n edit: 'AccessPoint bearbeiten',\n delete: 'AccessPoint mit Abhängigkeiten entfernen',\n references: 'Gelöschte Abhängikeiten',\n },\n },\n },\n ied: {\n wizard: {\n nameHelper: 'Name des IED',\n descHelper: 'Beschreibung des IED',\n manufacturerHelper: 'Hersteller des IED',\n title: {\n edit: 'IED bearbeiten',\n delete: 'IED mit Abhängigkeiten entfernen',\n references: 'Gelöschte Abhängikeiten',\n },\n },\n action: {\n updateied: 'IED \"{{name}}\" bearbeitet',\n deleteied: 'IED \"{{name}}\" entfernt',\n },\n },\n ldevice: {\n wizard: {\n nameHelper: 'Name des Logisches Gerät',\n noNameSupportHelper: 'IED unterstützt keine funktionale Benennung',\n descHelper: 'Beschreibung des Logisches Gerät',\n instHelper: 'Instanz des Logisches Gerät',\n title: {\n edit: 'Logisches Gerät bearbeiten',\n },\n },\n },\n ln: {\n wizard: {\n title: {\n edit: 'LN bearbeiten',\n },\n descHelper: 'Logical Node Beschreibung',\n lnTypeHelper: 'Logical Node Typ',\n prefixHelper: 'Prefix des Logical Nodes',\n lnClassHelper: 'Logical Node Klasse',\n instHelper: 'Instanz',\n },\n },\n ln0: {\n wizard: {\n title: {\n edit: 'LN0 bearbeiten',\n },\n descHelper: 'Logical Node Beschreibung',\n lnTypeHelper: 'Logical Node Typ',\n lnClassHelper: 'Logical Node Klasse',\n instHelper: 'Instanz',\n },\n },\n powertransformer: {\n wizard: {\n nameHelper: '`Name des Leistungstransformators',\n descHelper: 'Beschreibung des Leistungstransformators',\n typeHelper: 'Type des Leistungstransformators',\n title: {\n add: 'Leistungstransformator hinzufügen',\n edit: 'Leistungstransformator bearbeiten',\n },\n },\n },\n voltagelevel: {\n name: 'Spannungsebene',\n wizard: {\n nameHelper: 'Name der Spannungsebene',\n descHelper: 'Beschreibung der Spannungsebene',\n nomFreqHelper: 'Nennfrequenz',\n numPhaseHelper: 'Phasenanzahl',\n voltageHelper: 'Nennspannung',\n title: {\n add: 'Spannungsebene hinzufügen',\n edit: 'Spannungsebene bearbeiten',\n },\n },\n action: {\n updateVoltagelevel: 'Spannungsebene \"{{name}}\" bearbeitet',\n },\n },\n line: {\n name: 'Linie',\n wizard: {\n nameHelper: 'Liniename',\n descHelper: 'Beschreibung des Linies',\n typeHelper: 'Type des Linies',\n title: {\n add: 'Linie hinzufügen',\n edit: 'Linie bearbeiten',\n },\n },\n action: {\n updateLine: 'Edited line \"{{name}}\"',\n },\n },\n process: {\n name: 'Process',\n wizard: {\n nameHelper: 'Processname',\n descHelper: 'Beschreibung des Processes',\n typeHelper: 'Type des Processes',\n title: {\n add: 'Process hinzufügen',\n edit: 'Process bearbeiten',\n },\n },\n action: {\n updateProcess: 'Edited Process \"{{name}}\"',\n },\n },\n bay: {\n name: 'Feld',\n wizard: {\n nameHelper: 'Feldname',\n descHelper: 'Beschreibung des Feldes',\n title: {\n add: 'Feld hinzufügen',\n edit: 'Feld bearbeiten',\n },\n },\n action: {\n updateBay: 'Feld \"{{name}}\" bearbeitet',\n },\n },\n conductingequipment: {\n name: 'Primärelement',\n wizard: {\n nameHelper: 'Name des Primärelements',\n descHelper: 'Beschreibung des Primärelements',\n typeHelper: 'Type des Primärelements',\n title: {\n add: 'Primärelement hinzufügen',\n edit: 'Primärelement bearbeiten',\n },\n },\n unknownType: 'Unbekannter Typ',\n },\n connectivitynode: {\n name: 'Verbindungsknoten',\n wizard: {\n nameHelper: 'Verbindungsknoten Name',\n pathNameHelper: 'Verbindungsknoten Beschreibung',\n title: {\n add: 'Verbindungsknoten hinzufügen',\n edit: 'Verbindungsknoten bearbeiten',\n },\n },\n },\n terminal: {\n name: 'Anschluss',\n wizard: {\n nameHelper: 'Anschluss Name',\n connectivityNodeHelper: 'Anschluss Verbindungsknoten',\n cNodeNameHelper: 'Anschluss Verbindungsknoten Name',\n title: {\n add: 'Anschlussknoten hinzufügen',\n edit: 'Anschlussknoten bearbeiten',\n },\n },\n },\n templates: {\n name: 'Data Type Templates',\n missing: 'DataTypeTemplates fehlen',\n add: 'DataTypeTemplates hinzufügen',\n },\n subscription: {\n none: 'Keine Verbindung vorhanden',\n connect: 'Daten-Attribut verbunden',\n disconnect: 'Daten-Attribute Verbindung gelöst',\n subscriber: {\n subscribed: 'Verbunden',\n notSubscribed: 'Nicht Verbunden',\n availableToSubscribe: 'Kann verbunden werden',\n partiallySubscribed: 'Teilweise verbunden',\n noControlBlockSelected: 'Keine Kontrollblock ausgewählt',\n noIedSelected: 'Keine IED ausgewählt',\n },\n goose: {\n publisher: {\n title: 'GOOSE-Publizierer',\n subscriberTitle: 'Verbunden mit {{ selected }}',\n },\n subscriber: {\n iedListTitle: 'Verbunden mit GOOSE Meldungen',\n publisherTitle: 'GOOSE Nachricht verbunden mit {{ selected }}',\n },\n view: {\n publisherView: 'Publisher | Subscriber',\n subscriberView: 'Subscriber | Publisher',\n },\n },\n smv: {\n publisher: {\n title: 'SampledValue-Publizierer',\n subscriberTitle: 'Verbunden mit {{ selected }}',\n },\n subscriber: {\n iedListTitle: 'Verbunden mit Sampled Values',\n publisherTitle: 'Sampled Value verbunden mit {{ selected }}',\n },\n view: {\n publisherView: 'Publisher | Subscriber',\n subscriberView: 'Subscriber | Publisher',\n },\n },\n binding: {\n extRefList: {\n title: 'Logische Knoten für ausgewählten Daten-Attribute',\n noSelection: 'Kein Daten-Attribute ausgewählt',\n noSubscribedLNs: 'Kein Verbinding zu dem ausgewählten Daten-Attribute',\n noAvailableLNs:\n 'Keine Verbindung zu dem ausgewählten Daten-Attribute möglich',\n },\n },\n laterBinding: {\n extRefList: {\n title: 'Für Ausgewählte Daten-Attribut Verfügbare Verbindung',\n noSelection: 'Kein Daten-Attribut ausgewählt',\n noSubscribedExtRefs: 'Keine bestehenden Verbindungen',\n noAvailableExtRefs: 'Keine verfügbaren Eingänge vorhanden',\n },\n },\n SampledValueControl: {\n controlBlockList: {\n title: 'Sample Value Meldungen',\n noControlBlockFound: 'Keine Sampled Values gefunden',\n },\n },\n GSEControl: {\n controlBlockList: {\n title: 'GOOSE-Meldungen',\n noControlBlockFound: 'Keine GOOSEs gefunden',\n },\n },\n },\n protocol104: {\n toggleChildElements: 'Kindelemente umschalten',\n view: {\n valuesView: 'Werte',\n networkView: 'Netzwerk',\n },\n mappedCmv:\n 'Gemäß dem IEC 61850-80-1 Standard ist eine \"{{ cdc }}\" zuordnung über CMV erforderlich',\n values: {\n missing: 'Kein IED mit 104 Adressen',\n removeAddresses: 'Alle Adressen entfernen',\n removedAddresses:\n '{{ nrOfAddresses }} Addressen von DOI \"{{ name }}\" entfernt',\n addedAddress:\n '104-Addressen zu DO \"{{ name }}\" in LN(0) \"{{ lnName }}\" hinzugefügt',\n signalNames: {\n tiNumber1: 'Einzelwertinformation',\n tiNumber3: 'Zweipunktinformation',\n tiNumber5: 'Stufenpositionsinformation',\n tiNumber7: 'Bit string von 32 Bit',\n tiNumber9: 'Gemessener Wert, normalisierter Wert',\n tiNumber11: 'Gemessener Wert, skalierte Wert',\n tiNumber13: 'Gemessener Wert, Kurz-Gleitkommazahl',\n tiNumber15: 'Integrierte Summen',\n tiNumber20:\n 'Verpackte Einzelwertinformation mit Statusänderungserkennung',\n tiNumber21:\n 'Gemessener Wert, normalisierter Wert ohne Qualitätsbeschreibung',\n tiNumber30: 'Einzelwertinformation mit Zeitstempel CP56Time2a',\n tiNumber31: 'Zweipunktinformation mit Zeitstempel CP56Time2a',\n tiNumber32: 'Stufenpositionsinformation mit Zeitstempel CP56Time2a',\n tiNumber33: 'Bit string von 32 Bit mit Zeitstempel CP56Time2a',\n tiNumber34:\n 'Gemessener Wert, normalisierter Wert mit Zeitstempel CP56Time2a',\n tiNumber35:\n 'Gemessener Wert, skalierte Wert mit Zeitstempel CP56Time2a',\n tiNumber36:\n 'Gemessener Wert, Kurz-Gleitkommazahl mit Zeitstempel CP56Time2a',\n tiNumber37: 'Integrierte Summen mit Zeitstempel CP56Time2a',\n tiNumber38: 'Ereignis von Schutzeinrichtung mit Zeitstempel CP56Time2a',\n tiNumber39:\n 'Verpackte Startereignisse von Schutzeinrichtung mit Zeitstempel CP56Time2a',\n tiNumber40:\n 'Verpackte Ausgangsschaltkreisinformationen von Schutzeinrichtung mit Zeitstempel CP56Time2a',\n tiNumber45: 'Einzelbefehl',\n tiNumber46: 'Doppelbefehl',\n tiNumber47: 'Regelungsschritt-Befehl',\n tiNumber48: 'Sollwertbefehl, normalisierter Wert',\n tiNumber49: 'Sollwertbefehl, skalierte Wert',\n tiNumber50: 'Sollwertbefehl, Kurz-Gleitkommazahl',\n tiNumber51: 'Bit string von 32 Bit Befehl',\n tiNumber58: 'Einzelbefehl mit Zeitstempel CP56Time2a',\n tiNumber59: 'Doppelbefehl mit Zeitstempel CP56Time2a',\n tiNumber60: 'Regelungsschritt-Befehl mit Zeitstempel CP56Time2a',\n tiNumber61:\n 'Gemessener Wert, normalisierter Wert Befehl mit Zeitstempel CP56Time2a',\n tiNumber62:\n 'Gemessener Wert, skalierte Wert Befehl mit Zeitstempel CP56Time2a',\n tiNumber63:\n 'Gemessener Wert, Kurz-Gleitkommazahl Befehl mit Zeitstempel CP56Time2a',\n tiNumber64: 'Bit string von 32 Bit Befehl mit Zeitstempel CP56Time2a',\n default: 'Keine Beschreibung verfügbar',\n },\n },\n network: {\n connectedAp: {\n wizard: {\n title: {\n edit: 'ConnectedAP bearbeiten',\n },\n redundancySwitchLabel: 'Redundanz',\n redundancyGroupTitle: 'Redundanzgruppen',\n noRedundancyGroupsAvailable: 'Keine Redundanzgruppen verfügbar',\n addRedundancyGroup: 'Redundanzruppe hinzufügen',\n stationTypeHelper: 'Anlagentyp',\n ipHelper: 'IP Adresse',\n ipSubnetHelper: 'Subnetzmaske',\n wFactorHelper: '???',\n kFactorHelper: '???',\n timeout0Helper: 'Time-out Verbindungsaufbau in Sekunden',\n timeout1Helper: '???',\n timeout2Helper: '???',\n timeout3Helper: '???',\n },\n },\n redundancyGroup: {\n wizard: {\n title: {\n edit: 'Redundanzgruppe bearbeiten',\n add: 'Redundanzgruppe hinzufügen',\n },\n redundancyGroupNumberLabel: 'Redundanzgruppennummer',\n addedLRedundancyGroup:\n '??? {{ rGNumber }} ? SubNetwork[name=\"{{ subNetworkName }}\"] > ConnectedAP[apName=\"{{ apName }}\"][iedName=\"{{ iedName }}\"]',\n editedRedundancyGroup:\n '??? {{ rGNumber }} ? SubNetwork[name=\"{{ subNetworkName }}\"] > ConnectedAP[apName=\"{{ apName }}\"][iedName=\"{{ iedName }}\"]',\n removedRedundancyGroup:\n '??? {{ rGNumber }} ? SubNetwork[name=\"{{ subNetworkName }}\"] > ConnectedAP[apName=\"{{ apName }}\"][iedName=\"{{ iedName }}\"]',\n logicLinkGroupTitle: '???',\n noLogicLinksAvailable: '???',\n addLogicLink: '???',\n },\n },\n logicLink: {\n wizard: {\n title: {\n edit: '???',\n add: '???',\n },\n logicLinkNumberLabel: '???',\n addedLogicLink:\n '??? SubNetwork[name=\"{{ subNetworkName }}\"] > ConnectedAP[apName=\"{{ apName }}\"][iedName=\"{{ iedName }}\"]',\n editedLogicLink:\n '??? SubNetwork[name=\"{{ subNetworkName }}\"] > ConnectedAP[apName=\"{{ apName }}\"][iedName=\"{{ iedName }}\"]',\n removedLogicLink:\n '??? SubNetwork[name=\"{{ subNetworkName }}\"] > ConnectedAP[apName=\"{{ apName }}\"][iedName=\"{{ iedName }}\"]',\n },\n },\n },\n wizard: {\n title: {\n doiInfo: 'DOI Information',\n addressEdit: '104-Adresse bearbeiten',\n addAddress: '104-Adresse hinzufügen',\n },\n error: {\n ioaConflict: 'IOA-Konflikt innerhalb der CASDU-Nummer gefunden',\n addAddressError:\n 'Invalide Template Struktur, DAI kann nicht hinzugefügt werden (DO: \"{{ doType }}\", CDC: \"{{ cdc }}\", Structure: \"{{ structure }}\")',\n },\n casduHelper: 'CASDU Wert',\n ioaHelper: 'IOA Wert',\n monitorTiHelper: 'TI Wert überwachen',\n monitorInverted: '???',\n monitorCheck: '???',\n controlTiHelper: '???',\n controlInverted: '???',\n controlCheck: '???',\n expectedValueHelper: '???',\n unitMultiplierHelper: '???',\n scaleMultiplierHelper: '???',\n scaleOffsetHelper: '???',\n },\n },\n 'compare-ied': {\n selectProjectTitle: 'Lade IEDs aus Vorlage',\n selectIedTitle: 'IEDs zum Vergleich auswählen',\n resultTitle: 'Vergleiche IED mit Vorlage',\n projectIedTitle: 'IEDs im Projekt',\n templateIedTitle: 'IEDs aus Vorlage',\n selectIedButton: 'IED auswählen',\n selectTemplateButton: 'Vorlage auswählen',\n noDiff:\n 'Keine Unterschiede zwischen IED Projekt \"{{ projectIedName }}\" und IED aus Vorlage \"{{ templateIedName }}\" gefunden',\n },\n 'enum-val': {\n wizard: {\n title: {\n add: 'EnumVal hinzufügen',\n edit: 'EnumVal bearbeiten',\n },\n },\n },\n enum: {\n wizard: {\n title: {\n add: 'EnumType hinzufügen',\n edit: 'EnumType bearbeiten',\n },\n },\n action: {\n edit: 'DAType ID \"{{oldId}}\" und deren DA-Referenzen geändert zu {{newId}} ',\n },\n },\n datype: {\n wizard: {\n title: {\n add: 'DAType hinzufügen',\n edit: 'DAType bearbeiten',\n },\n },\n action: {\n edit: 'EnumType ID \"{{oldId}}\" und deren DA-Referenzen geändert zu {{newId}} ',\n },\n },\n bda: {\n wizard: {\n title: {\n add: 'BDA hinzufügen',\n edit: 'BDA bearbeiten',\n },\n },\n },\n da: {\n wizard: {\n title: {\n add: 'Add DA',\n edit: 'Edit DA',\n },\n },\n },\n dai: {\n wizard: {\n valueHelper: 'Der Wert sollte vom Typ sein {{type}}',\n title: {\n create: 'DAI \"{{daiName}}\" hinzufügen',\n edit: 'DAI \"{{daiName}}\" bearbeiten',\n },\n },\n action: {\n createdai: 'DAI \"{{daiName}}\" hinzugefügt',\n updatedai: 'DAI \"{{daiName}}\" bearbeitet',\n },\n },\n sdo: {\n wizard: {\n title: {\n add: 'SDO hinzufügen',\n edit: 'SDO bearbeiten',\n },\n },\n },\n do: {\n wizard: {\n title: {\n add: 'DO hinzufügen',\n edit: 'DO bearbeiten',\n },\n },\n },\n dotype: {\n wizard: {\n title: {\n add: 'DOType hinzufügen',\n edit: 'DOType bearbeiten',\n },\n enums: 'Standard Enumerations',\n },\n action: {\n edit: 'DOType ID \"{{oldId}}\" und deren DO-Referenzen geändert zu {{newId}} ',\n },\n },\n lnodetype: {\n wizard: {\n title: {\n add: 'LNodeType hinzufügen',\n edit: 'LNodeType bearbeiten',\n select: 'Data Objects auswählen',\n },\n },\n action: {\n edit: 'LNodeType ID \"{{oldId}}\" und deren LN-Referenzen geändert zu {{newId}} ',\n },\n autoimport: 'Vordefinierte OpenSCD LN Klasse verwenden',\n missinglnclass: 'Vordefinierte LN Klasse fehlt',\n },\n lnode: {\n wizard: {\n title: {\n selectIEDs: 'Auswahl IEDs',\n selectLDs: 'Auswahl logische Geräte',\n selectLNs: 'Auswahl logische Knoten',\n selectLNodeTypes: 'Auswahl logische Knoten Type',\n },\n placeholder: 'Bitte laden Sie eine SCL-Datei, die IED-Elemente enthält.',\n uniquewarning: 'Logische Knoten Klasse existiert bereits',\n reference: 'Referenz auf bestehenden logischen Knoten erstellen',\n instance: 'Referenz auf logischen Knoten Typ erstellen',\n },\n log: {\n title: 'LNode vom Type {{lnClass}} kann nicht hinzugefügt werden',\n nonuniquelninst: 'Keine eindeutige Instanz (lnInst)',\n uniqueln0: 'Nur eine Instanz von {{lnClass}} zulässig',\n },\n tooltip: 'Referenz zu logischen Knoten erstellen',\n },\n guess: {\n wizard: {\n primary: 'Inhalt erraten',\n title: 'Auswahl Steuerungsmodel(ctlModel)',\n description: `Schaltgeräten im Feld können oftmals bestimmten Steuerungsmodellen zugeordnet werden. \\n Damit wird die Abschätzung oftmals genauer.`,\n },\n },\n merge: {\n title: 'Vereinigen',\n defaultTitle: '{{ tag }} {{ source }} mit {{ sink }} vereinigen',\n log: '{{ tag }} {{ source }} mit {{ sink }} vereinigt',\n children: 'Kindelemente',\n },\n import: {\n title: 'IEDs importieren',\n log: {\n successful: 'IED {{name}} geladen',\n parsererror: 'Parser Fehler',\n loaderror: 'Datei kann nicht geladen werden',\n importerror: 'IED Element kann nicht importiert werden',\n missingied: 'Kein IED Element in der Datei',\n nouniqueied: 'IED Element {{ name }} bereits geladen',\n },\n },\n communication: {\n name: 'Netzwerkkonfiguration',\n missing: 'Kein Subnetzwerk',\n },\n subnetwork: {\n name: 'Subnetzwerk',\n wizard: {\n nameHelper: 'Name des Subnetzwerkes',\n descHelper: 'Beschreibung des Subnetzwerkes',\n typeHelper: 'Netzwerktyp (Bsp. 8-MMS)',\n bitrateHelper: 'Übertragungsrate',\n title: {\n add: 'Subnetzwerk hinzufügen',\n edit: 'Subnetzwerk bearbeiten',\n },\n },\n },\n connectedap: {\n name: 'Schnittstelle',\n wizard: {\n addschemainsttype: 'XMLSchema-instance type hinzufügen',\n },\n action: {\n addaddress: 'Adressfeld bearbeitet ({{iedName}} - {{apName}})',\n },\n },\n gse: {\n action: {\n addaddress: 'GSE bearbeitet ({{identity}})',\n },\n missingaccp:\n 'AccessPoint is nicht verbunden. GSE kann nicht hinzugefügt werden.',\n },\n smv: {\n action: {\n addaddress: 'SMV bearbeitet ({{identity}})',\n },\n missingaccp:\n 'AccessPoint is nicht verbunden. SMV kann nicht hinzugefügt werden.',\n },\n subscriber: {\n title: 'Subscriber Update',\n description: 'GOOSE Ziele aktualisieren: ',\n nonewitems: 'keine neuen IEDName Elemente notwendig',\n message: '{{updatenumber}} IEDName Element(e) hinzugefügt',\n },\n commmap: {\n title: 'Kommunikationszuordnung',\n connectCB: '{{cbType}} verbinden',\n connectToIED: 'Verbinden mit {{iedName}}',\n sourceIED: 'Quellgerät',\n sinkIED: 'Zielgerät',\n },\n updatesubstation: {\n title: 'Schaltanlage aktualisieren',\n },\n code: {\n log: 'Element im XML Editor angepasst: {{id}}',\n },\n updatedesc: {\n abb: 'Signalbeschreibungen zu ABB IEDs hinzugefügt',\n sel: 'Signalbeschreibungen zu SEL IEDs hinzugefügt',\n },\n sld: {\n substationSelector: 'Schaltanlage auswählen',\n wizard: {\n xCoordinateHelper: 'X-Koordinate im Einphasenersatzschaltbild',\n yCoordinateHelper: 'Y-Koordinate im Einphasenersatzschaltbild',\n },\n },\n dataset: {\n fcda: { add: 'Daten-Attribute hinzufügen' },\n fcd: { add: 'Daten-Objekte hinzufügen' },\n },\n report: {\n wizard: { location: 'Ablageort der Reports wählen' },\n rptID: 'Report-Kontrolblock Kennung',\n },\n cleanup: {\n unreferencedDataSets: {\n title: 'Nicht referenzierte Datensätze',\n deleteButton: 'Ausgewählten Datensatz entfernen',\n tooltip:\n 'DatenSätze ohne Verweis auf einen zugehörigen GOOSE-, Log-, Report- oder Sampled Value Control Block',\n },\n unreferencedControls: {\n title: 'Steuerblöcke mit einem fehlenden oder ungültigen Kontrollblock',\n deleteButton: 'Ausgewählte Kontrollblöcke entfernen',\n tooltip:\n 'Steuerblöcke ohne Verweis auf ein vorhandenes Datensatz. Das ist kein Fehler und eher üblich for allem für Reports',\n addressDefinitionTooltip:\n 'Für diesen Kontrollblock existiert eine Adressdefinition im Abschnitt Kommunikation',\n alsoRemoveFromCommunication: 'Kommunikation SMV/GSE mit entfernen',\n },\n unreferencedDataTypes: {\n title: 'Nicht referenzierte Datentypen',\n deleteButton: 'Ausgewählte Datentypen entfernen',\n tooltip:\n 'Datentypen, die nicht in einem logischen Knoten oder einem anderen verwendeten Datentyp referenziert werden',\n alsoRemoveSubTypes: 'Entfernen Sie auch Untertypen',\n stackExceeded:\n 'Maximale Aufrufe überschritten. Maximal zulässig sind {{maxStackDepth}}. Nicht alle überflüßigen Datentypen sind entfernt und das Project is potentiel beschädigt.',\n },\n },\n controlblock: {\n action: {\n edit: '{{type}} \"{{name}}\" in IED {{iedName}} bearbeitet',\n add: '{{type}} \"{{name}}\" zu IED {{iedName}} hinzugefügt',\n remove:\n '{{type}} \"{{name}}\" and referenzierte Element von IED {{iedName}} entfernt',\n },\n hints: {\n source: 'Quell-IED',\n missingServer: 'Kein Server vorhanden',\n exist: '{{type}} mit dem Namen {{name}} existiert',\n noMatchingData: 'Keine Datenübereinstimmung',\n valid: 'Kann kopiert werden',\n },\n label: {\n copy: 'Kopie in anderen IEDs ertellen',\n },\n },\n gsecontrol: {\n wizard: { location: 'Ablageort der GOOSE wählen' },\n },\n samvpledvaluecontrol: {\n wizard: {\n location: 'Ablageort des Select Sampled Value Control Block wählen',\n },\n },\n publisher: {\n selectbutton: '{{type}} auswählen',\n nodataset: 'Kein verbundener Datensatz',\n smv: {\n commsetting: 'Kommunikationsparameter (SMV)',\n noconnectedap: 'Fehlende Verbindung zu einem Netzwerk',\n smvopts: 'Optionale Felder',\n },\n },\n exportCommunication: {\n noCommunicationSection: 'Die Communication-Sektion ist leer.',\n },\n add: 'Hinzufügen',\n new: 'Neu',\n remove: 'Entfernen',\n edit: 'Bearbeiten',\n move: 'Verschieben',\n create: 'Erstellen',\n save: 'Speichern',\n saveAs: 'Speichern unter',\n open: 'Öffnen',\n reset: 'Zurücksetzen',\n cancel: 'Abbrechen',\n close: 'Schließen',\n filter: 'Filter',\n filters: 'Filters',\n undo: 'Rückgängig',\n redo: 'Wiederholen',\n duplicate: 'Klonen',\n connect: 'Verbinden',\n disconnect: 'Trennen',\n next: 'Weiter',\n};\n"]}
1
+ {"version":3,"file":"de.js","sourceRoot":"","sources":["../../src/translations/de.ts"],"names":[],"mappings":"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","sourcesContent":["import { Translations } from './loader.js';\n\nexport const de: Translations = {\n scl: {\n id: 'ID',\n name: 'Name',\n desc: 'Beschreibung',\n ord: 'Rang',\n value: 'Wert',\n EnumVal: 'Enum Wert',\n EnumType: 'Enum Typ',\n DA: 'Datenattribut',\n DO: 'Datenobjekt',\n DAType: 'Datenattribut Typ',\n DOType: 'Datenobjekt Typ',\n CDC: ' Datenklasse nach 7-3',\n Report: 'Report',\n LN: 'Logischer Knoten',\n bType: 'Basic type',\n type: 'Type',\n sAddr: 'Short address',\n valKind: 'Value kind',\n valImport: 'Import value',\n fc: 'Funktionale Einschränkung',\n LNodeType: 'Logischer Knoten Type',\n lnClass: 'Klasse logischer Knoten',\n accessControl: 'Zugriffskontrolle',\n transient: 'Datenpunkt transient',\n Val: 'Standardwert',\n dchg: 'Detenänderung ist Auslöser',\n qchg: 'Qualitätsanderung ist Auslöser',\n dupd: 'Datenupdate ist Auslöser',\n period: 'Periodisch übertragen',\n gi: 'Manuelle Abfrage',\n fixedOffs: 'Fester Offset',\n securityEnable: 'Aktive Sicherungsmaßnahmen',\n DataSet: 'Datensatz',\n Communication: 'Kommunikation',\n TrgOps: 'Triggerbedingungen',\n OptFields: 'Optionale felder',\n multicast: 'SMV nach IEC 61850 9-2',\n smpMod: 'Abtast-Art',\n smpRate: 'Abtastrate',\n nofASDU: 'Abtastpunkte pro Datenpacket',\n seqNum: 'Sequenznummer mitschicken',\n timeStamp: 'Zeitstempel mitschicken',\n dataSet: 'Datensatz-Reference mitschicken',\n reasonCode: 'Was hat den Report getriggert?',\n dataRef: 'Beschreibung der Datensatzes',\n entryID: 'Entry ID mitschicken',\n configRef: 'Konfigurations-Revision mitschicken',\n bufOvfl: 'Überlauf des internen Speichers signalisieren',\n indexed: 'Mehrere Instanzen möglich',\n buffered: 'Gepufferter Report',\n maxReport: 'Anzahl Instanzen',\n bufTime: 'Min. Intervall zwischen zwei Reports',\n intgPd: 'Intervall zwischen zwei periodischen Reports',\n SmvOpts: 'Optionale Informationen',\n refreshTime: 'Zeitstempel des Abtastwertes zu Telegram hinzufügen',\n sampleRate: 'Abtastrate zu Telegram hinzufügen',\n security: 'Potentiel in Zukunft für z.B. digitale Signature',\n synchSourceId: 'Identität der Zeitquelle zu Telegram hinzufügen',\n SampledValueControl: 'Sampled Value Kontrollblock',\n iedName: 'Referenziertes IED',\n ldInst: 'Referenziertes logisches Gerät',\n prefix: 'Präfix des logischen Knotens',\n lnInst: 'Instanz des logischen Knotens',\n virtual: 'Virtuell',\n phase: 'Phase',\n },\n settings: {\n title: 'Einstellungen',\n language: 'Sprache',\n languages: { de: 'Deutsch', en: 'Englisch (English)' },\n dark: 'Dunkles Design',\n mode: 'Profimodus',\n showieds: 'Zeige IEDs im Substation-Editor',\n selectFileButton: 'Datei auswählen',\n loadNsdTranslations: 'NSDoc-Dateien hochladen',\n invalidFileNoIdFound:\n \"Ungültiges NSDoc ({{ filename }}); kein 'id'-Attribut in der Datei gefunden\",\n invalidNsdocVersion:\n 'Die Version {{ id }} NSD ({{ nsdVersion }}) passt nicht zu der geladenen NSDoc ({{ filename }}, {{ nsdocVersion }})',\n },\n menu: {\n new: 'Neues projekt',\n title: 'Menü',\n viewLog: 'Protokoll anzeigen',\n viewDiag: 'Daignose anzeigen',\n },\n wizard: {\n title: {\n select: '{{tagName}} auswählen',\n edit: '{{tagName}} bearbeiten',\n add: '{{tagName}} hinzufügen',\n selectAp: 'ConnectedAP auswählen',\n },\n },\n openSCD: {\n loading: 'Lade Projekt {{ name }}',\n loaded: '{{ name }} geladen',\n readError: '{{ name }} Lesefehler',\n readAbort: '{{ name }} Leseabbruch',\n },\n zeroline: {\n iedsloading: 'IEDs werden geladen...',\n showieds: 'IEDs im Substation-Editor anzeigen/ausblenden',\n showfunctions: 'Funktionselemente in der Ansicht filtern',\n commmap: 'Kommunikationszuordnung',\n reportcontrol: 'Reports anzeigen',\n gsecontrol: 'GOOSEs anzeigen',\n smvcontrol: 'Sampled Values anzeigen',\n },\n editing: {\n node: 'Benutzerdefiniertes Objekt',\n created: '{{ name }} hinzugefügt',\n deleted: '{{ name }} entfernt',\n moved: '{{ name }} verschoben',\n updated: '{{ name }} bearbeitet',\n import: '{{name}} importiert',\n complex: 'Mehrere Elemente bearbeitet',\n error: {\n create: 'Konnte {{ name }} nicht hinzufügen',\n update: 'Konnte {{ name }} nicht bearbeiten',\n move: 'Konnte {{ name }} nicht verschieben',\n duplicate: 'Konnte {{name}} nicht kopieren',\n nameClash:\n '{{ parent }} enthält bereits ein {{ child }} Kind namens \"{{ name }}\"',\n idClash: 'Das Projekt enthält bereits die ID \"{{ id }}\"',\n },\n },\n validator: {\n schema: {\n title: 'Projekt validieren',\n valid: '{{ name }} erfolgreich validiert gegen XML-Schema',\n invalid: '{{ name }} Schema-Validierung fehlgeschlagen',\n fatal: 'Fataler Validierungsfehler',\n loadError: 'Konnte XML-Schema {{ name }} nicht laden',\n },\n templates: {\n title: 'Templates validieren',\n mandatoryChild:\n '{{ tag }} {{ id }} fehlt ein obligatorisches {{ childTag }}-Kind {{ childId }}',\n missingAttribute:\n 'Das Attribut {{attr}} ist verpflichted und fehlt in {{element}}',\n incorrectAttribute:\n 'Das Attribut {{attr}} in Element {{element}} folgt nicht der Definition.',\n missingReference:\n '{{tag}} \"{{name}}\" hat eine ungültige Referenz - es fehlt der definierte Typ',\n },\n },\n textfield: {\n required: 'Pflichtfeld',\n nonempty: 'Darf nicht leer sein',\n noMultiplier: 'keiner',\n unique: 'Darf sich nicht wiederholen',\n },\n compare: {\n compareButton: 'Starte Vergleich',\n attributes: 'Attribute von {{ elementName }}',\n children: 'Kindelemente von {{ elementName }}',\n filterMutables: 'Projektspzifische Unterschiede ausblenden',\n },\n log: {\n name: 'Protokoll',\n placeholder:\n 'Hier werden Änderungen, Fehler und andere Meldungen angezeigt.',\n snackbar: {\n show: 'Anzeigen',\n placeholder: 'Keine Fehler',\n },\n },\n history: {\n name: 'SCL History',\n placeholder: 'Keine History',\n noEntries: 'Keine Einträge in der SCL History',\n },\n diag: {\n name: 'Daignoseübersicht',\n zeroissues: 'Es konnten keine Fehler in dem Projekt gefunden werden.',\n placeholder: 'Hier werden Validierungsfehler angezeigt.',\n missingnsd:\n 'DataTypeTemplates können nicht validiert werden. Das Projekt muss die Version 2007B4 oder höher haben.',\n lastValidated: 'Validiert um {{ time }}',\n },\n plugins: {\n heading: 'Plug-ins',\n editor: 'Editor',\n menu: 'Menüeintrag',\n requireDoc: 'Benötigt Dokument',\n top: 'oben',\n middle: 'mittig',\n bottom: 'unten',\n validator: 'Validator',\n add: {\n heading: 'Benutzerdefinierte plug-in',\n warning: `Hier können Sie benutzerdefinierte plug-ins hinzufügen.\n OpenSCD übernimmt hierfür keine Gewähr.`,\n name: 'Name',\n nameHelper: 'Lokaler Name der plug-in (frei wählbar)',\n src: 'URL',\n srcHelper: 'Die plug-in-URL des Herstellers',\n },\n },\n substation: {\n name: 'Schaltanlage',\n missing: 'Keine Schaltanlage',\n wizard: {\n nameHelper: 'Name der Schaltanlage',\n descHelper: 'Beschreibung der Schaltanlage',\n title: {\n add: 'Schaltanlage hinzufügen',\n edit: 'Schaltanlage bearbeiten',\n },\n },\n action: {\n addvoltagelevel: 'Spannungsebene hinzufügen',\n updatesubstation: 'Schaltanlage \"{{name}}\" bearbeitet',\n },\n clone: {\n redirect: 'LNode mitnehmen',\n cloneclose: 'Einmal klonen',\n cloneproc: 'Mehrfach klonen',\n newname: 'Klonname',\n },\n },\n iededitor: {\n iedSelector: 'IED auswählen',\n lnFilter: 'Filter für logische Knoten',\n missing: 'Kein IED vorhanden',\n toggleChildElements: 'Kindelemente umschalten',\n settings: 'Services für IED or AccessPoint',\n createIed: 'Virtuelles IED erstellen',\n addAccessPoint: 'AccessPoint hinzufügen',\n wizard: {\n daTitle: 'DA Informationen anzeigen',\n doTitle: 'DO Informationen anzeigen',\n nsdocDescription: 'NSDoc Beschreibung',\n doiDescription: 'Beschreibung des DOI',\n daiDescription: 'Beschreibung des DAI',\n ied: 'IED',\n accessPoint: 'Zugangspunkt',\n lDevice: 'Logisches Gerät',\n lnPrefix: 'LN Präfix',\n lnDescription: 'LN Beschreibung',\n lnInst: 'LN Instanz',\n doName: 'DO Name',\n doCdc: 'DO Common Data Class',\n daName: 'DA Name',\n daFc: 'DA Functional Constraint',\n daBType: 'DA Typ',\n daValue: 'DA Wert',\n },\n createDialog: {\n iedName: 'IED Name',\n nameFormatError: 'IED Name darf keine Leerzeichen enthalten',\n nameUniqueError: 'IED Name ist bereits vergeben',\n },\n addAccessPointDialog: {\n title: 'AccessPoint hinzufügen',\n nameHelper: 'AccessPoint Name',\n descHelper: 'AccessPoint Beschreibung',\n apName: 'AccessPoint Name',\n createServerAt: 'ServerAt hinzufügen',\n selectAccessPoint: 'AccessPoint auswählen',\n serverAtDesc: 'ServerAt Beschreibung',\n nameFormatError: 'AccessPoint Name darf keine Leerzeichen enthalten',\n nameUniqueError: 'AccessPoint Name ist bereits vergeben',\n nameTooLongError: 'AccessPoint Name ist zu lang',\n },\n addLDeviceDialog: {\n title: 'LDevice hinzufügen',\n inst: 'LDevice inst',\n desc: 'LDevice Beschreibung',\n instRequiredError: 'LDevice inst ist erforderlich',\n instFormatError: 'LDevice inst darf keine Leerzeichen enthalten',\n instUniqueError: 'LDevice inst ist bereits vergeben',\n instTooLongError: 'LDevice inst ist zu lang',\n },\n addLnDialog: {\n title: 'LN hinzufügen',\n amount: 'Menge',\n prefix: 'Prefix',\n filter: 'Logical Node Types filtern',\n noResults: 'Keine Logical Node Types gefunden',\n },\n },\n accesspoint: {\n wizard: {\n nameHelper: 'AccessPoint Name',\n descHelper: 'AccessPoint Beschreibung',\n title: {\n add: 'AccessPoint hinzufügen',\n edit: 'AccessPoint bearbeiten',\n delete: 'AccessPoint mit Abhängigkeiten entfernen',\n references: 'Gelöschte Abhängikeiten',\n },\n },\n },\n ied: {\n wizard: {\n nameHelper: 'Name des IED',\n descHelper: 'Beschreibung des IED',\n manufacturerHelper: 'Hersteller des IED',\n title: {\n edit: 'IED bearbeiten',\n delete: 'IED mit Abhängigkeiten entfernen',\n references: 'Gelöschte Abhängikeiten',\n },\n },\n action: {\n updateied: 'IED \"{{name}}\" bearbeitet',\n deleteied: 'IED \"{{name}}\" entfernt',\n },\n },\n ldevice: {\n wizard: {\n nameHelper: 'Name des Logisches Gerät',\n noNameSupportHelper: 'IED unterstützt keine funktionale Benennung',\n descHelper: 'Beschreibung des Logisches Gerät',\n instHelper: 'Instanz des Logisches Gerät',\n title: {\n edit: 'Logisches Gerät bearbeiten',\n },\n },\n },\n ln: {\n wizard: {\n title: {\n edit: 'LN bearbeiten',\n },\n descHelper: 'Logical Node Beschreibung',\n lnTypeHelper: 'Logical Node Typ',\n prefixHelper: 'Prefix des Logical Nodes',\n lnClassHelper: 'Logical Node Klasse',\n instHelper: 'Instanz',\n },\n },\n ln0: {\n wizard: {\n title: {\n edit: 'LN0 bearbeiten',\n },\n descHelper: 'Logical Node Beschreibung',\n lnTypeHelper: 'Logical Node Typ',\n lnClassHelper: 'Logical Node Klasse',\n instHelper: 'Instanz',\n },\n },\n powertransformer: {\n wizard: {\n nameHelper: '`Name des Leistungstransformators',\n descHelper: 'Beschreibung des Leistungstransformators',\n typeHelper: 'Type des Leistungstransformators',\n title: {\n add: 'Leistungstransformator hinzufügen',\n edit: 'Leistungstransformator bearbeiten',\n },\n },\n },\n voltagelevel: {\n name: 'Spannungsebene',\n wizard: {\n nameHelper: 'Name der Spannungsebene',\n descHelper: 'Beschreibung der Spannungsebene',\n nomFreqHelper: 'Nennfrequenz',\n numPhaseHelper: 'Phasenanzahl',\n voltageHelper: 'Nennspannung',\n title: {\n add: 'Spannungsebene hinzufügen',\n edit: 'Spannungsebene bearbeiten',\n },\n },\n action: {\n updateVoltagelevel: 'Spannungsebene \"{{name}}\" bearbeitet',\n },\n },\n line: {\n name: 'Linie',\n wizard: {\n nameHelper: 'Liniename',\n descHelper: 'Beschreibung des Linies',\n typeHelper: 'Type des Linies',\n title: {\n add: 'Linie hinzufügen',\n edit: 'Linie bearbeiten',\n },\n },\n action: {\n updateLine: 'Edited line \"{{name}}\"',\n },\n },\n process: {\n name: 'Process',\n wizard: {\n nameHelper: 'Processname',\n descHelper: 'Beschreibung des Processes',\n typeHelper: 'Type des Processes',\n title: {\n add: 'Process hinzufügen',\n edit: 'Process bearbeiten',\n },\n },\n action: {\n updateProcess: 'Edited Process \"{{name}}\"',\n },\n },\n bay: {\n name: 'Feld',\n wizard: {\n nameHelper: 'Feldname',\n descHelper: 'Beschreibung des Feldes',\n title: {\n add: 'Feld hinzufügen',\n edit: 'Feld bearbeiten',\n },\n },\n action: {\n updateBay: 'Feld \"{{name}}\" bearbeitet',\n },\n },\n conductingequipment: {\n name: 'Primärelement',\n wizard: {\n nameHelper: 'Name des Primärelements',\n descHelper: 'Beschreibung des Primärelements',\n typeHelper: 'Type des Primärelements',\n title: {\n add: 'Primärelement hinzufügen',\n edit: 'Primärelement bearbeiten',\n },\n },\n unknownType: 'Unbekannter Typ',\n },\n connectivitynode: {\n name: 'Verbindungsknoten',\n wizard: {\n nameHelper: 'Verbindungsknoten Name',\n pathNameHelper: 'Verbindungsknoten Beschreibung',\n title: {\n add: 'Verbindungsknoten hinzufügen',\n edit: 'Verbindungsknoten bearbeiten',\n },\n },\n },\n terminal: {\n name: 'Anschluss',\n wizard: {\n nameHelper: 'Anschluss Name',\n connectivityNodeHelper: 'Anschluss Verbindungsknoten',\n cNodeNameHelper: 'Anschluss Verbindungsknoten Name',\n title: {\n add: 'Anschlussknoten hinzufügen',\n edit: 'Anschlussknoten bearbeiten',\n },\n },\n },\n templates: {\n name: 'Data Type Templates',\n missing: 'DataTypeTemplates fehlen',\n add: 'DataTypeTemplates hinzufügen',\n },\n subscription: {\n none: 'Keine Verbindung vorhanden',\n connect: 'Daten-Attribut verbunden',\n disconnect: 'Daten-Attribute Verbindung gelöst',\n subscriber: {\n subscribed: 'Verbunden',\n notSubscribed: 'Nicht Verbunden',\n availableToSubscribe: 'Kann verbunden werden',\n partiallySubscribed: 'Teilweise verbunden',\n noControlBlockSelected: 'Keine Kontrollblock ausgewählt',\n noIedSelected: 'Keine IED ausgewählt',\n },\n goose: {\n publisher: {\n title: 'GOOSE-Publizierer',\n subscriberTitle: 'Verbunden mit {{ selected }}',\n },\n subscriber: {\n iedListTitle: 'Verbunden mit GOOSE Meldungen',\n publisherTitle: 'GOOSE Nachricht verbunden mit {{ selected }}',\n },\n view: {\n publisherView: 'Publisher | Subscriber',\n subscriberView: 'Subscriber | Publisher',\n },\n },\n smv: {\n publisher: {\n title: 'SampledValue-Publizierer',\n subscriberTitle: 'Verbunden mit {{ selected }}',\n },\n subscriber: {\n iedListTitle: 'Verbunden mit Sampled Values',\n publisherTitle: 'Sampled Value verbunden mit {{ selected }}',\n },\n view: {\n publisherView: 'Publisher | Subscriber',\n subscriberView: 'Subscriber | Publisher',\n },\n },\n binding: {\n extRefList: {\n title: 'Logische Knoten für ausgewählten Daten-Attribute',\n noSelection: 'Kein Daten-Attribute ausgewählt',\n noSubscribedLNs: 'Kein Verbinding zu dem ausgewählten Daten-Attribute',\n noAvailableLNs:\n 'Keine Verbindung zu dem ausgewählten Daten-Attribute möglich',\n },\n },\n laterBinding: {\n extRefList: {\n title: 'Für Ausgewählte Daten-Attribut Verfügbare Verbindung',\n noSelection: 'Kein Daten-Attribut ausgewählt',\n noSubscribedExtRefs: 'Keine bestehenden Verbindungen',\n noAvailableExtRefs: 'Keine verfügbaren Eingänge vorhanden',\n },\n },\n SampledValueControl: {\n controlBlockList: {\n title: 'Sample Value Meldungen',\n noControlBlockFound: 'Keine Sampled Values gefunden',\n },\n },\n GSEControl: {\n controlBlockList: {\n title: 'GOOSE-Meldungen',\n noControlBlockFound: 'Keine GOOSEs gefunden',\n },\n },\n },\n protocol104: {\n toggleChildElements: 'Kindelemente umschalten',\n view: {\n valuesView: 'Werte',\n networkView: 'Netzwerk',\n },\n mappedCmv:\n 'Gemäß dem IEC 61850-80-1 Standard ist eine \"{{ cdc }}\" zuordnung über CMV erforderlich',\n values: {\n missing: 'Kein IED mit 104 Adressen',\n removeAddresses: 'Alle Adressen entfernen',\n removedAddresses:\n '{{ nrOfAddresses }} Addressen von DOI \"{{ name }}\" entfernt',\n addedAddress:\n '104-Addressen zu DO \"{{ name }}\" in LN(0) \"{{ lnName }}\" hinzugefügt',\n signalNames: {\n tiNumber1: 'Einzelwertinformation',\n tiNumber3: 'Zweipunktinformation',\n tiNumber5: 'Stufenpositionsinformation',\n tiNumber7: 'Bit string von 32 Bit',\n tiNumber9: 'Gemessener Wert, normalisierter Wert',\n tiNumber11: 'Gemessener Wert, skalierte Wert',\n tiNumber13: 'Gemessener Wert, Kurz-Gleitkommazahl',\n tiNumber15: 'Integrierte Summen',\n tiNumber20:\n 'Verpackte Einzelwertinformation mit Statusänderungserkennung',\n tiNumber21:\n 'Gemessener Wert, normalisierter Wert ohne Qualitätsbeschreibung',\n tiNumber30: 'Einzelwertinformation mit Zeitstempel CP56Time2a',\n tiNumber31: 'Zweipunktinformation mit Zeitstempel CP56Time2a',\n tiNumber32: 'Stufenpositionsinformation mit Zeitstempel CP56Time2a',\n tiNumber33: 'Bit string von 32 Bit mit Zeitstempel CP56Time2a',\n tiNumber34:\n 'Gemessener Wert, normalisierter Wert mit Zeitstempel CP56Time2a',\n tiNumber35:\n 'Gemessener Wert, skalierte Wert mit Zeitstempel CP56Time2a',\n tiNumber36:\n 'Gemessener Wert, Kurz-Gleitkommazahl mit Zeitstempel CP56Time2a',\n tiNumber37: 'Integrierte Summen mit Zeitstempel CP56Time2a',\n tiNumber38: 'Ereignis von Schutzeinrichtung mit Zeitstempel CP56Time2a',\n tiNumber39:\n 'Verpackte Startereignisse von Schutzeinrichtung mit Zeitstempel CP56Time2a',\n tiNumber40:\n 'Verpackte Ausgangsschaltkreisinformationen von Schutzeinrichtung mit Zeitstempel CP56Time2a',\n tiNumber45: 'Einzelbefehl',\n tiNumber46: 'Doppelbefehl',\n tiNumber47: 'Regelungsschritt-Befehl',\n tiNumber48: 'Sollwertbefehl, normalisierter Wert',\n tiNumber49: 'Sollwertbefehl, skalierte Wert',\n tiNumber50: 'Sollwertbefehl, Kurz-Gleitkommazahl',\n tiNumber51: 'Bit string von 32 Bit Befehl',\n tiNumber58: 'Einzelbefehl mit Zeitstempel CP56Time2a',\n tiNumber59: 'Doppelbefehl mit Zeitstempel CP56Time2a',\n tiNumber60: 'Regelungsschritt-Befehl mit Zeitstempel CP56Time2a',\n tiNumber61:\n 'Gemessener Wert, normalisierter Wert Befehl mit Zeitstempel CP56Time2a',\n tiNumber62:\n 'Gemessener Wert, skalierte Wert Befehl mit Zeitstempel CP56Time2a',\n tiNumber63:\n 'Gemessener Wert, Kurz-Gleitkommazahl Befehl mit Zeitstempel CP56Time2a',\n tiNumber64: 'Bit string von 32 Bit Befehl mit Zeitstempel CP56Time2a',\n default: 'Keine Beschreibung verfügbar',\n },\n },\n network: {\n connectedAp: {\n wizard: {\n title: {\n edit: 'ConnectedAP bearbeiten',\n },\n redundancySwitchLabel: 'Redundanz',\n redundancyGroupTitle: 'Redundanzgruppen',\n noRedundancyGroupsAvailable: 'Keine Redundanzgruppen verfügbar',\n addRedundancyGroup: 'Redundanzruppe hinzufügen',\n stationTypeHelper: 'Anlagentyp',\n ipHelper: 'IP Adresse',\n ipSubnetHelper: 'Subnetzmaske',\n wFactorHelper: '???',\n kFactorHelper: '???',\n timeout0Helper: 'Time-out Verbindungsaufbau in Sekunden',\n timeout1Helper: '???',\n timeout2Helper: '???',\n timeout3Helper: '???',\n },\n },\n redundancyGroup: {\n wizard: {\n title: {\n edit: 'Redundanzgruppe bearbeiten',\n add: 'Redundanzgruppe hinzufügen',\n },\n redundancyGroupNumberLabel: 'Redundanzgruppennummer',\n addedLRedundancyGroup:\n '??? {{ rGNumber }} ? SubNetwork[name=\"{{ subNetworkName }}\"] > ConnectedAP[apName=\"{{ apName }}\"][iedName=\"{{ iedName }}\"]',\n editedRedundancyGroup:\n '??? {{ rGNumber }} ? SubNetwork[name=\"{{ subNetworkName }}\"] > ConnectedAP[apName=\"{{ apName }}\"][iedName=\"{{ iedName }}\"]',\n removedRedundancyGroup:\n '??? {{ rGNumber }} ? SubNetwork[name=\"{{ subNetworkName }}\"] > ConnectedAP[apName=\"{{ apName }}\"][iedName=\"{{ iedName }}\"]',\n logicLinkGroupTitle: '???',\n noLogicLinksAvailable: '???',\n addLogicLink: '???',\n },\n },\n logicLink: {\n wizard: {\n title: {\n edit: '???',\n add: '???',\n },\n logicLinkNumberLabel: '???',\n addedLogicLink:\n '??? SubNetwork[name=\"{{ subNetworkName }}\"] > ConnectedAP[apName=\"{{ apName }}\"][iedName=\"{{ iedName }}\"]',\n editedLogicLink:\n '??? SubNetwork[name=\"{{ subNetworkName }}\"] > ConnectedAP[apName=\"{{ apName }}\"][iedName=\"{{ iedName }}\"]',\n removedLogicLink:\n '??? SubNetwork[name=\"{{ subNetworkName }}\"] > ConnectedAP[apName=\"{{ apName }}\"][iedName=\"{{ iedName }}\"]',\n },\n },\n },\n wizard: {\n title: {\n doiInfo: 'DOI Information',\n addressEdit: '104-Adresse bearbeiten',\n addAddress: '104-Adresse hinzufügen',\n },\n error: {\n ioaConflict: 'IOA-Konflikt innerhalb der CASDU-Nummer gefunden',\n addAddressError:\n 'Invalide Template Struktur, DAI kann nicht hinzugefügt werden (DO: \"{{ doType }}\", CDC: \"{{ cdc }}\", Structure: \"{{ structure }}\")',\n },\n casduHelper: 'CASDU Wert',\n ioaHelper: 'IOA Wert',\n monitorTiHelper: 'TI Wert überwachen',\n monitorInverted: '???',\n monitorCheck: '???',\n controlTiHelper: '???',\n controlInverted: '???',\n controlCheck: '???',\n expectedValueHelper: '???',\n unitMultiplierHelper: '???',\n scaleMultiplierHelper: '???',\n scaleOffsetHelper: '???',\n },\n },\n 'compare-ied': {\n selectProjectTitle: 'Lade IEDs aus Vorlage',\n selectIedTitle: 'IEDs zum Vergleich auswählen',\n resultTitle: 'Vergleiche IED mit Vorlage',\n projectIedTitle: 'IEDs im Projekt',\n templateIedTitle: 'IEDs aus Vorlage',\n selectIedButton: 'IED auswählen',\n selectTemplateButton: 'Vorlage auswählen',\n noDiff:\n 'Keine Unterschiede zwischen IED Projekt \"{{ projectIedName }}\" und IED aus Vorlage \"{{ templateIedName }}\" gefunden',\n },\n 'enum-val': {\n wizard: {\n title: {\n add: 'EnumVal hinzufügen',\n edit: 'EnumVal bearbeiten',\n },\n },\n },\n enum: {\n wizard: {\n title: {\n add: 'EnumType hinzufügen',\n edit: 'EnumType bearbeiten',\n },\n },\n action: {\n edit: 'DAType ID \"{{oldId}}\" und deren DA-Referenzen geändert zu {{newId}} ',\n },\n },\n datype: {\n wizard: {\n title: {\n add: 'DAType hinzufügen',\n edit: 'DAType bearbeiten',\n },\n },\n action: {\n edit: 'EnumType ID \"{{oldId}}\" und deren DA-Referenzen geändert zu {{newId}} ',\n },\n },\n bda: {\n wizard: {\n title: {\n add: 'BDA hinzufügen',\n edit: 'BDA bearbeiten',\n },\n },\n },\n da: {\n wizard: {\n title: {\n add: 'Add DA',\n edit: 'Edit DA',\n },\n },\n },\n dai: {\n wizard: {\n valueHelper: 'Der Wert sollte vom Typ sein {{type}}',\n title: {\n create: 'DAI \"{{daiName}}\" hinzufügen',\n edit: 'DAI \"{{daiName}}\" bearbeiten',\n },\n },\n action: {\n createdai: 'DAI \"{{daiName}}\" hinzugefügt',\n updatedai: 'DAI \"{{daiName}}\" bearbeitet',\n },\n },\n sdo: {\n wizard: {\n title: {\n add: 'SDO hinzufügen',\n edit: 'SDO bearbeiten',\n },\n },\n },\n do: {\n wizard: {\n title: {\n add: 'DO hinzufügen',\n edit: 'DO bearbeiten',\n },\n },\n },\n dotype: {\n wizard: {\n title: {\n add: 'DOType hinzufügen',\n edit: 'DOType bearbeiten',\n },\n enums: 'Standard Enumerations',\n },\n action: {\n edit: 'DOType ID \"{{oldId}}\" und deren DO-Referenzen geändert zu {{newId}} ',\n },\n },\n lnodetype: {\n wizard: {\n title: {\n add: 'LNodeType hinzufügen',\n edit: 'LNodeType bearbeiten',\n select: 'Data Objects auswählen',\n },\n },\n action: {\n edit: 'LNodeType ID \"{{oldId}}\" und deren LN-Referenzen geändert zu {{newId}} ',\n },\n autoimport: 'Vordefinierte OpenSCD LN Klasse verwenden',\n missinglnclass: 'Vordefinierte LN Klasse fehlt',\n },\n lnode: {\n wizard: {\n title: {\n selectIEDs: 'Auswahl IEDs',\n selectLDs: 'Auswahl logische Geräte',\n selectLNs: 'Auswahl logische Knoten',\n selectLNodeTypes: 'Auswahl logische Knoten Type',\n },\n placeholder: 'Bitte laden Sie eine SCL-Datei, die IED-Elemente enthält.',\n uniquewarning: 'Logische Knoten Klasse existiert bereits',\n reference: 'Referenz auf bestehenden logischen Knoten erstellen',\n instance: 'Referenz auf logischen Knoten Typ erstellen',\n },\n log: {\n title: 'LNode vom Type {{lnClass}} kann nicht hinzugefügt werden',\n nonuniquelninst: 'Keine eindeutige Instanz (lnInst)',\n uniqueln0: 'Nur eine Instanz von {{lnClass}} zulässig',\n },\n tooltip: 'Referenz zu logischen Knoten erstellen',\n },\n guess: {\n wizard: {\n primary: 'Inhalt erraten',\n title: 'Auswahl Steuerungsmodel(ctlModel)',\n description: `Schaltgeräten im Feld können oftmals bestimmten Steuerungsmodellen zugeordnet werden. \\n Damit wird die Abschätzung oftmals genauer.`,\n },\n },\n merge: {\n title: 'Vereinigen',\n defaultTitle: '{{ tag }} {{ source }} mit {{ sink }} vereinigen',\n log: '{{ tag }} {{ source }} mit {{ sink }} vereinigt',\n children: 'Kindelemente',\n },\n import: {\n title: 'IEDs importieren',\n log: {\n successful: 'IED {{name}} geladen',\n parsererror: 'Parser Fehler',\n loaderror: 'Datei kann nicht geladen werden',\n importerror: 'IED Element kann nicht importiert werden',\n missingied: 'Kein IED Element in der Datei',\n nouniqueied: 'IED Element {{ name }} bereits geladen',\n },\n },\n communication: {\n name: 'Netzwerkkonfiguration',\n missing: 'Kein Subnetzwerk',\n },\n subnetwork: {\n name: 'Subnetzwerk',\n wizard: {\n nameHelper: 'Name des Subnetzwerkes',\n descHelper: 'Beschreibung des Subnetzwerkes',\n typeHelper: 'Netzwerktyp (Bsp. 8-MMS)',\n bitrateHelper: 'Übertragungsrate',\n title: {\n add: 'Subnetzwerk hinzufügen',\n edit: 'Subnetzwerk bearbeiten',\n },\n },\n },\n connectedap: {\n name: 'Schnittstelle',\n wizard: {\n addschemainsttype: 'XMLSchema-instance type hinzufügen',\n },\n action: {\n addaddress: 'Adressfeld bearbeitet ({{iedName}} - {{apName}})',\n },\n },\n gse: {\n action: {\n addaddress: 'GSE bearbeitet ({{identity}})',\n },\n missingaccp:\n 'AccessPoint is nicht verbunden. GSE kann nicht hinzugefügt werden.',\n },\n smv: {\n action: {\n addaddress: 'SMV bearbeitet ({{identity}})',\n },\n missingaccp:\n 'AccessPoint is nicht verbunden. SMV kann nicht hinzugefügt werden.',\n },\n subscriber: {\n title: 'Subscriber Update',\n description: 'GOOSE Ziele aktualisieren: ',\n nonewitems: 'keine neuen IEDName Elemente notwendig',\n message: '{{updatenumber}} IEDName Element(e) hinzugefügt',\n },\n commmap: {\n title: 'Kommunikationszuordnung',\n connectCB: '{{cbType}} verbinden',\n connectToIED: 'Verbinden mit {{iedName}}',\n sourceIED: 'Quellgerät',\n sinkIED: 'Zielgerät',\n },\n updatesubstation: {\n title: 'Schaltanlage aktualisieren',\n },\n code: {\n log: 'Element im XML Editor angepasst: {{id}}',\n },\n updatedesc: {\n abb: 'Signalbeschreibungen zu ABB IEDs hinzugefügt',\n sel: 'Signalbeschreibungen zu SEL IEDs hinzugefügt',\n },\n sld: {\n substationSelector: 'Schaltanlage auswählen',\n wizard: {\n xCoordinateHelper: 'X-Koordinate im Einphasenersatzschaltbild',\n yCoordinateHelper: 'Y-Koordinate im Einphasenersatzschaltbild',\n },\n },\n dataset: {\n fcda: { add: 'Daten-Attribute hinzufügen' },\n fcd: { add: 'Daten-Objekte hinzufügen' },\n },\n report: {\n wizard: { location: 'Ablageort der Reports wählen' },\n rptID: 'Report-Kontrolblock Kennung',\n },\n cleanup: {\n unreferencedDataSets: {\n title: 'Nicht referenzierte Datensätze',\n deleteButton: 'Ausgewählten Datensatz entfernen',\n tooltip:\n 'DatenSätze ohne Verweis auf einen zugehörigen GOOSE-, Log-, Report- oder Sampled Value Control Block',\n },\n unreferencedControls: {\n title: 'Steuerblöcke mit einem fehlenden oder ungültigen Kontrollblock',\n deleteButton: 'Ausgewählte Kontrollblöcke entfernen',\n tooltip:\n 'Steuerblöcke ohne Verweis auf ein vorhandenes Datensatz. Das ist kein Fehler und eher üblich for allem für Reports',\n addressDefinitionTooltip:\n 'Für diesen Kontrollblock existiert eine Adressdefinition im Abschnitt Kommunikation',\n alsoRemoveFromCommunication: 'Kommunikation SMV/GSE mit entfernen',\n },\n unreferencedDataTypes: {\n title: 'Nicht referenzierte Datentypen',\n deleteButton: 'Ausgewählte Datentypen entfernen',\n tooltip:\n 'Datentypen, die nicht in einem logischen Knoten oder einem anderen verwendeten Datentyp referenziert werden',\n alsoRemoveSubTypes: 'Entfernen Sie auch Untertypen',\n stackExceeded:\n 'Maximale Aufrufe überschritten. Maximal zulässig sind {{maxStackDepth}}. Nicht alle überflüßigen Datentypen sind entfernt und das Project is potentiel beschädigt.',\n },\n },\n controlblock: {\n action: {\n edit: '{{type}} \"{{name}}\" in IED {{iedName}} bearbeitet',\n add: '{{type}} \"{{name}}\" zu IED {{iedName}} hinzugefügt',\n remove:\n '{{type}} \"{{name}}\" and referenzierte Element von IED {{iedName}} entfernt',\n },\n hints: {\n source: 'Quell-IED',\n missingServer: 'Kein Server vorhanden',\n exist: '{{type}} mit dem Namen {{name}} existiert',\n noMatchingData: 'Keine Datenübereinstimmung',\n valid: 'Kann kopiert werden',\n },\n label: {\n copy: 'Kopie in anderen IEDs ertellen',\n },\n },\n gsecontrol: {\n wizard: { location: 'Ablageort der GOOSE wählen' },\n },\n samvpledvaluecontrol: {\n wizard: {\n location: 'Ablageort des Select Sampled Value Control Block wählen',\n },\n },\n publisher: {\n selectbutton: '{{type}} auswählen',\n nodataset: 'Kein verbundener Datensatz',\n smv: {\n commsetting: 'Kommunikationsparameter (SMV)',\n noconnectedap: 'Fehlende Verbindung zu einem Netzwerk',\n smvopts: 'Optionale Felder',\n },\n },\n exportCommunication: {\n noCommunicationSection: 'Die Communication-Sektion ist leer.',\n },\n add: 'Hinzufügen',\n new: 'Neu',\n remove: 'Entfernen',\n edit: 'Bearbeiten',\n move: 'Verschieben',\n create: 'Erstellen',\n save: 'Speichern',\n saveAs: 'Speichern unter',\n open: 'Öffnen',\n reset: 'Zurücksetzen',\n cancel: 'Abbrechen',\n close: 'Schließen',\n filter: 'Filter',\n filters: 'Filters',\n undo: 'Rückgängig',\n redo: 'Wiederholen',\n duplicate: 'Klonen',\n connect: 'Verbinden',\n disconnect: 'Trennen',\n next: 'Weiter',\n};\n"]}
@@ -157,6 +157,7 @@ export declare const en: {
157
157
  zeroissues: string;
158
158
  placeholder: string;
159
159
  missingnsd: string;
160
+ lastValidated: string;
160
161
  };
161
162
  plugins: {
162
163
  heading: string;
@@ -154,6 +154,7 @@ export const en = {
154
154
  zeroissues: 'No errors found in the project',
155
155
  placeholder: 'Issues found during validation will show up here',
156
156
  missingnsd: 'Cannot validate DataTypeTemplates. The version of the project must be higher than or equal to 2007B4',
157
+ lastValidated: 'Validated at {{ time }}',
157
158
  },
158
159
  plugins: {
159
160
  heading: 'Plug-ins',
@@ -1 +1 @@
1
- {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/translations/en.ts"],"names":[],"mappings":"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","sourcesContent":["export const en = {\n scl: {\n id: 'ID',\n name: 'Name',\n desc: 'Description',\n ord: 'Ordinal',\n value: 'Value',\n EnumVal: 'Enum Value',\n EnumType: 'Enum Type',\n DA: 'Data attribute',\n DO: 'Data object',\n DAType: 'Data Attribute Type',\n DOType: 'Data Object Type',\n CDC: 'Common data class',\n Report: 'Report',\n LN: 'Logical Node',\n bType: 'Basic type',\n type: 'Type',\n sAddr: 'Short address',\n valKind: 'Value kind',\n valImport: 'Import value',\n fc: 'Function constraint',\n LNodeType: 'Logical Node Type',\n lnClass: 'Logical Node Class',\n accessControl: 'Access control',\n transient: 'Transient data',\n Val: 'Default value',\n dchg: 'Trigger on data change',\n qchg: 'Trigger on quality change',\n dupd: 'Trigger on data update',\n period: 'Periodical Publishing',\n gi: 'General Interrogation',\n fixedOffs: 'Fixed offset',\n securityEnable: 'Security enabled',\n DataSet: 'Dataset',\n Communication: 'Communication',\n TrgOps: 'Trigger options',\n OptFields: 'Optional fields',\n multicast: 'SMV acc. to IEC 61850 9-2',\n smpMod: 'Sample mode',\n smpRate: 'Sample rate',\n nofASDU: 'Samples per packet',\n seqNum: 'Add Sequence Number',\n timeStamp: 'Add Timestamp',\n dataSet: 'Add DataSet Reference',\n reasonCode: 'Add Trigger Reason',\n dataRef: 'Add description of the payload',\n entryID: 'Add Entry ID',\n configRef: 'Add Configuration Revision',\n bufOvfl: 'Add Buffered Overflow information',\n indexed: 'Multiple instances possible',\n buffered: 'Buffered Report',\n maxReport: 'Number of Instances',\n bufTime: 'Min. time between two Reports',\n intgPd: 'Time between two periodic Reports',\n SmvOpts: 'Optional Information',\n refreshTime: 'Add timestamp to SMV packet',\n sampleRate: 'Add sample rate to SMV packet',\n security: 'Potential future use. e.g. digital signature',\n synchSourceId: 'Add sync source id to SMV packet',\n SampledValueControl: 'Sampled Value Control Block',\n iedName: 'Referenced IED',\n ldInst: 'Referenced Logical Device',\n prefix: 'Prefix of the Logical Node',\n lnInst: 'Instance of the Logical Node',\n virtual: 'Virtual',\n phase: 'Phase',\n },\n settings: {\n title: 'Settings',\n language: 'Language',\n languages: { de: 'German (Deutsch)', en: 'English' },\n dark: 'Dark theme',\n mode: 'Pro mode',\n showieds: 'Show IEDs in substation editor',\n selectFileButton: 'Select file',\n loadNsdTranslations: 'Uploaded NSDoc files',\n invalidFileNoIdFound:\n \"Invalid NSDoc ({{ filename }}); no 'id' attribute found in file\",\n invalidNsdocVersion:\n 'The version of {{ id }} NSD ({{ nsdVersion }}) does not correlate with the version of the corresponding NSDoc ({{ filename }}, {{ nsdocVersion }})',\n },\n menu: {\n new: 'New project',\n title: 'Menu',\n viewLog: 'View log',\n viewDiag: 'View diagnostics',\n },\n wizard: {\n title: {\n select: 'Select {{tagName}}',\n edit: 'Edit {{tagName}}',\n add: 'Add {{tagName}}',\n selectAp: 'Select New ConnectedAP',\n },\n },\n openSCD: {\n loading: 'Loading project {{ name }}',\n loaded: '{{ name }} loaded',\n readError: 'Error reading {{ name }}',\n readAbort: 'Aborted reading {{ name }}',\n },\n zeroline: {\n iedsloading: 'Loading IEDs...',\n showieds: 'Show/hide IEDs in substation editor',\n showfunctions: 'Filter function type elements',\n commmap: 'Communication mapping',\n reportcontrol: 'Show all Reports',\n gsecontrol: 'Show all GOOSEs',\n smvcontrol: 'Show all Sampled Values',\n },\n editing: {\n node: 'User defined object',\n created: 'Added {{ name }}',\n deleted: 'Removed {{ name }}',\n moved: 'Moved {{ name }}',\n updated: 'Edited {{ name }}',\n import: 'Imported {{name}}',\n complex: 'Multiple elements edited',\n error: {\n create: 'Could not add {{ name }}',\n update: 'Could not edit {{ name }}',\n move: 'Could not move {{ name }}',\n duplicate: 'Could not copy {{ name }}',\n nameClash:\n 'Parent {{ parent }} already contains a {{ child }} named \"{{ name }}\"',\n idClash: 'The project has already an ID \"{{ id }}\"',\n },\n },\n textfield: {\n required: 'Required',\n nonempty: 'Must not be empty',\n noMultiplier: 'none',\n unique: 'Must be unique',\n },\n compare: {\n compareButton: 'Compare',\n attributes: 'Attributes from {{ elementName }}',\n children: 'Child elements from {{ elementName }}',\n filterMutables: 'Filter project specific differences',\n },\n log: {\n name: 'Log',\n placeholder: 'Errors, warnings and other notifications will show up here.',\n snackbar: {\n show: 'Show',\n placeholder: 'No errors',\n },\n },\n history: {\n name: 'SCL History',\n placeholder: 'Edits will show up here',\n noEntries: 'No SCL history entries',\n },\n diag: {\n name: 'Diagnostics',\n zeroissues: 'No errors found in the project',\n placeholder: 'Issues found during validation will show up here',\n missingnsd:\n 'Cannot validate DataTypeTemplates. The version of the project must be higher than or equal to 2007B4',\n },\n plugins: {\n heading: 'Plug-ins',\n editor: 'Editor tab',\n menu: 'Menu entry',\n requireDoc: 'Requires loaded document',\n top: 'top',\n middle: 'middle',\n bottom: 'bottom',\n validator: 'Validator',\n add: {\n heading: 'Add custom plug-in',\n warning: `Here you may add remote plug-ins directly from a custom URL.\n You do this at your own risk.`,\n name: 'Name',\n nameHelper: 'Your preferred plug-in name',\n src: 'URL',\n srcHelper: 'The vendor supplied plug-in URL',\n },\n },\n validator: {\n schema: {\n title: 'Validate project',\n valid: '{{ name }} XML schema validation successful',\n invalid: '{{ name }} XML schema validation failed',\n fatal: 'Fatal validation error',\n loadError: 'Could not load XML schema {{ name }}',\n },\n templates: {\n title: 'Validate templates',\n mandatoryChild:\n '{{ tag }} {{ id }} is missing mandatory child {{ childTag }} {{ childId }}',\n missingAttribute:\n 'The attribute {{attr}} is required but missing in {{element}}',\n incorrectAttribute:\n 'The attribute {{attr}} is incorrect in the element {{element}}.',\n missingReference:\n '{{tag}}:{{name}} has a invalid reference - type attribute cannot be connected to a template',\n },\n },\n substation: {\n name: 'Substation',\n missing: 'No substation',\n wizard: {\n nameHelper: 'Substation name',\n descHelper: 'Substation description',\n title: {\n add: 'Add substation',\n edit: 'Edit substation',\n },\n },\n action: {\n addvoltagelevel: 'Add voltage level',\n updatesubstation: 'Edited substation \"{{name}}\"',\n },\n clone: {\n redirect: \"Redirect LNode's\",\n cloneclose: 'Clone once',\n cloneproc: 'Clone multiple',\n newname: 'Clone Name',\n },\n },\n iededitor: {\n iedSelector: 'Select IED',\n lnFilter: 'Logical Node Filter',\n missing: 'No IED',\n toggleChildElements: 'Toggle child elements',\n settings: 'Show Services the IED/AccessPoint provides',\n createIed: 'Create Virtual IED',\n addAccessPoint: 'Add AccessPoint',\n wizard: {\n daTitle: 'Show DA Info',\n doTitle: 'Show DO Info',\n nsdocDescription: 'NSDoc description',\n doiDescription: 'Data object description',\n daiDescription: 'Data attribute description',\n ied: 'IED',\n accessPoint: 'Access point',\n lDevice: 'Logical device',\n lnPrefix: 'Logical node prefix',\n lnDescription: 'Logical node description',\n lnInst: 'Logical node inst',\n doName: 'Data object name',\n doCdc: 'Data object common data class',\n daName: 'Data attribute name',\n daFc: 'Data attribute functional constraint',\n daBType: 'Data attribute type',\n daValue: 'Data attribute value',\n },\n createDialog: {\n iedName: 'IED name',\n nameFormatError: 'IED name cannot contain spaces',\n nameUniqueError: 'IED name already exists',\n },\n addAccessPointDialog: {\n title: 'Add AccessPoint',\n nameHelper: 'AccessPoint name',\n descHelper: 'AccessPoint description',\n apName: 'AccessPoint name',\n createServerAt: 'Add ServerAt',\n selectAccessPoint: 'Select AccessPoint',\n serverAtDesc: 'ServerAt description',\n nameFormatError: 'AccessPoint name cannot contain spaces',\n nameUniqueError: 'AccessPoint name already exists',\n nameTooLongError: 'AccessPoint name is too long',\n },\n addLDeviceDialog: {\n title: 'Add LDevice',\n inst: 'LDevice inst',\n desc: 'LDevice description',\n instRequiredError: 'LDevice inst is required',\n instFormatError: 'Invalid inst',\n instUniqueError: 'LDevice inst already exists',\n instTooLongError: 'LDevice inst is too long',\n },\n addLnDialog: {\n title: 'Add LN',\n amount: 'Amount',\n prefix: 'Prefix',\n filter: 'Filter Logical Node Types',\n noResults: 'No Logical Node Types found',\n },\n },\n accesspoint: {\n wizard: {\n nameHelper: 'AccessPoint name',\n descHelper: 'AccessPoint description',\n title: {\n add: 'Add AccessPoint',\n edit: 'Edit AccessPoint',\n delete: 'Remove AccessPoint with references',\n references: 'References to be removed',\n },\n },\n },\n ied: {\n wizard: {\n nameHelper: 'IED name',\n descHelper: 'IED description',\n manufacturerHelper: 'IED manufacturer',\n title: {\n edit: 'Edit IED',\n delete: 'Remove IED with references',\n references: 'References to be removed',\n },\n },\n action: {\n updateied: 'Edited IED \"{{name}}\"',\n deleteied: 'Removed IED \"{{name}}\"',\n },\n },\n ldevice: {\n wizard: {\n nameHelper: 'Logical device name',\n noNameSupportHelper: \"IED doesn't support Functional Naming\",\n descHelper: 'Logical device description',\n instHelper: 'Logical device inst',\n title: {\n edit: 'Edit logical device',\n },\n },\n },\n ln: {\n wizard: {\n title: {\n edit: 'Edit LN',\n },\n descHelper: 'Logical node description',\n lnTypeHelper: 'Logical node type',\n prefixHelper: 'Prefix of the logical node',\n lnClassHelper: 'Logical node class',\n instHelper: 'Instance',\n },\n },\n ln0: {\n wizard: {\n title: {\n edit: 'Edit LN0',\n },\n descHelper: 'Logical node description',\n lnTypeHelper: 'Logical node type',\n lnClassHelper: 'Logical node class',\n instHelper: 'Instance',\n },\n },\n powertransformer: {\n wizard: {\n nameHelper: 'Power transformer name',\n descHelper: 'Power transformer description',\n typeHelper: 'Power transformer type',\n title: {\n add: 'Add power transformer',\n edit: 'Edit power transformer',\n },\n },\n },\n voltagelevel: {\n name: 'Voltage level',\n wizard: {\n nameHelper: 'Voltage level name',\n descHelper: 'Voltage level description',\n nomFreqHelper: 'Nominal frequency',\n numPhaseHelper: 'Number of phases',\n voltageHelper: 'Nominal voltage',\n title: {\n add: 'Add voltage level',\n edit: 'Edit voltage level',\n },\n },\n action: {\n updateVoltagelevel: 'Edited voltagelevel \"{{name}}\"',\n },\n },\n line: {\n name: 'Line',\n wizard: {\n nameHelper: 'Line name',\n descHelper: 'Line description',\n typeHelper: 'Line type',\n title: {\n add: 'Add line',\n edit: 'Edit line',\n },\n },\n action: {\n updateLine: 'Edited line \"{{name}}\"',\n },\n },\n process: {\n name: 'Process',\n wizard: {\n nameHelper: 'Process name',\n descHelper: 'Process description',\n typeHelper: 'Process type',\n title: {\n add: 'Add Process',\n edit: 'Edit Process',\n },\n },\n action: {\n updateProcess: 'Edited Process \"{{name}}\"',\n },\n },\n bay: {\n name: 'Bay',\n wizard: {\n nameHelper: 'Bay name',\n descHelper: 'Bay description',\n title: {\n add: 'Add bay',\n edit: 'Edit bay',\n },\n },\n action: {\n updateBay: 'Edited bay \"{{name}}\"',\n },\n },\n conductingequipment: {\n name: 'Conducting Equipment',\n wizard: {\n nameHelper: 'Conducting equipment name',\n descHelper: 'Conducting equipment description',\n typeHelper: 'Conducting equipment type',\n title: {\n add: 'Add conducting equipment',\n edit: 'Edit conducting equipment',\n },\n },\n unknownType: 'Unknown type',\n },\n connectivitynode: {\n name: 'Connectivity Node',\n wizard: {\n nameHelper: 'Connectivity node name',\n pathNameHelper: 'Connectivity node pathname',\n title: {\n add: 'Add Connectivity node',\n edit: 'Edit Connectivity node',\n },\n },\n },\n terminal: {\n name: 'Terminal',\n wizard: {\n nameHelper: 'Terminal name',\n connectivityNodeHelper: 'Terminal connectivity node',\n cNodeNameHelper: 'Terminal connectivity node name',\n title: {\n add: 'Add Terminal',\n edit: 'Edit Terminal',\n },\n },\n },\n templates: {\n name: 'Data Type Templates',\n missing: 'DataTypeTemplates missing',\n add: 'Add DataTypeTemplates',\n },\n subscription: {\n none: 'None',\n connect: 'Connect data attribute',\n disconnect: 'Disconnect data attribute',\n subscriber: {\n subscribed: 'Subscribed',\n notSubscribed: 'Not Subscribed',\n availableToSubscribe: 'Available to subscribe',\n partiallySubscribed: 'Partially subscribed',\n noControlBlockSelected: 'No control block selected',\n noIedSelected: 'No IED selected',\n },\n goose: {\n publisher: {\n title: 'GOOSE Publishers',\n subscriberTitle: 'IEDs subscribed to {{ selected }}',\n },\n subscriber: {\n iedListTitle: 'GOOSE Subscribers',\n publisherTitle: 'GOOSE Messages subscribed to {{selected}}',\n },\n view: {\n publisherView: 'Publisher | Subscriber',\n subscriberView: 'Subscriber | Publisher',\n },\n },\n smv: {\n publisher: {\n title: 'Sampled Value Messages',\n subscriberTitle: 'IEDs subscribed to {{ selected }}',\n },\n subscriber: {\n iedListTitle: 'Sampled Value Subscribers',\n publisherTitle: 'Sampled Value Messages subscribed to {{ selected }}',\n },\n view: {\n publisherView: 'Publisher | Subscriber',\n subscriberView: 'Subscriber | Publisher',\n },\n },\n binding: {\n extRefList: {\n title: 'Logical nodes available for selected data attribute',\n noSelection: 'No data attribute selected',\n noSubscribedLNs: 'No subscribed logical nodes',\n noAvailableLNs: 'No available logical nodes to subscribe',\n },\n },\n laterBinding: {\n extRefList: {\n title: 'Inputs available for selected data attribute',\n noSelection: 'No data attribute selected',\n noSubscribedExtRefs: 'No subscribed inputs',\n noAvailableExtRefs: 'No available inputs to subscribe',\n },\n },\n SampledValueControl: {\n controlBlockList: {\n title: 'Sampled Value Messages',\n noControlBlockFound: 'No Sampled Value Messages found',\n },\n },\n GSEControl: {\n controlBlockList: {\n title: 'GOOSE Messages',\n noControlBlockFound: 'No GOOSE Messages found',\n },\n },\n },\n protocol104: {\n toggleChildElements: 'Toggle child elements',\n view: {\n valuesView: 'Values',\n networkView: 'Network',\n },\n mappedCmv:\n 'According to the IEC 61850-80-1 standard, \"{{ cdc }}\" mapping is required via CMV',\n values: {\n missing: 'No IED with 104 Addresses',\n removeAddresses: 'Remove all Addresses',\n removedAddresses:\n 'Removed Addresses from DOI \"{{ name }}\" ({{ nrOfAddresses }})',\n addedAddress:\n 'Added 104 Address(es) to DO \"{{ name }}\" on LN(0) \"{{ lnName }}\"',\n signalNames: {\n tiNumber1: 'Single-point information',\n tiNumber3: 'Double-point information',\n tiNumber5: 'Step position information',\n tiNumber7: 'Bit string of 32 bit',\n tiNumber9: 'Measured value, normalized value',\n tiNumber11: 'Measured value, scaled value',\n tiNumber13: 'Measured value, short floating point number',\n tiNumber15: 'Integrated totals',\n tiNumber20:\n 'Packed single point information with status change detection',\n tiNumber21:\n 'Measured value, normalized value without quality descriptor',\n tiNumber30: 'Single-point information with time tag CP56Time2a',\n tiNumber31: 'Double-point information with time tag CP56Time2a',\n tiNumber32: 'Step position information with time tag CP56Time2a',\n tiNumber33: 'Bit string of 32 bit with time tag CP56Time2a',\n tiNumber34: 'Measured value, normalized value with time tag CP56Time2a',\n tiNumber35: 'Measured value, scaled value with time tag CP56Time2a',\n tiNumber36:\n 'Measured value, short floating point number with time tag CP56Time2a',\n tiNumber37: 'Integrated totals with time tag CP56Time2a',\n tiNumber38: 'Event of protection equipment with time tag CP56Time2a',\n tiNumber39:\n 'Packed start events of protection equipment with time tag CP56Time2a',\n tiNumber40:\n 'Packed output circuit information of protection equipment with time tag CP56Time2a',\n tiNumber45: 'Single command',\n tiNumber46: 'Double command',\n tiNumber47: 'Regulating step command',\n tiNumber48: 'Set-point Command, normalized value',\n tiNumber49: 'Set-point Command, scaled value',\n tiNumber50: 'Set-point Command, short floating point number',\n tiNumber51: 'Bit string 32 bit command',\n tiNumber58: 'Single command with time tag CP56Time2a',\n tiNumber59: 'Double command with time tag CP56Time2a',\n tiNumber60: 'Regulating step command with time tag CP56Time2a',\n tiNumber61:\n 'Measured value, normalized value command with time tag CP56Time2a',\n tiNumber62:\n 'Measured value, scaled value command with time tag CP56Time2a',\n tiNumber63:\n 'Measured value, short floating point number command with time tag CP56Time2a',\n tiNumber64: 'Bit string of 32 bit command with time tag CP56Time2a',\n default: 'No description available',\n },\n },\n network: {\n connectedAp: {\n wizard: {\n title: {\n edit: 'Edit ConnectedAP',\n },\n redundancySwitchLabel: 'Redundancy',\n redundancyGroupTitle: 'Redundancy Groups',\n noRedundancyGroupsAvailable: 'No redundancy groups available',\n addRedundancyGroup: 'Redundancy Group',\n stationTypeHelper: 'Type of station',\n ipHelper: 'IP address of the logical link',\n ipSubnetHelper:\n 'Subnetwork mask of the IP address of the logical link',\n wFactorHelper: 'W factor of the logical link',\n kFactorHelper: 'K factor of the logical link',\n timeout0Helper: 'Time-out in seconds of connection establishment',\n timeout1Helper: 'Time-out in seconds of sent or test APDUs',\n timeout2Helper:\n 'Time-out in seconds for acknowledges in case of no data messages',\n timeout3Helper:\n 'Time-out in seconds for sending test frames in case of a long idle state',\n },\n },\n redundancyGroup: {\n wizard: {\n title: {\n edit: 'Edit Redundancy Group',\n add: 'Add Redundancy Group',\n },\n redundancyGroupNumberLabel: 'Redundancy Group number',\n addedLRedundancyGroup:\n 'Added Redundancy Group {{ rGNumber }} from SubNetwork (name=\"{{ subNetworkName }}\") and ConnectedAP (AccessPoint Name=\"{{ apName }}\", IED Name=\"{{ iedName }}\")',\n editedRedundancyGroup:\n 'Edited Redundancy Group {{ rGNumber }} from SubNetwork (name=\"{{ subNetworkName }}\") and ConnectedAP (AccessPoint Name=\"{{ apName }}\", IED Name=\"{{ iedName }}\")',\n removedRedundancyGroup:\n 'Removed Redundancy Group {{ rGNumber }} from SubNetwork (name=\"{{ subNetworkName }}\") and ConnectedAP (AccessPoint Name=\"{{ apName }}\", IED Name=\"{{ iedName }}\")',\n logicLinkGroupTitle: 'Logic Links',\n noLogicLinksAvailable: 'No Logic Links available',\n addLogicLink: 'Logic Link',\n },\n },\n logicLink: {\n wizard: {\n title: {\n edit: 'Edit Logic Link',\n add: 'Add Logic Link',\n },\n logicLinkNumberLabel: 'Logic Link number',\n addedLogicLink:\n 'Added Logic Link group to SubNetwork (name=\"{{ subNetworkName }}\") and ConnectedAP (AccessPoint Name=\"{{ apName }}\", IED Name=\"{{ iedName }}\")',\n editedLogicLink:\n 'Edited Logic Link group from SubNetwork (name=\"{{ subNetworkName }}\") and ConnectedAP (AccessPoint Name=\"{{ apName }}\", IED Name=\"{{ iedName }}\")',\n removedLogicLink:\n 'Removed Logic Link group from SubNetwork (name=\"{{ subNetworkName }}\") and ConnectedAP (AccessPoint Name=\"{{ apName }}\", IED Name=\"{{ iedName }}\")',\n },\n },\n },\n wizard: {\n title: {\n doiInfo: 'DOI Info',\n addressEdit: 'Edit 104 Address',\n addAddress: 'Add 104 Address',\n },\n error: {\n ioaConflict: 'IOA conflict found within CASDU number',\n addAddressError:\n 'Invalid Template Structure, unable to create DAI Element. (DO: \"{{ doType }}\", CDC: \"{{ cdc }}\", DAI: \"{{ structure }}\")',\n },\n casduHelper: 'CASDU Value',\n ioaHelper: 'IOA Value',\n monitorTiHelper: 'Monitor TI Value',\n monitorInverted: 'Created Inverted Addresses (Monitor)',\n monitorCheck: 'Create Check Addresses (Monitor)',\n controlTiHelper: 'Control TI Value',\n controlInverted: 'Created Inverted Addresses (Control)',\n controlCheck: 'Create Check Addresses (Control)',\n expectedValueHelper: 'Expected Value',\n unitMultiplierHelper: 'Unit Multiplier',\n scaleMultiplierHelper: 'Scale Multiplier',\n scaleOffsetHelper: 'Scale Offset',\n },\n },\n 'compare-ied': {\n selectProjectTitle: 'Select template project to Compare IED with',\n selectIedTitle: 'Select IED for comparison',\n resultTitle: 'Compared IED with IED from template project',\n projectIedTitle: 'IEDs in project',\n templateIedTitle: 'IEDs in template project',\n selectIedButton: 'Select IED',\n selectTemplateButton: 'Select template project',\n noDiff:\n 'No differences between the project IED \"{{ projectIedName }}\" and template IED \"{{ templateIedName }}\"',\n },\n 'enum-val': {\n wizard: {\n title: {\n add: 'Add EnumVal',\n edit: 'Edit EnumVal',\n },\n },\n },\n enum: {\n wizard: {\n title: {\n add: 'Add EnumType',\n edit: 'Edit EnumType',\n },\n },\n action: {\n edit: 'Change EnumType ID \"{{oldId}}\" and its DA references to {{newId}} ',\n },\n },\n datype: {\n wizard: {\n title: {\n add: 'Add DAType',\n edit: 'Edit DAType',\n },\n },\n action: {\n edit: 'Change DAType ID \"{{oldId}}\" and its DA references to {{newId}} ',\n },\n },\n bda: {\n wizard: {\n title: {\n add: 'Add BDA',\n edit: 'Edit BDA',\n },\n },\n },\n da: {\n wizard: {\n title: {\n add: 'Add DA',\n edit: 'Edit DA',\n },\n },\n },\n dai: {\n wizard: {\n valueHelper: 'Value should be of type {{type}}',\n title: {\n create: 'Create DAI \"{{daiName}}\"',\n edit: 'Edit DAI \"{{daiName}}\"',\n },\n },\n action: {\n createdai: 'Created DAI \"{{daiName}}\"',\n updatedai: 'Edited DAI \"{{daiName}}\"',\n },\n },\n sdo: {\n wizard: {\n title: {\n add: 'Add SDO',\n edit: 'Edit SDO',\n },\n },\n },\n do: {\n wizard: {\n title: {\n add: 'Add DO',\n edit: 'Edit DO',\n },\n },\n },\n dotype: {\n wizard: {\n title: {\n add: 'Add DOType',\n edit: 'Edit DOType',\n },\n enums: 'Default enumerations',\n },\n action: {\n edit: 'Change DOType ID \"{{oldId}}\" and its DO references to {{newId}} ',\n },\n },\n lnodetype: {\n wizard: {\n title: {\n add: 'Add LNodeType',\n edit: 'Edit LNodeType',\n select: 'Select Data Objects',\n },\n },\n action: {\n edit: 'Change LNodeType ID \"{{oldId}}\" and its LN references to {{newId}} ',\n },\n autoimport: 'Use LN class from OpenSCD template',\n missinglnclass: 'Missing pre-defined LN class',\n },\n lnode: {\n wizard: {\n title: {\n selectIEDs: 'Select IEDs',\n selectLDs: 'Select logical devices',\n selectLNs: 'Select logical nodes',\n selectLNodeTypes: 'Select logical node types',\n },\n placeholder: 'Please load an SCL file that contains IED elements.',\n uniquewarning: 'Logical node class already exists',\n reference: 'Add reference to existing logical node',\n instance: 'Add reference to logical node type',\n },\n log: {\n title: 'Cannot add LNode of class {{lnClass}}',\n nonuniquelninst: 'Cannot find unique lnInst',\n uniqueln0: 'Only one instance of {{lnClass}} allowed',\n },\n tooltip: 'Create logical nodes reference',\n },\n guess: {\n wizard: {\n primary: 'Guess content',\n title: 'Select control model (ctlModel)',\n description: `IEDs often contain more controllable logical nodes than switchgear in the field. \\n You can select the control model(s) used specific for switchgear.`,\n },\n },\n merge: {\n title: 'Merge',\n defaultTitle: 'Merge {{ source }} into {{ sink }} ({{ tag }})',\n log: 'Merged {{ tag }} {{ source }} into {{ sink }}',\n children: 'Child elements',\n },\n import: {\n title: 'Import IEDs',\n log: {\n successful: 'IED {{ name }} loaded',\n parsererror: 'Parser error',\n loaderror: 'Could not load file',\n importerror: 'Could not import IED',\n missingied: 'No IED element in the file',\n nouniqueied: 'IED element {{ name }} already in the file',\n },\n },\n communication: {\n name: 'Network Configuration',\n missing: 'No subnetwork',\n },\n subnetwork: {\n name: 'Subnetwork',\n wizard: {\n nameHelper: 'Subnetwork name',\n descHelper: 'Subnetwork description',\n typeHelper: 'Network type (e.g. 8-MMS)',\n bitrateHelper: 'Bit rate',\n title: {\n add: 'Add subnetwork',\n edit: 'Edit subnetwork',\n },\n },\n },\n connectedap: {\n name: 'Connected access point',\n wizard: {\n addschemainsttype: 'Add XMLSchema-instance type',\n },\n action: {\n addaddress: 'Edit Address ({{iedName}} - {{apName}})',\n },\n },\n gse: {\n action: {\n addaddress: 'Edit GSE ({{identity}})',\n },\n missingaccp: 'AccessPoint is not connected. GSE cannot be created.',\n },\n smv: {\n action: {\n addaddress: 'Edit SMV ({{identity}})',\n },\n missingaccp: 'AccessPoint is not connected. SMV cannot be created.',\n },\n subscriber: {\n title: 'Subscriber update',\n description: 'Subscriber update: ',\n nonewitems: 'no new IEDName elements to add',\n message: '{{updatenumber}} IEDName elements added to the project',\n },\n commmap: {\n title: 'Communication mapping',\n connectCB: 'Connect {{cbType}}',\n connectToIED: 'Connect to {{iedName}}',\n sourceIED: 'Source IED',\n sinkIED: 'Sink IED',\n },\n updatesubstation: {\n title: 'Update substation',\n },\n code: {\n log: 'Changed element in XML editor: {{id}}',\n },\n updatedesc: {\n abb: 'Added signal descriptions to ABB IEDs',\n sel: 'Added signal descriptions to SEL IEDs',\n },\n sld: {\n substationSelector: 'Select a substation',\n wizard: {\n xCoordinateHelper: 'X-Coordinate for Single Line Diagram',\n yCoordinateHelper: 'Y-Coordinate for Single Line Diagram',\n },\n },\n dataset: {\n fcda: { add: 'Add Data Attributes' },\n fcd: { add: 'Add Data Objects' },\n },\n report: {\n wizard: { location: 'Select Report Control Location' },\n rptID: 'Report control block identifier',\n },\n cleanup: {\n unreferencedDataSets: {\n title: 'Unreferenced Datasets',\n deleteButton: 'Remove Selected Datasets',\n tooltip:\n 'Datasets without a reference to an associated GOOSE, Log, Report or Sampled Value Control Block',\n },\n unreferencedControls: {\n title: 'Control Blocks with a Missing or Invalid Dataset',\n deleteButton: 'Remove Selected Control Blocks',\n tooltip:\n 'Control Blocks without a reference to an existing DataSet. Note that this is normal in an ICD file or for an MMS ReportControl with a dynamically allocated DataSet',\n addressDefinitionTooltip:\n 'An address definition exists for this control block in the Communication section',\n alsoRemoveFromCommunication: 'Also remove SMV/GSE Address',\n },\n unreferencedDataTypes: {\n title: 'Unreferenced Data Types',\n deleteButton: 'Remove Selected Data Types',\n tooltip:\n 'Data Types which are not referenced in a Logical Node or other used Data Type',\n alsoRemoveSubTypes: 'Also remove subtypes',\n stackExceeded:\n 'Max Stack Length Exceeded. Maximum allowed is {{maxStackDepth}}. Datatype cleaning incomplete and file damage may have occurred.',\n },\n },\n controlblock: {\n action: {\n edit: 'Edited {{type}} \"{{name}}\" in IED {{iedName}}',\n add: 'Added {{type}} \"{{name}}\" to IED {{iedName}}',\n remove:\n 'Removed {{type}} \"{{name}}\" and its referenced elements from IED {{iedName}}',\n },\n hints: {\n source: 'Source IED',\n missingServer: 'Not A Server',\n exist: '{{type}} with name {{name}} already exist',\n noMatchingData: 'No matching data',\n valid: 'Can be copied',\n },\n label: { copy: 'Copy to other IEDs' },\n },\n gsecontrol: {\n wizard: { location: 'Select GOOSE Control Block Location' },\n },\n samvpledvaluecontrol: {\n wizard: { location: 'Select Sampled Value Control Block Location' },\n },\n publisher: {\n selectbutton: 'Select other {{type}}',\n nodataset: 'No DataSet referenced',\n smv: {\n commsetting: 'Communication Settings (SMV)',\n noconnectedap: 'No connection to SubNetwork',\n smvopts: 'Optional Fields',\n },\n },\n exportCommunication: {\n noCommunicationSection: 'No export as Communication section empty',\n },\n add: 'Add',\n new: 'New',\n remove: 'Remove',\n edit: 'Edit',\n move: 'Move',\n create: 'Create',\n save: 'Save',\n saveAs: 'Save as',\n open: 'Open',\n reset: 'Reset',\n cancel: 'Cancel',\n close: 'Close',\n filter: 'Filter',\n filters: 'Filters',\n undo: 'Undo',\n redo: 'Redo',\n duplicate: 'Clone',\n connect: 'Connect',\n disconnect: 'Disconnect',\n next: 'Next',\n};\n"]}
1
+ {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/translations/en.ts"],"names":[],"mappings":"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","sourcesContent":["export const en = {\n scl: {\n id: 'ID',\n name: 'Name',\n desc: 'Description',\n ord: 'Ordinal',\n value: 'Value',\n EnumVal: 'Enum Value',\n EnumType: 'Enum Type',\n DA: 'Data attribute',\n DO: 'Data object',\n DAType: 'Data Attribute Type',\n DOType: 'Data Object Type',\n CDC: 'Common data class',\n Report: 'Report',\n LN: 'Logical Node',\n bType: 'Basic type',\n type: 'Type',\n sAddr: 'Short address',\n valKind: 'Value kind',\n valImport: 'Import value',\n fc: 'Function constraint',\n LNodeType: 'Logical Node Type',\n lnClass: 'Logical Node Class',\n accessControl: 'Access control',\n transient: 'Transient data',\n Val: 'Default value',\n dchg: 'Trigger on data change',\n qchg: 'Trigger on quality change',\n dupd: 'Trigger on data update',\n period: 'Periodical Publishing',\n gi: 'General Interrogation',\n fixedOffs: 'Fixed offset',\n securityEnable: 'Security enabled',\n DataSet: 'Dataset',\n Communication: 'Communication',\n TrgOps: 'Trigger options',\n OptFields: 'Optional fields',\n multicast: 'SMV acc. to IEC 61850 9-2',\n smpMod: 'Sample mode',\n smpRate: 'Sample rate',\n nofASDU: 'Samples per packet',\n seqNum: 'Add Sequence Number',\n timeStamp: 'Add Timestamp',\n dataSet: 'Add DataSet Reference',\n reasonCode: 'Add Trigger Reason',\n dataRef: 'Add description of the payload',\n entryID: 'Add Entry ID',\n configRef: 'Add Configuration Revision',\n bufOvfl: 'Add Buffered Overflow information',\n indexed: 'Multiple instances possible',\n buffered: 'Buffered Report',\n maxReport: 'Number of Instances',\n bufTime: 'Min. time between two Reports',\n intgPd: 'Time between two periodic Reports',\n SmvOpts: 'Optional Information',\n refreshTime: 'Add timestamp to SMV packet',\n sampleRate: 'Add sample rate to SMV packet',\n security: 'Potential future use. e.g. digital signature',\n synchSourceId: 'Add sync source id to SMV packet',\n SampledValueControl: 'Sampled Value Control Block',\n iedName: 'Referenced IED',\n ldInst: 'Referenced Logical Device',\n prefix: 'Prefix of the Logical Node',\n lnInst: 'Instance of the Logical Node',\n virtual: 'Virtual',\n phase: 'Phase',\n },\n settings: {\n title: 'Settings',\n language: 'Language',\n languages: { de: 'German (Deutsch)', en: 'English' },\n dark: 'Dark theme',\n mode: 'Pro mode',\n showieds: 'Show IEDs in substation editor',\n selectFileButton: 'Select file',\n loadNsdTranslations: 'Uploaded NSDoc files',\n invalidFileNoIdFound:\n \"Invalid NSDoc ({{ filename }}); no 'id' attribute found in file\",\n invalidNsdocVersion:\n 'The version of {{ id }} NSD ({{ nsdVersion }}) does not correlate with the version of the corresponding NSDoc ({{ filename }}, {{ nsdocVersion }})',\n },\n menu: {\n new: 'New project',\n title: 'Menu',\n viewLog: 'View log',\n viewDiag: 'View diagnostics',\n },\n wizard: {\n title: {\n select: 'Select {{tagName}}',\n edit: 'Edit {{tagName}}',\n add: 'Add {{tagName}}',\n selectAp: 'Select New ConnectedAP',\n },\n },\n openSCD: {\n loading: 'Loading project {{ name }}',\n loaded: '{{ name }} loaded',\n readError: 'Error reading {{ name }}',\n readAbort: 'Aborted reading {{ name }}',\n },\n zeroline: {\n iedsloading: 'Loading IEDs...',\n showieds: 'Show/hide IEDs in substation editor',\n showfunctions: 'Filter function type elements',\n commmap: 'Communication mapping',\n reportcontrol: 'Show all Reports',\n gsecontrol: 'Show all GOOSEs',\n smvcontrol: 'Show all Sampled Values',\n },\n editing: {\n node: 'User defined object',\n created: 'Added {{ name }}',\n deleted: 'Removed {{ name }}',\n moved: 'Moved {{ name }}',\n updated: 'Edited {{ name }}',\n import: 'Imported {{name}}',\n complex: 'Multiple elements edited',\n error: {\n create: 'Could not add {{ name }}',\n update: 'Could not edit {{ name }}',\n move: 'Could not move {{ name }}',\n duplicate: 'Could not copy {{ name }}',\n nameClash:\n 'Parent {{ parent }} already contains a {{ child }} named \"{{ name }}\"',\n idClash: 'The project has already an ID \"{{ id }}\"',\n },\n },\n textfield: {\n required: 'Required',\n nonempty: 'Must not be empty',\n noMultiplier: 'none',\n unique: 'Must be unique',\n },\n compare: {\n compareButton: 'Compare',\n attributes: 'Attributes from {{ elementName }}',\n children: 'Child elements from {{ elementName }}',\n filterMutables: 'Filter project specific differences',\n },\n log: {\n name: 'Log',\n placeholder: 'Errors, warnings and other notifications will show up here.',\n snackbar: {\n show: 'Show',\n placeholder: 'No errors',\n },\n },\n history: {\n name: 'SCL History',\n placeholder: 'Edits will show up here',\n noEntries: 'No SCL history entries',\n },\n diag: {\n name: 'Diagnostics',\n zeroissues: 'No errors found in the project',\n placeholder: 'Issues found during validation will show up here',\n missingnsd:\n 'Cannot validate DataTypeTemplates. The version of the project must be higher than or equal to 2007B4',\n lastValidated: 'Validated at {{ time }}',\n },\n plugins: {\n heading: 'Plug-ins',\n editor: 'Editor tab',\n menu: 'Menu entry',\n requireDoc: 'Requires loaded document',\n top: 'top',\n middle: 'middle',\n bottom: 'bottom',\n validator: 'Validator',\n add: {\n heading: 'Add custom plug-in',\n warning: `Here you may add remote plug-ins directly from a custom URL.\n You do this at your own risk.`,\n name: 'Name',\n nameHelper: 'Your preferred plug-in name',\n src: 'URL',\n srcHelper: 'The vendor supplied plug-in URL',\n },\n },\n validator: {\n schema: {\n title: 'Validate project',\n valid: '{{ name }} XML schema validation successful',\n invalid: '{{ name }} XML schema validation failed',\n fatal: 'Fatal validation error',\n loadError: 'Could not load XML schema {{ name }}',\n },\n templates: {\n title: 'Validate templates',\n mandatoryChild:\n '{{ tag }} {{ id }} is missing mandatory child {{ childTag }} {{ childId }}',\n missingAttribute:\n 'The attribute {{attr}} is required but missing in {{element}}',\n incorrectAttribute:\n 'The attribute {{attr}} is incorrect in the element {{element}}.',\n missingReference:\n '{{tag}}:{{name}} has a invalid reference - type attribute cannot be connected to a template',\n },\n },\n substation: {\n name: 'Substation',\n missing: 'No substation',\n wizard: {\n nameHelper: 'Substation name',\n descHelper: 'Substation description',\n title: {\n add: 'Add substation',\n edit: 'Edit substation',\n },\n },\n action: {\n addvoltagelevel: 'Add voltage level',\n updatesubstation: 'Edited substation \"{{name}}\"',\n },\n clone: {\n redirect: \"Redirect LNode's\",\n cloneclose: 'Clone once',\n cloneproc: 'Clone multiple',\n newname: 'Clone Name',\n },\n },\n iededitor: {\n iedSelector: 'Select IED',\n lnFilter: 'Logical Node Filter',\n missing: 'No IED',\n toggleChildElements: 'Toggle child elements',\n settings: 'Show Services the IED/AccessPoint provides',\n createIed: 'Create Virtual IED',\n addAccessPoint: 'Add AccessPoint',\n wizard: {\n daTitle: 'Show DA Info',\n doTitle: 'Show DO Info',\n nsdocDescription: 'NSDoc description',\n doiDescription: 'Data object description',\n daiDescription: 'Data attribute description',\n ied: 'IED',\n accessPoint: 'Access point',\n lDevice: 'Logical device',\n lnPrefix: 'Logical node prefix',\n lnDescription: 'Logical node description',\n lnInst: 'Logical node inst',\n doName: 'Data object name',\n doCdc: 'Data object common data class',\n daName: 'Data attribute name',\n daFc: 'Data attribute functional constraint',\n daBType: 'Data attribute type',\n daValue: 'Data attribute value',\n },\n createDialog: {\n iedName: 'IED name',\n nameFormatError: 'IED name cannot contain spaces',\n nameUniqueError: 'IED name already exists',\n },\n addAccessPointDialog: {\n title: 'Add AccessPoint',\n nameHelper: 'AccessPoint name',\n descHelper: 'AccessPoint description',\n apName: 'AccessPoint name',\n createServerAt: 'Add ServerAt',\n selectAccessPoint: 'Select AccessPoint',\n serverAtDesc: 'ServerAt description',\n nameFormatError: 'AccessPoint name cannot contain spaces',\n nameUniqueError: 'AccessPoint name already exists',\n nameTooLongError: 'AccessPoint name is too long',\n },\n addLDeviceDialog: {\n title: 'Add LDevice',\n inst: 'LDevice inst',\n desc: 'LDevice description',\n instRequiredError: 'LDevice inst is required',\n instFormatError: 'Invalid inst',\n instUniqueError: 'LDevice inst already exists',\n instTooLongError: 'LDevice inst is too long',\n },\n addLnDialog: {\n title: 'Add LN',\n amount: 'Amount',\n prefix: 'Prefix',\n filter: 'Filter Logical Node Types',\n noResults: 'No Logical Node Types found',\n },\n },\n accesspoint: {\n wizard: {\n nameHelper: 'AccessPoint name',\n descHelper: 'AccessPoint description',\n title: {\n add: 'Add AccessPoint',\n edit: 'Edit AccessPoint',\n delete: 'Remove AccessPoint with references',\n references: 'References to be removed',\n },\n },\n },\n ied: {\n wizard: {\n nameHelper: 'IED name',\n descHelper: 'IED description',\n manufacturerHelper: 'IED manufacturer',\n title: {\n edit: 'Edit IED',\n delete: 'Remove IED with references',\n references: 'References to be removed',\n },\n },\n action: {\n updateied: 'Edited IED \"{{name}}\"',\n deleteied: 'Removed IED \"{{name}}\"',\n },\n },\n ldevice: {\n wizard: {\n nameHelper: 'Logical device name',\n noNameSupportHelper: \"IED doesn't support Functional Naming\",\n descHelper: 'Logical device description',\n instHelper: 'Logical device inst',\n title: {\n edit: 'Edit logical device',\n },\n },\n },\n ln: {\n wizard: {\n title: {\n edit: 'Edit LN',\n },\n descHelper: 'Logical node description',\n lnTypeHelper: 'Logical node type',\n prefixHelper: 'Prefix of the logical node',\n lnClassHelper: 'Logical node class',\n instHelper: 'Instance',\n },\n },\n ln0: {\n wizard: {\n title: {\n edit: 'Edit LN0',\n },\n descHelper: 'Logical node description',\n lnTypeHelper: 'Logical node type',\n lnClassHelper: 'Logical node class',\n instHelper: 'Instance',\n },\n },\n powertransformer: {\n wizard: {\n nameHelper: 'Power transformer name',\n descHelper: 'Power transformer description',\n typeHelper: 'Power transformer type',\n title: {\n add: 'Add power transformer',\n edit: 'Edit power transformer',\n },\n },\n },\n voltagelevel: {\n name: 'Voltage level',\n wizard: {\n nameHelper: 'Voltage level name',\n descHelper: 'Voltage level description',\n nomFreqHelper: 'Nominal frequency',\n numPhaseHelper: 'Number of phases',\n voltageHelper: 'Nominal voltage',\n title: {\n add: 'Add voltage level',\n edit: 'Edit voltage level',\n },\n },\n action: {\n updateVoltagelevel: 'Edited voltagelevel \"{{name}}\"',\n },\n },\n line: {\n name: 'Line',\n wizard: {\n nameHelper: 'Line name',\n descHelper: 'Line description',\n typeHelper: 'Line type',\n title: {\n add: 'Add line',\n edit: 'Edit line',\n },\n },\n action: {\n updateLine: 'Edited line \"{{name}}\"',\n },\n },\n process: {\n name: 'Process',\n wizard: {\n nameHelper: 'Process name',\n descHelper: 'Process description',\n typeHelper: 'Process type',\n title: {\n add: 'Add Process',\n edit: 'Edit Process',\n },\n },\n action: {\n updateProcess: 'Edited Process \"{{name}}\"',\n },\n },\n bay: {\n name: 'Bay',\n wizard: {\n nameHelper: 'Bay name',\n descHelper: 'Bay description',\n title: {\n add: 'Add bay',\n edit: 'Edit bay',\n },\n },\n action: {\n updateBay: 'Edited bay \"{{name}}\"',\n },\n },\n conductingequipment: {\n name: 'Conducting Equipment',\n wizard: {\n nameHelper: 'Conducting equipment name',\n descHelper: 'Conducting equipment description',\n typeHelper: 'Conducting equipment type',\n title: {\n add: 'Add conducting equipment',\n edit: 'Edit conducting equipment',\n },\n },\n unknownType: 'Unknown type',\n },\n connectivitynode: {\n name: 'Connectivity Node',\n wizard: {\n nameHelper: 'Connectivity node name',\n pathNameHelper: 'Connectivity node pathname',\n title: {\n add: 'Add Connectivity node',\n edit: 'Edit Connectivity node',\n },\n },\n },\n terminal: {\n name: 'Terminal',\n wizard: {\n nameHelper: 'Terminal name',\n connectivityNodeHelper: 'Terminal connectivity node',\n cNodeNameHelper: 'Terminal connectivity node name',\n title: {\n add: 'Add Terminal',\n edit: 'Edit Terminal',\n },\n },\n },\n templates: {\n name: 'Data Type Templates',\n missing: 'DataTypeTemplates missing',\n add: 'Add DataTypeTemplates',\n },\n subscription: {\n none: 'None',\n connect: 'Connect data attribute',\n disconnect: 'Disconnect data attribute',\n subscriber: {\n subscribed: 'Subscribed',\n notSubscribed: 'Not Subscribed',\n availableToSubscribe: 'Available to subscribe',\n partiallySubscribed: 'Partially subscribed',\n noControlBlockSelected: 'No control block selected',\n noIedSelected: 'No IED selected',\n },\n goose: {\n publisher: {\n title: 'GOOSE Publishers',\n subscriberTitle: 'IEDs subscribed to {{ selected }}',\n },\n subscriber: {\n iedListTitle: 'GOOSE Subscribers',\n publisherTitle: 'GOOSE Messages subscribed to {{selected}}',\n },\n view: {\n publisherView: 'Publisher | Subscriber',\n subscriberView: 'Subscriber | Publisher',\n },\n },\n smv: {\n publisher: {\n title: 'Sampled Value Messages',\n subscriberTitle: 'IEDs subscribed to {{ selected }}',\n },\n subscriber: {\n iedListTitle: 'Sampled Value Subscribers',\n publisherTitle: 'Sampled Value Messages subscribed to {{ selected }}',\n },\n view: {\n publisherView: 'Publisher | Subscriber',\n subscriberView: 'Subscriber | Publisher',\n },\n },\n binding: {\n extRefList: {\n title: 'Logical nodes available for selected data attribute',\n noSelection: 'No data attribute selected',\n noSubscribedLNs: 'No subscribed logical nodes',\n noAvailableLNs: 'No available logical nodes to subscribe',\n },\n },\n laterBinding: {\n extRefList: {\n title: 'Inputs available for selected data attribute',\n noSelection: 'No data attribute selected',\n noSubscribedExtRefs: 'No subscribed inputs',\n noAvailableExtRefs: 'No available inputs to subscribe',\n },\n },\n SampledValueControl: {\n controlBlockList: {\n title: 'Sampled Value Messages',\n noControlBlockFound: 'No Sampled Value Messages found',\n },\n },\n GSEControl: {\n controlBlockList: {\n title: 'GOOSE Messages',\n noControlBlockFound: 'No GOOSE Messages found',\n },\n },\n },\n protocol104: {\n toggleChildElements: 'Toggle child elements',\n view: {\n valuesView: 'Values',\n networkView: 'Network',\n },\n mappedCmv:\n 'According to the IEC 61850-80-1 standard, \"{{ cdc }}\" mapping is required via CMV',\n values: {\n missing: 'No IED with 104 Addresses',\n removeAddresses: 'Remove all Addresses',\n removedAddresses:\n 'Removed Addresses from DOI \"{{ name }}\" ({{ nrOfAddresses }})',\n addedAddress:\n 'Added 104 Address(es) to DO \"{{ name }}\" on LN(0) \"{{ lnName }}\"',\n signalNames: {\n tiNumber1: 'Single-point information',\n tiNumber3: 'Double-point information',\n tiNumber5: 'Step position information',\n tiNumber7: 'Bit string of 32 bit',\n tiNumber9: 'Measured value, normalized value',\n tiNumber11: 'Measured value, scaled value',\n tiNumber13: 'Measured value, short floating point number',\n tiNumber15: 'Integrated totals',\n tiNumber20:\n 'Packed single point information with status change detection',\n tiNumber21:\n 'Measured value, normalized value without quality descriptor',\n tiNumber30: 'Single-point information with time tag CP56Time2a',\n tiNumber31: 'Double-point information with time tag CP56Time2a',\n tiNumber32: 'Step position information with time tag CP56Time2a',\n tiNumber33: 'Bit string of 32 bit with time tag CP56Time2a',\n tiNumber34: 'Measured value, normalized value with time tag CP56Time2a',\n tiNumber35: 'Measured value, scaled value with time tag CP56Time2a',\n tiNumber36:\n 'Measured value, short floating point number with time tag CP56Time2a',\n tiNumber37: 'Integrated totals with time tag CP56Time2a',\n tiNumber38: 'Event of protection equipment with time tag CP56Time2a',\n tiNumber39:\n 'Packed start events of protection equipment with time tag CP56Time2a',\n tiNumber40:\n 'Packed output circuit information of protection equipment with time tag CP56Time2a',\n tiNumber45: 'Single command',\n tiNumber46: 'Double command',\n tiNumber47: 'Regulating step command',\n tiNumber48: 'Set-point Command, normalized value',\n tiNumber49: 'Set-point Command, scaled value',\n tiNumber50: 'Set-point Command, short floating point number',\n tiNumber51: 'Bit string 32 bit command',\n tiNumber58: 'Single command with time tag CP56Time2a',\n tiNumber59: 'Double command with time tag CP56Time2a',\n tiNumber60: 'Regulating step command with time tag CP56Time2a',\n tiNumber61:\n 'Measured value, normalized value command with time tag CP56Time2a',\n tiNumber62:\n 'Measured value, scaled value command with time tag CP56Time2a',\n tiNumber63:\n 'Measured value, short floating point number command with time tag CP56Time2a',\n tiNumber64: 'Bit string of 32 bit command with time tag CP56Time2a',\n default: 'No description available',\n },\n },\n network: {\n connectedAp: {\n wizard: {\n title: {\n edit: 'Edit ConnectedAP',\n },\n redundancySwitchLabel: 'Redundancy',\n redundancyGroupTitle: 'Redundancy Groups',\n noRedundancyGroupsAvailable: 'No redundancy groups available',\n addRedundancyGroup: 'Redundancy Group',\n stationTypeHelper: 'Type of station',\n ipHelper: 'IP address of the logical link',\n ipSubnetHelper:\n 'Subnetwork mask of the IP address of the logical link',\n wFactorHelper: 'W factor of the logical link',\n kFactorHelper: 'K factor of the logical link',\n timeout0Helper: 'Time-out in seconds of connection establishment',\n timeout1Helper: 'Time-out in seconds of sent or test APDUs',\n timeout2Helper:\n 'Time-out in seconds for acknowledges in case of no data messages',\n timeout3Helper:\n 'Time-out in seconds for sending test frames in case of a long idle state',\n },\n },\n redundancyGroup: {\n wizard: {\n title: {\n edit: 'Edit Redundancy Group',\n add: 'Add Redundancy Group',\n },\n redundancyGroupNumberLabel: 'Redundancy Group number',\n addedLRedundancyGroup:\n 'Added Redundancy Group {{ rGNumber }} from SubNetwork (name=\"{{ subNetworkName }}\") and ConnectedAP (AccessPoint Name=\"{{ apName }}\", IED Name=\"{{ iedName }}\")',\n editedRedundancyGroup:\n 'Edited Redundancy Group {{ rGNumber }} from SubNetwork (name=\"{{ subNetworkName }}\") and ConnectedAP (AccessPoint Name=\"{{ apName }}\", IED Name=\"{{ iedName }}\")',\n removedRedundancyGroup:\n 'Removed Redundancy Group {{ rGNumber }} from SubNetwork (name=\"{{ subNetworkName }}\") and ConnectedAP (AccessPoint Name=\"{{ apName }}\", IED Name=\"{{ iedName }}\")',\n logicLinkGroupTitle: 'Logic Links',\n noLogicLinksAvailable: 'No Logic Links available',\n addLogicLink: 'Logic Link',\n },\n },\n logicLink: {\n wizard: {\n title: {\n edit: 'Edit Logic Link',\n add: 'Add Logic Link',\n },\n logicLinkNumberLabel: 'Logic Link number',\n addedLogicLink:\n 'Added Logic Link group to SubNetwork (name=\"{{ subNetworkName }}\") and ConnectedAP (AccessPoint Name=\"{{ apName }}\", IED Name=\"{{ iedName }}\")',\n editedLogicLink:\n 'Edited Logic Link group from SubNetwork (name=\"{{ subNetworkName }}\") and ConnectedAP (AccessPoint Name=\"{{ apName }}\", IED Name=\"{{ iedName }}\")',\n removedLogicLink:\n 'Removed Logic Link group from SubNetwork (name=\"{{ subNetworkName }}\") and ConnectedAP (AccessPoint Name=\"{{ apName }}\", IED Name=\"{{ iedName }}\")',\n },\n },\n },\n wizard: {\n title: {\n doiInfo: 'DOI Info',\n addressEdit: 'Edit 104 Address',\n addAddress: 'Add 104 Address',\n },\n error: {\n ioaConflict: 'IOA conflict found within CASDU number',\n addAddressError:\n 'Invalid Template Structure, unable to create DAI Element. (DO: \"{{ doType }}\", CDC: \"{{ cdc }}\", DAI: \"{{ structure }}\")',\n },\n casduHelper: 'CASDU Value',\n ioaHelper: 'IOA Value',\n monitorTiHelper: 'Monitor TI Value',\n monitorInverted: 'Created Inverted Addresses (Monitor)',\n monitorCheck: 'Create Check Addresses (Monitor)',\n controlTiHelper: 'Control TI Value',\n controlInverted: 'Created Inverted Addresses (Control)',\n controlCheck: 'Create Check Addresses (Control)',\n expectedValueHelper: 'Expected Value',\n unitMultiplierHelper: 'Unit Multiplier',\n scaleMultiplierHelper: 'Scale Multiplier',\n scaleOffsetHelper: 'Scale Offset',\n },\n },\n 'compare-ied': {\n selectProjectTitle: 'Select template project to Compare IED with',\n selectIedTitle: 'Select IED for comparison',\n resultTitle: 'Compared IED with IED from template project',\n projectIedTitle: 'IEDs in project',\n templateIedTitle: 'IEDs in template project',\n selectIedButton: 'Select IED',\n selectTemplateButton: 'Select template project',\n noDiff:\n 'No differences between the project IED \"{{ projectIedName }}\" and template IED \"{{ templateIedName }}\"',\n },\n 'enum-val': {\n wizard: {\n title: {\n add: 'Add EnumVal',\n edit: 'Edit EnumVal',\n },\n },\n },\n enum: {\n wizard: {\n title: {\n add: 'Add EnumType',\n edit: 'Edit EnumType',\n },\n },\n action: {\n edit: 'Change EnumType ID \"{{oldId}}\" and its DA references to {{newId}} ',\n },\n },\n datype: {\n wizard: {\n title: {\n add: 'Add DAType',\n edit: 'Edit DAType',\n },\n },\n action: {\n edit: 'Change DAType ID \"{{oldId}}\" and its DA references to {{newId}} ',\n },\n },\n bda: {\n wizard: {\n title: {\n add: 'Add BDA',\n edit: 'Edit BDA',\n },\n },\n },\n da: {\n wizard: {\n title: {\n add: 'Add DA',\n edit: 'Edit DA',\n },\n },\n },\n dai: {\n wizard: {\n valueHelper: 'Value should be of type {{type}}',\n title: {\n create: 'Create DAI \"{{daiName}}\"',\n edit: 'Edit DAI \"{{daiName}}\"',\n },\n },\n action: {\n createdai: 'Created DAI \"{{daiName}}\"',\n updatedai: 'Edited DAI \"{{daiName}}\"',\n },\n },\n sdo: {\n wizard: {\n title: {\n add: 'Add SDO',\n edit: 'Edit SDO',\n },\n },\n },\n do: {\n wizard: {\n title: {\n add: 'Add DO',\n edit: 'Edit DO',\n },\n },\n },\n dotype: {\n wizard: {\n title: {\n add: 'Add DOType',\n edit: 'Edit DOType',\n },\n enums: 'Default enumerations',\n },\n action: {\n edit: 'Change DOType ID \"{{oldId}}\" and its DO references to {{newId}} ',\n },\n },\n lnodetype: {\n wizard: {\n title: {\n add: 'Add LNodeType',\n edit: 'Edit LNodeType',\n select: 'Select Data Objects',\n },\n },\n action: {\n edit: 'Change LNodeType ID \"{{oldId}}\" and its LN references to {{newId}} ',\n },\n autoimport: 'Use LN class from OpenSCD template',\n missinglnclass: 'Missing pre-defined LN class',\n },\n lnode: {\n wizard: {\n title: {\n selectIEDs: 'Select IEDs',\n selectLDs: 'Select logical devices',\n selectLNs: 'Select logical nodes',\n selectLNodeTypes: 'Select logical node types',\n },\n placeholder: 'Please load an SCL file that contains IED elements.',\n uniquewarning: 'Logical node class already exists',\n reference: 'Add reference to existing logical node',\n instance: 'Add reference to logical node type',\n },\n log: {\n title: 'Cannot add LNode of class {{lnClass}}',\n nonuniquelninst: 'Cannot find unique lnInst',\n uniqueln0: 'Only one instance of {{lnClass}} allowed',\n },\n tooltip: 'Create logical nodes reference',\n },\n guess: {\n wizard: {\n primary: 'Guess content',\n title: 'Select control model (ctlModel)',\n description: `IEDs often contain more controllable logical nodes than switchgear in the field. \\n You can select the control model(s) used specific for switchgear.`,\n },\n },\n merge: {\n title: 'Merge',\n defaultTitle: 'Merge {{ source }} into {{ sink }} ({{ tag }})',\n log: 'Merged {{ tag }} {{ source }} into {{ sink }}',\n children: 'Child elements',\n },\n import: {\n title: 'Import IEDs',\n log: {\n successful: 'IED {{ name }} loaded',\n parsererror: 'Parser error',\n loaderror: 'Could not load file',\n importerror: 'Could not import IED',\n missingied: 'No IED element in the file',\n nouniqueied: 'IED element {{ name }} already in the file',\n },\n },\n communication: {\n name: 'Network Configuration',\n missing: 'No subnetwork',\n },\n subnetwork: {\n name: 'Subnetwork',\n wizard: {\n nameHelper: 'Subnetwork name',\n descHelper: 'Subnetwork description',\n typeHelper: 'Network type (e.g. 8-MMS)',\n bitrateHelper: 'Bit rate',\n title: {\n add: 'Add subnetwork',\n edit: 'Edit subnetwork',\n },\n },\n },\n connectedap: {\n name: 'Connected access point',\n wizard: {\n addschemainsttype: 'Add XMLSchema-instance type',\n },\n action: {\n addaddress: 'Edit Address ({{iedName}} - {{apName}})',\n },\n },\n gse: {\n action: {\n addaddress: 'Edit GSE ({{identity}})',\n },\n missingaccp: 'AccessPoint is not connected. GSE cannot be created.',\n },\n smv: {\n action: {\n addaddress: 'Edit SMV ({{identity}})',\n },\n missingaccp: 'AccessPoint is not connected. SMV cannot be created.',\n },\n subscriber: {\n title: 'Subscriber update',\n description: 'Subscriber update: ',\n nonewitems: 'no new IEDName elements to add',\n message: '{{updatenumber}} IEDName elements added to the project',\n },\n commmap: {\n title: 'Communication mapping',\n connectCB: 'Connect {{cbType}}',\n connectToIED: 'Connect to {{iedName}}',\n sourceIED: 'Source IED',\n sinkIED: 'Sink IED',\n },\n updatesubstation: {\n title: 'Update substation',\n },\n code: {\n log: 'Changed element in XML editor: {{id}}',\n },\n updatedesc: {\n abb: 'Added signal descriptions to ABB IEDs',\n sel: 'Added signal descriptions to SEL IEDs',\n },\n sld: {\n substationSelector: 'Select a substation',\n wizard: {\n xCoordinateHelper: 'X-Coordinate for Single Line Diagram',\n yCoordinateHelper: 'Y-Coordinate for Single Line Diagram',\n },\n },\n dataset: {\n fcda: { add: 'Add Data Attributes' },\n fcd: { add: 'Add Data Objects' },\n },\n report: {\n wizard: { location: 'Select Report Control Location' },\n rptID: 'Report control block identifier',\n },\n cleanup: {\n unreferencedDataSets: {\n title: 'Unreferenced Datasets',\n deleteButton: 'Remove Selected Datasets',\n tooltip:\n 'Datasets without a reference to an associated GOOSE, Log, Report or Sampled Value Control Block',\n },\n unreferencedControls: {\n title: 'Control Blocks with a Missing or Invalid Dataset',\n deleteButton: 'Remove Selected Control Blocks',\n tooltip:\n 'Control Blocks without a reference to an existing DataSet. Note that this is normal in an ICD file or for an MMS ReportControl with a dynamically allocated DataSet',\n addressDefinitionTooltip:\n 'An address definition exists for this control block in the Communication section',\n alsoRemoveFromCommunication: 'Also remove SMV/GSE Address',\n },\n unreferencedDataTypes: {\n title: 'Unreferenced Data Types',\n deleteButton: 'Remove Selected Data Types',\n tooltip:\n 'Data Types which are not referenced in a Logical Node or other used Data Type',\n alsoRemoveSubTypes: 'Also remove subtypes',\n stackExceeded:\n 'Max Stack Length Exceeded. Maximum allowed is {{maxStackDepth}}. Datatype cleaning incomplete and file damage may have occurred.',\n },\n },\n controlblock: {\n action: {\n edit: 'Edited {{type}} \"{{name}}\" in IED {{iedName}}',\n add: 'Added {{type}} \"{{name}}\" to IED {{iedName}}',\n remove:\n 'Removed {{type}} \"{{name}}\" and its referenced elements from IED {{iedName}}',\n },\n hints: {\n source: 'Source IED',\n missingServer: 'Not A Server',\n exist: '{{type}} with name {{name}} already exist',\n noMatchingData: 'No matching data',\n valid: 'Can be copied',\n },\n label: { copy: 'Copy to other IEDs' },\n },\n gsecontrol: {\n wizard: { location: 'Select GOOSE Control Block Location' },\n },\n samvpledvaluecontrol: {\n wizard: { location: 'Select Sampled Value Control Block Location' },\n },\n publisher: {\n selectbutton: 'Select other {{type}}',\n nodataset: 'No DataSet referenced',\n smv: {\n commsetting: 'Communication Settings (SMV)',\n noconnectedap: 'No connection to SubNetwork',\n smvopts: 'Optional Fields',\n },\n },\n exportCommunication: {\n noCommunicationSection: 'No export as Communication section empty',\n },\n add: 'Add',\n new: 'New',\n remove: 'Remove',\n edit: 'Edit',\n move: 'Move',\n create: 'Create',\n save: 'Save',\n saveAs: 'Save as',\n open: 'Open',\n reset: 'Reset',\n cancel: 'Cancel',\n close: 'Close',\n filter: 'Filter',\n filters: 'Filters',\n undo: 'Undo',\n redo: 'Redo',\n duplicate: 'Clone',\n connect: 'Connect',\n disconnect: 'Disconnect',\n next: 'Next',\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@compas-oscd/open-scd",
3
- "version": "0.35.2",
3
+ "version": "0.35.3",
4
4
  "repository": "https://github.com/com-pas/open-scd.git",
5
5
  "directory": "packages/openscd",
6
6
  "description": "A bottom-up substation configuration designer for projects described using SCL `IEC 61850-6` Edition 2 or greater.",