@voplus/morpho-document 1.0.0-dev251 → 1.0.0-dev254

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/changelog.md +1 -1
  2. package/es/DocumentUIService.d.ts +6 -0
  3. package/es/DocumentUIService.js +13 -0
  4. package/es/DocumentUIService.js.map +1 -0
  5. package/es/Modules.js +10 -3
  6. package/es/Modules.js.map +1 -1
  7. package/es/components/ActivityLog/index.js +1 -1
  8. package/es/components/ActivityLog/index.js.map +1 -1
  9. package/es/components/DocumentCard/index.d.ts +7 -3
  10. package/es/components/DocumentCard/index.js +1 -1
  11. package/es/components/DocumentCard/index.js.map +1 -1
  12. package/es/components/DocumentCardList/index.d.ts +6 -1
  13. package/es/components/DocumentCardList/index.js +6 -2
  14. package/es/components/DocumentCardList/index.js.map +1 -1
  15. package/es/components/DocumentCardList/index.less +1 -0
  16. package/es/components/DocumentHeader/index.js +23 -13
  17. package/es/components/DocumentHeader/index.js.map +1 -1
  18. package/es/components/DocumentHeader/state.d.ts +2 -0
  19. package/es/components/DocumentHeader/state.js.map +1 -1
  20. package/es/components/DocumentList/index.d.ts +1 -1
  21. package/es/components/DocumentList/index.js +2 -2
  22. package/es/components/DocumentList/index.js.map +1 -1
  23. package/es/components/DocumentList/state.d.ts +1 -21
  24. package/es/components/DocumentList/state.js.map +1 -1
  25. package/es/components/DocumentName/index.js +1 -1
  26. package/es/components/DocumentName/index.js.map +1 -1
  27. package/es/components/DocumentQuickViewDialog/index.d.ts +2 -7
  28. package/es/components/DocumentQuickViewDialog/index.js +3 -9
  29. package/es/components/DocumentQuickViewDialog/index.js.map +1 -1
  30. package/es/components/FileViewer/FileViewer.d.ts +1 -0
  31. package/es/components/FileViewer/PDFViewer.d.ts +2 -0
  32. package/es/components/FileViewer/PDFViewer.js +1 -2
  33. package/es/components/FileViewer/PDFViewer.js.map +1 -1
  34. package/es/components/Links/Item.js +1 -1
  35. package/es/components/Links/Item.js.map +1 -1
  36. package/es/components/NewDocumentForm/index.d.ts +1 -1
  37. package/es/controls/FlagIcon/index.d.ts +2 -2
  38. package/es/data/DocumentMetaStore.js +2 -2
  39. package/es/data/DocumentMetaStore.js.map +1 -1
  40. package/es/data/metas/LibraryMeta.d.ts +11 -0
  41. package/es/data/metas/LibraryMeta.js +19 -0
  42. package/es/data/metas/LibraryMeta.js.map +1 -0
  43. package/es/data/metas/PageMeta.d.ts +11 -0
  44. package/es/data/metas/PageMeta.js +19 -0
  45. package/es/data/metas/PageMeta.js.map +1 -0
  46. package/es/data/metas/TextMeta.d.ts +11 -0
  47. package/es/data/metas/TextMeta.js +19 -0
  48. package/es/data/metas/TextMeta.js.map +1 -0
  49. package/es/data/metas/index.d.ts +3 -0
  50. package/es/data/metas/index.js +3 -0
  51. package/es/data/metas/index.js.map +1 -1
  52. package/es/pages/Library/LibraryDefaultView/Content.d.ts +1 -0
  53. package/es/pages/Library/LibraryDefaultView/Content.js +13 -8
  54. package/es/pages/Library/LibraryDefaultView/Content.js.map +1 -1
  55. package/es/pages/Library/LibraryDefaultView/index.js +2 -4
  56. package/es/pages/Library/LibraryDefaultView/index.js.map +1 -1
  57. package/es/pages/Library/LibraryDefaultView/index.less +12 -2
  58. package/es/pages/Page/PageDefaultView/index.js +16 -14
  59. package/es/pages/Page/PageDefaultView/index.js.map +1 -1
  60. package/es/pages/Page/PageDefaultView/index.less +12 -3
  61. package/es/pages/Page/PageTextItem/index.js +1 -1
  62. package/es/pages/Page/PageTextItem/index.js.map +1 -1
  63. package/es/pages/Page/PageTextItem/index.less +5 -0
  64. package/es/pages/Signature/Envelope/EnvelopeDefaultView/index.d.ts +5 -0
  65. package/es/pages/Signature/Envelope/EnvelopeDefaultView/index.js +51 -0
  66. package/es/pages/Signature/Envelope/EnvelopeDefaultView/index.js.map +1 -0
  67. package/es/pages/Signature/Envelope/EnvelopeDefaultView/index.less +30 -0
  68. package/es/pages/Signature/Envelope/EnvelopeRecipientView/index.d.ts +4 -0
  69. package/es/pages/Signature/Envelope/EnvelopeRecipientView/index.js +46 -0
  70. package/es/pages/Signature/Envelope/EnvelopeRecipientView/index.js.map +1 -0
  71. package/es/pages/Signature/Envelope/EnvelopeRecipientView/index.less +41 -0
  72. package/es/pages/Signature/Letter/LetterContentView/index.d.ts +9 -0
  73. package/es/pages/Signature/Letter/LetterContentView/index.js +59 -0
  74. package/es/pages/Signature/Letter/LetterContentView/index.js.map +1 -0
  75. package/es/pages/Signature/Letter/LetterContentView/index.less +21 -0
  76. package/es/pages/Signature/Letter/LetterItem/index.d.ts +10 -0
  77. package/es/pages/Signature/Letter/LetterItem/index.js +29 -0
  78. package/es/pages/Signature/Letter/LetterItem/index.js.map +1 -0
  79. package/es/pages/Signature/Letter/LetterItem/index.less +13 -0
  80. package/es/pages/Signature/Letter/LetterItem/state.d.ts +5 -0
  81. package/es/pages/Signature/Letter/LetterItem/state.js +12 -0
  82. package/es/pages/Signature/Letter/LetterItem/state.js.map +1 -0
  83. package/es/pages/Signature/Letter/LetterList/index.d.ts +6 -0
  84. package/es/pages/Signature/Letter/LetterList/index.js +53 -0
  85. package/es/pages/Signature/Letter/LetterList/index.js.map +1 -0
  86. package/es/pages/Signature/Letter/LetterList/index.less +41 -0
  87. package/es/pages/Signature/Letter/LetterViewer/index.d.ts +9 -0
  88. package/es/pages/Signature/Letter/LetterViewer/index.js +58 -0
  89. package/es/pages/Signature/Letter/LetterViewer/index.js.map +1 -0
  90. package/es/pages/Signature/Letter/LetterViewer/index.less +60 -0
  91. package/es/pages/Signature/SignatureDialog/index.d.ts +9 -0
  92. package/es/pages/Signature/SignatureDialog/index.js +41 -0
  93. package/es/pages/Signature/SignatureDialog/index.js.map +1 -0
  94. package/es/pages/Signature/SignatureDialog/index.less +16 -0
  95. package/es/pages/Signature/SignatureTable/index.d.ts +14 -0
  96. package/es/pages/Signature/SignatureTable/index.js +91 -0
  97. package/es/pages/Signature/SignatureTable/index.js.map +1 -0
  98. package/es/pages/Signature/SignatureTable/index.less +9 -0
  99. package/es/pages/Signature/SignatureTable/state.d.ts +10 -0
  100. package/es/pages/Signature/SignatureTable/state.js +20 -0
  101. package/es/pages/Signature/SignatureTable/state.js.map +1 -0
  102. package/es/pages/Signature/SignerSelect/index.d.ts +12 -0
  103. package/es/pages/Signature/SignerSelect/index.js +32 -0
  104. package/es/pages/Signature/SignerSelect/index.js.map +1 -0
  105. package/es/pages/Signature/SignerSelect/state.d.ts +11 -0
  106. package/es/pages/Signature/SignerSelect/state.js +27 -0
  107. package/es/pages/Signature/SignerSelect/state.js.map +1 -0
  108. package/es/pages/Signature/data/EnvelopeContext.d.ts +30 -0
  109. package/es/pages/Signature/data/EnvelopeContext.js +103 -0
  110. package/es/pages/Signature/data/EnvelopeContext.js.map +1 -0
  111. package/es/pages/Signature/data/IEnvelopeState.d.ts +6 -0
  112. package/es/pages/Signature/data/IEnvelopeState.js +1 -0
  113. package/es/pages/Signature/data/IEnvelopeState.js.map +1 -0
  114. package/es/pages/Signature/data/envelope/EnvelopeStore.d.ts +15 -0
  115. package/es/pages/Signature/data/envelope/EnvelopeStore.js +26 -0
  116. package/es/pages/Signature/data/envelope/EnvelopeStore.js.map +1 -0
  117. package/es/pages/Signature/data/envelope/hook.d.ts +3 -0
  118. package/es/pages/Signature/data/envelope/hook.js +10 -0
  119. package/es/pages/Signature/data/envelope/hook.js.map +1 -0
  120. package/es/pages/Signature/data/envelope/index.d.ts +3 -0
  121. package/es/pages/Signature/data/envelope/index.js +4 -0
  122. package/es/pages/Signature/data/envelope/index.js.map +1 -0
  123. package/es/pages/Signature/data/envelope/interfaces.d.ts +35 -0
  124. package/es/pages/Signature/data/envelope/interfaces.js +1 -0
  125. package/es/pages/Signature/data/envelope/interfaces.js.map +1 -0
  126. package/es/pages/Signature/data/envelope/type.d.ts +21 -0
  127. package/es/pages/Signature/data/envelope/type.js +1 -0
  128. package/es/pages/Signature/data/envelope/type.js.map +1 -0
  129. package/es/routes.d.ts +12 -0
  130. package/es/routes.js +27 -1
  131. package/es/routes.js.map +1 -1
  132. package/package.json +9 -7
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import "./index.less";
3
+ declare const EnvelopeRecipientView: () => JSX.Element;
4
+ export default EnvelopeRecipientView;
@@ -0,0 +1,46 @@
1
+ import "./index.less";
2
+ import { EnvelopeContext, EnvelopeContextState } from "../../data/EnvelopeContext";
3
+ import { useEnvelope } from "../../data/envelope";
4
+ import React, { useEffect, useState } from "react";
5
+ import DocumentSortableTree from "../../../../components/DocumentSortableTree";
6
+ import DocumentTabs from "../../../../components/DocumentTabs";
7
+ import FileExplorerTheme from "../../../../components/DocumentSortableTree/themes/FileExplorerTheme";
8
+ import LetterContentView from "../../Letter/LetterContentView";
9
+ import MainContent from "@voplus/morpho-ui/es/components/layout/MainContent";
10
+ import { useObserver } from "mobx-react-lite";
11
+ import { useRouteMatch } from "react-router";
12
+ import { useTabItem } from "@voplus/morpho-data";
13
+ const EnvelopeRecipientView = () => {
14
+ const match = useRouteMatch();
15
+ const id = match.params.id;
16
+ const envelope = useEnvelope(id, { reload: true, includes: "tags,versions" });
17
+ const [context] = useState(new EnvelopeContextState(id));
18
+ const [contentId, setContentId] = useState("");
19
+ const [letter, setLetter] = useState();
20
+ const tab = useTabItem();
21
+ useEffect(() => {
22
+ tab.title = envelope === null || envelope === void 0 ? void 0 : envelope.name;
23
+ }, [envelope === null || envelope === void 0 ? void 0 : envelope.name]);
24
+ useEffect(() => {
25
+ if (envelope.letters && envelope.letters.length)
26
+ setContentId(envelope.letters[0].document.id);
27
+ }, []);
28
+ return useObserver(() => (React.createElement(EnvelopeContext.Provider, { value: context },
29
+ React.createElement(MainContent, { className: "envelope-recipient-view" },
30
+ React.createElement("nav", { className: "envelope-recipient-tree" },
31
+ React.createElement(DocumentSortableTree, { id: id, canDrag: false, theme: FileExplorerTheme, onDocumentSelected: onDocumentSelected })),
32
+ React.createElement(LetterContentView, { id: contentId || id, envelopeId: id, letter: letter }),
33
+ React.createElement("nav", { className: "envelope-recipient-tabs" },
34
+ React.createElement(DocumentTabs, { id: contentId || id, docTab: false }))))));
35
+ function onDocumentSelected(id) {
36
+ if (id === match.params.id)
37
+ return;
38
+ const letter = envelope.letters.find(l => l.document.id === id);
39
+ if (id) {
40
+ setContentId(id);
41
+ setLetter(letter);
42
+ }
43
+ }
44
+ };
45
+ export default EnvelopeRecipientView;
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/pages/Signature/Envelope/EnvelopeRecipientView/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ :global {
2
+ .envelope-recipient-view {
3
+ overflow: hidden;
4
+ nav {
5
+ box-shadow: 2px 0 8px 0px rgba(0, 0, 0, 0.15) !important;
6
+ }
7
+ .envelope-recipient-tree {
8
+ width: 330px;
9
+ padding: 10px 0 10px 20px;
10
+ .panable {
11
+ .file-type {
12
+ font-size: 15px;
13
+ }
14
+ .document-name-info .file-name {
15
+ font-size: 16px;
16
+ }
17
+ }
18
+ }
19
+ .envelope-recipient-tabs {
20
+ width: 450px;
21
+ .ant-tabs {
22
+ display: flex;
23
+ flex: 1;
24
+ flex-direction: column;
25
+ height: 100%;
26
+ background: #fff;
27
+ .ant-tabs-content {
28
+ height: 100%;
29
+ padding-bottom: 0px !important;
30
+ .ant-tabs-tabpane {
31
+ position: relative;
32
+ height: 100%;
33
+ }
34
+ }
35
+ .ant-tabs-bar {
36
+ margin: 0 20px;
37
+ }
38
+ }
39
+ }
40
+ }
41
+ }
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import "./index.less";
3
+ import { ILetter } from "../../data/envelope";
4
+ declare const LetterContentView: (props: {
5
+ id: string;
6
+ envelopeId: string;
7
+ letter?: ILetter;
8
+ }) => JSX.Element;
9
+ export default LetterContentView;
@@ -0,0 +1,59 @@
1
+ import "./index.less";
2
+ import { Button, Empty, Popover, Skeleton } from "@voplus/antd";
3
+ import { useEnvelope, useEnvelopeStore } from "../../data/envelope";
4
+ import React, { useEffect, useState } from "react";
5
+ import { faDownload, faEdit, faFileSignature } from "@fortawesome/pro-light-svg-icons";
6
+ import { useDocumentStore, useFile } from "../../../../data";
7
+ import DocumentHeader from "../../../../components/DocumentHeader";
8
+ import { FontAwesomeIcon as FAIcon } from "@fortawesome/react-fontawesome";
9
+ import FileViewer from "../../../../components/FileViewer";
10
+ import PDFViewer from "../../../../components/FileViewer/PDFViewer";
11
+ import RichTextEditor from "@voplus/morpho-ui/es/controls/RichTextEditor";
12
+ import SignatureTable from "../../SignatureTable";
13
+ import TextEditor from "@voplus/morpho-text/es/components/TextEditor";
14
+ import { saveAs } from "file-saver";
15
+ import { toJS } from "mobx";
16
+ import { useEnvelopContext } from "../../data/EnvelopeContext";
17
+ import { useObserver } from "mobx-react-lite";
18
+ const LetterContentView = (props) => {
19
+ const { id, envelopeId, letter } = props;
20
+ const envelope = useEnvelope(envelopeId);
21
+ const doc = useFile(id);
22
+ const documentStore = useDocumentStore();
23
+ const envelopeStore = useEnvelopeStore();
24
+ const context = useEnvelopContext();
25
+ const [visible, setVisible] = useState(false);
26
+ useEffect(() => {
27
+ context === null || context === void 0 ? void 0 : context.union(envelope.letters);
28
+ }, [toJS(envelope.letters)]);
29
+ /** File Content (envelope类型的word文档需要转成pdf显示) */
30
+ const renderViewer = () => {
31
+ return (doc === null || doc === void 0 ? void 0 : doc.type) === "Text" ? (React.createElement(TextEditor, { id: id, textOnly: true })) : /^application\/(msword|(vnd\.(ms-|openxmlformats-).*))$/gim.test(doc.mimetype) ||
32
+ doc.name.includes(".wopitest") ? (React.createElement(PDFViewer, { id: doc.id, download: () => envelopeStore.download(envelopeId, (letter === null || letter === void 0 ? void 0 : letter.id) || "") })) : (React.createElement(FileViewer, { id: id }));
33
+ };
34
+ return useObserver(() => (React.createElement("div", { className: "letter-content-view" },
35
+ React.createElement(DocumentHeader, { id: id, size: "h2", style: { padding: "0" }, tools: React.createElement(Button, { shape: "circle", onClick: onDownLoad },
36
+ React.createElement(FAIcon, { icon: faDownload })) }),
37
+ React.createElement("div", { className: "envelope-description" }, (envelope === null || envelope === void 0 ? void 0 : envelope.loading) ? (React.createElement(Skeleton, { active: true })) : (React.createElement(RichTextEditor, { editable: false, readOnly: (envelope === null || envelope === void 0 ? void 0 : envelope.status) === "Readonly", placeholder: (envelope === null || envelope === void 0 ? void 0 : envelope.status) === "Readonly" ? ("No description") : (React.createElement("span", null,
38
+ React.createElement(FAIcon, { icon: faEdit }),
39
+ "Add Description")), content: (doc === null || doc === void 0 ? void 0 : doc.description) || "", onSave: v => documentStore.edit(id, { Description: v }) }))),
40
+ id !== envelopeId ? (React.createElement("div", { className: "file-content" }, context.loading ? React.createElement(Skeleton, { active: true }) : renderViewer())) : (React.createElement(Empty, { description: "No Content" })),
41
+ !!((letter === null || letter === void 0 ? void 0 : letter.signatureLines) && (letter === null || letter === void 0 ? void 0 : letter.signatureLines.length)) && (React.createElement(Popover, { title: "Sign List", visible: !context.signVisibility && visible, onVisibleChange: visible => setVisible(visible), content: React.createElement(SignatureTable, { readonly: true, envelopeId: envelopeId, letterId: (letter === null || letter === void 0 ? void 0 : letter.id) || "", lines: (letter === null || letter === void 0 ? void 0 : letter.signatureLines) || [] }) },
42
+ React.createElement(Button, { type: "primary", size: "large", shape: "circle", style: { position: "absolute", bottom: "10px", right: "20px" } },
43
+ React.createElement(FAIcon, { icon: faFileSignature })))))));
44
+ // downLoad file
45
+ function onDownLoad() {
46
+ if (!letter)
47
+ return;
48
+ envelopeStore.download(envelopeId, letter === null || letter === void 0 ? void 0 : letter.id).then((blob) => {
49
+ if (blob) {
50
+ const url = URL.createObjectURL(blob);
51
+ if (url) {
52
+ saveAs(url);
53
+ }
54
+ }
55
+ });
56
+ }
57
+ };
58
+ export default LetterContentView;
59
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/pages/Signature/Letter/LetterContentView/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ :global {
2
+ .letter-content-view {
3
+ position: relative;
4
+ display: flex;
5
+ min-width: 400px;
6
+ flex-direction: column;
7
+ background-color: #fff;
8
+ padding: 15px 20px !important;
9
+ .file-content {
10
+ flex: 1;
11
+ display: flex;
12
+ flex-direction: column;
13
+ > div {
14
+ height: 100%;
15
+ }
16
+ }
17
+ .envelope-description {
18
+ padding: 10px 0;
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import "./index.less";
3
+ import { ILetter } from "../../data/envelope";
4
+ declare const LetterItem: (props: {
5
+ /** id of type of SignEnvelope of document */
6
+ envelopeId: string;
7
+ /** letter of envelope */
8
+ letter: ILetter;
9
+ }) => JSX.Element;
10
+ export default LetterItem;
@@ -0,0 +1,29 @@
1
+ import "./index.less";
2
+ import { useEnvelopeStore } from "../../data/envelope";
3
+ import React from "react";
4
+ import DocumentHeader from "../../../../components/DocumentHeader";
5
+ import LetterViewer from "../LetterViewer";
6
+ import { State } from "./state";
7
+ import { Switch } from "@voplus/antd";
8
+ import { useEnvelopContext } from "../../data/EnvelopeContext";
9
+ import { useObserver } from "mobx-react-lite";
10
+ const LetterItem = (props) => {
11
+ const { envelopeId, letter } = props;
12
+ const envelopStore = useEnvelopeStore();
13
+ const context = useEnvelopContext();
14
+ const state = context.getState(letter.id, () => new State());
15
+ return useObserver(() => (React.createElement(React.Fragment, null,
16
+ React.createElement("div", { className: "letter-item" },
17
+ letter.document && (React.createElement(DocumentHeader, { id: letter.document.id, quickDataBarAlign: "left", quickVisible: false, onClickName: () => (state.letterVisible = true) })),
18
+ React.createElement(Switch, { checked: letter.public, onChange: onChange })),
19
+ state.letterVisible && React.createElement(LetterViewer, { envelopeId: envelopeId, letter: letter }))));
20
+ /** change public */
21
+ function onChange(checked) {
22
+ letter.public = checked;
23
+ envelopStore.edit(envelopeId, {
24
+ LetterEdits: [{ Id: letter.id, Public: checked }]
25
+ });
26
+ }
27
+ };
28
+ export default LetterItem;
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/pages/Signature/Letter/LetterItem/index.tsx"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAEtB,OAAO,EAAW,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAoB,MAAM,OAAO,CAAC;AAEzC,OAAO,cAAc,MAAM,uCAAuC,CAAC;AACnE,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,UAAU,GAAG,CAAC,KAKnB,EAAE,EAAE;IACJ,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAErC,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;IAExC,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IAEpC,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IAE7D,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC,CACxB,oBAAC,KAAK,CAAC,QAAQ;QACd,6BAAK,SAAS,EAAC,aAAa;YAC1B,MAAM,CAAC,QAAQ,IAAI,CACnB,oBAAC,cAAc,IACd,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,EACtB,iBAAiB,EAAC,MAAM,EACxB,YAAY,EAAE,KAAK,EACnB,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,GAC9C,CACF;YAED,oBAAC,MAAM,IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAI,CACjD;QACL,KAAK,CAAC,aAAa,IAAI,oBAAC,YAAY,IAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAI,CAChE,CACjB,CAAC,CAAC;IACH,oBAAoB;IACpB,SAAS,QAAQ,CAAC,OAAgB;QACjC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;QACxB,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE;YAC7B,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;SACjD,CAAC,CAAC;IACJ,CAAC;AACF,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,13 @@
1
+ :global {
2
+ .letter-item {
3
+ display: flex;
4
+ padding: 10px 20px;
5
+ border-bottom: 1px solid #f2f2f2;
6
+ align-items: center;
7
+ .document-header-default {
8
+ display: block;
9
+ flex: 1;
10
+ padding: 0;
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,5 @@
1
+ import { IEnvelopeState } from "../../data/IEnvelopeState";
2
+ export declare class State implements IEnvelopeState {
3
+ /** visible of letterViewer */
4
+ letterVisible: boolean;
5
+ }
@@ -0,0 +1,12 @@
1
+ import { __decorate } from "tslib";
2
+ import { observable } from "mobx";
3
+ export class State {
4
+ constructor() {
5
+ /** visible of letterViewer */
6
+ this.letterVisible = false;
7
+ }
8
+ }
9
+ __decorate([
10
+ observable
11
+ ], State.prototype, "letterVisible", void 0);
12
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../../src/pages/Signature/Letter/LetterItem/state.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,MAAM,OAAO,KAAK;IAAlB;QACC,8BAA8B;QACX,kBAAa,GAAG,KAAK,CAAC;IAC1C,CAAC;CAAA;AADY;IAAX,UAAU;4CAA8B"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import "./index.less";
3
+ declare const LetterList: (props: {
4
+ id: string;
5
+ }) => JSX.Element;
6
+ export default LetterList;
@@ -0,0 +1,53 @@
1
+ import "./index.less";
2
+ import { useOnDeleteDocument } from "../../../../data";
3
+ import { useEnvelopeStore } from "../../data/envelope";
4
+ import React, { useState } from "react";
5
+ import { CloudUploadOutlined } from "@ant-design/icons";
6
+ import Dragger from "@voplus/antd/es/upload/Dragger";
7
+ import LetterItem from "../LetterItem";
8
+ import { Scrollbars } from "react-custom-scrollbars";
9
+ import { useApplicationContext } from "@voplus/morpho-data";
10
+ import { useEnvelopContext } from "../../data/EnvelopeContext";
11
+ import { useObserver } from "mobx-react-lite";
12
+ const LetterList = (props) => {
13
+ const { id } = props;
14
+ const { user } = useApplicationContext();
15
+ const [fileList, setFileList] = useState([]);
16
+ const store = useEnvelopeStore();
17
+ const context = useEnvelopContext();
18
+ console.log(context, "context");
19
+ useOnDeleteDocument((s, doc) => {
20
+ if (doc.parentNodeId === id) {
21
+ /** 查找document对应letter */
22
+ const letter = context.letters.find((d) => !!((d === null || d === void 0 ? void 0 : d.document) && (d === null || d === void 0 ? void 0 : d.document.id) === doc.id));
23
+ context.remove(letter ? letter.id : "");
24
+ }
25
+ });
26
+ return useObserver(() => {
27
+ var _a, _b;
28
+ return (
29
+ // <ListDataContext.Provider value={data}>
30
+ React.createElement("div", { className: "letter-view-upload" },
31
+ React.createElement("div", { className: "letter-view-upload-header" }, "Public"),
32
+ React.createElement(Dragger, { action: `https://${store.endpoint.host}/api/files/${props.id}`, headers: {
33
+ Authorization: `Bearer ${user.info.accessToken}`
34
+ }, fileList: fileList, showUploadList: fileList.length > 0, onChange: onUploading,
35
+ // disabled={disabled}
36
+ openFileDialogOnClick: false, multiple: true }, !!((_a = context.letters) === null || _a === void 0 ? void 0 : _a.length) ? (React.createElement(Scrollbars, { autoHide: true }, (_b = context.letters) === null || _b === void 0 ? void 0 : _b.map(letter => (React.createElement(LetterItem, { key: letter.id, envelopeId: id, letter: letter }))))) : (React.createElement("div", { className: "letter-empty" },
37
+ React.createElement(CloudUploadOutlined, { style: { fontSize: "40px" } }),
38
+ React.createElement("p", null, "Drag file to upload")))))
39
+ // </ListDataContext.Provider>
40
+ );
41
+ });
42
+ /** 文件上传中、完成、失败回调函数 */
43
+ function onUploading({ file, fileList }) {
44
+ /**上传完成不显示进度条 */
45
+ setFileList(fileList.filter(f => f.status !== "done"));
46
+ /** 上传成功后reload Data,如果有多个文件upload,等文件都upload完成才reload */
47
+ if (!fileList.some(f => f.status === "uploading")) {
48
+ context.reload();
49
+ }
50
+ }
51
+ };
52
+ export default LetterList;
53
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/pages/Signature/Letter/LetterList/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ :global {
2
+ .letter-view-upload {
3
+ flex: 1;
4
+ display: flex;
5
+ flex-direction: column;
6
+ .letter-view-upload-header {
7
+ padding: 10px 20px;
8
+ color: #000;
9
+ font-size: 16px;
10
+ font-weight: 600;
11
+ text-align: right;
12
+ border-bottom: 1px solid #f2f2f2;
13
+ }
14
+ > span {
15
+ display: flex;
16
+ flex-direction: column-reverse;
17
+ flex: 1;
18
+ .ant-upload.ant-upload-drag .ant-upload {
19
+ padding: 0;
20
+ }
21
+ .ant-upload-list {
22
+ padding: 0 15px;
23
+ }
24
+ .ant-upload-drag {
25
+ background: none;
26
+ border: none;
27
+ text-align: left;
28
+ .ant-upload {
29
+ padding: 0;
30
+ }
31
+ .anticon-plus {
32
+ font-size: 12px;
33
+ color: rgba(0, 0, 0, 0.65);
34
+ }
35
+ }
36
+ .letter-empty {
37
+ text-align: center;
38
+ }
39
+ }
40
+ }
41
+ }
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import "./index.less";
3
+ import { ILetter } from "../../data/envelope";
4
+ declare const LetterViewer: (props: {
5
+ envelopeId: string;
6
+ /** info of letter */
7
+ letter: ILetter;
8
+ }) => JSX.Element;
9
+ export default LetterViewer;
@@ -0,0 +1,58 @@
1
+ import "./index.less";
2
+ import { CloseOutlined, SettingOutlined } from "@ant-design/icons";
3
+ import { useEnvelopeStore } from "../../data/envelope";
4
+ import React, { useState } from "react";
5
+ import { Skeleton, Switch } from "@voplus/antd";
6
+ import { FontAwesomeIcon as FAIcon } from "@fortawesome/react-fontawesome";
7
+ import FileViewer from "../../../../components/FileViewer";
8
+ import Modal from "@voplus/antd/es/modal/Modal";
9
+ import PDFViewer from "../../../../components/FileViewer/PDFViewer";
10
+ import RichTextEditor from "@voplus/morpho-ui/es/controls/RichTextEditor";
11
+ import SignatureTable from "../../SignatureTable";
12
+ import TextEditor from "@voplus/morpho-text/es/components/TextEditor";
13
+ import { faEdit } from "@fortawesome/pro-light-svg-icons";
14
+ import { useEnvelopContext } from "../../data/EnvelopeContext";
15
+ import { useFile } from "../../../../data";
16
+ import { useObserver } from "mobx-react-lite";
17
+ const LetterViewer = (props) => {
18
+ const { envelopeId, letter } = props;
19
+ const context = useEnvelopContext();
20
+ const document = useFile(letter.document.id);
21
+ const envelopeStore = useEnvelopeStore();
22
+ const [setting, setSetting] = useState(true);
23
+ return useObserver(() => {
24
+ var _a;
25
+ return (React.createElement(Modal, { width: setting ? "80%" : "500px", visible: true, footer: null, closable: false, onCancel: () => context.letterVisible(false), className: "letter-viewer" },
26
+ React.createElement("div", { className: "file-content" },
27
+ React.createElement("div", { className: "file-content-header" },
28
+ React.createElement("div", { className: "document-name" }, document.name),
29
+ React.createElement(SettingOutlined, { onClick: () => setSetting(!setting) }),
30
+ React.createElement(CloseOutlined, { onClick: () => context.letterVisible(false) })),
31
+ context.loading ? (React.createElement(Skeleton, { active: true })) : (React.createElement(React.Fragment, null, (document === null || document === void 0 ? void 0 : document.type) === "Text" ? (React.createElement(TextEditor, { id: letter.document.id, textOnly: true })) : /^application\/(msword|(vnd\.(ms-|openxmlformats-).*))$/gim.test(document.mimetype) || ((_a = document.name) === null || _a === void 0 ? void 0 : _a.includes(".wopitest")) ? (
32
+ // word 转换成 pdf 显示
33
+ React.createElement(PDFViewer, { id: letter.document.id, download: getBlob })) : (React.createElement(FileViewer, { id: letter.document.id }))))),
34
+ setting && (React.createElement("div", { className: "setting-content" },
35
+ React.createElement("div", { className: "setting-public" },
36
+ React.createElement("span", { className: "bold" }, "Public"),
37
+ React.createElement(Switch, { checked: letter.public, onChange: changePublic })),
38
+ React.createElement("div", { className: "bold", style: { paddingBottom: "5px" } }, "Description"),
39
+ React.createElement(RichTextEditor, { editable: false, readOnly: document.status === "Readonly", placeholder: document.status === "Readonly" ? ("No description") : (React.createElement("span", null,
40
+ React.createElement(FAIcon, { icon: faEdit }),
41
+ "Add Description")), content: document.description || "", onSave: v => envelopeStore.edit(letter.document.id, { Description: v }) }),
42
+ React.createElement(SignatureTable, { envelopeId: envelopeId, letterId: letter.id, lines: letter.signatureLines })))));
43
+ });
44
+ /** change letter public */
45
+ async function changePublic(checked) {
46
+ letter.public = checked;
47
+ await envelopeStore.edit(envelopeId, {
48
+ LetterEdits: [{ Id: letter.id, Public: checked }]
49
+ });
50
+ // context.reload();
51
+ }
52
+ /** pdf 文件流 */
53
+ async function getBlob() {
54
+ return await envelopeStore.download(envelopeId, (letter === null || letter === void 0 ? void 0 : letter.id) || "");
55
+ }
56
+ };
57
+ export default LetterViewer;
58
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/pages/Signature/Letter/LetterViewer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAEtB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAW,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,eAAe,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,UAAU,MAAM,mCAAmC,CAAC;AAC3D,OAAO,KAAK,MAAM,6BAA6B,CAAC;AAChD,OAAO,SAAS,MAAM,6CAA6C,CAAC;AACpE,OAAO,cAAc,MAAM,8CAA8C,CAAC;AAC1E,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,UAAU,MAAM,8CAA8C,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,YAAY,GAAG,CAAC,KAIrB,EAAE,EAAE;IACJ,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAErC,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IAEpC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAE7C,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IAEzC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE7C,OAAO,WAAW,CAAC,GAAG,EAAE;;QAAC,OAAA,CACxB,oBAAC,KAAK,IACL,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAChC,OAAO,EAAE,IAAI,EACb,MAAM,EAAE,IAAI,EACZ,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,EAC5C,SAAS,EAAC,eAAe;YAEzB,6BAAK,SAAS,EAAC,cAAc;gBAC5B,6BAAK,SAAS,EAAC,qBAAqB;oBACnC,6BAAK,SAAS,EAAC,eAAe,IAAE,QAAQ,CAAC,IAAI,CAAO;oBACpD,oBAAC,eAAe,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAI;oBACxD,oBAAC,aAAa,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,GAAI,CACzD;gBACL,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAClB,oBAAC,QAAQ,IAAC,MAAM,SAAG,CACnB,CAAC,CAAC,CAAC,CACH,oBAAC,KAAK,CAAC,QAAQ,QAEb,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,MAAK,MAAM,CAAC,CAAC,CAAC,CAC5B,oBAAC,UAAU,IAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,SAAG,CAC/C,CAAC,CAAC,CAAC,2DAA2D,CAAC,IAAI,CAClE,QAAQ,CAAC,QAAQ,CAChB,WAAI,QAAQ,CAAC,IAAI,0CAAE,QAAQ,CAAC,WAAW,EAAC,CAAC,CAAC,CAAC;gBAC7C,oBAAoB;gBACpB,oBAAC,SAAS,IAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAI,CACxD,CAAC,CAAC,CAAC,CACH,oBAAC,UAAU,IAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAI,CACtC,CACe,CACjB,CACI;YACL,OAAO,IAAI,CACX,6BAAK,SAAS,EAAC,iBAAiB;gBAC/B,6BAAK,SAAS,EAAC,gBAAgB;oBAC9B,8BAAM,SAAS,EAAC,MAAM,aAAc;oBACpC,oBAAC,MAAM,IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAI,CACrD;gBACN,6BAAK,SAAS,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,kBAE/C;gBACN,oBAAC,cAAc,IACd,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,QAAQ,CAAC,MAAM,KAAK,UAAU,EACxC,WAAW,EACV,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAChC,gBAAgB,CAChB,CAAC,CAAC,CAAC,CACH;wBACC,oBAAC,MAAM,IAAC,IAAI,EAAE,MAAM,GAAI;0CAElB,CACP,EAEF,OAAO,EAAE,QAAQ,CAAC,WAAW,IAAI,EAAE,EACnC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,GACtE;gBAEF,oBAAC,cAAc,IACd,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,CAAC,EAAE,EACnB,KAAK,EAAE,MAAM,CAAC,cAAc,GAC3B,CACG,CACN,CACM,CACR,CAAA;KAAA,CAAC,CAAC;IACH,2BAA2B;IAC3B,KAAK,UAAU,YAAY,CAAC,OAAgB;QAC3C,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;QACxB,MAAM,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE;YACpC,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;SACjD,CAAC,CAAC;QACH,oBAAoB;IACrB,CAAC;IACD,cAAc;IACd,KAAK,UAAU,OAAO;QACrB,OAAO,MAAM,aAAa,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE,KAAI,EAAE,CAAC,CAAC;IACnE,CAAC;AACF,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,60 @@
1
+ :global {
2
+ .letter-viewer {
3
+ .ant-modal-body {
4
+ display: flex;
5
+ height: 600px;
6
+ padding: 0;
7
+ .file-content,
8
+ .setting-content {
9
+ height: 100%;
10
+ padding: 15px 20px;
11
+ }
12
+ .file-content {
13
+ display: flex;
14
+ flex-direction: column;
15
+ flex: 1;
16
+ flex-shrink: 0;
17
+ > div + div {
18
+ flex: 1;
19
+ }
20
+ .file-content-header {
21
+ display: flex;
22
+ font-size: 16px;
23
+ color: rgba(0, 0, 0, 0.45);
24
+ margin-bottom: 10px;
25
+ padding-bottom: 5px;
26
+ border-bottom: 1px #f2f2f2 solid;
27
+ .document-name {
28
+ flex: 1;
29
+ color: #000;
30
+ font-size: 17px;
31
+ font-weight: 500;
32
+ }
33
+ .anticon {
34
+ margin-left: 10px;
35
+ }
36
+ }
37
+ }
38
+
39
+ .ant-table {
40
+ padding-top: 10px;
41
+ }
42
+ .setting-content {
43
+ width: 55%;
44
+ flex-shrink: 0;
45
+ border-left: 1px solid #f2f2f2;
46
+ overflow-x: hidden;
47
+ .bold {
48
+ font-size: 15px;
49
+ font-weight: 500;
50
+ color: #000;
51
+ }
52
+ .setting-public {
53
+ display: flex;
54
+ justify-content: space-between;
55
+ padding-bottom: 10px;
56
+ }
57
+ }
58
+ }
59
+ }
60
+ }
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import "./index.less";
3
+ import { ISignatureLine } from "../data/envelope";
4
+ declare const SignatureDialog: (props: {
5
+ envelopeId: string;
6
+ letterId: string;
7
+ signature: ISignatureLine;
8
+ }) => JSX.Element;
9
+ export default SignatureDialog;
@@ -0,0 +1,41 @@
1
+ import "./index.less";
2
+ import { Button, Modal } from "@voplus/antd";
3
+ import { useEnvelopeStore } from "../data/envelope";
4
+ import React, { useState } from "react";
5
+ import SignatureCanvas from "react-signature-canvas";
6
+ import { useEnvelopContext } from "../data/EnvelopeContext";
7
+ import { useObserver } from "mobx-react-lite";
8
+ const SignatureDialog = (props) => {
9
+ const { envelopeId, letterId, signature } = props;
10
+ const [sigPad, setSigPad] = useState();
11
+ const [loading, setLoading] = useState(false);
12
+ const envelopStore = useEnvelopeStore();
13
+ const context = useEnvelopContext();
14
+ return useObserver(() => (React.createElement(Modal, { title: `Draw your signature with your mouse for ${signature === null || signature === void 0 ? void 0 : signature.name}`, width: 600, visible: true, maskClosable: false,
15
+ // closable={false}
16
+ onOk: inset, onCancel: closeSignature, className: "signature-dialog", footer: React.createElement(React.Fragment, null,
17
+ React.createElement("div", { className: "warning-tip" }, "I understand this is a legal representation of my signature"),
18
+ React.createElement(Button, { onClick: clear }, "Clear"),
19
+ React.createElement(Button, { type: "primary", loading: loading, onClick: inset }, "Inset")) },
20
+ React.createElement("div", { style: loading ? { pointerEvents: "none" } : {} },
21
+ React.createElement(SignatureCanvas, { ref: ref => setSigPad(ref), penColor: "black", canvasProps: { width: 600, height: 280 } })))));
22
+ /** clear signature */
23
+ function clear() {
24
+ sigPad.clear();
25
+ }
26
+ /** close modal */
27
+ function closeSignature() {
28
+ context.signVisible(false);
29
+ clear();
30
+ }
31
+ /** upload signature image */
32
+ async function inset() {
33
+ setLoading(true);
34
+ await envelopStore.signature(envelopeId, letterId, signature.id, sigPad.getTrimmedCanvas().toDataURL("image/png"));
35
+ setLoading(false);
36
+ closeSignature();
37
+ context.reload();
38
+ }
39
+ };
40
+ export default SignatureDialog;
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/pages/Signature/SignatureDialog/index.tsx"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAEtB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAkB,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAExC,OAAO,eAAe,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,eAAe,GAAG,CAAC,KAIxB,EAAE,EAAE;IACJ,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAElD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAO,CAAC;IAE5C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;IAExC,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IAEpC,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC,CACxB,oBAAC,KAAK,IACL,KAAK,EAAE,2CAA2C,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,EAAE,EACnE,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,IAAI,EACb,YAAY,EAAE,KAAK;QACnB,mBAAmB;QACnB,IAAI,EAAE,KAAK,EACX,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAC,kBAAkB,EAC5B,MAAM,EACL,oBAAC,KAAK,CAAC,QAAQ;YACd,6BAAK,SAAS,EAAC,aAAa,kEAEtB;YACN,oBAAC,MAAM,IAAC,OAAO,EAAE,KAAK,YAAgB;YACtC,oBAAC,MAAM,IAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,YAE9C,CACO;QAIlB,6BAAK,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;YACnD,oBAAC,eAAe,IACf,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAC1B,QAAQ,EAAC,OAAO,EAChB,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GACvC,CACG,CACC,CACR,CAAC,CAAC;IACH,sBAAsB;IACtB,SAAS,KAAK;QACb,MAAM,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IACD,kBAAkB;IAClB,SAAS,cAAc;QACtB,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC3B,KAAK,EAAE,CAAC;IACT,CAAC;IACD,8BAA8B;IAC9B,KAAK,UAAU,KAAK;QACnB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,YAAY,CAAC,SAAS,CAC3B,UAAU,EACV,QAAQ,EACR,SAAS,CAAC,EAAE,EACZ,MAAM,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAChD,CAAC;QACF,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,cAAc,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;AACF,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,16 @@
1
+ :global {
2
+ .signature-dialog {
3
+ .ant-modal-body {
4
+ padding: 0;
5
+ }
6
+ .ant-modal-footer {
7
+ display: flex;
8
+ text-align: left;
9
+ .warning-tip {
10
+ flex: 1;
11
+ color: #999;
12
+ font-size: 13px;
13
+ }
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,14 @@
1
+ /// <reference types="react" />
2
+ import "./index.less";
3
+ import { ISignatureLine } from "../data/envelope";
4
+ declare const SignatureTable: (props: {
5
+ /** id of envelope */
6
+ envelopeId: string;
7
+ /** id of letter of envelope */
8
+ letterId: string;
9
+ /** lines of signature of letter of envelope */
10
+ lines: ISignatureLine[];
11
+ /** 只读,不可更改 */
12
+ readonly?: boolean;
13
+ }) => JSX.Element;
14
+ export default SignatureTable;