@voplus/morpho-document 6.0.57 → 6.0.59
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/es/Modules.js +5 -3
- package/es/Modules.js.map +1 -1
- package/es/data/email-template/EmailTemplateStore.d.ts +10 -0
- package/es/data/email-template/EmailTemplateStore.js +21 -0
- package/es/data/email-template/EmailTemplateStore.js.map +1 -0
- package/es/data/email-template/hook.d.ts +5 -0
- package/es/data/email-template/hook.js +16 -0
- package/es/data/email-template/hook.js.map +1 -0
- package/es/data/email-template/index.js.map +1 -0
- package/es/data/email-template/interfaces.d.ts +10 -0
- package/es/data/email-template/interfaces.js.map +1 -0
- package/es/data/email-template/metas.d.ts +14 -0
- package/es/data/email-template/metas.js +38 -0
- package/es/data/email-template/metas.js.map +1 -0
- package/es/data/email-template/types.d.ts +15 -0
- package/es/data/email-template/types.js.map +1 -0
- package/es/modules/email-template/components/CodeMirror/index.d.ts +7 -0
- package/es/modules/email-template/components/CodeMirror/index.js +21 -0
- package/es/modules/email-template/components/CodeMirror/index.js.map +1 -0
- package/es/modules/email-template/components/CodeMirror/state.d.ts +5 -0
- package/es/modules/email-template/components/CodeMirror/state.js +28 -0
- package/es/modules/email-template/components/CodeMirror/state.js.map +1 -0
- package/es/modules/email-template/components/EmailTemplateContent/index.d.ts +6 -0
- package/es/modules/email-template/components/EmailTemplateContent/index.js +13 -0
- package/es/modules/email-template/components/EmailTemplateContent/index.js.map +1 -0
- package/es/modules/email-template/components/EmailTemplateContent/index.less +20 -0
- package/es/modules/email-template/components/EmailTemplateItem/index.d.ts +5 -0
- package/es/modules/email-template/components/EmailTemplateItem/index.js +25 -0
- package/es/modules/email-template/components/EmailTemplateItem/index.js.map +1 -0
- package/es/modules/email-template/components/EmailTemplateItem/index.less +32 -0
- package/es/modules/email-template/components/EmailTemplateList/index.d.ts +25 -0
- package/es/modules/email-template/components/EmailTemplateList/index.js +68 -0
- package/es/modules/email-template/components/EmailTemplateList/index.js.map +1 -0
- package/es/modules/email-template/components/EmailTemplateList/index.less +16 -0
- package/es/modules/email-template/components/EmailTemplateProperties/index.d.ts +27 -0
- package/es/modules/email-template/components/EmailTemplateProperties/index.js +39 -0
- package/es/modules/email-template/components/EmailTemplateProperties/index.js.map +1 -0
- package/es/modules/email-template/components/EmailTemplatePropertiesView/index.d.ts +7 -0
- package/es/modules/email-template/components/EmailTemplatePropertiesView/index.js +32 -0
- package/es/modules/email-template/components/EmailTemplatePropertiesView/index.js.map +1 -0
- package/es/modules/email-template/components/EmailTemplatePropertiesView/index.less +14 -0
- package/es/modules/email-template/components/EmailTemplateQuickViewDialog/index.d.ts +7 -0
- package/es/modules/email-template/components/EmailTemplateQuickViewDialog/index.js +28 -0
- package/es/modules/email-template/components/EmailTemplateQuickViewDialog/index.js.map +1 -0
- package/es/modules/email-template/components/EmailTemplateTabs/index.d.ts +5 -0
- package/es/modules/email-template/components/EmailTemplateTabs/index.js +55 -0
- package/es/modules/email-template/components/EmailTemplateTabs/index.js.map +1 -0
- package/es/modules/email-template/components/NewEmailTemplateForm/NewEmailTemplateFormDialog.d.ts +10 -0
- package/es/modules/email-template/components/NewEmailTemplateForm/NewEmailTemplateFormDialog.js +14 -0
- package/es/modules/email-template/components/NewEmailTemplateForm/NewEmailTemplateFormDialog.js.map +1 -0
- package/es/modules/email-template/components/NewEmailTemplateForm/index.d.ts +18 -0
- package/es/modules/email-template/components/NewEmailTemplateForm/index.js +61 -0
- package/es/modules/email-template/components/NewEmailTemplateForm/index.js.map +1 -0
- package/es/modules/email-template/components/NewEmailTemplateForm/index.less +47 -0
- package/es/modules/email-template/components/NewEmailTemplateForm/state.d.ts +19 -0
- package/es/modules/email-template/components/NewEmailTemplateForm/state.js +55 -0
- package/es/modules/email-template/components/NewEmailTemplateForm/state.js.map +1 -0
- package/es/modules/email-template/controls/EmailTemplateDataIconBar/index.d.ts +12 -0
- package/es/modules/email-template/controls/EmailTemplateDataIconBar/index.js +19 -0
- package/es/modules/email-template/controls/EmailTemplateDataIconBar/index.js.map +1 -0
- package/es/modules/email-template/pages/EmailTemplateDefaultView/index.d.ts +6 -0
- package/es/modules/email-template/pages/EmailTemplateDefaultView/index.js +41 -0
- package/es/modules/email-template/pages/EmailTemplateDefaultView/index.js.map +1 -0
- package/es/modules/email-template/pages/EmailTemplateDefaultView/index.less +46 -0
- package/es/obsolete/EmailTemplate/CodeMirror/index.js.map +1 -0
- package/es/obsolete/EmailTemplate/CodeMirror/state.js.map +1 -0
- package/es/obsolete/EmailTemplate/EmailTemplateDefaultView/index.js.map +1 -0
- package/es/obsolete/EmailTemplate/EmailTemplateForm/index.js.map +1 -0
- package/es/obsolete/EmailTemplate/EmailTemplateItem/index.js.map +1 -0
- package/es/obsolete/EmailTemplate/EmailTemplateItems/index.js.map +1 -0
- package/es/obsolete/EmailTemplate/EmailTemplateItems/state.js.map +1 -0
- package/es/obsolete/EmailTemplate/EmailTemplatePropertiesView/index.js.map +1 -0
- package/es/obsolete/EmailTemplate/EmailTemplateSelect/index.js.map +1 -0
- package/es/obsolete/EmailTemplate/data/EmailTemplateStore.js.map +1 -0
- package/es/obsolete/EmailTemplate/data/hook.js.map +1 -0
- package/es/obsolete/EmailTemplate/data/index.d.ts +4 -0
- package/es/obsolete/EmailTemplate/data/index.js +5 -0
- package/es/obsolete/EmailTemplate/data/index.js.map +1 -0
- package/es/obsolete/EmailTemplate/data/interfaces.js +2 -0
- package/es/obsolete/EmailTemplate/data/interfaces.js.map +1 -0
- package/es/obsolete/EmailTemplate/data/types.js +2 -0
- package/es/obsolete/EmailTemplate/data/types.js.map +1 -0
- package/es/routes.js +2 -2
- package/es/routes.js.map +1 -1
- package/package.json +2 -1
- package/es/pages/EmailTemplate/CodeMirror/index.js.map +0 -1
- package/es/pages/EmailTemplate/CodeMirror/state.js.map +0 -1
- package/es/pages/EmailTemplate/EmailTemplateDefaultView/index.js.map +0 -1
- package/es/pages/EmailTemplate/EmailTemplateForm/index.js.map +0 -1
- package/es/pages/EmailTemplate/EmailTemplateItem/index.js.map +0 -1
- package/es/pages/EmailTemplate/EmailTemplateItems/index.js.map +0 -1
- package/es/pages/EmailTemplate/EmailTemplateItems/state.js.map +0 -1
- package/es/pages/EmailTemplate/EmailTemplatePropertiesView/index.js.map +0 -1
- package/es/pages/EmailTemplate/EmailTemplateSelect/index.js.map +0 -1
- package/es/pages/EmailTemplate/data/EmailTemplateStore.js.map +0 -1
- package/es/pages/EmailTemplate/data/hook.js.map +0 -1
- package/es/pages/EmailTemplate/data/index.js.map +0 -1
- package/es/pages/EmailTemplate/data/interfaces.js.map +0 -1
- package/es/pages/EmailTemplate/data/types.js.map +0 -1
- /package/es/{pages/EmailTemplate/data → data/email-template}/index.d.ts +0 -0
- /package/es/{pages/EmailTemplate/data → data/email-template}/index.js +0 -0
- /package/es/{pages/EmailTemplate/data → data/email-template}/interfaces.js +0 -0
- /package/es/{pages/EmailTemplate/data → data/email-template}/types.js +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/CodeMirror/index.d.ts +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/CodeMirror/index.js +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/CodeMirror/state.d.ts +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/CodeMirror/state.js +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/EmailTemplateDefaultView/index.d.ts +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/EmailTemplateDefaultView/index.js +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/EmailTemplateDefaultView/index.less +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/EmailTemplateForm/index.d.ts +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/EmailTemplateForm/index.js +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/EmailTemplateForm/index.less +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/EmailTemplateItem/index.d.ts +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/EmailTemplateItem/index.js +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/EmailTemplateItem/index.less +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/EmailTemplateItems/index.d.ts +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/EmailTemplateItems/index.js +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/EmailTemplateItems/index.less +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/EmailTemplateItems/state.d.ts +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/EmailTemplateItems/state.js +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/EmailTemplatePropertiesView/index.d.ts +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/EmailTemplatePropertiesView/index.js +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/EmailTemplatePropertiesView/index.less +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/EmailTemplateSelect/index.d.ts +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/EmailTemplateSelect/index.js +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/data/EmailTemplateStore.d.ts +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/data/EmailTemplateStore.js +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/data/hook.d.ts +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/data/hook.js +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/data/interfaces.d.ts +0 -0
- /package/es/{pages → obsolete}/EmailTemplate/data/types.d.ts +0 -0
package/es/Modules.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { ContainerMeta, FileTypeMeta, GraphMeta, LibraryMeta, PageMeta, ShortcutMeta, SignEnvelopeMeta, TextMeta, DocumentRegisterTypeMeta, } from "./data/metas";
|
|
2
|
+
import { EmailTemplateTypeMeta } from "./data/email-template/metas";
|
|
2
3
|
import { ActivityLogRenderService } from "@voplus/morpho-document-core/es/services/ActivityLogRenderService";
|
|
3
|
-
import DocumentActivityLogRenderer from "./services/DocumentActivityLogRenderer";
|
|
4
4
|
import { DocumentMetaStore } from "./data/DocumentMetaStore";
|
|
5
5
|
import { DocumentUIService } from "./DocumentUIService";
|
|
6
|
-
import Routes from "./routes";
|
|
7
|
-
import SignActivityLogRenderer from "./services/SignActivityLogRenderer";
|
|
8
6
|
import { UnitUIService } from "@voplus/morpho-org/es/UnitUIService";
|
|
7
|
+
import DocumentActivityLogRenderer from "./services/DocumentActivityLogRenderer";
|
|
8
|
+
import SignActivityLogRenderer from "./services/SignActivityLogRenderer";
|
|
9
|
+
import Routes from "./routes";
|
|
9
10
|
const Modules = {
|
|
10
11
|
/** Register necessary module resources. */
|
|
11
12
|
register: (context) => {
|
|
@@ -35,6 +36,7 @@ const Modules = {
|
|
|
35
36
|
metas.addMeta(new ContainerMeta(metas));
|
|
36
37
|
metas.addMeta(new SignEnvelopeMeta(metas));
|
|
37
38
|
metas.addMeta(new DocumentRegisterTypeMeta(metas));
|
|
39
|
+
metas.addMeta(new EmailTemplateTypeMeta());
|
|
38
40
|
// register routes.
|
|
39
41
|
Routes.addRoutes();
|
|
40
42
|
},
|
package/es/Modules.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modules.js","sourceRoot":"","sources":["../src/Modules.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EACb,YAAY,EACZ,SAAS,EACT,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,wBAAwB,GACxB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Modules.js","sourceRoot":"","sources":["../src/Modules.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EACb,YAAY,EACZ,SAAS,EACT,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,wBAAwB,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mEAAmE,CAAC;AAE7G,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,2BAA2B,MAAM,wCAAwC,CAAC;AACjF,OAAO,uBAAuB,MAAM,oCAAoC,CAAC;AACzE,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,MAAM,OAAO,GAAG;IACf,2CAA2C;IAC3C,QAAQ,EAAE,CAAC,OAAmB,EAAE,EAAE;QACjC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAC;YACrC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,SAAS,CAAsB,CAAC;QACnF,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5D,MAAM,EAAE,GAAG,IAAI,wBAAwB,CAAC,IAAI,2BAA2B,CAAC,KAAK,CAAC,CAAC,CAAC;YAChF,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrD,OAAO,CAAC,eAAe,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,OAAO,CAAC,eAAe,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,kBAAkB;QAClB,KAAK,CAAC,OAAO,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;QAClC,KAAK,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,KAAK,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACnC,KAAK,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,KAAK,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACnC,KAAK,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACpC,KAAK,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,KAAK,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,KAAK,CAAC,OAAO,CAAC,IAAI,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;QACnD,KAAK,CAAC,OAAO,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;QAE3C,mBAAmB;QACnB,MAAM,CAAC,SAAS,EAAE,CAAC;IACpB,CAAC;CACD,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DocumentStore, DocumentTypeStore, LoadDocumentListOptions, LoadDocumentOptions } from "@voplus/morpho-document-core";
|
|
2
|
+
import { ApiEndPoint } from "@voplus/api";
|
|
3
|
+
import { IEmailTemplate, CreateEmailTemplateOptions, EditEmailTemplateOptions } from ".";
|
|
4
|
+
export declare class EmailTemplateStore extends DocumentTypeStore<IEmailTemplate, LoadDocumentOptions, LoadDocumentListOptions, CreateEmailTemplateOptions, EditEmailTemplateOptions, any> {
|
|
5
|
+
/** Name of the store */
|
|
6
|
+
readonly name: string;
|
|
7
|
+
constructor(endpoint: ApiEndPoint, documents: DocumentStore);
|
|
8
|
+
}
|
|
9
|
+
/** 响应钩子检索 EmailTemplateStore */
|
|
10
|
+
export declare const useEmailTemplateStore: () => EmailTemplateStore;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { useService } from "@voplus/morpho-data";
|
|
2
|
+
import { DocumentTypeStore, useDocumentStore, } from "@voplus/morpho-document-core";
|
|
3
|
+
const StoreName = "EmailTemplateStore";
|
|
4
|
+
export class EmailTemplateStore extends DocumentTypeStore {
|
|
5
|
+
constructor(endpoint, documents) {
|
|
6
|
+
super(endpoint, "/api/emails/templates", documents);
|
|
7
|
+
/** Name of the store */
|
|
8
|
+
Object.defineProperty(this, "name", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
configurable: true,
|
|
11
|
+
writable: true,
|
|
12
|
+
value: StoreName
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/** 响应钩子检索 EmailTemplateStore */
|
|
17
|
+
export const useEmailTemplateStore = () => {
|
|
18
|
+
const documents = useDocumentStore();
|
|
19
|
+
return useService(StoreName, (context) => new EmailTemplateStore(context.api.currentEndPoint, documents));
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=EmailTemplateStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailTemplateStore.js","sourceRoot":"","sources":["../../../src/data/email-template/EmailTemplateStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAEN,iBAAiB,EAGjB,gBAAgB,GAChB,MAAM,8BAA8B,CAAC;AAItC,MAAM,SAAS,GAAG,oBAAoB,CAAC;AAEvC,MAAM,OAAO,kBAAmB,SAAQ,iBAOvC;IAIA,YAAmB,QAAqB,EAAE,SAAwB;QACjE,KAAK,CAAC,QAAQ,EAAE,uBAAuB,EAAE,SAAS,CAAC,CAAC;QAJrD,wBAAwB;QACR;;;;mBAAe,SAAS;WAAC;IAIzC,CAAC;CACD;AAED,gCAAgC;AAChC,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACzC,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IACrC,OAAO,UAAU,CAChB,SAAS,EACT,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,CAC3E,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { LoadDocumentListOptions, LoadDocumentOptions } from "@voplus/morpho-document-core";
|
|
2
|
+
import { IEmailTemplate } from ".";
|
|
3
|
+
import { ListDataContextState } from "@voplus/morpho-ui/es/data";
|
|
4
|
+
export declare const useEmailTemplate: (id: string, options?: LoadDocumentOptions) => IEmailTemplate;
|
|
5
|
+
export declare const useEmailTemplateListEffect: (list: ListDataContextState<IEmailTemplate> | null, effect: (list: IEmailTemplate[], total: number) => void | null, options?: LoadDocumentListOptions) => void;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { useDocumentListLoaderEffect, useDocumentStore, } from "@voplus/morpho-document-core";
|
|
2
|
+
import { useEmailTemplateStore } from ".";
|
|
3
|
+
import { useLoadCountedMapItem } from "@voplus/morpho-data";
|
|
4
|
+
export const useEmailTemplate = (id, options) => {
|
|
5
|
+
options = options ? options : {};
|
|
6
|
+
const store = useEmailTemplateStore();
|
|
7
|
+
const documents = useDocumentStore();
|
|
8
|
+
return useLoadCountedMapItem(id, documents.items, (calculatedOptions) => store.load(id, calculatedOptions), options);
|
|
9
|
+
};
|
|
10
|
+
export const useEmailTemplateListEffect = (list, effect, options) => {
|
|
11
|
+
const deps = options ? options : {};
|
|
12
|
+
const store = useEmailTemplateStore();
|
|
13
|
+
// Call useDocumentListEffect and ensure won't load twice for same loading options.
|
|
14
|
+
return useDocumentListLoaderEffect(list, effect, () => store.loadList(options), [deps]);
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=hook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../../src/data/email-template/hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,2BAA2B,EAC3B,gBAAgB,GAChB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAkB,MAAM,GAAG,CAAC;AAE1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAU,EAAE,OAA6B,EAAE,EAAE;IAC7E,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,EAA0B,CAAC;IAE1D,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IAErC,OAAO,qBAAqB,CAC3B,EAAE,EACF,SAAS,CAAC,KAAK,EACf,CAAC,iBAAiB,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,iBAAiB,CAAC,EACxD,OAAO,CACW,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACzC,IAAiD,EACjD,MAA8D,EAC9D,OAAiC,EAChC,EAAE;IACH,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,EAA8B,CAAC;IACjE,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC;IAEtC,mFAAmF;IACnF,OAAO,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACzF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/email-template/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,QAAQ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IDocument } from "@voplus/morpho-document-core";
|
|
2
|
+
/** Represent an activity log. */
|
|
3
|
+
export interface IEmailTemplate extends IDocument {
|
|
4
|
+
/** 是否 layout template */
|
|
5
|
+
isLayout: boolean;
|
|
6
|
+
/** template 的 预设 subject*/
|
|
7
|
+
subject?: string;
|
|
8
|
+
/** template 的 body 内容*/
|
|
9
|
+
body?: string;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/data/email-template/interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { IDocument, QuickViewProps } from "@voplus/morpho-document-core";
|
|
3
|
+
import { DefaultDocumentTypeMeta } from "../DocumentMetaStore";
|
|
4
|
+
/** Meta information for EmailTemplate document. */
|
|
5
|
+
export declare class EmailTemplateTypeMeta extends DefaultDocumentTypeMeta {
|
|
6
|
+
static TypeName: string;
|
|
7
|
+
get name(): string;
|
|
8
|
+
getIcon(document: IDocument): JSX.Element;
|
|
9
|
+
getPropertiesView(document: IDocument): JSX.Element;
|
|
10
|
+
getQuickView(document: IDocument, props: QuickViewProps): JSX.Element;
|
|
11
|
+
getDefaultView(props: {
|
|
12
|
+
id: string;
|
|
13
|
+
}): JSX.Element | null;
|
|
14
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import React, { lazy } from "react";
|
|
2
|
+
import { faCode } from "@fortawesome/pro-light-svg-icons";
|
|
3
|
+
import { DefaultDocumentTypeMeta } from "../DocumentMetaStore";
|
|
4
|
+
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
|
5
|
+
import { suspense } from "@voplus/morpho-ui/es/controls/Suspense";
|
|
6
|
+
const EmailTemplatePropertiesView = lazy(() => import("../../modules/email-template/components/EmailTemplatePropertiesView"));
|
|
7
|
+
const EmailTemplateQuickViewDialog = lazy(() => import("../../modules/email-template/components/EmailTemplateQuickViewDialog"));
|
|
8
|
+
const EmailTemplateDefaultView = lazy(() => import("../../modules/email-template/pages/EmailTemplateDefaultView"));
|
|
9
|
+
/** Meta information for EmailTemplate document. */
|
|
10
|
+
export class EmailTemplateTypeMeta extends DefaultDocumentTypeMeta {
|
|
11
|
+
get name() {
|
|
12
|
+
return EmailTemplateTypeMeta.TypeName;
|
|
13
|
+
}
|
|
14
|
+
getIcon(document) {
|
|
15
|
+
return React.createElement(FontAwesomeIcon, { icon: faCode });
|
|
16
|
+
}
|
|
17
|
+
getPropertiesView(document) {
|
|
18
|
+
return suspense(EmailTemplatePropertiesView)({ id: document.id });
|
|
19
|
+
}
|
|
20
|
+
getQuickView(document, props) {
|
|
21
|
+
props.id = document.id;
|
|
22
|
+
return suspense(EmailTemplateQuickViewDialog)({
|
|
23
|
+
id: document.id,
|
|
24
|
+
visible: props.visible,
|
|
25
|
+
onCancel: props.onCancel,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
getDefaultView(props) {
|
|
29
|
+
return suspense(EmailTemplateDefaultView)({ id: props.id });
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
Object.defineProperty(EmailTemplateTypeMeta, "TypeName", {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
configurable: true,
|
|
35
|
+
writable: true,
|
|
36
|
+
value: "EmailTemplate"
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=metas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metas.js","sourceRoot":"","sources":["../../../src/data/email-template/metas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAElE,MAAM,2BAA2B,GAAG,IAAI,CACvC,GAAG,EAAE,CAAC,MAAM,CAAC,qEAAqE,CAAC,CACnF,CAAC;AACF,MAAM,4BAA4B,GAAG,IAAI,CACxC,GAAG,EAAE,CAAC,MAAM,CAAC,sEAAsE,CAAC,CACpF,CAAC;AACF,MAAM,wBAAwB,GAAG,IAAI,CACpC,GAAG,EAAE,CAAC,MAAM,CAAC,6DAA6D,CAAC,CAC3E,CAAC;AAEF,mDAAmD;AACnD,MAAM,OAAO,qBAAsB,SAAQ,uBAAuB;IAGjE,IAAW,IAAI;QACd,OAAO,qBAAqB,CAAC,QAAQ,CAAC;IACvC,CAAC;IAEM,OAAO,CAAC,QAAmB;QACjC,OAAO,oBAAC,eAAe,IAAC,IAAI,EAAE,MAAM,GAAI,CAAC;IAC1C,CAAC;IAEM,iBAAiB,CAAC,QAAmB;QAC3C,OAAO,QAAQ,CAAC,2BAA2B,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IACnE,CAAC;IAEM,YAAY,CAAC,QAAmB,EAAE,KAAqB;QAC7D,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;QAEvB,OAAO,QAAQ,CAAC,4BAA4B,CAAC,CAAC;YAC7C,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACxB,CAAC,CAAC;IACJ,CAAC;IAEM,cAAc,CAAC,KAAqB;QAC1C,OAAO,QAAQ,CAAC,wBAAwB,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;;AA1Ba;;;;WAAW,eAAe;GAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CreateDocumentOptions } from "@voplus/morpho-document-core";
|
|
2
|
+
/** Custom create case options type. Use TitleEmailTemplate to fit server need. */
|
|
3
|
+
export type CreateEmailTemplateOptions = {
|
|
4
|
+
IsLayout: boolean;
|
|
5
|
+
Subject: string;
|
|
6
|
+
Body: string;
|
|
7
|
+
} & CreateDocumentOptions;
|
|
8
|
+
/**
|
|
9
|
+
* Custom edit case options type. Use TitleEmailTemplate to fit server need.
|
|
10
|
+
*/
|
|
11
|
+
export type EditEmailTemplateOptions = {
|
|
12
|
+
IsLayout?: boolean;
|
|
13
|
+
Subject?: string;
|
|
14
|
+
Body?: string;
|
|
15
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/data/email-template/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React, { Suspense, useEffect, useState } from "react";
|
|
2
|
+
import { javascript } from "@codemirror/lang-javascript";
|
|
3
|
+
import { Skeleton } from "antd";
|
|
4
|
+
import { State } from "./state";
|
|
5
|
+
import { observe } from "@voplus/morpho-ui";
|
|
6
|
+
import { materialLight } from "@uiw/codemirror-theme-material";
|
|
7
|
+
const Mirror = React.lazy(() => import("@uiw/react-codemirror"));
|
|
8
|
+
const CodeMirror = (props) => {
|
|
9
|
+
const { code, readOnly, onChange } = props;
|
|
10
|
+
const [state] = useState(new State());
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
state.update(props.code);
|
|
13
|
+
}, [props.code]);
|
|
14
|
+
return observe(() => (React.createElement(Suspense, { fallback: React.createElement(Skeleton, null) },
|
|
15
|
+
React.createElement(Mirror, { className: "email-template-code-mirror", value: code, readOnly: readOnly, theme: materialLight, extensions: [javascript({ jsx: true })], onChange: (value, viewUpdate) => {
|
|
16
|
+
state.update(value);
|
|
17
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(value);
|
|
18
|
+
} }))));
|
|
19
|
+
};
|
|
20
|
+
export default CodeMirror;
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/email-template/components/CodeMirror/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC;AAEjE,MAAM,UAAU,GAAG,CAAC,KAInB,EAAE,EAAE;IACJ,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAE3C,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IAEtC,SAAS,CAAC,GAAG,EAAE;QACd,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAEjB,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CACpB,oBAAC,QAAQ,IAAC,QAAQ,EAAE,oBAAC,QAAQ,OAAG;QAC/B,oBAAC,MAAM,IACN,SAAS,EAAC,4BAA4B,EACtC,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;gBAC/B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,KAAK,CAAC,CAAC;YACnB,CAAC,GACA,CACQ,CACX,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { action, makeObservable, observable } from "mobx";
|
|
3
|
+
export class State {
|
|
4
|
+
constructor() {
|
|
5
|
+
Object.defineProperty(this, "code", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
configurable: true,
|
|
8
|
+
writable: true,
|
|
9
|
+
value: void 0
|
|
10
|
+
});
|
|
11
|
+
Object.defineProperty(this, "update", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
configurable: true,
|
|
14
|
+
writable: true,
|
|
15
|
+
value: (code) => {
|
|
16
|
+
this.code = code;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
makeObservable(this);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
__decorate([
|
|
23
|
+
observable
|
|
24
|
+
], State.prototype, "code", void 0);
|
|
25
|
+
__decorate([
|
|
26
|
+
action
|
|
27
|
+
], State.prototype, "update", void 0);
|
|
28
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../../src/modules/email-template/components/CodeMirror/state.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAE1D,MAAM,OAAO,KAAK;IAGjB;QAFmB;;;;;WAAc;QAO1B;;;;mBAAS,CAAC,IAAa,EAAE,EAAE;gBACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YAClB,CAAC;WAAC;QAND,cAAc,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;CAMD;AAVmB;IAAlB,UAAU;mCAAsB;AAO1B;IADN,MAAM;qCAGL"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { observe } from "@voplus/morpho-ui";
|
|
3
|
+
import { Skeleton } from "antd";
|
|
4
|
+
import { useEmailTemplate } from "../../../../data/email-template";
|
|
5
|
+
import "./index.less";
|
|
6
|
+
const EmailTemplateContent = (props) => {
|
|
7
|
+
const emailTemplate = useEmailTemplate(props.id);
|
|
8
|
+
return observe(() => (React.createElement(Skeleton, { loading: !emailTemplate.loaded },
|
|
9
|
+
React.createElement("div", { className: "email-template-iframe-content" },
|
|
10
|
+
React.createElement("iframe", { srcDoc: emailTemplate.body })))));
|
|
11
|
+
};
|
|
12
|
+
export default EmailTemplateContent;
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/email-template/components/EmailTemplateContent/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,cAAc,CAAC;AAEtB,MAAM,oBAAoB,GAAG,CAAC,KAAqB,EAAE,EAAE;IACtD,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAEjD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CACpB,oBAAC,QAAQ,IAAC,OAAO,EAAE,CAAC,aAAa,CAAC,MAAM;QACvC,6BAAK,SAAS,EAAC,+BAA+B;YAC7C,gCAAQ,MAAM,EAAE,aAAa,CAAC,IAAI,GAAI,CACjC,CACI,CACX,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
:global {
|
|
2
|
+
.email-template-iframe-content {
|
|
3
|
+
width: 100%;
|
|
4
|
+
height: 100%;
|
|
5
|
+
position: relative;
|
|
6
|
+
overflow: hidden;
|
|
7
|
+
|
|
8
|
+
iframe {
|
|
9
|
+
width: 100%;
|
|
10
|
+
height: 100%;
|
|
11
|
+
border: none;
|
|
12
|
+
position: absolute;
|
|
13
|
+
right: -15px;
|
|
14
|
+
top: 0;
|
|
15
|
+
bottom: 0;
|
|
16
|
+
overflow-x: hidden;
|
|
17
|
+
overflow-y: scroll;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React, { useState } from "react";
|
|
2
|
+
import { useEmailTemplate } from "../../../../data/email-template";
|
|
3
|
+
import { useMetaStore } from "@voplus/morpho-document-core";
|
|
4
|
+
import { Open } from "../../../../controls/ToolBar/buttons";
|
|
5
|
+
import { observe } from "@voplus/morpho-ui";
|
|
6
|
+
import DocumentHeader from "../../../../components/DocumentHeader";
|
|
7
|
+
import ToolBar from "../../../../controls/ToolBar/ToolBar2";
|
|
8
|
+
import classnames from "classnames";
|
|
9
|
+
import styles from "./index.less";
|
|
10
|
+
const EmailTemplateItem = (props) => {
|
|
11
|
+
const { id } = props;
|
|
12
|
+
const meta = useMetaStore();
|
|
13
|
+
const data = useEmailTemplate(id);
|
|
14
|
+
const [hover, setHover] = useState(false);
|
|
15
|
+
return observe(() => {
|
|
16
|
+
var _a;
|
|
17
|
+
return (React.createElement(DocumentHeader, { id: data.id, clickNameEffect: "default", quickDataBarAlign: "left", tagsVisible: !!((_a = data.tags) === null || _a === void 0 ? void 0 : _a.length), className: styles["email-template-item"], onMouse: (over) => setHover(over), tools: React.createElement("div", { className: classnames("hover-operate-icon", { show: hover }) },
|
|
18
|
+
React.createElement(ToolBar, { id: id, moreProps: {
|
|
19
|
+
buttonProps: { size: "middle" },
|
|
20
|
+
} },
|
|
21
|
+
React.createElement(Open, { size: "middle", url: meta.getRoute(data) }))) }));
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
export default EmailTemplateItem;
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/email-template/components/EmailTemplateItem/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAExC,OAAO,EAAE,gBAAgB,EAAyB,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,cAAc,MAAM,uCAAuC,CAAC;AACnE,OAAO,OAAO,MAAM,uCAAuC,CAAC;AAC5D,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,MAAM,MAAM,cAAc,CAAC;AAElC,MAAM,iBAAiB,GAAG,CAAC,KAAqB,EAAE,EAAE;IACnD,MAAM,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;IAErB,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAElC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1C,OAAO,OAAO,CAAC,GAAG,EAAE;;QAAC,OAAA,CACpB,oBAAC,cAAc,IACd,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,eAAe,EAAC,SAAS,EACzB,iBAAiB,EAAC,MAAM,EACxB,WAAW,EAAE,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,CAAA,EAChC,SAAS,EAAE,MAAM,CAAC,qBAAqB,CAAC,EACxC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EACjC,KAAK,EACJ,6BAAK,SAAS,EAAE,UAAU,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBAChE,oBAAC,OAAO,IACP,EAAE,EAAE,EAAE,EACN,SAAS,EAAE;wBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC/B;oBAED,oBAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAI,CACvC,CACL,GAEN,CACF,CAAA;KAAA,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
.email-template-item {
|
|
2
|
+
position: relative;
|
|
3
|
+
align-items: center;
|
|
4
|
+
cursor: pointer;
|
|
5
|
+
background-color: transparent;
|
|
6
|
+
|
|
7
|
+
&:global(:after) {
|
|
8
|
+
position: absolute;
|
|
9
|
+
content: "";
|
|
10
|
+
left: 20px;
|
|
11
|
+
right: 20px;
|
|
12
|
+
bottom: 0;
|
|
13
|
+
border-bottom: 1px solid #f2f2f2;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
:global {
|
|
17
|
+
.hover-operate-icon {
|
|
18
|
+
display: none;
|
|
19
|
+
position: absolute;
|
|
20
|
+
right: 20px;
|
|
21
|
+
|
|
22
|
+
.ant-btn:first-child {
|
|
23
|
+
margin-left: 0;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&.show {
|
|
27
|
+
display: block;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { IEmailTemplate } from "../../../../data/email-template";
|
|
3
|
+
export type EmailTemplateListProps = {
|
|
4
|
+
parentId?: string;
|
|
5
|
+
viewTitle?: React.ReactNode;
|
|
6
|
+
total?: boolean;
|
|
7
|
+
addAble?: boolean;
|
|
8
|
+
/** 是否允在 listView 内部打开 aside */
|
|
9
|
+
asideable?: boolean;
|
|
10
|
+
/** New Form 打开的方式 */
|
|
11
|
+
openNewFormMode?: "openAside" | "openBottom" | "openDialog";
|
|
12
|
+
/** Call back when received total number of quotations. */
|
|
13
|
+
onTotal?: (total: number) => void;
|
|
14
|
+
/** Call back when an item has been clicked on the list. */
|
|
15
|
+
onClickItem?: (item: IEmailTemplate) => void;
|
|
16
|
+
};
|
|
17
|
+
declare const EmailTemplateList: {
|
|
18
|
+
(props: EmailTemplateListProps): React.JSX.Element;
|
|
19
|
+
defaultProps: {
|
|
20
|
+
viewTitle: string;
|
|
21
|
+
openNewFormMode: string;
|
|
22
|
+
addAble: boolean;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
export default EmailTemplateList;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import React, { useState } from "react";
|
|
2
|
+
import { useEmailTemplateListEffect } from "../../../../data/email-template";
|
|
3
|
+
import { ListDataContext, useCreateListDataState } from "@voplus/morpho-ui/es/data";
|
|
4
|
+
import { useAutoUpdateListData } from "@voplus/morpho-document-core";
|
|
5
|
+
import { observe } from "@voplus/morpho-ui";
|
|
6
|
+
import { useRenderOnChange } from "@voplus/morpho-ui";
|
|
7
|
+
import NewEmailTemplateForm from "../NewEmailTemplateForm";
|
|
8
|
+
import NewEmailTemplateFormDialog from "../NewEmailTemplateForm/NewEmailTemplateFormDialog";
|
|
9
|
+
import DocumentItemFrame from "../../../../controls/DocumentItemFrame";
|
|
10
|
+
import ListView from "@voplus/morpho-ui/es/components/layout/ListView/ListView2";
|
|
11
|
+
import EmailTemplateItem from "../EmailTemplateItem";
|
|
12
|
+
import styles from "./index.less";
|
|
13
|
+
const EmailTemplateList = (props) => {
|
|
14
|
+
const { addAble, viewTitle, openNewFormMode, asideable, parentId, total } = props;
|
|
15
|
+
const [activeId, setActiveId] = useState("");
|
|
16
|
+
const [addEmailTemplate, setAddEmailTemplate] = useState(false);
|
|
17
|
+
const [visible, setVisible] = useState(false);
|
|
18
|
+
const list = useCreateListDataState({
|
|
19
|
+
filterDefaults: {
|
|
20
|
+
filters: filters(),
|
|
21
|
+
},
|
|
22
|
+
}, [parentId]);
|
|
23
|
+
/** useOnNewDocument, useOnDeleteDocument的sugar syntax 自動更新list. */
|
|
24
|
+
useAutoUpdateListData(list, (d) => d.type === "EmailTemplate");
|
|
25
|
+
useRenderOnChange(() => list.filters.options);
|
|
26
|
+
/** 把ListDataState传给useEmailTemplateListEffect,使之可以自動更新loading, hasmore. */
|
|
27
|
+
useEmailTemplateListEffect(list, (result, total) => {
|
|
28
|
+
var _a;
|
|
29
|
+
list.union(result);
|
|
30
|
+
(_a = props.onTotal) === null || _a === void 0 ? void 0 : _a.call(props, total);
|
|
31
|
+
}, {
|
|
32
|
+
Total: true,
|
|
33
|
+
...list.filters.options,
|
|
34
|
+
});
|
|
35
|
+
return observe(() => (React.createElement(ListDataContext.Provider, { value: list },
|
|
36
|
+
React.createElement("div", { className: styles["email-template-list"] },
|
|
37
|
+
React.createElement(ListView, { headerProps: {
|
|
38
|
+
viewTitle: React.createElement("span", { className: "margin-right-10" }, viewTitle),
|
|
39
|
+
addAble: addAble,
|
|
40
|
+
sortable: false,
|
|
41
|
+
onAdd: onAdd,
|
|
42
|
+
quickSearch: true,
|
|
43
|
+
}, className: "email-template-list-content", asideable: asideable, formViewTitle: "Add EmailTemplate", formView: openNewFormMode === "openAside" && React.createElement(NewEmailTemplateForm, { showView: true }), renderItem: ({ item, connectDragSource }) => (React.createElement(DocumentItemFrame, { key: item.id, frameProps: { active: activeId === item.id }, onClick: () => {
|
|
44
|
+
var _a;
|
|
45
|
+
setActiveId(item.id);
|
|
46
|
+
(_a = props.onClickItem) === null || _a === void 0 ? void 0 : _a.call(props, item);
|
|
47
|
+
} },
|
|
48
|
+
React.createElement(EmailTemplateItem, { id: item.id }))) }),
|
|
49
|
+
addEmailTemplate && (React.createElement(NewEmailTemplateForm, { type: "mini", className: "new-form-bottom", parentId: props === null || props === void 0 ? void 0 : props.parentId, onCancel: () => setAddEmailTemplate(false), onSave: () => setAddEmailTemplate(false) })),
|
|
50
|
+
visible && (React.createElement(NewEmailTemplateFormDialog, { parentId: props === null || props === void 0 ? void 0 : props.parentId, onCancel: () => setVisible(false), onSave: () => setVisible(false) }))))));
|
|
51
|
+
function filters() {
|
|
52
|
+
const filter = [];
|
|
53
|
+
return filter;
|
|
54
|
+
}
|
|
55
|
+
function onAdd() {
|
|
56
|
+
if (openNewFormMode === "openBottom")
|
|
57
|
+
setAddEmailTemplate(true);
|
|
58
|
+
if (openNewFormMode === "openDialog")
|
|
59
|
+
setVisible(true);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
EmailTemplateList.defaultProps = {
|
|
63
|
+
viewTitle: "My EmailTemplate",
|
|
64
|
+
openNewFormMode: "openAside",
|
|
65
|
+
addAble: true,
|
|
66
|
+
};
|
|
67
|
+
export default EmailTemplateList;
|
|
68
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/email-template/components/EmailTemplateList/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { DocumentPropertiesName } from "../../../../components/DocumentProperties";
|
|
3
|
+
export type EmailTemplatePropertiesName = "Is Layout" | "Subject";
|
|
4
|
+
declare const EmailTemplateProperties: {
|
|
5
|
+
(props: {
|
|
6
|
+
id: string;
|
|
7
|
+
headerVisible?: boolean;
|
|
8
|
+
emailTemplateTitle?: string;
|
|
9
|
+
documentTitle?: string;
|
|
10
|
+
emailTemplateProperties?: {
|
|
11
|
+
name: EmailTemplatePropertiesName;
|
|
12
|
+
visible?: boolean;
|
|
13
|
+
}[];
|
|
14
|
+
documentProperties?: {
|
|
15
|
+
name: DocumentPropertiesName;
|
|
16
|
+
visible?: boolean;
|
|
17
|
+
}[];
|
|
18
|
+
}): React.JSX.Element;
|
|
19
|
+
defaultProps: {
|
|
20
|
+
emailTemplateTitle: string;
|
|
21
|
+
documentTitle: string;
|
|
22
|
+
emailTemplateProperties: {
|
|
23
|
+
name: string;
|
|
24
|
+
}[];
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export default EmailTemplateProperties;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Switch } from "antd";
|
|
3
|
+
import { observe, InlineEdit } from "@voplus/morpho-ui";
|
|
4
|
+
import { useEmailTemplate, useEmailTemplateStore } from "../../../../data/email-template";
|
|
5
|
+
import { Scrollbars } from "react-custom-scrollbars-2";
|
|
6
|
+
import Prop from "@voplus/morpho-ui/es/controls/Prop";
|
|
7
|
+
import DocumentProperties from "../../../../components/DocumentProperties";
|
|
8
|
+
import PropertiesSection from "@voplus/morpho-ui/es/controls/PropertiesSection";
|
|
9
|
+
import DocumentPanelHeader from "../../../../components/DocumentPanelHeader";
|
|
10
|
+
const EmailTemplateProperties = (props) => {
|
|
11
|
+
const { id, headerVisible, emailTemplateTitle, documentTitle, emailTemplateProperties, documentProperties, } = props;
|
|
12
|
+
const emailTemplate = useEmailTemplate(id);
|
|
13
|
+
const store = useEmailTemplateStore();
|
|
14
|
+
const filterPro = emailTemplateProperties === null || emailTemplateProperties === void 0 ? void 0 : emailTemplateProperties.filter((i) => (i === null || i === void 0 ? void 0 : i.visible) !== false);
|
|
15
|
+
/** 加class name 为了方便做integration tests */
|
|
16
|
+
const classId = "email-template-properties";
|
|
17
|
+
return observe(() => (React.createElement("div", { className: "properties-list" },
|
|
18
|
+
headerVisible && React.createElement(DocumentPanelHeader, { id: id }),
|
|
19
|
+
React.createElement(Scrollbars, { autoHide: true },
|
|
20
|
+
React.createElement(PropertiesSection, { title: emailTemplateTitle, properties: () => filterPro === null || filterPro === void 0 ? void 0 : filterPro.map((i) => (React.createElement(Prop, { key: i.name, label: i.name, className: `${classId}-${i.name}` }, renderProp(i)))) }),
|
|
21
|
+
React.createElement(DocumentProperties, { id: id, title: documentTitle, customProperties: documentProperties })))));
|
|
22
|
+
function renderProp(item) {
|
|
23
|
+
switch (item.name) {
|
|
24
|
+
case "Is Layout":
|
|
25
|
+
return (React.createElement(Switch, { checked: emailTemplate.isLayout, onChange: async (checked) => await store.edit(id, { data: { IsLayout: checked }, error: "message" }) }));
|
|
26
|
+
case "Subject":
|
|
27
|
+
return (React.createElement(InlineEdit, { defaultValue: emailTemplate.subject, content: (v) => v.store.value ? (React.createElement("span", { className: "properties-value" }, v.store.value)) : (React.createElement("span", { className: "add-info-style" }, "Add Subject")), onSave: async (value) => {
|
|
28
|
+
await store.edit(id, { data: { Subject: value }, error: "message" });
|
|
29
|
+
} }));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
EmailTemplateProperties.defaultProps = {
|
|
34
|
+
emailTemplateTitle: "EmailTemplate Properties",
|
|
35
|
+
documentTitle: "Document Properties",
|
|
36
|
+
emailTemplateProperties: [{ name: "Is Layout" }, { name: "Subject" }],
|
|
37
|
+
};
|
|
38
|
+
export default EmailTemplateProperties;
|
|
39
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/email-template/components/EmailTemplateProperties/index.tsx"],"names":[],"mappings":"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"}
|