@verdocs/web-sdk 5.0.4 → 5.0.6

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.
@@ -3642,7 +3642,7 @@ const VerdocsTemplateRoles = class {
3642
3642
  componentDidRender() {
3643
3643
  // Existing sequence numbers
3644
3644
  const sequenceNumbers = this.getSequenceNumbers();
3645
- sequenceNumbers.forEach(sequence => {
3645
+ (sequenceNumbers || []).forEach(sequence => {
3646
3646
  const el = document.getElementById(`verdocs-roles-sequence-${sequence}`);
3647
3647
  if (el) {
3648
3648
  new Sortable(el, {
@@ -3746,12 +3746,13 @@ const VerdocsTemplateRoles = class {
3746
3746
  // e.g. 1.5 to place it between items 1 and 2, 0.5 to place it at the beginning, or last+0.5 to place it at the end.
3747
3747
  // Then we re-sort the list of roles and renumber them.
3748
3748
  async renumberTemplateRoles() {
3749
+ var _a;
3749
3750
  const sortableRoles = {};
3750
3751
  const renumberRequests = [];
3751
3752
  const sequenceNumbers = this.getSequenceNumbers();
3752
3753
  console.log('Sorting sequences', sequenceNumbers);
3753
- sequenceNumbers.forEach(targetSeq => {
3754
- sortableRoles[targetSeq].forEach((role, targetOrderMinusOne) => {
3754
+ (sequenceNumbers || []).forEach(targetSeq => {
3755
+ (sortableRoles[targetSeq] || []).forEach((role, targetOrderMinusOne) => {
3755
3756
  const targetOrder = +targetOrderMinusOne + 1;
3756
3757
  if (role.sequence !== +targetSeq || role.order !== targetOrder) {
3757
3758
  console.log('[ROLES] Updating role', role.name, 'from', role.sequence, role.order, 'to', targetSeq, targetOrder);
@@ -3765,7 +3766,7 @@ const VerdocsTemplateRoles = class {
3765
3766
  });
3766
3767
  console.log('Sortable Roles', sortableRoles);
3767
3768
  console.log(`[ROLES] Awaiting ${renumberRequests.length} renumber requests`);
3768
- return Promise.all(renumberRequests).then(async () => {
3769
+ await Promise.all(renumberRequests).then(async () => {
3769
3770
  // When renumbering, we don't try to update the store for every individual item
3770
3771
  // changing. We just do it once at the end.
3771
3772
  const newTemplate = JSON.parse(JSON.stringify(this.template));
@@ -3775,35 +3776,7 @@ const VerdocsTemplateRoles = class {
3775
3776
  // TODO: Explore race condition in reordering roles
3776
3777
  // this.template = await Store.getTemplate(this.endpoint, this.templateId, true);
3777
3778
  });
3778
- // // Avoid dupe renumber attempts
3779
- // const renumbered = [];
3780
- //
3781
- // // If the user dragged an entry from below a row to above it, we end up here like [1,0]. Make sure it's [0,1] for the next operation.
3782
- // const renumberRequests = [];
3783
- // this.getSequenceNumbers().forEach((originalSequence, newSequenceIndex) => {
3784
- // this.getRolesAtSequence(originalSequence).forEach((role, newOrderIndex) => {
3785
- // if (!renumbered.includes(role.name)) {
3786
- // if (role.sequence !== newSequenceIndex + 1 || role.order !== newOrderIndex + 1) {
3787
- // role.sequence = newSequenceIndex + 1;
3788
- // role.order = newOrderIndex + 1;
3789
- // renumbered.push(role.name);
3790
- // // console.log('[ROLES] Renumbering', role.name, targetSequence, targetOrder);
3791
- // renumberRequests.push(updateTemplateRole(this.endpoint, this.templateId, role.name, {sequence: role.sequence, order: role.order}));
3792
- // }
3793
- // }
3794
- // });
3795
- // });
3796
- //
3797
- // if (renumberRequests.length > 0) {
3798
- // console.log(`[ROLES] Submitting ${renumberRequests.length} renumber requests`);
3799
- // return Promise.all(renumberRequests).then(async () => {
3800
- // // When renumbering, we don't try to update the store for every individual item
3801
- // // changing. We just do it once at the end.
3802
- // this.template = await Store.getTemplate(this.endpoint, this.templateId, true);
3803
- // });
3804
- // }
3805
- //
3806
- // return true;
3779
+ (_a = this.rolesUpdated) === null || _a === void 0 ? void 0 : _a.emit({ event: 'updated', endpoint: this.endpoint, templateId: this.templateId, roles: this.getSortedRoles() });
3807
3780
  }
3808
3781
  // Look for name conflicts, because they're UGC and can be anything, regardless of order.
3809
3782
  getNextRoleName() {
@@ -3836,13 +3809,14 @@ const VerdocsTemplateRoles = class {
3836
3809
  .then(async (role) => {
3837
3810
  var _a;
3838
3811
  console.log('[ROLES] Created role', role);
3839
- const newTemplate = JSON.parse(JSON.stringify(this.template));
3840
- newTemplate.roles.push(role);
3812
+ // const newTemplate = JSON.parse(JSON.stringify(this.template));
3813
+ // newTemplate.roles.push(role);
3841
3814
  // TODO: Verify this immediately triggers a self-update
3842
3815
  console.log('Updating template in data store');
3843
- Datastore.Store.updateTemplate(this.templateId, newTemplate);
3816
+ await Datastore.Store.getTemplate(this.endpoint, this.templateId, true);
3817
+ // Store.updateTemplate(this.templateId, newTemplate);
3844
3818
  // This will re-sort the roles and renumbers them via server calls if necessary
3845
- await this.renumberTemplateRoles();
3819
+ // await this.renumberTemplateRoles();
3846
3820
  (_a = this.rolesUpdated) === null || _a === void 0 ? void 0 : _a.emit({ event: 'added', endpoint: this.endpoint, templateId: this.templateId, roles: this.getSortedRoles() });
3847
3821
  })
3848
3822
  .catch(e => {
@@ -3876,7 +3850,7 @@ const VerdocsTemplateRoles = class {
3876
3850
  return (index$1.h(index$1.Host, { class: { dragging: this.dragging } }, index$1.h("form", { onSubmit: e => e.preventDefault(), onClick: e => e.stopPropagation(), autocomplete: "off" }, index$1.h("h5", null, "Roles and Workflow"), index$1.h("div", { class: "roles" }, sequences.map(sequence => (index$1.h("div", { class: "sequence" }, index$1.h("div", { class: "sequence-label no-drag" }, sequence, "."), index$1.h("div", { class: "sequence-roles", id: `verdocs-roles-sequence-${sequence}`, "data-sequence": sequence }, this.getRolesAtSequence(sequence).map(role => {
3877
3851
  const unknown = !role.email;
3878
3852
  return unknown ? (index$1.h("div", { class: "role", "data-rolename": role.name, "data-sequence": sequence, "data-order": role.order }, index$1.h("div", { class: "role-name" }, role.name), index$1.h("div", { class: "icons" }, index$1.h("div", { class: "gear-button", innerHTML: settingsIcon, onClick: () => (this.showingRoleDialog = role.name), "aria-role": "button" }), index$1.h("span", { class: "type-icon", innerHTML: role.type === 'signer' ? iconSigner : role.type === 'cc' ? iconCC : iconApprover })))) : (index$1.h("div", { class: "role", "data-rolename": role.name, "data-sequence": sequence, "data-order": role.order }, index$1.h("div", { class: "role-name" }, jsSdk.formatFullName(role)), index$1.h("div", { class: "icons" }, index$1.h("div", { class: "gear-button", innerHTML: settingsIcon, onClick: () => (this.showingRoleDialog = role.name), "aria-role": "button" }), index$1.h("span", { class: "type-icon", innerHTML: role.type === 'signer' ? iconSigner : role.type === 'cc' ? iconCC : iconApprover }))));
3879
- })), index$1.h("button", { class: "add-role no-drag", innerHTML: plusIcon, onClick: e => this.handleAddRole(e, sequence) })))), index$1.h("div", { class: "sequence add-sequence" }, index$1.h("div", { class: "sequence-label no-drag" }, sequences.length + 1, "."), index$1.h("div", { class: "sequence-roles", id: `verdocs-roles-sequence-${sequences.length + 1}`, "data-sequence": sequences.length + 1 }, index$1.h("div", { class: "role-name add-step-label" }, "Add Step.")), index$1.h("button", { class: "add-role no-drag", innerHTML: plusIcon, onClick: e => this.handleAddRole(e, sequences.length + 1) }))), roleNames.length < 1 && (index$1.h("div", { class: "empty" }, "You must add at least one Role before proceeding.", index$1.h("br", null), " Click the ", index$1.h("span", { innerHTML: plusIcon }), " Add button above to get started.")), index$1.h("div", { class: "buttons" }, index$1.h("div", { class: "flex-fill" }), index$1.h("verdocs-button", { variant: "outline", label: "Cancel", size: "small", onClick: () => this.handleCancel() }), index$1.h("verdocs-button", { label: "OK", size: "small", onClick: () => this.handleSubmit(), disabled: roleNames.length < 1 }))), this.showingRoleDialog && (index$1.h("verdocs-menu-panel", { onClose: () => (this.showingRoleDialog = null) }, index$1.h("verdocs-template-role-properties", { endpoint: this.endpoint, templateId: this.templateId, roleName: this.showingRoleDialog, onClose: () => {
3853
+ })), index$1.h("button", { class: "add-role no-drag", innerHTML: plusIcon, onClick: e => this.handleAddRole(e, sequence) })))), index$1.h("div", { class: "sequence add-sequence" }, index$1.h("div", { class: "sequence-label no-drag" }, sequences.length + 1, "."), index$1.h("div", { class: "sequence-roles", id: `verdocs-roles-sequence-${sequences.length + 1}`, "data-sequence": sequences.length + 1 }), index$1.h("button", { class: "add-role no-drag", innerHTML: plusIcon, onClick: e => this.handleAddRole(e, sequences.length + 1) }))), roleNames.length < 1 && (index$1.h("div", { class: "empty" }, "You must add at least one Role before proceeding.", index$1.h("br", null), " Click the ", index$1.h("span", { innerHTML: plusIcon }), " Add button above to get started.")), index$1.h("div", { class: "buttons" }, index$1.h("div", { class: "flex-fill" }), index$1.h("verdocs-button", { variant: "outline", label: "Cancel", size: "small", onClick: () => this.handleCancel() }), index$1.h("verdocs-button", { label: "OK", size: "small", onClick: () => this.handleSubmit(), disabled: roleNames.length < 1 }))), this.showingRoleDialog && (index$1.h("verdocs-menu-panel", { onClose: () => (this.showingRoleDialog = null) }, index$1.h("verdocs-template-role-properties", { endpoint: this.endpoint, templateId: this.templateId, roleName: this.showingRoleDialog, onClose: () => {
3880
3854
  var _a;
3881
3855
  (_a = document.getElementById('verdocs-menu-panel-overlay')) === null || _a === void 0 ? void 0 : _a.remove();
3882
3856
  this.showingRoleDialog = null;
@@ -64,7 +64,7 @@ export class VerdocsTemplateRoles {
64
64
  componentDidRender() {
65
65
  // Existing sequence numbers
66
66
  const sequenceNumbers = this.getSequenceNumbers();
67
- sequenceNumbers.forEach(sequence => {
67
+ (sequenceNumbers || []).forEach(sequence => {
68
68
  const el = document.getElementById(`verdocs-roles-sequence-${sequence}`);
69
69
  if (el) {
70
70
  new Sortable(el, {
@@ -168,12 +168,13 @@ export class VerdocsTemplateRoles {
168
168
  // e.g. 1.5 to place it between items 1 and 2, 0.5 to place it at the beginning, or last+0.5 to place it at the end.
169
169
  // Then we re-sort the list of roles and renumber them.
170
170
  async renumberTemplateRoles() {
171
+ var _a;
171
172
  const sortableRoles = {};
172
173
  const renumberRequests = [];
173
174
  const sequenceNumbers = this.getSequenceNumbers();
174
175
  console.log('Sorting sequences', sequenceNumbers);
175
- sequenceNumbers.forEach(targetSeq => {
176
- sortableRoles[targetSeq].forEach((role, targetOrderMinusOne) => {
176
+ (sequenceNumbers || []).forEach(targetSeq => {
177
+ (sortableRoles[targetSeq] || []).forEach((role, targetOrderMinusOne) => {
177
178
  const targetOrder = +targetOrderMinusOne + 1;
178
179
  if (role.sequence !== +targetSeq || role.order !== targetOrder) {
179
180
  console.log('[ROLES] Updating role', role.name, 'from', role.sequence, role.order, 'to', targetSeq, targetOrder);
@@ -187,7 +188,7 @@ export class VerdocsTemplateRoles {
187
188
  });
188
189
  console.log('Sortable Roles', sortableRoles);
189
190
  console.log(`[ROLES] Awaiting ${renumberRequests.length} renumber requests`);
190
- return Promise.all(renumberRequests).then(async () => {
191
+ await Promise.all(renumberRequests).then(async () => {
191
192
  // When renumbering, we don't try to update the store for every individual item
192
193
  // changing. We just do it once at the end.
193
194
  const newTemplate = JSON.parse(JSON.stringify(this.template));
@@ -197,35 +198,7 @@ export class VerdocsTemplateRoles {
197
198
  // TODO: Explore race condition in reordering roles
198
199
  // this.template = await Store.getTemplate(this.endpoint, this.templateId, true);
199
200
  });
200
- // // Avoid dupe renumber attempts
201
- // const renumbered = [];
202
- //
203
- // // If the user dragged an entry from below a row to above it, we end up here like [1,0]. Make sure it's [0,1] for the next operation.
204
- // const renumberRequests = [];
205
- // this.getSequenceNumbers().forEach((originalSequence, newSequenceIndex) => {
206
- // this.getRolesAtSequence(originalSequence).forEach((role, newOrderIndex) => {
207
- // if (!renumbered.includes(role.name)) {
208
- // if (role.sequence !== newSequenceIndex + 1 || role.order !== newOrderIndex + 1) {
209
- // role.sequence = newSequenceIndex + 1;
210
- // role.order = newOrderIndex + 1;
211
- // renumbered.push(role.name);
212
- // // console.log('[ROLES] Renumbering', role.name, targetSequence, targetOrder);
213
- // renumberRequests.push(updateTemplateRole(this.endpoint, this.templateId, role.name, {sequence: role.sequence, order: role.order}));
214
- // }
215
- // }
216
- // });
217
- // });
218
- //
219
- // if (renumberRequests.length > 0) {
220
- // console.log(`[ROLES] Submitting ${renumberRequests.length} renumber requests`);
221
- // return Promise.all(renumberRequests).then(async () => {
222
- // // When renumbering, we don't try to update the store for every individual item
223
- // // changing. We just do it once at the end.
224
- // this.template = await Store.getTemplate(this.endpoint, this.templateId, true);
225
- // });
226
- // }
227
- //
228
- // return true;
201
+ (_a = this.rolesUpdated) === null || _a === void 0 ? void 0 : _a.emit({ event: 'updated', endpoint: this.endpoint, templateId: this.templateId, roles: this.getSortedRoles() });
229
202
  }
230
203
  // Look for name conflicts, because they're UGC and can be anything, regardless of order.
231
204
  getNextRoleName() {
@@ -258,13 +231,14 @@ export class VerdocsTemplateRoles {
258
231
  .then(async (role) => {
259
232
  var _a;
260
233
  console.log('[ROLES] Created role', role);
261
- const newTemplate = JSON.parse(JSON.stringify(this.template));
262
- newTemplate.roles.push(role);
234
+ // const newTemplate = JSON.parse(JSON.stringify(this.template));
235
+ // newTemplate.roles.push(role);
263
236
  // TODO: Verify this immediately triggers a self-update
264
237
  console.log('Updating template in data store');
265
- Store.updateTemplate(this.templateId, newTemplate);
238
+ await Store.getTemplate(this.endpoint, this.templateId, true);
239
+ // Store.updateTemplate(this.templateId, newTemplate);
266
240
  // This will re-sort the roles and renumbers them via server calls if necessary
267
- await this.renumberTemplateRoles();
241
+ // await this.renumberTemplateRoles();
268
242
  (_a = this.rolesUpdated) === null || _a === void 0 ? void 0 : _a.emit({ event: 'added', endpoint: this.endpoint, templateId: this.templateId, roles: this.getSortedRoles() });
269
243
  })
270
244
  .catch(e => {
@@ -298,7 +272,7 @@ export class VerdocsTemplateRoles {
298
272
  return (h(Host, { class: { dragging: this.dragging } }, h("form", { onSubmit: e => e.preventDefault(), onClick: e => e.stopPropagation(), autocomplete: "off" }, h("h5", null, "Roles and Workflow"), h("div", { class: "roles" }, sequences.map(sequence => (h("div", { class: "sequence" }, h("div", { class: "sequence-label no-drag" }, sequence, "."), h("div", { class: "sequence-roles", id: `verdocs-roles-sequence-${sequence}`, "data-sequence": sequence }, this.getRolesAtSequence(sequence).map(role => {
299
273
  const unknown = !role.email;
300
274
  return unknown ? (h("div", { class: "role", "data-rolename": role.name, "data-sequence": sequence, "data-order": role.order }, h("div", { class: "role-name" }, role.name), h("div", { class: "icons" }, h("div", { class: "gear-button", innerHTML: settingsIcon, onClick: () => (this.showingRoleDialog = role.name), "aria-role": "button" }), h("span", { class: "type-icon", innerHTML: role.type === 'signer' ? iconSigner : role.type === 'cc' ? iconCC : iconApprover })))) : (h("div", { class: "role", "data-rolename": role.name, "data-sequence": sequence, "data-order": role.order }, h("div", { class: "role-name" }, formatFullName(role)), h("div", { class: "icons" }, h("div", { class: "gear-button", innerHTML: settingsIcon, onClick: () => (this.showingRoleDialog = role.name), "aria-role": "button" }), h("span", { class: "type-icon", innerHTML: role.type === 'signer' ? iconSigner : role.type === 'cc' ? iconCC : iconApprover }))));
301
- })), h("button", { class: "add-role no-drag", innerHTML: plusIcon, onClick: e => this.handleAddRole(e, sequence) })))), h("div", { class: "sequence add-sequence" }, h("div", { class: "sequence-label no-drag" }, sequences.length + 1, "."), h("div", { class: "sequence-roles", id: `verdocs-roles-sequence-${sequences.length + 1}`, "data-sequence": sequences.length + 1 }, h("div", { class: "role-name add-step-label" }, "Add Step.")), h("button", { class: "add-role no-drag", innerHTML: plusIcon, onClick: e => this.handleAddRole(e, sequences.length + 1) }))), roleNames.length < 1 && (h("div", { class: "empty" }, "You must add at least one Role before proceeding.", h("br", null), " Click the ", h("span", { innerHTML: plusIcon }), " Add button above to get started.")), h("div", { class: "buttons" }, h("div", { class: "flex-fill" }), h("verdocs-button", { variant: "outline", label: "Cancel", size: "small", onClick: () => this.handleCancel() }), h("verdocs-button", { label: "OK", size: "small", onClick: () => this.handleSubmit(), disabled: roleNames.length < 1 }))), this.showingRoleDialog && (h("verdocs-menu-panel", { onClose: () => (this.showingRoleDialog = null) }, h("verdocs-template-role-properties", { endpoint: this.endpoint, templateId: this.templateId, roleName: this.showingRoleDialog, onClose: () => {
275
+ })), h("button", { class: "add-role no-drag", innerHTML: plusIcon, onClick: e => this.handleAddRole(e, sequence) })))), h("div", { class: "sequence add-sequence" }, h("div", { class: "sequence-label no-drag" }, sequences.length + 1, "."), h("div", { class: "sequence-roles", id: `verdocs-roles-sequence-${sequences.length + 1}`, "data-sequence": sequences.length + 1 }), h("button", { class: "add-role no-drag", innerHTML: plusIcon, onClick: e => this.handleAddRole(e, sequences.length + 1) }))), roleNames.length < 1 && (h("div", { class: "empty" }, "You must add at least one Role before proceeding.", h("br", null), " Click the ", h("span", { innerHTML: plusIcon }), " Add button above to get started.")), h("div", { class: "buttons" }, h("div", { class: "flex-fill" }), h("verdocs-button", { variant: "outline", label: "Cancel", size: "small", onClick: () => this.handleCancel() }), h("verdocs-button", { label: "OK", size: "small", onClick: () => this.handleSubmit(), disabled: roleNames.length < 1 }))), this.showingRoleDialog && (h("verdocs-menu-panel", { onClose: () => (this.showingRoleDialog = null) }, h("verdocs-template-role-properties", { endpoint: this.endpoint, templateId: this.templateId, roleName: this.showingRoleDialog, onClose: () => {
302
276
  var _a;
303
277
  (_a = document.getElementById('verdocs-menu-panel-overlay')) === null || _a === void 0 ? void 0 : _a.remove();
304
278
  this.showingRoleDialog = null;
@@ -2741,7 +2741,7 @@ const VerdocsTemplateRoles = /*@__PURE__*/ proxyCustomElement(class VerdocsTempl
2741
2741
  componentDidRender() {
2742
2742
  // Existing sequence numbers
2743
2743
  const sequenceNumbers = this.getSequenceNumbers();
2744
- sequenceNumbers.forEach(sequence => {
2744
+ (sequenceNumbers || []).forEach(sequence => {
2745
2745
  const el = document.getElementById(`verdocs-roles-sequence-${sequence}`);
2746
2746
  if (el) {
2747
2747
  new Sortable(el, {
@@ -2845,12 +2845,13 @@ const VerdocsTemplateRoles = /*@__PURE__*/ proxyCustomElement(class VerdocsTempl
2845
2845
  // e.g. 1.5 to place it between items 1 and 2, 0.5 to place it at the beginning, or last+0.5 to place it at the end.
2846
2846
  // Then we re-sort the list of roles and renumber them.
2847
2847
  async renumberTemplateRoles() {
2848
+ var _a;
2848
2849
  const sortableRoles = {};
2849
2850
  const renumberRequests = [];
2850
2851
  const sequenceNumbers = this.getSequenceNumbers();
2851
2852
  console.log('Sorting sequences', sequenceNumbers);
2852
- sequenceNumbers.forEach(targetSeq => {
2853
- sortableRoles[targetSeq].forEach((role, targetOrderMinusOne) => {
2853
+ (sequenceNumbers || []).forEach(targetSeq => {
2854
+ (sortableRoles[targetSeq] || []).forEach((role, targetOrderMinusOne) => {
2854
2855
  const targetOrder = +targetOrderMinusOne + 1;
2855
2856
  if (role.sequence !== +targetSeq || role.order !== targetOrder) {
2856
2857
  console.log('[ROLES] Updating role', role.name, 'from', role.sequence, role.order, 'to', targetSeq, targetOrder);
@@ -2864,7 +2865,7 @@ const VerdocsTemplateRoles = /*@__PURE__*/ proxyCustomElement(class VerdocsTempl
2864
2865
  });
2865
2866
  console.log('Sortable Roles', sortableRoles);
2866
2867
  console.log(`[ROLES] Awaiting ${renumberRequests.length} renumber requests`);
2867
- return Promise.all(renumberRequests).then(async () => {
2868
+ await Promise.all(renumberRequests).then(async () => {
2868
2869
  // When renumbering, we don't try to update the store for every individual item
2869
2870
  // changing. We just do it once at the end.
2870
2871
  const newTemplate = JSON.parse(JSON.stringify(this.template));
@@ -2874,35 +2875,7 @@ const VerdocsTemplateRoles = /*@__PURE__*/ proxyCustomElement(class VerdocsTempl
2874
2875
  // TODO: Explore race condition in reordering roles
2875
2876
  // this.template = await Store.getTemplate(this.endpoint, this.templateId, true);
2876
2877
  });
2877
- // // Avoid dupe renumber attempts
2878
- // const renumbered = [];
2879
- //
2880
- // // If the user dragged an entry from below a row to above it, we end up here like [1,0]. Make sure it's [0,1] for the next operation.
2881
- // const renumberRequests = [];
2882
- // this.getSequenceNumbers().forEach((originalSequence, newSequenceIndex) => {
2883
- // this.getRolesAtSequence(originalSequence).forEach((role, newOrderIndex) => {
2884
- // if (!renumbered.includes(role.name)) {
2885
- // if (role.sequence !== newSequenceIndex + 1 || role.order !== newOrderIndex + 1) {
2886
- // role.sequence = newSequenceIndex + 1;
2887
- // role.order = newOrderIndex + 1;
2888
- // renumbered.push(role.name);
2889
- // // console.log('[ROLES] Renumbering', role.name, targetSequence, targetOrder);
2890
- // renumberRequests.push(updateTemplateRole(this.endpoint, this.templateId, role.name, {sequence: role.sequence, order: role.order}));
2891
- // }
2892
- // }
2893
- // });
2894
- // });
2895
- //
2896
- // if (renumberRequests.length > 0) {
2897
- // console.log(`[ROLES] Submitting ${renumberRequests.length} renumber requests`);
2898
- // return Promise.all(renumberRequests).then(async () => {
2899
- // // When renumbering, we don't try to update the store for every individual item
2900
- // // changing. We just do it once at the end.
2901
- // this.template = await Store.getTemplate(this.endpoint, this.templateId, true);
2902
- // });
2903
- // }
2904
- //
2905
- // return true;
2878
+ (_a = this.rolesUpdated) === null || _a === void 0 ? void 0 : _a.emit({ event: 'updated', endpoint: this.endpoint, templateId: this.templateId, roles: this.getSortedRoles() });
2906
2879
  }
2907
2880
  // Look for name conflicts, because they're UGC and can be anything, regardless of order.
2908
2881
  getNextRoleName() {
@@ -2935,13 +2908,14 @@ const VerdocsTemplateRoles = /*@__PURE__*/ proxyCustomElement(class VerdocsTempl
2935
2908
  .then(async (role) => {
2936
2909
  var _a;
2937
2910
  console.log('[ROLES] Created role', role);
2938
- const newTemplate = JSON.parse(JSON.stringify(this.template));
2939
- newTemplate.roles.push(role);
2911
+ // const newTemplate = JSON.parse(JSON.stringify(this.template));
2912
+ // newTemplate.roles.push(role);
2940
2913
  // TODO: Verify this immediately triggers a self-update
2941
2914
  console.log('Updating template in data store');
2942
- Store.updateTemplate(this.templateId, newTemplate);
2915
+ await Store.getTemplate(this.endpoint, this.templateId, true);
2916
+ // Store.updateTemplate(this.templateId, newTemplate);
2943
2917
  // This will re-sort the roles and renumbers them via server calls if necessary
2944
- await this.renumberTemplateRoles();
2918
+ // await this.renumberTemplateRoles();
2945
2919
  (_a = this.rolesUpdated) === null || _a === void 0 ? void 0 : _a.emit({ event: 'added', endpoint: this.endpoint, templateId: this.templateId, roles: this.getSortedRoles() });
2946
2920
  })
2947
2921
  .catch(e => {
@@ -2975,7 +2949,7 @@ const VerdocsTemplateRoles = /*@__PURE__*/ proxyCustomElement(class VerdocsTempl
2975
2949
  return (h(Host, { class: { dragging: this.dragging } }, h("form", { onSubmit: e => e.preventDefault(), onClick: e => e.stopPropagation(), autocomplete: "off" }, h("h5", null, "Roles and Workflow"), h("div", { class: "roles" }, sequences.map(sequence => (h("div", { class: "sequence" }, h("div", { class: "sequence-label no-drag" }, sequence, "."), h("div", { class: "sequence-roles", id: `verdocs-roles-sequence-${sequence}`, "data-sequence": sequence }, this.getRolesAtSequence(sequence).map(role => {
2976
2950
  const unknown = !role.email;
2977
2951
  return unknown ? (h("div", { class: "role", "data-rolename": role.name, "data-sequence": sequence, "data-order": role.order }, h("div", { class: "role-name" }, role.name), h("div", { class: "icons" }, h("div", { class: "gear-button", innerHTML: settingsIcon, onClick: () => (this.showingRoleDialog = role.name), "aria-role": "button" }), h("span", { class: "type-icon", innerHTML: role.type === 'signer' ? iconSigner : role.type === 'cc' ? iconCC : iconApprover })))) : (h("div", { class: "role", "data-rolename": role.name, "data-sequence": sequence, "data-order": role.order }, h("div", { class: "role-name" }, formatFullName(role)), h("div", { class: "icons" }, h("div", { class: "gear-button", innerHTML: settingsIcon, onClick: () => (this.showingRoleDialog = role.name), "aria-role": "button" }), h("span", { class: "type-icon", innerHTML: role.type === 'signer' ? iconSigner : role.type === 'cc' ? iconCC : iconApprover }))));
2978
- })), h("button", { class: "add-role no-drag", innerHTML: plusIcon, onClick: e => this.handleAddRole(e, sequence) })))), h("div", { class: "sequence add-sequence" }, h("div", { class: "sequence-label no-drag" }, sequences.length + 1, "."), h("div", { class: "sequence-roles", id: `verdocs-roles-sequence-${sequences.length + 1}`, "data-sequence": sequences.length + 1 }, h("div", { class: "role-name add-step-label" }, "Add Step.")), h("button", { class: "add-role no-drag", innerHTML: plusIcon, onClick: e => this.handleAddRole(e, sequences.length + 1) }))), roleNames.length < 1 && (h("div", { class: "empty" }, "You must add at least one Role before proceeding.", h("br", null), " Click the ", h("span", { innerHTML: plusIcon }), " Add button above to get started.")), h("div", { class: "buttons" }, h("div", { class: "flex-fill" }), h("verdocs-button", { variant: "outline", label: "Cancel", size: "small", onClick: () => this.handleCancel() }), h("verdocs-button", { label: "OK", size: "small", onClick: () => this.handleSubmit(), disabled: roleNames.length < 1 }))), this.showingRoleDialog && (h("verdocs-menu-panel", { onClose: () => (this.showingRoleDialog = null) }, h("verdocs-template-role-properties", { endpoint: this.endpoint, templateId: this.templateId, roleName: this.showingRoleDialog, onClose: () => {
2952
+ })), h("button", { class: "add-role no-drag", innerHTML: plusIcon, onClick: e => this.handleAddRole(e, sequence) })))), h("div", { class: "sequence add-sequence" }, h("div", { class: "sequence-label no-drag" }, sequences.length + 1, "."), h("div", { class: "sequence-roles", id: `verdocs-roles-sequence-${sequences.length + 1}`, "data-sequence": sequences.length + 1 }), h("button", { class: "add-role no-drag", innerHTML: plusIcon, onClick: e => this.handleAddRole(e, sequences.length + 1) }))), roleNames.length < 1 && (h("div", { class: "empty" }, "You must add at least one Role before proceeding.", h("br", null), " Click the ", h("span", { innerHTML: plusIcon }), " Add button above to get started.")), h("div", { class: "buttons" }, h("div", { class: "flex-fill" }), h("verdocs-button", { variant: "outline", label: "Cancel", size: "small", onClick: () => this.handleCancel() }), h("verdocs-button", { label: "OK", size: "small", onClick: () => this.handleSubmit(), disabled: roleNames.length < 1 }))), this.showingRoleDialog && (h("verdocs-menu-panel", { onClose: () => (this.showingRoleDialog = null) }, h("verdocs-template-role-properties", { endpoint: this.endpoint, templateId: this.templateId, roleName: this.showingRoleDialog, onClose: () => {
2979
2953
  var _a;
2980
2954
  (_a = document.getElementById('verdocs-menu-panel-overlay')) === null || _a === void 0 ? void 0 : _a.remove();
2981
2955
  this.showingRoleDialog = null;
@@ -37,7 +37,7 @@ import { d as defineCustomElement$a } from './p-cef9df4b.js';
37
37
  import { d as defineCustomElement$9 } from './p-052fcdac.js';
38
38
  import { d as defineCustomElement$8 } from './p-987a8392.js';
39
39
  import { d as defineCustomElement$7 } from './p-53585e13.js';
40
- import { d as defineCustomElement$6 } from './p-a06a0184.js';
40
+ import { d as defineCustomElement$6 } from './p-5de4d4ee.js';
41
41
  import { d as defineCustomElement$5 } from './p-325b3828.js';
42
42
  import { d as defineCustomElement$4 } from './p-c00770e6.js';
43
43
  import { d as defineCustomElement$3 } from './p-4d3b9ee9.js';
@@ -1,4 +1,4 @@
1
- import { V as VerdocsTemplateRoles$1, d as defineCustomElement$1 } from './p-a06a0184.js';
1
+ import { V as VerdocsTemplateRoles$1, d as defineCustomElement$1 } from './p-5de4d4ee.js';
2
2
 
3
3
  const VerdocsTemplateRoles = VerdocsTemplateRoles$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -3638,7 +3638,7 @@ const VerdocsTemplateRoles = class {
3638
3638
  componentDidRender() {
3639
3639
  // Existing sequence numbers
3640
3640
  const sequenceNumbers = this.getSequenceNumbers();
3641
- sequenceNumbers.forEach(sequence => {
3641
+ (sequenceNumbers || []).forEach(sequence => {
3642
3642
  const el = document.getElementById(`verdocs-roles-sequence-${sequence}`);
3643
3643
  if (el) {
3644
3644
  new Sortable(el, {
@@ -3742,12 +3742,13 @@ const VerdocsTemplateRoles = class {
3742
3742
  // e.g. 1.5 to place it between items 1 and 2, 0.5 to place it at the beginning, or last+0.5 to place it at the end.
3743
3743
  // Then we re-sort the list of roles and renumber them.
3744
3744
  async renumberTemplateRoles() {
3745
+ var _a;
3745
3746
  const sortableRoles = {};
3746
3747
  const renumberRequests = [];
3747
3748
  const sequenceNumbers = this.getSequenceNumbers();
3748
3749
  console.log('Sorting sequences', sequenceNumbers);
3749
- sequenceNumbers.forEach(targetSeq => {
3750
- sortableRoles[targetSeq].forEach((role, targetOrderMinusOne) => {
3750
+ (sequenceNumbers || []).forEach(targetSeq => {
3751
+ (sortableRoles[targetSeq] || []).forEach((role, targetOrderMinusOne) => {
3751
3752
  const targetOrder = +targetOrderMinusOne + 1;
3752
3753
  if (role.sequence !== +targetSeq || role.order !== targetOrder) {
3753
3754
  console.log('[ROLES] Updating role', role.name, 'from', role.sequence, role.order, 'to', targetSeq, targetOrder);
@@ -3761,7 +3762,7 @@ const VerdocsTemplateRoles = class {
3761
3762
  });
3762
3763
  console.log('Sortable Roles', sortableRoles);
3763
3764
  console.log(`[ROLES] Awaiting ${renumberRequests.length} renumber requests`);
3764
- return Promise.all(renumberRequests).then(async () => {
3765
+ await Promise.all(renumberRequests).then(async () => {
3765
3766
  // When renumbering, we don't try to update the store for every individual item
3766
3767
  // changing. We just do it once at the end.
3767
3768
  const newTemplate = JSON.parse(JSON.stringify(this.template));
@@ -3771,35 +3772,7 @@ const VerdocsTemplateRoles = class {
3771
3772
  // TODO: Explore race condition in reordering roles
3772
3773
  // this.template = await Store.getTemplate(this.endpoint, this.templateId, true);
3773
3774
  });
3774
- // // Avoid dupe renumber attempts
3775
- // const renumbered = [];
3776
- //
3777
- // // If the user dragged an entry from below a row to above it, we end up here like [1,0]. Make sure it's [0,1] for the next operation.
3778
- // const renumberRequests = [];
3779
- // this.getSequenceNumbers().forEach((originalSequence, newSequenceIndex) => {
3780
- // this.getRolesAtSequence(originalSequence).forEach((role, newOrderIndex) => {
3781
- // if (!renumbered.includes(role.name)) {
3782
- // if (role.sequence !== newSequenceIndex + 1 || role.order !== newOrderIndex + 1) {
3783
- // role.sequence = newSequenceIndex + 1;
3784
- // role.order = newOrderIndex + 1;
3785
- // renumbered.push(role.name);
3786
- // // console.log('[ROLES] Renumbering', role.name, targetSequence, targetOrder);
3787
- // renumberRequests.push(updateTemplateRole(this.endpoint, this.templateId, role.name, {sequence: role.sequence, order: role.order}));
3788
- // }
3789
- // }
3790
- // });
3791
- // });
3792
- //
3793
- // if (renumberRequests.length > 0) {
3794
- // console.log(`[ROLES] Submitting ${renumberRequests.length} renumber requests`);
3795
- // return Promise.all(renumberRequests).then(async () => {
3796
- // // When renumbering, we don't try to update the store for every individual item
3797
- // // changing. We just do it once at the end.
3798
- // this.template = await Store.getTemplate(this.endpoint, this.templateId, true);
3799
- // });
3800
- // }
3801
- //
3802
- // return true;
3775
+ (_a = this.rolesUpdated) === null || _a === void 0 ? void 0 : _a.emit({ event: 'updated', endpoint: this.endpoint, templateId: this.templateId, roles: this.getSortedRoles() });
3803
3776
  }
3804
3777
  // Look for name conflicts, because they're UGC and can be anything, regardless of order.
3805
3778
  getNextRoleName() {
@@ -3832,13 +3805,14 @@ const VerdocsTemplateRoles = class {
3832
3805
  .then(async (role) => {
3833
3806
  var _a;
3834
3807
  console.log('[ROLES] Created role', role);
3835
- const newTemplate = JSON.parse(JSON.stringify(this.template));
3836
- newTemplate.roles.push(role);
3808
+ // const newTemplate = JSON.parse(JSON.stringify(this.template));
3809
+ // newTemplate.roles.push(role);
3837
3810
  // TODO: Verify this immediately triggers a self-update
3838
3811
  console.log('Updating template in data store');
3839
- Store.updateTemplate(this.templateId, newTemplate);
3812
+ await Store.getTemplate(this.endpoint, this.templateId, true);
3813
+ // Store.updateTemplate(this.templateId, newTemplate);
3840
3814
  // This will re-sort the roles and renumbers them via server calls if necessary
3841
- await this.renumberTemplateRoles();
3815
+ // await this.renumberTemplateRoles();
3842
3816
  (_a = this.rolesUpdated) === null || _a === void 0 ? void 0 : _a.emit({ event: 'added', endpoint: this.endpoint, templateId: this.templateId, roles: this.getSortedRoles() });
3843
3817
  })
3844
3818
  .catch(e => {
@@ -3872,7 +3846,7 @@ const VerdocsTemplateRoles = class {
3872
3846
  return (h(Host, { class: { dragging: this.dragging } }, h("form", { onSubmit: e => e.preventDefault(), onClick: e => e.stopPropagation(), autocomplete: "off" }, h("h5", null, "Roles and Workflow"), h("div", { class: "roles" }, sequences.map(sequence => (h("div", { class: "sequence" }, h("div", { class: "sequence-label no-drag" }, sequence, "."), h("div", { class: "sequence-roles", id: `verdocs-roles-sequence-${sequence}`, "data-sequence": sequence }, this.getRolesAtSequence(sequence).map(role => {
3873
3847
  const unknown = !role.email;
3874
3848
  return unknown ? (h("div", { class: "role", "data-rolename": role.name, "data-sequence": sequence, "data-order": role.order }, h("div", { class: "role-name" }, role.name), h("div", { class: "icons" }, h("div", { class: "gear-button", innerHTML: settingsIcon, onClick: () => (this.showingRoleDialog = role.name), "aria-role": "button" }), h("span", { class: "type-icon", innerHTML: role.type === 'signer' ? iconSigner : role.type === 'cc' ? iconCC : iconApprover })))) : (h("div", { class: "role", "data-rolename": role.name, "data-sequence": sequence, "data-order": role.order }, h("div", { class: "role-name" }, formatFullName(role)), h("div", { class: "icons" }, h("div", { class: "gear-button", innerHTML: settingsIcon, onClick: () => (this.showingRoleDialog = role.name), "aria-role": "button" }), h("span", { class: "type-icon", innerHTML: role.type === 'signer' ? iconSigner : role.type === 'cc' ? iconCC : iconApprover }))));
3875
- })), h("button", { class: "add-role no-drag", innerHTML: plusIcon, onClick: e => this.handleAddRole(e, sequence) })))), h("div", { class: "sequence add-sequence" }, h("div", { class: "sequence-label no-drag" }, sequences.length + 1, "."), h("div", { class: "sequence-roles", id: `verdocs-roles-sequence-${sequences.length + 1}`, "data-sequence": sequences.length + 1 }, h("div", { class: "role-name add-step-label" }, "Add Step.")), h("button", { class: "add-role no-drag", innerHTML: plusIcon, onClick: e => this.handleAddRole(e, sequences.length + 1) }))), roleNames.length < 1 && (h("div", { class: "empty" }, "You must add at least one Role before proceeding.", h("br", null), " Click the ", h("span", { innerHTML: plusIcon }), " Add button above to get started.")), h("div", { class: "buttons" }, h("div", { class: "flex-fill" }), h("verdocs-button", { variant: "outline", label: "Cancel", size: "small", onClick: () => this.handleCancel() }), h("verdocs-button", { label: "OK", size: "small", onClick: () => this.handleSubmit(), disabled: roleNames.length < 1 }))), this.showingRoleDialog && (h("verdocs-menu-panel", { onClose: () => (this.showingRoleDialog = null) }, h("verdocs-template-role-properties", { endpoint: this.endpoint, templateId: this.templateId, roleName: this.showingRoleDialog, onClose: () => {
3849
+ })), h("button", { class: "add-role no-drag", innerHTML: plusIcon, onClick: e => this.handleAddRole(e, sequence) })))), h("div", { class: "sequence add-sequence" }, h("div", { class: "sequence-label no-drag" }, sequences.length + 1, "."), h("div", { class: "sequence-roles", id: `verdocs-roles-sequence-${sequences.length + 1}`, "data-sequence": sequences.length + 1 }), h("button", { class: "add-role no-drag", innerHTML: plusIcon, onClick: e => this.handleAddRole(e, sequences.length + 1) }))), roleNames.length < 1 && (h("div", { class: "empty" }, "You must add at least one Role before proceeding.", h("br", null), " Click the ", h("span", { innerHTML: plusIcon }), " Add button above to get started.")), h("div", { class: "buttons" }, h("div", { class: "flex-fill" }), h("verdocs-button", { variant: "outline", label: "Cancel", size: "small", onClick: () => this.handleCancel() }), h("verdocs-button", { label: "OK", size: "small", onClick: () => this.handleSubmit(), disabled: roleNames.length < 1 }))), this.showingRoleDialog && (h("verdocs-menu-panel", { onClose: () => (this.showingRoleDialog = null) }, h("verdocs-template-role-properties", { endpoint: this.endpoint, templateId: this.templateId, roleName: this.showingRoleDialog, onClose: () => {
3876
3850
  var _a;
3877
3851
  (_a = document.getElementById('verdocs-menu-panel-overlay')) === null || _a === void 0 ? void 0 : _a.remove();
3878
3852
  this.showingRoleDialog = null;