legalesign-document-viewer 0.8.4 → 0.8.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/ls-document-options_45.cjs.entry.js +19 -6
- package/dist/collection/components/ls-document-viewer/ls-document-viewer.js +16 -3
- package/dist/collection/components/ls-document-viewer/ls-document-viewer.js.map +1 -1
- package/dist/collection/components/ls-statusbar/ls-statusbar.js +3 -3
- package/dist/collection/components/ls-statusbar/ls-statusbar.js.map +1 -1
- package/dist/components/ls-document-viewer.js +17 -4
- package/dist/components/ls-document-viewer.js.map +1 -1
- package/dist/components/ls-statusbar.js +1 -1
- package/dist/components/{p-CS2kp32x.js → p-QiYsb3yu.js} +5 -5
- package/dist/components/p-QiYsb3yu.js.map +1 -0
- package/dist/esm/ls-document-options_45.entry.js +19 -6
- package/dist/ls-document-viewer/ls-document-viewer.esm.js +1 -1
- package/dist/ls-document-viewer/{p-7ab9b1af.entry.js → p-4e82f911.entry.js} +3 -3
- package/dist/ls-document-viewer/p-4e82f911.entry.js.map +1 -0
- package/package.json +1 -1
- package/dist/components/p-CS2kp32x.js.map +0 -1
- package/dist/ls-document-viewer/p-7ab9b1af.entry.js.map +0 -1
|
@@ -40747,7 +40747,20 @@ const LsDocumentViewer = class {
|
|
|
40747
40747
|
this.initViewer();
|
|
40748
40748
|
if (this.mode === 'compose') {
|
|
40749
40749
|
this.manager = 'recipient';
|
|
40750
|
-
this._recipients = JSON.parse(this.recipients.replace('\u0022', '"')).sort((a, b) =>
|
|
40750
|
+
this._recipients = JSON.parse(this.recipients.replace('\u0022', '"')).sort((a, b) => {
|
|
40751
|
+
// Signers (signerIndex < 100) come before witnesses (signerIndex >= 100) for the same base index
|
|
40752
|
+
const aBase = a.signerIndex % 100 || 100;
|
|
40753
|
+
const bBase = b.signerIndex % 100 || 100;
|
|
40754
|
+
if (aBase !== bBase)
|
|
40755
|
+
return aBase - bBase;
|
|
40756
|
+
// If base is the same, signer comes before witness
|
|
40757
|
+
if (a.signerIndex < 100 && b.signerIndex >= 100)
|
|
40758
|
+
return -1;
|
|
40759
|
+
if (a.signerIndex >= 100 && b.signerIndex < 100)
|
|
40760
|
+
return 1;
|
|
40761
|
+
// Otherwise, keep original order
|
|
40762
|
+
return a.signerIndex - b.signerIndex;
|
|
40763
|
+
});
|
|
40751
40764
|
}
|
|
40752
40765
|
//Revalidate
|
|
40753
40766
|
this.validationErrors = validate.bind(this)(this._template);
|
|
@@ -40784,7 +40797,7 @@ const LsDocumentViewer = class {
|
|
|
40784
40797
|
return this.filtertoolbox === null || this.filtertoolbox.split('|').includes(fieldFormType);
|
|
40785
40798
|
}
|
|
40786
40799
|
render() {
|
|
40787
|
-
return (index.h(index.Host, { key: '
|
|
40800
|
+
return (index.h(index.Host, { key: '9f00cfeb1a6bcc52189174279c1201cad65ace34' }, index.h(index.h.Fragment, null, this.isLoading && index.h("ls-page-loader", { key: '93353173044ef4be53021e7fce344ee75fc62eaf' }), index.h("div", { key: '52f739d6bc23dfd44198b9bece065d1d8cee0994', class: "page-header" }, index.h("div", { key: '0a5a243050eb94ebd0236ea2838655d40a97268c', class: 'left-slot-wrapper' }, index.h("slot", { key: '66b74106c53c3d3bc1bc33ca714035a794e53deb', name: "left-button" })), index.h("div", { key: '1eada8c35260ba880b3ded12d7e87bcc1eb25bef', class: 'right-slot-wrapper' }, index.h("slot", { key: '795877c83b78d4882c132cc40df4536ef378c4cf', name: "right-button" })), this.mode === 'editor' && (index.h("div", { key: 'ed294a3584d7849643a3afd5c95b6b0ab00d7704' }, index.h("span", { key: '82ecae650ac3a41d4f5e3dd9da5cf18a8c095ae6', class: "header-text-1" }, "Template Creation"), index.h("span", { key: 'fbf6747f632ffd6154aaeece1584142969777eb0' }, "/"), index.h("span", { key: '04476c6ef1708e7455edc522d789d9587698e67f', class: "header-text-2" }, this._template?.title))), this.mode === 'compose' && (index.h("div", { key: 'e5051a5d9f43df3d6fe9a7ac352771914ad7bf51', style: { display: 'flex', alignItems: 'center', gap: '0.25rem' } }, index.h("slot", { key: 'ee8f5c1400969a800750337c48aea6cededc8ced', name: "top-bar" })))), this.mode === 'editor' && (index.h("div", { key: '34277758b90507752d58397b62016d39902d21ad', class: 'validation-tag-wrapper' }, index.h("ls-validation-tag", { key: 'bfd897070ae9c70a2706a791eb488f44c7547a3b', validationErrors: this.validationErrors }))), index.h("form", { key: '54894419bed1c115771abf8e37faea1fe9dd9c17', id: "ls-editor-form" }, this.mode !== 'preview' ? (index.h("div", { id: "ls-left-box", class: "leftBox", style: this.mode === 'compose' ? { borderRadius: '1.75rem' } : {} }, index.h("div", { class: !this.selected || this.selected.length === 0 ? 'left-box-inner' : 'hidden' }, this.mode === 'editor' && (index.h("ls-feature-column", { mode: this.mode, onManage: manager => {
|
|
40788
40801
|
if (manager.detail === 'document') {
|
|
40789
40802
|
var documentManager = this.component.shadowRoot.getElementById('ls-document-options');
|
|
40790
40803
|
documentManager.template = this._template;
|
|
@@ -40802,7 +40815,7 @@ const LsDocumentViewer = class {
|
|
|
40802
40815
|
this._recipients.map(recipient => (index.h("ls-recipient-card", { recipient: recipient, activeRecipient: this.signer, filtertoolbox: this.filtertoolbox, template: this._template, validationErrors: this.validationErrors, fieldTypeSelected: this.fieldTypeSelected, "data-signer-index": recipient.signerIndex }))), index.h("slot", { name: 'recipient-panel' })))), !this.displayTable && (index.h("div", { class: this.selected.length > 0 ? 'field-properties-outer' : 'hidden' }, index.h("div", { class: 'properties-header' }, index.h("div", { class: 'properties-header-icon' }, index.h("ls-icon", { name: "pre-filled-content" })), index.h("h1", { class: 'properties-header-title' }, "Field Properties"), index.h("button", { class: 'tertiaryGrey', onClick: e => {
|
|
40803
40816
|
this.selected = [];
|
|
40804
40817
|
e.preventDefault();
|
|
40805
|
-
}, "data-tooltip": "Close Properties Panel" }, index.h("ls-icon", { name: "x", size: "1.25rem" }))), index.h("ls-field-properties", { id: "my-field-panel" }))))) : (index.h(index.h.Fragment, null)), index.h("ls-toolbar", { key: '
|
|
40818
|
+
}, "data-tooltip": "Close Properties Panel" }, index.h("ls-icon", { name: "x", size: "1.25rem" }))), index.h("ls-field-properties", { id: "my-field-panel" }))))) : (index.h(index.h.Fragment, null)), index.h("ls-toolbar", { key: '024ea7e858bf9f345ad4f435d5a5f0878d51029b', id: "ls-toolbar", template: this._template, editor: this, groupInfo: this.groupInfo, mode: this.mode }), index.h("div", { key: '754b073d20697b46e32f661529250503ff5637e6', id: "ls-mid-area" }, index.h("div", { key: '69fbbf46e5367f5b3c57e1cff58e8fb677766868', class: 'document-frame-wrapper', id: "document-frame-wrapper" }, index.h("div", { key: 'e385a5dd475f2e3b85e7f470a6d7aee96b7a806f', id: "ls-document-frame" }, index.h("canvas", { key: '0f3b693c75b27992b7d321743b99e9f8bb5f31e4', id: "pdf-canvas", class: this.displayTable || this.isLoading ? 'hidden' : '' }), index.h("ls-editor-table", { key: '8d813d6303147521bbfb68efd9fab8160621e169', editor: this, class: this.displayTable ? '' : 'hidden' }), index.h("div", { key: 'e84965254a4d7b60591c15de992a4728832179e9', id: "ls-box-selector" }))), index.h("ls-statusbar", { key: 'be1ffb0180d97c0219813b377f59166feb00f4a2', editor: this, page: this.pageNum, pageCount: this.pageCount })))), index.h("ls-tooltip", { key: 'ad91df7f06b975dcd33a678b33dea80d2df8e8f5', id: "ls-tooltip-master" })));
|
|
40806
40819
|
}
|
|
40807
40820
|
static get watchers() { return {
|
|
40808
40821
|
"mode": ["modeHandler"],
|
|
@@ -49929,11 +49942,11 @@ const LsStatusbar = class {
|
|
|
49929
49942
|
this.zoom = this.editor.zoom;
|
|
49930
49943
|
}
|
|
49931
49944
|
render() {
|
|
49932
|
-
return (index.h(index.Host, { key: '69daa9251f31cf28501fd47c5536a3a0e76d48cf' }, index.h("div", { key: 'f1204ff3c369c48389df4ed8c5cb45457bb087a4', class: 'controls-bar' }, index.h("div", { key: '268b93d93af4689dbd477e292db3dbb45c88e40c', class: 'status-bar-section' }, index.h("button", { key: '50ed0b096d871252132eb8315d7b667ff2c1dbed', onClick: () => this.setZoom(this.editor.zoom * 0.8), id: "zoom-out-btn", "data-tooltip": "Zoom Out" }, index.h("ls-icon", { key: '278a53a799c94c202b1167ea4ee4ac2d93f69907', name: "zoom-out" })), index.h("span", { key: 'dd193206fa1b631d5fe2bfa12602b487a68257aa' }, this.zoom * 100, "%"), index.h("button", { key: '
|
|
49945
|
+
return (index.h(index.Host, { key: '69daa9251f31cf28501fd47c5536a3a0e76d48cf' }, index.h("div", { key: 'f1204ff3c369c48389df4ed8c5cb45457bb087a4', class: 'controls-bar' }, index.h("div", { key: '268b93d93af4689dbd477e292db3dbb45c88e40c', class: 'status-bar-section' }, index.h("button", { key: '50ed0b096d871252132eb8315d7b667ff2c1dbed', onClick: () => this.setZoom(this.editor.zoom * 0.8), id: "zoom-out-btn", "data-tooltip": "Zoom Out" }, index.h("ls-icon", { key: '278a53a799c94c202b1167ea4ee4ac2d93f69907', name: "zoom-out" })), index.h("span", { key: 'dd193206fa1b631d5fe2bfa12602b487a68257aa' }, Math.round(this.zoom * 100), "%"), index.h("button", { key: '2955b651f5b0772d095571b8ece4255eb46c5b30', onClick: () => this.setZoom(this.editor.zoom / 0.8), id: "zoom-in-btn", "data-tooltip": "Zoom In" }, index.h("ls-icon", { key: '1fde117aa9805b7d0bc27d3c87dd41c70de3447c', name: "zoom-in" }))), index.h("div", { key: '30dfa5377ed0cc8d90c2ac2188122fd6e1e21124', class: 'status-bar-section' }, index.h("button", { key: '3e9a8204ae762b488017d54871735c849fd141f9', onClick: () => this.fitWidth(), id: "fit-width-btn", "data-tooltip": "Fit Width" }, index.h("ls-icon", { key: '5f213bfb5bf1734c4c86a679dd2c48a8c9a0cbfe', name: "fit-width" })), index.h("button", { key: 'b7d00c04acf48ae9326b59dc2d93d907905c22eb', onClick: () => this.fitHeight(), id: "fit-height-btn", "data-tooltip": "Fit Height" }, index.h("ls-icon", { key: '4569595f7a271456efa4774a5609cdda94903051', name: "fit-height" }))), index.h("div", { key: '41cb8b7ccda42a6ee4773940b0805ec75204c486', class: 'status-bar-section', style: this.pageCount === 1 && { display: 'none' } }, index.h("button", { key: 'ac0e7e046f3f6b6e6a946416beeccf25a8a766ba', onClick: () => {
|
|
49933
49946
|
this.editor.pagePrev();
|
|
49934
|
-
}, disabled: this.page === 1, id: "prev-page-btn", "data-tooltip": this.page === 1 ? 'No Previous Page' : 'Previous Page' }, index.h("ls-icon", { key: '
|
|
49947
|
+
}, disabled: this.page === 1, id: "prev-page-btn", "data-tooltip": this.page === 1 ? 'No Previous Page' : 'Previous Page' }, index.h("ls-icon", { key: '202d21d86cf2adf26b7ff12049d2a82660fc9e9e', name: "chevron-left" })), index.h("p", { key: 'ab4874418a784e75d423dfcf9bfb3c1825fe84e5' }, this.page, " / ", this.pageCount), index.h("button", { key: '2cd1cda3b5d46563e95d428dea417c7cbd132d30', onClick: () => {
|
|
49935
49948
|
this.editor.pageNext();
|
|
49936
|
-
}, disabled: this.page === this.pageCount, id: "next-page-btn", "data-tooltip": this.page === this.pageCount ? 'No Next Page' : 'Next Page' }, index.h("ls-icon", { key: '
|
|
49949
|
+
}, disabled: this.page === this.pageCount, id: "next-page-btn", "data-tooltip": this.page === this.pageCount ? 'No Next Page' : 'Next Page' }, index.h("ls-icon", { key: '68ce3a56868db26da50e4d3b5eda79bab37bd054', name: "chevron-right" })))), index.h("ls-helper-bar", { key: 'b0425da8b073e4345b8b5825e041a083a01c0e30' }), index.h("ls-tooltip", { key: '13ae8ff9d9e1a0fccf55e82081f6d1b94749dc12', id: "ls-tooltip-master" }), index.h("slot", { key: '085b6e9b77ee8139ef7b2e7a56d157ca0b8f1ab4' })));
|
|
49937
49950
|
}
|
|
49938
49951
|
};
|
|
49939
49952
|
LsStatusbar.style = lsStatusbarCss();
|
|
@@ -526,7 +526,20 @@ export class LsDocumentViewer {
|
|
|
526
526
|
this.initViewer();
|
|
527
527
|
if (this.mode === 'compose') {
|
|
528
528
|
this.manager = 'recipient';
|
|
529
|
-
this._recipients = JSON.parse(this.recipients.replace('\u0022', '"')).sort((a, b) =>
|
|
529
|
+
this._recipients = JSON.parse(this.recipients.replace('\u0022', '"')).sort((a, b) => {
|
|
530
|
+
// Signers (signerIndex < 100) come before witnesses (signerIndex >= 100) for the same base index
|
|
531
|
+
const aBase = a.signerIndex % 100 || 100;
|
|
532
|
+
const bBase = b.signerIndex % 100 || 100;
|
|
533
|
+
if (aBase !== bBase)
|
|
534
|
+
return aBase - bBase;
|
|
535
|
+
// If base is the same, signer comes before witness
|
|
536
|
+
if (a.signerIndex < 100 && b.signerIndex >= 100)
|
|
537
|
+
return -1;
|
|
538
|
+
if (a.signerIndex >= 100 && b.signerIndex < 100)
|
|
539
|
+
return 1;
|
|
540
|
+
// Otherwise, keep original order
|
|
541
|
+
return a.signerIndex - b.signerIndex;
|
|
542
|
+
});
|
|
530
543
|
}
|
|
531
544
|
//Revalidate
|
|
532
545
|
this.validationErrors = validate.bind(this)(this._template);
|
|
@@ -563,7 +576,7 @@ export class LsDocumentViewer {
|
|
|
563
576
|
return this.filtertoolbox === null || this.filtertoolbox.split('|').includes(fieldFormType);
|
|
564
577
|
}
|
|
565
578
|
render() {
|
|
566
|
-
return (h(Host, { key: '
|
|
579
|
+
return (h(Host, { key: '9f00cfeb1a6bcc52189174279c1201cad65ace34' }, h(h.Fragment, null, this.isLoading && h("ls-page-loader", { key: '93353173044ef4be53021e7fce344ee75fc62eaf' }), h("div", { key: '52f739d6bc23dfd44198b9bece065d1d8cee0994', class: "page-header" }, h("div", { key: '0a5a243050eb94ebd0236ea2838655d40a97268c', class: 'left-slot-wrapper' }, h("slot", { key: '66b74106c53c3d3bc1bc33ca714035a794e53deb', name: "left-button" })), h("div", { key: '1eada8c35260ba880b3ded12d7e87bcc1eb25bef', class: 'right-slot-wrapper' }, h("slot", { key: '795877c83b78d4882c132cc40df4536ef378c4cf', name: "right-button" })), this.mode === 'editor' && (h("div", { key: 'ed294a3584d7849643a3afd5c95b6b0ab00d7704' }, h("span", { key: '82ecae650ac3a41d4f5e3dd9da5cf18a8c095ae6', class: "header-text-1" }, "Template Creation"), h("span", { key: 'fbf6747f632ffd6154aaeece1584142969777eb0' }, "/"), h("span", { key: '04476c6ef1708e7455edc522d789d9587698e67f', class: "header-text-2" }, this._template?.title))), this.mode === 'compose' && (h("div", { key: 'e5051a5d9f43df3d6fe9a7ac352771914ad7bf51', style: { display: 'flex', alignItems: 'center', gap: '0.25rem' } }, h("slot", { key: 'ee8f5c1400969a800750337c48aea6cededc8ced', name: "top-bar" })))), this.mode === 'editor' && (h("div", { key: '34277758b90507752d58397b62016d39902d21ad', class: 'validation-tag-wrapper' }, h("ls-validation-tag", { key: 'bfd897070ae9c70a2706a791eb488f44c7547a3b', validationErrors: this.validationErrors }))), h("form", { key: '54894419bed1c115771abf8e37faea1fe9dd9c17', id: "ls-editor-form" }, this.mode !== 'preview' ? (h("div", { id: "ls-left-box", class: "leftBox", style: this.mode === 'compose' ? { borderRadius: '1.75rem' } : {} }, h("div", { class: !this.selected || this.selected.length === 0 ? 'left-box-inner' : 'hidden' }, this.mode === 'editor' && (h("ls-feature-column", { mode: this.mode, onManage: manager => {
|
|
567
580
|
if (manager.detail === 'document') {
|
|
568
581
|
var documentManager = this.component.shadowRoot.getElementById('ls-document-options');
|
|
569
582
|
documentManager.template = this._template;
|
|
@@ -581,7 +594,7 @@ export class LsDocumentViewer {
|
|
|
581
594
|
this._recipients.map(recipient => (h("ls-recipient-card", { recipient: recipient, activeRecipient: this.signer, filtertoolbox: this.filtertoolbox, template: this._template, validationErrors: this.validationErrors, fieldTypeSelected: this.fieldTypeSelected, "data-signer-index": recipient.signerIndex }))), h("slot", { name: 'recipient-panel' })))), !this.displayTable && (h("div", { class: this.selected.length > 0 ? 'field-properties-outer' : 'hidden' }, h("div", { class: 'properties-header' }, h("div", { class: 'properties-header-icon' }, h("ls-icon", { name: "pre-filled-content" })), h("h1", { class: 'properties-header-title' }, "Field Properties"), h("button", { class: 'tertiaryGrey', onClick: e => {
|
|
582
595
|
this.selected = [];
|
|
583
596
|
e.preventDefault();
|
|
584
|
-
}, "data-tooltip": "Close Properties Panel" }, h("ls-icon", { name: "x", size: "1.25rem" }))), h("ls-field-properties", { id: "my-field-panel" }))))) : (h(h.Fragment, null)), h("ls-toolbar", { key: '
|
|
597
|
+
}, "data-tooltip": "Close Properties Panel" }, h("ls-icon", { name: "x", size: "1.25rem" }))), h("ls-field-properties", { id: "my-field-panel" }))))) : (h(h.Fragment, null)), h("ls-toolbar", { key: '024ea7e858bf9f345ad4f435d5a5f0878d51029b', id: "ls-toolbar", template: this._template, editor: this, groupInfo: this.groupInfo, mode: this.mode }), h("div", { key: '754b073d20697b46e32f661529250503ff5637e6', id: "ls-mid-area" }, h("div", { key: '69fbbf46e5367f5b3c57e1cff58e8fb677766868', class: 'document-frame-wrapper', id: "document-frame-wrapper" }, h("div", { key: 'e385a5dd475f2e3b85e7f470a6d7aee96b7a806f', id: "ls-document-frame" }, h("canvas", { key: '0f3b693c75b27992b7d321743b99e9f8bb5f31e4', id: "pdf-canvas", class: this.displayTable || this.isLoading ? 'hidden' : '' }), h("ls-editor-table", { key: '8d813d6303147521bbfb68efd9fab8160621e169', editor: this, class: this.displayTable ? '' : 'hidden' }), h("div", { key: 'e84965254a4d7b60591c15de992a4728832179e9', id: "ls-box-selector" }))), h("ls-statusbar", { key: 'be1ffb0180d97c0219813b377f59166feb00f4a2', editor: this, page: this.pageNum, pageCount: this.pageCount })))), h("ls-tooltip", { key: 'ad91df7f06b975dcd33a678b33dea80d2df8e8f5', id: "ls-tooltip-master" })));
|
|
585
598
|
}
|
|
586
599
|
static get is() { return "ls-document-viewer"; }
|
|
587
600
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ls-document-viewer.js","sourceRoot":"","sources":["../../../src/components/ls-document-viewer/ls-document-viewer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, Prop, h, Element, Method, State, Listen, Watch } from '@stencil/core';\nimport { Event, EventEmitter } from '@stencil/core';\nimport { LSApiElement } from '../../types/LSApiElement';\nimport { PDFDocumentProxy, PDFPageProxy, PageViewport, RenderTask, GlobalWorkerOptions, getDocument } from 'pdfjs-dist';\nimport 'pdfjs-dist/web/pdf_viewer';\nimport { LSApiTemplate } from '../../types/LSApiTemplate';\nimport { addField, moveField } from './editorCalculator';\nimport { LSMutateEvent } from '../../types/LSMutateEvent';\nimport { keyDown } from './keyHandlers';\nimport { mouseClick, mouseDoubleClick, mouseDown, mouseDrop, mouseMove, mouseUp } from './mouseHandlers';\nimport { getApiType, matchData } from './editorUtils';\n// import { RoleColor } from '../../types/RoleColor';\nimport { LSApiRole, LSApiRoleType } from '../../types/LSApiRole';\nimport { LsDocumentAdapter } from './adapter/LsDocumentAdapter';\nimport { getTemplate } from './adapter/templateActions';\nimport { getGroupData } from './adapter/groupActions';\nimport { ValidationError } from '../../types/ValidationError';\nimport { validate } from './validator';\nimport { attachAllTooltips } from '../../utils/tooltip';\nimport { IToolboxField } from '../interfaces/IToolboxField';\n\nGlobalWorkerOptions.workerSrc = `https://unpkg.com/pdfjs-dist@5.4.449/build/pdf.worker.min.mjs`;\n\n/**\n * The Legalesign page viewer converted to stencil. To use pass the standard\n * Template information from GraphQL (see Readme).\n *\n * Alex Weinle\n */\n\n@Component({\n tag: 'ls-document-viewer',\n styleUrl: 'ls-document-viewer.css',\n shadow: true,\n})\nexport class LsDocumentViewer {\n @Element() component: HTMLElement;\n\n private isPageRendering: boolean;\n private pdfDocument: any;\n private pageNumPending: number = null;\n private canvas: HTMLCanvasElement;\n private ctx: CanvasRenderingContext2D;\n public pageDimensions: { height: number; width: number }[]; // hardcoded to start at the page 1\n // @ts-ignore\n private isMoving: boolean = false;\n // @ts-ignore\n private isBoxing: boolean = false;\n // @ts-ignore\n private selectionBox: { x: number; y: number } = null;\n // @ts-ignore\n private hitField: HTMLElement;\n // @ts-ignore\n private edgeSide: string;\n // @ts-ignore\n private startLocations: { left: number; top: number; height: number; width: number }[];\n // @ts-ignore\n private startMouse: { left: number; top: number; height: number; width: number; x: number; y: number };\n\n //\n // --- Properties / Inputs --- //\n //\n\n /**\n * The initial template data, including the link for background PDF. See README and\n * example for correct GraphQL query and data structure.\n * {LSApiTemplate}\n */\n @Prop() template: string;\n\n /**\n * The access token of the account your want the widget to use, you should normally\n * acquire this with a server side call using that accounts login credentials.\n * {string}\n */\n @Prop() token: string;\n\n /**\n * This will override the default production user pool.\n * Almost exclusively used for internal development.\n * {string}\n */\n @Prop() userpool: string;\n\n /**\n * This will override the default production graphql endpoint.\n * Almost exclusively used for internal development.\n * {string}\n */\n @Prop() endpoint: string;\n\n /**\n * The id of the template you want to load (if using the internal data adapter).\n * {string}\n */\n @Prop() templateid: string;\n\n /**\n * A JSON string containing the recipient details. Only used in COMPOSE mode.\n * {string}\n */\n @Prop() recipients: string;\n @Prop() _recipients: any[];\n\n @Prop({ mutable: true }) zoom: number = 1.0; // hardcoded to scale the document to full canvas size\n @Prop({ mutable: true }) pageNum: number = 1;\n @Prop({ mutable: true }) pageCount: number = 1;\n @Prop({ mutable: true }) signer: number = 0;\n @Prop({ mutable: true }) groupInfo: any;\n\n @State() _template: LSApiTemplate;\n @State() validationErrors: ValidationError[] = [];\n @State() status: 'Valid' | 'Invalid' | 'Logged Out';\n\n /**\n * The following state properties define the defaults for field\n * creation. They should be overridden by the users most used\n * values from localStorage or profile settings.\n */\n @State() fontSize: number = 10;\n @State() fontFamily: string = 'arial';\n @State() selected: HTMLLsEditorFieldElement[] = [];\n @State() isLoading: boolean = true;\n @State() fieldTypeSelected: IToolboxField = {\n label: 'Signature',\n formElementType: 'signature',\n elementType: 'signature',\n validation: 0,\n defaultHeight: 27,\n defaultWidth: 120,\n };\n\n /**\n * An ease of use property that will arrange document-viewer appropraitely.\n * {'preview' | 'editor' | 'custom'}\n */\n @Prop() mode: 'preview' | 'editor' | 'compose' = 'editor';\n\n @Watch('mode')\n modeHandler(_newMode, _oldMode) {\n if (_newMode === 'preview') {\n this.showstatusbar = false;\n this.readonly = true;\n } else if (_newMode === 'editor') {\n this.showstatusbar = true;\n this.readonly = false;\n } else if (_newMode === 'compose') {\n this.showstatusbar = true;\n this.readonly = false;\n }\n }\n\n @Watch('zoom')\n zoomChanged(newZoom: number) {\n const fields = this.component.shadowRoot.querySelectorAll('ls-editor-field');\n fields.forEach(f => f.setAttribute('zoom', String(newZoom)));\n }\n\n /**\n * Determines / sets which of the far left 'managers' is active.\n * {'document' | 'toolbox' | 'participant' }\n */\n @Prop({ mutable: true }) manager: 'document' | 'toolbox' | 'participant' | 'recipient' | 'validation' = 'toolbox';\n\n /**\n * Shows the table view of fields rather than the preview.\n * {boolean}\n */\n @Prop({ mutable: true }) displayTable?: boolean = false;\n\n /**\n * Allows the selection of fields in the toolbox to be limited to a | (pipe) delimited list.\n * {string}\n */\n @Prop() filtertoolbox?: string = null;\n\n /**\n * Whether the bottom statusbar is displayed.\n * {boolean}\n */\n @Prop() showstatusbar?: boolean = false;\n\n /**\n * Whether the page previewvertical ribbon will be shown\n * {boolean}\n */\n @Prop() showpagepreview?: boolean = false;\n\n /**\n * Whether the right panel (which can be default field properties or custom panel) is\n * displayed.\n * {boolean}\n */\n @Prop() readonly?: boolean = false;\n\n /**\n * Whether the table view of the fields on this template is available to the user.\n * {boolean}\n */\n @Prop() showtableview?: boolean = false;\n\n /**\n * If supplied ONLY items in this | (\"or\") delimited list will be shown. i.e. \"signature|intials\"\n * {boolean}\n */\n @Prop() toolboxFilter?: string = null;\n\n //\n // --- Event Emitters --- //\n //\n @Event() pageRendered: EventEmitter<number>;\n // @Event() error: EventEmitter<any>;\n @Event() pageChange: EventEmitter<number>;\n // Multiple or single select\n @Event() selectFields: EventEmitter<LSApiElement[]>;\n // Send an internal event to be processed\n @Event() mutate: EventEmitter<LSMutateEvent[]>;\n\n // Send an external event to be mmonitored by an external developer\n @Event() update: EventEmitter<{ event: LSMutateEvent, template: LSApiTemplate }>;\n\n // Send an external validation event to be monitored by an external developer\n @Event() validate: EventEmitter<{ valid: boolean }>;\n\n @Event({\n bubbles: true,\n composed: true,\n }) addParticipant: EventEmitter<{ type: LSApiRoleType, parent?: string | null }>;\n\n\n private adapter: LsDocumentAdapter;\n\n // Action an external data action and use the result (if required)\n @Listen('mutate')\n mutateHandler(event: CustomEvent<LSMutateEvent[]>) {\n if (this.token && this.adapter) event.detail.forEach(me => this.adapter.handleEvent(me, this.token)\n .then(result => matchData.bind(this)(result))\n .then(() => this.syncChange(me)));\n\n }\n\n @Listen('fieldTypeSelected')\n handleFieldTypeSelected(event) {\n const fields = this.component.shadowRoot.querySelectorAll('ls-toolbox-field');\n\n fields.forEach(element => {\n element.isSelected = element.formElementType === event.detail.formElementType;\n });\n\n this.fieldTypeSelected = event.detail;\n }\n\n // generate a new role on the template\n @Listen('addParticipant')\n addParticpantHandler(event: CustomEvent<{ name: string | null; type: LSApiRoleType; parent?: string | null; signerIndex?: number }>) {\n const defaultExperience = this.groupInfo.experienceConnection.experiences.find(x => x.defaultExperience === true);\n const parent = event.detail.signerIndex > 99 ? this._template.roles.find(r => r.signerIndex === event.detail.signerIndex % 100) : null;\n const newSignerIndex = event.detail.type === 'WITNESS'?\n parent.signerIndex + 100 :\n Math.max(...this._template.roles.filter(r => r.roleType !== 'WITNESS').map(r => r.signerIndex)) + 1;\n\n const data: LSMutateEvent[] = [\n {\n action: 'create',\n data: {\n id: btoa('rol' + crypto.randomUUID()),\n name: event.detail.name ? event.detail.name : 'Signer ' + (this._template.roles.length + 1),\n roleType: event.detail.type,\n signerIndex: event.detail.signerIndex ? event.detail.signerIndex : (event.detail.type === 'WITNESS' ? 100 + parent?.signerIndex : this._template.roles.length === 0 ? 1 : newSignerIndex),\n ordinal: event.detail.type === 'WITNESS' ? parent?.ordinal + 1 : this._template.roles.length + 1,\n signerParent: event.detail.parent,\n experience: defaultExperience.id,\n templateId: this._template.id,\n },\n },\n ];\n this.mutate.emit(data);\n }\n\n // change the signer selected\n @Listen('changeSigner')\n updateSigner(event: CustomEvent<number>) {\n if (event.detail) {\n this.signer = event.detail;\n\n try {\n const leftBox = this.component.shadowRoot?.getElementById('ls-recipient-manager');\n if (leftBox) {\n const recipientsBox = leftBox.querySelector('.recipients-box');\n const card = recipientsBox?.querySelector(`ls-recipient-card[data-signer-index=\"${event.detail}\"]`);\n\n if (card && recipientsBox) {\n recipientsBox.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n }\n }\n } catch (e) {\n // fail silently\n }\n }\n }\n\n // Send selection changes to bars and panels if in use.\n @Listen('selectFields')\n selectFieldsHandler(event: CustomEvent<LSApiElement[]>) {\n const fields = Array.from(this.component.shadowRoot.querySelectorAll('ls-editor-field'));\n // update the template with all the latest values in the\n this._template = {\n ...this._template,\n elementConnection: { ...this._template.elementConnection, templateElements: fields.map(ef => ef.dataItem) },\n };\n\n var toolbar = this.component.shadowRoot.getElementById('ls-toolbar') as HTMLLsToolbarElement;\n if (toolbar) {\n toolbar.dataItem = event.detail as any as LSApiElement[];\n }\n var propPanel = this.component.shadowRoot.getElementById('my-field-panel') as HTMLLsFieldPropertiesElement;\n if (event.detail.length === 0) {\n this.selected = [];\n } else {\n propPanel.dataItem = event.detail as any as LSApiElement[];\n }\n\n // change style of selected fields\n event.detail.forEach(fc => {\n const fu = this.component.shadowRoot.getElementById('ls-field-' + fc.id) as HTMLLsEditorFieldElement;\n fu.selected = true;\n });\n\n // this.selected = fields.filter(fx => fx.selected) as HTMLLsEditorFieldElement[];\n this.selected.forEach(s => (s.selected = event.detail.map(d => d.id).includes(s.dataItem.id)));\n\n this.validationErrors = validate.bind(this)(this._template);\n }\n\n // Send role selection changes to bars and panels\n @Listen('roleChange')\n roleHandler(event: CustomEvent<number>) {\n this.signer = event.detail;\n }\n\n //\n // --- Methods --- //\n //\n\n /**\n * Page forward\n * {MouseEvent} e\n */\n @Method()\n async pageNext() {\n if (this.pageNum >= this.pdfDocument.numPages) {\n return;\n }\n this.pageNum += 1;\n this.queueRenderPage(this.pageNum);\n this.showPageFields(this.pageNum);\n }\n\n /**\n * Page backward\n * e\n */\n @Method()\n async pagePrev() {\n if (this.pageNum <= 1) {\n return;\n }\n\n this.pageNum -= 1;\n this.queueRenderPage(this.pageNum);\n this.showPageFields(this.pageNum);\n }\n\n /**\n * Unselect all fields\n */\n @Method()\n async unselect() {\n const fields = this.component.shadowRoot.querySelectorAll('ls-editor-field');\n fields.forEach(fu => {\n fu.selected = false;\n });\n this.selected = [];\n }\n\n /**\n * Page and field resize on zoom change\n *\n */\n @Method()\n async setZoom(z: number) {\n this.zoom = z;\n this.canvas = this.component.shadowRoot.getElementById('pdf-canvas') as HTMLCanvasElement;\n const frame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLDivElement;\n // const wrapper = this.component.shadowRoot.getElementById('document-frame-wrapper') as HTMLDivElement;\n this.canvas.style.height = this.pageDimensions[this.pageNum - 1].height * z + 'px';\n this.canvas.style.width = this.pageDimensions[this.pageNum - 1].width * z + 'px';\n\n frame.style.height = this.pageDimensions[this.pageNum - 1].height * z + 'px';\n frame.style.width = this.pageDimensions[this.pageNum - 1].width * z + 'px';\n\n // wrapper.style.height = this.pageDimensions[this.pageNum - 1].height * z + 200 + 'px';\n // wrapper.style.width = this.pageDimensions[this.pageNum - 1].width * z + 600 + 'px';\n\n // place all fields at new zoom level\n this.component.shadowRoot.querySelectorAll('ls-editor-field').forEach(fx => moveField.bind(this)(fx, fx.dataItem));\n\n this.queueRenderPage(this.pageNum);\n this.showPageFields(this.pageNum);\n }\n\n /**\n * Ensure broken or misplaced fields are put onto the page.\n * {number} position\n */\n clip(legacyPosition: number, failback: number = 0.0): number {\n return legacyPosition > 1 ? failback : legacyPosition;\n }\n\n /**\n * Decorate the template data object with useful transformations.\n * {string} json of template\n */\n parseTemplate(newValue: string) {\n const newTemplate: LSApiTemplate = JSON.parse(newValue) as any as LSApiTemplate;\n const pages = JSON.parse(JSON.parse(newTemplate.pageDimensions));\n\n // Convert ax,bx,ay etc. into top, left\n // We also add the templateId into every object so that all the information\n // required to mutate is in each object.\n this.pageDimensions = pages.map(p => {\n return { height: p[1], width: p[0] };\n });\n const fields = newTemplate.elementConnection.templateElements.map(f => {\n return {\n ...f,\n top: Math.floor(this.clip(f.ay) * this.pageDimensions[0].height),\n left: Math.floor(this.clip(f.ax) * this.pageDimensions[0].width),\n height: Math.floor((this.clip(f.by, 0.1) - this.clip(f.ay)) * this.pageDimensions[0].height),\n width: Math.floor((this.clip(f.bx, 0.2) - this.clip(f.ax)) * this.pageDimensions[0].width),\n templateId: newTemplate.id,\n };\n });\n\n const preparedRoles: LSApiRole[] = newTemplate.roles.map((ro: LSApiRole) => {\n return { ...ro, templateId: newTemplate.id };\n });\n\n this.signer = preparedRoles.length > 0 ? 1 : 0;\n\n this._template = {\n ...newTemplate,\n elementConnection: { ...newTemplate.elementConnection, templateElements: fields },\n roles: preparedRoles,\n };\n }\n\n /**\n * Render the page based on pageNumber\n * {number} pageNumber\n */\n renderPage(pageNumber: number): void {\n this.isPageRendering = true;\n if (this.pdfDocument !== undefined && this.pdfDocument !== null) {\n this.pdfDocument.getPage(pageNumber).then((page: PDFPageProxy) => {\n const viewport: PageViewport = page.getViewport({ scale: this.zoom });\n this.canvas.height = Math.floor(viewport.height);\n this.canvas.width = Math.floor(viewport.width);\n\n // Render PDF page into canvas context\n const renderContext = {\n canvasContext: this.ctx,\n viewport,\n };\n\n // Render page method\n const renderTask: RenderTask = page.render(renderContext as any);\n\n // Wait for rendering to finish\n renderTask.promise.then(() => {\n this.isPageRendering = false;\n this.pageRendered.emit(this.pageNum);\n\n if (this.pageNumPending !== null) {\n this.renderPage(this.pageNumPending); // New page rendering is pending\n this.pageChange.emit(this.pageNumPending); // emit\n this.pageNumPending = null;\n }\n });\n });\n }\n }\n\n private queueRenderPage(pageNumber: number): void {\n if (this.isPageRendering) {\n this.pageNumPending = pageNumber;\n } else {\n this.renderPage(pageNumber);\n }\n }\n\n private loadAndRender(src: string): void {\n getDocument(src).promise.then((pdfDocument: PDFDocumentProxy) => {\n this.pdfDocument = pdfDocument;\n this.renderPage(this.pageNum);\n });\n }\n\n // Fills in and converts all utility and placement fields\n prepareElement(newElement: LSApiElement): LSApiElement {\n return {\n ...newElement,\n top: Math.floor(this.clip(newElement.ay) * this.pageDimensions[newElement.page - 1].height),\n left: Math.floor(this.clip(newElement.ax) * this.pageDimensions[newElement.page - 1].width),\n height: Math.floor((this.clip(newElement.by, 0.05) - this.clip(newElement.ay)) * this.pageDimensions[newElement.page - 1].height),\n width: Math.floor((this.clip(newElement.bx, 0.2) - this.clip(newElement.ax)) * this.pageDimensions[newElement.page - 1].width),\n pageDimensions: this.pageDimensions[newElement.page - 1],\n templateId: this._template.id,\n };\n }\n\n // internal forced change\n syncChange(update: LSMutateEvent) {\n if (update?.select === 'clear') {\n this.unselect();\n }\n\n if (getApiType(update.data) === 'element') {\n if (update.action === 'create') {\n // const newData = { ...update.data, page: this.pageNum };\n // addField.bind(this)(this.component.shadowRoot.getElementById('ls-document-frame'), newData);\n //const newField = this.component.shadowRoot.getElementById('ls-field-' + update.data.id) as HTMLLsEditorFieldElement;\n //this.selected = [newField];\n //this.selectFields.emit([newData as LSApiElement]);\n } else if (update.action === 'update') {\n const fi = this.component.shadowRoot.getElementById('ls-field-' + update.data.id) as HTMLLsEditorFieldElement;\n if (fi) {\n moveField.bind(this)(fi, update.data);\n // const fu = this.component.shadowRoot.getElementById('ls-field-' + update.data.id) as HTMLLsEditorFieldElement;\n\n // fu.dataItem = update.data as LSApiElement;\n // Refresh the selected array\n this.selectFields.emit(this.selected.map(sf => sf.dataItem));\n this.selected = this.selected.map(s => (s.dataItem.id === update.data.id ? fi : s));\n }\n // Reselect the fields - this updates the dataItem value passed to child controls\n const fields = this.component.shadowRoot.querySelectorAll('ls-editor-field');\n this.selected = Array.from(fields).filter(fx => fx.selected);\n } else if (update.action === 'delete') {\n const fi = this.component.shadowRoot.getElementById('ls-field-' + update.data.id) as HTMLLsEditorFieldElement;\n if (!fi) return;\n const fields = this._template.elementConnection.templateElements;\n this._template = { ...this._template, elementConnection: { ...this._template.elementConnection, templateElements: fields.filter(f => f.id !== update.data.id) } };\n this.component.shadowRoot.getElementById('ls-document-frame').removeChild(fi);\n this.selectFields.emit([]);\n } else {\n console.warn('Unrecognised action, check Legalesign documentation. `create`, `update` and `delete` allowed.');\n }\n }\n\n this.validationErrors = validate.bind(this)(this._template);\n this.validate.emit({ valid: this.validationErrors.length === 0 });\n }\n\n initViewer() {\n // Generate a canvas to draw the background PDF on.\n this.canvas = this.component.shadowRoot.getElementById('pdf-canvas') as HTMLCanvasElement;\n this.canvas.style.height = this.pageDimensions[this.pageNum - 1].height * this.zoom + 'px';\n this.canvas.style.width = this.pageDimensions[this.pageNum - 1].width * this.zoom + 'px';\n this.ctx = this.canvas.getContext('2d');\n if (this._template?.link) this.loadAndRender(this._template?.link);\n\n var dropTarget = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLCanvasElement;\n\n // Used for single field selection\n if (this.mode !== 'preview' || this._template?.locked === true) {\n dropTarget.addEventListener('click', mouseClick.bind(this));\n document.addEventListener('mousedown', mouseDown.bind(this));\n document.addEventListener('mousemove', mouseMove.bind(this));\n document.addEventListener('mouseup', mouseUp.bind(this));\n dropTarget.addEventListener('dblclick', mouseDoubleClick.bind(this));\n document.addEventListener('keydown', keyDown.bind(this));\n dropTarget.addEventListener('dragenter', event => {\n event.preventDefault();\n });\n dropTarget.addEventListener('dragover', event => {\n event.preventDefault();\n });\n dropTarget.addEventListener('drop', mouseDrop.bind(this));\n }\n this.generateFields();\n }\n\n // Generate all the field HTML elements that are required (for every page)\n generateFields(clearExisting: boolean = true) {\n if (clearExisting) {\n const fields = this.component.shadowRoot.querySelectorAll('ls-editor-field');\n fields.forEach(fi => this.component.shadowRoot.getElementById('ls-document-frame').removeChild(fi));\n }\n\n this._template.elementConnection.templateElements.forEach(te => {\n addField.bind(this)(this.component.shadowRoot.getElementById('ls-document-frame'), this.prepareElement(te));\n });\n }\n\n showPageFields(page: number) {\n const fields = this.component.shadowRoot.querySelectorAll('ls-editor-field');\n Array.from(fields).forEach(fx => {\n fx.className = fx.dataItem.page === page ? '' : 'hidden';\n });\n }\n\n async load() {\n this.isLoading = true;\n // Get all template and group listing data.\n try {\n this.adapter = new LsDocumentAdapter(this.endpoint);\n const result = (await this.adapter.execute(this.token, getTemplate(this.templateid))) as any;\n this.parseTemplate(JSON.stringify(result.template));\n const resultGroup = (await this.adapter.execute(this.token, getGroupData(this._template.groupId))) as any;\n this.groupInfo = resultGroup.group;\n this.initViewer();\n\n if (this.mode === 'compose') {\n this.manager = 'recipient';\n this._recipients = JSON.parse(this.recipients.replace('\\u0022', '\"')).sort( (a, b)=> (a.signerIndex % 100 ) - (b.signerIndex% 100 + 1/ a.signerIndex ) );\n }\n\n //Revalidate\n this.validationErrors = validate.bind(this)(this._template);\n this.validate.emit({ valid: this.validationErrors.length === 0 });\n this.pageCount = this._template.pageCount;\n this.selected = [];\n this.setZoom(1.0);\n this.isLoading = false;\n } catch (e) {\n console.error('Your access token is invalid.', e);\n }\n }\n\n componentWillLoad() {\n if (this.token && !this._template) this.load();\n }\n\n componentDidLoad() {\n attachAllTooltips(this.component.shadowRoot);\n\n const leftBox = this.component.shadowRoot.getElementById('ls-left-box');\n if (leftBox) {\n leftBox.addEventListener('mousedown', (e) => {\n e.stopPropagation();\n });\n leftBox.addEventListener('mouseup', (e) => {\n e.stopPropagation();\n });\n leftBox.addEventListener('mousemove', (e) => {\n e.stopPropagation();\n });\n }\n }\n\n showTool(fieldFormType: string): boolean {\n return this.filtertoolbox === null || this.filtertoolbox.split('|').includes(fieldFormType);\n }\n\n render() {\n return (\n <Host>\n <>\n {this.isLoading && <ls-page-loader />}\n <div class=\"page-header\">\n <div class={'left-slot-wrapper'}>\n <slot name=\"left-button\" />\n </div>\n <div class={'right-slot-wrapper'}>\n <slot name=\"right-button\" />\n </div>\n {this.mode === 'editor' && (\n <div>\n <span class=\"header-text-1\">Template Creation</span>\n <span>/</span>\n <span class=\"header-text-2\">{this._template?.title}</span>\n </div>\n )}\n {this.mode === 'compose' && (\n <div style={{ display: 'flex', alignItems: 'center', gap: '0.25rem' }}>\n <slot name=\"top-bar\"> \n </slot>\n </div>\n )}\n </div>\n {this.mode === 'editor' && (\n <div class={'validation-tag-wrapper'}>\n <ls-validation-tag validationErrors={this.validationErrors} />\n </div>\n )}\n\n <form id=\"ls-editor-form\">\n {this.mode !== 'preview' ? (\n <div id=\"ls-left-box\" class=\"leftBox\" style={this.mode === 'compose' ? { borderRadius: '1.75rem' } : {}}>\n <div class={!this.selected || this.selected.length === 0 ? 'left-box-inner' : 'hidden'}>\n {this.mode === 'editor' && (\n <ls-feature-column\n mode={this.mode}\n onManage={manager => {\n if (manager.detail === 'document') {\n var documentManager = this.component.shadowRoot.getElementById('ls-document-options') as HTMLLsDocumentOptionsElement;\n documentManager.template = this._template;\n } else if (manager.detail === 'participant') {\n var participantManager = this.component.shadowRoot.getElementById('ls-participant-manager') as HTMLLsParticipantManagerElement;\n participantManager.template = this._template;\n } else if (manager.detail === 'validation') {\n var validationManager = this.component.shadowRoot.getElementById('ls-validation-manager') as HTMLLsValidationManagerElement;\n validationManager.validationErrors = this.validationErrors;\n }\n this.manager = manager.detail;\n }}\n />\n )}\n <div id=\"ls-toolbox\" class={this.manager === 'toolbox' ? 'toolbox' : 'hidden'}>\n <div class=\"ls-editor-infobox\">\n <h2 class=\"toolbox-section-title\">Fields</h2>\n <p class=\"toolbox-section-description\">Drag and drop, or select and double click, to place fields on the Document.</p>\n </div>\n <div class=\"fields-box\">\n {this.signer > 0 && this.showTool('signature') && (\n <ls-toolbox-field\n elementType=\"signature\"\n formElementType=\"signature\"\n label=\"Signature\"\n defaultHeight={25}\n defaultWidth={97}\n validation={0}\n icon=\"signature\"\n tooltip=\"Use this field to collect Signatures from Participants\"\n signer={this.signer}\n />\n )}\n\n {this.signer === 0 && this.showTool('auto sign') && (\n <ls-toolbox-field\n elementType=\"auto sign\"\n formElementType=\"auto sign\"\n label=\"Auto Sign\"\n defaultHeight={25}\n defaultWidth={97}\n validation={3000}\n icon=\"auto-sign\"\n tooltip=\"Auto-Sign lets Senders add a Signature to the Document that will be automatically applied upon Sending\"\n signer={this.signer}\n />\n )}\n {this.showTool('text') && (\n <ls-toolbox-field\n elementType=\"text\"\n formElementType=\"text\"\n label=\"Text\"\n defaultHeight={16}\n defaultWidth={150}\n validation={0}\n icon=\"text\"\n tooltip=\"A field for collecting any plain text values such as: names, addresses or descriptions\"\n signer={this.signer}\n />\n )}\n\n {this.signer > 0 && this.showTool('signing date') && (\n <ls-toolbox-field\n elementType=\"signing date\"\n formElementType=\"signing date\"\n label=\"Signing Date\"\n defaultHeight={16}\n defaultWidth={100}\n validation={30}\n icon=\"auto-date\"\n tooltip=\"Automatically inserts the date upon completion by the assigned Participant\"\n signer={this.signer}\n />\n )}\n\n {this.showTool('date') && (\n <ls-toolbox-field\n elementType=\"date\"\n formElementType=\"date\"\n label=\"Date\"\n defaultHeight={16}\n defaultWidth={100}\n validation={2}\n icon=\"calender\"\n tooltip=\"A field for collecting dates with built-in date formatting options\"\n signer={this.signer}\n />\n )}\n {this.showTool('email') && (\n <ls-toolbox-field\n elementType=\"email\"\n formElementType=\"email\"\n label=\"Email\"\n defaultHeight={16}\n defaultWidth={150}\n validation={1}\n icon=\"at-symbol\"\n tooltip=\"A Field to only accept entries formatted as an email address (e.g., example@example.com)\"\n signer={this.signer}\n />\n )}\n\n {this.showTool('initials') && (\n <ls-toolbox-field\n elementType=\"initials\"\n formElementType=\"initials\"\n label=\"Initials\"\n defaultHeight={25}\n defaultWidth={70}\n validation={2000}\n icon=\"initials\"\n tooltip=\"Use this field anywhere Participants are required to Initial your document\"\n signer={this.signer}\n />\n )}\n\n {this.showTool('number') && (\n <ls-toolbox-field\n elementType=\"number\"\n formElementType=\"number\"\n label=\"Number\"\n defaultHeight={16}\n defaultWidth={150}\n validation={50}\n icon=\"hashtag\"\n tooltip=\"A Field to only accept entries in numerical format. Additional validations include character limit (1 to 12 digits), and currency format (2 decimal places)\"\n signer={this.signer}\n />\n )}\n\n {this.showTool('dropdown') && (\n <ls-toolbox-field\n elementType=\"dropdown\"\n formElementType=\"dropdown\"\n label=\"Dropdown\"\n defaultHeight={16}\n defaultWidth={100}\n validation={20}\n icon=\"dropdown\"\n tooltip=\"Use this field to create custom dropdown menus in your document, or place one of our handy presets for countries or prefixes\"\n signer={this.signer}\n />\n )}\n\n {this.showTool('checkbox') && (\n <ls-toolbox-field\n elementType=\"checkbox\"\n formElementType=\"checkbox\"\n label=\"Checkbox\"\n defaultHeight={16}\n defaultWidth={16}\n validation={25}\n icon=\"check\"\n tooltip=\"Places a checkbox on your document. Handy for T&Cs or ✔/✗ sections\"\n signer={this.signer}\n />\n )}\n\n {this.signer > 0 && this.showTool('regex') && (\n <ls-toolbox-field\n elementType=\"regex\"\n formElementType=\"regex\"\n label=\"Regex\"\n defaultHeight={16}\n defaultWidth={150}\n validation={93}\n icon=\"code\"\n tooltip=\"Need a specific validation? Use this field to enter a custom RegEx and have Participants enter exactly what you need\"\n signer={this.signer}\n />\n )}\n {this.signer > 0 && this.showTool('image') && (\n <ls-toolbox-field\n elementType=\"image\"\n formElementType=\"image\"\n label=\"Image\"\n defaultHeight={16}\n defaultWidth={100}\n validation={90}\n icon=\"photograph\"\n tooltip=\"Use when you need Participants to upload their own images during the signing process\"\n signer={this.signer}\n />\n )}\n {this.signer > 0 && this.showTool('file') && (\n <ls-toolbox-field\n elementType=\"file\"\n formElementType=\"file\"\n label=\"File\"\n defaultHeight={16}\n defaultWidth={100}\n validation={74}\n icon=\"upload\"\n tooltip=\"Use when you need Participants to upload their own documents during the signing process\"\n signer={this.signer}\n />\n )}\n {this.signer > 0 && this.showTool('drawn') && (\n <ls-toolbox-field\n elementType=\"drawn\"\n formElementType=\"drawn\"\n label=\"Drawn\"\n defaultHeight={120}\n defaultWidth={120}\n validation={90}\n icon=\"pencil\"\n tooltip=\"Allow users to draw on the document using their mouse or touchscreen\"\n signer={this.signer}\n />\n )}\n </div>\n </div>\n <ls-participant-manager id=\"ls-participant-manager\" class={this.manager === 'participant' ? 'toolbox' : 'hidden'} editor={this} />\n <ls-document-options id=\"ls-document-options\" class={this.manager === 'document' ? 'toolbox' : 'hidden'} />\n <ls-validation-manager id=\"ls-validation-manager\" class={this.manager === 'validation' ? 'toolbox' : 'hidden'} />\n <ls-recipient-manager id=\"ls-recipient-manager\" class={this.manager === 'recipient' ? 'compose-toolbox' : 'hidden'}>\n <div class={'scroll-gradient-top'} />\n <div class={'scroll-gradient-bottom'} />\n <ls-validation-tag validationErrors={this.validationErrors} style={{ position: 'absolute', top: '1.125rem', right: '1rem' }} type=\"compose\" />\n <div class={'recipients-box'}>\n {this._recipients &&\n this._recipients.map(recipient => (\n <ls-recipient-card\n recipient={recipient}\n activeRecipient={this.signer}\n filtertoolbox={this.filtertoolbox}\n template={this._template}\n validationErrors={this.validationErrors}\n fieldTypeSelected={this.fieldTypeSelected}\n data-signer-index={recipient.signerIndex}\n />\n ))}\n <slot name='recipient-panel'></slot>\n </div>\n </ls-recipient-manager>\n </div>\n {!this.displayTable && (\n <div class={this.selected.length > 0 ? 'field-properties-outer' : 'hidden'}>\n <div class={'properties-header'}>\n <div class={'properties-header-icon'}>\n <ls-icon name=\"pre-filled-content\" />\n </div>\n <h1 class={'properties-header-title'}>Field Properties</h1>\n <button\n class={'tertiaryGrey'}\n onClick={e => {\n this.selected = [];\n e.preventDefault();\n }}\n data-tooltip=\"Close Properties Panel\"\n >\n <ls-icon name=\"x\" size=\"1.25rem\" />\n </button>\n </div>\n <ls-field-properties id=\"my-field-panel\"></ls-field-properties> \n </div>\n )}\n </div>\n ) : (\n <></>\n )}\n <ls-toolbar id=\"ls-toolbar\" template={this._template} editor={this} groupInfo={this.groupInfo} mode={this.mode} />\n <div id=\"ls-mid-area\">\n <div class={'document-frame-wrapper'} id=\"document-frame-wrapper\">\n <div id=\"ls-document-frame\">\n <canvas id=\"pdf-canvas\" class={this.displayTable || this.isLoading ? 'hidden' : ''}></canvas>\n <ls-editor-table editor={this} class={this.displayTable ? '' : 'hidden'} />\n <div id=\"ls-box-selector\"></div>\n </div>\n </div>\n <ls-statusbar editor={this} page={this.pageNum} pageCount={this.pageCount} />\n </div>\n </form>\n </>\n <ls-tooltip id=\"ls-tooltip-master\" />\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ls-document-viewer.js","sourceRoot":"","sources":["../../../src/components/ls-document-viewer/ls-document-viewer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, Prop, h, Element, Method, State, Listen, Watch } from '@stencil/core';\nimport { Event, EventEmitter } from '@stencil/core';\nimport { LSApiElement } from '../../types/LSApiElement';\nimport { PDFDocumentProxy, PDFPageProxy, PageViewport, RenderTask, GlobalWorkerOptions, getDocument } from 'pdfjs-dist';\nimport 'pdfjs-dist/web/pdf_viewer';\nimport { LSApiTemplate } from '../../types/LSApiTemplate';\nimport { addField, moveField } from './editorCalculator';\nimport { LSMutateEvent } from '../../types/LSMutateEvent';\nimport { keyDown } from './keyHandlers';\nimport { mouseClick, mouseDoubleClick, mouseDown, mouseDrop, mouseMove, mouseUp } from './mouseHandlers';\nimport { getApiType, matchData } from './editorUtils';\n// import { RoleColor } from '../../types/RoleColor';\nimport { LSApiRole, LSApiRoleType } from '../../types/LSApiRole';\nimport { LsDocumentAdapter } from './adapter/LsDocumentAdapter';\nimport { getTemplate } from './adapter/templateActions';\nimport { getGroupData } from './adapter/groupActions';\nimport { ValidationError } from '../../types/ValidationError';\nimport { validate } from './validator';\nimport { attachAllTooltips } from '../../utils/tooltip';\nimport { IToolboxField } from '../interfaces/IToolboxField';\n\nGlobalWorkerOptions.workerSrc = `https://unpkg.com/pdfjs-dist@5.4.449/build/pdf.worker.min.mjs`;\n\n/**\n * The Legalesign page viewer converted to stencil. To use pass the standard\n * Template information from GraphQL (see Readme).\n *\n * Alex Weinle\n */\n\n@Component({\n tag: 'ls-document-viewer',\n styleUrl: 'ls-document-viewer.css',\n shadow: true,\n})\nexport class LsDocumentViewer {\n @Element() component: HTMLElement;\n\n private isPageRendering: boolean;\n private pdfDocument: any;\n private pageNumPending: number = null;\n private canvas: HTMLCanvasElement;\n private ctx: CanvasRenderingContext2D;\n public pageDimensions: { height: number; width: number }[]; // hardcoded to start at the page 1\n // @ts-ignore\n private isMoving: boolean = false;\n // @ts-ignore\n private isBoxing: boolean = false;\n // @ts-ignore\n private selectionBox: { x: number; y: number } = null;\n // @ts-ignore\n private hitField: HTMLElement;\n // @ts-ignore\n private edgeSide: string;\n // @ts-ignore\n private startLocations: { left: number; top: number; height: number; width: number }[];\n // @ts-ignore\n private startMouse: { left: number; top: number; height: number; width: number; x: number; y: number };\n\n //\n // --- Properties / Inputs --- //\n //\n\n /**\n * The initial template data, including the link for background PDF. See README and\n * example for correct GraphQL query and data structure.\n * {LSApiTemplate}\n */\n @Prop() template: string;\n\n /**\n * The access token of the account your want the widget to use, you should normally\n * acquire this with a server side call using that accounts login credentials.\n * {string}\n */\n @Prop() token: string;\n\n /**\n * This will override the default production user pool.\n * Almost exclusively used for internal development.\n * {string}\n */\n @Prop() userpool: string;\n\n /**\n * This will override the default production graphql endpoint.\n * Almost exclusively used for internal development.\n * {string}\n */\n @Prop() endpoint: string;\n\n /**\n * The id of the template you want to load (if using the internal data adapter).\n * {string}\n */\n @Prop() templateid: string;\n\n /**\n * A JSON string containing the recipient details. Only used in COMPOSE mode.\n * {string}\n */\n @Prop() recipients: string;\n @Prop() _recipients: any[];\n\n @Prop({ mutable: true }) zoom: number = 1.0; // hardcoded to scale the document to full canvas size\n @Prop({ mutable: true }) pageNum: number = 1;\n @Prop({ mutable: true }) pageCount: number = 1;\n @Prop({ mutable: true }) signer: number = 0;\n @Prop({ mutable: true }) groupInfo: any;\n\n @State() _template: LSApiTemplate;\n @State() validationErrors: ValidationError[] = [];\n @State() status: 'Valid' | 'Invalid' | 'Logged Out';\n\n /**\n * The following state properties define the defaults for field\n * creation. They should be overridden by the users most used\n * values from localStorage or profile settings.\n */\n @State() fontSize: number = 10;\n @State() fontFamily: string = 'arial';\n @State() selected: HTMLLsEditorFieldElement[] = [];\n @State() isLoading: boolean = true;\n @State() fieldTypeSelected: IToolboxField = {\n label: 'Signature',\n formElementType: 'signature',\n elementType: 'signature',\n validation: 0,\n defaultHeight: 27,\n defaultWidth: 120,\n };\n\n /**\n * An ease of use property that will arrange document-viewer appropraitely.\n * {'preview' | 'editor' | 'custom'}\n */\n @Prop() mode: 'preview' | 'editor' | 'compose' = 'editor';\n\n @Watch('mode')\n modeHandler(_newMode, _oldMode) {\n if (_newMode === 'preview') {\n this.showstatusbar = false;\n this.readonly = true;\n } else if (_newMode === 'editor') {\n this.showstatusbar = true;\n this.readonly = false;\n } else if (_newMode === 'compose') {\n this.showstatusbar = true;\n this.readonly = false;\n }\n }\n\n @Watch('zoom')\n zoomChanged(newZoom: number) {\n const fields = this.component.shadowRoot.querySelectorAll('ls-editor-field');\n fields.forEach(f => f.setAttribute('zoom', String(newZoom)));\n }\n\n /**\n * Determines / sets which of the far left 'managers' is active.\n * {'document' | 'toolbox' | 'participant' }\n */\n @Prop({ mutable: true }) manager: 'document' | 'toolbox' | 'participant' | 'recipient' | 'validation' = 'toolbox';\n\n /**\n * Shows the table view of fields rather than the preview.\n * {boolean}\n */\n @Prop({ mutable: true }) displayTable?: boolean = false;\n\n /**\n * Allows the selection of fields in the toolbox to be limited to a | (pipe) delimited list.\n * {string}\n */\n @Prop() filtertoolbox?: string = null;\n\n /**\n * Whether the bottom statusbar is displayed.\n * {boolean}\n */\n @Prop() showstatusbar?: boolean = false;\n\n /**\n * Whether the page previewvertical ribbon will be shown\n * {boolean}\n */\n @Prop() showpagepreview?: boolean = false;\n\n /**\n * Whether the right panel (which can be default field properties or custom panel) is\n * displayed.\n * {boolean}\n */\n @Prop() readonly?: boolean = false;\n\n /**\n * Whether the table view of the fields on this template is available to the user.\n * {boolean}\n */\n @Prop() showtableview?: boolean = false;\n\n /**\n * If supplied ONLY items in this | (\"or\") delimited list will be shown. i.e. \"signature|intials\"\n * {boolean}\n */\n @Prop() toolboxFilter?: string = null;\n\n //\n // --- Event Emitters --- //\n //\n @Event() pageRendered: EventEmitter<number>;\n // @Event() error: EventEmitter<any>;\n @Event() pageChange: EventEmitter<number>;\n // Multiple or single select\n @Event() selectFields: EventEmitter<LSApiElement[]>;\n // Send an internal event to be processed\n @Event() mutate: EventEmitter<LSMutateEvent[]>;\n\n // Send an external event to be mmonitored by an external developer\n @Event() update: EventEmitter<{ event: LSMutateEvent, template: LSApiTemplate }>;\n\n // Send an external validation event to be monitored by an external developer\n @Event() validate: EventEmitter<{ valid: boolean }>;\n\n @Event({\n bubbles: true,\n composed: true,\n }) addParticipant: EventEmitter<{ type: LSApiRoleType, parent?: string | null }>;\n\n\n private adapter: LsDocumentAdapter;\n\n // Action an external data action and use the result (if required)\n @Listen('mutate')\n mutateHandler(event: CustomEvent<LSMutateEvent[]>) {\n if (this.token && this.adapter) event.detail.forEach(me => this.adapter.handleEvent(me, this.token)\n .then(result => matchData.bind(this)(result))\n .then(() => this.syncChange(me)));\n\n }\n\n @Listen('fieldTypeSelected')\n handleFieldTypeSelected(event) {\n const fields = this.component.shadowRoot.querySelectorAll('ls-toolbox-field');\n\n fields.forEach(element => {\n element.isSelected = element.formElementType === event.detail.formElementType;\n });\n\n this.fieldTypeSelected = event.detail;\n }\n\n // generate a new role on the template\n @Listen('addParticipant')\n addParticpantHandler(event: CustomEvent<{ name: string | null; type: LSApiRoleType; parent?: string | null; signerIndex?: number }>) {\n const defaultExperience = this.groupInfo.experienceConnection.experiences.find(x => x.defaultExperience === true);\n const parent = event.detail.signerIndex > 99 ? this._template.roles.find(r => r.signerIndex === event.detail.signerIndex % 100) : null;\n const newSignerIndex = event.detail.type === 'WITNESS'?\n parent.signerIndex + 100 :\n Math.max(...this._template.roles.filter(r => r.roleType !== 'WITNESS').map(r => r.signerIndex)) + 1;\n\n const data: LSMutateEvent[] = [\n {\n action: 'create',\n data: {\n id: btoa('rol' + crypto.randomUUID()),\n name: event.detail.name ? event.detail.name : 'Signer ' + (this._template.roles.length + 1),\n roleType: event.detail.type,\n signerIndex: event.detail.signerIndex ? event.detail.signerIndex : (event.detail.type === 'WITNESS' ? 100 + parent?.signerIndex : this._template.roles.length === 0 ? 1 : newSignerIndex),\n ordinal: event.detail.type === 'WITNESS' ? parent?.ordinal + 1 : this._template.roles.length + 1,\n signerParent: event.detail.parent,\n experience: defaultExperience.id,\n templateId: this._template.id,\n },\n },\n ];\n this.mutate.emit(data);\n }\n\n // change the signer selected\n @Listen('changeSigner')\n updateSigner(event: CustomEvent<number>) {\n if (event.detail) {\n this.signer = event.detail;\n\n try {\n const leftBox = this.component.shadowRoot?.getElementById('ls-recipient-manager');\n if (leftBox) {\n const recipientsBox = leftBox.querySelector('.recipients-box');\n const card = recipientsBox?.querySelector(`ls-recipient-card[data-signer-index=\"${event.detail}\"]`);\n\n if (card && recipientsBox) {\n recipientsBox.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n }\n }\n } catch (e) {\n // fail silently\n }\n }\n }\n\n // Send selection changes to bars and panels if in use.\n @Listen('selectFields')\n selectFieldsHandler(event: CustomEvent<LSApiElement[]>) {\n const fields = Array.from(this.component.shadowRoot.querySelectorAll('ls-editor-field'));\n // update the template with all the latest values in the\n this._template = {\n ...this._template,\n elementConnection: { ...this._template.elementConnection, templateElements: fields.map(ef => ef.dataItem) },\n };\n\n var toolbar = this.component.shadowRoot.getElementById('ls-toolbar') as HTMLLsToolbarElement;\n if (toolbar) {\n toolbar.dataItem = event.detail as any as LSApiElement[];\n }\n var propPanel = this.component.shadowRoot.getElementById('my-field-panel') as HTMLLsFieldPropertiesElement;\n if (event.detail.length === 0) {\n this.selected = [];\n } else {\n propPanel.dataItem = event.detail as any as LSApiElement[];\n }\n\n // change style of selected fields\n event.detail.forEach(fc => {\n const fu = this.component.shadowRoot.getElementById('ls-field-' + fc.id) as HTMLLsEditorFieldElement;\n fu.selected = true;\n });\n\n // this.selected = fields.filter(fx => fx.selected) as HTMLLsEditorFieldElement[];\n this.selected.forEach(s => (s.selected = event.detail.map(d => d.id).includes(s.dataItem.id)));\n\n this.validationErrors = validate.bind(this)(this._template);\n }\n\n // Send role selection changes to bars and panels\n @Listen('roleChange')\n roleHandler(event: CustomEvent<number>) {\n this.signer = event.detail;\n }\n\n //\n // --- Methods --- //\n //\n\n /**\n * Page forward\n * {MouseEvent} e\n */\n @Method()\n async pageNext() {\n if (this.pageNum >= this.pdfDocument.numPages) {\n return;\n }\n this.pageNum += 1;\n this.queueRenderPage(this.pageNum);\n this.showPageFields(this.pageNum);\n }\n\n /**\n * Page backward\n * e\n */\n @Method()\n async pagePrev() {\n if (this.pageNum <= 1) {\n return;\n }\n\n this.pageNum -= 1;\n this.queueRenderPage(this.pageNum);\n this.showPageFields(this.pageNum);\n }\n\n /**\n * Unselect all fields\n */\n @Method()\n async unselect() {\n const fields = this.component.shadowRoot.querySelectorAll('ls-editor-field');\n fields.forEach(fu => {\n fu.selected = false;\n });\n this.selected = [];\n }\n\n /**\n * Page and field resize on zoom change\n *\n */\n @Method()\n async setZoom(z: number) {\n this.zoom = z;\n this.canvas = this.component.shadowRoot.getElementById('pdf-canvas') as HTMLCanvasElement;\n const frame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLDivElement;\n // const wrapper = this.component.shadowRoot.getElementById('document-frame-wrapper') as HTMLDivElement;\n this.canvas.style.height = this.pageDimensions[this.pageNum - 1].height * z + 'px';\n this.canvas.style.width = this.pageDimensions[this.pageNum - 1].width * z + 'px';\n\n frame.style.height = this.pageDimensions[this.pageNum - 1].height * z + 'px';\n frame.style.width = this.pageDimensions[this.pageNum - 1].width * z + 'px';\n\n // wrapper.style.height = this.pageDimensions[this.pageNum - 1].height * z + 200 + 'px';\n // wrapper.style.width = this.pageDimensions[this.pageNum - 1].width * z + 600 + 'px';\n\n // place all fields at new zoom level\n this.component.shadowRoot.querySelectorAll('ls-editor-field').forEach(fx => moveField.bind(this)(fx, fx.dataItem));\n\n this.queueRenderPage(this.pageNum);\n this.showPageFields(this.pageNum);\n }\n\n /**\n * Ensure broken or misplaced fields are put onto the page.\n * {number} position\n */\n clip(legacyPosition: number, failback: number = 0.0): number {\n return legacyPosition > 1 ? failback : legacyPosition;\n }\n\n /**\n * Decorate the template data object with useful transformations.\n * {string} json of template\n */\n parseTemplate(newValue: string) {\n const newTemplate: LSApiTemplate = JSON.parse(newValue) as any as LSApiTemplate;\n const pages = JSON.parse(JSON.parse(newTemplate.pageDimensions));\n\n // Convert ax,bx,ay etc. into top, left\n // We also add the templateId into every object so that all the information\n // required to mutate is in each object.\n this.pageDimensions = pages.map(p => {\n return { height: p[1], width: p[0] };\n });\n const fields = newTemplate.elementConnection.templateElements.map(f => {\n return {\n ...f,\n top: Math.floor(this.clip(f.ay) * this.pageDimensions[0].height),\n left: Math.floor(this.clip(f.ax) * this.pageDimensions[0].width),\n height: Math.floor((this.clip(f.by, 0.1) - this.clip(f.ay)) * this.pageDimensions[0].height),\n width: Math.floor((this.clip(f.bx, 0.2) - this.clip(f.ax)) * this.pageDimensions[0].width),\n templateId: newTemplate.id,\n };\n });\n\n const preparedRoles: LSApiRole[] = newTemplate.roles.map((ro: LSApiRole) => {\n return { ...ro, templateId: newTemplate.id };\n });\n\n this.signer = preparedRoles.length > 0 ? 1 : 0;\n\n this._template = {\n ...newTemplate,\n elementConnection: { ...newTemplate.elementConnection, templateElements: fields },\n roles: preparedRoles,\n };\n }\n\n /**\n * Render the page based on pageNumber\n * {number} pageNumber\n */\n renderPage(pageNumber: number): void {\n this.isPageRendering = true;\n if (this.pdfDocument !== undefined && this.pdfDocument !== null) {\n this.pdfDocument.getPage(pageNumber).then((page: PDFPageProxy) => {\n const viewport: PageViewport = page.getViewport({ scale: this.zoom });\n this.canvas.height = Math.floor(viewport.height);\n this.canvas.width = Math.floor(viewport.width);\n\n // Render PDF page into canvas context\n const renderContext = {\n canvasContext: this.ctx,\n viewport,\n };\n\n // Render page method\n const renderTask: RenderTask = page.render(renderContext as any);\n\n // Wait for rendering to finish\n renderTask.promise.then(() => {\n this.isPageRendering = false;\n this.pageRendered.emit(this.pageNum);\n\n if (this.pageNumPending !== null) {\n this.renderPage(this.pageNumPending); // New page rendering is pending\n this.pageChange.emit(this.pageNumPending); // emit\n this.pageNumPending = null;\n }\n });\n });\n }\n }\n\n private queueRenderPage(pageNumber: number): void {\n if (this.isPageRendering) {\n this.pageNumPending = pageNumber;\n } else {\n this.renderPage(pageNumber);\n }\n }\n\n private loadAndRender(src: string): void {\n getDocument(src).promise.then((pdfDocument: PDFDocumentProxy) => {\n this.pdfDocument = pdfDocument;\n this.renderPage(this.pageNum);\n });\n }\n\n // Fills in and converts all utility and placement fields\n prepareElement(newElement: LSApiElement): LSApiElement {\n return {\n ...newElement,\n top: Math.floor(this.clip(newElement.ay) * this.pageDimensions[newElement.page - 1].height),\n left: Math.floor(this.clip(newElement.ax) * this.pageDimensions[newElement.page - 1].width),\n height: Math.floor((this.clip(newElement.by, 0.05) - this.clip(newElement.ay)) * this.pageDimensions[newElement.page - 1].height),\n width: Math.floor((this.clip(newElement.bx, 0.2) - this.clip(newElement.ax)) * this.pageDimensions[newElement.page - 1].width),\n pageDimensions: this.pageDimensions[newElement.page - 1],\n templateId: this._template.id,\n };\n }\n\n // internal forced change\n syncChange(update: LSMutateEvent) {\n if (update?.select === 'clear') {\n this.unselect();\n }\n\n if (getApiType(update.data) === 'element') {\n if (update.action === 'create') {\n // const newData = { ...update.data, page: this.pageNum };\n // addField.bind(this)(this.component.shadowRoot.getElementById('ls-document-frame'), newData);\n //const newField = this.component.shadowRoot.getElementById('ls-field-' + update.data.id) as HTMLLsEditorFieldElement;\n //this.selected = [newField];\n //this.selectFields.emit([newData as LSApiElement]);\n } else if (update.action === 'update') {\n const fi = this.component.shadowRoot.getElementById('ls-field-' + update.data.id) as HTMLLsEditorFieldElement;\n if (fi) {\n moveField.bind(this)(fi, update.data);\n // const fu = this.component.shadowRoot.getElementById('ls-field-' + update.data.id) as HTMLLsEditorFieldElement;\n\n // fu.dataItem = update.data as LSApiElement;\n // Refresh the selected array\n this.selectFields.emit(this.selected.map(sf => sf.dataItem));\n this.selected = this.selected.map(s => (s.dataItem.id === update.data.id ? fi : s));\n }\n // Reselect the fields - this updates the dataItem value passed to child controls\n const fields = this.component.shadowRoot.querySelectorAll('ls-editor-field');\n this.selected = Array.from(fields).filter(fx => fx.selected);\n } else if (update.action === 'delete') {\n const fi = this.component.shadowRoot.getElementById('ls-field-' + update.data.id) as HTMLLsEditorFieldElement;\n if (!fi) return;\n const fields = this._template.elementConnection.templateElements;\n this._template = { ...this._template, elementConnection: { ...this._template.elementConnection, templateElements: fields.filter(f => f.id !== update.data.id) } };\n this.component.shadowRoot.getElementById('ls-document-frame').removeChild(fi);\n this.selectFields.emit([]);\n } else {\n console.warn('Unrecognised action, check Legalesign documentation. `create`, `update` and `delete` allowed.');\n }\n }\n\n this.validationErrors = validate.bind(this)(this._template);\n this.validate.emit({ valid: this.validationErrors.length === 0 });\n }\n\n initViewer() {\n // Generate a canvas to draw the background PDF on.\n this.canvas = this.component.shadowRoot.getElementById('pdf-canvas') as HTMLCanvasElement;\n this.canvas.style.height = this.pageDimensions[this.pageNum - 1].height * this.zoom + 'px';\n this.canvas.style.width = this.pageDimensions[this.pageNum - 1].width * this.zoom + 'px';\n this.ctx = this.canvas.getContext('2d');\n if (this._template?.link) this.loadAndRender(this._template?.link);\n\n var dropTarget = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLCanvasElement;\n\n // Used for single field selection\n if (this.mode !== 'preview' || this._template?.locked === true) {\n dropTarget.addEventListener('click', mouseClick.bind(this));\n document.addEventListener('mousedown', mouseDown.bind(this));\n document.addEventListener('mousemove', mouseMove.bind(this));\n document.addEventListener('mouseup', mouseUp.bind(this));\n dropTarget.addEventListener('dblclick', mouseDoubleClick.bind(this));\n document.addEventListener('keydown', keyDown.bind(this));\n dropTarget.addEventListener('dragenter', event => {\n event.preventDefault();\n });\n dropTarget.addEventListener('dragover', event => {\n event.preventDefault();\n });\n dropTarget.addEventListener('drop', mouseDrop.bind(this));\n }\n this.generateFields();\n }\n\n // Generate all the field HTML elements that are required (for every page)\n generateFields(clearExisting: boolean = true) {\n if (clearExisting) {\n const fields = this.component.shadowRoot.querySelectorAll('ls-editor-field');\n fields.forEach(fi => this.component.shadowRoot.getElementById('ls-document-frame').removeChild(fi));\n }\n\n this._template.elementConnection.templateElements.forEach(te => {\n addField.bind(this)(this.component.shadowRoot.getElementById('ls-document-frame'), this.prepareElement(te));\n });\n }\n\n showPageFields(page: number) {\n const fields = this.component.shadowRoot.querySelectorAll('ls-editor-field');\n Array.from(fields).forEach(fx => {\n fx.className = fx.dataItem.page === page ? '' : 'hidden';\n });\n }\n\n async load() {\n this.isLoading = true;\n // Get all template and group listing data.\n try {\n this.adapter = new LsDocumentAdapter(this.endpoint);\n const result = (await this.adapter.execute(this.token, getTemplate(this.templateid))) as any;\n this.parseTemplate(JSON.stringify(result.template));\n const resultGroup = (await this.adapter.execute(this.token, getGroupData(this._template.groupId))) as any;\n this.groupInfo = resultGroup.group;\n this.initViewer();\n\n if (this.mode === 'compose') {\n this.manager = 'recipient';\n this._recipients = JSON.parse(this.recipients.replace('\\u0022', '\"')).sort((a, b) => {\n // Signers (signerIndex < 100) come before witnesses (signerIndex >= 100) for the same base index\n const aBase = a.signerIndex % 100 || 100;\n const bBase = b.signerIndex % 100 || 100;\n if (aBase !== bBase) return aBase - bBase;\n // If base is the same, signer comes before witness\n if (a.signerIndex < 100 && b.signerIndex >= 100) return -1;\n if (a.signerIndex >= 100 && b.signerIndex < 100) return 1;\n // Otherwise, keep original order\n return a.signerIndex - b.signerIndex;\n })\n }\n\n //Revalidate\n this.validationErrors = validate.bind(this)(this._template);\n this.validate.emit({ valid: this.validationErrors.length === 0 });\n this.pageCount = this._template.pageCount;\n this.selected = [];\n this.setZoom(1.0);\n this.isLoading = false;\n } catch (e) {\n console.error('Your access token is invalid.', e);\n }\n }\n\n componentWillLoad() {\n if (this.token && !this._template) this.load();\n }\n\n componentDidLoad() {\n attachAllTooltips(this.component.shadowRoot);\n\n const leftBox = this.component.shadowRoot.getElementById('ls-left-box');\n if (leftBox) {\n leftBox.addEventListener('mousedown', (e) => {\n e.stopPropagation();\n });\n leftBox.addEventListener('mouseup', (e) => {\n e.stopPropagation();\n });\n leftBox.addEventListener('mousemove', (e) => {\n e.stopPropagation();\n });\n }\n }\n\n showTool(fieldFormType: string): boolean {\n return this.filtertoolbox === null || this.filtertoolbox.split('|').includes(fieldFormType);\n }\n\n render() {\n return (\n <Host>\n <>\n {this.isLoading && <ls-page-loader />}\n <div class=\"page-header\">\n <div class={'left-slot-wrapper'}>\n <slot name=\"left-button\" />\n </div>\n <div class={'right-slot-wrapper'}>\n <slot name=\"right-button\" />\n </div>\n {this.mode === 'editor' && (\n <div>\n <span class=\"header-text-1\">Template Creation</span>\n <span>/</span>\n <span class=\"header-text-2\">{this._template?.title}</span>\n </div>\n )}\n {this.mode === 'compose' && (\n <div style={{ display: 'flex', alignItems: 'center', gap: '0.25rem' }}>\n <slot name=\"top-bar\"> \n </slot>\n </div>\n )}\n </div>\n {this.mode === 'editor' && (\n <div class={'validation-tag-wrapper'}>\n <ls-validation-tag validationErrors={this.validationErrors} />\n </div>\n )}\n\n <form id=\"ls-editor-form\">\n {this.mode !== 'preview' ? (\n <div id=\"ls-left-box\" class=\"leftBox\" style={this.mode === 'compose' ? { borderRadius: '1.75rem' } : {}}>\n <div class={!this.selected || this.selected.length === 0 ? 'left-box-inner' : 'hidden'}>\n {this.mode === 'editor' && (\n <ls-feature-column\n mode={this.mode}\n onManage={manager => {\n if (manager.detail === 'document') {\n var documentManager = this.component.shadowRoot.getElementById('ls-document-options') as HTMLLsDocumentOptionsElement;\n documentManager.template = this._template;\n } else if (manager.detail === 'participant') {\n var participantManager = this.component.shadowRoot.getElementById('ls-participant-manager') as HTMLLsParticipantManagerElement;\n participantManager.template = this._template;\n } else if (manager.detail === 'validation') {\n var validationManager = this.component.shadowRoot.getElementById('ls-validation-manager') as HTMLLsValidationManagerElement;\n validationManager.validationErrors = this.validationErrors;\n }\n this.manager = manager.detail;\n }}\n />\n )}\n <div id=\"ls-toolbox\" class={this.manager === 'toolbox' ? 'toolbox' : 'hidden'}>\n <div class=\"ls-editor-infobox\">\n <h2 class=\"toolbox-section-title\">Fields</h2>\n <p class=\"toolbox-section-description\">Drag and drop, or select and double click, to place fields on the Document.</p>\n </div>\n <div class=\"fields-box\">\n {this.signer > 0 && this.showTool('signature') && (\n <ls-toolbox-field\n elementType=\"signature\"\n formElementType=\"signature\"\n label=\"Signature\"\n defaultHeight={25}\n defaultWidth={97}\n validation={0}\n icon=\"signature\"\n tooltip=\"Use this field to collect Signatures from Participants\"\n signer={this.signer}\n />\n )}\n\n {this.signer === 0 && this.showTool('auto sign') && (\n <ls-toolbox-field\n elementType=\"auto sign\"\n formElementType=\"auto sign\"\n label=\"Auto Sign\"\n defaultHeight={25}\n defaultWidth={97}\n validation={3000}\n icon=\"auto-sign\"\n tooltip=\"Auto-Sign lets Senders add a Signature to the Document that will be automatically applied upon Sending\"\n signer={this.signer}\n />\n )}\n {this.showTool('text') && (\n <ls-toolbox-field\n elementType=\"text\"\n formElementType=\"text\"\n label=\"Text\"\n defaultHeight={16}\n defaultWidth={150}\n validation={0}\n icon=\"text\"\n tooltip=\"A field for collecting any plain text values such as: names, addresses or descriptions\"\n signer={this.signer}\n />\n )}\n\n {this.signer > 0 && this.showTool('signing date') && (\n <ls-toolbox-field\n elementType=\"signing date\"\n formElementType=\"signing date\"\n label=\"Signing Date\"\n defaultHeight={16}\n defaultWidth={100}\n validation={30}\n icon=\"auto-date\"\n tooltip=\"Automatically inserts the date upon completion by the assigned Participant\"\n signer={this.signer}\n />\n )}\n\n {this.showTool('date') && (\n <ls-toolbox-field\n elementType=\"date\"\n formElementType=\"date\"\n label=\"Date\"\n defaultHeight={16}\n defaultWidth={100}\n validation={2}\n icon=\"calender\"\n tooltip=\"A field for collecting dates with built-in date formatting options\"\n signer={this.signer}\n />\n )}\n {this.showTool('email') && (\n <ls-toolbox-field\n elementType=\"email\"\n formElementType=\"email\"\n label=\"Email\"\n defaultHeight={16}\n defaultWidth={150}\n validation={1}\n icon=\"at-symbol\"\n tooltip=\"A Field to only accept entries formatted as an email address (e.g., example@example.com)\"\n signer={this.signer}\n />\n )}\n\n {this.showTool('initials') && (\n <ls-toolbox-field\n elementType=\"initials\"\n formElementType=\"initials\"\n label=\"Initials\"\n defaultHeight={25}\n defaultWidth={70}\n validation={2000}\n icon=\"initials\"\n tooltip=\"Use this field anywhere Participants are required to Initial your document\"\n signer={this.signer}\n />\n )}\n\n {this.showTool('number') && (\n <ls-toolbox-field\n elementType=\"number\"\n formElementType=\"number\"\n label=\"Number\"\n defaultHeight={16}\n defaultWidth={150}\n validation={50}\n icon=\"hashtag\"\n tooltip=\"A Field to only accept entries in numerical format. Additional validations include character limit (1 to 12 digits), and currency format (2 decimal places)\"\n signer={this.signer}\n />\n )}\n\n {this.showTool('dropdown') && (\n <ls-toolbox-field\n elementType=\"dropdown\"\n formElementType=\"dropdown\"\n label=\"Dropdown\"\n defaultHeight={16}\n defaultWidth={100}\n validation={20}\n icon=\"dropdown\"\n tooltip=\"Use this field to create custom dropdown menus in your document, or place one of our handy presets for countries or prefixes\"\n signer={this.signer}\n />\n )}\n\n {this.showTool('checkbox') && (\n <ls-toolbox-field\n elementType=\"checkbox\"\n formElementType=\"checkbox\"\n label=\"Checkbox\"\n defaultHeight={16}\n defaultWidth={16}\n validation={25}\n icon=\"check\"\n tooltip=\"Places a checkbox on your document. Handy for T&Cs or ✔/✗ sections\"\n signer={this.signer}\n />\n )}\n\n {this.signer > 0 && this.showTool('regex') && (\n <ls-toolbox-field\n elementType=\"regex\"\n formElementType=\"regex\"\n label=\"Regex\"\n defaultHeight={16}\n defaultWidth={150}\n validation={93}\n icon=\"code\"\n tooltip=\"Need a specific validation? Use this field to enter a custom RegEx and have Participants enter exactly what you need\"\n signer={this.signer}\n />\n )}\n {this.signer > 0 && this.showTool('image') && (\n <ls-toolbox-field\n elementType=\"image\"\n formElementType=\"image\"\n label=\"Image\"\n defaultHeight={16}\n defaultWidth={100}\n validation={90}\n icon=\"photograph\"\n tooltip=\"Use when you need Participants to upload their own images during the signing process\"\n signer={this.signer}\n />\n )}\n {this.signer > 0 && this.showTool('file') && (\n <ls-toolbox-field\n elementType=\"file\"\n formElementType=\"file\"\n label=\"File\"\n defaultHeight={16}\n defaultWidth={100}\n validation={74}\n icon=\"upload\"\n tooltip=\"Use when you need Participants to upload their own documents during the signing process\"\n signer={this.signer}\n />\n )}\n {this.signer > 0 && this.showTool('drawn') && (\n <ls-toolbox-field\n elementType=\"drawn\"\n formElementType=\"drawn\"\n label=\"Drawn\"\n defaultHeight={120}\n defaultWidth={120}\n validation={90}\n icon=\"pencil\"\n tooltip=\"Allow users to draw on the document using their mouse or touchscreen\"\n signer={this.signer}\n />\n )}\n </div>\n </div>\n <ls-participant-manager id=\"ls-participant-manager\" class={this.manager === 'participant' ? 'toolbox' : 'hidden'} editor={this} />\n <ls-document-options id=\"ls-document-options\" class={this.manager === 'document' ? 'toolbox' : 'hidden'} />\n <ls-validation-manager id=\"ls-validation-manager\" class={this.manager === 'validation' ? 'toolbox' : 'hidden'} />\n <ls-recipient-manager id=\"ls-recipient-manager\" class={this.manager === 'recipient' ? 'compose-toolbox' : 'hidden'}>\n <div class={'scroll-gradient-top'} />\n <div class={'scroll-gradient-bottom'} />\n <ls-validation-tag validationErrors={this.validationErrors} style={{ position: 'absolute', top: '1.125rem', right: '1rem' }} type=\"compose\" />\n <div class={'recipients-box'}>\n {this._recipients &&\n this._recipients.map(recipient => (\n <ls-recipient-card\n recipient={recipient}\n activeRecipient={this.signer}\n filtertoolbox={this.filtertoolbox}\n template={this._template}\n validationErrors={this.validationErrors}\n fieldTypeSelected={this.fieldTypeSelected}\n data-signer-index={recipient.signerIndex}\n />\n ))}\n <slot name='recipient-panel'></slot>\n </div>\n </ls-recipient-manager>\n </div>\n {!this.displayTable && (\n <div class={this.selected.length > 0 ? 'field-properties-outer' : 'hidden'}>\n <div class={'properties-header'}>\n <div class={'properties-header-icon'}>\n <ls-icon name=\"pre-filled-content\" />\n </div>\n <h1 class={'properties-header-title'}>Field Properties</h1>\n <button\n class={'tertiaryGrey'}\n onClick={e => {\n this.selected = [];\n e.preventDefault();\n }}\n data-tooltip=\"Close Properties Panel\"\n >\n <ls-icon name=\"x\" size=\"1.25rem\" />\n </button>\n </div>\n <ls-field-properties id=\"my-field-panel\"></ls-field-properties> \n </div>\n )}\n </div>\n ) : (\n <></>\n )}\n <ls-toolbar id=\"ls-toolbar\" template={this._template} editor={this} groupInfo={this.groupInfo} mode={this.mode} />\n <div id=\"ls-mid-area\">\n <div class={'document-frame-wrapper'} id=\"document-frame-wrapper\">\n <div id=\"ls-document-frame\">\n <canvas id=\"pdf-canvas\" class={this.displayTable || this.isLoading ? 'hidden' : ''}></canvas>\n <ls-editor-table editor={this} class={this.displayTable ? '' : 'hidden'} />\n <div id=\"ls-box-selector\"></div>\n </div>\n </div>\n <ls-statusbar editor={this} page={this.pageNum} pageCount={this.pageCount} />\n </div>\n </form>\n </>\n <ls-tooltip id=\"ls-tooltip-master\" />\n </Host>\n );\n }\n}\n"]}
|
|
@@ -36,11 +36,11 @@ export class LsStatusbar {
|
|
|
36
36
|
this.zoom = this.editor.zoom;
|
|
37
37
|
}
|
|
38
38
|
render() {
|
|
39
|
-
return (h(Host, { key: '69daa9251f31cf28501fd47c5536a3a0e76d48cf' }, h("div", { key: 'f1204ff3c369c48389df4ed8c5cb45457bb087a4', class: 'controls-bar' }, h("div", { key: '268b93d93af4689dbd477e292db3dbb45c88e40c', class: 'status-bar-section' }, h("button", { key: '50ed0b096d871252132eb8315d7b667ff2c1dbed', onClick: () => this.setZoom(this.editor.zoom * 0.8), id: "zoom-out-btn", "data-tooltip": "Zoom Out" }, h("ls-icon", { key: '278a53a799c94c202b1167ea4ee4ac2d93f69907', name: "zoom-out" })), h("span", { key: 'dd193206fa1b631d5fe2bfa12602b487a68257aa' }, this.zoom * 100, "%"), h("button", { key: '
|
|
39
|
+
return (h(Host, { key: '69daa9251f31cf28501fd47c5536a3a0e76d48cf' }, h("div", { key: 'f1204ff3c369c48389df4ed8c5cb45457bb087a4', class: 'controls-bar' }, h("div", { key: '268b93d93af4689dbd477e292db3dbb45c88e40c', class: 'status-bar-section' }, h("button", { key: '50ed0b096d871252132eb8315d7b667ff2c1dbed', onClick: () => this.setZoom(this.editor.zoom * 0.8), id: "zoom-out-btn", "data-tooltip": "Zoom Out" }, h("ls-icon", { key: '278a53a799c94c202b1167ea4ee4ac2d93f69907', name: "zoom-out" })), h("span", { key: 'dd193206fa1b631d5fe2bfa12602b487a68257aa' }, Math.round(this.zoom * 100), "%"), h("button", { key: '2955b651f5b0772d095571b8ece4255eb46c5b30', onClick: () => this.setZoom(this.editor.zoom / 0.8), id: "zoom-in-btn", "data-tooltip": "Zoom In" }, h("ls-icon", { key: '1fde117aa9805b7d0bc27d3c87dd41c70de3447c', name: "zoom-in" }))), h("div", { key: '30dfa5377ed0cc8d90c2ac2188122fd6e1e21124', class: 'status-bar-section' }, h("button", { key: '3e9a8204ae762b488017d54871735c849fd141f9', onClick: () => this.fitWidth(), id: "fit-width-btn", "data-tooltip": "Fit Width" }, h("ls-icon", { key: '5f213bfb5bf1734c4c86a679dd2c48a8c9a0cbfe', name: "fit-width" })), h("button", { key: 'b7d00c04acf48ae9326b59dc2d93d907905c22eb', onClick: () => this.fitHeight(), id: "fit-height-btn", "data-tooltip": "Fit Height" }, h("ls-icon", { key: '4569595f7a271456efa4774a5609cdda94903051', name: "fit-height" }))), h("div", { key: '41cb8b7ccda42a6ee4773940b0805ec75204c486', class: 'status-bar-section', style: this.pageCount === 1 && { display: 'none' } }, h("button", { key: 'ac0e7e046f3f6b6e6a946416beeccf25a8a766ba', onClick: () => {
|
|
40
40
|
this.editor.pagePrev();
|
|
41
|
-
}, disabled: this.page === 1, id: "prev-page-btn", "data-tooltip": this.page === 1 ? 'No Previous Page' : 'Previous Page' }, h("ls-icon", { key: '
|
|
41
|
+
}, disabled: this.page === 1, id: "prev-page-btn", "data-tooltip": this.page === 1 ? 'No Previous Page' : 'Previous Page' }, h("ls-icon", { key: '202d21d86cf2adf26b7ff12049d2a82660fc9e9e', name: "chevron-left" })), h("p", { key: 'ab4874418a784e75d423dfcf9bfb3c1825fe84e5' }, this.page, " / ", this.pageCount), h("button", { key: '2cd1cda3b5d46563e95d428dea417c7cbd132d30', onClick: () => {
|
|
42
42
|
this.editor.pageNext();
|
|
43
|
-
}, disabled: this.page === this.pageCount, id: "next-page-btn", "data-tooltip": this.page === this.pageCount ? 'No Next Page' : 'Next Page' }, h("ls-icon", { key: '
|
|
43
|
+
}, disabled: this.page === this.pageCount, id: "next-page-btn", "data-tooltip": this.page === this.pageCount ? 'No Next Page' : 'Next Page' }, h("ls-icon", { key: '68ce3a56868db26da50e4d3b5eda79bab37bd054', name: "chevron-right" })))), h("ls-helper-bar", { key: 'b0425da8b073e4345b8b5825e041a083a01c0e30' }), h("ls-tooltip", { key: '13ae8ff9d9e1a0fccf55e82081f6d1b94749dc12', id: "ls-tooltip-master" }), h("slot", { key: '085b6e9b77ee8139ef7b2e7a56d157ca0b8f1ab4' })));
|
|
44
44
|
}
|
|
45
45
|
static get is() { return "ls-statusbar"; }
|
|
46
46
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ls-statusbar.js","sourceRoot":"","sources":["../../../src/components/ls-statusbar/ls-statusbar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAOxD,MAAM,OAAO,WAAW;IACX,SAAS,CAAc;IAClC;;;OAGG;IACsB,IAAI,CAAS;IACb,IAAI,CAAS;IACb,SAAS,CAAS;IAE3C;;;OAGG;IACK,MAAM,CAAmB;IAEjC,OAAO,CAAC,KAAa;QACnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,QAAQ;QACN,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;QACzF,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,wBAAwB;QAGrF,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACvF,MAAM,KAAK,GAAW,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAClE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,SAAS;QACP,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,wBAAwB;QACjE,MAAM,KAAK,GAAW,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,gBAAgB;QACd,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAE,cAAc;gBAG1B,4DAAK,KAAK,EAAE,oBAAoB;oBAC9B,+DAAQ,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,EAAE,EAAC,cAAc,kBAAc,UAAU;wBACpG,gEAAS,IAAI,EAAC,UAAU,GAAG,CACpB;oBACT;wBAAO,IAAI,CAAC,IAAI,GAAG,GAAG;4BAAS;
|
|
1
|
+
{"version":3,"file":"ls-statusbar.js","sourceRoot":"","sources":["../../../src/components/ls-statusbar/ls-statusbar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAOxD,MAAM,OAAO,WAAW;IACX,SAAS,CAAc;IAClC;;;OAGG;IACsB,IAAI,CAAS;IACb,IAAI,CAAS;IACb,SAAS,CAAS;IAE3C;;;OAGG;IACK,MAAM,CAAmB;IAEjC,OAAO,CAAC,KAAa;QACnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,QAAQ;QACN,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;QACzF,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,wBAAwB;QAGrF,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACvF,MAAM,KAAK,GAAW,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAClE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,SAAS;QACP,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,wBAAwB;QACjE,MAAM,KAAK,GAAW,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,gBAAgB;QACd,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAE,cAAc;gBAG1B,4DAAK,KAAK,EAAE,oBAAoB;oBAC9B,+DAAQ,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,EAAE,EAAC,cAAc,kBAAc,UAAU;wBACpG,gEAAS,IAAI,EAAC,UAAU,GAAG,CACpB;oBACT;wBAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;4BAAS;oBAC3C,+DAAQ,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,EAAE,EAAC,aAAa,kBAAc,SAAS;wBAClG,gEAAS,IAAI,EAAC,SAAS,GAAG,CACnB,CACL;gBACN,4DAAK,KAAK,EAAE,oBAAoB;oBAC9B,+DAAQ,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAC,eAAe,kBAAc,WAAW;wBACjF,gEAAS,IAAI,EAAC,WAAW,GAAG,CACrB;oBACT,+DAAQ,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,EAAC,gBAAgB,kBAAc,YAAY;wBACpF,gEAAS,IAAI,EAAC,YAAY,GAAG,CACtB,CACL;gBACN,4DAAK,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE;oBAClF,+DACE,OAAO,EAAE,GAAG,EAAE;4BACZ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;wBACzB,CAAC,EACD,QAAQ,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,EACzB,EAAE,EAAC,eAAe,kBACJ,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,eAAe;wBAEpE,gEAAS,IAAI,EAAC,cAAc,GAAG,CACxB;oBACT;wBACG,IAAI,CAAC,IAAI;;wBAAK,IAAI,CAAC,SAAS,CAC3B;oBACJ,+DACE,OAAO,EAAE,GAAG,EAAE;4BACZ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;wBACzB,CAAC,EACD,QAAQ,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,EACtC,EAAE,EAAC,eAAe,kBACJ,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW;wBAEzE,gEAAS,IAAI,EAAC,eAAe,GAAG,CACzB,CACL,CACA;YACN,uEAAiB;YACjB,mEAAY,EAAE,EAAC,mBAAmB,GAAG;YACrC,8DAAa,CACR,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, Prop, h, Element } from '@stencil/core';\nimport { LsDocumentViewer } from '../ls-document-viewer/ls-document-viewer';\nimport { attachAllTooltips } from '../../utils/tooltip';\n\n@Component({\n tag: 'ls-statusbar',\n styleUrl: 'ls-statusbar.css',\n shadow: true,\n})\nexport class LsStatusbar {\n @Element() component: HTMLElement;\n /**\n * The zoom or scale level 100 === 100%.\n * {number}\n */\n @Prop({ mutable: true }) zoom: number;\n @Prop({ mutable: true }) page: number;\n @Prop({ mutable: true }) pageCount: number;\n\n /**\n * The parent editor control.\n * {LsDocumentViewer}\n */\n @Prop() editor: LsDocumentViewer;\n\n setZoom(value: number) {\n this.editor.setZoom(value);\n this.zoom = value;\n }\n\n fitWidth() {\n const leftBox = this.editor.component.shadowRoot.getElementById('ls-left-box');\n const midBox = this.editor.component.shadowRoot.getElementById('document-frame-wrapper');\n const space = midBox.clientWidth - leftBox.clientWidth - 60; // 60 for padding/margin\n\n \n console.log('Space width:', space, 'Page width:', this.editor.pageDimensions[0].width);\n const scale: number = space / this.editor.pageDimensions[0].width;\n this.setZoom(Math.round(scale * 1e2) / 1e2);\n }\n\n fitHeight() {\n const space = window.screen.height - 40; // 40 for padding/margin\n const scale: number = space / this.editor.pageDimensions[0].height;\n this.setZoom(Math.round(scale * 1e2) / 1e2);\n }\n\n componentDidLoad() {\n attachAllTooltips(this.component.shadowRoot);\n this.zoom = this.editor.zoom;\n }\n\n render() {\n return (\n <Host>\n <div class={'controls-bar'}>\n {/* <button onClick={() => this.editor.displayTable = true}><ls-icon name=\"table\" /></button>\n <button onClick={() => this.editor.displayTable = false}><ls-icon name=\"template\" /></button> */}\n <div class={'status-bar-section'}>\n <button onClick={() => this.setZoom(this.editor.zoom * 0.8)} id=\"zoom-out-btn\" data-tooltip=\"Zoom Out\">\n <ls-icon name=\"zoom-out\" />\n </button>\n <span>{Math.round(this.zoom * 100)}%</span>\n <button onClick={() => this.setZoom(this.editor.zoom / 0.8)} id=\"zoom-in-btn\" data-tooltip=\"Zoom In\">\n <ls-icon name=\"zoom-in\" />\n </button>\n </div>\n <div class={'status-bar-section'}>\n <button onClick={() => this.fitWidth()} id=\"fit-width-btn\" data-tooltip=\"Fit Width\">\n <ls-icon name=\"fit-width\" />\n </button>\n <button onClick={() => this.fitHeight()} id=\"fit-height-btn\" data-tooltip=\"Fit Height\">\n <ls-icon name=\"fit-height\" />\n </button>\n </div>\n <div class={'status-bar-section'} style={this.pageCount === 1 && { display: 'none' }}>\n <button\n onClick={() => {\n this.editor.pagePrev();\n }}\n disabled={this.page === 1}\n id=\"prev-page-btn\"\n data-tooltip={this.page === 1 ? 'No Previous Page' : 'Previous Page'}\n >\n <ls-icon name=\"chevron-left\" />\n </button>\n <p>\n {this.page} / {this.pageCount}\n </p>\n <button\n onClick={() => {\n this.editor.pageNext();\n }}\n disabled={this.page === this.pageCount}\n id=\"next-page-btn\"\n data-tooltip={this.page === this.pageCount ? 'No Next Page' : 'Next Page'}\n >\n <ls-icon name=\"chevron-right\" />\n </button>\n </div>\n </div>\n <ls-helper-bar />\n <ls-tooltip id=\"ls-tooltip-master\" />\n <slot></slot>\n </Host>\n );\n }\n}\n"]}
|