legalesign-document-viewer 0.10.1 → 0.10.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/dist/cjs/ls-add-new-button_51.cjs.entry.js +6 -4
  2. package/dist/collection/components/ls-document-viewer/adapter/elementActions.js +3 -3
  3. package/dist/collection/components/ls-document-viewer/adapter/elementActions.js.map +1 -1
  4. package/dist/collection/components/ls-document-viewer/mouseHandlers.js +2 -0
  5. package/dist/collection/components/ls-document-viewer/mouseHandlers.js.map +1 -1
  6. package/dist/components/ls-document-viewer.js +8 -8
  7. package/dist/components/ls-document-viewer.js.map +1 -1
  8. package/dist/components/ls-field-distribute.js +1 -1
  9. package/dist/components/ls-field-properties-multiple.js +1 -1
  10. package/dist/components/ls-field-properties.js +1 -1
  11. package/dist/components/ls-left-bar.js +1 -1
  12. package/dist/components/ls-statusbar.js +1 -1
  13. package/dist/components/{p-Bi-96wyB.js → p-BnrAwLD3.js} +4 -4
  14. package/dist/components/{p-Bi-96wyB.js.map → p-BnrAwLD3.js.map} +1 -1
  15. package/dist/components/{p-Bn-sVQSR.js → p-DKbMooLM.js} +5 -5
  16. package/dist/components/{p-Bn-sVQSR.js.map → p-DKbMooLM.js.map} +1 -1
  17. package/dist/components/{p-CsOp_TpT.js → p-DdS3vht-.js} +3 -3
  18. package/dist/components/{p-CsOp_TpT.js.map → p-DdS3vht-.js.map} +1 -1
  19. package/dist/components/{p-DV7g4lCp.js → p-Dn4CLyZh.js} +3 -3
  20. package/dist/components/{p-DV7g4lCp.js.map → p-Dn4CLyZh.js.map} +1 -1
  21. package/dist/components/{p-Ca0za3x4.js → p-j1rAIT-X.js} +4 -2
  22. package/dist/components/p-j1rAIT-X.js.map +1 -0
  23. package/dist/esm/ls-add-new-button_51.entry.js +6 -4
  24. package/dist/ls-document-viewer/ls-document-viewer.esm.js +1 -1
  25. package/dist/ls-document-viewer/{p-c107c4bd.entry.js → p-0db586a3.entry.js} +4 -4
  26. package/dist/ls-document-viewer/{p-c107c4bd.entry.js.map → p-0db586a3.entry.js.map} +1 -1
  27. package/package.json +1 -1
  28. package/dist/components/p-Ca0za3x4.js.map +0 -1
@@ -27565,6 +27565,8 @@ function toolboxDragStart(fieldData) {
27565
27565
  };
27566
27566
  const onKeyDown = (e) => {
27567
27567
  if (e.key === 'Escape') {
27568
+ e.preventDefault();
27569
+ e.stopPropagation();
27568
27570
  cleanup();
27569
27571
  }
27570
27572
  };
@@ -31694,7 +31696,7 @@ const Parameters = {
31694
31696
  endpoints: {
31695
31697
  graphQL: "https://dypxviim4zgwtpev7valhchaem.appsync-api.eu-west-2.amazonaws.com/graphql"}};
31696
31698
 
31697
- // Construct all mutations for a template element.
31699
+ // Construct all mutations for a template element. ADMIN is for sender fields
31698
31700
  const createElement = element => {
31699
31701
  return `
31700
31702
  mutation AddField {
@@ -31704,7 +31706,7 @@ const createElement = element => {
31704
31706
  ay: ${element.ay},
31705
31707
  bx: ${element.bx},
31706
31708
  by: ${element.by},
31707
- elementType: ${element?.signer !== 0 ? JSON.stringify(element.elementType) : 'admin'},
31709
+ elementType: ${element?.signer !== 0 ? JSON.stringify(element.elementType) : JSON.stringify('admin')},
31708
31710
  role: "1",
31709
31711
  label: ${JSON.stringify(element.label)},
31710
31712
  page: ${element.page},
@@ -31735,7 +31737,7 @@ const updateElement = element => {
31735
31737
  ay: ${element.ay},
31736
31738
  bx: ${element.bx},
31737
31739
  by: ${element.by},
31738
- elementType: ${element?.signer !== 0 ? JSON.stringify(element.elementType) : 'admin'},
31740
+ elementType: ${element?.signer !== 0 ? JSON.stringify(element.elementType) : JSON.stringify('admin')},
31739
31741
  label: ${JSON.stringify(element.label)},
31740
31742
  page: ${element.page},
31741
31743
  fieldOrder: ${element.fieldOrder ? element.fieldOrder : null},
@@ -46280,7 +46282,7 @@ const LsRecipientManager = class {
46280
46282
  };
46281
46283
  LsRecipientManager.style = lsRecipientManagerCss();
46282
46284
 
46283
- const version = "0.10.1";
46285
+ const version = "0.10.3";
46284
46286
 
46285
46287
  const lsStatusbarCss = () => `:host{position:fixed;z-index:1000;right:1rem;bottom:1rem;display:flex;flex-direction:row;gap:0.5rem;align-items:end;height:2.25rem;overflow:visible}.ls-dv-controls-bar{display:flex;flex-direction:row;background-color:white;border:1px solid var(--gray-30, #e0e2e5);box-shadow:0px 4px 16px rgba(0, 0, 0, 0.1);border-radius:1.125rem}*{margin:0;padding:0;box-sizing:border-box}.ls-dv-status-bar-section{display:flex;flex-direction:row;align-items:center;gap:0.75rem;padding:0.5rem 0.75rem}.ls-dv-controls-bar>:not(:nth-child(1)){border-left:1px solid var(--gray-30, #e0e2e5)}button{border:0}button:hover{color:var(--gray-100, #45484d);border-radius:0.625rem}button:disabled{color:var(--gray-40, #d8d9dc);cursor:not-allowed}input[type=range]{-webkit-appearance:none;width:100%;height:0.5rem;background:var(--gray-20, #edeff2);border-radius:0.25rem;outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:0.5rem;height:0.5rem;background:var(--gray-70, #939599);border-radius:50%;cursor:pointer}input[type=range]::-moz-range-thumb{width:0.5rem;height:0.5rem;background:var(--gray-70, #939599);border:none;border-radius:50%;cursor:pointer}input[type=range]::-moz-range-track{background:var(--gray-20, #edeff2);height:0.5rem;border-radius:0.25rem}input[type=range]::-webkit-slider-runnable-track{background:var(--gray-20, #edeff2);height:0.5rem;border-radius:0.25rem}p{color:var(--gray-80, #6f7176);font-family:var(--font-family);font-size:var(--text-sm);font-style:normal;font-weight:400;line-height:var(--text-sm-line-height)}span{color:var(--gray-80, #6f7176);font-family:var(--font-family);font-size:var(--text-sm);font-style:normal;font-weight:400;line-height:var(--text-sm-line-height)}a{color:var(--primary-60, #4456f6);font-size:var(--text-sm);font-style:normal;font-weight:400;line-height:var(--text-sm-line-height);cursor:pointer}a:hover{text-decoration:underline;color:var(--primary-70, #2134dc)}.ls-dv-button-link,.ls-dv-button-link:hover{all:unset}select{appearance:none;height:2.25rem}.ls-dv-input-wrapper{position:relative;width:fit-content}#selectorIcon{position:absolute;top:50%;right:0.675rem;transform:translateY(-50%);pointer-events:none;color:var(--gray-80, #6f7176)}#selectLeadingIcon{position:absolute;top:50%;left:0.675rem;transform:translateY(-50%);pointer-events:none;color:var(--gray-80, #6f7176)}.ls-dv-has-leading-icon{padding-left:2.5rem}button{all:unset;border:0;appearance:button;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--gray-80, #6f7176);text-transform:capitalize}button.ls-dv-tertiary-grey:hover{background:var(--gray-10, #f7f8fa)}.ls-dv-button-group{display:flex;border-radius:0.625rem;border:1px solid var(--gray-30, #e0e2e5);background:var(--white, #ffffff);overflow:clip}.ls-dv-button-group button{display:flex;background:transparent;border-radius:unset;padding:0.25rem 0.75rem;min-width:2.156rem;min-height:unset;color:var(--gray-80, #6f7176)}.ls-dv-button-group button:hover{background:var(--gray-10, #f7f8fa)}.ls-dv-button-group>:first-child{border-radius:0.625rem 0 0 0.625rem}.ls-dv-button-group>:last-child{border-radius:0 0.5rem 0.5rem 0}.ls-dv-button-group>:not(:first-child){border-left:1px solid var(--gray-30, #e0e2e5)}.ls-dv-thumbnail-popover{position:absolute;bottom:3rem;right:0;background:white;border:1px solid var(--gray-30, #e0e2e5);border-radius:1.75rem;box-shadow:0px 8px 24px rgba(0, 0, 0, 0.15);padding:0.75rem;z-index:1001;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.ls-dv-thumbnail-grid{background:var(--gray-10, #f7f8fa);padding:0.75rem;border-radius:1rem;border:1px solid var(--gray-30, #e0e2e5);display:grid;grid-template-columns:repeat(auto-fill, minmax(100px, 1fr));gap:1rem;overflow-y:auto;max-height:100%}.ls-dv-thumbnail-wrapper{display:flex;flex-direction:column;align-items:center;gap:0.25rem;cursor:pointer}.ls-dv-thumbnail-wrapper>span:last-child{font-size:var(--text-xs, 0.75rem);color:var(--gray-80, #6f7176);font-weight:500}.ls-dv-thumbnail{border:1px solid var(--gray-30, #e0e2e5);border-radius:0.5rem;cursor:pointer;transition:border-color 0.15s}.ls-dv-thumbnail:hover{border-color:var(--primary-40, #79adfc);box-shadow:0 0 0 2px rgba(163, 180, 249, 0.3)}.ls-dv-thumbnail.active{border-color:var(--primary-60, #4456f6);outline:0.25rem solid var(--primary-30, #9dc3fc);box-shadow:var(--shadow-md)}.ls-dv-thumbnail-dots{display:flex;gap:3px;justify-content:center;flex-wrap:wrap;margin-top:0.25rem}.ls-dv-thumbnail-dot{width:0.5rem;height:0.5rem;border-radius:50%;display:inline-block;border:2px solid var(--dot-color-60);background-color:var(--dot-color-40)}.ls-dv-version{position:absolute;bottom:100%;right:0;color:var(--gray-50, #afb0b2);font-size:0.625rem;padding-bottom:0.25rem}`;
46286
46288
 
@@ -1,4 +1,4 @@
1
- // Construct all mutations for a template element.
1
+ // Construct all mutations for a template element. ADMIN is for sender fields
2
2
  const createElement = element => {
3
3
  return `
4
4
  mutation AddField {
@@ -8,7 +8,7 @@ const createElement = element => {
8
8
  ay: ${element.ay},
9
9
  bx: ${element.bx},
10
10
  by: ${element.by},
11
- elementType: ${element?.signer !== 0 ? JSON.stringify(element.elementType) : 'admin'},
11
+ elementType: ${element?.signer !== 0 ? JSON.stringify(element.elementType) : JSON.stringify('admin')},
12
12
  role: "1",
13
13
  label: ${JSON.stringify(element.label)},
14
14
  page: ${element.page},
@@ -39,7 +39,7 @@ const updateElement = element => {
39
39
  ay: ${element.ay},
40
40
  bx: ${element.bx},
41
41
  by: ${element.by},
42
- elementType: ${element?.signer !== 0 ? JSON.stringify(element.elementType) : 'admin'},
42
+ elementType: ${element?.signer !== 0 ? JSON.stringify(element.elementType) : JSON.stringify('admin')},
43
43
  label: ${JSON.stringify(element.label)},
44
44
  page: ${element.page},
45
45
  fieldOrder: ${element.fieldOrder ? element.fieldOrder : null},
@@ -1 +1 @@
1
- {"version":3,"file":"elementActions.js","sourceRoot":"","sources":["../../../../../src/components/ls-document-viewer/adapter/elementActions.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,MAAM,aAAa,GAAG,OAAO,CAAC,EAAE;IAC9B,OAAO;;;qBAGY,OAAO,CAAC,UAAU;YAC3B,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,EAAE;qBACD,OAAO,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO;;eAE3E,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;cAC9B,OAAO,CAAC,IAAI;oBACN,OAAO,CAAC,UAAU;kBACpB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;kBAChC,OAAO,CAAC,QAAQ;kBAChB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAC9B,OAAO,CAAC,UAAU;oBAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC;eACvC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;kBAC1B,OAAO,CAAC,QAAQ;iBACjB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC;qBAC3B,OAAO,CAAC,WAAW;oBACpB,OAAO,CAAC,UAAU;eACvB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;eAC7B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC5B,OAAO,CAAC,MAAM;qBACT,OAAO,CAAC,WAAW;oBACpB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC;IAClD,CAAC;AACL,CAAC,CAAC;AAEF,iCAAiC;AACjC,MAAM,aAAa,GAAG,OAAO,CAAC,EAAE;IAC9B,OAAO;;0BAEiB,OAAO,CAAC,EAAE;UAC1B,OAAO,CAAC,EAAE;UACV,OAAO,CAAC,EAAE;UACV,OAAO,CAAC,EAAE;UACV,OAAO,CAAC,EAAE;mBACD,OAAO,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO;aAC3E,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;YAC9B,OAAO,CAAC,IAAI;kBACN,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;gBAChD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAChC,OAAO,CAAC,QAAQ;iBACf,OAAO,CAAC,QAAQ;kBACf,OAAO,CAAC,UAAU;kBAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC;cACtC,OAAO,CAAC,KAAK;gBACX,OAAO,CAAC,QAAQ;eACjB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC;;mBAE3B,OAAO,CAAC,WAAW;kBACpB,OAAO,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU;cAC5D,OAAO,CAAC,KAAK;cACb,OAAO,CAAC,KAAK;cACb,OAAO,CAAC,MAAM;mBACT,OAAO,CAAC,WAAW;mBACnB,OAAO,CAAC,UAAU;EACnC,CAAC;AACH,CAAC,CAAC;AAEF,iCAAiC;AACjC,MAAM,aAAa,GAAG,GAAG,CAAC,EAAE;IAC1B,OAAO;;0BAEiB,GAAG,CAAC,EAAE;IAC5B,CAAC;AACL,CAAC,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC","sourcesContent":["// Construct all mutations for a template element.\nconst createElement = element => {\n return `\n mutation AddField {\n createTemplateElement(input: {\n templateId: \"${element.templateId}\", \n ax: ${element.ax}, \n ay: ${element.ay}, \n bx: ${element.bx}, \n by: ${element.by}, \n elementType: ${element?.signer !== 0 ? JSON.stringify(element.elementType) : 'admin'}, \n role: \"1\",\n label: ${JSON.stringify(element.label)}, \n page: ${element.page}, \n fieldOrder: ${element.fieldOrder}, \n fontName: ${JSON.stringify(element.fontName)}, \n fontSize: ${element.fontSize}, \n helpText: ${JSON.stringify(element.helpText)}, \n hideBorder: ${element.hideBorder}, \n logicGroup: ${JSON.stringify(element.logicGroup)}, \n mapTo: ${JSON.stringify(element.mapTo)}, \n optional: ${element.optional}, \n options: ${JSON.stringify(element.options)}, \n substantive: ${element.substantive}, \n validation: ${element.validation}, \n value: ${JSON.stringify(element.value)}, \n align: ${JSON.stringify(element.align)}, \n signer: ${element.signer}, \n logicAction: ${element.logicAction}, \n labelExtra: ${JSON.stringify(element.labelExtra)}})\n }`;\n};\n\n// Save any changes to an element\nconst updateElement = element => {\n return `mutation ChangeField {\n updateTemplateElement(input: {\n templateElementId: \"${element.id}\", \n ax: ${element.ax}, \n ay: ${element.ay}, \n bx: ${element.bx}, \n by: ${element.by}, \n elementType: ${element?.signer !== 0 ? JSON.stringify(element.elementType) : 'admin'}, \n label: ${JSON.stringify(element.label)}, \n page: ${element.page}, \n fieldOrder: ${element.fieldOrder ? element.fieldOrder : null}, \n fontName: ${JSON.stringify(element.fontName)}, \n fontSize: ${element.fontSize}, \n helpText: \"${element.helpText}\", \n hideBorder: ${element.hideBorder}, \n logicGroup: ${JSON.stringify(element.logicGroup)}, \n mapTo: \"${element.mapTo}\", \n optional: ${element.optional}, \n options: ${JSON.stringify(element.options)}, \n role: \"1\", \n substantive: ${element.substantive}, \n validation: ${element.validation === '0' ? 'null' : element.validation}, \n value: \"${element.value}\", \n align: \"${element.align}\", \n signer: ${element.signer}, \n logicAction: ${element.logicAction}, \n labelExtra: \"${element.labelExtra}\"})\n}`;\n};\n\n// Save any changes to an element\nconst deleteElement = obj => {\n return `mutation DeleteField {\n deleteTemplateElement(input: {\n templateElementId: \"${obj.id}\"})\n }`;\n};\n\nexport { createElement, updateElement, deleteElement };\n"]}
1
+ {"version":3,"file":"elementActions.js","sourceRoot":"","sources":["../../../../../src/components/ls-document-viewer/adapter/elementActions.ts"],"names":[],"mappings":"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","sourcesContent":["// Construct all mutations for a template element. ADMIN is for sender fields\nconst createElement = element => {\n return `\n mutation AddField {\n createTemplateElement(input: {\n templateId: \"${element.templateId}\", \n ax: ${element.ax}, \n ay: ${element.ay}, \n bx: ${element.bx}, \n by: ${element.by}, \n elementType: ${element?.signer !== 0 ? JSON.stringify(element.elementType) : JSON.stringify('admin')}, \n role: \"1\",\n label: ${JSON.stringify(element.label)}, \n page: ${element.page}, \n fieldOrder: ${element.fieldOrder}, \n fontName: ${JSON.stringify(element.fontName)}, \n fontSize: ${element.fontSize}, \n helpText: ${JSON.stringify(element.helpText)}, \n hideBorder: ${element.hideBorder}, \n logicGroup: ${JSON.stringify(element.logicGroup)}, \n mapTo: ${JSON.stringify(element.mapTo)}, \n optional: ${element.optional}, \n options: ${JSON.stringify(element.options)}, \n substantive: ${element.substantive}, \n validation: ${element.validation}, \n value: ${JSON.stringify(element.value)}, \n align: ${JSON.stringify(element.align)}, \n signer: ${element.signer}, \n logicAction: ${element.logicAction}, \n labelExtra: ${JSON.stringify(element.labelExtra)}})\n }`;\n};\n\n// Save any changes to an element\nconst updateElement = element => {\n return `mutation ChangeField {\n updateTemplateElement(input: {\n templateElementId: \"${element.id}\", \n ax: ${element.ax}, \n ay: ${element.ay}, \n bx: ${element.bx}, \n by: ${element.by}, \n elementType: ${element?.signer !== 0 ? JSON.stringify(element.elementType) : JSON.stringify('admin')}, \n label: ${JSON.stringify(element.label)}, \n page: ${element.page}, \n fieldOrder: ${element.fieldOrder ? element.fieldOrder : null}, \n fontName: ${JSON.stringify(element.fontName)}, \n fontSize: ${element.fontSize}, \n helpText: \"${element.helpText}\", \n hideBorder: ${element.hideBorder}, \n logicGroup: ${JSON.stringify(element.logicGroup)}, \n mapTo: \"${element.mapTo}\", \n optional: ${element.optional}, \n options: ${JSON.stringify(element.options)}, \n role: \"1\", \n substantive: ${element.substantive}, \n validation: ${element.validation === '0' ? 'null' : element.validation}, \n value: \"${element.value}\", \n align: \"${element.align}\", \n signer: ${element.signer}, \n logicAction: ${element.logicAction}, \n labelExtra: \"${element.labelExtra}\"})\n}`;\n};\n\n// Save any changes to an element\nconst deleteElement = obj => {\n return `mutation DeleteField {\n deleteTemplateElement(input: {\n templateElementId: \"${obj.id}\"})\n }`;\n};\n\nexport { createElement, updateElement, deleteElement };\n"]}
@@ -634,6 +634,8 @@ export function toolboxDragStart(fieldData) {
634
634
  };
635
635
  const onKeyDown = (e) => {
636
636
  if (e.key === 'Escape') {
637
+ e.preventDefault();
638
+ e.stopPropagation();
637
639
  cleanup();
638
640
  }
639
641
  };
@@ -1 +1 @@
1
- {"version":3,"file":"mouseHandlers.js","sourceRoot":"","sources":["../../../../src/components/ls-document-viewer/mouseHandlers.ts"],"names":[],"mappings":"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","sourcesContent":["import { LSApiElement } from '../../types/LSApiElement';\nimport { LSMutateEvent } from '../../types/LSMutateEvent';\nimport { findDimensions, findIn, recalculateCoordinates } from './editorCalculator';\nimport { IToolboxField } from '../interfaces/IToolboxField';\nimport { FIELD_DEFAULTS, DEFAULT_FONT_SIZE, DEFAULT_FONT_NAME } from '../../constants/fieldDefaults';\nimport { calculateSnap } from './snapHelper';\nimport { defaultRolePalette } from './defaultPalette';\n\nexport function updateSelectionBox() {\n var box = this.component.shadowRoot.getElementById('ls-box-selector') as HTMLElement;\n if (!this.selected || this.selected.length < 2) {\n box.style.visibility = 'hidden';\n return;\n }\n\n let minLeft = Infinity, minTop = Infinity, maxRight = -Infinity, maxBottom = -Infinity;\n\n this.selected.forEach(f => {\n const left = f.offsetLeft;\n const top = f.offsetTop;\n const right = left + f.offsetWidth;\n const bottom = top + f.offsetHeight;\n if (left < minLeft) minLeft = left;\n if (top < minTop) minTop = top;\n if (right > maxRight) maxRight = right;\n if (bottom > maxBottom) maxBottom = bottom;\n });\n\n box.style.left = minLeft + 'px';\n box.style.top = minTop + 'px';\n box.style.width = (maxRight - minLeft) + 'px';\n box.style.height = (maxBottom - minTop) + 'px';\n box.style.visibility = 'visible';\n}\n\nlet mousetimer = null;\n\nexport function debounce(data, delay) {\n if (mousetimer) clearTimeout(mousetimer);\n\n mousetimer = setTimeout(() => {\n this.mutate.emit([data]);\n }, delay);\n}\n\nexport function mouseDown(e) {\n if (e.offsetX < 0 || e.offsetY < 0) return;\n if (this._isToolboxDragging) return;\n // Disable mouse interactions in preview mode or when template is locked\n if (this.mode === 'preview' || this._template?.locked) {\n return;\n }\n // Ignore events originating from outside the document frame\n const frame = this.component.shadowRoot.getElementById('ls-document-frame');\n if (!frame || !e.composedPath().includes(frame)) return;\n // console.log('mousedown', e);\n\n // Find if this was\n // - a hit on a field edge RESIZE\n // - a hit on the middle of a field MOVE\n // - a hit on the background document SELECTMULTIPLE with a box\n this.hitField = null;\n const fields = this.component.shadowRoot.querySelectorAll('ls-editor-field');\n\n fields.forEach(f => {\n const { left, top, height, width, bottom, right } = f.getBoundingClientRect();\n const fdims = { left: f.offsetLeft, top: f.offsetTop, height, width, x: e.screenX, y: e.screenY };\n this.startMouse = fdims;\n // Scale edge threshold for small fields\n const edgeX = Math.min(8, width * 0.25);\n const edgeY = Math.min(8, height * 0.25);\n // corners (check before edges)\n if (Math.abs(e.clientX - right) < edgeX && Math.abs(e.clientY - bottom) < edgeY) {\n this.edgeSide = 'se';\n this.hitField = f;\n } else if (Math.abs(e.clientX - left) < edgeX && Math.abs(e.clientY - top) < edgeY) {\n this.edgeSide = 'nw';\n this.hitField = f;\n } else if (Math.abs(e.clientX - right) < edgeX && Math.abs(e.clientY - top) < edgeY) {\n this.edgeSide = 'ne';\n this.hitField = f;\n } else if (Math.abs(e.clientX - left) < edgeX && Math.abs(e.clientY - bottom) < edgeY) {\n this.edgeSide = 'sw';\n this.hitField = f;\n // west edge\n } else if (Math.abs(e.clientX - left) < edgeX && e.clientY >= top && e.clientY <= bottom) {\n this.edgeSide = 'w';\n this.hitField = f;\n // right / east edge\n } else if (Math.abs(e.clientX - right) < edgeX && e.clientY >= top && e.clientY <= bottom) {\n this.edgeSide = 'e';\n this.hitField = f;\n // north edge\n } else if (Math.abs(e.clientY - top) < edgeY && e.clientX >= left && e.clientX <= right) {\n this.edgeSide = 'n';\n this.hitField = f;\n // south edge\n } else if (Math.abs(e.clientY - bottom) < edgeY && e.clientX >= left && e.clientX <= right) {\n this.edgeSide = 's';\n this.hitField = f;\n } else if (e.clientY <= bottom && e.clientY >= top && e.clientX >= left && e.clientX <= right) {\n this.edgeSide = null;\n this.hitField = f;\n }\n });\n\n if (this.hitField && e.shiftKey === false) {\n var box = this.component.shadowRoot.getElementById('ls-box-selector') as HTMLElement;\n box.style.visibility = 'hidden';\n\n // mouse down on a field, select it and note the start location\n if (this.hitField.selected === false) {\n // unselect all other fields\n fields.forEach(fu => {\n fu.selected = false;\n });\n this.selected = [this.hitField];\n this.selectFields.emit([this.hitField.dataItem]);\n }\n\n const { height, width } = this.hitField.getBoundingClientRect();\n const fdims = { left: this.hitField.offsetLeft, top: this.hitField.offsetTop, height, width, x: e.screenX, y: e.screenY };\n this.startMouse = fdims;\n\n this.startLocations = this.selected.map(f => {\n const { height, width } = f.getBoundingClientRect();\n const beHtml = f as HTMLElement;\n return { top: beHtml.offsetTop, left: beHtml.offsetLeft, height, width };\n });\n this.selectionBox = null;\n } else if (this.hitField && e.shiftKey === true) {\n var box = this.component.shadowRoot.getElementById('ls-box-selector') as HTMLElement;\n box.style.visibility = 'hidden';\n\n // mouse down on a field, select it and note the start location\n if (this.hitField.selected === false) {\n // unselect all other fields\n fields.forEach(fu => {\n fu.selected = false;\n });\n this.selected = [...this.selected, this.hitField];\n this.selectFields.emit([...this.selected.map(si => si.dataItem), this.hitField.dataItem]);\n }\n\n const { height, width } = this.hitField.getBoundingClientRect();\n const fdims = { left: this.hitField.offsetLeft, top: this.hitField.offsetTop, height, width, x: e.screenX, y: e.screenY };\n this.startMouse = fdims;\n\n this.startLocations = this.selected.map(f => {\n const { height, width } = f.getBoundingClientRect();\n const beHtml = f as HTMLElement;\n return { top: beHtml.offsetTop, left: beHtml.offsetLeft, height, width };\n });\n this.selectionBox = null;\n } else {\n // move down on empty space, start a selection box\n this.startLocations = null;\n this.startMouse = null;\n this.selectionBox = { x: e.clientX, y: e.clientY };\n // console.log('empty space reset selected', this.selectionBox);\n this.unselect();\n\n this.selectFields.emit([]);\n this.selected = [];\n this.component.style.cursor = 'crosshair';\n updateSelectionBox.bind(this)();\n }\n}\n\nexport function outOfBounds(futureField) {\n return (\n futureField.height <= 5 ||\n futureField.left < 0 ||\n futureField.top < 0 ||\n futureField.left + futureField.width >= futureField.pageDimensions.width ||\n futureField.top + futureField.height >= futureField.pageDimensions.height\n );\n}\nexport function mouseMove(event) {\n event.preventDefault();\n if (this._isToolboxDragging) return;\n // Disable mouse move interactions in preview mode or when template is locked\n if (this.mode === 'preview' || this._template?.locked) {\n return;\n }\n\n // We have the mouse held down on a field edge to resize it.\n if (this.hitField && this.edgeSide && this.startMouse && event.buttons === 1) {\n const movedX = event.screenX - this.startMouse.x;\n const movedY = event.screenY - this.startMouse.y;\n var width = this.hitField.dataItem.width;\n var height = this.hitField.dataItem.height;\n var scale = this.hitField.dataItem.formElementType === 'signature' && this._template.fixSignatureScale;\n\n switch (this.edgeSide) {\n case 'n':\n if (outOfBounds({ ...this.hitField.dataItem, top: (this.startMouse.top + movedY) / this.zoom, height: (this.startMouse.height - movedY) / this.zoom })) break;\n this.hitField.style.top = this.startMouse.top + movedY + 'px';\n this.hitField.style.height = this.startMouse.height - movedY + 'px';\n\n if (scale) {\n width = (this.startMouse.height - movedY) * 3.8;\n this.hitField.style.width = width + 'px';\n }\n this.hitField.dataItem = { ...this.hitField.dataItem, top: (this.startMouse.top + movedY) / this.zoom, height: (this.startMouse.height - movedY) / this.zoom, width };\n break;\n case 's':\n if (outOfBounds({ ...this.hitField.dataItem, height: (this.startMouse.height + movedY) / this.zoom })) break;\n\n this.hitField.style.height = this.startMouse.height + movedY + 'px';\n if (scale) {\n width = (this.startMouse.height + movedY) * 3.8;\n this.hitField.style.width = width + 'px';\n }\n\n this.hitField.dataItem = { ...this.hitField.dataItem, height: (this.startMouse.height + movedY) / this.zoom, width };\n break;\n case 'e':\n if (outOfBounds({ ...this.hitField.dataItem, width: (this.startMouse.width + movedX) / this.zoom })) break;\n\n this.hitField.style.width = this.startMouse.width + movedX + 'px';\n if (scale) {\n height = Math.round((this.startMouse.width + movedX) / 3.8);\n this.hitField.style.height = height + 'px';\n }\n this.hitField.dataItem = { ...this.hitField.dataItem, width: (this.startMouse.width + movedX) / this.zoom, height };\n\n break;\n case 'w':\n if (outOfBounds({ ...this.hitField.dataItem, left: (this.startMouse.left + movedX) / this.zoom, width: (this.startMouse.width - movedX) / this.zoom })) break;\n this.hitField.style.left = this.startMouse.left + movedX + 'px';\n this.hitField.style.width = this.startMouse.width - movedX + 'px';\n\n if (scale) {\n height = Math.round((this.startMouse.width - movedX) / 3.8);\n this.hitField.style.height = height + 'px';\n }\n this.hitField.dataItem = { ...this.hitField.dataItem, left: (this.startMouse.left + movedX) / this.zoom, width: (this.startMouse.width - movedX) / this.zoom, height };\n break;\n case 'se': {\n const newWidth = (this.startMouse.width + movedX) / this.zoom;\n const newHeight = (this.startMouse.height + movedY) / this.zoom;\n if (outOfBounds({ ...this.hitField.dataItem, width: newWidth, height: newHeight })) break;\n this.hitField.style.width = this.startMouse.width + movedX + 'px';\n this.hitField.style.height = this.startMouse.height + movedY + 'px';\n this.hitField.dataItem = { ...this.hitField.dataItem, width: newWidth, height: newHeight };\n break;\n }\n case 'nw': {\n const newLeft = (this.startMouse.left + movedX) / this.zoom;\n const newTop = (this.startMouse.top + movedY) / this.zoom;\n const newWidth = (this.startMouse.width - movedX) / this.zoom;\n const newHeight = (this.startMouse.height - movedY) / this.zoom;\n if (outOfBounds({ ...this.hitField.dataItem, left: newLeft, top: newTop, width: newWidth, height: newHeight })) break;\n this.hitField.style.left = this.startMouse.left + movedX + 'px';\n this.hitField.style.top = this.startMouse.top + movedY + 'px';\n this.hitField.style.width = this.startMouse.width - movedX + 'px';\n this.hitField.style.height = this.startMouse.height - movedY + 'px';\n this.hitField.dataItem = { ...this.hitField.dataItem, left: newLeft, top: newTop, width: newWidth, height: newHeight };\n break;\n }\n case 'ne': {\n const newWidth = (this.startMouse.width + movedX) / this.zoom;\n const newTop = (this.startMouse.top + movedY) / this.zoom;\n const newHeight = (this.startMouse.height - movedY) / this.zoom;\n if (outOfBounds({ ...this.hitField.dataItem, top: newTop, width: newWidth, height: newHeight })) break;\n this.hitField.style.width = this.startMouse.width + movedX + 'px';\n this.hitField.style.top = this.startMouse.top + movedY + 'px';\n this.hitField.style.height = this.startMouse.height - movedY + 'px';\n this.hitField.dataItem = { ...this.hitField.dataItem, top: newTop, width: newWidth, height: newHeight };\n break;\n }\n case 'sw': {\n const newLeft = (this.startMouse.left + movedX) / this.zoom;\n const newWidth = (this.startMouse.width - movedX) / this.zoom;\n const newHeight = (this.startMouse.height + movedY) / this.zoom;\n if (outOfBounds({ ...this.hitField.dataItem, left: newLeft, width: newWidth, height: newHeight })) break;\n this.hitField.style.left = this.startMouse.left + movedX + 'px';\n this.hitField.style.width = this.startMouse.width - movedX + 'px';\n this.hitField.style.height = this.startMouse.height + movedY + 'px';\n this.hitField.dataItem = { ...this.hitField.dataItem, left: newLeft, width: newWidth, height: newHeight };\n break;\n }\n }\n\n debounce.bind(this)({ action: 'update', data: recalculateCoordinates(this.hitField.dataItem) }, 700);\n } else if (this.selectionBox && event.buttons === 1) {\n this.isBoxing = true;\n // draw the multiple selection box\n var box = this.component.shadowRoot.getElementById('ls-box-selector') as HTMLElement;\n var frame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLElement;\n var leftOffset = frame.getBoundingClientRect().left;\n var topOffset = frame.getBoundingClientRect().top;\n\n const movedX = event.clientX - this.selectionBox.x;\n const movedY = event.clientY - this.selectionBox.y;\n\n // allow for the frame to be scrolled\n box.style.visibility = 'visible';\n box.style.left = (this.selectionBox.x > event.clientX ? event.clientX : this.selectionBox.x) - leftOffset + frame.scrollLeft + 'px';\n box.style.top = (this.selectionBox.y > event.clientY ? event.clientY : this.selectionBox.y) - topOffset + frame.scrollTop + 'px';\n box.style.width = Math.abs(movedX) + 'px';\n box.style.height = Math.abs(movedY) + 'px';\n\n // Move one or more selected items\n } else if (this.startLocations && !this.edgeSide && this.startMouse && event.buttons === 1) {\n this.isMoving = true;\n document.body.style.userSelect = 'none';\n var box = this.component.shadowRoot.getElementById('ls-box-selector') as HTMLElement;\n box.style.visibility = 'hidden';\n\n // Dismiss any open date picker when moving fields\n if (this.selected?.length) {\n this.selected.forEach(f => {\n const input = f.shadowRoot?.getElementById('editing-input') as HTMLInputElement;\n if (input) input.blur();\n });\n }\n\n // Move one or more selected items\n const movedX = event.screenX - this.startMouse.x;\n const movedY = event.screenY - this.startMouse.y;\n if (this.selected?.length) {\n // Calculate snap based on the primary (first) selected field\n const primaryLeft = this.startLocations[0].left + movedX;\n const primaryTop = this.startLocations[0].top + movedY;\n const primaryWidth = this.startLocations[0].width;\n const primaryHeight = this.startLocations[0].height;\n\n const allFields = Array.from(this.component.shadowRoot.querySelectorAll('ls-editor-field')) as HTMLLsEditorFieldElement[];\n const excludeIds = this.selected.map(s => s.dataItem.id);\n const snap = calculateSnap(primaryLeft, primaryTop, primaryWidth, primaryHeight, allFields, this.pageNum, excludeIds);\n\n // Apply snap offset to all selected fields\n const snapOffsetX = snap.x !== null ? snap.x - primaryLeft : 0;\n const snapOffsetY = snap.y !== null ? snap.y - primaryTop : 0;\n\n for (let i = 0; i < this.selected.length; i++) {\n const newLeft = this.startLocations[i].left + movedX + snapOffsetX;\n const newTop = this.startLocations[i].top + movedY + snapOffsetY;\n if (\n newLeft >= 0 &&\n newTop >= 0 &&\n newLeft <= (this.pageDimensions[this.pageNum - 1].width - this.selected[i].dataItem.width) * this.zoom &&\n newTop <= (this.pageDimensions[this.pageNum - 1].height - this.selected[i].dataItem.height) * this.zoom\n ) {\n this.selected[i].style.left = Math.round(newLeft) + 'px';\n this.selected[i].style.top = Math.round(newTop) + 'px';\n }\n }\n\n showSnapGuides.bind(this)(snap.guides);\n updateSelectionBox.bind(this)();\n }\n }\n}\n\nexport function mouseUp(event) {\n this.edgeSide = null;\n this.startMouse = null;\n this.component.style.cursor = 'auto';\n document.body.style.userSelect = '';\n clearSnapGuides.bind(this)();\n\n // find what was inside the selection box emit the select event and change their style\n if (this.selectionBox && this.isBoxing) {\n this.isBoxing = false;\n var box = this.component.shadowRoot.getElementById('ls-box-selector') as HTMLElement;\n var fields = this.component.shadowRoot.querySelectorAll('ls-editor-field');\n box.style.visibility = 'hidden';\n this.selectionBox = null;\n const found = findIn(fields, box, true, event.shiftKey);\n this.selected = Array.from(found);\n this.selectFields.emit(found.map(fx => fx.dataItem));\n updateSelectionBox.bind(this)();\n }\n}\n\nexport function mouseClick(e) {\n // Disable click interactions in preview mode or when template is locked\n if (this.mode === 'preview' || this._template?.locked) {\n return;\n }\n \n // check we're not moving fields\n if (this.isMoving) {\n // End dragging fields\n this.isMoving = false;\n const fields = this.component.shadowRoot.querySelectorAll('ls-editor-field') as HTMLLsEditorFieldElement[];\n const divFrame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLDivElement;\n const selected = Array.from(fields).filter(fx => fx.selected);\n\n this.mutate.emit(\n Array.from(fields)\n .filter(fx => fx.selected)\n .map(fx => {\n // Calculate new positions and update the dataItem on the control\n const delta = {\n ...fx.dataItem,\n ...findDimensions(divFrame, fx, fx.dataItem.pageDimensions.height, fx.dataItem.pageDimensions.width, this.zoom),\n };\n // TODO:: out of bounds handler (UNDO)\n // update the data in the html element\n fx.dataItem = delta;\n // send an update event to be processed\n return { action: 'update', data: delta };\n }),\n );\n this.selectFields.emit(selected.map(fx => fx.dataItem));\n updateSelectionBox.bind(this)();\n } else {\n // reset the selection box location\n this.selectionBox = { x: e.clientX, y: e.clientY };\n\n const fields = this.component.shadowRoot.querySelectorAll('ls-editor-field') as HTMLLsEditorFieldElement[];\n fields.forEach(f => {\n const { left, top, bottom, right } = f.getBoundingClientRect();\n if (e.clientY <= bottom && e.clientY >= top && e.clientX >= left && e.clientX <= right) {\n this.edgeSide = null;\n this.hitField = f;\n // check if this is a shift click to add to the current selection\n if (!e.shiftKey) fields.forEach(ft => (ft.selected = false));\n f.selected = true;\n }\n });\n\n this.selected = Array.from(fields).filter(fx => fx.selected);\n this.selectFields.emit(this.selected.map(fx => fx.dataItem));\n updateSelectionBox.bind(this)();\n }\n}\n\nexport function showSnapGuides(guides: { orientation: 'h' | 'v'; position: number }[]) {\n const frame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLElement;\n let container = this.component.shadowRoot.getElementById('ls-snap-guides');\n if (!container) {\n container = document.createElement('div');\n container.id = 'ls-snap-guides';\n container.style.position = 'absolute';\n container.style.top = '0';\n container.style.left = '0';\n container.style.width = '100%';\n container.style.height = '100%';\n container.style.pointerEvents = 'none';\n container.style.zIndex = '9999';\n frame.appendChild(container);\n }\n\n container.innerHTML = '';\n for (const guide of guides) {\n const line = document.createElement('div');\n line.style.position = 'absolute';\n line.style.backgroundColor = 'transparent';\n if (guide.orientation === 'v') {\n line.style.left = guide.position + 'px';\n line.style.top = '0';\n line.style.width = '0';\n line.style.height = '100%';\n line.style.borderLeft = '1px dashed var(--gray-50, #c8c9cc)';\n } else {\n line.style.top = guide.position + 'px';\n line.style.left = '0';\n line.style.width = '100%';\n line.style.height = '0';\n line.style.borderTop = '1px dashed var(--gray-50, #c8c9cc)';\n }\n container.appendChild(line);\n }\n}\n\nexport function clearSnapGuides() {\n const container = this.component.shadowRoot.getElementById('ls-snap-guides');\n if (container) container.innerHTML = '';\n}\n\nexport function toolboxDragStart(fieldData: IToolboxField) {\n // Disable toolbox dragging when template is locked\n if (this._template?.locked) {\n return;\n }\n // Cancel any existing toolbox drag\n if (this._cancelToolboxDrag) {\n this._cancelToolboxDrag();\n }\n\n const frame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLElement;\n const zoom = this.zoom;\n this._isToolboxDragging = true;\n let hasMoved = false;\n\n // Prevent text selection during drag and set grabbing cursor\n document.body.style.userSelect = 'none';\n const cursorStyle = document.createElement('style');\n cursorStyle.id = 'ls-drag-cursor';\n cursorStyle.textContent = '* { cursor: grabbing !important; }';\n document.head.appendChild(cursorStyle);\n\n // Add dragging class to toolbox fields (shadow DOM cursor override)\n this.component.shadowRoot.querySelectorAll('ls-left-bar, ls-compose-loader').forEach(bar => {\n bar.shadowRoot?.querySelectorAll('ls-toolbox-field').forEach(el => el.classList.add('ls-dv-dragging'));\n });\n\n // Create ghost preview element matching the original drag image style\n const ghost = document.createElement('div');\n ghost.id = 'ls-toolbox-ghost';\n ghost.style.position = 'fixed';\n ghost.style.width = fieldData.defaultWidth * zoom + 'px';\n ghost.style.height = fieldData.defaultHeight * zoom + 'px';\n ghost.style.border = `2px dashed ${defaultRolePalette[this.signer % 100].s60}`;\n const s20 = defaultRolePalette[this.signer % 100].s20.replace('#', '');\n const r = parseInt(s20.substring(0, 2), 16);\n const g = parseInt(s20.substring(2, 4), 16);\n const b = parseInt(s20.substring(4, 6), 16);\n ghost.style.background = `rgba(${r},${g},${b},0.5)`;\n ghost.style.boxShadow = '0 4px 6px -1px rgba(0, 0, 0, 0.10), 0 2px 4px -1px rgba(0, 0, 0, 0.06)';\n ghost.style.pointerEvents = 'none';\n ghost.style.zIndex = '10000';\n ghost.style.visibility = 'hidden';\n ghost.style.boxSizing = 'border-box';\n ghost.style.fontFamily = 'var(--font-family, IBM Plex Sans, sans-serif)';\n ghost.style.fontSize = Math.round(DEFAULT_FONT_SIZE * zoom) + 'px';\n ghost.style.color = defaultRolePalette[this.signer % 100].s100;\n ghost.style.overflow = 'hidden';\n ghost.style.whiteSpace = 'nowrap';\n ghost.style.display = 'flex';\n ghost.style.alignItems = 'center';\n ghost.style.textTransform = 'capitalize';\n ghost.innerHTML = fieldData.formElementType;\n this.component.shadowRoot.appendChild(ghost);\n\n // Info chip at bottom of screen\n const chip = document.createElement('div');\n chip.id = 'ls-esc-chip';\n chip.style.position = 'fixed';\n chip.style.bottom = '1.5rem';\n chip.style.left = '50%';\n chip.style.transform = 'translateX(-50%)';\n chip.style.padding = '0.375rem 0.75rem';\n chip.style.borderRadius = '0.625rem';\n chip.style.background = 'var(--gray-100, #1f2937)';\n chip.style.color = 'white';\n chip.style.fontSize = '0.75rem';\n chip.style.fontFamily = 'var(--font-family, IBM Plex Sans, sans-serif)';\n chip.style.pointerEvents = 'none';\n chip.style.zIndex = '10000';\n chip.style.boxShadow = '0 4px 6px -1px rgba(0, 0, 0, 0.1)';\n chip.textContent = 'Press Esc to cancel field placement';\n this.component.shadowRoot.appendChild(chip);\n\n const onMouseMove = (e: MouseEvent) => {\n e.preventDefault();\n hasMoved = true;\n const dragWidth = fieldData.defaultWidth * zoom;\n const dragHeight = fieldData.defaultHeight * zoom;\n ghost.style.visibility = 'visible';\n\n const frameRect = frame.getBoundingClientRect();\n const isOverFrame = e.clientX >= frameRect.left && e.clientX <= frameRect.right &&\n e.clientY >= frameRect.top && e.clientY <= frameRect.bottom;\n\n if (isOverFrame) {\n ghost.style.opacity = '1';\n const x = e.clientX - frameRect.left + frame.scrollLeft;\n const y = e.clientY - frameRect.top + frame.scrollTop;\n let left = x - dragWidth / 2;\n let top = y - dragHeight / 2;\n\n const fields = Array.from(this.component.shadowRoot.querySelectorAll('ls-editor-field')) as HTMLLsEditorFieldElement[];\n const snap = calculateSnap(left, top, dragWidth, dragHeight, fields, this.pageNum);\n ghost.style.left = (snap.x !== null ? snap.x + frameRect.left - frame.scrollLeft : e.clientX - dragWidth / 2) + 'px';\n ghost.style.top = (snap.y !== null ? snap.y + frameRect.top - frame.scrollTop : e.clientY - dragHeight / 2) + 'px';\n\n showSnapGuides.bind(this)(snap.guides);\n } else {\n ghost.style.opacity = '0.5';\n ghost.style.left = (e.clientX - dragWidth / 2) + 'px';\n ghost.style.top = (e.clientY - dragHeight / 2) + 'px';\n clearSnapGuides.bind(this)();\n }\n };\n\n const cleanup = () => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n document.removeEventListener('keydown', onKeyDown);\n ghost.remove();\n chip.remove();\n clearSnapGuides.bind(this)();\n document.body.style.userSelect = '';\n const cursorStyle = document.getElementById('ls-drag-cursor');\n if (cursorStyle) cursorStyle.remove();\n this.component.shadowRoot.querySelectorAll('ls-left-bar, ls-compose-loader').forEach(bar => {\n bar.shadowRoot?.querySelectorAll('ls-toolbox-field').forEach(el => el.classList.remove('ls-dv-dragging'));\n });\n this._isToolboxDragging = false;\n this._cancelToolboxDrag = null;\n };\n\n const onMouseUp = (e: MouseEvent) => {\n // Ignore mouseup if it's from the same click that started the drag (no movement yet)\n if (!hasMoved) return;\n\n const frameRect = frame.getBoundingClientRect();\n const shouldPlace = e.clientX >= frameRect.left && e.clientX <= frameRect.right &&\n e.clientY >= frameRect.top && e.clientY <= frameRect.bottom;\n\n cleanup();\n\n if (shouldPlace) {\n\n const dragWidth = fieldData.defaultWidth * zoom;\n const dragHeight = fieldData.defaultHeight * zoom;\n const x = e.clientX - frameRect.left + frame.scrollLeft;\n const y = e.clientY - frameRect.top + frame.scrollTop;\n let left = x - dragWidth / 2;\n let top = y - dragHeight / 2;\n\n const fields = Array.from(this.component.shadowRoot.querySelectorAll('ls-editor-field')) as HTMLLsEditorFieldElement[];\n const snap = calculateSnap(left, top, dragWidth, dragHeight, fields, this.pageNum);\n if (snap.x !== null) left = snap.x;\n if (snap.y !== null) top = snap.y;\n\n const finalTop = top / zoom;\n const finalLeft = left / zoom;\n\n // Check if field fits on page - constrain to page boundaries\n const pageWidth = this.pageDimensions[this.pageNum - 1].width;\n const pageHeight = this.pageDimensions[this.pageNum - 1].height;\n const constrainedLeft = Math.max(0, Math.min(finalLeft, pageWidth - fieldData.defaultWidth));\n const constrainedTop = Math.max(0, Math.min(finalTop, pageHeight - fieldData.defaultHeight));\n\n this.component.shadowRoot.querySelectorAll('ls-editor-field').forEach(f => (f.selected = false));\n\n const id = btoa('ele' + crypto.randomUUID());\n const newData: LSMutateEvent = {\n action: 'create',\n data: {\n id,\n value: '',\n formElementType: fieldData.formElementType,\n elementType: fieldData.elementType,\n validation: fieldData.validation,\n substantive: false,\n top: constrainedTop,\n left: constrainedLeft,\n hideBorder: false,\n height: fieldData.defaultHeight,\n width: fieldData.defaultWidth,\n pageDimensions: this.pageDimensions[this.pageNum - 1],\n fontName: this.fontFamily,\n fontSize: this.fontSize,\n align: 'left',\n signer: this.signer,\n page: this.pageNum,\n mapTo: null,\n label: '',\n helpText: null,\n logicGroup: null,\n optional: false,\n options: null,\n logicAction: null,\n labelExtra: null,\n fieldOrder: null,\n ax: constrainedLeft > 0 ? constrainedLeft / this.pageDimensions[this.pageNum - 1].width : 0,\n ay: constrainedTop > 0 ? constrainedTop / this.pageDimensions[this.pageNum - 1].height : 0,\n bx: (constrainedLeft + fieldData.defaultWidth) / this.pageDimensions[this.pageNum - 1].width,\n by: (constrainedTop + fieldData.defaultHeight) / this.pageDimensions[this.pageNum - 1].height,\n templateId: this._template.id,\n } as LSApiElement,\n };\n\n this.mutate.emit([newData]);\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n cleanup();\n }\n };\n\n this._cancelToolboxDrag = cleanup;\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n document.addEventListener('keydown', onKeyDown);\n}\n\nexport function mouseDoubleClick(event) {\n // Disable double-click field creation in preview mode or when template is locked\n if (this.mode === 'preview' || this._template?.locked) {\n return;\n }\n \n console.log('double click', this.fieldTypeSelected, this.signer);\n try {\n let data: IToolboxField = this.fieldTypeSelected as IToolboxField;\n\n if (this.checkType('APPROVER') && data.elementType === 'signature') {\n data = {\n label: 'Text',\n formElementType: 'text',\n elementType: 'text',\n validation: 0,\n defaultHeight: FIELD_DEFAULTS['text'].defaultHeight,\n defaultWidth: FIELD_DEFAULTS['text'].defaultWidth,\n };\n }\n // Unselect all current selected items\n this.component.shadowRoot.querySelectorAll('ls-editor-field').forEach(f => (f.selected = false));\n var frame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLElement;\n // Make a new API compatible id for a template element (prefix 'ele')\n const id = btoa('ele' + crypto.randomUUID());\n const top = event.offsetY / this.zoom + frame.scrollTop;\n const left = event.offsetX / this.zoom + frame.scrollLeft;\n\n // TODO: Put these defaults somewhere sensible\n const newData: LSMutateEvent = {\n action: 'create',\n data: {\n id,\n value: '',\n formElementType: data.formElementType,\n elementType: data.elementType,\n validation: data.validation,\n substantive: false,\n top,\n left,\n hideBorder: false,\n height: data.defaultHeight,\n width: data.defaultWidth,\n pageDimensions: this.pageDimensions[this.pageNum - 1],\n fontName: DEFAULT_FONT_NAME,\n fontSize: DEFAULT_FONT_SIZE,\n align: 'left',\n signer: this.signer,\n page: this.pageNum,\n mapTo: null,\n label: '',\n helpText: null,\n logicGroup: null,\n optional: false,\n options: null,\n logicAction: null,\n labelExtra: null,\n fieldOrder: null,\n ax: left > 0 ? left / this.pageDimensions[this.pageNum - 1].width : 0,\n ay: top > 0 ? top / this.pageDimensions[this.pageNum - 1].height : 0,\n bx: (left + data.defaultWidth) / this.pageDimensions[this.pageNum - 1].width,\n by: (top + data.defaultHeight) / this.pageDimensions[this.pageNum - 1].height,\n templateId: this._template.id,\n } as LSApiElement,\n };\n this.mutate.emit([newData]);\n } catch (e) {\n console.error(e);\n }\n}\n"]}
1
+ {"version":3,"file":"mouseHandlers.js","sourceRoot":"","sources":["../../../../src/components/ls-document-viewer/mouseHandlers.ts"],"names":[],"mappings":"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","sourcesContent":["import { LSApiElement } from '../../types/LSApiElement';\nimport { LSMutateEvent } from '../../types/LSMutateEvent';\nimport { findDimensions, findIn, recalculateCoordinates } from './editorCalculator';\nimport { IToolboxField } from '../interfaces/IToolboxField';\nimport { FIELD_DEFAULTS, DEFAULT_FONT_SIZE, DEFAULT_FONT_NAME } from '../../constants/fieldDefaults';\nimport { calculateSnap } from './snapHelper';\nimport { defaultRolePalette } from './defaultPalette';\n\nexport function updateSelectionBox() {\n var box = this.component.shadowRoot.getElementById('ls-box-selector') as HTMLElement;\n if (!this.selected || this.selected.length < 2) {\n box.style.visibility = 'hidden';\n return;\n }\n\n let minLeft = Infinity, minTop = Infinity, maxRight = -Infinity, maxBottom = -Infinity;\n\n this.selected.forEach(f => {\n const left = f.offsetLeft;\n const top = f.offsetTop;\n const right = left + f.offsetWidth;\n const bottom = top + f.offsetHeight;\n if (left < minLeft) minLeft = left;\n if (top < minTop) minTop = top;\n if (right > maxRight) maxRight = right;\n if (bottom > maxBottom) maxBottom = bottom;\n });\n\n box.style.left = minLeft + 'px';\n box.style.top = minTop + 'px';\n box.style.width = (maxRight - minLeft) + 'px';\n box.style.height = (maxBottom - minTop) + 'px';\n box.style.visibility = 'visible';\n}\n\nlet mousetimer = null;\n\nexport function debounce(data, delay) {\n if (mousetimer) clearTimeout(mousetimer);\n\n mousetimer = setTimeout(() => {\n this.mutate.emit([data]);\n }, delay);\n}\n\nexport function mouseDown(e) {\n if (e.offsetX < 0 || e.offsetY < 0) return;\n if (this._isToolboxDragging) return;\n // Disable mouse interactions in preview mode or when template is locked\n if (this.mode === 'preview' || this._template?.locked) {\n return;\n }\n // Ignore events originating from outside the document frame\n const frame = this.component.shadowRoot.getElementById('ls-document-frame');\n if (!frame || !e.composedPath().includes(frame)) return;\n // console.log('mousedown', e);\n\n // Find if this was\n // - a hit on a field edge RESIZE\n // - a hit on the middle of a field MOVE\n // - a hit on the background document SELECTMULTIPLE with a box\n this.hitField = null;\n const fields = this.component.shadowRoot.querySelectorAll('ls-editor-field');\n\n fields.forEach(f => {\n const { left, top, height, width, bottom, right } = f.getBoundingClientRect();\n const fdims = { left: f.offsetLeft, top: f.offsetTop, height, width, x: e.screenX, y: e.screenY };\n this.startMouse = fdims;\n // Scale edge threshold for small fields\n const edgeX = Math.min(8, width * 0.25);\n const edgeY = Math.min(8, height * 0.25);\n // corners (check before edges)\n if (Math.abs(e.clientX - right) < edgeX && Math.abs(e.clientY - bottom) < edgeY) {\n this.edgeSide = 'se';\n this.hitField = f;\n } else if (Math.abs(e.clientX - left) < edgeX && Math.abs(e.clientY - top) < edgeY) {\n this.edgeSide = 'nw';\n this.hitField = f;\n } else if (Math.abs(e.clientX - right) < edgeX && Math.abs(e.clientY - top) < edgeY) {\n this.edgeSide = 'ne';\n this.hitField = f;\n } else if (Math.abs(e.clientX - left) < edgeX && Math.abs(e.clientY - bottom) < edgeY) {\n this.edgeSide = 'sw';\n this.hitField = f;\n // west edge\n } else if (Math.abs(e.clientX - left) < edgeX && e.clientY >= top && e.clientY <= bottom) {\n this.edgeSide = 'w';\n this.hitField = f;\n // right / east edge\n } else if (Math.abs(e.clientX - right) < edgeX && e.clientY >= top && e.clientY <= bottom) {\n this.edgeSide = 'e';\n this.hitField = f;\n // north edge\n } else if (Math.abs(e.clientY - top) < edgeY && e.clientX >= left && e.clientX <= right) {\n this.edgeSide = 'n';\n this.hitField = f;\n // south edge\n } else if (Math.abs(e.clientY - bottom) < edgeY && e.clientX >= left && e.clientX <= right) {\n this.edgeSide = 's';\n this.hitField = f;\n } else if (e.clientY <= bottom && e.clientY >= top && e.clientX >= left && e.clientX <= right) {\n this.edgeSide = null;\n this.hitField = f;\n }\n });\n\n if (this.hitField && e.shiftKey === false) {\n var box = this.component.shadowRoot.getElementById('ls-box-selector') as HTMLElement;\n box.style.visibility = 'hidden';\n\n // mouse down on a field, select it and note the start location\n if (this.hitField.selected === false) {\n // unselect all other fields\n fields.forEach(fu => {\n fu.selected = false;\n });\n this.selected = [this.hitField];\n this.selectFields.emit([this.hitField.dataItem]);\n }\n\n const { height, width } = this.hitField.getBoundingClientRect();\n const fdims = { left: this.hitField.offsetLeft, top: this.hitField.offsetTop, height, width, x: e.screenX, y: e.screenY };\n this.startMouse = fdims;\n\n this.startLocations = this.selected.map(f => {\n const { height, width } = f.getBoundingClientRect();\n const beHtml = f as HTMLElement;\n return { top: beHtml.offsetTop, left: beHtml.offsetLeft, height, width };\n });\n this.selectionBox = null;\n } else if (this.hitField && e.shiftKey === true) {\n var box = this.component.shadowRoot.getElementById('ls-box-selector') as HTMLElement;\n box.style.visibility = 'hidden';\n\n // mouse down on a field, select it and note the start location\n if (this.hitField.selected === false) {\n // unselect all other fields\n fields.forEach(fu => {\n fu.selected = false;\n });\n this.selected = [...this.selected, this.hitField];\n this.selectFields.emit([...this.selected.map(si => si.dataItem), this.hitField.dataItem]);\n }\n\n const { height, width } = this.hitField.getBoundingClientRect();\n const fdims = { left: this.hitField.offsetLeft, top: this.hitField.offsetTop, height, width, x: e.screenX, y: e.screenY };\n this.startMouse = fdims;\n\n this.startLocations = this.selected.map(f => {\n const { height, width } = f.getBoundingClientRect();\n const beHtml = f as HTMLElement;\n return { top: beHtml.offsetTop, left: beHtml.offsetLeft, height, width };\n });\n this.selectionBox = null;\n } else {\n // move down on empty space, start a selection box\n this.startLocations = null;\n this.startMouse = null;\n this.selectionBox = { x: e.clientX, y: e.clientY };\n // console.log('empty space reset selected', this.selectionBox);\n this.unselect();\n\n this.selectFields.emit([]);\n this.selected = [];\n this.component.style.cursor = 'crosshair';\n updateSelectionBox.bind(this)();\n }\n}\n\nexport function outOfBounds(futureField) {\n return (\n futureField.height <= 5 ||\n futureField.left < 0 ||\n futureField.top < 0 ||\n futureField.left + futureField.width >= futureField.pageDimensions.width ||\n futureField.top + futureField.height >= futureField.pageDimensions.height\n );\n}\nexport function mouseMove(event) {\n event.preventDefault();\n if (this._isToolboxDragging) return;\n // Disable mouse move interactions in preview mode or when template is locked\n if (this.mode === 'preview' || this._template?.locked) {\n return;\n }\n\n // We have the mouse held down on a field edge to resize it.\n if (this.hitField && this.edgeSide && this.startMouse && event.buttons === 1) {\n const movedX = event.screenX - this.startMouse.x;\n const movedY = event.screenY - this.startMouse.y;\n var width = this.hitField.dataItem.width;\n var height = this.hitField.dataItem.height;\n var scale = this.hitField.dataItem.formElementType === 'signature' && this._template.fixSignatureScale;\n\n switch (this.edgeSide) {\n case 'n':\n if (outOfBounds({ ...this.hitField.dataItem, top: (this.startMouse.top + movedY) / this.zoom, height: (this.startMouse.height - movedY) / this.zoom })) break;\n this.hitField.style.top = this.startMouse.top + movedY + 'px';\n this.hitField.style.height = this.startMouse.height - movedY + 'px';\n\n if (scale) {\n width = (this.startMouse.height - movedY) * 3.8;\n this.hitField.style.width = width + 'px';\n }\n this.hitField.dataItem = { ...this.hitField.dataItem, top: (this.startMouse.top + movedY) / this.zoom, height: (this.startMouse.height - movedY) / this.zoom, width };\n break;\n case 's':\n if (outOfBounds({ ...this.hitField.dataItem, height: (this.startMouse.height + movedY) / this.zoom })) break;\n\n this.hitField.style.height = this.startMouse.height + movedY + 'px';\n if (scale) {\n width = (this.startMouse.height + movedY) * 3.8;\n this.hitField.style.width = width + 'px';\n }\n\n this.hitField.dataItem = { ...this.hitField.dataItem, height: (this.startMouse.height + movedY) / this.zoom, width };\n break;\n case 'e':\n if (outOfBounds({ ...this.hitField.dataItem, width: (this.startMouse.width + movedX) / this.zoom })) break;\n\n this.hitField.style.width = this.startMouse.width + movedX + 'px';\n if (scale) {\n height = Math.round((this.startMouse.width + movedX) / 3.8);\n this.hitField.style.height = height + 'px';\n }\n this.hitField.dataItem = { ...this.hitField.dataItem, width: (this.startMouse.width + movedX) / this.zoom, height };\n\n break;\n case 'w':\n if (outOfBounds({ ...this.hitField.dataItem, left: (this.startMouse.left + movedX) / this.zoom, width: (this.startMouse.width - movedX) / this.zoom })) break;\n this.hitField.style.left = this.startMouse.left + movedX + 'px';\n this.hitField.style.width = this.startMouse.width - movedX + 'px';\n\n if (scale) {\n height = Math.round((this.startMouse.width - movedX) / 3.8);\n this.hitField.style.height = height + 'px';\n }\n this.hitField.dataItem = { ...this.hitField.dataItem, left: (this.startMouse.left + movedX) / this.zoom, width: (this.startMouse.width - movedX) / this.zoom, height };\n break;\n case 'se': {\n const newWidth = (this.startMouse.width + movedX) / this.zoom;\n const newHeight = (this.startMouse.height + movedY) / this.zoom;\n if (outOfBounds({ ...this.hitField.dataItem, width: newWidth, height: newHeight })) break;\n this.hitField.style.width = this.startMouse.width + movedX + 'px';\n this.hitField.style.height = this.startMouse.height + movedY + 'px';\n this.hitField.dataItem = { ...this.hitField.dataItem, width: newWidth, height: newHeight };\n break;\n }\n case 'nw': {\n const newLeft = (this.startMouse.left + movedX) / this.zoom;\n const newTop = (this.startMouse.top + movedY) / this.zoom;\n const newWidth = (this.startMouse.width - movedX) / this.zoom;\n const newHeight = (this.startMouse.height - movedY) / this.zoom;\n if (outOfBounds({ ...this.hitField.dataItem, left: newLeft, top: newTop, width: newWidth, height: newHeight })) break;\n this.hitField.style.left = this.startMouse.left + movedX + 'px';\n this.hitField.style.top = this.startMouse.top + movedY + 'px';\n this.hitField.style.width = this.startMouse.width - movedX + 'px';\n this.hitField.style.height = this.startMouse.height - movedY + 'px';\n this.hitField.dataItem = { ...this.hitField.dataItem, left: newLeft, top: newTop, width: newWidth, height: newHeight };\n break;\n }\n case 'ne': {\n const newWidth = (this.startMouse.width + movedX) / this.zoom;\n const newTop = (this.startMouse.top + movedY) / this.zoom;\n const newHeight = (this.startMouse.height - movedY) / this.zoom;\n if (outOfBounds({ ...this.hitField.dataItem, top: newTop, width: newWidth, height: newHeight })) break;\n this.hitField.style.width = this.startMouse.width + movedX + 'px';\n this.hitField.style.top = this.startMouse.top + movedY + 'px';\n this.hitField.style.height = this.startMouse.height - movedY + 'px';\n this.hitField.dataItem = { ...this.hitField.dataItem, top: newTop, width: newWidth, height: newHeight };\n break;\n }\n case 'sw': {\n const newLeft = (this.startMouse.left + movedX) / this.zoom;\n const newWidth = (this.startMouse.width - movedX) / this.zoom;\n const newHeight = (this.startMouse.height + movedY) / this.zoom;\n if (outOfBounds({ ...this.hitField.dataItem, left: newLeft, width: newWidth, height: newHeight })) break;\n this.hitField.style.left = this.startMouse.left + movedX + 'px';\n this.hitField.style.width = this.startMouse.width - movedX + 'px';\n this.hitField.style.height = this.startMouse.height + movedY + 'px';\n this.hitField.dataItem = { ...this.hitField.dataItem, left: newLeft, width: newWidth, height: newHeight };\n break;\n }\n }\n\n debounce.bind(this)({ action: 'update', data: recalculateCoordinates(this.hitField.dataItem) }, 700);\n } else if (this.selectionBox && event.buttons === 1) {\n this.isBoxing = true;\n // draw the multiple selection box\n var box = this.component.shadowRoot.getElementById('ls-box-selector') as HTMLElement;\n var frame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLElement;\n var leftOffset = frame.getBoundingClientRect().left;\n var topOffset = frame.getBoundingClientRect().top;\n\n const movedX = event.clientX - this.selectionBox.x;\n const movedY = event.clientY - this.selectionBox.y;\n\n // allow for the frame to be scrolled\n box.style.visibility = 'visible';\n box.style.left = (this.selectionBox.x > event.clientX ? event.clientX : this.selectionBox.x) - leftOffset + frame.scrollLeft + 'px';\n box.style.top = (this.selectionBox.y > event.clientY ? event.clientY : this.selectionBox.y) - topOffset + frame.scrollTop + 'px';\n box.style.width = Math.abs(movedX) + 'px';\n box.style.height = Math.abs(movedY) + 'px';\n\n // Move one or more selected items\n } else if (this.startLocations && !this.edgeSide && this.startMouse && event.buttons === 1) {\n this.isMoving = true;\n document.body.style.userSelect = 'none';\n var box = this.component.shadowRoot.getElementById('ls-box-selector') as HTMLElement;\n box.style.visibility = 'hidden';\n\n // Dismiss any open date picker when moving fields\n if (this.selected?.length) {\n this.selected.forEach(f => {\n const input = f.shadowRoot?.getElementById('editing-input') as HTMLInputElement;\n if (input) input.blur();\n });\n }\n\n // Move one or more selected items\n const movedX = event.screenX - this.startMouse.x;\n const movedY = event.screenY - this.startMouse.y;\n if (this.selected?.length) {\n // Calculate snap based on the primary (first) selected field\n const primaryLeft = this.startLocations[0].left + movedX;\n const primaryTop = this.startLocations[0].top + movedY;\n const primaryWidth = this.startLocations[0].width;\n const primaryHeight = this.startLocations[0].height;\n\n const allFields = Array.from(this.component.shadowRoot.querySelectorAll('ls-editor-field')) as HTMLLsEditorFieldElement[];\n const excludeIds = this.selected.map(s => s.dataItem.id);\n const snap = calculateSnap(primaryLeft, primaryTop, primaryWidth, primaryHeight, allFields, this.pageNum, excludeIds);\n\n // Apply snap offset to all selected fields\n const snapOffsetX = snap.x !== null ? snap.x - primaryLeft : 0;\n const snapOffsetY = snap.y !== null ? snap.y - primaryTop : 0;\n\n for (let i = 0; i < this.selected.length; i++) {\n const newLeft = this.startLocations[i].left + movedX + snapOffsetX;\n const newTop = this.startLocations[i].top + movedY + snapOffsetY;\n if (\n newLeft >= 0 &&\n newTop >= 0 &&\n newLeft <= (this.pageDimensions[this.pageNum - 1].width - this.selected[i].dataItem.width) * this.zoom &&\n newTop <= (this.pageDimensions[this.pageNum - 1].height - this.selected[i].dataItem.height) * this.zoom\n ) {\n this.selected[i].style.left = Math.round(newLeft) + 'px';\n this.selected[i].style.top = Math.round(newTop) + 'px';\n }\n }\n\n showSnapGuides.bind(this)(snap.guides);\n updateSelectionBox.bind(this)();\n }\n }\n}\n\nexport function mouseUp(event) {\n this.edgeSide = null;\n this.startMouse = null;\n this.component.style.cursor = 'auto';\n document.body.style.userSelect = '';\n clearSnapGuides.bind(this)();\n\n // find what was inside the selection box emit the select event and change their style\n if (this.selectionBox && this.isBoxing) {\n this.isBoxing = false;\n var box = this.component.shadowRoot.getElementById('ls-box-selector') as HTMLElement;\n var fields = this.component.shadowRoot.querySelectorAll('ls-editor-field');\n box.style.visibility = 'hidden';\n this.selectionBox = null;\n const found = findIn(fields, box, true, event.shiftKey);\n this.selected = Array.from(found);\n this.selectFields.emit(found.map(fx => fx.dataItem));\n updateSelectionBox.bind(this)();\n }\n}\n\nexport function mouseClick(e) {\n // Disable click interactions in preview mode or when template is locked\n if (this.mode === 'preview' || this._template?.locked) {\n return;\n }\n \n // check we're not moving fields\n if (this.isMoving) {\n // End dragging fields\n this.isMoving = false;\n const fields = this.component.shadowRoot.querySelectorAll('ls-editor-field') as HTMLLsEditorFieldElement[];\n const divFrame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLDivElement;\n const selected = Array.from(fields).filter(fx => fx.selected);\n\n this.mutate.emit(\n Array.from(fields)\n .filter(fx => fx.selected)\n .map(fx => {\n // Calculate new positions and update the dataItem on the control\n const delta = {\n ...fx.dataItem,\n ...findDimensions(divFrame, fx, fx.dataItem.pageDimensions.height, fx.dataItem.pageDimensions.width, this.zoom),\n };\n // TODO:: out of bounds handler (UNDO)\n // update the data in the html element\n fx.dataItem = delta;\n // send an update event to be processed\n return { action: 'update', data: delta };\n }),\n );\n this.selectFields.emit(selected.map(fx => fx.dataItem));\n updateSelectionBox.bind(this)();\n } else {\n // reset the selection box location\n this.selectionBox = { x: e.clientX, y: e.clientY };\n\n const fields = this.component.shadowRoot.querySelectorAll('ls-editor-field') as HTMLLsEditorFieldElement[];\n fields.forEach(f => {\n const { left, top, bottom, right } = f.getBoundingClientRect();\n if (e.clientY <= bottom && e.clientY >= top && e.clientX >= left && e.clientX <= right) {\n this.edgeSide = null;\n this.hitField = f;\n // check if this is a shift click to add to the current selection\n if (!e.shiftKey) fields.forEach(ft => (ft.selected = false));\n f.selected = true;\n }\n });\n\n this.selected = Array.from(fields).filter(fx => fx.selected);\n this.selectFields.emit(this.selected.map(fx => fx.dataItem));\n updateSelectionBox.bind(this)();\n }\n}\n\nexport function showSnapGuides(guides: { orientation: 'h' | 'v'; position: number }[]) {\n const frame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLElement;\n let container = this.component.shadowRoot.getElementById('ls-snap-guides');\n if (!container) {\n container = document.createElement('div');\n container.id = 'ls-snap-guides';\n container.style.position = 'absolute';\n container.style.top = '0';\n container.style.left = '0';\n container.style.width = '100%';\n container.style.height = '100%';\n container.style.pointerEvents = 'none';\n container.style.zIndex = '9999';\n frame.appendChild(container);\n }\n\n container.innerHTML = '';\n for (const guide of guides) {\n const line = document.createElement('div');\n line.style.position = 'absolute';\n line.style.backgroundColor = 'transparent';\n if (guide.orientation === 'v') {\n line.style.left = guide.position + 'px';\n line.style.top = '0';\n line.style.width = '0';\n line.style.height = '100%';\n line.style.borderLeft = '1px dashed var(--gray-50, #c8c9cc)';\n } else {\n line.style.top = guide.position + 'px';\n line.style.left = '0';\n line.style.width = '100%';\n line.style.height = '0';\n line.style.borderTop = '1px dashed var(--gray-50, #c8c9cc)';\n }\n container.appendChild(line);\n }\n}\n\nexport function clearSnapGuides() {\n const container = this.component.shadowRoot.getElementById('ls-snap-guides');\n if (container) container.innerHTML = '';\n}\n\nexport function toolboxDragStart(fieldData: IToolboxField) {\n // Disable toolbox dragging when template is locked\n if (this._template?.locked) {\n return;\n }\n // Cancel any existing toolbox drag\n if (this._cancelToolboxDrag) {\n this._cancelToolboxDrag();\n }\n\n const frame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLElement;\n const zoom = this.zoom;\n this._isToolboxDragging = true;\n let hasMoved = false;\n\n // Prevent text selection during drag and set grabbing cursor\n document.body.style.userSelect = 'none';\n const cursorStyle = document.createElement('style');\n cursorStyle.id = 'ls-drag-cursor';\n cursorStyle.textContent = '* { cursor: grabbing !important; }';\n document.head.appendChild(cursorStyle);\n\n // Add dragging class to toolbox fields (shadow DOM cursor override)\n this.component.shadowRoot.querySelectorAll('ls-left-bar, ls-compose-loader').forEach(bar => {\n bar.shadowRoot?.querySelectorAll('ls-toolbox-field').forEach(el => el.classList.add('ls-dv-dragging'));\n });\n\n // Create ghost preview element matching the original drag image style\n const ghost = document.createElement('div');\n ghost.id = 'ls-toolbox-ghost';\n ghost.style.position = 'fixed';\n ghost.style.width = fieldData.defaultWidth * zoom + 'px';\n ghost.style.height = fieldData.defaultHeight * zoom + 'px';\n ghost.style.border = `2px dashed ${defaultRolePalette[this.signer % 100].s60}`;\n const s20 = defaultRolePalette[this.signer % 100].s20.replace('#', '');\n const r = parseInt(s20.substring(0, 2), 16);\n const g = parseInt(s20.substring(2, 4), 16);\n const b = parseInt(s20.substring(4, 6), 16);\n ghost.style.background = `rgba(${r},${g},${b},0.5)`;\n ghost.style.boxShadow = '0 4px 6px -1px rgba(0, 0, 0, 0.10), 0 2px 4px -1px rgba(0, 0, 0, 0.06)';\n ghost.style.pointerEvents = 'none';\n ghost.style.zIndex = '10000';\n ghost.style.visibility = 'hidden';\n ghost.style.boxSizing = 'border-box';\n ghost.style.fontFamily = 'var(--font-family, IBM Plex Sans, sans-serif)';\n ghost.style.fontSize = Math.round(DEFAULT_FONT_SIZE * zoom) + 'px';\n ghost.style.color = defaultRolePalette[this.signer % 100].s100;\n ghost.style.overflow = 'hidden';\n ghost.style.whiteSpace = 'nowrap';\n ghost.style.display = 'flex';\n ghost.style.alignItems = 'center';\n ghost.style.textTransform = 'capitalize';\n ghost.innerHTML = fieldData.formElementType;\n this.component.shadowRoot.appendChild(ghost);\n\n // Info chip at bottom of screen\n const chip = document.createElement('div');\n chip.id = 'ls-esc-chip';\n chip.style.position = 'fixed';\n chip.style.bottom = '1.5rem';\n chip.style.left = '50%';\n chip.style.transform = 'translateX(-50%)';\n chip.style.padding = '0.375rem 0.75rem';\n chip.style.borderRadius = '0.625rem';\n chip.style.background = 'var(--gray-100, #1f2937)';\n chip.style.color = 'white';\n chip.style.fontSize = '0.75rem';\n chip.style.fontFamily = 'var(--font-family, IBM Plex Sans, sans-serif)';\n chip.style.pointerEvents = 'none';\n chip.style.zIndex = '10000';\n chip.style.boxShadow = '0 4px 6px -1px rgba(0, 0, 0, 0.1)';\n chip.textContent = 'Press Esc to cancel field placement';\n this.component.shadowRoot.appendChild(chip);\n\n const onMouseMove = (e: MouseEvent) => {\n e.preventDefault();\n hasMoved = true;\n const dragWidth = fieldData.defaultWidth * zoom;\n const dragHeight = fieldData.defaultHeight * zoom;\n ghost.style.visibility = 'visible';\n\n const frameRect = frame.getBoundingClientRect();\n const isOverFrame = e.clientX >= frameRect.left && e.clientX <= frameRect.right &&\n e.clientY >= frameRect.top && e.clientY <= frameRect.bottom;\n\n if (isOverFrame) {\n ghost.style.opacity = '1';\n const x = e.clientX - frameRect.left + frame.scrollLeft;\n const y = e.clientY - frameRect.top + frame.scrollTop;\n let left = x - dragWidth / 2;\n let top = y - dragHeight / 2;\n\n const fields = Array.from(this.component.shadowRoot.querySelectorAll('ls-editor-field')) as HTMLLsEditorFieldElement[];\n const snap = calculateSnap(left, top, dragWidth, dragHeight, fields, this.pageNum);\n ghost.style.left = (snap.x !== null ? snap.x + frameRect.left - frame.scrollLeft : e.clientX - dragWidth / 2) + 'px';\n ghost.style.top = (snap.y !== null ? snap.y + frameRect.top - frame.scrollTop : e.clientY - dragHeight / 2) + 'px';\n\n showSnapGuides.bind(this)(snap.guides);\n } else {\n ghost.style.opacity = '0.5';\n ghost.style.left = (e.clientX - dragWidth / 2) + 'px';\n ghost.style.top = (e.clientY - dragHeight / 2) + 'px';\n clearSnapGuides.bind(this)();\n }\n };\n\n const cleanup = () => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n document.removeEventListener('keydown', onKeyDown);\n ghost.remove();\n chip.remove();\n clearSnapGuides.bind(this)();\n document.body.style.userSelect = '';\n const cursorStyle = document.getElementById('ls-drag-cursor');\n if (cursorStyle) cursorStyle.remove();\n this.component.shadowRoot.querySelectorAll('ls-left-bar, ls-compose-loader').forEach(bar => {\n bar.shadowRoot?.querySelectorAll('ls-toolbox-field').forEach(el => el.classList.remove('ls-dv-dragging'));\n });\n this._isToolboxDragging = false;\n this._cancelToolboxDrag = null;\n };\n\n const onMouseUp = (e: MouseEvent) => {\n // Ignore mouseup if it's from the same click that started the drag (no movement yet)\n if (!hasMoved) return;\n\n const frameRect = frame.getBoundingClientRect();\n const shouldPlace = e.clientX >= frameRect.left && e.clientX <= frameRect.right &&\n e.clientY >= frameRect.top && e.clientY <= frameRect.bottom;\n\n cleanup();\n\n if (shouldPlace) {\n\n const dragWidth = fieldData.defaultWidth * zoom;\n const dragHeight = fieldData.defaultHeight * zoom;\n const x = e.clientX - frameRect.left + frame.scrollLeft;\n const y = e.clientY - frameRect.top + frame.scrollTop;\n let left = x - dragWidth / 2;\n let top = y - dragHeight / 2;\n\n const fields = Array.from(this.component.shadowRoot.querySelectorAll('ls-editor-field')) as HTMLLsEditorFieldElement[];\n const snap = calculateSnap(left, top, dragWidth, dragHeight, fields, this.pageNum);\n if (snap.x !== null) left = snap.x;\n if (snap.y !== null) top = snap.y;\n\n const finalTop = top / zoom;\n const finalLeft = left / zoom;\n\n // Check if field fits on page - constrain to page boundaries\n const pageWidth = this.pageDimensions[this.pageNum - 1].width;\n const pageHeight = this.pageDimensions[this.pageNum - 1].height;\n const constrainedLeft = Math.max(0, Math.min(finalLeft, pageWidth - fieldData.defaultWidth));\n const constrainedTop = Math.max(0, Math.min(finalTop, pageHeight - fieldData.defaultHeight));\n\n this.component.shadowRoot.querySelectorAll('ls-editor-field').forEach(f => (f.selected = false));\n\n const id = btoa('ele' + crypto.randomUUID());\n const newData: LSMutateEvent = {\n action: 'create',\n data: {\n id,\n value: '',\n formElementType: fieldData.formElementType,\n elementType: fieldData.elementType,\n validation: fieldData.validation,\n substantive: false,\n top: constrainedTop,\n left: constrainedLeft,\n hideBorder: false,\n height: fieldData.defaultHeight,\n width: fieldData.defaultWidth,\n pageDimensions: this.pageDimensions[this.pageNum - 1],\n fontName: this.fontFamily,\n fontSize: this.fontSize,\n align: 'left',\n signer: this.signer,\n page: this.pageNum,\n mapTo: null,\n label: '',\n helpText: null,\n logicGroup: null,\n optional: false,\n options: null,\n logicAction: null,\n labelExtra: null,\n fieldOrder: null,\n ax: constrainedLeft > 0 ? constrainedLeft / this.pageDimensions[this.pageNum - 1].width : 0,\n ay: constrainedTop > 0 ? constrainedTop / this.pageDimensions[this.pageNum - 1].height : 0,\n bx: (constrainedLeft + fieldData.defaultWidth) / this.pageDimensions[this.pageNum - 1].width,\n by: (constrainedTop + fieldData.defaultHeight) / this.pageDimensions[this.pageNum - 1].height,\n templateId: this._template.id,\n } as LSApiElement,\n };\n\n this.mutate.emit([newData]);\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n cleanup();\n }\n };\n\n this._cancelToolboxDrag = cleanup;\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n document.addEventListener('keydown', onKeyDown);\n}\n\nexport function mouseDoubleClick(event) {\n // Disable double-click field creation in preview mode or when template is locked\n if (this.mode === 'preview' || this._template?.locked) {\n return;\n }\n \n console.log('double click', this.fieldTypeSelected, this.signer);\n try {\n let data: IToolboxField = this.fieldTypeSelected as IToolboxField;\n\n if (this.checkType('APPROVER') && data.elementType === 'signature') {\n data = {\n label: 'Text',\n formElementType: 'text',\n elementType: 'text',\n validation: 0,\n defaultHeight: FIELD_DEFAULTS['text'].defaultHeight,\n defaultWidth: FIELD_DEFAULTS['text'].defaultWidth,\n };\n }\n // Unselect all current selected items\n this.component.shadowRoot.querySelectorAll('ls-editor-field').forEach(f => (f.selected = false));\n var frame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLElement;\n // Make a new API compatible id for a template element (prefix 'ele')\n const id = btoa('ele' + crypto.randomUUID());\n const top = event.offsetY / this.zoom + frame.scrollTop;\n const left = event.offsetX / this.zoom + frame.scrollLeft;\n\n // TODO: Put these defaults somewhere sensible\n const newData: LSMutateEvent = {\n action: 'create',\n data: {\n id,\n value: '',\n formElementType: data.formElementType,\n elementType: data.elementType,\n validation: data.validation,\n substantive: false,\n top,\n left,\n hideBorder: false,\n height: data.defaultHeight,\n width: data.defaultWidth,\n pageDimensions: this.pageDimensions[this.pageNum - 1],\n fontName: DEFAULT_FONT_NAME,\n fontSize: DEFAULT_FONT_SIZE,\n align: 'left',\n signer: this.signer,\n page: this.pageNum,\n mapTo: null,\n label: '',\n helpText: null,\n logicGroup: null,\n optional: false,\n options: null,\n logicAction: null,\n labelExtra: null,\n fieldOrder: null,\n ax: left > 0 ? left / this.pageDimensions[this.pageNum - 1].width : 0,\n ay: top > 0 ? top / this.pageDimensions[this.pageNum - 1].height : 0,\n bx: (left + data.defaultWidth) / this.pageDimensions[this.pageNum - 1].width,\n by: (top + data.defaultHeight) / this.pageDimensions[this.pageNum - 1].height,\n templateId: this._template.id,\n } as LSApiElement,\n };\n this.mutate.emit([newData]);\n } catch (e) {\n console.error(e);\n }\n}\n"]}
@@ -2,7 +2,7 @@ import { t as transformTag, p as proxyCustomElement, H, d as createEvent, h, c a
2
2
  import { d as dvI18n } from './p-B8VmBxFg.js';
3
3
  import { o as oob, m as moveField, u as updateTemplate, r as recalculateCoordinates, s as syncRoles, d as defineCustomElement$L, a as matchData, g as getInputType, v as validate, b as getApiType, c as addField, e as getTemplate } from './p-MG59mYF3.js';
4
4
  import { D as DEFAULT_FONT_SIZE$1, a as DEFAULT_FONT_NAME, F as FIELD_DEFAULTS } from './p-B3gB_457.js';
5
- import { u as updateSelectionBox, d as defineCustomElement$F, t as toolboxDragStart, m as mouseClick, a as mouseDown, b as mouseMove, c as mouseUp, e as mouseDoubleClick } from './p-Ca0za3x4.js';
5
+ import { u as updateSelectionBox, d as defineCustomElement$F, t as toolboxDragStart, m as mouseClick, a as mouseDown, b as mouseMove, c as mouseUp, e as mouseDoubleClick } from './p-j1rAIT-X.js';
6
6
  import { d as defineCustomElement$P } from './p-BYHrh00m.js';
7
7
  import { d as defineCustomElement$O } from './p-DLtUiUbu.js';
8
8
  import { d as defineCustomElement$N } from './p-D-mPHPaO.js';
@@ -15,7 +15,7 @@ import { d as defineCustomElement$G } from './p-C0RAZYKW.js';
15
15
  import { d as defineCustomElement$E } from './p-CyQvboOz.js';
16
16
  import { d as defineCustomElement$D } from './p-DvVSXyfE.js';
17
17
  import { d as defineCustomElement$C } from './p-CQVcPp7I.js';
18
- import { d as defineCustomElement$B } from './p-Bi-96wyB.js';
18
+ import { d as defineCustomElement$B } from './p-BnrAwLD3.js';
19
19
  import { d as defineCustomElement$A } from './p-Ci6AP0jT.js';
20
20
  import { d as defineCustomElement$z } from './p-Cm69fGZy.js';
21
21
  import { d as defineCustomElement$y } from './p-DRcpbaNd.js';
@@ -24,7 +24,7 @@ import { d as defineCustomElement$w } from './p-Iy7DUSnq.js';
24
24
  import { d as defineCustomElement$v } from './p-B_88roRV.js';
25
25
  import { d as defineCustomElement$u } from './p-DPZ4R8tR.js';
26
26
  import { d as defineCustomElement$t } from './p-C5Jz_eCB.js';
27
- import { d as defineCustomElement$s } from './p-CsOp_TpT.js';
27
+ import { d as defineCustomElement$s } from './p-DdS3vht-.js';
28
28
  import { d as defineCustomElement$r } from './p-lImp2h8Q.js';
29
29
  import { d as defineCustomElement$q } from './p-CItLrDhm.js';
30
30
  import { d as defineCustomElement$p } from './p-s20HlPHN.js';
@@ -34,7 +34,7 @@ import { d as defineCustomElement$m } from './p-1ddWJmvW.js';
34
34
  import { d as defineCustomElement$l } from './p-CB9tEjJy.js';
35
35
  import { d as defineCustomElement$k } from './p-CyKYlaAh.js';
36
36
  import { d as defineCustomElement$j } from './p-DdCwAPae.js';
37
- import { d as defineCustomElement$i } from './p-Bn-sVQSR.js';
37
+ import { d as defineCustomElement$i } from './p-DKbMooLM.js';
38
38
  import { d as defineCustomElement$h } from './p-CoUvqjky.js';
39
39
  import { d as defineCustomElement$g } from './p-i4y_Venf.js';
40
40
  import { d as defineCustomElement$f } from './p-CczRGS7Y.js';
@@ -44,7 +44,7 @@ import { d as defineCustomElement$c } from './p-1e4klocT.js';
44
44
  import { d as defineCustomElement$b } from './p-B9uklVCX.js';
45
45
  import { d as defineCustomElement$a } from './p-DYJoT5OC.js';
46
46
  import { d as defineCustomElement$9 } from './p-CF3y5NYY.js';
47
- import { d as defineCustomElement$8 } from './p-DV7g4lCp.js';
47
+ import { d as defineCustomElement$8 } from './p-Dn4CLyZh.js';
48
48
  import { d as defineCustomElement$7 } from './p-1dutDvgl.js';
49
49
  import { d as defineCustomElement$6 } from './p-DVM-djDm.js';
50
50
  import { d as defineCustomElement$5 } from './p-5bn-NO5u.js';
@@ -30072,7 +30072,7 @@ const Parameters = {
30072
30072
  endpoints: {
30073
30073
  graphQL: "https://dypxviim4zgwtpev7valhchaem.appsync-api.eu-west-2.amazonaws.com/graphql"}};
30074
30074
 
30075
- // Construct all mutations for a template element.
30075
+ // Construct all mutations for a template element. ADMIN is for sender fields
30076
30076
  const createElement = element => {
30077
30077
  return `
30078
30078
  mutation AddField {
@@ -30082,7 +30082,7 @@ const createElement = element => {
30082
30082
  ay: ${element.ay},
30083
30083
  bx: ${element.bx},
30084
30084
  by: ${element.by},
30085
- elementType: ${element?.signer !== 0 ? JSON.stringify(element.elementType) : 'admin'},
30085
+ elementType: ${element?.signer !== 0 ? JSON.stringify(element.elementType) : JSON.stringify('admin')},
30086
30086
  role: "1",
30087
30087
  label: ${JSON.stringify(element.label)},
30088
30088
  page: ${element.page},
@@ -30113,7 +30113,7 @@ const updateElement = element => {
30113
30113
  ay: ${element.ay},
30114
30114
  bx: ${element.bx},
30115
30115
  by: ${element.by},
30116
- elementType: ${element?.signer !== 0 ? JSON.stringify(element.elementType) : 'admin'},
30116
+ elementType: ${element?.signer !== 0 ? JSON.stringify(element.elementType) : JSON.stringify('admin')},
30117
30117
  label: ${JSON.stringify(element.label)},
30118
30118
  page: ${element.page},
30119
30119
  fieldOrder: ${element.fieldOrder ? element.fieldOrder : null},