@signature.digital/catalog 1.3.0 → 1.5.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.
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@signature.digital/catalog',
6
- version: '1.3.0',
6
+ version: '1.5.0',
7
7
  description: 'A comprehensive catalog of customizable web components designed for building and managing e-signature applications.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsNEJBQTRCO0lBQ2xDLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFdBQVcsRUFBRSxxSEFBcUg7Q0FDbkksQ0FBQSJ9
@@ -1,3 +1,4 @@
1
+ export * from './sdig-contextmenu/index.js';
1
2
  export * from './sdig-signbox/index.js';
2
3
  export * from './sdig-signpad/index.js';
3
4
  export * from './sdig-workspace/index.js';
@@ -1,6 +1,7 @@
1
1
  // Signature components
2
+ export * from './sdig-contextmenu/index.js';
2
3
  export * from './sdig-signbox/index.js';
3
4
  export * from './sdig-signpad/index.js';
4
5
  // Product workspace component
5
6
  export * from './sdig-workspace/index.js';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdUJBQXVCO0FBQ3ZCLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQztBQUV4Qyw4QkFBOEI7QUFDOUIsY0FBYywyQkFBMkIsQ0FBQyJ9
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdUJBQXVCO0FBQ3ZCLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlCQUF5QixDQUFDO0FBRXhDLDhCQUE4QjtBQUM5QixjQUFjLDJCQUEyQixDQUFDIn0=
@@ -0,0 +1 @@
1
+ export * from './sdig-contextmenu.js';
@@ -0,0 +1,2 @@
1
+ export * from './sdig-contextmenu.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90c193ZWIvZWxlbWVudHMvc2RpZy1jb250ZXh0bWVudS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDIn0=
@@ -0,0 +1,36 @@
1
+ import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
2
+ export interface ISdigContextMenuAction {
3
+ id: string;
4
+ label: string;
5
+ description?: string;
6
+ selected?: boolean;
7
+ disabled?: boolean;
8
+ danger?: boolean;
9
+ }
10
+ export interface ISdigContextMenuActionEventDetail {
11
+ id: string;
12
+ action: ISdigContextMenuAction;
13
+ }
14
+ declare global {
15
+ interface HTMLElementTagNameMap {
16
+ 'sdig-contextmenu': SdigContextmenu;
17
+ }
18
+ }
19
+ export declare class SdigContextmenu extends DeesElement {
20
+ static demo: () => TemplateResult<1>;
21
+ static demoGroups: string[];
22
+ accessor anchorX: number;
23
+ accessor anchorY: number;
24
+ accessor title: string;
25
+ accessor actions: ISdigContextMenuAction[];
26
+ private accessor position;
27
+ private positionUpdateFrame;
28
+ static styles: import("@design.estate/dees-element").CSSResult;
29
+ connectedCallback: () => Promise<void>;
30
+ disconnectedCallback: () => Promise<void>;
31
+ updated(): void;
32
+ private queuePositionUpdate;
33
+ private positionMenu;
34
+ private selectAction;
35
+ render(): TemplateResult;
36
+ }
@@ -0,0 +1,283 @@
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, state, html, customElement, css } from '@design.estate/dees-element';
36
+ let SdigContextmenu = (() => {
37
+ let _classDecorators = [customElement('sdig-contextmenu')];
38
+ let _classDescriptor;
39
+ let _classExtraInitializers = [];
40
+ let _classThis;
41
+ let _classSuper = DeesElement;
42
+ let _anchorX_decorators;
43
+ let _anchorX_initializers = [];
44
+ let _anchorX_extraInitializers = [];
45
+ let _anchorY_decorators;
46
+ let _anchorY_initializers = [];
47
+ let _anchorY_extraInitializers = [];
48
+ let _title_decorators;
49
+ let _title_initializers = [];
50
+ let _title_extraInitializers = [];
51
+ let _actions_decorators;
52
+ let _actions_initializers = [];
53
+ let _actions_extraInitializers = [];
54
+ let _position_decorators;
55
+ let _position_initializers = [];
56
+ let _position_extraInitializers = [];
57
+ var SdigContextmenu = class extends _classSuper {
58
+ static { _classThis = this; }
59
+ static {
60
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
61
+ _anchorX_decorators = [property({ type: Number })];
62
+ _anchorY_decorators = [property({ type: Number })];
63
+ _title_decorators = [property({ type: String })];
64
+ _actions_decorators = [property({ attribute: false })];
65
+ _position_decorators = [state()];
66
+ __esDecorate(this, null, _anchorX_decorators, { kind: "accessor", name: "anchorX", static: false, private: false, access: { has: obj => "anchorX" in obj, get: obj => obj.anchorX, set: (obj, value) => { obj.anchorX = value; } }, metadata: _metadata }, _anchorX_initializers, _anchorX_extraInitializers);
67
+ __esDecorate(this, null, _anchorY_decorators, { kind: "accessor", name: "anchorY", static: false, private: false, access: { has: obj => "anchorY" in obj, get: obj => obj.anchorY, set: (obj, value) => { obj.anchorY = value; } }, metadata: _metadata }, _anchorY_initializers, _anchorY_extraInitializers);
68
+ __esDecorate(this, null, _title_decorators, { kind: "accessor", name: "title", static: false, private: false, access: { has: obj => "title" in obj, get: obj => obj.title, set: (obj, value) => { obj.title = value; } }, metadata: _metadata }, _title_initializers, _title_extraInitializers);
69
+ __esDecorate(this, null, _actions_decorators, { kind: "accessor", name: "actions", static: false, private: false, access: { has: obj => "actions" in obj, get: obj => obj.actions, set: (obj, value) => { obj.actions = value; } }, metadata: _metadata }, _actions_initializers, _actions_extraInitializers);
70
+ __esDecorate(this, null, _position_decorators, { kind: "accessor", name: "position", static: false, private: false, access: { has: obj => "position" in obj, get: obj => obj.position, set: (obj, value) => { obj.position = value; } }, metadata: _metadata }, _position_initializers, _position_extraInitializers);
71
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
72
+ SdigContextmenu = _classThis = _classDescriptor.value;
73
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
74
+ }
75
+ static demo = () => html `
76
+ <div style="position: relative; min-height: 260px; padding: 24px; --bg-card: hsl(0 0% 7%); --bg-input: hsl(0 0% 9%); --border: hsl(0 0% 14.9%); --border-subtle: hsl(0 0% 11%); --text: hsl(0 0% 98%); --text-sec: hsl(0 0% 63.9%); --text-muted: hsl(0 0% 48%); --hover: rgba(255,255,255,0.06); --error: #ef4444;">
77
+ <sdig-contextmenu
78
+ .anchorX=${80}
79
+ .anchorY=${70}
80
+ .title=${'Recipient'}
81
+ .actions=${[
82
+ { id: 'signer', label: 'Needs signature', selected: true },
83
+ { id: 'copy', label: 'Final copy only' },
84
+ { id: 'updates', label: 'Every step update' },
85
+ ]}
86
+ ></sdig-contextmenu>
87
+ </div>
88
+ `;
89
+ static demoGroups = ['Signature Digital Primitives'];
90
+ #anchorX_accessor_storage = __runInitializers(this, _anchorX_initializers, 0);
91
+ get anchorX() { return this.#anchorX_accessor_storage; }
92
+ set anchorX(value) { this.#anchorX_accessor_storage = value; }
93
+ #anchorY_accessor_storage = (__runInitializers(this, _anchorX_extraInitializers), __runInitializers(this, _anchorY_initializers, 0));
94
+ get anchorY() { return this.#anchorY_accessor_storage; }
95
+ set anchorY(value) { this.#anchorY_accessor_storage = value; }
96
+ #title_accessor_storage = (__runInitializers(this, _anchorY_extraInitializers), __runInitializers(this, _title_initializers, ''));
97
+ get title() { return this.#title_accessor_storage; }
98
+ set title(value) { this.#title_accessor_storage = value; }
99
+ #actions_accessor_storage = (__runInitializers(this, _title_extraInitializers), __runInitializers(this, _actions_initializers, []));
100
+ get actions() { return this.#actions_accessor_storage; }
101
+ set actions(value) { this.#actions_accessor_storage = value; }
102
+ #position_accessor_storage = (__runInitializers(this, _actions_extraInitializers), __runInitializers(this, _position_initializers, { x: 0, y: 0, ready: false }));
103
+ get position() { return this.#position_accessor_storage; }
104
+ set position(value) { this.#position_accessor_storage = value; }
105
+ positionUpdateFrame = (__runInitializers(this, _position_extraInitializers), null);
106
+ static styles = css `
107
+ :host { display: contents; }
108
+
109
+ .menu {
110
+ position: fixed;
111
+ z-index: 1000;
112
+ min-width: 190px;
113
+ max-width: min(280px, calc(100vw - 16px));
114
+ padding: 6px;
115
+ border: 1px solid var(--border, hsl(0 0% 14.9%));
116
+ border-radius: 8px;
117
+ background: var(--bg-card, hsl(0 0% 7%));
118
+ color: var(--text, hsl(0 0% 98%));
119
+ box-shadow: 0 16px 42px rgba(0,0,0,0.36);
120
+ box-sizing: border-box;
121
+ }
122
+
123
+ .title {
124
+ padding: 7px 8px;
125
+ margin-bottom: 4px;
126
+ border-bottom: 1px solid var(--border-subtle, hsl(0 0% 11%));
127
+ font-size: 11px;
128
+ font-weight: 700;
129
+ color: var(--text-sec, hsl(0 0% 63.9%));
130
+ }
131
+
132
+ .action {
133
+ width: 100%;
134
+ min-height: 34px;
135
+ padding: 8px;
136
+ border: 0;
137
+ border-radius: 6px;
138
+ background: transparent;
139
+ color: var(--text-sec, hsl(0 0% 63.9%));
140
+ display: flex;
141
+ align-items: center;
142
+ gap: 8px;
143
+ text-align: left;
144
+ font: inherit;
145
+ font-size: 11px;
146
+ cursor: pointer;
147
+ }
148
+
149
+ .action:hover { background: var(--hover, rgba(255,255,255,0.06)); color: var(--text, hsl(0 0% 98%)); }
150
+ .action.danger { color: var(--error, #ef4444); }
151
+ .action[disabled] { opacity: 0.45; cursor: not-allowed; }
152
+ .action[disabled]:hover { background: transparent; color: var(--text-sec, hsl(0 0% 63.9%)); }
153
+
154
+ .action-mark {
155
+ width: 12px;
156
+ height: 12px;
157
+ display: inline-flex;
158
+ align-items: center;
159
+ justify-content: center;
160
+ flex-shrink: 0;
161
+ }
162
+
163
+ .action-mark.selected::before {
164
+ content: '';
165
+ width: 7px;
166
+ height: 4px;
167
+ border-left: 1.5px solid currentColor;
168
+ border-bottom: 1.5px solid currentColor;
169
+ transform: rotate(-45deg) translate(1px, -1px);
170
+ }
171
+
172
+ .action-copy {
173
+ min-width: 0;
174
+ display: flex;
175
+ flex-direction: column;
176
+ gap: 2px;
177
+ }
178
+
179
+ .action-label {
180
+ overflow: hidden;
181
+ white-space: nowrap;
182
+ text-overflow: ellipsis;
183
+ }
184
+
185
+ .action-description {
186
+ overflow: hidden;
187
+ white-space: nowrap;
188
+ text-overflow: ellipsis;
189
+ color: var(--text-muted, hsl(0 0% 48%));
190
+ font-size: 10px;
191
+ line-height: 1.25;
192
+ }
193
+ `;
194
+ connectedCallback = async () => {
195
+ await super.connectedCallback();
196
+ window.addEventListener('resize', this.queuePositionUpdate);
197
+ };
198
+ disconnectedCallback = async () => {
199
+ window.removeEventListener('resize', this.queuePositionUpdate);
200
+ if (this.positionUpdateFrame !== null) {
201
+ globalThis.cancelAnimationFrame(this.positionUpdateFrame);
202
+ this.positionUpdateFrame = null;
203
+ }
204
+ await super.disconnectedCallback();
205
+ };
206
+ updated() {
207
+ this.queuePositionUpdate();
208
+ }
209
+ queuePositionUpdate = () => {
210
+ if (this.positionUpdateFrame !== null)
211
+ return;
212
+ this.positionUpdateFrame = globalThis.requestAnimationFrame(() => {
213
+ this.positionUpdateFrame = null;
214
+ this.positionMenu();
215
+ });
216
+ };
217
+ positionMenu() {
218
+ const menu = this.shadowRoot?.querySelector('.menu');
219
+ if (!menu)
220
+ return;
221
+ const margin = 8;
222
+ const gap = 4;
223
+ const rect = menu.getBoundingClientRect();
224
+ const viewportWidth = globalThis.innerWidth;
225
+ const viewportHeight = globalThis.innerHeight;
226
+ const spaceRight = viewportWidth - this.anchorX - margin;
227
+ const spaceLeft = this.anchorX - margin;
228
+ const spaceBelow = viewportHeight - this.anchorY - margin;
229
+ const spaceAbove = this.anchorY - margin;
230
+ let x = this.anchorX + gap;
231
+ let y = this.anchorY + gap;
232
+ if (spaceRight < rect.width + gap && spaceLeft > spaceRight) {
233
+ x = this.anchorX - rect.width - gap;
234
+ }
235
+ if (spaceBelow < rect.height + gap && spaceAbove > spaceBelow) {
236
+ y = this.anchorY - rect.height - gap;
237
+ }
238
+ const maxX = Math.max(margin, viewportWidth - rect.width - margin);
239
+ const maxY = Math.max(margin, viewportHeight - rect.height - margin);
240
+ const nextPosition = {
241
+ x: Math.round(Math.max(margin, Math.min(maxX, x))),
242
+ y: Math.round(Math.max(margin, Math.min(maxY, y))),
243
+ ready: true,
244
+ };
245
+ if (this.position.x !== nextPosition.x || this.position.y !== nextPosition.y || this.position.ready !== nextPosition.ready) {
246
+ this.position = nextPosition;
247
+ }
248
+ }
249
+ selectAction(action) {
250
+ if (action.disabled)
251
+ return;
252
+ this.dispatchEvent(new CustomEvent('contextmenu-action', {
253
+ detail: { id: action.id, action },
254
+ bubbles: true,
255
+ composed: true,
256
+ }));
257
+ }
258
+ render() {
259
+ const x = this.position.ready ? this.position.x : this.anchorX;
260
+ const y = this.position.ready ? this.position.y : this.anchorY;
261
+ return html `
262
+ <div class="menu" style="left: ${x}px; top: ${y}px; visibility: ${this.position.ready ? 'visible' : 'hidden'};" @click=${(event) => event.stopPropagation()} @contextmenu=${(event) => event.preventDefault()}>
263
+ ${this.title ? html `<div class="title">${this.title}</div>` : ''}
264
+ ${this.actions.map((action) => html `
265
+ <button class="action ${action.danger ? 'danger' : ''}" ?disabled=${action.disabled} @click=${() => this.selectAction(action)}>
266
+ <span class="action-mark ${action.selected ? 'selected' : ''}"></span>
267
+ <span class="action-copy">
268
+ <span class="action-label">${action.label}</span>
269
+ ${action.description ? html `<span class="action-description">${action.description}</span>` : ''}
270
+ </span>
271
+ </button>
272
+ `)}
273
+ </div>
274
+ `;
275
+ }
276
+ static {
277
+ __runInitializers(_classThis, _classExtraInitializers);
278
+ }
279
+ };
280
+ return SdigContextmenu = _classThis;
281
+ })();
282
+ export { SdigContextmenu };
283
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RpZy1jb250ZXh0bWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy9zZGlnLWNvbnRleHRtZW51L3NkaWctY29udGV4dG1lbnUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUF1QixHQUFHLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztJQTZCN0csZUFBZTs0QkFEM0IsYUFBYSxDQUFDLGtCQUFrQixDQUFDOzs7O3NCQUNHLFdBQVc7Ozs7Ozs7Ozs7Ozs7Ozs7K0JBQW5CLFNBQVEsV0FBVzs7OzttQ0FpQjdDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQzttQ0FDMUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO2lDQUMxQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7bUNBQzFCLFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztvQ0FDOUIsS0FBSyxFQUFFO1lBSm9CLDBLQUFnQixPQUFPLDZCQUFQLE9BQU8seUZBQWE7WUFDcEMsMEtBQWdCLE9BQU8sNkJBQVAsT0FBTyx5RkFBYTtZQUNwQyxvS0FBZ0IsS0FBSyw2QkFBTCxLQUFLLHFGQUFjO1lBQy9CLDBLQUFnQixPQUFPLDZCQUFQLE9BQU8seUZBQWdDO1lBQzlFLDZLQUFpQixRQUFRLDZCQUFSLFFBQVEsMkZBQStDO1lBckJuRiw2S0E0TUM7Ozs7UUEzTVEsTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUE7OzttQkFHZCxFQUFFO21CQUNGLEVBQUU7aUJBQ0osV0FBVzttQkFDVDtZQUNULEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFL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
@@ -1,4 +1,5 @@
1
1
  import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
2
+ import '../sdig-contextmenu/index.js';
2
3
  declare global {
3
4
  interface HTMLElementTagNameMap {
4
5
  'sdig-workspace-compose': SdigWorkspaceCompose;
@@ -9,10 +10,11 @@ export declare class SdigWorkspaceCompose extends DeesElement {
9
10
  static demoGroups: string[];
10
11
  private accessor step;
11
12
  private accessor activeRecipient;
12
- private accessor draggedRecipientId;
13
13
  private accessor selectedFieldId;
14
14
  private accessor recipients;
15
15
  private accessor fields;
16
+ private accessor signingOrderDrag;
17
+ private accessor recipientContextMenu;
16
18
  private draggedFieldDefinition;
17
19
  private draggedFieldGrabOffset;
18
20
  private fieldInteraction;
@@ -21,24 +23,40 @@ export declare class SdigWorkspaceCompose extends DeesElement {
21
23
  private recipientColor;
22
24
  private fieldIcon;
23
25
  private fieldDefinition;
26
+ private recipientRoleDefinition;
27
+ private signingRecipients;
24
28
  private clamp;
25
29
  private updateField;
26
30
  private updateSelectedField;
27
31
  private updateSelectedFieldNumber;
28
32
  private resetSelectedFieldSize;
29
33
  private removeSelectedField;
34
+ private updateRecipientRole;
35
+ private moveRecipientToRole;
36
+ private openRecipientContextMenu;
37
+ private closeRecipientContextMenu;
38
+ private recipientContextMenuActions;
39
+ private handleRecipientContextMenuAction;
30
40
  private handleDocumentClick;
31
41
  private startFieldInteraction;
32
42
  private startFieldMove;
33
43
  private startFieldResize;
34
44
  private handleFieldPointerMove;
35
45
  private stopFieldInteraction;
36
- private reorderRecipient;
46
+ private visualSigningOrder;
47
+ private recipientsForRole;
48
+ private startSigningOrderDrag;
49
+ private handleSigningOrderPointerMove;
50
+ private stopSigningOrderDrag;
37
51
  private addFieldFromDrop;
38
52
  private startFieldToolDrag;
39
53
  private endFieldToolDrag;
40
54
  private renderFieldEditor;
41
55
  private renderResizeHandles;
56
+ private renderSigningRecipient;
57
+ private renderRoleSection;
58
+ private renderSigningOrder;
59
+ private renderRecipientContextMenu;
42
60
  private renderStepper;
43
61
  render(): TemplateResult;
44
62
  }