legalesign-document-viewer 0.0.8 → 0.0.10
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_28.cjs.entry.js +2 -2
- package/dist/cjs/ls-document-options_28.cjs.entry.js.map +1 -1
- package/dist/collection/components/ls-document-viewer/defaultPalette.js.map +1 -1
- package/dist/collection/components/ls-document-viewer/ls-document-viewer.js +5 -4
- package/dist/collection/components/ls-document-viewer/ls-document-viewer.js.map +1 -1
- package/dist/collection/types/RoleColor.js +1 -0
- package/dist/collection/types/RoleColor.js.map +1 -1
- package/dist/components/ls-document-viewer.js +2 -2
- package/dist/components/ls-document-viewer.js.map +1 -1
- package/dist/esm/ls-document-options_28.entry.js +2 -2
- package/dist/esm/ls-document-options_28.entry.js.map +1 -1
- package/dist/ls-document-viewer/ls-document-viewer.esm.js +1 -1
- package/dist/ls-document-viewer/{p-36261506.entry.js → p-20c9ab64.entry.js} +2 -2
- package/dist/ls-document-viewer/{p-36261506.entry.js.map → p-20c9ab64.entry.js.map} +1 -1
- package/dist/types/components/ls-document-viewer/defaultPalette.d.ts +1 -0
- package/dist/types/components/ls-document-viewer/ls-document-viewer.d.ts +1 -0
- package/dist/types/components.d.ts +2 -0
- package/dist/types/types/RoleColor.d.ts +1 -1
- package/package.json +8 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultPalette.js","sourceRoot":"","sources":["../../../src/components/ls-document-viewer/defaultPalette.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"defaultPalette.js","sourceRoot":"","sources":["../../../src/components/ls-document-viewer/defaultPalette.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAgB;IAC7C,EAAC,OAAO,EAAC,mBAAmB,EAAE,KAAK,EAAE,oBAAoB,EAAC;IAC1D,EAAC,OAAO,EAAC,mBAAmB,EAAE,KAAK,EAAE,oBAAoB,EAAC;IAC1D,EAAC,OAAO,EAAC,mBAAmB,EAAE,KAAK,EAAE,oBAAoB,EAAC;IAC1D,EAAC,OAAO,EAAC,oBAAoB,EAAE,KAAK,EAAE,oBAAoB,EAAC;IAC3D,EAAC,OAAO,EAAC,mBAAmB,EAAE,KAAK,EAAE,oBAAoB,EAAC;IAC1D,EAAC,OAAO,EAAC,mBAAmB,EAAE,KAAK,EAAE,oBAAoB,EAAC;IAC1D,EAAC,OAAO,EAAC,kBAAkB,EAAE,KAAK,EAAE,oBAAoB,EAAC;IACzD,EAAC,OAAO,EAAC,iBAAiB,EAAE,KAAK,EAAE,oBAAoB,EAAC;IACxD,EAAC,OAAO,EAAC,wBAAwB,EAAE,KAAK,EAAE,oBAAoB,EAAC;IAC9D,EAAC,OAAO,EAAC,kBAAkB,EAAE,KAAK,EAAE,2BAA2B,EAAC;IACjE,EAAC,OAAO,EAAC,mBAAmB,EAAE,KAAK,EAAE,oBAAoB,EAAC;IAC1D,EAAC,OAAO,EAAC,iBAAiB,EAAE,KAAK,EAAE,oBAAoB,EAAC;IACxD,EAAC,OAAO,EAAC,oBAAoB,EAAE,KAAK,EAAE,oBAAoB,EAAC;IAC1D,EAAC,OAAO,EAAC,mBAAmB,EAAE,KAAK,EAAE,oBAAoB,EAAC;IAC3D,EAAC,OAAO,EAAC,mBAAmB,EAAE,KAAK,EAAE,oBAAoB,EAAC;IAC1D,EAAC,OAAO,EAAC,iBAAiB,EAAE,KAAK,EAAE,oBAAoB,EAAC;IACxD,EAAC,OAAO,EAAC,wBAAwB,EAAE,KAAK,EAAE,oBAAoB,EAAC;CAChE,CAAA","sourcesContent":["import { RoleColor } from \"../../types/RoleColor\";\n\nexport const defaultRolePalette: RoleColor[] = [\n {primary:'rgb(50, 124, 244)', faded: 'rgb(240, 246, 255)'}, \n {primary:'rgb(70, 219, 170)', faded: 'rgb(239, 255, 249)'}, \n {primary:'rgb(240, 182, 24)', faded: 'rgb(255, 252, 239)'}, \n {primary:'rgb(238, 229, 255)', faded: 'rgb(244, 240, 255)'}, \n {primary:'rgb(240, 86, 178)', faded: 'rgb(255, 240, 249)'}, \n {primary:'rgb(189, 240, 86)', faded: 'rgb(250, 255, 240)'}, \n {primary:'rgb(246, 74, 68)', faded: 'rgb(246, 190, 188)'}, \n {primary:'rgb(58, 0, 166)', faded: 'rgb(188, 169, 240)'}, \n {primary:'rgba(1, 179, 34, 0.69)', faded: 'rgb(135, 173, 158)'},\n {primary:'rgb(201, 204, 0)', faded: 'rgba(246, 247, 203, 0.77)'}, \n {primary:'rgb(249, 55, 129)', faded: 'rgb(255, 237, 244)'}, \n {primary:'rgb(0, 14, 166)', faded: 'rgb(209, 212, 243)'}, \n {primary:'rgb(135, 173, 158)', faded: 'rgb(205, 244, 228)'} ,\n {primary:'rgb(86, 199, 240)', faded: 'rgb(202, 236, 248)'}, \n {primary:'rgb(246, 205, 68)', faded: 'rgb(244, 240, 255)'}, \n {primary:'rgb(0, 94, 166)', faded: 'rgb(188, 169, 240)'}, \n {primary:'rgba(179, 1, 63, 0.69)', faded: 'rgb(135, 173, 158)'} \n]\n"]}
|
|
@@ -381,7 +381,7 @@ export class LsDocumentViewer {
|
|
|
381
381
|
}
|
|
382
382
|
}
|
|
383
383
|
render() {
|
|
384
|
-
return (h(Host, { key: '
|
|
384
|
+
return (h(Host, { key: 'fa4c4384dec1f5dd491dceb408d26aa13f968b2c' }, h("form", { key: 'e4ce6bd8dbd23d4622a7e0b4370c1de7946990ec', id: "ls-editor-form" }, this.showtoolbox === true ? h("div", { class: "leftBox" }, h("ls-feature-column", { onManage: (manager) => {
|
|
385
385
|
if (manager.detail === 'document') {
|
|
386
386
|
var documentManager = this.component.shadowRoot.getElementById('ls-document-options');
|
|
387
387
|
documentManager.template = this._template;
|
|
@@ -394,7 +394,7 @@ export class LsDocumentViewer {
|
|
|
394
394
|
this.manager = manager.detail;
|
|
395
395
|
} }), h("div", { id: "ls-toolbox", class: this.manager === 'toolbox' ? 'toolbox' : 'hidden' }, h("div", { class: "ls-editor-infobox" }, "Drag to Add..."), h("ls-toolbox-field", { elementType: "signature", formElementType: "signature", label: "Signature", defaultHeight: 27, defaultWidth: 120, validation: 0 }), h("ls-toolbox-field", { elementType: "text", formElementType: "text", label: "Text", defaultHeight: 27, defaultWidth: 100, validation: 0 }), h("ls-toolbox-field", { elementType: "email", formElementType: "email", label: "Email", defaultHeight: 27, defaultWidth: 120, validation: 1 }), h("ls-toolbox-field", { elementType: "number", formElementType: "number", label: "Number", defaultHeight: 27, defaultWidth: 80, validation: 50 }), h("ls-toolbox-field", { elementType: "date", formElementType: "date", label: "Date", defaultHeight: 27, defaultWidth: 80, validation: 2 }), h("ls-toolbox-field", { elementType: "checkbox", formElementType: "checkbox", label: "Checkbox", defaultHeight: 27, defaultWidth: 27, validation: 25 }), h("ls-toolbox-field", { elementType: "auto sign", formElementType: "auto sign", label: "Auto Sign", defaultHeight: 27, defaultWidth: 120, validation: 3000 }), h("ls-toolbox-field", { elementType: "initials", formElementType: "initials", label: "Initials", defaultHeight: 27, defaultWidth: 120, validation: 2000 }), h("ls-toolbox-field", { elementType: "regex", formElementType: "regex", label: "Regex", defaultHeight: 27, defaultWidth: 120, validation: 93 }), h("ls-toolbox-field", { elementType: "image", formElementType: "image", label: "Image", defaultHeight: 27, defaultWidth: 120, validation: 90 }), h("ls-toolbox-field", { elementType: "signing date", formElementType: "signing date", label: "Signing Date", defaultHeight: 27, defaultWidth: 120, validation: 30 }), h("ls-toolbox-field", { elementType: "file", formElementType: "file", label: "File", defaultHeight: 27, defaultWidth: 120, validation: 74 })), h("ls-participant-manager", { id: "ls-participant-manager", class: this.manager === 'participant' ? 'toolbox' : 'hidden', editor: this }), h("ls-document-options", { id: "ls-document-options", class: this.manager === 'document' ? 'toolbox' : 'hidden' }))
|
|
396
396
|
:
|
|
397
|
-
h(h.Fragment, null), h("div", { key: '
|
|
397
|
+
h(h.Fragment, null), h("div", { key: 'f5e1bc777374f8dae7cbd99f9f077f3c6e42dc60', id: "ls-mid-area" }, h("ls-toolbar", { key: '8c0f22b891b90cf62cbcdd872f7c8142d98a00d1', id: "ls-toolbar", dataItem: this.selected ? this.selected.map(s => s.dataItem) : null, template: this._template }), h("div", { key: '01036d8b5ef6a98e3f9f74c803bca29bfc421fd3', id: "ls-document-frame" }, h("canvas", { key: '77db91bbd2470e1931fdf63a51624be17650de56', id: "pdf-canvas", class: this.displayTable ? 'hidden' : '' }), h("ls-editor-table", { key: 'b19d0c2b817595c9da3f0f81daef0ec61a60da72', editor: this, class: this.displayTable ? '' : 'hidden' }), h("div", { key: '414f48d0e0e55e8f7fdf9eb85a42585f47dd8e23', id: "ls-box-selector" })), h("ls-statusbar", { key: '75d1f66e537d05a6d900a69c91673b8252f7e212', editor: this })), this.showrightpanel && !this.displayTable && this.selected && this.selected.length > 0 && h("div", { key: '098750708452822ff4b84a93633a2aa982e4c661', class: "rightBox" }, h("slot", { key: '44d19903806474b9c99d91b60c1c80e6bf0ef58d' })))));
|
|
398
398
|
}
|
|
399
399
|
static get is() { return "ls-document-viewer"; }
|
|
400
400
|
static get encapsulation() { return "shadow"; }
|
|
@@ -698,8 +698,9 @@ export class LsDocumentViewer {
|
|
|
698
698
|
"resolved": "RoleColor[]",
|
|
699
699
|
"references": {
|
|
700
700
|
"RoleColor": {
|
|
701
|
-
"location": "
|
|
702
|
-
"
|
|
701
|
+
"location": "import",
|
|
702
|
+
"path": "../../types/RoleColor",
|
|
703
|
+
"id": "src/types/RoleColor.ts::RoleColor"
|
|
703
704
|
}
|
|
704
705
|
}
|
|
705
706
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ls-document-viewer.js","sourceRoot":"","sources":["../../../src/components/ls-document-viewer/ls-document-viewer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAChG,OAAO,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,EAML,mBAAmB,EACnB,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,2BAA2B,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,mBAAmB,CAAC,SAAS,GAAG,yEAAyE,CAAC;AAE1G;;;;;GAKG;AAOH,MAAM,OAAO,gBAAgB;IAChB,SAAS,CAAc;IAE1B,eAAe,CAAU;IACzB,WAAW,CAAM;IACjB,cAAc,GAAW,IAAI,CAAC;IAC9B,MAAM,CAAoB;IAC1B,GAAG,CAA2B;IAC/B,cAAc,CAAsC,CAAC,mCAAmC;IAC/F,aAAa;IACL,QAAQ,GAAY,KAAK,CAAC;IAClC,aAAa;IACL,YAAY,GAA6B,IAAI,CAAC;IACtD,aAAa;IACL,QAAQ,CAAc;IAC9B,aAAa;IACL,QAAQ,CAAS;IACzB,aAAa;IACL,cAAc,CAAiE;IACvF,aAAa;IACL,UAAU,CAAqF;IAEvG,EAAE;IACF,iCAAiC;IACjC,EAAE;IAEF;;;;OAIG;IACK,QAAQ,CAAS;IACA,IAAI,GAAW,GAAG,CAAC,CAAC,sDAAsD;IAC1E,OAAO,GAAW,CAAC,CAAC,CAAC,mCAAmC;IAExE,SAAS,CAAe;IACxB,QAAQ,CAA6B;IAG9C;;;KAGC;IACO,IAAI,GAAoC,QAAQ,CAAC;IAGzD,WAAW,CAAC,QAAQ,EAAE,QAAQ;QAC5B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC;IAEH,CAAC;IAGD,gBAAgB,CAAC,QAAQ,EAAE,QAAQ;QACjC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;QACzB,CAAC;aAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACnC,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAGrC,CAAC;IAED;;;MAGE;IACuB,OAAO,GAA2C,SAAS,CAAC;IAIrF,eAAe,CAAC,WAAW,EAAE,YAAY;QACvC,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,YAAY,CAAyB,CAAC;QAC7F,OAAO,CAAC,QAAQ,GAAG,WAAW,CAAA;IAChC,CAAC;IAED;;;MAGE;IACuB,YAAY,GAAa,KAAK,CAAC;IAExD;;;OAGG;IACK,WAAW,GAAa,KAAK,CAAC;IAEtC;;;OAGG;IACK,WAAW,GAAa,KAAK,CAAC;IAEtC;;;OAGG;IACK,aAAa,GAAa,KAAK,CAAC;IAExC;;;KAGC;IACO,eAAe,GAAa,KAAK,CAAC;IAE1C;;;;IAIA;IACQ,cAAc,GAAa,KAAK,CAAC;IAEzC;;;;IAIA;IACQ,QAAQ,GAAa,KAAK,CAAC;IAEnC;;;IAGA;IACQ,aAAa,GAAa,KAAK,CAAC;IAExC;;;KAGC;IACO,aAAa,GAAY,IAAI,CAAC;IAEtC;;;KAGC;IACO,UAAU,GAAiB,kBAAkB,CAAC;IAGtD,aAAa,CAAC,QAAgB;QAC5B,MAAM,WAAW,GAAG,QAAgC,CAAA;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAA;QAEhE,uCAAuC;QACvC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA,CAAC,CAAC,CAAC,CAAA;QAC9E,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACpE,OAAO;gBACL,GAAG,CAAC;gBACJ,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM;gBAC3B,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;gBAC3B,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM;gBACvC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;aACtC,CAAA;QACH,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,WAAW,EAAE,iBAAiB,EAAE,EAAE,GAAG,WAAW,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,CAAA;IACxH,CAAC;IAED,EAAE;IACF,4BAA4B;IAC5B,EAAE;IACO,YAAY,CAAuB;IAC5C,qCAAqC;IAC5B,UAAU,CAAuB;IAC1C,4BAA4B;IACnB,YAAY,CAA+B;IACpD,yCAAyC;IAChC,MAAM,CAAgC;IAC/C,yCAAyC;IAChC,MAAM,CAAgC;IAE/C,gFAAgF;IAEhF,aAAa,CAAC,KAAmC;QAC/C,IAAI,KAAK,CAAC,MAAM;YAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;IACnE,CAAC;IAGD,EAAE;IACF,qBAAqB;IACrB,EAAE;IAEF;;;OAGG;IAEH,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC9C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACnC,CAAC;IAED;;;OAGG;IAEH,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACnC,CAAC;IAED;;;KAGC;IAED,KAAK,CAAC,OAAO,CAAC,CAAS;QACrB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,YAAY,CAAsB,CAAC;QAC1F,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAC1F,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAExF,qCAAqC;QACrC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;QAElH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACnC,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,UAAkB;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAE5B,IAAI,CAAC,WAAW;aACb,OAAO,CAAC,UAAU,CAAC;aACnB,IAAI,CACH,CAAC,IAAkB,EAAE,EAAE;YACrB,MAAM,QAAQ,GAAoB,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAE3D,sCAAsC;YACtC,MAAM,aAAa,GAAoB;gBACrC,QAAQ;gBACR,aAAa,EAAE,IAAI,CAAC,GAAG;aACxB,CAAC;YAEF,qBAAqB;YACrB,MAAM,UAAU,GAAkB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAE7D,+BAA+B;YAC/B,UAAU,CAAC,OAAO;iBACf,IAAI,CACH,GAAG,EAAE;gBACH,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAErC,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;oBACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,gCAAgC;oBACtE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO;oBAClD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAE7B,CAAC;YACH,CAAC,CACF,CAAC;QACN,CAAC,CACF,CAAC;IACN,CAAC;IAEO,eAAe,CAAC,UAAkB;QACxC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAGO,aAAa,CAAC,GAAW;QAC/B,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO;aACrB,IAAI,CAAC,CAAC,WAA6B,EAAE,EAAE;YACtC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,yDAAyD;IACzD,cAAc,CAAC,UAAwB;QACrC,OAAO;YACL,GAAG,UAAU;YACb,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YAChF,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;YAChF,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YACrG,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;YACnG,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;SACzD,CAAA;IACH,CAAC;IAED,yBAAyB;IACzB,UAAU,CAAC,MAAqB;QAC9B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;QAE5C,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAA;gBACtD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC,CAAA;gBAC3F,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAA6B,CAAA;gBAEnH,IAAI,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAA;gBAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,OAAuB,CAAC,CAAC,CAAA;YACnD,CAAC;iBACI,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACpC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAA6B,CAAC;gBAC9G,IAAI,EAAE,EAAE,CAAC;oBACP,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;oBACrC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAA6B,CAAC;oBAE9G,EAAE,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAoB,CAAC;oBAC1C,6BAA6B;oBAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACnF,CAAC;gBACD,iFAAiF;gBACjF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;gBAC7E,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAA;YAE9D,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACtC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAA6B,CAAC;gBAC9G,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;gBAC7E,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;YACpB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,+FAA+F,CAAC,CAAA;YAC/G,CAAC;QACH,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAC9B,0CAA0C;QAC1C,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACjC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAErB,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;YACxC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACtB,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACzB,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gBACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,YAAY,CAAsB,CAAC;gBAC1F,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;gBAC1F,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;gBACxF,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAsB,CAAC;QAGpG,kCAAkC;QAClC,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAC3D,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAC9D,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAC9D,UAAU,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAC1D,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACxD,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAChF,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/E,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAC5C,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAkB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAyB,CAAC;gBAC/G,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAA;gBAC9F,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAgB,CAAC;gBACzF,qEAAqE;gBACrE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,CAAA;gBAC5C,8CAA8C;gBAC9C,MAAM,OAAO,GAAkB;oBAC7B,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;wBACtB,GAAG,IAAI;wBACP,EAAE;wBACF,KAAK,EAAE,EAAE;wBACT,GAAG,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,SAAS;wBAChD,IAAI,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU;wBAClD,MAAM,EAAE,IAAI,CAAC,aAAa;wBAC1B,KAAK,EAAE,IAAI,CAAC,YAAY;wBACxB,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;wBACrD,QAAQ,EAAE,SAAS;wBACnB,QAAQ,EAAE,EAAE;wBACZ,KAAK,EAAE,MAAM;wBACb,MAAM,EAAE,CAAC;wBACT,WAAW,EAAE,IAAI,CAAC,IAAI;qBACP;iBAClB,CAAA;gBAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;gBAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;YAE7B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAClB,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,0EAA0E;QAC1E,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YAC7D,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAA;QAC7G,CAAC,CAAC,CAAA;IAGJ,CAAC;IAED,cAAc,CAAC,IAAY;QAEzB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QAC7E,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YAC9B,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;QAC1D,CAAC,CAAC,CAAA;IAEJ,CAAC;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,6DAAM,EAAE,EAAC,gBAAgB;gBACtB,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,WAAK,KAAK,EAAC,SAAS;oBAC/C,yBAAmB,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;4BACvC,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gCAClC,IAAI,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,qBAAqB,CAAiC,CAAC;gCACtH,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAA;4BAC3C,CAAC;iCAAM,IAAI,OAAO,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;gCAC5C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gCAC3B,IAAI,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,wBAAwB,CAAoC,CAAC;gCAC/H,kBAAkB,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAA;4BAC9C,CAAC;4BACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAA;wBAC/B,CAAC,GAAI;oBACL,WAAK,EAAE,EAAC,YAAY,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;wBAC3E,WAAK,KAAK,EAAC,mBAAmB,qBAAqB;wBACnD,wBAAkB,WAAW,EAAC,WAAW,EAAC,eAAe,EAAC,WAAW,EAAC,KAAK,EAAC,WAAW,EAAC,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,GAAI;wBAC/I,wBAAkB,WAAW,EAAC,MAAM,EAAC,eAAe,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,GAAI;wBAChI,wBAAkB,WAAW,EAAC,OAAO,EAAC,eAAe,EAAC,OAAO,EAAC,KAAK,EAAC,OAAO,EAAC,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,GAAI;wBACnI,wBAAkB,WAAW,EAAC,QAAQ,EAAC,eAAe,EAAC,QAAQ,EAAC,KAAK,EAAC,QAAQ,EAAC,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,GAAI;wBACtI,wBAAkB,WAAW,EAAC,MAAM,EAAC,eAAe,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,GAAI;wBAC/H,wBAAkB,WAAW,EAAC,UAAU,EAAC,eAAe,EAAC,UAAU,EAAC,KAAK,EAAC,UAAU,EAAC,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,GAAI;wBAC5I,wBAAkB,WAAW,EAAC,WAAW,EAAC,eAAe,EAAC,WAAW,EAAC,KAAK,EAAC,WAAW,EAAC,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,GAAI;wBAClJ,wBAAkB,WAAW,EAAC,UAAU,EAAC,eAAe,EAAC,UAAU,EAAC,KAAK,EAAC,UAAU,EAAC,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,GAAI;wBAC/I,wBAAkB,WAAW,EAAC,OAAO,EAAC,eAAe,EAAC,OAAO,EAAC,KAAK,EAAC,OAAO,EAAC,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,GAAI;wBACpI,wBAAkB,WAAW,EAAC,OAAO,EAAC,eAAe,EAAC,OAAO,EAAC,KAAK,EAAC,OAAO,EAAC,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,GAAI;wBACpI,wBAAkB,WAAW,EAAC,cAAc,EAAC,eAAe,EAAC,cAAc,EAAC,KAAK,EAAC,cAAc,EAAC,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,GAAI;wBACzJ,wBAAkB,WAAW,EAAC,MAAM,EAAC,eAAe,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,GAAI,CAC7H;oBACN,8BAAwB,EAAE,EAAC,wBAAwB,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAI;oBAClI,2BAAqB,EAAE,EAAC,qBAAqB,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,GAAI,CACvG;oBACJ,CAAC;wBACD,mBAAK;gBAEP,4DAAK,EAAE,EAAC,aAAa;oBACnB,mEAAY,EAAE,EAAC,YAAY,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,GAAI;oBAC7H,4DAAK,EAAE,EAAC,mBAAmB;wBACzB,+DAAQ,EAAE,EAAC,YAAY,EAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAW;wBAC3E,wEAAiB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAI;wBAC3E,4DAAK,EAAE,EAAC,iBAAiB,GAAO,CAC5B;oBACN,qEAAc,MAAM,EAAE,IAAI,GAAI,CAC1B;gBACL,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,4DAAK,KAAK,EAAC,UAAU;oBAC9G,8DAAa,CACT,CACD,CACF,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","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 { PDFDocument } from 'pdf-lib'\nimport {\n PDFDocumentProxy,\n PDFPageProxy,\n PDFPageViewport,\n PDFRenderParams,\n PDFRenderTask,\n GlobalWorkerOptions,\n getDocument\n} from 'pdfjs-dist';\n\nimport 'pdfjs-dist/web/pdf_viewer';\nimport { LSApiTemplate } from '../../types/LSApiTemplate';\nimport { addField, moveField } from './editorCalculator';\nimport { defaultRolePalette } from './defaultPalette';\nimport { LSMutateEvent } from '../../types/LSMutateEvent';\nimport { keyDown } from './keyHandlers';\nimport { mouseClick, mouseDown, mouseMove, mouseUp } from './mouseHandlers';\nimport { getApiType } from './editorUtils';\n\nGlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.5.207/pdf.worker.min.js';\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 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 @Prop({ mutable: true }) zoom: number = 1.0; // hardcoded to scale the document to full canvas size\n @Prop({ mutable: true }) pageNum: number = 1; // hardcoded to start at the page 1\n\n @State() _template: LSApiTemplate\n @State() selected: HTMLLsEditorFieldElement[];\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' | 'custom' = 'custom';\n\n @Watch('mode')\n modeHandler(_newMode, _oldMode) {\n if (_newMode === 'preview') {\n this.showtoolbar = false;\n this.showtoolbox = false;\n this.showstatusbar = false;\n this.showrightpanel = false;\n this.readonly = true;\n } else if (_newMode === 'editor') {\n this.showtoolbar = true;\n this.showtoolbox = true;\n this.showstatusbar = true;\n this.showrightpanel = true;\n this.readonly = false;\n }\n\n }\n\n @Watch('displayTable')\n tableViewHandler(_newMode, _oldMode) {\n if (_newMode === true) {\n this.showPageFields(-1)\n } else if (_newMode === 'editor') {\n this.showPageFields(this.pageNum)\n }\n this.queueRenderPage(this.pageNum);\n\n\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' = 'toolbox';\n\n\n @Watch('selected')\n selectedHandler(newSelected, _oldSelected) {\n var toolbar = this.component.shadowRoot.getElementById('ls-toolbar') as HTMLLsToolbarElement;\n toolbar.dataItem = newSelected\n }\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 * Whether the left hand toolbox is displayed.\n * {boolean}\n */\n @Prop() showtoolbox?: boolean = false;\n\n /**\n * Whether the top toolbar is displayed.\n * {boolean}\n */\n @Prop() showtoolbar?: boolean = false;\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() showrightpanel?: 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 * Allows you to change the colours used for each role in the template.\n * {SignerColor[]}\n */\n @Prop() roleColors?: RoleColor[] = defaultRolePalette;\n\n\n parseTemplate(newValue: string) {\n const newTemplate = 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 this.pageDimensions = pages.map(p => { return { height: p[1], width: p[0] } })\n const fields = newTemplate.elementConnection.templateElements.map(f => {\n return {\n ...f,\n top: f.ay * pages[0].height,\n left: f.ax * pages[0].width,\n height: (f.by - f.ay) * pages[0].height,\n width: (f.bx - f.ax) * pages[0].width\n }\n })\n this._template = { ...newTemplate, elementConnection: { ...newTemplate.elementConnection, templateElements: fields } }\n }\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 external event to be processed\n @Event() mutate: EventEmitter<LSMutateEvent[]>;\n // Send an internal event to be processed\n @Event() update: EventEmitter<LSMutateEvent[]>;\n\n // Updates are internal event between LS controls not to be confused with mutate\n @Listen('update')\n mutateHandler(event: CustomEvent<LSMutateEvent[]>) {\n if (event.detail) event.detail.forEach(fx => this.syncChange(fx))\n }\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 * Page refresh 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 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\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 * Render the page based on pageNumber\n * {number} pageNumber\n */\n renderPage(pageNumber: number): void {\n this.isPageRendering = true;\n\n this.pdfDocument\n .getPage(pageNumber)\n .then(\n (page: PDFPageProxy) => {\n const viewport: PDFPageViewport = page.getViewport({ scale: this.zoom });\n this.canvas.height = Math.floor(viewport.height / this.zoom);\n this.canvas.width = Math.floor(viewport.width / this.zoom);\n\n // Render PDF page into canvas context\n const renderContext: PDFRenderParams = {\n viewport,\n canvasContext: this.ctx\n };\n\n // Render page method\n const renderTask: PDFRenderTask = page.render(renderContext);\n\n // Wait for rendering to finish\n renderTask.promise\n .then(\n () => {\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 }\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\n private loadAndRender(src: string): void {\n getDocument(src).promise\n .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(newElement.ay * this.pageDimensions[newElement.page - 1].height),\n left: Math.floor(newElement.ax * this.pageDimensions[newElement.page - 1].width),\n height: Math.floor((newElement.by - newElement.ay) * this.pageDimensions[newElement.page - 1].height),\n width: Math.floor((newElement.bx - newElement.ax) * this.pageDimensions[newElement.page - 1].width),\n pageDimensions: this.pageDimensions[newElement.page - 1]\n }\n }\n\n // internal forced change\n syncChange(update: LSMutateEvent) {\n console.log(getApiType(update.data), 'sync')\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\n this.selected = [newField]\n this.selectFields.emit([newData as LSApiElement])\n }\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.selected = this.selected.map(s => s.dataItem.id === update.data.id ? fu : 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\n } else if (update.action === 'delete') {\n const fi = this.component.shadowRoot.getElementById('ls-field-' + update.data.id) as HTMLLsEditorFieldElement;\n this.component.shadowRoot.getElementById('ls-document-frame').removeChild(fi)\n this.selected = []\n } else {\n console.warn('Unrecognised action, check Legalesign documentation. `create`, `update` and `delete` allowed.')\n }\n }\n }\n\n componentDidLoad() {\n console.log('Baking your PDF')\n // TODO:: Remove and add \"real\" background\n PDFDocument.create().then(pdfDoc => {\n const page = pdfDoc.addPage([842, 595]);\n const page2 = pdfDoc.addPage([842, 595]);\n page.moveTo(50, 410);\n\n page.drawText('Welcome to Legalesign!');\n page2.moveTo(500, 50);\n page2.drawText('Page 2');\n pdfDoc.saveAsBase64({ dataUri: true }).then(pdfDataUri => {\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 this.loadAndRender(pdfDataUri);\n });\n });\n\n var dropTarget = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLCanvasElement;\n\n\n // Used for single field selection\n dropTarget.addEventListener(\"click\", mouseClick.bind(this))\n dropTarget.addEventListener(\"mousedown\", mouseDown.bind(this))\n dropTarget.addEventListener(\"mousemove\", mouseMove.bind(this))\n dropTarget.addEventListener(\"mouseup\", mouseUp.bind(this))\n document.addEventListener(\"keydown\", keyDown.bind(this))\n dropTarget.addEventListener(\"dragenter\", (event) => { event.preventDefault(); })\n dropTarget.addEventListener(\"dragover\", (event) => { event.preventDefault(); })\n dropTarget.addEventListener(\"drop\", (event) => {\n event.preventDefault();\n try {\n const data: IToolboxField = JSON.parse(event.dataTransfer.getData(\"application/json\")) as any as IToolboxField;\n this.component.shadowRoot.querySelectorAll('ls-editor-field').forEach(f => f.selected = false)\n var frame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLElement;\n // Make a new API compatible id for a template element (prefix 'ele')\n const id = btoa('ele' + crypto.randomUUID())\n // TODO: Put these defaults somewhere sensible\n const newData: LSMutateEvent = {\n action: 'create', data: {\n ...data,\n id,\n value: \"\",\n top: event.offsetY * this.zoom + frame.scrollTop,\n left: event.offsetX * this.zoom + frame.scrollLeft,\n height: data.defaultHeight,\n width: data.defaultWidth,\n pageDimensions: this.pageDimensions[this.pageNum - 1],\n fontName: \"courier\",\n fontSize: 10,\n align: 'left',\n signer: 1,\n elementType: data.type\n } as LSApiElement\n }\n\n this.mutate.emit([newData])\n this.update.emit([newData])\n\n } catch (e) {\n console.error(e)\n }\n })\n\n // Generate all the field HTML elements that are required (for every page)\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 }\n\n showPageFields(page: number) {\n\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\n componentWillLoad() {\n if (this.template) {\n this.parseTemplate(this.template);\n }\n }\n\n render() {\n return (\n <Host>\n <form id=\"ls-editor-form\">\n {this.showtoolbox === true ? <div class=\"leftBox\">\n <ls-feature-column 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 console.log(this._template)\n var participantManager = this.component.shadowRoot.getElementById('ls-participant-manager') as HTMLLsParticipantManagerElement;\n participantManager.template = this._template\n }\n this.manager = manager.detail\n }} />\n <div id=\"ls-toolbox\" class={this.manager === 'toolbox' ? 'toolbox' : 'hidden'}>\n <div class=\"ls-editor-infobox\">Drag to Add...</div>\n <ls-toolbox-field elementType=\"signature\" formElementType=\"signature\" label=\"Signature\" defaultHeight={27} defaultWidth={120} validation={0} />\n <ls-toolbox-field elementType=\"text\" formElementType=\"text\" label=\"Text\" defaultHeight={27} defaultWidth={100} validation={0} />\n <ls-toolbox-field elementType=\"email\" formElementType=\"email\" label=\"Email\" defaultHeight={27} defaultWidth={120} validation={1} />\n <ls-toolbox-field elementType=\"number\" formElementType=\"number\" label=\"Number\" defaultHeight={27} defaultWidth={80} validation={50} />\n <ls-toolbox-field elementType=\"date\" formElementType=\"date\" label=\"Date\" defaultHeight={27} defaultWidth={80} validation={2} />\n <ls-toolbox-field elementType=\"checkbox\" formElementType=\"checkbox\" label=\"Checkbox\" defaultHeight={27} defaultWidth={27} validation={25} />\n <ls-toolbox-field elementType=\"auto sign\" formElementType=\"auto sign\" label=\"Auto Sign\" defaultHeight={27} defaultWidth={120} validation={3000} />\n <ls-toolbox-field elementType=\"initials\" formElementType=\"initials\" label=\"Initials\" defaultHeight={27} defaultWidth={120} validation={2000} />\n <ls-toolbox-field elementType=\"regex\" formElementType=\"regex\" label=\"Regex\" defaultHeight={27} defaultWidth={120} validation={93} />\n <ls-toolbox-field elementType=\"image\" formElementType=\"image\" label=\"Image\" defaultHeight={27} defaultWidth={120} validation={90} />\n <ls-toolbox-field elementType=\"signing date\" formElementType=\"signing date\" label=\"Signing Date\" defaultHeight={27} defaultWidth={120} validation={30} />\n <ls-toolbox-field elementType=\"file\" formElementType=\"file\" label=\"File\" defaultHeight={27} defaultWidth={120} validation={74} />\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 </div>\n :\n <></>\n }\n <div id=\"ls-mid-area\">\n <ls-toolbar id=\"ls-toolbar\" dataItem={this.selected ? this.selected.map(s => s.dataItem) : null} template={this._template} />\n <div id=\"ls-document-frame\">\n <canvas id=\"pdf-canvas\" class={this.displayTable ? 'hidden' : ''}></canvas>\n <ls-editor-table editor={this} class={this.displayTable ? '' : 'hidden'} />\n <div id=\"ls-box-selector\"></div>\n </div>\n <ls-statusbar editor={this} />\n </div>\n {this.showrightpanel && !this.displayTable && this.selected && this.selected.length > 0 && <div class=\"rightBox\">\n <slot></slot>\n </div>}\n </form>\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 { PDFDocument } from 'pdf-lib'\nimport {\n PDFDocumentProxy,\n PDFPageProxy,\n PDFPageViewport,\n PDFRenderParams,\n PDFRenderTask,\n GlobalWorkerOptions,\n getDocument\n} from 'pdfjs-dist';\n\nimport 'pdfjs-dist/web/pdf_viewer';\nimport { LSApiTemplate } from '../../types/LSApiTemplate';\nimport { addField, moveField } from './editorCalculator';\nimport { defaultRolePalette } from './defaultPalette';\nimport { LSMutateEvent } from '../../types/LSMutateEvent';\nimport { keyDown } from './keyHandlers';\nimport { mouseClick, mouseDown, mouseMove, mouseUp } from './mouseHandlers';\nimport { getApiType } from './editorUtils';\nimport { RoleColor } from '../../types/RoleColor';\n\nGlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.5.207/pdf.worker.min.js';\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 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 @Prop({ mutable: true }) zoom: number = 1.0; // hardcoded to scale the document to full canvas size\n @Prop({ mutable: true }) pageNum: number = 1; // hardcoded to start at the page 1\n\n @State() _template: LSApiTemplate\n @State() selected: HTMLLsEditorFieldElement[];\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' | 'custom' = 'custom';\n\n @Watch('mode')\n modeHandler(_newMode, _oldMode) {\n if (_newMode === 'preview') {\n this.showtoolbar = false;\n this.showtoolbox = false;\n this.showstatusbar = false;\n this.showrightpanel = false;\n this.readonly = true;\n } else if (_newMode === 'editor') {\n this.showtoolbar = true;\n this.showtoolbox = true;\n this.showstatusbar = true;\n this.showrightpanel = true;\n this.readonly = false;\n }\n\n }\n\n @Watch('displayTable')\n tableViewHandler(_newMode, _oldMode) {\n if (_newMode === true) {\n this.showPageFields(-1)\n } else if (_newMode === 'editor') {\n this.showPageFields(this.pageNum)\n }\n this.queueRenderPage(this.pageNum);\n\n\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' = 'toolbox';\n\n\n @Watch('selected')\n selectedHandler(newSelected, _oldSelected) {\n var toolbar = this.component.shadowRoot.getElementById('ls-toolbar') as HTMLLsToolbarElement;\n toolbar.dataItem = newSelected\n }\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 * Whether the left hand toolbox is displayed.\n * {boolean}\n */\n @Prop() showtoolbox?: boolean = false;\n\n /**\n * Whether the top toolbar is displayed.\n * {boolean}\n */\n @Prop() showtoolbar?: boolean = false;\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() showrightpanel?: 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 * Allows you to change the colours used for each role in the template.\n * {SignerColor[]}\n */\n @Prop() roleColors?: RoleColor[] = defaultRolePalette;\n\n\n parseTemplate(newValue: string) {\n const newTemplate = 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 this.pageDimensions = pages.map(p => { return { height: p[1], width: p[0] } })\n const fields = newTemplate.elementConnection.templateElements.map(f => {\n return {\n ...f,\n top: f.ay * pages[0].height,\n left: f.ax * pages[0].width,\n height: (f.by - f.ay) * pages[0].height,\n width: (f.bx - f.ax) * pages[0].width\n }\n })\n this._template = { ...newTemplate, elementConnection: { ...newTemplate.elementConnection, templateElements: fields } }\n }\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 external event to be processed\n @Event() mutate: EventEmitter<LSMutateEvent[]>;\n // Send an internal event to be processed\n @Event() update: EventEmitter<LSMutateEvent[]>;\n\n // Updates are internal event between LS controls not to be confused with mutate\n @Listen('update')\n mutateHandler(event: CustomEvent<LSMutateEvent[]>) {\n if (event.detail) event.detail.forEach(fx => this.syncChange(fx))\n }\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 * Page refresh 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 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\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 * Render the page based on pageNumber\n * {number} pageNumber\n */\n renderPage(pageNumber: number): void {\n this.isPageRendering = true;\n\n this.pdfDocument\n .getPage(pageNumber)\n .then(\n (page: PDFPageProxy) => {\n const viewport: PDFPageViewport = page.getViewport({ scale: this.zoom });\n this.canvas.height = Math.floor(viewport.height / this.zoom);\n this.canvas.width = Math.floor(viewport.width / this.zoom);\n\n // Render PDF page into canvas context\n const renderContext: PDFRenderParams = {\n viewport,\n canvasContext: this.ctx\n };\n\n // Render page method\n const renderTask: PDFRenderTask = page.render(renderContext);\n\n // Wait for rendering to finish\n renderTask.promise\n .then(\n () => {\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 }\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\n private loadAndRender(src: string): void {\n getDocument(src).promise\n .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(newElement.ay * this.pageDimensions[newElement.page - 1].height),\n left: Math.floor(newElement.ax * this.pageDimensions[newElement.page - 1].width),\n height: Math.floor((newElement.by - newElement.ay) * this.pageDimensions[newElement.page - 1].height),\n width: Math.floor((newElement.bx - newElement.ax) * this.pageDimensions[newElement.page - 1].width),\n pageDimensions: this.pageDimensions[newElement.page - 1]\n }\n }\n\n // internal forced change\n syncChange(update: LSMutateEvent) {\n console.log(getApiType(update.data), 'sync')\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\n this.selected = [newField]\n this.selectFields.emit([newData as LSApiElement])\n }\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.selected = this.selected.map(s => s.dataItem.id === update.data.id ? fu : 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\n } else if (update.action === 'delete') {\n const fi = this.component.shadowRoot.getElementById('ls-field-' + update.data.id) as HTMLLsEditorFieldElement;\n this.component.shadowRoot.getElementById('ls-document-frame').removeChild(fi)\n this.selected = []\n } else {\n console.warn('Unrecognised action, check Legalesign documentation. `create`, `update` and `delete` allowed.')\n }\n }\n }\n\n componentDidLoad() {\n console.log('Baking your PDF')\n // TODO:: Remove and add \"real\" background\n PDFDocument.create().then(pdfDoc => {\n const page = pdfDoc.addPage([842, 595]);\n const page2 = pdfDoc.addPage([842, 595]);\n page.moveTo(50, 410);\n\n page.drawText('Welcome to Legalesign!');\n page2.moveTo(500, 50);\n page2.drawText('Page 2');\n pdfDoc.saveAsBase64({ dataUri: true }).then(pdfDataUri => {\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 this.loadAndRender(pdfDataUri);\n });\n });\n\n var dropTarget = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLCanvasElement;\n\n\n // Used for single field selection\n dropTarget.addEventListener(\"click\", mouseClick.bind(this))\n dropTarget.addEventListener(\"mousedown\", mouseDown.bind(this))\n dropTarget.addEventListener(\"mousemove\", mouseMove.bind(this))\n dropTarget.addEventListener(\"mouseup\", mouseUp.bind(this))\n document.addEventListener(\"keydown\", keyDown.bind(this))\n dropTarget.addEventListener(\"dragenter\", (event) => { event.preventDefault(); })\n dropTarget.addEventListener(\"dragover\", (event) => { event.preventDefault(); })\n dropTarget.addEventListener(\"drop\", (event) => {\n event.preventDefault();\n try {\n const data: IToolboxField = JSON.parse(event.dataTransfer.getData(\"application/json\")) as any as IToolboxField;\n this.component.shadowRoot.querySelectorAll('ls-editor-field').forEach(f => f.selected = false)\n var frame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLElement;\n // Make a new API compatible id for a template element (prefix 'ele')\n const id = btoa('ele' + crypto.randomUUID())\n // TODO: Put these defaults somewhere sensible\n const newData: LSMutateEvent = {\n action: 'create', data: {\n ...data,\n id,\n value: \"\",\n top: event.offsetY * this.zoom + frame.scrollTop,\n left: event.offsetX * this.zoom + frame.scrollLeft,\n height: data.defaultHeight,\n width: data.defaultWidth,\n pageDimensions: this.pageDimensions[this.pageNum - 1],\n fontName: \"courier\",\n fontSize: 10,\n align: 'left',\n signer: 1,\n elementType: data.type\n } as LSApiElement\n }\n\n this.mutate.emit([newData])\n this.update.emit([newData])\n\n } catch (e) {\n console.error(e)\n }\n })\n\n // Generate all the field HTML elements that are required (for every page)\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 }\n\n showPageFields(page: number) {\n\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\n componentWillLoad() {\n if (this.template) {\n this.parseTemplate(this.template);\n }\n }\n\n render() {\n return (\n <Host>\n <form id=\"ls-editor-form\">\n {this.showtoolbox === true ? <div class=\"leftBox\">\n <ls-feature-column 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 console.log(this._template)\n var participantManager = this.component.shadowRoot.getElementById('ls-participant-manager') as HTMLLsParticipantManagerElement;\n participantManager.template = this._template\n }\n this.manager = manager.detail\n }} />\n <div id=\"ls-toolbox\" class={this.manager === 'toolbox' ? 'toolbox' : 'hidden'}>\n <div class=\"ls-editor-infobox\">Drag to Add...</div>\n <ls-toolbox-field elementType=\"signature\" formElementType=\"signature\" label=\"Signature\" defaultHeight={27} defaultWidth={120} validation={0} />\n <ls-toolbox-field elementType=\"text\" formElementType=\"text\" label=\"Text\" defaultHeight={27} defaultWidth={100} validation={0} />\n <ls-toolbox-field elementType=\"email\" formElementType=\"email\" label=\"Email\" defaultHeight={27} defaultWidth={120} validation={1} />\n <ls-toolbox-field elementType=\"number\" formElementType=\"number\" label=\"Number\" defaultHeight={27} defaultWidth={80} validation={50} />\n <ls-toolbox-field elementType=\"date\" formElementType=\"date\" label=\"Date\" defaultHeight={27} defaultWidth={80} validation={2} />\n <ls-toolbox-field elementType=\"checkbox\" formElementType=\"checkbox\" label=\"Checkbox\" defaultHeight={27} defaultWidth={27} validation={25} />\n <ls-toolbox-field elementType=\"auto sign\" formElementType=\"auto sign\" label=\"Auto Sign\" defaultHeight={27} defaultWidth={120} validation={3000} />\n <ls-toolbox-field elementType=\"initials\" formElementType=\"initials\" label=\"Initials\" defaultHeight={27} defaultWidth={120} validation={2000} />\n <ls-toolbox-field elementType=\"regex\" formElementType=\"regex\" label=\"Regex\" defaultHeight={27} defaultWidth={120} validation={93} />\n <ls-toolbox-field elementType=\"image\" formElementType=\"image\" label=\"Image\" defaultHeight={27} defaultWidth={120} validation={90} />\n <ls-toolbox-field elementType=\"signing date\" formElementType=\"signing date\" label=\"Signing Date\" defaultHeight={27} defaultWidth={120} validation={30} />\n <ls-toolbox-field elementType=\"file\" formElementType=\"file\" label=\"File\" defaultHeight={27} defaultWidth={120} validation={74} />\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 </div>\n :\n <></>\n }\n <div id=\"ls-mid-area\">\n <ls-toolbar id=\"ls-toolbar\" dataItem={this.selected ? this.selected.map(s => s.dataItem) : null} template={this._template} />\n <div id=\"ls-document-frame\">\n <canvas id=\"pdf-canvas\" class={this.displayTable ? 'hidden' : ''}></canvas>\n <ls-editor-table editor={this} class={this.displayTable ? '' : 'hidden'} />\n <div id=\"ls-box-selector\"></div>\n </div>\n <ls-statusbar editor={this} />\n </div>\n {this.showrightpanel && !this.displayTable && this.selected && this.selected.length > 0 && <div class=\"rightBox\">\n <slot></slot>\n </div>}\n </form>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoleColor.js","sourceRoot":"","sources":["../../src/types/RoleColor.ts"],"names":[],"mappings":"","sourcesContent":["type RoleColor = {\n primary: string\n faded: string\n};"]}
|
|
1
|
+
{"version":3,"file":"RoleColor.js","sourceRoot":"","sources":["../../src/types/RoleColor.ts"],"names":[],"mappings":"","sourcesContent":["export type RoleColor = {\n primary: string\n faded: string\n};"]}
|
|
@@ -46144,7 +46144,7 @@ const LsDocumentViewer$1 = /*@__PURE__*/ proxyCustomElement(class LsDocumentView
|
|
|
46144
46144
|
}
|
|
46145
46145
|
}
|
|
46146
46146
|
render() {
|
|
46147
|
-
return (h(Host, { key: '
|
|
46147
|
+
return (h(Host, { key: 'fa4c4384dec1f5dd491dceb408d26aa13f968b2c' }, h("form", { key: 'e4ce6bd8dbd23d4622a7e0b4370c1de7946990ec', id: "ls-editor-form" }, this.showtoolbox === true ? h("div", { class: "leftBox" }, h("ls-feature-column", { onManage: (manager) => {
|
|
46148
46148
|
if (manager.detail === 'document') {
|
|
46149
46149
|
var documentManager = this.component.shadowRoot.getElementById('ls-document-options');
|
|
46150
46150
|
documentManager.template = this._template;
|
|
@@ -46157,7 +46157,7 @@ const LsDocumentViewer$1 = /*@__PURE__*/ proxyCustomElement(class LsDocumentView
|
|
|
46157
46157
|
this.manager = manager.detail;
|
|
46158
46158
|
} }), h("div", { id: "ls-toolbox", class: this.manager === 'toolbox' ? 'toolbox' : 'hidden' }, h("div", { class: "ls-editor-infobox" }, "Drag to Add..."), h("ls-toolbox-field", { elementType: "signature", formElementType: "signature", label: "Signature", defaultHeight: 27, defaultWidth: 120, validation: 0 }), h("ls-toolbox-field", { elementType: "text", formElementType: "text", label: "Text", defaultHeight: 27, defaultWidth: 100, validation: 0 }), h("ls-toolbox-field", { elementType: "email", formElementType: "email", label: "Email", defaultHeight: 27, defaultWidth: 120, validation: 1 }), h("ls-toolbox-field", { elementType: "number", formElementType: "number", label: "Number", defaultHeight: 27, defaultWidth: 80, validation: 50 }), h("ls-toolbox-field", { elementType: "date", formElementType: "date", label: "Date", defaultHeight: 27, defaultWidth: 80, validation: 2 }), h("ls-toolbox-field", { elementType: "checkbox", formElementType: "checkbox", label: "Checkbox", defaultHeight: 27, defaultWidth: 27, validation: 25 }), h("ls-toolbox-field", { elementType: "auto sign", formElementType: "auto sign", label: "Auto Sign", defaultHeight: 27, defaultWidth: 120, validation: 3000 }), h("ls-toolbox-field", { elementType: "initials", formElementType: "initials", label: "Initials", defaultHeight: 27, defaultWidth: 120, validation: 2000 }), h("ls-toolbox-field", { elementType: "regex", formElementType: "regex", label: "Regex", defaultHeight: 27, defaultWidth: 120, validation: 93 }), h("ls-toolbox-field", { elementType: "image", formElementType: "image", label: "Image", defaultHeight: 27, defaultWidth: 120, validation: 90 }), h("ls-toolbox-field", { elementType: "signing date", formElementType: "signing date", label: "Signing Date", defaultHeight: 27, defaultWidth: 120, validation: 30 }), h("ls-toolbox-field", { elementType: "file", formElementType: "file", label: "File", defaultHeight: 27, defaultWidth: 120, validation: 74 })), h("ls-participant-manager", { id: "ls-participant-manager", class: this.manager === 'participant' ? 'toolbox' : 'hidden', editor: this }), h("ls-document-options", { id: "ls-document-options", class: this.manager === 'document' ? 'toolbox' : 'hidden' }))
|
|
46159
46159
|
:
|
|
46160
|
-
h(h.Fragment, null), h("div", { key: '
|
|
46160
|
+
h(h.Fragment, null), h("div", { key: 'f5e1bc777374f8dae7cbd99f9f077f3c6e42dc60', id: "ls-mid-area" }, h("ls-toolbar", { key: '8c0f22b891b90cf62cbcdd872f7c8142d98a00d1', id: "ls-toolbar", dataItem: this.selected ? this.selected.map(s => s.dataItem) : null, template: this._template }), h("div", { key: '01036d8b5ef6a98e3f9f74c803bca29bfc421fd3', id: "ls-document-frame" }, h("canvas", { key: '77db91bbd2470e1931fdf63a51624be17650de56', id: "pdf-canvas", class: this.displayTable ? 'hidden' : '' }), h("ls-editor-table", { key: 'b19d0c2b817595c9da3f0f81daef0ec61a60da72', editor: this, class: this.displayTable ? '' : 'hidden' }), h("div", { key: '414f48d0e0e55e8f7fdf9eb85a42585f47dd8e23', id: "ls-box-selector" })), h("ls-statusbar", { key: '75d1f66e537d05a6d900a69c91673b8252f7e212', editor: this })), this.showrightpanel && !this.displayTable && this.selected && this.selected.length > 0 && h("div", { key: '098750708452822ff4b84a93633a2aa982e4c661', class: "rightBox" }, h("slot", { key: '44d19903806474b9c99d91b60c1c80e6bf0ef58d' })))));
|
|
46161
46161
|
}
|
|
46162
46162
|
static get watchers() { return {
|
|
46163
46163
|
"mode": ["modeHandler"],
|