legalesign-document-viewer 0.10.7 → 0.10.8

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 (348) hide show
  1. package/dist/cjs/defaultFieldLabels-BUxtUsF1.js +67 -0
  2. package/dist/cjs/defaultFieldLabels-BUxtUsF1.js.map +1 -0
  3. package/dist/cjs/{editorUtils-DNCtWIYh.js → editorUtils-Bwf1xDdc.js} +5 -3
  4. package/dist/cjs/editorUtils-Bwf1xDdc.js.map +1 -0
  5. package/dist/cjs/history-W8FR8iDj.js +156 -0
  6. package/dist/cjs/history-W8FR8iDj.js.map +1 -0
  7. package/dist/cjs/{i18n-BtiWqT4M.js → i18n-ROQG0wTX.js} +62 -21
  8. package/dist/cjs/{i18n-BtiWqT4M.js.map → i18n-ROQG0wTX.js.map} +1 -1
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/cjs/ls-add-new-button_20.cjs.entry.js +211 -30
  11. package/dist/cjs/ls-assignee-select_21.cjs.entry.js +116 -90
  12. package/dist/cjs/ls-compose-loader_7.cjs.entry.js +54 -26
  13. package/dist/cjs/ls-compose-manager.cjs.entry.js +1 -1
  14. package/dist/cjs/ls-document-viewer.cjs.entry.js +151 -11
  15. package/dist/cjs/ls-document-viewer.cjs.js +1 -1
  16. package/dist/cjs/ls-field-alignment_3.cjs.entry.js +5 -4
  17. package/dist/cjs/ls-field-format_2.cjs.entry.js +32 -37
  18. package/dist/cjs/ls-field-properties-dropdown.cjs.entry.js +1 -1
  19. package/dist/cjs/ls-field-type-display.cjs.entry.js +4 -4
  20. package/dist/cjs/ls-helper-bar_2.cjs.entry.js +7 -4
  21. package/dist/cjs/ls-title-input.cjs.entry.js +1 -1
  22. package/dist/cjs/ls-toolbox-field.cjs.entry.js +3 -3
  23. package/dist/cjs/{mouseHandlers-BrvcIyzu.js → mouseHandlers-DTV5t8jK.js} +15 -8
  24. package/dist/cjs/mouseHandlers-DTV5t8jK.js.map +1 -0
  25. package/dist/collection/components/ls-document-options/ls-document-options.js +5 -1
  26. package/dist/collection/components/ls-document-options/ls-document-options.js.map +1 -1
  27. package/dist/collection/components/ls-document-viewer/editorUtils.js +2 -0
  28. package/dist/collection/components/ls-document-viewer/editorUtils.js.map +1 -1
  29. package/dist/collection/components/ls-document-viewer/generateRoles.js +2 -2
  30. package/dist/collection/components/ls-document-viewer/generateRoles.js.map +1 -1
  31. package/dist/collection/components/ls-document-viewer/history.js +156 -0
  32. package/dist/collection/components/ls-document-viewer/history.js.map +1 -0
  33. package/dist/collection/components/ls-document-viewer/keyHandlers.js +31 -0
  34. package/dist/collection/components/ls-document-viewer/keyHandlers.js.map +1 -1
  35. package/dist/collection/components/ls-document-viewer/ls-document-viewer.js +118 -6
  36. package/dist/collection/components/ls-document-viewer/ls-document-viewer.js.map +1 -1
  37. package/dist/collection/components/ls-document-viewer/mouseHandlers.js +11 -4
  38. package/dist/collection/components/ls-document-viewer/mouseHandlers.js.map +1 -1
  39. package/dist/collection/components/ls-editor-field/ls-editor-field.css +5 -0
  40. package/dist/collection/components/ls-editor-field/ls-editor-field.js +54 -22
  41. package/dist/collection/components/ls-editor-field/ls-editor-field.js.map +1 -1
  42. package/dist/collection/components/ls-field-content/ls-field-content.js +52 -14
  43. package/dist/collection/components/ls-field-content/ls-field-content.js.map +1 -1
  44. package/dist/collection/components/ls-field-format/ls-field-format.css +5 -0
  45. package/dist/collection/components/ls-field-format/ls-field-format.js +20 -25
  46. package/dist/collection/components/ls-field-format/ls-field-format.js.map +1 -1
  47. package/dist/collection/components/ls-field-placement/ls-field-placement.js +1 -1
  48. package/dist/collection/components/ls-field-properties/ls-field-properties.js +1 -1
  49. package/dist/collection/components/ls-field-properties-advanced/ls-field-properties-advanced.js +2 -2
  50. package/dist/collection/components/ls-field-properties-autosign/ls-field-properties-autosign.js +1 -1
  51. package/dist/collection/components/ls-field-properties-checkbox/ls-field-properties-checkbox.js +1 -1
  52. package/dist/collection/components/ls-field-properties-container/ls-field-properties-container.js +1 -1
  53. package/dist/collection/components/ls-field-properties-date/ls-field-properties-date.js +1 -1
  54. package/dist/collection/components/ls-field-properties-dropdown/ls-field-properties-dropdown.js +1 -1
  55. package/dist/collection/components/ls-field-properties-email/ls-field-properties-email.js +1 -1
  56. package/dist/collection/components/ls-field-properties-file/ls-field-properties-file.js +1 -1
  57. package/dist/collection/components/ls-field-properties-general/ls-field-properties-general.js +1 -1
  58. package/dist/collection/components/ls-field-properties-multiple/ls-field-properties-multiple.css +15 -0
  59. package/dist/collection/components/ls-field-properties-multiple/ls-field-properties-multiple.js +188 -2
  60. package/dist/collection/components/ls-field-properties-multiple/ls-field-properties-multiple.js.map +1 -1
  61. package/dist/collection/components/ls-field-properties-number/ls-field-properties-number.js +1 -1
  62. package/dist/collection/components/ls-field-properties-signature/ls-field-properties-signature.js +1 -1
  63. package/dist/collection/components/ls-field-properties-text/ls-field-properties-text.js +1 -1
  64. package/dist/collection/components/ls-field-size/ls-field-size.js +1 -1
  65. package/dist/collection/components/ls-field-type-display/ls-field-type-display.js +3 -3
  66. package/dist/collection/components/ls-field-type-select/ls-field-type-select.js +4 -4
  67. package/dist/collection/components/ls-helper-bar/ls-helper-bar.js +2 -1
  68. package/dist/collection/components/ls-helper-bar/ls-helper-bar.js.map +1 -1
  69. package/dist/collection/components/ls-input-wrapper/ls-input-wrapper.js +1 -1
  70. package/dist/collection/components/ls-keyboard-shortcuts/ls-keyboard-shortcuts.css +1 -6
  71. package/dist/collection/components/ls-keyboard-shortcuts/ls-keyboard-shortcuts.js +3 -1
  72. package/dist/collection/components/ls-keyboard-shortcuts/ls-keyboard-shortcuts.js.map +1 -1
  73. package/dist/collection/components/ls-left-bar/ls-left-bar.css +12 -0
  74. package/dist/collection/components/ls-left-bar/ls-left-bar.js +2 -2
  75. package/dist/collection/components/ls-left-bar/ls-left-bar.js.map +1 -1
  76. package/dist/collection/components/ls-participant-manager/ls-participant-manager.js +3 -3
  77. package/dist/collection/components/ls-participant-select/ls-participant-select.js +10 -10
  78. package/dist/collection/components/ls-props-section/ls-props-section.js +1 -1
  79. package/dist/collection/components/ls-recipient-card/ls-recipient-card.js +5 -5
  80. package/dist/collection/components/ls-recipient-manager/ls-recipient-manager.js +1 -1
  81. package/dist/collection/components/ls-statusbar/ls-statusbar.css +16 -6
  82. package/dist/collection/components/ls-statusbar/ls-statusbar.js +39 -14
  83. package/dist/collection/components/ls-statusbar/ls-statusbar.js.map +1 -1
  84. package/dist/collection/components/ls-title-input/ls-title-input.js +1 -1
  85. package/dist/collection/components/ls-toggle/ls-toggle.js +3 -2
  86. package/dist/collection/components/ls-toggle/ls-toggle.js.map +1 -1
  87. package/dist/collection/components/ls-toolbar/ls-toolbar.css +67 -0
  88. package/dist/collection/components/ls-toolbar/ls-toolbar.js +8 -5
  89. package/dist/collection/components/ls-toolbar/ls-toolbar.js.map +1 -1
  90. package/dist/collection/components/ls-toolbox-field/ls-toolbox-field.js +3 -3
  91. package/dist/collection/components/ls-validation-manager/ls-validation-manager.js +2 -2
  92. package/dist/collection/components/ls-validation-tag/ls-validation-tag.js +2 -2
  93. package/dist/components/ls-assignee-select.js +1 -1
  94. package/dist/components/ls-compose-manager.js +1 -1
  95. package/dist/components/ls-document-options.js +1 -1
  96. package/dist/components/ls-document-viewer.js +193 -52
  97. package/dist/components/ls-document-viewer.js.map +1 -1
  98. package/dist/components/ls-editor-field.js +1 -1
  99. package/dist/components/ls-feature-column.js +1 -1
  100. package/dist/components/ls-field-alignment.js +1 -1
  101. package/dist/components/ls-field-content.js +1 -1
  102. package/dist/components/ls-field-dimensions.js +1 -1
  103. package/dist/components/ls-field-distribute.js +1 -1
  104. package/dist/components/ls-field-footer.js +1 -1
  105. package/dist/components/ls-field-format.js +1 -1
  106. package/dist/components/ls-field-placement.js +1 -1
  107. package/dist/components/ls-field-properties-advanced.js +1 -1
  108. package/dist/components/ls-field-properties-autosign.js +1 -1
  109. package/dist/components/ls-field-properties-checkbox.js +1 -1
  110. package/dist/components/ls-field-properties-container.js +1 -1
  111. package/dist/components/ls-field-properties-date.js +1 -1
  112. package/dist/components/ls-field-properties-dropdown.js +13 -13
  113. package/dist/components/ls-field-properties-email.js +1 -1
  114. package/dist/components/ls-field-properties-file.js +1 -1
  115. package/dist/components/ls-field-properties-general.js +1 -1
  116. package/dist/components/ls-field-properties-multiple.js +1 -1
  117. package/dist/components/ls-field-properties-number.js +1 -1
  118. package/dist/components/ls-field-properties-signature.js +1 -1
  119. package/dist/components/ls-field-properties-text.js +1 -1
  120. package/dist/components/ls-field-properties.js +1 -1
  121. package/dist/components/ls-field-size.js +1 -1
  122. package/dist/components/ls-field-type-display.js +4 -4
  123. package/dist/components/ls-field-type-select.js +1 -1
  124. package/dist/components/ls-helper-bar.js +1 -1
  125. package/dist/components/ls-input-wrapper.js +1 -1
  126. package/dist/components/ls-keyboard-shortcuts.js +1 -1
  127. package/dist/components/ls-left-bar.js +1 -1
  128. package/dist/components/ls-participant-card.js +1 -1
  129. package/dist/components/ls-participant-manager.js +1 -1
  130. package/dist/components/ls-participant-select.js +1 -1
  131. package/dist/components/ls-props-section.js +1 -1
  132. package/dist/components/ls-recipient-card.js +1 -1
  133. package/dist/components/ls-recipient-manager.js +1 -1
  134. package/dist/components/ls-select-menu.js +1 -1
  135. package/dist/components/ls-statusbar.js +1 -1
  136. package/dist/components/ls-title-input.js +1 -1
  137. package/dist/components/ls-toggle.js +1 -1
  138. package/dist/components/ls-toolbar.js +1 -1
  139. package/dist/components/ls-toolbox-field.js +1 -1
  140. package/dist/components/ls-validation-manager.js +1 -1
  141. package/dist/components/ls-validation-tag.js +1 -1
  142. package/dist/components/p--oiqur2Y.js +63 -0
  143. package/dist/components/p--oiqur2Y.js.map +1 -0
  144. package/dist/components/{p-Bei-kRR8.js → p-4Q3WDLPO.js} +3 -3
  145. package/dist/components/{p-Bei-kRR8.js.map → p-4Q3WDLPO.js.map} +1 -1
  146. package/dist/components/{p-4gV4L29s.js → p-B2tOaKjM.js} +14 -11
  147. package/dist/components/p-B2tOaKjM.js.map +1 -0
  148. package/dist/components/{p-Cp97dEu1.js → p-B50exKU0.js} +15 -8
  149. package/dist/components/p-B50exKU0.js.map +1 -0
  150. package/dist/components/{p-C3EQyJnL.js → p-BAe1pF4V.js} +15 -15
  151. package/dist/components/{p-C3EQyJnL.js.map → p-BAe1pF4V.js.map} +1 -1
  152. package/dist/components/{p-BywNjpNj.js → p-BCFyGEc0.js} +3 -3
  153. package/dist/components/{p-BywNjpNj.js.map → p-BCFyGEc0.js.map} +1 -1
  154. package/dist/components/{p-SMjYjOpc.js → p-BLyCAsyj.js} +15 -15
  155. package/dist/components/{p-SMjYjOpc.js.map → p-BLyCAsyj.js.map} +1 -1
  156. package/dist/components/{p-D6EVaJ8X.js → p-BN-YTiCL.js} +15 -15
  157. package/dist/components/{p-D6EVaJ8X.js.map → p-BN-YTiCL.js.map} +1 -1
  158. package/dist/components/{p-CQqYrZK0.js → p-BSjFM6gD.js} +54 -62
  159. package/dist/components/p-BSjFM6gD.js.map +1 -0
  160. package/dist/components/{p-CNhwdh1g.js → p-BV-01LA3.js} +5 -5
  161. package/dist/components/{p-CNhwdh1g.js.map → p-BV-01LA3.js.map} +1 -1
  162. package/dist/components/{p-BlpHsiTW.js → p-BWD7Q18A.js} +7 -7
  163. package/dist/components/{p-BlpHsiTW.js.map → p-BWD7Q18A.js.map} +1 -1
  164. package/dist/components/{p-CwOpOlYM.js → p-BefbdHPA.js} +4 -4
  165. package/dist/components/{p-CwOpOlYM.js.map → p-BefbdHPA.js.map} +1 -1
  166. package/dist/components/{p-Cqh5uPur.js → p-BlT6_8qi.js} +15 -15
  167. package/dist/components/{p-Cqh5uPur.js.map → p-BlT6_8qi.js.map} +1 -1
  168. package/dist/components/{p-DuK5cRiE.js → p-BrcXCfUL.js} +4 -4
  169. package/dist/components/{p-DuK5cRiE.js.map → p-BrcXCfUL.js.map} +1 -1
  170. package/dist/components/{p-BEUe9m-V.js → p-Bt3HoxFC.js} +28 -28
  171. package/dist/components/{p-BEUe9m-V.js.map → p-Bt3HoxFC.js.map} +1 -1
  172. package/dist/components/{p-Bbs-s2fr.js → p-Bz8q9PGu.js} +7 -5
  173. package/dist/components/p-Bz8q9PGu.js.map +1 -0
  174. package/dist/components/{p-uOPhzhT0.js → p-CASNnWoE.js} +15 -15
  175. package/dist/components/{p-uOPhzhT0.js.map → p-CASNnWoE.js.map} +1 -1
  176. package/dist/components/{p-BgifFNcO.js → p-CMMi7oOz.js} +4 -4
  177. package/dist/components/{p-BgifFNcO.js.map → p-CMMi7oOz.js.map} +1 -1
  178. package/dist/components/{p-DOyKMEqc.js → p-CTHSflZn.js} +5 -4
  179. package/dist/components/p-CTHSflZn.js.map +1 -0
  180. package/dist/components/{p-DRkW9Fmh.js → p-CTVpVzES.js} +4 -4
  181. package/dist/components/{p-DRkW9Fmh.js.map → p-CTVpVzES.js.map} +1 -1
  182. package/dist/components/{p-C3NYL36q.js → p-Chd5q8Qg.js} +3 -3
  183. package/dist/components/{p-C3NYL36q.js.map → p-Chd5q8Qg.js.map} +1 -1
  184. package/dist/components/p-CjRottqE.js +117 -0
  185. package/dist/components/p-CjRottqE.js.map +1 -0
  186. package/dist/components/{p-B8TXLd1r.js → p-CsbnxjD_.js} +5 -5
  187. package/dist/components/{p-B8TXLd1r.js.map → p-CsbnxjD_.js.map} +1 -1
  188. package/dist/components/{p-DAKipkhq.js → p-D-UanzXb.js} +215 -31
  189. package/dist/components/p-D-UanzXb.js.map +1 -0
  190. package/dist/components/{p-uZtaSDbk.js → p-D9bj8DRO.js} +7 -7
  191. package/dist/components/{p-uZtaSDbk.js.map → p-D9bj8DRO.js.map} +1 -1
  192. package/dist/components/{p-FmDHT1uc.js → p-DB1zagxM.js} +3 -3
  193. package/dist/components/{p-FmDHT1uc.js.map → p-DB1zagxM.js.map} +1 -1
  194. package/dist/components/{p-Bc8HVPXS.js → p-DB6m1_YD.js} +9 -5
  195. package/dist/components/p-DB6m1_YD.js.map +1 -0
  196. package/dist/components/{p-CZgQiWRx.js → p-DJRBibyg.js} +8 -8
  197. package/dist/components/{p-CZgQiWRx.js.map → p-DJRBibyg.js.map} +1 -1
  198. package/dist/components/{p-DBgOLxGO.js → p-DOCGlgAr.js} +3 -3
  199. package/dist/components/{p-DBgOLxGO.js.map → p-DOCGlgAr.js.map} +1 -1
  200. package/dist/components/p-DQak0VIj.js +150 -0
  201. package/dist/components/p-DQak0VIj.js.map +1 -0
  202. package/dist/components/{p-pNCeCFPr.js → p-DUJCLlqw.js} +6 -6
  203. package/dist/components/{p-pNCeCFPr.js.map → p-DUJCLlqw.js.map} +1 -1
  204. package/dist/components/{p-BRCeXLTw.js → p-Dahoxblr.js} +6 -6
  205. package/dist/components/{p-BRCeXLTw.js.map → p-Dahoxblr.js.map} +1 -1
  206. package/dist/components/{p-DRfaZObI.js → p-DhdKhwId.js} +6 -5
  207. package/dist/components/p-DhdKhwId.js.map +1 -0
  208. package/dist/components/{p-BfGTT3mh.js → p-DlcDI6kK.js} +13 -13
  209. package/dist/components/{p-BfGTT3mh.js.map → p-DlcDI6kK.js.map} +1 -1
  210. package/dist/components/p-DoyYCoU2.js +305 -0
  211. package/dist/components/p-DoyYCoU2.js.map +1 -0
  212. package/dist/components/{p-p1ood2RQ.js → p-Dq09fOyL.js} +60 -26
  213. package/dist/components/p-Dq09fOyL.js.map +1 -0
  214. package/dist/components/{p-BR-zVSL4.js → p-DsriRarp.js} +15 -15
  215. package/dist/components/{p-BR-zVSL4.js.map → p-DsriRarp.js.map} +1 -1
  216. package/dist/components/{p-B0Dms5e9.js → p-FkIYS3SZ.js} +15 -15
  217. package/dist/components/{p-B0Dms5e9.js.map → p-FkIYS3SZ.js.map} +1 -1
  218. package/dist/components/{p-nMyY2vMV.js → p-H_-PkGDt.js} +3 -3
  219. package/dist/components/{p-nMyY2vMV.js.map → p-H_-PkGDt.js.map} +1 -1
  220. package/dist/components/{p-ytl98tqC.js → p-MkGn1lk8.js} +3 -3
  221. package/dist/components/{p-ytl98tqC.js.map → p-MkGn1lk8.js.map} +1 -1
  222. package/dist/components/{p-D0AJNlSr.js → p-MkVTvl3K.js} +3 -3
  223. package/dist/components/{p-D0AJNlSr.js.map → p-MkVTvl3K.js.map} +1 -1
  224. package/dist/components/{p-0fR5VYAY.js → p-gi1f0aTq.js} +41 -41
  225. package/dist/components/p-gi1f0aTq.js.map +1 -0
  226. package/dist/components/{p-BHviU9gs.js → p-jGuTbzzv.js} +4 -4
  227. package/dist/components/{p-BHviU9gs.js.map → p-jGuTbzzv.js.map} +1 -1
  228. package/dist/components/{p-DNmBAfTc.js → p-nWzKm7OR.js} +15 -15
  229. package/dist/components/{p-DNmBAfTc.js.map → p-nWzKm7OR.js.map} +1 -1
  230. package/dist/{esm/i18n-UgyxEpoj.js → components/p-xWlEB8_Z.js} +62 -21
  231. package/dist/components/{p-UgyxEpoj.js.map → p-xWlEB8_Z.js.map} +1 -1
  232. package/dist/components/{p-EpPzEZnP.js → p-y2Qq_iKy.js} +9 -9
  233. package/dist/components/{p-EpPzEZnP.js.map → p-y2Qq_iKy.js.map} +1 -1
  234. package/dist/esm/defaultFieldLabels-GlbzVGpj.js +63 -0
  235. package/dist/esm/defaultFieldLabels-GlbzVGpj.js.map +1 -0
  236. package/dist/esm/{editorUtils-CXgTcK7o.js → editorUtils-DxEtiJLH.js} +6 -4
  237. package/dist/esm/editorUtils-DxEtiJLH.js.map +1 -0
  238. package/dist/esm/history-DQak0VIj.js +150 -0
  239. package/dist/esm/history-DQak0VIj.js.map +1 -0
  240. package/dist/{components/p-UgyxEpoj.js → esm/i18n-xWlEB8_Z.js} +62 -21
  241. package/dist/esm/{i18n-UgyxEpoj.js.map → i18n-xWlEB8_Z.js.map} +1 -1
  242. package/dist/esm/loader.js +1 -1
  243. package/dist/esm/ls-add-new-button_20.entry.js +210 -29
  244. package/dist/esm/ls-assignee-select_21.entry.js +115 -89
  245. package/dist/esm/ls-compose-loader_7.entry.js +54 -26
  246. package/dist/esm/ls-compose-manager.entry.js +1 -1
  247. package/dist/esm/ls-document-viewer.entry.js +151 -11
  248. package/dist/esm/ls-document-viewer.entry.js.map +1 -1
  249. package/dist/esm/ls-document-viewer.js +1 -1
  250. package/dist/esm/ls-field-alignment_3.entry.js +5 -4
  251. package/dist/esm/ls-field-format_2.entry.js +32 -37
  252. package/dist/esm/ls-field-properties-dropdown.entry.js +1 -1
  253. package/dist/esm/ls-field-type-display.entry.js +4 -4
  254. package/dist/esm/ls-helper-bar_2.entry.js +7 -4
  255. package/dist/esm/ls-title-input.entry.js +1 -1
  256. package/dist/esm/ls-toolbox-field.entry.js +3 -3
  257. package/dist/esm/{mouseHandlers-D46yjCjC.js → mouseHandlers-bjEdgN0l.js} +15 -8
  258. package/dist/esm/mouseHandlers-bjEdgN0l.js.map +1 -0
  259. package/dist/ls-document-viewer/ls-document-viewer.esm.js +1 -1
  260. package/dist/ls-document-viewer/p-59f14d34.entry.js +24 -0
  261. package/dist/ls-document-viewer/p-59f14d34.entry.js.map +1 -0
  262. package/dist/ls-document-viewer/{p-ecb9432a.entry.js → p-7f956e56.entry.js} +2 -2
  263. package/dist/ls-document-viewer/p-8795651c.entry.js +2 -0
  264. package/dist/ls-document-viewer/p-8795651c.entry.js.map +1 -0
  265. package/dist/ls-document-viewer/p-8adb2a2b.entry.js +2 -0
  266. package/dist/ls-document-viewer/p-8adb2a2b.entry.js.map +1 -0
  267. package/dist/ls-document-viewer/p-8d6d8ce9.entry.js +2 -0
  268. package/dist/ls-document-viewer/p-933aec9d.entry.js +2 -0
  269. package/dist/ls-document-viewer/p-933aec9d.entry.js.map +1 -0
  270. package/dist/ls-document-viewer/p-CUIgrAMe.js +2 -0
  271. package/dist/ls-document-viewer/p-CUIgrAMe.js.map +1 -0
  272. package/dist/ls-document-viewer/p-D5ifsF1H.js +2 -0
  273. package/dist/ls-document-viewer/p-D5ifsF1H.js.map +1 -0
  274. package/dist/ls-document-viewer/p-DQak0VIj.js +2 -0
  275. package/dist/ls-document-viewer/p-DQak0VIj.js.map +1 -0
  276. package/dist/ls-document-viewer/p-GlbzVGpj.js +2 -0
  277. package/dist/ls-document-viewer/p-GlbzVGpj.js.map +1 -0
  278. package/dist/ls-document-viewer/{p-f7cb64d9.entry.js → p-aab8f6b4.entry.js} +2 -2
  279. package/dist/ls-document-viewer/p-af597d06.entry.js +2 -0
  280. package/dist/ls-document-viewer/p-af597d06.entry.js.map +1 -0
  281. package/dist/ls-document-viewer/{p-e448f588.entry.js → p-ca0622f2.entry.js} +2 -2
  282. package/dist/ls-document-viewer/p-d4504d48.entry.js +2 -0
  283. package/dist/ls-document-viewer/p-d4504d48.entry.js.map +1 -0
  284. package/dist/ls-document-viewer/p-d922937d.entry.js +2 -0
  285. package/dist/ls-document-viewer/p-d922937d.entry.js.map +1 -0
  286. package/dist/ls-document-viewer/{p-8941c996.entry.js → p-fc94af7c.entry.js} +2 -2
  287. package/dist/ls-document-viewer/p-xWlEB8_Z.js +2 -0
  288. package/dist/ls-document-viewer/{p-UgyxEpoj.js.map → p-xWlEB8_Z.js.map} +1 -1
  289. package/dist/types/components/ls-document-viewer/history.d.ts +23 -0
  290. package/dist/types/components/ls-document-viewer/ls-document-viewer.d.ts +2 -0
  291. package/dist/types/components/ls-field-content/ls-field-content.d.ts +2 -0
  292. package/dist/types/components/ls-field-format/ls-field-format.d.ts +2 -2
  293. package/dist/types/components/ls-field-properties-multiple/ls-field-properties-multiple.d.ts +20 -0
  294. package/dist/types/components/ls-helper-bar/ls-helper-bar.d.ts +1 -0
  295. package/dist/types/components/ls-statusbar/ls-statusbar.d.ts +2 -0
  296. package/dist/types/components/ls-toolbar/ls-toolbar.d.ts +2 -1
  297. package/package.json +1 -1
  298. package/dist/cjs/editorUtils-DNCtWIYh.js.map +0 -1
  299. package/dist/cjs/fieldTypeUtils-XnJkvOqZ.js +0 -28
  300. package/dist/cjs/fieldTypeUtils-XnJkvOqZ.js.map +0 -1
  301. package/dist/cjs/mouseHandlers-BrvcIyzu.js.map +0 -1
  302. package/dist/components/p-0fR5VYAY.js.map +0 -1
  303. package/dist/components/p-4gV4L29s.js.map +0 -1
  304. package/dist/components/p-Bbs-s2fr.js.map +0 -1
  305. package/dist/components/p-Bc8HVPXS.js.map +0 -1
  306. package/dist/components/p-Bm6GIujP.js +0 -280
  307. package/dist/components/p-Bm6GIujP.js.map +0 -1
  308. package/dist/components/p-CQqYrZK0.js.map +0 -1
  309. package/dist/components/p-Cp97dEu1.js.map +0 -1
  310. package/dist/components/p-DAKipkhq.js.map +0 -1
  311. package/dist/components/p-DKOaSs1P.js +0 -26
  312. package/dist/components/p-DKOaSs1P.js.map +0 -1
  313. package/dist/components/p-DLEAG9ks.js +0 -122
  314. package/dist/components/p-DLEAG9ks.js.map +0 -1
  315. package/dist/components/p-DOyKMEqc.js.map +0 -1
  316. package/dist/components/p-DRfaZObI.js.map +0 -1
  317. package/dist/components/p-p1ood2RQ.js.map +0 -1
  318. package/dist/esm/editorUtils-CXgTcK7o.js.map +0 -1
  319. package/dist/esm/fieldTypeUtils-DKOaSs1P.js +0 -26
  320. package/dist/esm/fieldTypeUtils-DKOaSs1P.js.map +0 -1
  321. package/dist/esm/mouseHandlers-D46yjCjC.js.map +0 -1
  322. package/dist/ls-document-viewer/p-8b035ab4.entry.js +0 -2
  323. package/dist/ls-document-viewer/p-8b035ab4.entry.js.map +0 -1
  324. package/dist/ls-document-viewer/p-C33NzjZH.js +0 -2
  325. package/dist/ls-document-viewer/p-C33NzjZH.js.map +0 -1
  326. package/dist/ls-document-viewer/p-DKOaSs1P.js +0 -2
  327. package/dist/ls-document-viewer/p-DKOaSs1P.js.map +0 -1
  328. package/dist/ls-document-viewer/p-UgyxEpoj.js +0 -2
  329. package/dist/ls-document-viewer/p-a0e78518.entry.js +0 -2
  330. package/dist/ls-document-viewer/p-a0e78518.entry.js.map +0 -1
  331. package/dist/ls-document-viewer/p-a4f036f7.entry.js +0 -2
  332. package/dist/ls-document-viewer/p-a4f036f7.entry.js.map +0 -1
  333. package/dist/ls-document-viewer/p-aaef389a.entry.js +0 -24
  334. package/dist/ls-document-viewer/p-aaef389a.entry.js.map +0 -1
  335. package/dist/ls-document-viewer/p-cc9048f1.entry.js +0 -2
  336. package/dist/ls-document-viewer/p-cc9048f1.entry.js.map +0 -1
  337. package/dist/ls-document-viewer/p-e6695aa9.entry.js +0 -2
  338. package/dist/ls-document-viewer/p-ed0572c4.entry.js +0 -2
  339. package/dist/ls-document-viewer/p-ed0572c4.entry.js.map +0 -1
  340. package/dist/ls-document-viewer/p-f798fd98.entry.js +0 -2
  341. package/dist/ls-document-viewer/p-f798fd98.entry.js.map +0 -1
  342. package/dist/ls-document-viewer/p-xb5eWHAa.js +0 -2
  343. package/dist/ls-document-viewer/p-xb5eWHAa.js.map +0 -1
  344. /package/dist/ls-document-viewer/{p-ecb9432a.entry.js.map → p-7f956e56.entry.js.map} +0 -0
  345. /package/dist/ls-document-viewer/{p-e6695aa9.entry.js.map → p-8d6d8ce9.entry.js.map} +0 -0
  346. /package/dist/ls-document-viewer/{p-f7cb64d9.entry.js.map → p-aab8f6b4.entry.js.map} +0 -0
  347. /package/dist/ls-document-viewer/{p-e448f588.entry.js.map → p-ca0622f2.entry.js.map} +0 -0
  348. /package/dist/ls-document-viewer/{p-8941c996.entry.js.map → p-fc94af7c.entry.js.map} +0 -0
@@ -0,0 +1,67 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Returns the default validation ID for a given formElementType.
5
+ */
6
+ const getDefaultValidationForType = (fieldType) => {
7
+ switch (fieldType) {
8
+ case 'signature': return 0;
9
+ case 'auto sign': return 3000;
10
+ case 'initials': return 2000;
11
+ case 'signing date': return 32;
12
+ case 'date': return 4;
13
+ case 'email': return 1;
14
+ case 'number': return 50;
15
+ case 'dropdown': return 20;
16
+ case 'checkbox': return 25;
17
+ case 'file': return 74;
18
+ case 'drawn field': return 90;
19
+ case 'regular expression': return 93;
20
+ case 'text':
21
+ default: return 0;
22
+ }
23
+ };
24
+
25
+ const defaultFieldTitles = {
26
+ 'signature': 'eg. Tenant',
27
+ 'auto sign': 'eg. Date of Signing',
28
+ 'text': 'eg. Full Name, Address, Company Name',
29
+ 'signing date': 'eg. Date of Signing',
30
+ 'date': 'eg. Date of Birth',
31
+ 'initials': 'eg. Initial Here',
32
+ 'checkbox': 'eg. Agree to Terms',
33
+ 'email': 'eg. Personal Email, Emergency Contact Email',
34
+ 'number': 'eg. Phone Number, Account Number',
35
+ 'dropdown': 'eg. Select an Option',
36
+ 'file': 'eg. Upload Document',
37
+ 'drawn field': 'eg. Draw Here',
38
+ 'regular expression': 'eg. Sort Code',
39
+ };
40
+ function getFieldTitleSuggestion(key) {
41
+ return defaultFieldTitles[key] || 'eg. Sign Here';
42
+ }
43
+ const defaultFieldPlaceholders = {
44
+ 'signature': 'Siganture',
45
+ 'auto sign': 'Date of Signing',
46
+ 'text': 'eg. John Doe, 123 Main St, Acme Corp',
47
+ 'signing date': 'Date of Signing',
48
+ 'date': 'eg. 19/12/2025',
49
+ 'initials': 'Initials',
50
+ 'checkbox': 'Checkbox',
51
+ 'email': 'eg. john.doe@example.com',
52
+ 'number': 'eg. 12345',
53
+ 'dropdown': 'Dropdown',
54
+ 'file': 'File',
55
+ 'drawn field': 'Draw',
56
+ 'regular expression': 'RegEx',
57
+ };
58
+ function getFieldPlaceholder(key) {
59
+ return defaultFieldPlaceholders[key] || 'eg. Full Name, Address, Company Name';
60
+ }
61
+
62
+ exports.getDefaultValidationForType = getDefaultValidationForType;
63
+ exports.getFieldPlaceholder = getFieldPlaceholder;
64
+ exports.getFieldTitleSuggestion = getFieldTitleSuggestion;
65
+ //# sourceMappingURL=defaultFieldLabels-BUxtUsF1.js.map
66
+
67
+ //# sourceMappingURL=defaultFieldLabels-BUxtUsF1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultFieldLabels-BUxtUsF1.js","sources":["src/components/ls-field-type-select/fieldTypeUtils.ts","src/components/ls-document-viewer/defaultFieldLabels.ts"],"sourcesContent":["/**\n * Returns the default validation ID for a given formElementType.\n */\nexport const getDefaultValidationForType = (fieldType: string): number => {\n switch (fieldType) {\n case 'signature': return 0;\n case 'auto sign': return 3000;\n case 'initials': return 2000;\n case 'signing date': return 32;\n case 'date': return 4;\n case 'email': return 1;\n case 'number': return 50;\n case 'dropdown': return 20;\n case 'checkbox': return 25;\n case 'file': return 74;\n case 'drawn field': return 90;\n case 'regular expression': return 93;\n case 'text':\n default: return 0;\n }\n};\n","export const defaultFieldLabels: { [key: string]: string } = {\n 'signature': 'Signature',\n 'auto sign': 'Auto Sign',\n 'text': 'Text',\n 'signing date': 'Auto Date',\n 'date': 'Date',\n 'initials': 'Initials',\n 'checkbox': 'Checkbox',\n 'email': 'Email',\n 'number': 'Number',\n 'dropdown': 'Dropdown',\n 'file': 'File',\n 'drawn field': 'Draw',\n 'regular expression': 'RegEx',\n};\n\nexport function getFieldLabel(key: string): string | undefined {\n return defaultFieldLabels[key] || 'Unknown';\n}\n\nexport const defaultFieldTitles: { [key: string]: string } = {\n 'signature': 'eg. Tenant',\n 'auto sign': 'eg. Date of Signing',\n 'text': 'eg. Full Name, Address, Company Name',\n 'signing date': 'eg. Date of Signing',\n 'date': 'eg. Date of Birth',\n 'initials': 'eg. Initial Here',\n 'checkbox': 'eg. Agree to Terms',\n 'email': 'eg. Personal Email, Emergency Contact Email',\n 'number': 'eg. Phone Number, Account Number',\n 'dropdown': 'eg. Select an Option',\n 'file': 'eg. Upload Document',\n 'drawn field': 'eg. Draw Here',\n 'regular expression': 'eg. Sort Code',\n};\n\nexport function getFieldTitleSuggestion(key: string): string | undefined {\n return defaultFieldTitles[key] || 'eg. Sign Here';\n}\n\nexport const defaultFieldPlaceholders: { [key: string]: string } = {\n 'signature': 'Siganture',\n 'auto sign': 'Date of Signing',\n 'text': 'eg. John Doe, 123 Main St, Acme Corp',\n 'signing date': 'Date of Signing',\n 'date': 'eg. 19/12/2025',\n 'initials': 'Initials',\n 'checkbox': 'Checkbox',\n 'email': 'eg. john.doe@example.com',\n 'number': 'eg. 12345',\n 'dropdown': 'Dropdown',\n 'file': 'File',\n 'drawn field': 'Draw',\n 'regular expression': 'RegEx',\n};\n\nexport function getFieldPlaceholder(key: string): string | undefined {\n return defaultFieldPlaceholders[key] || 'eg. Full Name, Address, Company Name';\n}\n"],"names":[],"mappings":";;AAAA;;AAEG;AACU,MAAA,2BAA2B,GAAG,CAAC,SAAiB,KAAY;IACvE,QAAQ,SAAS;AACf,QAAA,KAAK,WAAW,EAAE,OAAO,CAAC;AAC1B,QAAA,KAAK,WAAW,EAAE,OAAO,IAAI;AAC7B,QAAA,KAAK,UAAU,EAAE,OAAO,IAAI;AAC5B,QAAA,KAAK,cAAc,EAAE,OAAO,EAAE;AAC9B,QAAA,KAAK,MAAM,EAAE,OAAO,CAAC;AACrB,QAAA,KAAK,OAAO,EAAE,OAAO,CAAC;AACtB,QAAA,KAAK,QAAQ,EAAE,OAAO,EAAE;AACxB,QAAA,KAAK,UAAU,EAAE,OAAO,EAAE;AAC1B,QAAA,KAAK,UAAU,EAAE,OAAO,EAAE;AAC1B,QAAA,KAAK,MAAM,EAAE,OAAO,EAAE;AACtB,QAAA,KAAK,aAAa,EAAE,OAAO,EAAE;AAC7B,QAAA,KAAK,oBAAoB,EAAE,OAAO,EAAE;AACpC,QAAA,KAAK,MAAM;AACX,QAAA,SAAS,OAAO,CAAC;;AAErB;;ACAO,MAAM,kBAAkB,GAA8B;AAC3D,IAAA,WAAW,EAAE,YAAY;AACzB,IAAA,WAAW,EAAE,qBAAqB;AAClC,IAAA,MAAM,EAAE,sCAAsC;AAC9C,IAAA,cAAc,EAAE,qBAAqB;AACrC,IAAA,MAAM,EAAE,mBAAmB;AAC3B,IAAA,UAAU,EAAE,kBAAkB;AAC9B,IAAA,UAAU,EAAE,oBAAoB;AAChC,IAAA,OAAO,EAAE,6CAA6C;AACtD,IAAA,QAAQ,EAAE,kCAAkC;AAC5C,IAAA,UAAU,EAAE,sBAAsB;AAClC,IAAA,MAAM,EAAE,qBAAqB;AAC7B,IAAA,aAAa,EAAE,eAAe;AAC9B,IAAA,oBAAoB,EAAE,eAAe;CACtC;AAEK,SAAU,uBAAuB,CAAC,GAAW,EAAA;AACjD,IAAA,OAAO,kBAAkB,CAAC,GAAG,CAAC,IAAI,eAAe;AACnD;AAEO,MAAM,wBAAwB,GAA8B;AACjE,IAAA,WAAW,EAAE,WAAW;AACxB,IAAA,WAAW,EAAE,iBAAiB;AAC9B,IAAA,MAAM,EAAE,sCAAsC;AAC9C,IAAA,cAAc,EAAE,iBAAiB;AACjC,IAAA,MAAM,EAAE,gBAAgB;AACxB,IAAA,UAAU,EAAE,UAAU;AACtB,IAAA,UAAU,EAAE,UAAU;AACtB,IAAA,OAAO,EAAE,0BAA0B;AACnC,IAAA,QAAQ,EAAE,WAAW;AACrB,IAAA,UAAU,EAAE,UAAU;AACtB,IAAA,MAAM,EAAE,MAAM;AACd,IAAA,aAAa,EAAE,MAAM;AACrB,IAAA,oBAAoB,EAAE,OAAO;CAC9B;AAEK,SAAU,mBAAmB,CAAC,GAAW,EAAA;AAC7C,IAAA,OAAO,wBAAwB,CAAC,GAAG,CAAC,IAAI,sCAAsC;AAChF;;;;;;"}
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var i18n = require('./i18n-BtiWqT4M.js');
3
+ var i18n = require('./i18n-ROQG0wTX.js');
4
+ var history = require('./history-W8FR8iDj.js');
4
5
 
5
6
  const findIn = (fields, selector, restyle = false, additive = false) => {
6
7
  const selected = new Array();
@@ -401,6 +402,7 @@ function matchData(data) {
401
402
  if (data.event.action === 'create') {
402
403
  if (prefix === 'ele') {
403
404
  addField.bind(this)(this.component.shadowRoot.getElementById('ls-document-frame'), { ...data.obj, id });
405
+ history.updateCreatedId(data.obj.id, id);
404
406
  this.update.emit({ event: { ...data.event, result: data.result }, template: this._template });
405
407
  this.validationErrors = validate.bind(this)(this._template);
406
408
  }
@@ -571,6 +573,6 @@ exports.updateTemplate = updateTemplate;
571
573
  exports.validate = validate;
572
574
  exports.validateFieldValue = validateFieldValue;
573
575
  exports.validationTypes = validationTypes;
574
- //# sourceMappingURL=editorUtils-DNCtWIYh.js.map
576
+ //# sourceMappingURL=editorUtils-Bwf1xDdc.js.map
575
577
 
576
- //# sourceMappingURL=editorUtils-DNCtWIYh.js.map
578
+ //# sourceMappingURL=editorUtils-Bwf1xDdc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editorUtils-Bwf1xDdc.js","sources":["src/components/ls-document-viewer/editorCalculator.ts","src/components/ls-document-viewer/adapter/templateActions.ts","src/utils/fieldValueValidator.ts","src/components/ls-document-viewer/validator.ts","src/components/ls-document-viewer/editorUtils.ts"],"sourcesContent":["import { LSApiElement } from '../../types/LSApiElement';\n\nexport const findIn = (fields: NodeListOf<HTMLLsEditorFieldElement>, selector: HTMLElement, restyle: boolean = false, additive: boolean = false): HTMLLsEditorFieldElement[] => {\n const selected: HTMLLsEditorFieldElement[] = new Array();\n const { top, left, bottom, right } = selector.getBoundingClientRect();\n\n fields.forEach(f => {\n if (f.getBoundingClientRect().bottom <= bottom && f.getBoundingClientRect().top >= top && f.getBoundingClientRect().left >= left && f.getBoundingClientRect().right <= right) {\n if (restyle) f.selected = true;\n selected.push(f);\n } else {\n if (restyle && !additive) f.selected = false;\n }\n });\n return selected;\n};\n\n// Used to append new fields (dropped or loaded from template data)\nexport function addField(frame: HTMLElement, data): HTMLLsEditorFieldElement {\n const fields = this._template.elementConnection.templateElements;\n this._template = { ...this._template, elementConnection: { ...this._template.elementConnection, templateElements: [...fields, data] } };\n const assignee = this.mode === 'compose' ? this._recipients?.find(r => r.signerIndex === data.signer) : this._template.roles.find(r => r.signerIndex === data.signer);\n const node = document.createElement('ls-editor-field');\n node.setAttribute('type', data.formElementType);\n node.setAttribute('id', 'ls-field-' + data.id);\n node.setAttribute(\n 'assignee',\n this.mode === 'compose' && assignee?.previousRecipientDecides\n ? 'To Be Decided'\n : this.mode === 'compose'\n ? `${assignee?.firstName} ${assignee?.lastName}`\n : assignee?.name || (data.signer === 0 ? 'Sender' : `Participant ${data.signer}`),\n );\n node.setAttribute('zoom', String(this.zoom));\n node.setAttribute('readonly', String(this.mode === 'preview' || this._template?.locked));\n // node.setAttribute('selected', 'selected');\n node.style.zIndex = '100';\n node.style.position = 'absolute';\n\n node.style.top = Math.floor(data.top * this.zoom) + 'px';\n node.style.left = Math.floor(data.left * this.zoom) + 'px';\n node.style.height = Math.floor(data.height * this.zoom) + 'px';\n node.style.width = Math.floor(data.width * this.zoom) + 'px';\n node.style.fontSize = Math.round(data.fontSize * this.zoom) + 'px';\n node.style.alignContent = data.align;\n node.style.fontFamily = data.fontName;\n node.dataItem = data;\n\n frame.appendChild(node);\n\n return node as any as HTMLLsEditorFieldElement;\n}\n\nexport function moveField(item: HTMLLsEditorFieldElement, data) {\n item.style.top = Math.floor(data.top * this.zoom) + 'px';\n item.style.left = Math.floor(data.left * this.zoom) + 'px';\n item.style.height = Math.floor(data.height * this.zoom) + 'px';\n item.style.width = Math.floor(data.width * this.zoom) + 'px';\n item.style.fontSize = Math.round(data.fontSize * this.zoom) + 'px';\n item.style.fontFamily = data.fontName;\n item.style.textAlign = data.align;\n item.dataItem = recalculateCoordinates(data);\n}\n\n// calculates html compatible coords at current zoom level\nexport const transformCoordinates = (\n sourceField: LSApiElement,\n inputFieldWidth: number,\n inputFieldHeight: number,\n viewerWidth: number,\n viewerHeight: number,\n left: number,\n top: number,\n fontName: string,\n fontSize: number,\n zoom: number,\n): LSApiElement => {\n // Returns X, Y coordinates\n const ax = left > 0 ? left / viewerWidth : 0;\n const ay = top > 0 ? top / viewerHeight : 0;\n const bx = (left + inputFieldWidth) / viewerWidth;\n const by = (top + inputFieldHeight) / viewerHeight;\n\n // Return with calculated styles that try to place it as it would appear on legacy signing page\n return {\n ...sourceField,\n ax,\n ay,\n bx,\n by,\n cstyle: {\n margin: 0,\n verticalAlign: 'top',\n boxSizing: 'content-box',\n fontSize: viewerWidth < 640 ? `${(fontSize / 24) * zoom}rem` : `${fontSize * zoom}px`,\n fontFamily: fontName || 'arial',\n width: `${(inputFieldWidth * bx - inputFieldWidth * ax) * zoom}px`, // app1 input has padding-x 3px\n height: `${inputFieldHeight * (by - ay) * zoom}px`, // app1 input has padding-y 2px\n // minHeight: `${inputFieldHeight * (BY - AY) * zoom - 2}px`,\n lineHeight: 'inherit',\n },\n divStyle: {\n position: 'absolute',\n top: `${inputFieldHeight * ay * zoom}px`,\n left: `${inputFieldWidth * ax * zoom}px`,\n width: `${(inputFieldWidth * bx - inputFieldWidth * ax) * zoom}px`,\n height: `${inputFieldHeight * (by - ay) * zoom}px`,\n zIndex: 1000,\n fontSize: viewerWidth < 640 ? `${(fontSize / 24) * zoom}rem` : `${fontSize * zoom}px`,\n },\n objectHeight: `${inputFieldHeight * (by - ay) * zoom}px`,\n };\n};\n\n// from a field element get all dimension data including LEGACY dimensions\nexport const findDimensions = (\n frameContainer: HTMLDivElement,\n sourceField: HTMLLsEditorFieldElement,\n pageHeight: number,\n pageWidth: number,\n zoom: number,\n): { top: number; left: number; height: number; width: number; ax: number; ay: number; bx: number; by: number } => {\n // Position of widget frame\n const frmDims = frameContainer.getBoundingClientRect();\n // dimensions relative to viewport\n const { height, width } = sourceField.getBoundingClientRect();\n const top = Math.round((sourceField.getBoundingClientRect().top - frmDims.top) / zoom);\n const left = Math.round((sourceField.getBoundingClientRect().left - frmDims.left) / zoom);\n\n // Returns X, Y coordinates\n const ax = left > 0 ? left / pageWidth : 0;\n const ay = top > 0 ? top / pageHeight : 0;\n const bx = (left + width / zoom) / pageWidth;\n const by = (top + height / zoom) / pageHeight;\n\n // Return with calculated styles that try to place it as it would appear on legacy signing page\n return {\n top,\n left,\n height: Math.round(height / zoom),\n width: Math.round(width / zoom),\n ax,\n ay,\n bx,\n by,\n };\n};\n\n// from a field element get all dimension data including LEGACY dimensions\nexport const recalculateCoordinates = (d: LSApiElement): LSApiElement => {\n // Returns X, Y coordinates\n const ax = d.left / d.pageDimensions.width;\n const ay = d.top / d.pageDimensions.height;\n const bx = (d.left + d.width) / d.pageDimensions.width;\n const by = (d.top + d.height) / d.pageDimensions.height;\n\n // Return with calculated styles that try to place it as it would appear on legacy signing page\n return {\n ...d,\n ax,\n ay,\n bx,\n by,\n };\n};\n\n// from a field determinse if out of bounds\nexport const oob = (d: LSApiElement): boolean => {\n return d.left < 0 || d.top < 0 || d.left + d.width > d.pageDimensions.width || d.top + d.height > d.pageDimensions.height;\n};\n","// Add a role\nconst updateTemplate = template => {\n return `\n mutation LDVupdateTemplate {\n updateTemplate(input: {\n templateId: \"${template.id}\", \n title: \"${template.title}\",\n locked: ${template.locked},\n documentRetentionDays: ${template.documentRetentionDays},\n autoArchive: ${template.autoArchive},\n fixSignatureScale: ${template.fixSignatureScale ? template.fixSignatureScale : false}\n })\n }\n `;\n};\n\nconst getTemplate = (id: string) => {\n return `\n query LDVGetTemplate {\n template(id: \"${id}\") {\n id\n title\n fileName\n pageDimensions\n pageCount\n modified\n link\n valid\n locked\n autoArchive\n archived\n tags\n created\n createdBy\n lastSent\n fixSignatureScale\n groupId\n documentRetentionDays\n roles{\n id\n name\n roleType\n signerIndex\n ordinal\n signerParent\n experience\n }\n elementConnection {\n templateElements {\n align\n ax\n ay\n bx\n by\n elementType\n formElementType\n fieldOrder\n fontName\n fontSize\n helpText\n hideBorder\n id\n label\n labelExtra\n logicAction\n logicGroup\n mapTo\n options\n optional\n page\n role\n signer\n substantive\n validation\n value\n }\n totalCount\n }\n userSignatureConnection {\n userSignatureElements {\n id\n userId\n ax\n ay\n bx\n by\n page\n link\n }\n }\n }\n }\n `;\n};\n\nexport { updateTemplate, getTemplate };\n","/**\n * Validates a field value based on its formElementType and validation ID.\n * Returns null if valid, or a translation key string if invalid.\n * Empty values always return null (required/optional is handled separately).\n */\nimport { dvI18n } from '../i18n/i18n';\n\nexport const validateFieldValue = (\n formElementType: string,\n validation: number,\n value: string,\n options?: string,\n): string | null => {\n if (!value || value === '') return null;\n\n if (formElementType === 'text') {\n return validateText(validation, value);\n }\n\n if (formElementType === 'number') {\n return validateNumber(validation, value);\n }\n\n if (formElementType === 'email') {\n return validateEmail(value);\n }\n\n if (formElementType === 'dropdown' && validation === 20) {\n return validateDropdownValue(value, options);\n }\n\n return null;\n};\n\nconst validateText = (validation: number, value: string): string | null => {\n // Character length validations (65–72 → 1–8 characters)\n if (validation >= 65 && validation <= 72) {\n const requiredLength = validation - 64;\n if (value.length !== requiredLength) {\n return dvI18n.t('fieldvalidation.exactcharacters', { count: requiredLength });\n }\n return null;\n }\n\n // Title case (77)\n if (validation === 77) {\n const titleCased = value.replace(/\\w\\S*/g, txt => txt.charAt(0).toUpperCase() + txt.slice(1).toLowerCase());\n if (value !== titleCased) {\n return dvI18n.t('fieldvalidation.titlecase');\n }\n return null;\n }\n\n // Uppercase (78)\n if (validation === 78) {\n if (value !== value.toUpperCase()) {\n return dvI18n.t('fieldvalidation.uppercase');\n }\n return null;\n }\n\n // Lowercase (79)\n if (validation === 79) {\n if (value !== value.toLowerCase()) {\n return dvI18n.t('fieldvalidation.lowercase');\n }\n return null;\n }\n\n return null;\n};\n\nconst validateNumber = (validation: number, value: string): string | null => {\n // Whole number (50)\n if (validation === 50) {\n if (!/^\\d+$/.test(value)) return dvI18n.t('fieldvalidation.wholenumber');\n return null;\n }\n\n // Number with optional decimal (51)\n if (validation === 51) {\n if (!/^\\d+(\\.\\d+)?$/.test(value)) return dvI18n.t('fieldvalidation.number');\n return null;\n }\n\n // Currency (52)\n if (validation === 52) {\n if (!/^\\d+\\.\\d{2}$/.test(value)) return dvI18n.t('fieldvalidation.currency');\n return null;\n }\n\n // Exact digit count (53–64 → 1–12 digits)\n if (validation >= 53 && validation <= 64) {\n const requiredDigits = validation - 52;\n const pattern = new RegExp(`^\\\\d{${requiredDigits}}$`);\n if (!pattern.test(value)) {\n return dvI18n.t('fieldvalidation.exactdigits', { count: requiredDigits });\n }\n return null;\n }\n\n return null;\n};\n\nconst validateEmail = (value: string): string | null => {\n const emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n if (!emailPattern.test(value)) {\n return dvI18n.t('fieldvalidation.email');\n }\n return null;\n};\n\nconst validateDropdownValue = (value: string, options?: string): string | null => {\n if (!options || options.trim() === '') return null;\n const optionList = options.split('\\n').map(o => o.trim()).filter(o => o.length > 0);\n if (optionList.length === 0) return null;\n if (!optionList.includes(value)) {\n return dvI18n.t('fieldvalidation.dropdownoption');\n }\n return null;\n};\n","/**\n * This module contains all the rules required to mark a template\n * as valid.\n *\n */\n\nimport { LSApiTemplate } from '../../types/LSApiTemplate';\nimport { ValidationError } from '../../types/ValidationError';\nimport { validateFieldValue } from '../../utils/fieldValueValidator';\nimport { dvI18n } from '../../i18n/i18n';\n\nexport function validate(t: LSApiTemplate): ValidationError[] {\n var errors = [];\n\n if (this._recipients) {\n this._recipients.forEach(tr => {\n if (t.elementConnection.templateElements.filter(e => e.formElementType === 'signature' && e.signer === tr.signerIndex).length === 0) {\n if (tr?.roleType !== 'APPROVER') {\n errors.push({\n id: tr.id,\n signerIndex: tr.signerIndex,\n title: dvI18n.t('validation.missingsignature'),\n description: dvI18n.t('validation.recipientmissingsignature', { name: tr.name }),\n role: tr,\n type: 'signature',\n });\n }\n }\n });\n } else {\n // Check for missing signatures\n t.roles.forEach(tr => {\n if (t.elementConnection.templateElements.filter(e => e.formElementType === 'signature' && e.signer === tr.signerIndex).length === 0) {\n if (tr?.roleType !== 'APPROVER') {\n errors.push({\n id: tr.id,\n signerIndex: tr.signerIndex,\n title: dvI18n.t('validation.missingsignature'),\n description: dvI18n.t('validation.recipientmissingsignature', { name: tr.name }),\n role: tr,\n type: 'signature',\n });\n }\n }\n });\n }\n\n // Check for missing multi-select options\n t.elementConnection.templateElements.forEach(element => {\n if (element.validation === 20 && (!element.options || element.options.length === 0)) {\n const roles = this._recipients || t.roles;\n const role = roles?.find(r => r.signerIndex === element.signer);\n errors.push({\n id: element.id,\n signerIndex: element.signer,\n title: element.label || dvI18n.t('toolbox.dropdown'),\n description: role?.firstName ? `${role.firstName} ${role.lastName}` : role?.name || dvI18n.t('participants.participant', { index: (element.signer || 0) + 1 }),\n element: element,\n role: role,\n type: 'options',\n });\n }\n });\n\n // Check for invalid pre-filled values\n t.elementConnection.templateElements.forEach(element => {\n if (element.value) {\n const error = validateFieldValue(element.formElementType, element.validation, element.value, element.options);\n if (error) {\n const roles = this._recipients || t.roles;\n const role = roles?.find(r => r.signerIndex === element.signer);\n errors.push({\n id: element.id,\n signerIndex: element.signer,\n title: element.label || element.formElementType,\n description: error,\n element: element,\n role: role,\n type: 'value',\n });\n }\n }\n });\n\n return errors;\n}\n","/**\n * These utils are used to make document-viewer more readable\n * but they must be called using the bind() function so that\n * all code is executed within the correct 'this' scope.\n *\n * Avoid using arrow functions here as they reassign \"thiss\"\n */\n\nimport { LSApiElement } from '../../types/LSApiElement';\nimport { LSMutateEvent } from '../../types/LSMutateEvent';\nimport { ValidationType } from '../../types/ValidationType';\nimport { getTemplate } from './adapter/templateActions';\nimport { addField } from './editorCalculator';\nimport { validate } from './validator';\nimport { updateCreatedId } from './history';\n\n/**\n * Determines if an element will be plotted out of bounds, i.e. off\n * the page.\n */\nexport function oob(obj: LSApiElement): boolean {\n if (obj.left + obj.width > obj.pageDimensions.width || obj.top < 0 || obj.left < 0 || obj.top + obj.height > obj.pageDimensions.height) return true;\n else return false;\n}\n\nexport function alter(diffFn) {\n const diffs: LSMutateEvent[] = this.selected.map(c => {\n return { action: 'update', data: diffFn(c.dataItem) as LSApiElement };\n });\n this.mutate.emit(diffs);\n}\n\nexport function resetDataItems() {\n const fields = this.component.shadowRoot.querySelectorAll('ls-editor-field') as HTMLLsEditorFieldElement[];\n this.selected = Array.from(fields).filter(fx => fx.selected);\n this.selectFields.emit(this.selected.map(fx => fx.dataItem));\n}\n\nexport function debounce(func, timeout = 300) {\n let timer;\n return (...args) => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n func.apply(this, args);\n }, timeout);\n };\n}\n\n// After a mutation ensure that the new data is stored in fields and template\nexport function matchData(data: { result: any; obj: any; event: LSMutateEvent }) {\n const newObj = data.result;\n const prefix = atob(data.obj.id).substring(0, 3);\n // because mutations return the ID back with the mutation name we just assume its the first (and only) JSON prop\n const id = newObj[Object.keys(newObj)[0]];\n\n if (data.event.action === 'create') {\n if (prefix === 'ele') {\n addField.bind(this)(this.component.shadowRoot.getElementById('ls-document-frame'), { ...data.obj, id });\n updateCreatedId(data.obj.id, id);\n\n this.update.emit({ event: { ...data.event, result: data.result }, template: this._template });\n this.validationErrors = validate.bind(this)(this._template);\n }\n }\n\n if (prefix === 'rol') { \n return syncRoles.bind(this)().then(() => {\n this.update.emit({ event: { ...data.event, result: data.result }, template: this._template });\n });\n \n }\n\n if (prefix === 'tpl') {\n this._template = { ...this._template, ...data.obj };\n this.validationErrors = validate.bind(this)(this._template);\n this.update.emit({ event: { ...data.event, result: data.result }, template: this._template });\n }\n}\n\nexport async function syncRoles() {\n const leftBar = this.component.shadowRoot.querySelector('ls-left-bar') as HTMLLsLeftBarElement;\n const participantManager = leftBar?.shadowRoot?.getElementById('ls-participant-manager') as HTMLLsParticipantManagerElement;\n const tresult = (await this.adapter.execute(this.token, getTemplate(this.templateid))) as any;\n console.log(tresult);\n this.parseTemplate(JSON.stringify(tresult.template));\n if (participantManager) participantManager.template = this._template;\n this.generateFields();\n this.showPageFields(this.pageNum);\n this.validationErrors = validate.bind(this)(this._template);\n}\n\n// Utility function which extracts the type from any API id\nexport function getApiType(obj: any) {\n if (!obj?.id) return 'invalid';\n\n const apiId = atob(obj.id);\n if (apiId.length < 3) return 'invalid';\n\n const prefix = atob(obj.id).substring(0, 3);\n\n switch (prefix) {\n case 'ele':\n return 'element';\n case 'rol':\n return 'role';\n case 'tpl':\n return 'template';\n case 'doc':\n return 'document';\n default:\n return 'unknown';\n }\n}\n\nexport const validationTypes: any = [\n { id: 0, description: 'general purpose', formType: 'text', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 30, description: 'yyyy/mm/dd (auto sign day)', formType: 'signing date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 31, description: 'yy/mm/dd (auto sign day)', formType: 'signing date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 32, description: 'dd/mm/yyyy (auto sign day)', formType: 'signing date', defaultHeight: 16, defaultWidth: 200, typeDefault: true, inputType: 'text' },\n { id: 33, description: 'dd/mm/yy (auto sign day)', formType: 'signing date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 34, description: 'mm/dd/yyyy (auto sign day)', formType: 'signing date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 35, description: 'mm/dd/yy (auto sign day)', formType: 'signing date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 36, description: 'yyyy.mm.dd (auto sign day)', formType: 'signing date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 37, description: 'yy.mm.dd (auto sign day)', formType: 'signing date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 38, description: 'dd.mm.yyyy (auto sign day)', formType: 'signing date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 39, description: 'dd.mm.yy (auto sign day)', formType: 'signing date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 40, description: 'mm.dd.yyyy (auto sign day)', formType: 'signing date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 41, description: 'mm.dd.yy (auto sign day)', formType: 'signing date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 42, description: 'yyyy-mm-dd (auto sign day)', formType: 'signing date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 43, description: 'yy-mm-dd (auto sign day)', formType: 'signing date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 44, description: 'dd-mm-yyyy (auto sign day)', formType: 'signing date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 45, description: 'dd-mm-yy (auto sign day)', formType: 'signing date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 46, description: 'mm-dd-yyyy (auto sign day)', formType: 'signing date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 47, description: 'mm-dd-yy (auto sign day)', formType: 'signing date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 48, description: 'd mmmm yyyy (auto sign day)', formType: 'signing date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 73, description: 'Secret Code', formType: 'text', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 77, description: 'Title caps (force text to title caps)', formType: 'text', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 78, description: 'Uppercase (force text to uppercase)', formType: 'text', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 79, description: 'Lowercase (force text to lowercase)', formType: 'text', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 65, description: '1 character (any text)', formType: 'text', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 66, description: '2 character (any text)', formType: 'text', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 67, description: '3 character (any text)', formType: 'text', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 68, description: '4 character (any text)', formType: 'text', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 69, description: '5 character (any text)', formType: 'text', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 70, description: '6 character (any text)', formType: 'text', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 71, description: '7 character (any text)', formType: 'text', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 72, description: '8 character (any text)', formType: 'text', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 1000, description: 'First name field (special use)', formType: 'text', defaultHeight: 16, defaultWidth: 200, typeDefault: true, inputType: 'text' },\n { id: 1001, description: 'Last name field (special use)', formType: 'text', defaultHeight: 16, defaultWidth: 200, typeDefault: true, inputType: 'text' },\n { id: 1, description: 'Email', formType: 'email', defaultHeight: 16, defaultWidth: 200, typeDefault: true, inputType: 'text' },\n { id: 1002, description: 'Email field (special use)', formType: 'email', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 50, description: 'Whole number', formType: 'number', defaultHeight: 16, defaultWidth: 200, typeDefault: true, inputType: 'number' },\n { id: 51, description: 'Number', formType: 'number', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'number' },\n { id: 52, description: 'Currency', formType: 'number', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'number' },\n { id: 53, description: '1 number', formType: 'number', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'number' },\n { id: 54, description: '2 numbers', formType: 'number', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'number' },\n { id: 55, description: '3 numbers', formType: 'number', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'number' },\n { id: 56, description: '4 numbers', formType: 'number', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'number' },\n { id: 57, description: '5 numbers', formType: 'number', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'number' },\n { id: 58, description: '6 numbers', formType: 'number', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'number' },\n { id: 59, description: '7 numbers', formType: 'number', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'number' },\n { id: 60, description: '8 numbers', formType: 'number', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'number' },\n { id: 61, description: '9 numbers', formType: 'number', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'number' },\n { id: 62, description: '10 numbers', formType: 'number', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'number' },\n { id: 63, description: '11 numbers', formType: 'number', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'number' },\n { id: 64, description: '12 numbers', formType: 'number', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'number' },\n { id: 2, description: 'yyyy/mm/dd', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: true, inputType: 'date' },\n { id: 3, description: 'yy/mm/dd', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'date' },\n { id: 4, description: 'dd/mm/yyyy', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: true, inputType: 'date' },\n { id: 5, description: 'dd/mm/yy', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'date' },\n { id: 6, description: 'mm/dd/yyyy', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'date' },\n { id: 7, description: 'mm/dd/yy', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'date' },\n { id: 80, description: 'mm/yy', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'date' },\n { id: 81, description: 'mm/yyyy', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'date' },\n { id: 8, description: 'yyyy.mm.dd', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'date' },\n { id: 9, description: 'yy.mm.dd', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'date' },\n { id: 10, description: 'dd.mm.yyyy', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'date' },\n { id: 11, description: 'dd.mm.yy', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'date' },\n { id: 12, description: 'mm.dd.yyyy', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'date' },\n { id: 13, description: 'mm.dd.yy', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'date' },\n { id: 82, description: 'mm.yy', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'date' },\n { id: 83, description: 'mm.yyyy', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'date' },\n { id: 14, description: 'yyyy-mm-dd', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'date' },\n { id: 15, description: 'yy-mm-dd', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'date' },\n { id: 16, description: 'dd-mm-yyyy', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'date' },\n { id: 17, description: 'dd-mm-yy', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'date' },\n { id: 18, description: 'mm-dd-yyyy', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'date' },\n { id: 19, description: 'mm-dd-yy', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'date' },\n { id: 84, description: 'mm-yy', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'date' },\n { id: 85, description: 'mm-yyyy', formType: 'date', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'date' },\n { id: 20, description: 'Dropdown List', formType: 'dropdown', defaultHeight: 16, defaultWidth: 200, typeDefault: true, inputType: 'text' },\n { id: 91, description: 'Countries', formType: 'dropdown', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 92, description: 'Name prefix titles', formType: 'dropdown', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 24, description: '✔/✗', formType: 'checkbox', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'checkbox' },\n { id: 25, description: '✔/empty', formType: 'checkbox', defaultHeight: 16, defaultWidth: 200, typeDefault: true, inputType: 'checkbox' },\n { id: 26, description: '✗/empty', formType: 'checkbox', defaultHeight: 16, defaultWidth: 16, typeDefault: false, inputType: 'checkbox' },\n { id: 74, description: 'File: attach to confirmatory email to sender', formType: 'file', defaultHeight: 16, defaultWidth: 200, typeDefault: true, inputType: 'file' },\n { id: 75, description: 'File: append to PDF, PDF files only', formType: 'file', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'file' },\n {\n id: 76,\n description: 'File: zip with PDF (for internal view, signed PDF for signer)',\n formType: 'file',\n defaultHeight: 16,\n defaultWidth: 200,\n typeDefault: false,\n inputType: 'file',\n },\n { id: 90, description: 'Drawn field.', formType: 'drawn field', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 2000, description: 'Initials', formType: 'initials', defaultHeight: 16, defaultWidth: 200, typeDefault: true, inputType: 'text' },\n { id: 93, description: 'Regular Expression field', formType: 'regular expression', defaultHeight: 16, defaultWidth: 200, typeDefault: false, inputType: 'text' },\n { id: 3000, description: 'Auto Sign', formType: 'auto sign', defaultHeight: 16, defaultWidth: 200, typeDefault: true, inputType: 'text' },\n { id: 4000, description: 'Text Area', formType: 'textarea', defaultHeight: 16, defaultWidth: 200, typeDefault: true, inputType: 'textarea' },\n];\n\n// See validation table in database for latest values - these have to be hard coded for our HTML control - ASW\nexport function getInputType(validation: number): ValidationType {\n if (validation === null) return validationTypes[0];\n\n const inputType: ValidationType = validationTypes.find(v => v.id === validation);\n\n return inputType === null ? validationTypes[0] : inputType;\n}\n"],"names":["dvI18n","updateCreatedId"],"mappings":"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"}
@@ -0,0 +1,156 @@
1
+ 'use strict';
2
+
3
+ const MAX_HISTORY = 50;
4
+ let undoStack = [];
5
+ let redoStack = [];
6
+ let fieldSnapshots = new Map();
7
+ /**
8
+ * Snapshot a field's state before any edits occur.
9
+ * Only stores if no snapshot exists yet for this field.
10
+ * Called at mouseDown before resize/move can mutate dataItem.
11
+ */
12
+ function snapshotField(field) {
13
+ if (field?.id && !fieldSnapshots.has(field.id)) {
14
+ fieldSnapshots.set(field.id, { ...field });
15
+ }
16
+ }
17
+ /**
18
+ * Record a set of mutations before they are applied.
19
+ * Call this with the mutations and the before-state of affected elements.
20
+ */
21
+ function recordMutations(mutations, beforeStates) {
22
+ const inverse = mutations
23
+ .map(m => {
24
+ const data = m.data;
25
+ switch (m.action) {
26
+ case 'create':
27
+ return { action: 'delete', data };
28
+ case 'delete':
29
+ return { action: 'create', data: beforeStates.get(data.id) || { ...data } };
30
+ case 'update':
31
+ // Use snapshot (captured at selection time) or beforeState from DOM
32
+ const before = fieldSnapshots.get(data.id) || beforeStates.get(data.id);
33
+ return { action: 'update', data: before ? { ...before } : { ...data } };
34
+ default:
35
+ return null;
36
+ }
37
+ })
38
+ .filter(Boolean);
39
+ undoStack.push({ mutations, inverse });
40
+ if (undoStack.length > MAX_HISTORY) {
41
+ undoStack.shift();
42
+ }
43
+ // Update snapshots to the new state (so next undo captures from this point)
44
+ mutations.forEach(m => {
45
+ const data = m.data;
46
+ if (data?.id) {
47
+ if (m.action === 'delete') {
48
+ fieldSnapshots.delete(data.id);
49
+ }
50
+ else {
51
+ fieldSnapshots.set(data.id, { ...data });
52
+ }
53
+ }
54
+ });
55
+ // New action clears redo
56
+ redoStack = [];
57
+ console.log('[History] Recorded:', mutations.map(m => `${m.action} ${m.data.id}`));
58
+ console.log('[History] Undo stack size:', undoStack.length);
59
+ console.log('[History] Undo stack:', undoStack.map((entry, i) => `${i}: ${entry.mutations.map(m => `${m.action} ${m.data.id?.slice(0, 8)}...`).join(', ')}`));
60
+ }
61
+ function undo() {
62
+ if (undoStack.length === 0) {
63
+ console.log('[History] Nothing to undo');
64
+ return null;
65
+ }
66
+ const entry = undoStack.pop();
67
+ redoStack.push(entry);
68
+ if (redoStack.length > MAX_HISTORY) {
69
+ redoStack.shift();
70
+ }
71
+ // Update snapshots to the restored state so the next action records correctly
72
+ entry.inverse.forEach(m => {
73
+ const data = m.data;
74
+ if (data?.id) {
75
+ if (m.action === 'delete') {
76
+ fieldSnapshots.delete(data.id);
77
+ }
78
+ else {
79
+ fieldSnapshots.set(data.id, { ...data });
80
+ }
81
+ }
82
+ });
83
+ console.log('[History] Undo:', entry.inverse.map(m => `${m.action} ${m.data.id}`));
84
+ console.log('[History] Undo data:', entry.inverse.map(m => ({
85
+ action: m.action,
86
+ w: m.data.width,
87
+ h: m.data.height,
88
+ t: m.data.top,
89
+ l: m.data.left,
90
+ value: m.data.value,
91
+ data: m.data,
92
+ })));
93
+ return entry.inverse;
94
+ }
95
+ function redo() {
96
+ if (redoStack.length === 0) {
97
+ console.log('[History] Nothing to redo');
98
+ return null;
99
+ }
100
+ const entry = redoStack.pop();
101
+ undoStack.push(entry);
102
+ if (undoStack.length > MAX_HISTORY) {
103
+ undoStack.shift();
104
+ }
105
+ // Update snapshots to the re-applied state so the next action records correctly
106
+ entry.mutations.forEach(m => {
107
+ const data = m.data;
108
+ if (data?.id) {
109
+ if (m.action === 'delete') {
110
+ fieldSnapshots.delete(data.id);
111
+ }
112
+ else {
113
+ fieldSnapshots.set(data.id, { ...data });
114
+ }
115
+ }
116
+ });
117
+ console.log('[History] Redo:', entry.mutations.map(m => `${m.action} ${m.data.id}`));
118
+ return entry.mutations;
119
+ }
120
+ /**
121
+ * After a create mutation, the API returns a server-generated ID.
122
+ * Update the history entries so undo/redo use the real ID.
123
+ */
124
+ function updateCreatedId(clientId, serverId) {
125
+ const updateEntry = (entry) => {
126
+ entry.mutations.forEach(m => {
127
+ if (m.data.id === clientId) {
128
+ m.data.id = serverId;
129
+ }
130
+ });
131
+ entry.inverse.forEach(m => {
132
+ if (m.data.id === clientId) {
133
+ m.data.id = serverId;
134
+ }
135
+ });
136
+ };
137
+ // Update all entries in both stacks that reference the old ID
138
+ undoStack.forEach(updateEntry);
139
+ redoStack.forEach(updateEntry);
140
+ // Update snapshot key to use server ID
141
+ if (fieldSnapshots.has(clientId)) {
142
+ const snapshot = fieldSnapshots.get(clientId);
143
+ fieldSnapshots.delete(clientId);
144
+ snapshot.id = serverId;
145
+ fieldSnapshots.set(serverId, snapshot);
146
+ }
147
+ }
148
+
149
+ exports.recordMutations = recordMutations;
150
+ exports.redo = redo;
151
+ exports.snapshotField = snapshotField;
152
+ exports.undo = undo;
153
+ exports.updateCreatedId = updateCreatedId;
154
+ //# sourceMappingURL=history-W8FR8iDj.js.map
155
+
156
+ //# sourceMappingURL=history-W8FR8iDj.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-W8FR8iDj.js","sources":["src/components/ls-document-viewer/history.ts"],"sourcesContent":["import { LSApiElement } from '../../types/LSApiElement';\nimport { LSMutateEvent } from '../../types/LSMutateEvent';\n\nconst MAX_HISTORY = 50;\n\ntype HistoryEntry = {\n mutations: LSMutateEvent[];\n inverse: LSMutateEvent[];\n};\n\nlet undoStack: HistoryEntry[] = [];\nlet redoStack: HistoryEntry[] = [];\nlet fieldSnapshots: Map<string, LSApiElement> = new Map();\n\nexport function canUndo(): boolean {\n return undoStack.length > 0;\n}\n\nexport function canRedo(): boolean {\n return redoStack.length > 0;\n}\n\n/**\n * Snapshot a field's state before any edits occur.\n * Only stores if no snapshot exists yet for this field.\n * Called at mouseDown before resize/move can mutate dataItem.\n */\nexport function snapshotField(field: LSApiElement) {\n if (field?.id && !fieldSnapshots.has(field.id)) {\n fieldSnapshots.set(field.id, { ...field });\n }\n}\n\n/**\n * Record a set of mutations before they are applied.\n * Call this with the mutations and the before-state of affected elements.\n */\nexport function recordMutations(mutations: LSMutateEvent[], beforeStates: Map<string, LSApiElement>) {\n const inverse: LSMutateEvent[] = mutations\n .map(m => {\n const data = m.data as LSApiElement;\n switch (m.action) {\n case 'create':\n return { action: 'delete', data };\n case 'delete':\n return { action: 'create', data: beforeStates.get(data.id) || { ...data } };\n case 'update':\n // Use snapshot (captured at selection time) or beforeState from DOM\n const before = fieldSnapshots.get(data.id) || beforeStates.get(data.id);\n return { action: 'update', data: before ? { ...before } : { ...data } };\n default:\n return null;\n }\n })\n .filter(Boolean) as LSMutateEvent[];\n\n undoStack.push({ mutations, inverse });\n if (undoStack.length > MAX_HISTORY) {\n undoStack.shift();\n }\n\n // Update snapshots to the new state (so next undo captures from this point)\n mutations.forEach(m => {\n const data = m.data as LSApiElement;\n if (data?.id) {\n if (m.action === 'delete') {\n fieldSnapshots.delete(data.id);\n } else {\n fieldSnapshots.set(data.id, { ...data });\n }\n }\n });\n\n // New action clears redo\n redoStack = [];\n\n console.log(\n '[History] Recorded:',\n mutations.map(m => `${m.action} ${(m.data as any).id}`),\n );\n console.log('[History] Undo stack size:', undoStack.length);\n console.log(\n '[History] Undo stack:',\n undoStack.map((entry, i) => `${i}: ${entry.mutations.map(m => `${m.action} ${(m.data as any).id?.slice(0, 8)}...`).join(', ')}`),\n );\n}\n\nexport function undo() {\n if (undoStack.length === 0) {\n console.log('[History] Nothing to undo');\n return null;\n }\n\n const entry = undoStack.pop();\n redoStack.push(entry);\n if (redoStack.length > MAX_HISTORY) {\n redoStack.shift();\n }\n\n // Update snapshots to the restored state so the next action records correctly\n entry.inverse.forEach(m => {\n const data = m.data as LSApiElement;\n if (data?.id) {\n if (m.action === 'delete') {\n fieldSnapshots.delete(data.id);\n } else {\n fieldSnapshots.set(data.id, { ...data });\n }\n }\n });\n\n console.log(\n '[History] Undo:',\n entry.inverse.map(m => `${m.action} ${(m.data as any).id}`),\n );\n console.log(\n '[History] Undo data:',\n entry.inverse.map(m => ({\n action: m.action,\n w: (m.data as any).width,\n h: (m.data as any).height,\n t: (m.data as any).top,\n l: (m.data as any).left,\n value: (m.data as any).value,\n data: m.data as any,\n })),\n );\n return entry.inverse;\n}\n\nexport function redo() {\n if (redoStack.length === 0) {\n console.log('[History] Nothing to redo');\n return null;\n }\n\n const entry = redoStack.pop();\n undoStack.push(entry);\n if (undoStack.length > MAX_HISTORY) {\n undoStack.shift();\n }\n\n // Update snapshots to the re-applied state so the next action records correctly\n entry.mutations.forEach(m => {\n const data = m.data as LSApiElement;\n if (data?.id) {\n if (m.action === 'delete') {\n fieldSnapshots.delete(data.id);\n } else {\n fieldSnapshots.set(data.id, { ...data });\n }\n }\n });\n\n console.log(\n '[History] Redo:',\n entry.mutations.map(m => `${m.action} ${(m.data as any).id}`),\n );\n return entry.mutations;\n}\n\nexport function clearHistory() {\n undoStack = [];\n redoStack = [];\n}\n\n/**\n * After a create mutation, the API returns a server-generated ID.\n * Update the history entries so undo/redo use the real ID.\n */\nexport function updateCreatedId(clientId: string, serverId: string) {\n const updateEntry = (entry: HistoryEntry) => {\n entry.mutations.forEach(m => {\n if ((m.data as LSApiElement).id === clientId) {\n (m.data as LSApiElement).id = serverId;\n }\n });\n entry.inverse.forEach(m => {\n if ((m.data as LSApiElement).id === clientId) {\n (m.data as LSApiElement).id = serverId;\n }\n });\n };\n\n // Update all entries in both stacks that reference the old ID\n undoStack.forEach(updateEntry);\n redoStack.forEach(updateEntry);\n\n // Update snapshot key to use server ID\n if (fieldSnapshots.has(clientId)) {\n const snapshot = fieldSnapshots.get(clientId);\n fieldSnapshots.delete(clientId);\n snapshot.id = serverId;\n fieldSnapshots.set(serverId, snapshot);\n }\n}\n"],"names":[],"mappings":"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"}