@signature.digital/catalog 1.7.0 → 1.9.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_ts_web/00_commitinfo_data.js +3 -3
- package/dist_ts_web/elements/index.d.ts +1 -0
- package/dist_ts_web/elements/index.js +3 -1
- package/dist_ts_web/elements/sdig-app-shell/index.d.ts +1 -0
- package/dist_ts_web/elements/sdig-app-shell/index.js +2 -0
- package/dist_ts_web/elements/sdig-app-shell/sdig-app-shell.d.ts +38 -0
- package/dist_ts_web/elements/sdig-app-shell/sdig-app-shell.js +309 -0
- package/dist_ts_web/elements/sdig-signbox/sdig-signbox.d.ts +1 -0
- package/dist_ts_web/elements/sdig-signbox/sdig-signbox.js +28 -9
- package/dist_ts_web/elements/sdig-signpad/sdig-signpad.d.ts +9 -2
- package/dist_ts_web/elements/sdig-signpad/sdig-signpad.js +23 -5
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace-audit.js +5 -5
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace-compose.d.ts +1 -0
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace-compose.js +18 -6
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace-developers.js +13 -15
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace-inbox.js +14 -13
- 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 +55 -18
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace.js +28 -28
- package/dist_ts_web/elements/sdig-workspace/sdig-workspace.shared.js +44 -42
- package/dist_ts_web/plugins.d.ts +3 -3
- package/dist_ts_web/plugins.js +3 -4
- package/package.json +15 -21
- package/readme.md +54 -2
- package/ts_web/00_commitinfo_data.ts +2 -2
- package/ts_web/elements/index.ts +3 -0
- package/ts_web/elements/sdig-app-shell/index.ts +1 -0
- package/ts_web/elements/sdig-app-shell/sdig-app-shell.ts +200 -0
- package/ts_web/elements/sdig-signbox/sdig-signbox.ts +26 -8
- package/ts_web/elements/sdig-signpad/sdig-signpad.ts +27 -6
- package/ts_web/elements/sdig-workspace/sdig-workspace-audit.ts +4 -4
- package/ts_web/elements/sdig-workspace/sdig-workspace-compose.ts +16 -5
- package/ts_web/elements/sdig-workspace/sdig-workspace-developers.ts +12 -14
- package/ts_web/elements/sdig-workspace/sdig-workspace-inbox.ts +13 -12
- package/ts_web/elements/sdig-workspace/sdig-workspace-sign.ts +53 -17
- package/ts_web/elements/sdig-workspace/sdig-workspace.shared.ts +44 -41
- package/ts_web/elements/sdig-workspace/sdig-workspace.ts +27 -27
- package/ts_web/plugins.ts +3 -4
- package/.smartconfig.json +0 -82
- package/dist_bundle/bundle.js +0 -6214
- package/dist_bundle/bundle.js.map +0 -7
- package/dist_bundle/index.html +0 -28
- package/dist_watch/bundle.js +0 -135739
- package/dist_watch/bundle.js.map +0 -7
- package/dist_watch/index.html +0 -28
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@signature.digital/catalog',
|
|
6
|
-
version: '1.
|
|
7
|
-
description: '
|
|
6
|
+
version: '1.9.0',
|
|
7
|
+
description: 'Reusable web components for browser-based signature capture and host-controlled e-signature application surfaces.'
|
|
8
8
|
};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsNEJBQTRCO0lBQ2xDLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFdBQVcsRUFBRSxtSEFBbUg7Q0FDakksQ0FBQSJ9
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
export * from './sdig-contextmenu/index.js';
|
|
3
3
|
export * from './sdig-signbox/index.js';
|
|
4
4
|
export * from './sdig-signpad/index.js';
|
|
5
|
+
// Controlled product application primitives
|
|
6
|
+
export * from './sdig-app-shell/index.js';
|
|
5
7
|
// Product workspace component
|
|
6
8
|
export * from './sdig-workspace/index.js';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdUJBQXVCO0FBQ3ZCLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlCQUF5QixDQUFDO0FBRXhDLDRDQUE0QztBQUM1QyxjQUFjLDJCQUEyQixDQUFDO0FBRTFDLDhCQUE4QjtBQUM5QixjQUFjLDJCQUEyQixDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './sdig-app-shell.js';
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './sdig-app-shell.js';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90c193ZWIvZWxlbWVudHMvc2RpZy1hcHAtc2hlbGwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQyJ9
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
|
|
2
|
+
export interface ISdigShellNavigationItem {
|
|
3
|
+
id: string;
|
|
4
|
+
label: string;
|
|
5
|
+
icon: string;
|
|
6
|
+
count?: number;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
title?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ISdigShellNavigationRequestDetail {
|
|
11
|
+
view: string;
|
|
12
|
+
}
|
|
13
|
+
declare global {
|
|
14
|
+
interface HTMLElementTagNameMap {
|
|
15
|
+
'sdig-app-shell': SdigAppShell;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export declare class SdigAppShell extends DeesElement {
|
|
19
|
+
static demo: () => TemplateResult<1>;
|
|
20
|
+
static demoGroups: string[];
|
|
21
|
+
accessor accent: string;
|
|
22
|
+
accessor activeView: string;
|
|
23
|
+
accessor workspaceName: string;
|
|
24
|
+
accessor deploymentLabel: string;
|
|
25
|
+
accessor actorName: string;
|
|
26
|
+
accessor actorEmail: string;
|
|
27
|
+
accessor documentCount: number;
|
|
28
|
+
accessor statusLabel: string;
|
|
29
|
+
accessor productLabel: string;
|
|
30
|
+
accessor stackLabel: string;
|
|
31
|
+
accessor stackDescription: string;
|
|
32
|
+
accessor navigationItems: ISdigShellNavigationItem[];
|
|
33
|
+
static styles: import("@design.estate/dees-element").CSSResult;
|
|
34
|
+
private initials;
|
|
35
|
+
private requestNavigation;
|
|
36
|
+
private requestSignout;
|
|
37
|
+
render(): TemplateResult;
|
|
38
|
+
}
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
27
|
+
};
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
34
|
+
};
|
|
35
|
+
import { DeesElement, property, html, customElement, css, } from '@design.estate/dees-element';
|
|
36
|
+
import { icon } from '../sdig-workspace/sdig-workspace.shared.js';
|
|
37
|
+
let SdigAppShell = (() => {
|
|
38
|
+
let _classDecorators = [customElement('sdig-app-shell')];
|
|
39
|
+
let _classDescriptor;
|
|
40
|
+
let _classExtraInitializers = [];
|
|
41
|
+
let _classThis;
|
|
42
|
+
let _classSuper = DeesElement;
|
|
43
|
+
let _accent_decorators;
|
|
44
|
+
let _accent_initializers = [];
|
|
45
|
+
let _accent_extraInitializers = [];
|
|
46
|
+
let _activeView_decorators;
|
|
47
|
+
let _activeView_initializers = [];
|
|
48
|
+
let _activeView_extraInitializers = [];
|
|
49
|
+
let _workspaceName_decorators;
|
|
50
|
+
let _workspaceName_initializers = [];
|
|
51
|
+
let _workspaceName_extraInitializers = [];
|
|
52
|
+
let _deploymentLabel_decorators;
|
|
53
|
+
let _deploymentLabel_initializers = [];
|
|
54
|
+
let _deploymentLabel_extraInitializers = [];
|
|
55
|
+
let _actorName_decorators;
|
|
56
|
+
let _actorName_initializers = [];
|
|
57
|
+
let _actorName_extraInitializers = [];
|
|
58
|
+
let _actorEmail_decorators;
|
|
59
|
+
let _actorEmail_initializers = [];
|
|
60
|
+
let _actorEmail_extraInitializers = [];
|
|
61
|
+
let _documentCount_decorators;
|
|
62
|
+
let _documentCount_initializers = [];
|
|
63
|
+
let _documentCount_extraInitializers = [];
|
|
64
|
+
let _statusLabel_decorators;
|
|
65
|
+
let _statusLabel_initializers = [];
|
|
66
|
+
let _statusLabel_extraInitializers = [];
|
|
67
|
+
let _productLabel_decorators;
|
|
68
|
+
let _productLabel_initializers = [];
|
|
69
|
+
let _productLabel_extraInitializers = [];
|
|
70
|
+
let _stackLabel_decorators;
|
|
71
|
+
let _stackLabel_initializers = [];
|
|
72
|
+
let _stackLabel_extraInitializers = [];
|
|
73
|
+
let _stackDescription_decorators;
|
|
74
|
+
let _stackDescription_initializers = [];
|
|
75
|
+
let _stackDescription_extraInitializers = [];
|
|
76
|
+
let _navigationItems_decorators;
|
|
77
|
+
let _navigationItems_initializers = [];
|
|
78
|
+
let _navigationItems_extraInitializers = [];
|
|
79
|
+
var SdigAppShell = class extends _classSuper {
|
|
80
|
+
static { _classThis = this; }
|
|
81
|
+
static {
|
|
82
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
83
|
+
_accent_decorators = [property({ type: String })];
|
|
84
|
+
_activeView_decorators = [property({ type: String, attribute: 'active-view' })];
|
|
85
|
+
_workspaceName_decorators = [property({ type: String, attribute: 'workspace-name' })];
|
|
86
|
+
_deploymentLabel_decorators = [property({ type: String, attribute: 'deployment-label' })];
|
|
87
|
+
_actorName_decorators = [property({ type: String, attribute: 'actor-name' })];
|
|
88
|
+
_actorEmail_decorators = [property({ type: String, attribute: 'actor-email' })];
|
|
89
|
+
_documentCount_decorators = [property({ type: Number, attribute: 'document-count' })];
|
|
90
|
+
_statusLabel_decorators = [property({ type: String, attribute: 'status-label' })];
|
|
91
|
+
_productLabel_decorators = [property({ type: String, attribute: 'product-label' })];
|
|
92
|
+
_stackLabel_decorators = [property({ type: String, attribute: 'stack-label' })];
|
|
93
|
+
_stackDescription_decorators = [property({ type: String, attribute: 'stack-description' })];
|
|
94
|
+
_navigationItems_decorators = [property({ attribute: false })];
|
|
95
|
+
__esDecorate(this, null, _accent_decorators, { kind: "accessor", name: "accent", static: false, private: false, access: { has: obj => "accent" in obj, get: obj => obj.accent, set: (obj, value) => { obj.accent = value; } }, metadata: _metadata }, _accent_initializers, _accent_extraInitializers);
|
|
96
|
+
__esDecorate(this, null, _activeView_decorators, { kind: "accessor", name: "activeView", static: false, private: false, access: { has: obj => "activeView" in obj, get: obj => obj.activeView, set: (obj, value) => { obj.activeView = value; } }, metadata: _metadata }, _activeView_initializers, _activeView_extraInitializers);
|
|
97
|
+
__esDecorate(this, null, _workspaceName_decorators, { kind: "accessor", name: "workspaceName", static: false, private: false, access: { has: obj => "workspaceName" in obj, get: obj => obj.workspaceName, set: (obj, value) => { obj.workspaceName = value; } }, metadata: _metadata }, _workspaceName_initializers, _workspaceName_extraInitializers);
|
|
98
|
+
__esDecorate(this, null, _deploymentLabel_decorators, { kind: "accessor", name: "deploymentLabel", static: false, private: false, access: { has: obj => "deploymentLabel" in obj, get: obj => obj.deploymentLabel, set: (obj, value) => { obj.deploymentLabel = value; } }, metadata: _metadata }, _deploymentLabel_initializers, _deploymentLabel_extraInitializers);
|
|
99
|
+
__esDecorate(this, null, _actorName_decorators, { kind: "accessor", name: "actorName", static: false, private: false, access: { has: obj => "actorName" in obj, get: obj => obj.actorName, set: (obj, value) => { obj.actorName = value; } }, metadata: _metadata }, _actorName_initializers, _actorName_extraInitializers);
|
|
100
|
+
__esDecorate(this, null, _actorEmail_decorators, { kind: "accessor", name: "actorEmail", static: false, private: false, access: { has: obj => "actorEmail" in obj, get: obj => obj.actorEmail, set: (obj, value) => { obj.actorEmail = value; } }, metadata: _metadata }, _actorEmail_initializers, _actorEmail_extraInitializers);
|
|
101
|
+
__esDecorate(this, null, _documentCount_decorators, { kind: "accessor", name: "documentCount", static: false, private: false, access: { has: obj => "documentCount" in obj, get: obj => obj.documentCount, set: (obj, value) => { obj.documentCount = value; } }, metadata: _metadata }, _documentCount_initializers, _documentCount_extraInitializers);
|
|
102
|
+
__esDecorate(this, null, _statusLabel_decorators, { kind: "accessor", name: "statusLabel", static: false, private: false, access: { has: obj => "statusLabel" in obj, get: obj => obj.statusLabel, set: (obj, value) => { obj.statusLabel = value; } }, metadata: _metadata }, _statusLabel_initializers, _statusLabel_extraInitializers);
|
|
103
|
+
__esDecorate(this, null, _productLabel_decorators, { kind: "accessor", name: "productLabel", static: false, private: false, access: { has: obj => "productLabel" in obj, get: obj => obj.productLabel, set: (obj, value) => { obj.productLabel = value; } }, metadata: _metadata }, _productLabel_initializers, _productLabel_extraInitializers);
|
|
104
|
+
__esDecorate(this, null, _stackLabel_decorators, { kind: "accessor", name: "stackLabel", static: false, private: false, access: { has: obj => "stackLabel" in obj, get: obj => obj.stackLabel, set: (obj, value) => { obj.stackLabel = value; } }, metadata: _metadata }, _stackLabel_initializers, _stackLabel_extraInitializers);
|
|
105
|
+
__esDecorate(this, null, _stackDescription_decorators, { kind: "accessor", name: "stackDescription", static: false, private: false, access: { has: obj => "stackDescription" in obj, get: obj => obj.stackDescription, set: (obj, value) => { obj.stackDescription = value; } }, metadata: _metadata }, _stackDescription_initializers, _stackDescription_extraInitializers);
|
|
106
|
+
__esDecorate(this, null, _navigationItems_decorators, { kind: "accessor", name: "navigationItems", static: false, private: false, access: { has: obj => "navigationItems" in obj, get: obj => obj.navigationItems, set: (obj, value) => { obj.navigationItems = value; } }, metadata: _metadata }, _navigationItems_initializers, _navigationItems_extraInitializers);
|
|
107
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
108
|
+
SdigAppShell = _classThis = _classDescriptor.value;
|
|
109
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
110
|
+
}
|
|
111
|
+
static demo = () => html `
|
|
112
|
+
<sdig-app-shell
|
|
113
|
+
workspace-name="Example workspace"
|
|
114
|
+
deployment-label="Self-hosted · single instance"
|
|
115
|
+
actor-name="Workspace owner"
|
|
116
|
+
actor-email="owner@example.test"
|
|
117
|
+
active-view="inbox"
|
|
118
|
+
status-label="self-hosted"
|
|
119
|
+
product-label="Open Source · MIT"
|
|
120
|
+
stack-label="foss.global stack"
|
|
121
|
+
stack-description="Lit · TypedRequest · SmartData · SmartBucket · MongoDB · S3"
|
|
122
|
+
.documentCount=${4}
|
|
123
|
+
style="height: 720px"
|
|
124
|
+
>
|
|
125
|
+
<div style="height:100%;display:grid;place-items:center;color:var(--text-muted)">Controlled application content</div>
|
|
126
|
+
</sdig-app-shell>
|
|
127
|
+
`;
|
|
128
|
+
static demoGroups = ['Signature Digital Application'];
|
|
129
|
+
#accent_accessor_storage = __runInitializers(this, _accent_initializers, '#007aff');
|
|
130
|
+
get accent() { return this.#accent_accessor_storage; }
|
|
131
|
+
set accent(value) { this.#accent_accessor_storage = value; }
|
|
132
|
+
#activeView_accessor_storage = (__runInitializers(this, _accent_extraInitializers), __runInitializers(this, _activeView_initializers, 'inbox'));
|
|
133
|
+
get activeView() { return this.#activeView_accessor_storage; }
|
|
134
|
+
set activeView(value) { this.#activeView_accessor_storage = value; }
|
|
135
|
+
#workspaceName_accessor_storage = (__runInitializers(this, _activeView_extraInitializers), __runInitializers(this, _workspaceName_initializers, 'Workspace'));
|
|
136
|
+
get workspaceName() { return this.#workspaceName_accessor_storage; }
|
|
137
|
+
set workspaceName(value) { this.#workspaceName_accessor_storage = value; }
|
|
138
|
+
#deploymentLabel_accessor_storage = (__runInitializers(this, _workspaceName_extraInitializers), __runInitializers(this, _deploymentLabel_initializers, 'Host configured'));
|
|
139
|
+
get deploymentLabel() { return this.#deploymentLabel_accessor_storage; }
|
|
140
|
+
set deploymentLabel(value) { this.#deploymentLabel_accessor_storage = value; }
|
|
141
|
+
#actorName_accessor_storage = (__runInitializers(this, _deploymentLabel_extraInitializers), __runInitializers(this, _actorName_initializers, 'Current user'));
|
|
142
|
+
get actorName() { return this.#actorName_accessor_storage; }
|
|
143
|
+
set actorName(value) { this.#actorName_accessor_storage = value; }
|
|
144
|
+
#actorEmail_accessor_storage = (__runInitializers(this, _actorName_extraInitializers), __runInitializers(this, _actorEmail_initializers, ''));
|
|
145
|
+
get actorEmail() { return this.#actorEmail_accessor_storage; }
|
|
146
|
+
set actorEmail(value) { this.#actorEmail_accessor_storage = value; }
|
|
147
|
+
#documentCount_accessor_storage = (__runInitializers(this, _actorEmail_extraInitializers), __runInitializers(this, _documentCount_initializers, 0));
|
|
148
|
+
get documentCount() { return this.#documentCount_accessor_storage; }
|
|
149
|
+
set documentCount(value) { this.#documentCount_accessor_storage = value; }
|
|
150
|
+
#statusLabel_accessor_storage = (__runInitializers(this, _documentCount_extraInitializers), __runInitializers(this, _statusLabel_initializers, 'host controlled'));
|
|
151
|
+
get statusLabel() { return this.#statusLabel_accessor_storage; }
|
|
152
|
+
set statusLabel(value) { this.#statusLabel_accessor_storage = value; }
|
|
153
|
+
#productLabel_accessor_storage = (__runInitializers(this, _statusLabel_extraInitializers), __runInitializers(this, _productLabel_initializers, ''));
|
|
154
|
+
get productLabel() { return this.#productLabel_accessor_storage; }
|
|
155
|
+
set productLabel(value) { this.#productLabel_accessor_storage = value; }
|
|
156
|
+
#stackLabel_accessor_storage = (__runInitializers(this, _productLabel_extraInitializers), __runInitializers(this, _stackLabel_initializers, 'Application services'));
|
|
157
|
+
get stackLabel() { return this.#stackLabel_accessor_storage; }
|
|
158
|
+
set stackLabel(value) { this.#stackLabel_accessor_storage = value; }
|
|
159
|
+
#stackDescription_accessor_storage = (__runInitializers(this, _stackLabel_extraInitializers), __runInitializers(this, _stackDescription_initializers, 'Configured by host application'));
|
|
160
|
+
get stackDescription() { return this.#stackDescription_accessor_storage; }
|
|
161
|
+
set stackDescription(value) { this.#stackDescription_accessor_storage = value; }
|
|
162
|
+
#navigationItems_accessor_storage = (__runInitializers(this, _stackDescription_extraInitializers), __runInitializers(this, _navigationItems_initializers, [
|
|
163
|
+
{ id: 'inbox', label: 'Inbox', icon: 'inbox' },
|
|
164
|
+
{ id: 'compose', label: 'Compose', icon: 'plus' },
|
|
165
|
+
{ id: 'audit', label: 'Audit Trail', icon: 'shield' },
|
|
166
|
+
]));
|
|
167
|
+
get navigationItems() { return this.#navigationItems_accessor_storage; }
|
|
168
|
+
set navigationItems(value) { this.#navigationItems_accessor_storage = value; }
|
|
169
|
+
static styles = css `
|
|
170
|
+
:host {
|
|
171
|
+
--accent: #007aff;
|
|
172
|
+
--bg: hsl(0 0% 100%);
|
|
173
|
+
--bg-el: hsl(240 9% 96.5%);
|
|
174
|
+
--bg-card: hsl(0 0% 100%);
|
|
175
|
+
--sidebar: hsl(240 11% 96%);
|
|
176
|
+
--border: hsl(240 6% 89%);
|
|
177
|
+
--border-subtle: hsl(240 6% 92.5%);
|
|
178
|
+
--text: hsl(240 6% 11%);
|
|
179
|
+
--text-sec: hsl(240 4% 34%);
|
|
180
|
+
--text-muted: hsl(240 3% 52%);
|
|
181
|
+
--text-dim: hsl(240 3% 66%);
|
|
182
|
+
--success: #34c759;
|
|
183
|
+
--hover: rgba(0, 0, 0, 0.05);
|
|
184
|
+
--ui: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Arial, sans-serif;
|
|
185
|
+
--display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", Arial, sans-serif;
|
|
186
|
+
--mono: ui-monospace, "SF Mono", Menlo, "Cascadia Mono", monospace;
|
|
187
|
+
display: block;
|
|
188
|
+
container-type: inline-size;
|
|
189
|
+
width: 100%;
|
|
190
|
+
min-height: 100vh;
|
|
191
|
+
color: var(--text);
|
|
192
|
+
background: var(--bg);
|
|
193
|
+
font-family: var(--ui);
|
|
194
|
+
-webkit-font-smoothing: antialiased;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
* { box-sizing: border-box; }
|
|
198
|
+
button { font: inherit; cursor: pointer; }
|
|
199
|
+
button:disabled { cursor: not-allowed; opacity: .42; }
|
|
200
|
+
.shell { min-height: inherit; height: 100%; display: grid; grid-template-columns: 224px minmax(0, 1fr); background: var(--bg); }
|
|
201
|
+
.sidebar { height: 100%; min-height: inherit; display: flex; flex-direction: column; border-right: 1px solid var(--border-subtle); background: color-mix(in srgb, var(--sidebar) 94%, transparent); backdrop-filter: saturate(180%) blur(20px); }
|
|
202
|
+
.traffic { display: flex; gap: 8px; padding: 13px 16px 0; }
|
|
203
|
+
.traffic span { width: 12px; height: 12px; border-radius: 50%; box-shadow: inset 0 0 0 .5px rgba(0,0,0,.12); }
|
|
204
|
+
.traffic span:nth-child(1) { background: #ff5f57; }
|
|
205
|
+
.traffic span:nth-child(2) { background: #febc2e; }
|
|
206
|
+
.traffic span:nth-child(3) { background: #28c840; }
|
|
207
|
+
.brand { display: flex; align-items: center; gap: 8px; padding: 12px 16px; }
|
|
208
|
+
.mark { width: 26px; height: 26px; display: grid; place-items: center; position: relative; border: .5px solid rgba(0,0,0,.15); border-radius: 7px; color: white; background: linear-gradient(160deg, var(--accent), color-mix(in srgb, var(--accent) 70%, black)); box-shadow: 0 1px 2px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.25); font-family: var(--display); font-size: 13px; font-weight: 700; }
|
|
209
|
+
.mark::after { content: ''; width: 4px; height: 4px; position: absolute; right: 5px; bottom: 5px; border-radius: 50%; background: rgba(255,255,255,.95); }
|
|
210
|
+
.wordmark { font-size: 13px; font-weight: 500; letter-spacing: -.02em; white-space: nowrap; }
|
|
211
|
+
.wordmark .dot { color: var(--text-muted); }
|
|
212
|
+
.wordmark::after { content: ''; width: 4px; height: 4px; display: inline-block; margin-left: 3px; border-radius: 50%; background: var(--accent); transform: translateY(-1px); }
|
|
213
|
+
.workspace { display: flex; align-items: center; gap: 8px; margin: 0 12px 8px; padding: 7px 10px; border: 1px solid var(--border); border-radius: 9px; background: var(--bg-card); box-shadow: 0 1px 1.5px rgba(0,0,0,.05); }
|
|
214
|
+
.workspace-badge { width: 20px; height: 20px; display: grid; place-items: center; flex: none; border-radius: 5px; color: white; background: linear-gradient(135deg, var(--accent), #af52de); font-size: 10px; font-weight: 700; }
|
|
215
|
+
.workspace strong { display: block; overflow: hidden; font-size: 12px; font-weight: 500; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
|
|
216
|
+
.workspace small { display: block; margin-top: 1px; color: var(--text-muted); font-size: 10px; }
|
|
217
|
+
nav { display: grid; gap: 2px; padding: 4px 0; }
|
|
218
|
+
.nav-item { width: calc(100% - 18px); min-height: 30px; display: flex; align-items: center; gap: 9px; margin: 1px 9px; padding: 6px 9px; border: 0; border-radius: 7px; color: var(--text-sec); background: transparent; text-align: left; font-size: 13px; font-weight: 450; letter-spacing: -.01em; transition: color .1s ease, background .1s ease, box-shadow .1s ease; }
|
|
219
|
+
.nav-item:hover:not(:disabled) { color: var(--text); background: var(--hover); }
|
|
220
|
+
.nav-item.active { color: white; background: var(--accent); box-shadow: 0 1px 2px color-mix(in srgb, var(--accent) 42%, transparent); font-weight: 510; }
|
|
221
|
+
.count { min-width: 18px; margin-left: auto; padding: 1px 7px; border-radius: 999px; color: var(--text-muted); background: var(--bg-el); font: 10px var(--mono); text-align: center; }
|
|
222
|
+
.nav-item.active .count { color: white; background: rgba(255,255,255,.22); }
|
|
223
|
+
.stack { margin: auto 12px 8px; padding: 11px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg-card); box-shadow: 0 1px 2px rgba(0,0,0,.04); }
|
|
224
|
+
.stack strong { display: block; color: var(--text-sec); font: 11px var(--mono); }
|
|
225
|
+
.stack p { margin: 7px 0 0; color: var(--text-muted); font-size: 10px; line-height: 1.45; }
|
|
226
|
+
.actor { display: flex; align-items: center; gap: 9px; padding: 8px 12px; border-top: 1px solid var(--border-subtle); }
|
|
227
|
+
.avatar { width: 26px; height: 26px; display: grid; place-items: center; flex: none; border-radius: 50%; color: white; background: var(--accent); font-size: 10px; font-weight: 700; }
|
|
228
|
+
.actor-name, .actor-email { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
229
|
+
.actor-name { font-size: 12px; font-weight: 500; }
|
|
230
|
+
.actor-email { color: var(--text-muted); font: 10px var(--mono); }
|
|
231
|
+
.signout { width: 28px; height: 28px; display: grid; place-items: center; border: 0; border-radius: 6px; color: var(--text-muted); background: transparent; }
|
|
232
|
+
.signout:hover { color: #d70015; background: var(--hover); }
|
|
233
|
+
.mobile-signout { display: none; margin-left: auto; }
|
|
234
|
+
.main { min-width: 0; min-height: 0; display: flex; flex-direction: column; }
|
|
235
|
+
.content { flex: 1; min-height: 0; overflow: auto; }
|
|
236
|
+
::slotted(*) { min-height: 100%; }
|
|
237
|
+
.status { height: 24px; display: flex; align-items: center; gap: 16px; flex: none; padding: 0 16px; border-top: 1px solid var(--border-subtle); color: var(--text-dim); background: var(--bg); font: 10px var(--mono); }
|
|
238
|
+
.status-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--success); }
|
|
239
|
+
:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent) 25%, transparent); outline-offset: 2px; }
|
|
240
|
+
|
|
241
|
+
@container (max-width: 760px) {
|
|
242
|
+
.shell { grid-template-columns: 1fr; }
|
|
243
|
+
.sidebar { height: auto; min-height: 0; border-right: 0; border-bottom: 1px solid var(--border-subtle); }
|
|
244
|
+
.traffic, .workspace, .stack, .actor { display: none; }
|
|
245
|
+
.brand { padding: 10px 14px 4px; }
|
|
246
|
+
.mobile-signout { display: grid; }
|
|
247
|
+
nav { display: flex; overflow-x: auto; padding: 4px 8px 8px; }
|
|
248
|
+
.nav-item { width: auto; flex: none; margin: 0 2px; }
|
|
249
|
+
.status { display: none; }
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
@media (prefers-reduced-motion: reduce) {
|
|
253
|
+
*, *::before, *::after { transition-duration: .001ms !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; }
|
|
254
|
+
}
|
|
255
|
+
`;
|
|
256
|
+
initials(valueArg, fallbackArg = '') {
|
|
257
|
+
const source = valueArg.trim() || fallbackArg.trim();
|
|
258
|
+
if (!source)
|
|
259
|
+
return '?';
|
|
260
|
+
return source.split(/\s+|@/).filter(Boolean).slice(0, 2).map((part) => part[0]?.toUpperCase() || '').join('');
|
|
261
|
+
}
|
|
262
|
+
requestNavigation(itemArg) {
|
|
263
|
+
if (itemArg.disabled)
|
|
264
|
+
return;
|
|
265
|
+
this.dispatchEvent(new CustomEvent('navigation-request', {
|
|
266
|
+
detail: { view: itemArg.id },
|
|
267
|
+
bubbles: true,
|
|
268
|
+
composed: true,
|
|
269
|
+
}));
|
|
270
|
+
}
|
|
271
|
+
requestSignout() {
|
|
272
|
+
this.dispatchEvent(new CustomEvent('signout-request', { bubbles: true, composed: true }));
|
|
273
|
+
}
|
|
274
|
+
render() {
|
|
275
|
+
return html `
|
|
276
|
+
<div class="shell" style=${`--accent:${this.accent}`}>
|
|
277
|
+
<aside class="sidebar">
|
|
278
|
+
<div class="traffic" aria-hidden="true"><span></span><span></span><span></span></div>
|
|
279
|
+
<div class="brand"><span class="mark">s</span><span class="wordmark">signature<span class="dot">.</span>digital</span><button class="signout mobile-signout" title="Sign out" aria-label="Sign out" @click=${this.requestSignout}>↪</button></div>
|
|
280
|
+
<div class="workspace"><span class="workspace-badge">${this.initials(this.workspaceName)}</span><div style="min-width:0;flex:1"><strong>${this.workspaceName}</strong><small>${this.deploymentLabel}</small></div></div>
|
|
281
|
+
<nav aria-label="Workspace navigation">
|
|
282
|
+
${this.navigationItems.map((item) => html `
|
|
283
|
+
<button class="nav-item ${this.activeView === item.id ? 'active' : ''}" ?disabled=${item.disabled} title=${item.title || ''} @click=${() => this.requestNavigation(item)}>
|
|
284
|
+
${icon(item.icon, 16)}<span>${item.label}</span>${item.count === undefined ? '' : html `<span class="count">${item.count}</span>`}
|
|
285
|
+
</button>
|
|
286
|
+
`)}
|
|
287
|
+
</nav>
|
|
288
|
+
<div class="stack"><strong>${this.stackLabel}</strong><p>${this.stackDescription}</p></div>
|
|
289
|
+
<div class="actor"><span class="avatar">${this.initials(this.actorName, this.actorEmail)}</span><div style="min-width:0;flex:1"><div class="actor-name">${this.actorName}</div><div class="actor-email">${this.actorEmail}</div></div><button class="signout" title="Sign out" aria-label="Sign out" @click=${this.requestSignout}>↪</button></div>
|
|
290
|
+
</aside>
|
|
291
|
+
<main class="main">
|
|
292
|
+
<div class="content"><slot></slot></div>
|
|
293
|
+
<div class="status"><span class="status-dot"></span><span>${this.statusLabel}</span><span>${this.documentCount} documents</span><div style="flex:1"></div>${this.productLabel ? html `<span style="color:var(--accent)">${this.productLabel}</span>` : ''}</div>
|
|
294
|
+
</main>
|
|
295
|
+
</div>
|
|
296
|
+
`;
|
|
297
|
+
}
|
|
298
|
+
constructor() {
|
|
299
|
+
super(...arguments);
|
|
300
|
+
__runInitializers(this, _navigationItems_extraInitializers);
|
|
301
|
+
}
|
|
302
|
+
static {
|
|
303
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
304
|
+
}
|
|
305
|
+
};
|
|
306
|
+
return SdigAppShell = _classThis;
|
|
307
|
+
})();
|
|
308
|
+
export { SdigAppShell };
|
|
309
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RpZy1hcHAtc2hlbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90c193ZWIvZWxlbWVudHMvc2RpZy1hcHAtc2hlbGwvc2RpZy1hcHAtc2hlbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsUUFBUSxFQUNSLElBQUksRUFDSixhQUFhLEVBRWIsR0FBRyxHQUNKLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0lBc0JyRCxZQUFZOzRCQUR4QixhQUFhLENBQUMsZ0JBQWdCLENBQUM7Ozs7c0JBQ0UsV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs0QkFBbkIsU0FBUSxXQUFXOzs7O2tDQW9CMUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO3NDQUMxQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsQ0FBQzt5Q0FDcEQsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQzsyQ0FDdkQsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztxQ0FDekQsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLENBQUM7c0NBQ25ELFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxDQUFDO3lDQUNwRCxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO3VDQUN2RCxRQUFRLENBQUMsRUFBRSxJ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
|
|
@@ -33,6 +33,7 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
|
|
|
33
33
|
return useValue ? value : void 0;
|
|
34
34
|
};
|
|
35
35
|
import { DeesElement, html, customElement, css, cssManager } from '@design.estate/dees-element';
|
|
36
|
+
import '../sdig-signpad/index.js';
|
|
36
37
|
let SignBox = (() => {
|
|
37
38
|
let _classDecorators = [customElement('sdig-signbox')];
|
|
38
39
|
let _classDescriptor;
|
|
@@ -59,6 +60,7 @@ let SignBox = (() => {
|
|
|
59
60
|
css `
|
|
60
61
|
.mainbox {
|
|
61
62
|
position: relative;
|
|
63
|
+
width: 100%;
|
|
62
64
|
background: ${cssManager.bdTheme('#eeeeeb', '#111111')};
|
|
63
65
|
border-radius: 16px;
|
|
64
66
|
max-width: 600px;
|
|
@@ -91,6 +93,7 @@ let SignBox = (() => {
|
|
|
91
93
|
box-shadow: ${cssManager.bdTheme('0px 0px 8px 0px #00000040', 'none')};
|
|
92
94
|
z-index: 2;
|
|
93
95
|
display: flex;
|
|
96
|
+
flex-wrap: wrap;
|
|
94
97
|
justify-content: flex-end;
|
|
95
98
|
}
|
|
96
99
|
|
|
@@ -105,6 +108,13 @@ let SignBox = (() => {
|
|
|
105
108
|
.button:hover {
|
|
106
109
|
color: ${cssManager.bdTheme('#111111', '#eeeeeb')};
|
|
107
110
|
}
|
|
111
|
+
|
|
112
|
+
button.button {
|
|
113
|
+
appearance: none;
|
|
114
|
+
border: 0;
|
|
115
|
+
background: transparent;
|
|
116
|
+
font: inherit;
|
|
117
|
+
}
|
|
108
118
|
`
|
|
109
119
|
];
|
|
110
120
|
render() {
|
|
@@ -115,30 +125,39 @@ let SignBox = (() => {
|
|
|
115
125
|
</div>
|
|
116
126
|
<sdig-signpad></sdig-signpad>
|
|
117
127
|
<div class="actions">
|
|
118
|
-
<
|
|
128
|
+
<button class="button" data-action="clear" @click=${async () => {
|
|
119
129
|
await this.shadowRoot?.querySelector('sdig-signpad')?.clear();
|
|
120
130
|
}}>
|
|
121
131
|
Clear
|
|
122
|
-
</
|
|
123
|
-
<
|
|
132
|
+
</button>
|
|
133
|
+
<button class="button" data-action="undo" @click=${async () => {
|
|
124
134
|
await this.shadowRoot?.querySelector('sdig-signpad')?.undo();
|
|
125
135
|
}}>
|
|
126
136
|
Undo
|
|
127
|
-
</
|
|
128
|
-
<
|
|
137
|
+
</button>
|
|
138
|
+
<button class="button" data-action="submit" @click=${async () => {
|
|
129
139
|
const signaturePad = this.shadowRoot?.querySelector('sdig-signpad');
|
|
130
140
|
if (!signaturePad)
|
|
131
141
|
return;
|
|
142
|
+
if (await signaturePad.isEmpty())
|
|
143
|
+
return;
|
|
132
144
|
const signature = await signaturePad.toData();
|
|
145
|
+
const svg = await signaturePad.toSVG();
|
|
146
|
+
const canvasSize = signaturePad.getCanvasSize();
|
|
133
147
|
this.dispatchEvent(new CustomEvent('signature', {
|
|
134
148
|
detail: {
|
|
135
149
|
signature,
|
|
136
|
-
|
|
150
|
+
svg,
|
|
151
|
+
createdAt: Date.now(),
|
|
152
|
+
canvasWidth: canvasSize.width,
|
|
153
|
+
canvasHeight: canvasSize.height,
|
|
154
|
+
},
|
|
155
|
+
bubbles: true,
|
|
156
|
+
composed: true,
|
|
137
157
|
}));
|
|
138
|
-
console.log(signature);
|
|
139
158
|
}}>
|
|
140
159
|
Submit Signature
|
|
141
|
-
</
|
|
160
|
+
</button>
|
|
142
161
|
</div>
|
|
143
162
|
</div>
|
|
144
163
|
`;
|
|
@@ -150,4 +169,4 @@ let SignBox = (() => {
|
|
|
150
169
|
return SignBox = _classThis;
|
|
151
170
|
})();
|
|
152
171
|
export { SignBox };
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RpZy1zaWduYm94LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzL3NkaWctc2lnbmJveC9zZGlnLXNpZ25ib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBdUIsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JILE9BQU8sMEJBQTBCLENBQUM7SUFTckIsT0FBTzs0QkFEbkIsYUFBYSxDQUFDLGNBQWMsQ0FBQzs7OztzQkFDRCxXQUFXO3VCQUFuQixTQUFRLFdBQVc7Ozs7WUFBeEMsNktBb0hDOzs7O1FBbkhRLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBOztHQUU5QixDQUFDO1FBQ0ssTUFBTSxDQUFDLFVBQVUsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFFNUQ7WUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNWLENBQUM7UUFFTSxNQUFNLENBQUMsTUFBTSxHQUFHO1lBQ3JCLFVBQVUsQ0FBQyxhQUFhO1lBQ3hCLEdBQUcsQ0FBQTs7OztzQkFJZSxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7O2lCQUs3QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7O3NCQUVuQyxVQUFVLENBQUMsT0FBTyxDQUFDLDJCQUEyQixFQUFFLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NCQXFCdkQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO3NCQUN4QyxVQUFVLENBQUMsT0FBTyxDQUFDLDJCQUEyQixFQUFFLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7aUJBVzVELFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQzs7Ozs7aUJBS2xDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7Ozs7Ozs7O0tBU3BEO1NBQ0YsQ0FBQztRQUVLLE1BQU07WUFDWCxPQUFPLElBQUksQ0FBQTs7Ozs7Ozs4REFPK0MsS0FBSyxJQUFJLEVBQUU7Z0JBQzdELE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDaEUsQ0FBQzs7OzZEQUdrRCxLQUFLLElBQUksRUFBRTtnQkFDNUQsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUMvRCxDQUFDOzs7K0RBR29ELEtBQUssSUFBSSxFQUFFO2dCQUM5RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDcEUsSUFBSSxDQUFDLFlBQVk7b0JBQUUsT0FBTztnQkFDMUIsSUFBSSxNQUFNLFlBQVksQ0FBQyxPQUFPLEVBQUU7b0JBQUUsT0FBTztnQkFDekMsTUFBTSxTQUFTLEdBQUcsTUFBTSxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzlDLE1BQU0sR0FBRyxHQUFHLE1BQU0sWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN2QyxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxXQUFXLENBQUMsV0FBVyxFQUFFO29CQUM5QyxNQUFNLEVBQUU7d0JBQ04sU0FBUzt3QkFDVCxHQUFHO3dCQUNILFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO3dCQUNyQixXQUFXLEVBQUUsVUFBVSxDQUFDLEtBQUs7d0JBQzdCLFlBQVksRUFBRSxVQUFVLENBQUMsTUFBTTtxQkFDaEM7b0JBQ0QsT0FBTyxFQUFFLElBQUk7b0JBQ2IsUUFBUSxFQUFFLElBQUk7aUJBQ2YsQ0FBQyxDQUFDLENBQUM7WUFDTixDQUFDOzs7OztLQUtOLENBQUM7UUFDSixDQUFDOztZQW5IVSx1REFBTzs7Ozs7U0FBUCxPQUFPIn0=
|
|
@@ -12,11 +12,18 @@ export declare class SignPad extends DeesElement {
|
|
|
12
12
|
static styles: import("@design.estate/dees-element").CSSResult[];
|
|
13
13
|
render(): TemplateResult;
|
|
14
14
|
signaturePad?: typeof plugins.signaturePad.prototype;
|
|
15
|
+
private canvas?;
|
|
15
16
|
firstUpdated(): Promise<void>;
|
|
17
|
+
disconnectedCallback(): Promise<void>;
|
|
16
18
|
resizeCanvas(): Promise<void>;
|
|
17
19
|
clear(): Promise<void>;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
isEmpty(): Promise<boolean>;
|
|
21
|
+
toData(): Promise<plugins.TSignaturePadPointGroup[]>;
|
|
22
|
+
getCanvasSize(): {
|
|
23
|
+
width: number;
|
|
24
|
+
height: number;
|
|
25
|
+
};
|
|
26
|
+
fromData(dataArrayArg: plugins.TSignaturePadPointGroup[]): Promise<void>;
|
|
20
27
|
toSVG(): Promise<string>;
|
|
21
28
|
undo(): Promise<void>;
|
|
22
29
|
}
|
|
@@ -60,6 +60,7 @@ let SignPad = (() => {
|
|
|
60
60
|
css `
|
|
61
61
|
:host {
|
|
62
62
|
display: block;
|
|
63
|
+
width: 100%;
|
|
63
64
|
color: white;
|
|
64
65
|
position: relative;
|
|
65
66
|
max-width: 600px;
|
|
@@ -69,7 +70,8 @@ let SignPad = (() => {
|
|
|
69
70
|
|
|
70
71
|
.mainbox {
|
|
71
72
|
position: relative;
|
|
72
|
-
width:
|
|
73
|
+
width: 100%;
|
|
74
|
+
max-width: 600px;
|
|
73
75
|
height: 280px;
|
|
74
76
|
}
|
|
75
77
|
|
|
@@ -83,6 +85,8 @@ let SignPad = (() => {
|
|
|
83
85
|
}
|
|
84
86
|
|
|
85
87
|
canvas {
|
|
88
|
+
display: block;
|
|
89
|
+
max-width: 100%;
|
|
86
90
|
filter: ${cssManager.bdTheme('invert(0)', 'invert(1)')};
|
|
87
91
|
}
|
|
88
92
|
`
|
|
@@ -95,17 +99,22 @@ let SignPad = (() => {
|
|
|
95
99
|
`;
|
|
96
100
|
}
|
|
97
101
|
signaturePad;
|
|
102
|
+
canvas;
|
|
98
103
|
async firstUpdated() {
|
|
99
104
|
await this.domtoolsPromise;
|
|
100
105
|
const mainbox = this.shadowRoot?.querySelector('.mainbox');
|
|
101
106
|
if (!mainbox)
|
|
102
107
|
return;
|
|
103
|
-
|
|
104
|
-
mainbox.appendChild(canvas);
|
|
108
|
+
this.canvas = document.createElement('canvas');
|
|
109
|
+
mainbox.appendChild(this.canvas);
|
|
105
110
|
await this.resizeCanvas();
|
|
106
|
-
this.signaturePad = new plugins.signaturePad(canvas, {});
|
|
111
|
+
this.signaturePad = new plugins.signaturePad(this.canvas, {});
|
|
107
112
|
this.signaturePad.on();
|
|
108
113
|
}
|
|
114
|
+
async disconnectedCallback() {
|
|
115
|
+
this.signaturePad?.off();
|
|
116
|
+
await super.disconnectedCallback();
|
|
117
|
+
}
|
|
109
118
|
async resizeCanvas() {
|
|
110
119
|
const mainbox = this.shadowRoot?.querySelector('.mainbox');
|
|
111
120
|
const canvas = this.shadowRoot?.querySelector('canvas');
|
|
@@ -122,10 +131,19 @@ let SignPad = (() => {
|
|
|
122
131
|
async clear() {
|
|
123
132
|
this.signaturePad?.clear();
|
|
124
133
|
}
|
|
134
|
+
async isEmpty() {
|
|
135
|
+
return this.signaturePad?.isEmpty() ?? true;
|
|
136
|
+
}
|
|
125
137
|
async toData() {
|
|
126
138
|
const returnData = this.signaturePad?.toData() || [];
|
|
127
139
|
return returnData;
|
|
128
140
|
}
|
|
141
|
+
getCanvasSize() {
|
|
142
|
+
return {
|
|
143
|
+
width: this.canvas?.width || 0,
|
|
144
|
+
height: this.canvas?.height || 0,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
129
147
|
async fromData(dataArrayArg) {
|
|
130
148
|
this.signaturePad?.fromData(dataArrayArg);
|
|
131
149
|
}
|
|
@@ -146,4 +164,4 @@ let SignPad = (() => {
|
|
|
146
164
|
return SignPad = _classThis;
|
|
147
165
|
})();
|
|
148
166
|
export { SignPad };
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RpZy1zaWducGFkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzL3NkaWctc2lnbnBhZC9zZGlnLXNpZ25wYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBdUIsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JILE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7SUFTL0IsT0FBTzs0QkFEbkIsYUFBYSxDQUFDLGNBQWMsQ0FBQzs7OztzQkFDRCxXQUFXO3VCQUFuQixTQUFRLFdBQVc7Ozs7WUFBeEMsNktBNkhDOzs7O1FBNUhRLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBOztHQUU5QixDQUFDO1FBQ0ssTUFBTSxDQUFDLFVBQVUsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFHNUQ7WUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNWLENBQUM7UUFFTSxNQUFNLENBQUMsTUFBTSxHQUFHO1lBQ3JCLFVBQVUsQ0FBQyxhQUFhO1lBQ3hCLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUNBdUIwQixVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUM7Ozs7Ozs7a0JBTzNELFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQzs7S0FFekQ7U0FDRixDQUFBO1FBRU0sTUFBTTtZQUNYLE9BQU8sSUFBSSxDQUFBOzs7O0tBSVYsQ0FBQztRQUNKLENBQUM7UUFFTSxZQUFZLENBQXlDO1FBQ3BELE1BQU0sQ0FBcUI7UUFFNUIsS0FBSyxDQUFDLFlBQVk7WUFDdkIsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQzNCLE1BQU0sT0FBTyxHQUFHLElBQUks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
|