legalesign-document-viewer 0.10.6 → 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.
- package/dist/cjs/defaultFieldLabels-BUxtUsF1.js +67 -0
- package/dist/cjs/defaultFieldLabels-BUxtUsF1.js.map +1 -0
- package/dist/cjs/{editorUtils-C39-yDqp.js → editorUtils-Bwf1xDdc.js} +5 -3
- package/dist/cjs/editorUtils-Bwf1xDdc.js.map +1 -0
- package/dist/cjs/history-W8FR8iDj.js +156 -0
- package/dist/cjs/history-W8FR8iDj.js.map +1 -0
- package/dist/cjs/{i18n-CtOY02kl.js → i18n-ROQG0wTX.js} +81 -24
- package/dist/cjs/{i18n-CtOY02kl.js.map → i18n-ROQG0wTX.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/ls-add-new-button_20.cjs.entry.js +217 -36
- package/dist/cjs/ls-assignee-select_21.cjs.entry.js +138 -108
- package/dist/cjs/ls-compose-loader_7.cjs.entry.js +700 -0
- package/dist/cjs/ls-compose-manager.cjs.entry.js +3 -3
- package/dist/cjs/ls-document-viewer.cjs.entry.js +161 -12
- package/dist/cjs/ls-document-viewer.cjs.js +1 -1
- package/dist/cjs/ls-field-alignment_3.cjs.entry.js +50 -65
- package/dist/cjs/ls-field-format_2.cjs.entry.js +32 -37
- package/dist/cjs/ls-field-properties-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/ls-field-type-display.cjs.entry.js +4 -4
- package/dist/cjs/ls-helper-bar_2.cjs.entry.js +7 -4
- package/dist/cjs/ls-title-input.cjs.entry.js +1 -1
- package/dist/cjs/ls-toolbox-field.cjs.entry.js +3 -3
- package/dist/cjs/{mouseHandlers-CjI_rMW4.js → mouseHandlers-DTV5t8jK.js} +91 -46
- package/dist/cjs/mouseHandlers-DTV5t8jK.js.map +1 -0
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/ls-assignee-select/ls-assignee-select.js +5 -5
- package/dist/collection/components/ls-compose-loader/ls-compose-loader.js +1 -1
- package/dist/collection/components/ls-compose-manager/ls-compose-manager.js +2 -2
- package/dist/collection/components/ls-document-options/ls-document-options.js +5 -1
- package/dist/collection/components/ls-document-options/ls-document-options.js.map +1 -1
- package/dist/collection/components/ls-document-viewer/editorUtils.js +2 -0
- package/dist/collection/components/ls-document-viewer/editorUtils.js.map +1 -1
- package/dist/collection/components/ls-document-viewer/generateRoles.js +2 -2
- package/dist/collection/components/ls-document-viewer/generateRoles.js.map +1 -1
- package/dist/collection/components/ls-document-viewer/history.js +156 -0
- package/dist/collection/components/ls-document-viewer/history.js.map +1 -0
- package/dist/collection/components/ls-document-viewer/keyHandlers.js +31 -0
- package/dist/collection/components/ls-document-viewer/keyHandlers.js.map +1 -1
- package/dist/collection/components/ls-document-viewer/ls-document-viewer.css +20 -0
- package/dist/collection/components/ls-document-viewer/ls-document-viewer.js +127 -6
- package/dist/collection/components/ls-document-viewer/ls-document-viewer.js.map +1 -1
- package/dist/collection/components/ls-document-viewer/mouseHandlers.js +87 -42
- package/dist/collection/components/ls-document-viewer/mouseHandlers.js.map +1 -1
- package/dist/collection/components/ls-editor-field/ls-editor-field.css +5 -0
- package/dist/collection/components/ls-editor-field/ls-editor-field.js +55 -22
- package/dist/collection/components/ls-editor-field/ls-editor-field.js.map +1 -1
- package/dist/collection/components/ls-editor-table/ls-editor-table.js +1 -1
- package/dist/collection/components/ls-feature-column/ls-feature-column.js +6 -6
- package/dist/collection/components/ls-field-alignment/ls-field-alignment.js +24 -56
- package/dist/collection/components/ls-field-alignment/ls-field-alignment.js.map +1 -1
- package/dist/collection/components/ls-field-content/ls-field-content.js +52 -14
- package/dist/collection/components/ls-field-content/ls-field-content.js.map +1 -1
- package/dist/collection/components/ls-field-dimensions/ls-field-dimensions.js +9 -3
- package/dist/collection/components/ls-field-dimensions/ls-field-dimensions.js.map +1 -1
- package/dist/collection/components/ls-field-distribute/ls-field-distribute.js +21 -5
- package/dist/collection/components/ls-field-distribute/ls-field-distribute.js.map +1 -1
- package/dist/collection/components/ls-field-footer/ls-field-footer.js +1 -1
- package/dist/collection/components/ls-field-format/ls-field-format.css +5 -0
- package/dist/collection/components/ls-field-format/ls-field-format.js +20 -25
- package/dist/collection/components/ls-field-format/ls-field-format.js.map +1 -1
- package/dist/collection/components/ls-field-placement/ls-field-placement.js +6 -9
- package/dist/collection/components/ls-field-placement/ls-field-placement.js.map +1 -1
- package/dist/collection/components/ls-field-properties/ls-field-properties.js +1 -1
- package/dist/collection/components/ls-field-properties-advanced/ls-field-properties-advanced.js +2 -2
- package/dist/collection/components/ls-field-properties-autosign/ls-field-properties-autosign.js +1 -1
- package/dist/collection/components/ls-field-properties-checkbox/ls-field-properties-checkbox.js +1 -1
- package/dist/collection/components/ls-field-properties-container/ls-field-properties-container.js +1 -1
- package/dist/collection/components/ls-field-properties-date/ls-field-properties-date.js +1 -1
- package/dist/collection/components/ls-field-properties-dropdown/ls-field-properties-dropdown.js +1 -1
- package/dist/collection/components/ls-field-properties-email/ls-field-properties-email.js +1 -1
- package/dist/collection/components/ls-field-properties-file/ls-field-properties-file.js +1 -1
- package/dist/collection/components/ls-field-properties-general/ls-field-properties-general.js +1 -1
- package/dist/collection/components/ls-field-properties-multiple/ls-field-properties-multiple.css +15 -0
- package/dist/collection/components/ls-field-properties-multiple/ls-field-properties-multiple.js +188 -2
- package/dist/collection/components/ls-field-properties-multiple/ls-field-properties-multiple.js.map +1 -1
- package/dist/collection/components/ls-field-properties-number/ls-field-properties-number.js +1 -1
- package/dist/collection/components/ls-field-properties-signature/ls-field-properties-signature.js +1 -1
- package/dist/collection/components/ls-field-properties-text/ls-field-properties-text.js +1 -1
- package/dist/collection/components/ls-field-size/ls-field-size.js +1 -1
- package/dist/collection/components/ls-field-type-display/ls-field-type-display.js +3 -3
- package/dist/collection/components/ls-field-type-select/ls-field-type-select.css +3 -3
- package/dist/collection/components/ls-field-type-select/ls-field-type-select.js +4 -4
- package/dist/collection/components/ls-helper-bar/ls-helper-bar.js +2 -1
- package/dist/collection/components/ls-helper-bar/ls-helper-bar.js.map +1 -1
- package/dist/collection/components/ls-input-wrapper/ls-input-wrapper.js +1 -1
- package/dist/collection/components/ls-keyboard-shortcuts/ls-keyboard-shortcuts.css +1 -6
- package/dist/collection/components/ls-keyboard-shortcuts/ls-keyboard-shortcuts.js +3 -1
- package/dist/collection/components/ls-keyboard-shortcuts/ls-keyboard-shortcuts.js.map +1 -1
- package/dist/collection/components/ls-left-bar/ls-left-bar.css +12 -0
- package/dist/collection/components/ls-left-bar/ls-left-bar.js +2 -2
- package/dist/collection/components/ls-left-bar/ls-left-bar.js.map +1 -1
- package/dist/collection/components/ls-participant-manager/ls-participant-manager.js +3 -3
- package/dist/collection/components/ls-participant-select/ls-participant-select.js +10 -10
- package/dist/collection/components/ls-props-section/ls-props-section.js +1 -1
- package/dist/collection/components/ls-recipient-card/ls-recipient-card.js +5 -5
- package/dist/collection/components/ls-recipient-manager/ls-recipient-manager.js +1 -1
- package/dist/collection/components/ls-select-menu/ls-select-menu.css +97 -0
- package/dist/collection/components/ls-select-menu/ls-select-menu.js +322 -0
- package/dist/collection/components/ls-select-menu/ls-select-menu.js.map +1 -0
- package/dist/collection/components/ls-statusbar/ls-statusbar.css +16 -6
- package/dist/collection/components/ls-statusbar/ls-statusbar.js +39 -14
- package/dist/collection/components/ls-statusbar/ls-statusbar.js.map +1 -1
- package/dist/collection/components/ls-title-input/ls-title-input.js +1 -1
- package/dist/collection/components/ls-toggle/ls-toggle.js +3 -2
- package/dist/collection/components/ls-toggle/ls-toggle.js.map +1 -1
- package/dist/collection/components/ls-toolbar/ls-toolbar.css +116 -1
- package/dist/collection/components/ls-toolbar/ls-toolbar.js +56 -1
- package/dist/collection/components/ls-toolbar/ls-toolbar.js.map +1 -1
- package/dist/collection/components/ls-toolbox-field/ls-toolbox-field.js +3 -3
- package/dist/collection/components/ls-validation-manager/ls-validation-manager.js +2 -2
- package/dist/collection/components/ls-validation-tag/ls-validation-tag.js +2 -2
- package/dist/components/ls-assignee-select.js +1 -1
- package/dist/components/ls-compose-loader.js +1 -1
- package/dist/components/ls-compose-manager.js +3 -3
- package/dist/components/ls-document-options.js +1 -1
- package/dist/components/ls-document-viewer.js +274 -118
- package/dist/components/ls-document-viewer.js.map +1 -1
- package/dist/components/ls-editor-field.js +1 -1
- package/dist/components/ls-editor-table.js +1 -1
- package/dist/components/ls-feature-column.js +1 -1
- package/dist/components/ls-field-alignment.js +1 -1
- package/dist/components/ls-field-content.js +1 -1
- package/dist/components/ls-field-dimensions.js +1 -1
- package/dist/components/ls-field-distribute.js +1 -1
- package/dist/components/ls-field-footer.js +1 -1
- package/dist/components/ls-field-format.js +1 -1
- package/dist/components/ls-field-placement.js +1 -1
- package/dist/components/ls-field-properties-advanced.js +1 -1
- package/dist/components/ls-field-properties-autosign.js +1 -1
- package/dist/components/ls-field-properties-checkbox.js +1 -1
- package/dist/components/ls-field-properties-container.js +1 -1
- package/dist/components/ls-field-properties-date.js +1 -1
- package/dist/components/ls-field-properties-dropdown.js +13 -13
- package/dist/components/ls-field-properties-email.js +1 -1
- package/dist/components/ls-field-properties-file.js +1 -1
- package/dist/components/ls-field-properties-general.js +1 -1
- package/dist/components/ls-field-properties-multiple.js +1 -1
- package/dist/components/ls-field-properties-number.js +1 -1
- package/dist/components/ls-field-properties-signature.js +1 -1
- package/dist/components/ls-field-properties-text.js +1 -1
- package/dist/components/ls-field-properties.js +1 -1
- package/dist/components/ls-field-size.js +1 -1
- package/dist/components/ls-field-type-display.js +4 -4
- package/dist/components/ls-field-type-select.js +1 -1
- package/dist/components/ls-helper-bar.js +1 -1
- package/dist/components/ls-input-wrapper.js +1 -1
- package/dist/components/ls-keyboard-shortcuts.js +1 -1
- package/dist/components/ls-left-bar.js +1 -1
- package/dist/components/ls-participant-card.js +1 -1
- package/dist/components/ls-participant-manager.js +1 -1
- package/dist/components/ls-participant-select.js +1 -1
- package/dist/components/ls-props-section.js +1 -1
- package/dist/components/ls-recipient-card.js +1 -1
- package/dist/components/ls-recipient-manager.js +1 -1
- package/dist/components/ls-select-menu.d.ts +11 -0
- package/dist/components/ls-select-menu.js +9 -0
- package/dist/components/ls-select-menu.js.map +1 -0
- package/dist/components/ls-statusbar.js +1 -1
- package/dist/components/ls-title-input.js +1 -1
- package/dist/components/ls-toggle.js +1 -1
- package/dist/components/ls-toolbar.js +1 -1
- package/dist/components/ls-toolbox-field.js +1 -1
- package/dist/components/ls-validation-manager.js +1 -1
- package/dist/components/ls-validation-tag.js +1 -1
- package/dist/components/p--oiqur2Y.js +63 -0
- package/dist/components/p--oiqur2Y.js.map +1 -0
- package/dist/components/{p-D_qcM56g.js → p-4Q3WDLPO.js} +3 -3
- package/dist/components/{p-D_qcM56g.js.map → p-4Q3WDLPO.js.map} +1 -1
- package/dist/components/p-B2tOaKjM.js +138 -0
- package/dist/components/p-B2tOaKjM.js.map +1 -0
- package/dist/components/{p-C_eyTLdK.js → p-B50exKU0.js} +112 -51
- package/dist/components/p-B50exKU0.js.map +1 -0
- package/dist/components/{p-CCAla8MG.js → p-BAe1pF4V.js} +15 -15
- package/dist/components/{p-CCAla8MG.js.map → p-BAe1pF4V.js.map} +1 -1
- package/dist/components/{p-Bhfl-qsu.js → p-BCFyGEc0.js} +27 -59
- package/dist/components/p-BCFyGEc0.js.map +1 -0
- package/dist/components/{p-BIxjCZF9.js → p-BLyCAsyj.js} +15 -15
- package/dist/components/{p-BIxjCZF9.js.map → p-BLyCAsyj.js.map} +1 -1
- package/dist/components/{p-BUCEqkwm.js → p-BN-YTiCL.js} +15 -15
- package/dist/components/{p-BUCEqkwm.js.map → p-BN-YTiCL.js.map} +1 -1
- package/dist/components/{p-5yc7CL_t.js → p-BSjFM6gD.js} +54 -62
- package/dist/components/p-BSjFM6gD.js.map +1 -0
- package/dist/components/{p-BqFycz64.js → p-BV-01LA3.js} +5 -5
- package/dist/components/{p-BqFycz64.js.map → p-BV-01LA3.js.map} +1 -1
- package/dist/components/{p-iclCNGZv.js → p-BWD7Q18A.js} +7 -7
- package/dist/components/{p-iclCNGZv.js.map → p-BWD7Q18A.js.map} +1 -1
- package/dist/components/{p-DCPBj3d-.js → p-BefbdHPA.js} +4 -4
- package/dist/components/{p-DCPBj3d-.js.map → p-BefbdHPA.js.map} +1 -1
- package/dist/components/{p-CaBHrF1k.js → p-BlT6_8qi.js} +15 -15
- package/dist/components/{p-CaBHrF1k.js.map → p-BlT6_8qi.js.map} +1 -1
- package/dist/components/{p-D6Jaqb83.js → p-BrcXCfUL.js} +4 -4
- package/dist/components/{p-D6Jaqb83.js.map → p-BrcXCfUL.js.map} +1 -1
- package/dist/components/{p-BdOj7K7J.js → p-Bt3HoxFC.js} +28 -28
- package/dist/components/{p-BdOj7K7J.js.map → p-Bt3HoxFC.js.map} +1 -1
- package/dist/components/{p-CHg2JLwv.js → p-Bz8q9PGu.js} +7 -5
- package/dist/components/p-Bz8q9PGu.js.map +1 -0
- package/dist/components/{p-DhnXOtKd.js → p-CASNnWoE.js} +15 -15
- package/dist/components/{p-DhnXOtKd.js.map → p-CASNnWoE.js.map} +1 -1
- package/dist/components/{p-CDuwGxCI.js → p-CMMi7oOz.js} +4 -4
- package/dist/components/{p-CDuwGxCI.js.map → p-CMMi7oOz.js.map} +1 -1
- package/dist/components/{p-t58CntV3.js → p-CTHSflZn.js} +5 -4
- package/dist/components/p-CTHSflZn.js.map +1 -0
- package/dist/components/{p-DaKBsvP9.js → p-CTVpVzES.js} +4 -4
- package/dist/components/{p-DaKBsvP9.js.map → p-CTVpVzES.js.map} +1 -1
- package/dist/components/p-Chd5q8Qg.js +243 -0
- package/dist/components/p-Chd5q8Qg.js.map +1 -0
- package/dist/components/p-CjRottqE.js +117 -0
- package/dist/components/p-CjRottqE.js.map +1 -0
- package/dist/components/{p-FTeWd-fe.js → p-CsbnxjD_.js} +5 -5
- package/dist/components/{p-FTeWd-fe.js.map → p-CsbnxjD_.js.map} +1 -1
- package/dist/components/{p-CiKJod-j.js → p-D-UanzXb.js} +215 -31
- package/dist/components/p-D-UanzXb.js.map +1 -0
- package/dist/components/{p-WbblFOwn.js → p-D677UZh6.js} +3 -3
- package/dist/components/{p-WbblFOwn.js.map → p-D677UZh6.js.map} +1 -1
- package/dist/components/{p-S8lYw_8U.js → p-D9bj8DRO.js} +8 -8
- package/dist/components/p-D9bj8DRO.js.map +1 -0
- package/dist/components/{p-1_28xR0y.js → p-DB1zagxM.js} +12 -6
- package/dist/components/p-DB1zagxM.js.map +1 -0
- package/dist/components/{p-DOGyzz2Y.js → p-DB6m1_YD.js} +9 -5
- package/dist/components/p-DB6m1_YD.js.map +1 -0
- package/dist/components/{p-CJc3ypAL.js → p-DJRBibyg.js} +8 -8
- package/dist/components/{p-CJc3ypAL.js.map → p-DJRBibyg.js.map} +1 -1
- package/dist/components/{p-CCrVBRM_.js → p-DOCGlgAr.js} +4 -4
- package/dist/components/{p-CCrVBRM_.js.map → p-DOCGlgAr.js.map} +1 -1
- package/dist/components/p-DQak0VIj.js +150 -0
- package/dist/components/p-DQak0VIj.js.map +1 -0
- package/dist/components/{p-mjmgtk5C.js → p-DUJCLlqw.js} +6 -6
- package/dist/components/{p-mjmgtk5C.js.map → p-DUJCLlqw.js.map} +1 -1
- package/dist/components/{p-BzEhzu-b.js → p-Dahoxblr.js} +6 -6
- package/dist/components/{p-BzEhzu-b.js.map → p-Dahoxblr.js.map} +1 -1
- package/dist/components/{p-D__F-KI0.js → p-DhdKhwId.js} +6 -5
- package/dist/components/p-DhdKhwId.js.map +1 -0
- package/dist/components/{p-CMnkO7V6.js → p-DlcDI6kK.js} +13 -13
- package/dist/components/{p-CMnkO7V6.js.map → p-DlcDI6kK.js.map} +1 -1
- package/dist/components/p-DoyYCoU2.js +305 -0
- package/dist/components/p-DoyYCoU2.js.map +1 -0
- package/dist/components/{p-D5gzFFJU.js → p-Dq09fOyL.js} +61 -26
- package/dist/components/p-Dq09fOyL.js.map +1 -0
- package/dist/components/{p-CkYDLuw-.js → p-DsriRarp.js} +15 -15
- package/dist/components/{p-CkYDLuw-.js.map → p-DsriRarp.js.map} +1 -1
- package/dist/components/{p-ClT7rRuN.js → p-FkIYS3SZ.js} +15 -15
- package/dist/components/{p-ClT7rRuN.js.map → p-FkIYS3SZ.js.map} +1 -1
- package/dist/components/{p-C0w02mDA.js → p-H_-PkGDt.js} +3 -3
- package/dist/components/{p-C0w02mDA.js.map → p-H_-PkGDt.js.map} +1 -1
- package/dist/components/{p-DKxyg3Fg.js → p-MkGn1lk8.js} +9 -9
- package/dist/components/{p-DKxyg3Fg.js.map → p-MkGn1lk8.js.map} +1 -1
- package/dist/components/{p-BA1aq6xb.js → p-MkVTvl3K.js} +8 -8
- package/dist/components/{p-BA1aq6xb.js.map → p-MkVTvl3K.js.map} +1 -1
- package/dist/components/{p-CX5Rt_Za.js → p-NmjIt5N8.js} +3 -3
- package/dist/components/{p-CX5Rt_Za.js.map → p-NmjIt5N8.js.map} +1 -1
- package/dist/components/{p-PfpXPz_F.js → p-gi1f0aTq.js} +41 -41
- package/dist/components/p-gi1f0aTq.js.map +1 -0
- package/dist/components/p-jGuTbzzv.js +103 -0
- package/dist/components/p-jGuTbzzv.js.map +1 -0
- package/dist/components/{p-C-fOXq2l.js → p-nWzKm7OR.js} +15 -15
- package/dist/components/{p-C-fOXq2l.js.map → p-nWzKm7OR.js.map} +1 -1
- package/dist/{esm/i18n-SDy1UUFt.js → components/p-xWlEB8_Z.js} +81 -24
- package/dist/components/{p-SDy1UUFt.js.map → p-xWlEB8_Z.js.map} +1 -1
- package/dist/components/{p-COb46YYv.js → p-y2Qq_iKy.js} +9 -9
- package/dist/components/{p-COb46YYv.js.map → p-y2Qq_iKy.js.map} +1 -1
- package/dist/esm/defaultFieldLabels-GlbzVGpj.js +63 -0
- package/dist/esm/defaultFieldLabels-GlbzVGpj.js.map +1 -0
- package/dist/esm/{editorUtils-C8yaAlj7.js → editorUtils-DxEtiJLH.js} +6 -4
- package/dist/esm/editorUtils-DxEtiJLH.js.map +1 -0
- package/dist/esm/history-DQak0VIj.js +150 -0
- package/dist/esm/history-DQak0VIj.js.map +1 -0
- package/dist/{components/p-SDy1UUFt.js → esm/i18n-xWlEB8_Z.js} +81 -24
- package/dist/esm/{i18n-SDy1UUFt.js.map → i18n-xWlEB8_Z.js.map} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/ls-add-new-button_20.entry.js +216 -35
- package/dist/esm/ls-assignee-select_21.entry.js +137 -107
- package/dist/esm/ls-compose-loader_7.entry.js +692 -0
- package/dist/esm/ls-compose-manager.entry.js +3 -3
- package/dist/esm/ls-document-viewer.entry.js +161 -12
- package/dist/esm/ls-document-viewer.entry.js.map +1 -1
- package/dist/esm/ls-document-viewer.js +1 -1
- package/dist/esm/ls-field-alignment_3.entry.js +50 -65
- package/dist/esm/ls-field-format_2.entry.js +32 -37
- package/dist/esm/ls-field-properties-dropdown.entry.js +1 -1
- package/dist/esm/ls-field-type-display.entry.js +4 -4
- package/dist/esm/ls-helper-bar_2.entry.js +7 -4
- package/dist/esm/ls-title-input.entry.js +1 -1
- package/dist/esm/ls-toolbox-field.entry.js +3 -3
- package/dist/esm/{mouseHandlers-yDmXsMel.js → mouseHandlers-bjEdgN0l.js} +91 -46
- package/dist/esm/mouseHandlers-bjEdgN0l.js.map +1 -0
- package/dist/ls-document-viewer/ls-document-viewer.esm.js +1 -1
- package/dist/ls-document-viewer/p-59f14d34.entry.js +24 -0
- package/dist/ls-document-viewer/p-59f14d34.entry.js.map +1 -0
- package/dist/ls-document-viewer/p-7f956e56.entry.js +2 -0
- package/dist/ls-document-viewer/{p-07e8425c.entry.js.map → p-7f956e56.entry.js.map} +1 -1
- package/dist/ls-document-viewer/p-8795651c.entry.js +2 -0
- package/dist/ls-document-viewer/p-8795651c.entry.js.map +1 -0
- package/dist/ls-document-viewer/p-8adb2a2b.entry.js +2 -0
- package/dist/ls-document-viewer/p-8adb2a2b.entry.js.map +1 -0
- package/dist/ls-document-viewer/p-8d6d8ce9.entry.js +2 -0
- package/dist/ls-document-viewer/p-933aec9d.entry.js +2 -0
- package/dist/ls-document-viewer/p-933aec9d.entry.js.map +1 -0
- package/dist/ls-document-viewer/p-CUIgrAMe.js +2 -0
- package/dist/ls-document-viewer/p-CUIgrAMe.js.map +1 -0
- package/dist/ls-document-viewer/p-D5ifsF1H.js +2 -0
- package/dist/ls-document-viewer/p-D5ifsF1H.js.map +1 -0
- package/dist/ls-document-viewer/p-DQak0VIj.js +2 -0
- package/dist/ls-document-viewer/p-DQak0VIj.js.map +1 -0
- package/dist/ls-document-viewer/p-GlbzVGpj.js +2 -0
- package/dist/ls-document-viewer/p-GlbzVGpj.js.map +1 -0
- package/dist/ls-document-viewer/{p-06c8389c.entry.js → p-aab8f6b4.entry.js} +2 -2
- package/dist/ls-document-viewer/p-af597d06.entry.js +2 -0
- package/dist/ls-document-viewer/p-af597d06.entry.js.map +1 -0
- package/dist/ls-document-viewer/{p-29736b13.entry.js → p-ca0622f2.entry.js} +2 -2
- package/dist/ls-document-viewer/p-d4504d48.entry.js +2 -0
- package/dist/ls-document-viewer/p-d4504d48.entry.js.map +1 -0
- package/dist/ls-document-viewer/p-d922937d.entry.js +2 -0
- package/dist/ls-document-viewer/p-d922937d.entry.js.map +1 -0
- package/dist/ls-document-viewer/{p-06efac7c.entry.js → p-fc94af7c.entry.js} +2 -2
- package/dist/ls-document-viewer/p-xWlEB8_Z.js +2 -0
- package/dist/ls-document-viewer/{p-SDy1UUFt.js.map → p-xWlEB8_Z.js.map} +1 -1
- package/dist/types/components/ls-document-viewer/history.d.ts +23 -0
- package/dist/types/components/ls-document-viewer/ls-document-viewer.d.ts +2 -0
- package/dist/types/components/ls-field-alignment/ls-field-alignment.d.ts +2 -3
- package/dist/types/components/ls-field-content/ls-field-content.d.ts +2 -0
- package/dist/types/components/ls-field-dimensions/ls-field-dimensions.d.ts +1 -0
- package/dist/types/components/ls-field-distribute/ls-field-distribute.d.ts +2 -0
- package/dist/types/components/ls-field-format/ls-field-format.d.ts +2 -2
- package/dist/types/components/ls-field-placement/ls-field-placement.d.ts +1 -1
- package/dist/types/components/ls-field-properties-multiple/ls-field-properties-multiple.d.ts +20 -0
- package/dist/types/components/ls-helper-bar/ls-helper-bar.d.ts +1 -0
- package/dist/types/components/ls-select-menu/ls-select-menu.d.ts +32 -0
- package/dist/types/components/ls-statusbar/ls-statusbar.d.ts +2 -0
- package/dist/types/components/ls-toolbar/ls-toolbar.d.ts +4 -0
- package/dist/types/components.d.ts +53 -0
- package/package.json +1 -1
- package/dist/cjs/editorUtils-C39-yDqp.js.map +0 -1
- package/dist/cjs/fieldTypeUtils-XnJkvOqZ.js +0 -28
- package/dist/cjs/fieldTypeUtils-XnJkvOqZ.js.map +0 -1
- package/dist/cjs/ls-compose-loader_6.cjs.entry.js +0 -463
- package/dist/cjs/mouseHandlers-CjI_rMW4.js.map +0 -1
- package/dist/components/p-1_28xR0y.js.map +0 -1
- package/dist/components/p-5yc7CL_t.js.map +0 -1
- package/dist/components/p-Bhfl-qsu.js.map +0 -1
- package/dist/components/p-Bu_qPd2i.js +0 -280
- package/dist/components/p-Bu_qPd2i.js.map +0 -1
- package/dist/components/p-C71n01Uq.js +0 -106
- package/dist/components/p-C71n01Uq.js.map +0 -1
- package/dist/components/p-CHg2JLwv.js.map +0 -1
- package/dist/components/p-C_eyTLdK.js.map +0 -1
- package/dist/components/p-CiKJod-j.js.map +0 -1
- package/dist/components/p-D5gzFFJU.js.map +0 -1
- package/dist/components/p-DKOaSs1P.js +0 -26
- package/dist/components/p-DKOaSs1P.js.map +0 -1
- package/dist/components/p-DOGyzz2Y.js.map +0 -1
- package/dist/components/p-D__F-KI0.js.map +0 -1
- package/dist/components/p-Djy4tXuj.js +0 -117
- package/dist/components/p-Djy4tXuj.js.map +0 -1
- package/dist/components/p-PfpXPz_F.js.map +0 -1
- package/dist/components/p-S8lYw_8U.js.map +0 -1
- package/dist/components/p-VyNf8S-n.js +0 -122
- package/dist/components/p-VyNf8S-n.js.map +0 -1
- package/dist/components/p-t58CntV3.js.map +0 -1
- package/dist/esm/editorUtils-C8yaAlj7.js.map +0 -1
- package/dist/esm/fieldTypeUtils-DKOaSs1P.js +0 -26
- package/dist/esm/fieldTypeUtils-DKOaSs1P.js.map +0 -1
- package/dist/esm/ls-compose-loader_6.entry.js +0 -456
- package/dist/esm/mouseHandlers-yDmXsMel.js.map +0 -1
- package/dist/ls-document-viewer/p-07e8425c.entry.js +0 -2
- package/dist/ls-document-viewer/p-0b9c02fc.entry.js +0 -24
- package/dist/ls-document-viewer/p-0b9c02fc.entry.js.map +0 -1
- package/dist/ls-document-viewer/p-0f896f7f.entry.js +0 -2
- package/dist/ls-document-viewer/p-0f896f7f.entry.js.map +0 -1
- package/dist/ls-document-viewer/p-26c0d3f7.entry.js +0 -2
- package/dist/ls-document-viewer/p-26c0d3f7.entry.js.map +0 -1
- package/dist/ls-document-viewer/p-39222cae.entry.js +0 -2
- package/dist/ls-document-viewer/p-39222cae.entry.js.map +0 -1
- package/dist/ls-document-viewer/p-4a59283c.entry.js +0 -2
- package/dist/ls-document-viewer/p-4a59283c.entry.js.map +0 -1
- package/dist/ls-document-viewer/p-7f0bbc28.entry.js +0 -2
- package/dist/ls-document-viewer/p-Bo082pPu.js +0 -2
- package/dist/ls-document-viewer/p-Bo082pPu.js.map +0 -1
- package/dist/ls-document-viewer/p-DKOaSs1P.js +0 -2
- package/dist/ls-document-viewer/p-DKOaSs1P.js.map +0 -1
- package/dist/ls-document-viewer/p-P4d82ZUk.js +0 -2
- package/dist/ls-document-viewer/p-P4d82ZUk.js.map +0 -1
- package/dist/ls-document-viewer/p-SDy1UUFt.js +0 -2
- package/dist/ls-document-viewer/p-b22dfd6b.entry.js +0 -2
- package/dist/ls-document-viewer/p-b22dfd6b.entry.js.map +0 -1
- package/dist/ls-document-viewer/p-f6bde9a9.entry.js +0 -2
- package/dist/ls-document-viewer/p-f6bde9a9.entry.js.map +0 -1
- /package/dist/ls-document-viewer/{p-7f0bbc28.entry.js.map → p-8d6d8ce9.entry.js.map} +0 -0
- /package/dist/ls-document-viewer/{p-06c8389c.entry.js.map → p-aab8f6b4.entry.js.map} +0 -0
- /package/dist/ls-document-viewer/{p-29736b13.entry.js.map → p-ca0622f2.entry.js.map} +0 -0
- /package/dist/ls-document-viewer/{p-06efac7c.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-
|
|
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-
|
|
576
|
+
//# sourceMappingURL=editorUtils-Bwf1xDdc.js.map
|
|
575
577
|
|
|
576
|
-
//# sourceMappingURL=editorUtils-
|
|
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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"}
|