@signature.digital/catalog 1.6.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist_bundle/bundle.js +300 -300
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace-audit.d.ts +2 -0
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace-audit.js +17 -4
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace-compose.d.ts +6 -2
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace-compose.js +59 -9
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace-sign.d.ts +3 -0
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace-sign.js +24 -7
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace.d.ts +4 -1
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace.js +31 -6
- package/dist_watch/bundle.js +29 -16
- package/dist_watch/bundle.js.map +3 -3
- package/package.json +1 -1
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/sdig-workspace/sdig-workspace-audit.ts +6 -3
- package/ts_web/elements/sdig-workspace/sdig-workspace-compose.ts +52 -7
- package/ts_web/elements/sdig-workspace/sdig-workspace-sign.ts +8 -5
- package/ts_web/elements/sdig-workspace/sdig-workspace.ts +8 -4
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DeesElement, html, customElement, type TemplateResult, css } from '@design.estate/dees-element';
|
|
2
|
-
import { actionButton, demoRecipients, icon, pill, topBar, workspaceBaseStyles, workspaceDemoFrame } from './sdig-workspace.shared.js';
|
|
1
|
+
import { DeesElement, property, html, customElement, type TemplateResult, css } from '@design.estate/dees-element';
|
|
2
|
+
import { actionButton, demoDocuments, demoRecipients, icon, pill, topBar, workspaceBaseStyles, workspaceDemoFrame, type IDocumentRow } from './sdig-workspace.shared.js';
|
|
3
3
|
|
|
4
4
|
declare global {
|
|
5
5
|
interface HTMLElementTagNameMap {
|
|
@@ -12,6 +12,8 @@ export class SdigWorkspaceAudit extends DeesElement {
|
|
|
12
12
|
public static demo = () => workspaceDemoFrame(html`<sdig-workspace-audit></sdig-workspace-audit>`);
|
|
13
13
|
public static demoGroups = ['Signature Digital Workspace'];
|
|
14
14
|
|
|
15
|
+
@property({ attribute: false }) public accessor document: IDocumentRow = demoDocuments[1];
|
|
16
|
+
|
|
15
17
|
public static styles = [workspaceBaseStyles, css`
|
|
16
18
|
.audit-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 20px; }
|
|
17
19
|
.event-row { display: grid; grid-template-columns: 24px 180px 1fr 200px; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--border-subtle); align-items: center; }
|
|
@@ -19,6 +21,7 @@ export class SdigWorkspaceAudit extends DeesElement {
|
|
|
19
21
|
`];
|
|
20
22
|
|
|
21
23
|
public render(): TemplateResult {
|
|
24
|
+
const document = this.document || demoDocuments[1];
|
|
22
25
|
const events = [
|
|
23
26
|
['2026-05-02 14:32:18 UTC', 'Sarah Chen', 'Document signed', '81.221.4.18 · Brussels, BE', '0x4a7b…f29c', 'success'],
|
|
24
27
|
['2026-05-02 14:31:54 UTC', 'Sarah Chen', 'Signature adopted (typed)', '81.221.4.18 · Brussels, BE', '0x4a7b…f29c', 'info'],
|
|
@@ -27,7 +30,7 @@ export class SdigWorkspaceAudit extends DeesElement {
|
|
|
27
30
|
['2026-05-02 10:54:22 UTC', 'Philipp K.', 'Document created', '92.42.114.7 · Berlin, DE', '0x1c8a…3b6f', 'default'],
|
|
28
31
|
];
|
|
29
32
|
return html`
|
|
30
|
-
${topBar({ breadcrumb: ['signature.digital', 'Inbox',
|
|
33
|
+
${topBar({ breadcrumb: ['signature.digital', 'Inbox', document.id, 'Audit Trail'], title: `Audit Trail · ${document.title}`, subtitle: pill(`${document.status} · cryptographically sealed`, document.status === 'declined' ? 'error' : document.status === 'signed' ? 'success' : 'info', true), actions: html`${actionButton('Certificate (PDF)', 'outline', 'download')}${actionButton('Verify on chain', 'outline', 'hash')}` })}
|
|
31
34
|
<div class="content-scroll audit-grid">
|
|
32
35
|
<div class="card"><div style="height: 36px; padding: 0 16px; border-bottom: 1px solid var(--border-subtle); display: flex; align-items: center; justify-content: space-between;"><span style="font-size: 12px; font-weight: 600;">Event log</span><span class="mono" style="font-size: 10px; color: var(--text-muted);">${events.length} events · immutable</span></div>${events.map((event) => html`<div class="event-row"><div><span style="display: block; width: 8px; height: 8px; border-radius: 50%; background: ${event[5] === 'success' ? 'var(--success)' : event[5] === 'info' ? 'var(--accent)' : 'var(--text-dim)'};"></span></div><div class="mono hide-mobile" style="font-size: 11px; color: var(--text-muted);">${event[0]}</div><div><div style="font-size: 12px; font-weight: 500;">${event[2]}</div><div style="font-size: 10px; color: var(--text-muted); margin-top: 2px;">by ${event[1]} ${event[4] ? html`<span class="mono" style="color: var(--accent); margin-left: 8px;">${event[4]}</span>` : ''}</div></div><div class="mono hide-mobile" style="font-size: 10px; color: var(--text-muted); text-align: right;">${event[3]}</div></div>`)}</div>
|
|
33
36
|
<div style="display: flex; flex-direction: column; gap: 16px;"><div class="card" style="padding: 16px;"><div class="label-upper">Document hash</div><div class="mono" style="font-size: 11px; color: var(--accent); word-break: break-all; line-height: 1.5; padding: 10px; background: var(--bg-el); border-radius: 4px; border: 1px solid var(--border-subtle);">0x4a7b8f29c91e3d2a5b6c8e0f1d3c5a7b9d2e4f6a8c1e3d5f7b9c1e3a5b7d9f0e</div></div><div class="card" style="padding: 16px;"><div class="label-upper">Signers</div>${demoRecipients.map((recipient) => html`<div class="recipient-line"><span class="avatar" style="background: ${recipient.color};">${recipient.name.split(' ').map((part) => part[0]).slice(0, 2).join('')}</span><div style="flex: 1;"><div style="font-size: 12px;">${recipient.name}</div><div class="mono" style="font-size: 10px; color: var(--text-muted);">${recipient.email}</div></div>${icon('check', 12)}</div>`)}</div><div class="card" style="padding: 16px; border-color: rgba(34,197,94,0.2);"><div style="display: inline-flex; align-items: center; gap: 6px; font-size: 11px; color: var(--success); margin-bottom: 6px;">${icon('shield', 13)} eIDAS Qualified · ESIGN Act compliant</div><div style="font-size: 11px; color: var(--text-muted); line-height: 1.55;">Open-source verifier available. Anyone can independently validate this signature against the public ledger.</div></div></div>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DeesElement, state, html, customElement, type TemplateResult, css } from '@design.estate/dees-element';
|
|
2
|
-
import { actionButton, demoFields, demoRecipients, fakeDocument, icon, pill, topBar, workspaceBaseStyles, workspaceDemoFrame, type IFieldPlacement, type IRecipient, type TRecipientRole } from './sdig-workspace.shared.js';
|
|
1
|
+
import { DeesElement, property, state, html, customElement, type TemplateResult, css } from '@design.estate/dees-element';
|
|
2
|
+
import { actionButton, demoDocuments, demoFields, demoRecipients, fakeDocument, icon, pill, topBar, workspaceBaseStyles, workspaceDemoFrame, type IDocumentRow, type IFieldPlacement, type IRecipient, type TRecipientRole } from './sdig-workspace.shared.js';
|
|
3
3
|
import '../sdig-contextmenu/index.js';
|
|
4
4
|
import { type ISdigContextMenuAction, type ISdigContextMenuActionEventDetail } from '../sdig-contextmenu/index.js';
|
|
5
5
|
|
|
@@ -71,8 +71,9 @@ export class SdigWorkspaceCompose extends DeesElement {
|
|
|
71
71
|
@state() private accessor step: number = 2;
|
|
72
72
|
@state() private accessor activeRecipient: number = 0;
|
|
73
73
|
@state() private accessor selectedFieldId: string | null = null;
|
|
74
|
-
@
|
|
75
|
-
@
|
|
74
|
+
@property({ attribute: false }) public accessor document: IDocumentRow = demoDocuments[0];
|
|
75
|
+
@property({ attribute: false }) public accessor recipients: IRecipient[] = [...demoRecipients];
|
|
76
|
+
@property({ attribute: false }) public accessor fields: IFieldPlacement[] = [...demoFields];
|
|
76
77
|
@state() private accessor signingOrderDrag: TSigningOrderDrag | null = null;
|
|
77
78
|
@state() private accessor recipientContextMenu: TRecipientContextMenu | null = null;
|
|
78
79
|
private draggedFieldDefinition: TFieldDefinition | null = null;
|
|
@@ -169,8 +170,36 @@ export class SdigWorkspaceCompose extends DeesElement {
|
|
|
169
170
|
return Math.max(min, Math.min(max, value));
|
|
170
171
|
}
|
|
171
172
|
|
|
173
|
+
private emitFieldsChange() {
|
|
174
|
+
this.dispatchEvent(new CustomEvent('fields-change', {
|
|
175
|
+
detail: { fields: this.fields },
|
|
176
|
+
bubbles: true,
|
|
177
|
+
composed: true,
|
|
178
|
+
}));
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
private emitRecipientsChange() {
|
|
182
|
+
this.dispatchEvent(new CustomEvent('recipients-change', {
|
|
183
|
+
detail: { recipients: this.recipients },
|
|
184
|
+
bubbles: true,
|
|
185
|
+
composed: true,
|
|
186
|
+
}));
|
|
187
|
+
this.dispatchEvent(new CustomEvent('routing-change', {
|
|
188
|
+
detail: { recipients: this.recipients },
|
|
189
|
+
bubbles: true,
|
|
190
|
+
composed: true,
|
|
191
|
+
}));
|
|
192
|
+
}
|
|
193
|
+
|
|
172
194
|
private updateField(fieldId: string, patch: Partial<IFieldPlacement>) {
|
|
173
195
|
this.fields = this.fields.map((field) => field.id === fieldId ? { ...field, ...patch } : field);
|
|
196
|
+
const field = this.fields.find((currentField) => currentField.id === fieldId);
|
|
197
|
+
this.dispatchEvent(new CustomEvent('field-update', {
|
|
198
|
+
detail: { fieldId, field, patch, fields: this.fields },
|
|
199
|
+
bubbles: true,
|
|
200
|
+
composed: true,
|
|
201
|
+
}));
|
|
202
|
+
this.emitFieldsChange();
|
|
174
203
|
}
|
|
175
204
|
|
|
176
205
|
private updateSelectedField(patch: Partial<IFieldPlacement>) {
|
|
@@ -192,8 +221,15 @@ export class SdigWorkspaceCompose extends DeesElement {
|
|
|
192
221
|
|
|
193
222
|
private removeSelectedField() {
|
|
194
223
|
if (!this.selectedFieldId) return;
|
|
224
|
+
const field = this.fields.find((currentField) => currentField.id === this.selectedFieldId);
|
|
195
225
|
this.fields = this.fields.filter((field) => field.id !== this.selectedFieldId);
|
|
226
|
+
this.dispatchEvent(new CustomEvent('field-delete', {
|
|
227
|
+
detail: { fieldId: this.selectedFieldId, field, fields: this.fields },
|
|
228
|
+
bubbles: true,
|
|
229
|
+
composed: true,
|
|
230
|
+
}));
|
|
196
231
|
this.selectedFieldId = null;
|
|
232
|
+
this.emitFieldsChange();
|
|
197
233
|
}
|
|
198
234
|
|
|
199
235
|
private updateRecipientRole(recipientId: number, role: TRecipientRole) {
|
|
@@ -220,6 +256,7 @@ export class SdigWorkspaceCompose extends DeesElement {
|
|
|
220
256
|
targetMembers.splice(insertIndex, 0, { ...recipient, role: nextRole });
|
|
221
257
|
nextByRole.set(nextRole, targetMembers);
|
|
222
258
|
this.recipients = recipientRoleDefinitions.flatMap((roleDefinition) => nextByRole.get(roleDefinition.role) || []).map((currentRecipient, index) => ({ ...currentRecipient, order: index + 1 }));
|
|
259
|
+
this.emitRecipientsChange();
|
|
223
260
|
|
|
224
261
|
const nextSigners = this.recipients.filter((currentRecipient) => currentRecipient.role === 'signer');
|
|
225
262
|
const fallbackSigner = nextSigners[0];
|
|
@@ -229,6 +266,7 @@ export class SdigWorkspaceCompose extends DeesElement {
|
|
|
229
266
|
if (this.activeRecipient === recipientId) {
|
|
230
267
|
this.activeRecipient = fallbackSigner.id;
|
|
231
268
|
}
|
|
269
|
+
this.emitFieldsChange();
|
|
232
270
|
}
|
|
233
271
|
}
|
|
234
272
|
|
|
@@ -454,6 +492,12 @@ export class SdigWorkspaceCompose extends DeesElement {
|
|
|
454
492
|
this.selectedFieldId = nextField.id;
|
|
455
493
|
this.draggedFieldDefinition = null;
|
|
456
494
|
this.draggedFieldGrabOffset = null;
|
|
495
|
+
this.dispatchEvent(new CustomEvent('field-create', {
|
|
496
|
+
detail: { field: nextField, fields: this.fields },
|
|
497
|
+
bubbles: true,
|
|
498
|
+
composed: true,
|
|
499
|
+
}));
|
|
500
|
+
this.emitFieldsChange();
|
|
457
501
|
}
|
|
458
502
|
|
|
459
503
|
private startFieldToolDrag(event: DragEvent, fieldType: TFieldDefinition) {
|
|
@@ -567,10 +611,11 @@ export class SdigWorkspaceCompose extends DeesElement {
|
|
|
567
611
|
}
|
|
568
612
|
|
|
569
613
|
public render(): TemplateResult {
|
|
614
|
+
const document = this.document || demoDocuments[0];
|
|
570
615
|
const selectedField = this.fields.find((field) => field.id === this.selectedFieldId);
|
|
571
616
|
|
|
572
617
|
return html`
|
|
573
|
-
${topBar({ breadcrumb: ['signature.digital', 'Inbox', 'Compose'], title:
|
|
618
|
+
${topBar({ breadcrumb: ['signature.digital', 'Inbox', 'Compose'], title: document.title, subtitle: pill('Draft · auto-saved'), actions: html`${actionButton('Save draft', 'ghost')}${actionButton('Preview', 'outline', 'eye')}${actionButton('Send for signature', 'primary', 'send')}` })}
|
|
574
619
|
${this.renderStepper()}
|
|
575
620
|
<div class="compose-workspace">
|
|
576
621
|
${this.renderRecipientContextMenu()}
|
|
@@ -585,9 +630,9 @@ export class SdigWorkspaceCompose extends DeesElement {
|
|
|
585
630
|
<div class="document-page page-drop-target" @click=${this.handleDocumentClick} @dragover=${(event: DragEvent) => { event.preventDefault(); if (event.dataTransfer) event.dataTransfer.dropEffect = 'copy'; (event.currentTarget as HTMLElement).classList.add('drag-over'); }} @dragleave=${(event: DragEvent) => (event.currentTarget as HTMLElement).classList.remove('drag-over')} @drop=${(event: DragEvent) => this.addFieldFromDrop(event)}>
|
|
586
631
|
${fakeDocument()}
|
|
587
632
|
${this.fields.map((field) => html`<div class="field-box ${this.selectedFieldId === field.id ? 'selected' : ''}" style="--x: ${field.x}px; --y: ${field.y}px; --w: ${field.w}px; --h: ${field.h}px; --field-color: ${this.recipientColor(field.recipient)};" @click=${() => this.selectedFieldId = field.id} @pointerdown=${(event: PointerEvent) => this.startFieldMove(event, field)}><div class="field-content">${icon(this.fieldIcon(field.type), 12)}<span>${field.label}</span></div>${this.selectedFieldId === field.id ? this.renderResizeHandles(field) : ''}</div>`)}
|
|
588
|
-
<div class="mono" style="position: absolute; bottom: 12px; right: 16px; font-size: 9px; color: hsl(0 0% 60%);">Page 1 of
|
|
633
|
+
<div class="mono" style="position: absolute; bottom: 12px; right: 16px; font-size: 9px; color: hsl(0 0% 60%);">Page 1 of ${document.pages}</div>
|
|
589
634
|
</div>
|
|
590
|
-
<div style="display: flex; align-items: center; gap: 10px; font-size: 11px; color: var(--text-muted);">${actionButton('Prev', 'outline')}${html`<span class="mono">1 /
|
|
635
|
+
<div style="display: flex; align-items: center; gap: 10px; font-size: 11px; color: var(--text-muted);">${actionButton('Prev', 'outline')}${html`<span class="mono">1 / ${document.pages}</span>`}${actionButton('Next', 'outline')}</div>
|
|
591
636
|
</div>
|
|
592
637
|
<div class="right-panel">
|
|
593
638
|
<div class="label-upper">Routing order · drag to reorder</div>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DeesElement, state, html, customElement, type TemplateResult, css } from '@design.estate/dees-element';
|
|
2
|
-
import { actionButton, demoFields, fakeDocument, icon, pill, workspaceBaseStyles, workspaceDemoFrame, type IFieldPlacement } from './sdig-workspace.shared.js';
|
|
1
|
+
import { DeesElement, property, state, html, customElement, type TemplateResult, css } from '@design.estate/dees-element';
|
|
2
|
+
import { actionButton, demoDocuments, demoFields, fakeDocument, icon, pill, workspaceBaseStyles, workspaceDemoFrame, type IDocumentRow, type IFieldPlacement } from './sdig-workspace.shared.js';
|
|
3
3
|
|
|
4
4
|
declare global {
|
|
5
5
|
interface HTMLElementTagNameMap {
|
|
@@ -12,6 +12,8 @@ export class SdigWorkspaceSign extends DeesElement {
|
|
|
12
12
|
public static demo = () => workspaceDemoFrame(html`<sdig-workspace-sign></sdig-workspace-sign>`);
|
|
13
13
|
public static demoGroups = ['Signature Digital Workspace'];
|
|
14
14
|
|
|
15
|
+
@property({ attribute: false }) public accessor document: IDocumentRow = demoDocuments[0];
|
|
16
|
+
@property({ attribute: false }) public accessor fields: IFieldPlacement[] = demoFields;
|
|
15
17
|
@state() private accessor activeFieldId: string = 'f1';
|
|
16
18
|
@state() private accessor signedFieldIds: string[] = [];
|
|
17
19
|
|
|
@@ -27,7 +29,7 @@ export class SdigWorkspaceSign extends DeesElement {
|
|
|
27
29
|
`];
|
|
28
30
|
|
|
29
31
|
private get signFields() {
|
|
30
|
-
return
|
|
32
|
+
return this.fields.slice(0, 3);
|
|
31
33
|
}
|
|
32
34
|
|
|
33
35
|
private fieldIcon(type: IFieldPlacement['type']): string {
|
|
@@ -51,13 +53,14 @@ export class SdigWorkspaceSign extends DeesElement {
|
|
|
51
53
|
}
|
|
52
54
|
|
|
53
55
|
public render(): TemplateResult {
|
|
56
|
+
const document = this.document || demoDocuments[0];
|
|
54
57
|
const completed = this.signedFieldIds.length;
|
|
55
58
|
const progress = Math.round((completed / this.signFields.length) * 100);
|
|
56
59
|
const activeField = this.signFields.find((field) => field.id === this.activeFieldId) || this.signFields[0];
|
|
57
60
|
|
|
58
61
|
return html`
|
|
59
62
|
<div class="recipient-header">
|
|
60
|
-
<div style="display: flex; align-items: center; gap: 12px;"><span class="logomark">s</span><div><div style="font-size: 12px; font-weight: 600;"
|
|
63
|
+
<div style="display: flex; align-items: center; gap: 12px;"><span class="logomark">s</span><div><div style="font-size: 12px; font-weight: 600;">${document.title}</div><div class="mono" style="font-size: 10px; color: var(--text-muted);">From ${document.sender} · ${document.id} · ${document.pages} pages</div></div></div>
|
|
61
64
|
<div class="actions"><span class="pill success">${icon('shield', 12)} Verified sender · DKIM ✓</span>${actionButton('Decline', 'outline')}${actionButton('PDF', 'outline', 'download')}</div>
|
|
62
65
|
</div>
|
|
63
66
|
<div class="progress-track"><div class="progress-fill" style="width: ${progress}%"></div></div>
|
|
@@ -70,7 +73,7 @@ export class SdigWorkspaceSign extends DeesElement {
|
|
|
70
73
|
const active = this.activeFieldId === field.id && !filled;
|
|
71
74
|
return html`<div class="field-box ${active ? 'selected' : ''}" style="--x: ${field.x}px; --y: ${field.y}px; --w: ${field.w}px; --h: ${field.h}px; --field-color: ${filled ? 'transparent' : 'var(--accent)'}; color: ${filled ? 'hsl(220 50% 30%)' : 'var(--accent)'}; background: ${filled ? 'transparent' : 'color-mix(in srgb, var(--accent) 12%, transparent)'};" @click=${() => !filled ? this.signField(field.id) : undefined}>${filled ? this.renderSignedValue(field) : html`${icon(this.fieldIcon(field.type), 12)}<span>${active ? html`<span style="display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: var(--accent); animation: pulse 1.4s infinite;"></span>` : ''}${field.label}</span>`}</div>`;
|
|
72
75
|
})}
|
|
73
|
-
<div class="mono" style="position: absolute; bottom: 14px; right: 18px; font-size: 9px; color: hsl(0 0% 60%);">Page 1 of
|
|
76
|
+
<div class="mono" style="position: absolute; bottom: 14px; right: 18px; font-size: 9px; color: hsl(0 0% 60%);">Page 1 of ${document.pages}</div>
|
|
74
77
|
</div>
|
|
75
78
|
</div>
|
|
76
79
|
<div class="sign-panel">
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DeesElement, property, html, customElement, type TemplateResult, css } from '@design.estate/dees-element';
|
|
2
|
-
import { demoDocuments, icon, type IDocumentRow, type TDensity, type TWorkspaceTheme, type TWorkspaceView } from './sdig-workspace.shared.js';
|
|
2
|
+
import { demoDocuments, demoFields, demoRecipients, icon, type IDocumentRow, type IFieldPlacement, type IRecipient, type TDensity, type TWorkspaceTheme, type TWorkspaceView } from './sdig-workspace.shared.js';
|
|
3
3
|
import './sdig-workspace-inbox.js';
|
|
4
4
|
import './sdig-workspace-compose.js';
|
|
5
5
|
import './sdig-workspace-sign.js';
|
|
@@ -24,6 +24,9 @@ export class SdigWorkspace extends DeesElement {
|
|
|
24
24
|
@property({ type: String }) public accessor initialView: TWorkspaceView = 'inbox';
|
|
25
25
|
@property({ type: String, reflect: true }) public accessor view: TWorkspaceView = 'inbox';
|
|
26
26
|
@property({ attribute: false }) public accessor documents: IDocumentRow[] = demoDocuments;
|
|
27
|
+
@property({ type: String }) public accessor activeDocumentId: string = '';
|
|
28
|
+
@property({ attribute: false }) public accessor recipients: IRecipient[] = demoRecipients;
|
|
29
|
+
@property({ attribute: false }) public accessor fields: IFieldPlacement[] = demoFields;
|
|
27
30
|
|
|
28
31
|
public connectedCallback = async () => {
|
|
29
32
|
await super.connectedCallback();
|
|
@@ -159,11 +162,12 @@ export class SdigWorkspace extends DeesElement {
|
|
|
159
162
|
}
|
|
160
163
|
|
|
161
164
|
private renderView(): TemplateResult {
|
|
165
|
+
const activeDocument = this.documents.find((document) => document.id === this.activeDocumentId) || this.documents[0] || demoDocuments[0];
|
|
162
166
|
switch (this.view) {
|
|
163
167
|
case 'inbox': return html`<sdig-workspace-inbox class="view-host" .density=${this.density} .documents=${this.documents}></sdig-workspace-inbox>`;
|
|
164
|
-
case 'compose': return html`<sdig-workspace-compose class="view-host"></sdig-workspace-compose>`;
|
|
165
|
-
case 'sign': return html`<sdig-workspace-sign class="view-host"></sdig-workspace-sign>`;
|
|
166
|
-
case 'audit': return html`<sdig-workspace-audit class="view-host"></sdig-workspace-audit>`;
|
|
168
|
+
case 'compose': return html`<sdig-workspace-compose class="view-host" .document=${activeDocument} .recipients=${this.recipients} .fields=${this.fields}></sdig-workspace-compose>`;
|
|
169
|
+
case 'sign': return html`<sdig-workspace-sign class="view-host" .document=${activeDocument} .fields=${this.fields}></sdig-workspace-sign>`;
|
|
170
|
+
case 'audit': return html`<sdig-workspace-audit class="view-host" .document=${activeDocument}></sdig-workspace-audit>`;
|
|
167
171
|
case 'developers': return html`<sdig-workspace-developers class="view-host"></sdig-workspace-developers>`;
|
|
168
172
|
case 'templates': return html`<sdig-workspace-placeholder class="view-host" label="Templates" subtitle="Reusable agreement templates"></sdig-workspace-placeholder>`;
|
|
169
173
|
case 'team': return html`<sdig-workspace-placeholder class="view-host" label="Team" subtitle="Workspace members & roles"></sdig-workspace-placeholder>`;
|