@voplus/morpho-csp 10.0.15 → 10.0.17
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/data/filing-record/interfaces.d.ts +2 -0
- package/es/data/filing-type/FilingTypeStore.d.ts +27 -2
- package/es/data/filing-type/FilingTypeStore.js +63 -5
- package/es/data/filing-type/FilingTypeStore.js.map +1 -1
- package/es/data/filing-type/interfaces.d.ts +2 -0
- package/es/data/filing-type/types.d.ts +6 -0
- package/es/modules/corporate/company/components/CorporateItem/index.js +6 -6
- package/es/modules/corporate/company/components/CorporateItem/index.js.map +1 -1
- package/es/modules/corporate/company/controller-register/controls/ControllerStatusLabel/ControllerStatusLabel2.js +1 -1
- package/es/modules/corporate/company/controller-register/controls/ControllerStatusLabel/ControllerStatusLabel2.js.map +1 -1
- package/es/modules/corporate/company/member-register/controls/MemberStatusLabel/MemberStatusLabel2.js +2 -2
- package/es/modules/corporate/company/member-register/controls/MemberStatusLabel/MemberStatusLabel2.js.map +1 -1
- package/es/modules/corporate/filing-record/filing-type/components/FilingTypeReminderScheduleList/index.d.ts +6 -0
- package/es/modules/corporate/filing-record/filing-type/components/FilingTypeReminderScheduleList/index.js +91 -0
- package/es/modules/corporate/filing-record/filing-type/components/FilingTypeReminderScheduleList/index.js.map +1 -0
- package/es/modules/corporate/filing-record/filing-type/components/FilingTypeReminderTab/index.d.ts +5 -0
- package/es/modules/corporate/filing-record/filing-type/components/FilingTypeReminderTab/index.js +93 -0
- package/es/modules/corporate/filing-record/filing-type/components/FilingTypeReminderTab/index.js.map +1 -0
- package/es/modules/corporate/filing-record/filing-type/components/FilingTypeTabs/index.js +9 -6
- package/es/modules/corporate/filing-record/filing-type/components/FilingTypeTabs/index.js.map +1 -1
- package/es/modules/corporate/filing-record/filing-type/components/ReminderActionForm/index.d.ts +18 -0
- package/es/modules/corporate/filing-record/filing-type/components/ReminderActionForm/index.js +72 -0
- package/es/modules/corporate/filing-record/filing-type/components/ReminderActionForm/index.js.map +1 -0
- package/es/modules/corporate/virtual-address-mail/components/VirtualAddressMailItem/index.js +2 -2
- package/es/modules/corporate/virtual-address-mail/components/VirtualAddressMailItem/index.js.map +1 -1
- package/package.json +1 -1
- package/es/components/StatusLabel/index.d.ts +0 -36
- package/es/components/StatusLabel/index.js +0 -16
- package/es/components/StatusLabel/index.js.map +0 -1
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
import { ApiEndPoint } from "@voplus/api";
|
|
2
|
-
import { CountedMap, Store } from "@voplus/morpho-data";
|
|
2
|
+
import { CountedMap, Store, StoreActionOptions } from "@voplus/morpho-data";
|
|
3
|
+
import { ActionPlanStore } from "@voplus/morpho-document/es/data/action-plan";
|
|
3
4
|
import { CreateFilingTypeOptions, DeleteFilingTypeOptions, EditFilingTypeOptions, LoadFilingTypeOptions } from "./types";
|
|
4
5
|
import { IFilingType } from "./interfaces";
|
|
5
6
|
import { LoadDocumentListOptions } from "@voplus/morpho-document-core";
|
|
6
7
|
/** Quotation store supply backend functions. */
|
|
7
8
|
export declare class FilingTypeStore extends Store {
|
|
8
9
|
readonly endpoint: ApiEndPoint;
|
|
10
|
+
private readonly actionPlanStore;
|
|
9
11
|
/** Name of the store */
|
|
10
12
|
readonly name: string;
|
|
11
13
|
private readonly _filingTypeDeleted;
|
|
12
14
|
private readonly _filingTypeCreated;
|
|
13
|
-
constructor(endpoint: ApiEndPoint);
|
|
15
|
+
constructor(endpoint: ApiEndPoint, actionPlanStore: ActionPlanStore);
|
|
16
|
+
/**
|
|
17
|
+
* Splits an inline {@link IActionPlan} out of a FilingType response (server emits it on
|
|
18
|
+
* Create-action-plan and Edit-with-ActionChanges via the IncludeOption("actionPlan") flag)
|
|
19
|
+
* and overwrites the ActionPlanStore cache so observers using `useActionPlan(planId)`
|
|
20
|
+
* re-render with the fresh data in the same round-trip.
|
|
21
|
+
*/
|
|
22
|
+
private applyResponse;
|
|
14
23
|
/** All currently used corporate. */
|
|
15
24
|
readonly items: CountedMap<string, IFilingType>;
|
|
16
25
|
/** Event fires when a delete filingType has been deleted. */
|
|
@@ -28,6 +37,22 @@ export declare class FilingTypeStore extends Store {
|
|
|
28
37
|
*/
|
|
29
38
|
loadList(options?: LoadDocumentListOptions): Promise<IFilingType[]>;
|
|
30
39
|
load(id: string, options: LoadFilingTypeOptions): Promise<IFilingType>;
|
|
40
|
+
/**
|
|
41
|
+
* Creates the filing type's single reminder action plan. The server returns the updated
|
|
42
|
+
* filing type view (now carrying actionPlanId) plus the freshly-created action plan inline
|
|
43
|
+
* (server-side IncludeOption("actionPlan")), so we update both caches in one round-trip.
|
|
44
|
+
*/
|
|
45
|
+
createActionPlan(id: string, options?: StoreActionOptions): Promise<string | undefined>;
|
|
46
|
+
/**
|
|
47
|
+
* Deletes the filing type's reminder action plan template (spec:2405). The filing type itself
|
|
48
|
+
* stays. The server throws if any other plan still references this template (e.g., a derived
|
|
49
|
+
* plan on an existing filing of this type) — that throw surfaces here as an ApiError so the
|
|
50
|
+
* caller can show an error toast.
|
|
51
|
+
*
|
|
52
|
+
* On success the FilingType cache entry's actionPlanId is explicitly cleared to undefined,
|
|
53
|
+
* because CountedMap.overwrite merges and won't reset a field that's missing from the response.
|
|
54
|
+
*/
|
|
55
|
+
deleteActionPlan(id: string, options?: StoreActionOptions): Promise<void>;
|
|
31
56
|
}
|
|
32
57
|
/** 响应钩子检索 IdentityStore */
|
|
33
58
|
export declare const useFilingTypeStore: () => FilingTypeStore;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { RequestBuilder } from "@voplus/api";
|
|
2
2
|
import { CountedMap, Store, useApplicationContext } from "@voplus/morpho-data";
|
|
3
|
-
import {
|
|
3
|
+
import { useActionPlanStore, } from "@voplus/morpho-document/es/data/action-plan";
|
|
4
|
+
import { observable, runInAction } from "mobx";
|
|
4
5
|
import { EventDispatcher } from "strongly-typed-events";
|
|
5
6
|
const StoreName = "FilingTypeStore";
|
|
6
7
|
/** Quotation store supply backend functions. */
|
|
7
8
|
export class FilingTypeStore extends Store {
|
|
8
|
-
constructor(endpoint) {
|
|
9
|
+
constructor(endpoint, actionPlanStore) {
|
|
9
10
|
super();
|
|
10
11
|
Object.defineProperty(this, "endpoint", {
|
|
11
12
|
enumerable: true,
|
|
@@ -13,6 +14,12 @@ export class FilingTypeStore extends Store {
|
|
|
13
14
|
writable: true,
|
|
14
15
|
value: endpoint
|
|
15
16
|
});
|
|
17
|
+
Object.defineProperty(this, "actionPlanStore", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
configurable: true,
|
|
20
|
+
writable: true,
|
|
21
|
+
value: actionPlanStore
|
|
22
|
+
});
|
|
16
23
|
/** Name of the store */
|
|
17
24
|
Object.defineProperty(this, "name", {
|
|
18
25
|
enumerable: true,
|
|
@@ -40,6 +47,21 @@ export class FilingTypeStore extends Store {
|
|
|
40
47
|
value: new CountedMap((key) => ({ id: key, loaded: false }), observable.map([], { deep: true }))
|
|
41
48
|
});
|
|
42
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Splits an inline {@link IActionPlan} out of a FilingType response (server emits it on
|
|
52
|
+
* Create-action-plan and Edit-with-ActionChanges via the IncludeOption("actionPlan") flag)
|
|
53
|
+
* and overwrites the ActionPlanStore cache so observers using `useActionPlan(planId)`
|
|
54
|
+
* re-render with the fresh data in the same round-trip.
|
|
55
|
+
*/
|
|
56
|
+
applyResponse(t) {
|
|
57
|
+
const { actionPlan, ...filingType } = t;
|
|
58
|
+
runInAction(() => {
|
|
59
|
+
this.items.overwrite(filingType.id, filingType);
|
|
60
|
+
if (actionPlan && actionPlan.id) {
|
|
61
|
+
this.actionPlanStore.items.overwrite(actionPlan.id, actionPlan);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
43
65
|
/** Event fires when a delete filingType has been deleted. */
|
|
44
66
|
get FilingTypeDeletedEvent() {
|
|
45
67
|
return this._filingTypeDeleted.asEvent();
|
|
@@ -62,8 +84,8 @@ export class FilingTypeStore extends Store {
|
|
|
62
84
|
async edit(id, options) {
|
|
63
85
|
await this.action(async () => {
|
|
64
86
|
const r = await this.endpoint.post(`/api/csp/filing-types/${id}`, new RequestBuilder().json(options.data));
|
|
65
|
-
const t = await r.json();
|
|
66
|
-
this.
|
|
87
|
+
const t = (await r.json());
|
|
88
|
+
this.applyResponse(t);
|
|
67
89
|
}, options);
|
|
68
90
|
}
|
|
69
91
|
/** filingType 內有文件不能delete */
|
|
@@ -103,12 +125,48 @@ export class FilingTypeStore extends Store {
|
|
|
103
125
|
const r = await this.endpoint.get(`/api/csp/filing-types/${id}${query}`);
|
|
104
126
|
return await r.json();
|
|
105
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* Creates the filing type's single reminder action plan. The server returns the updated
|
|
130
|
+
* filing type view (now carrying actionPlanId) plus the freshly-created action plan inline
|
|
131
|
+
* (server-side IncludeOption("actionPlan")), so we update both caches in one round-trip.
|
|
132
|
+
*/
|
|
133
|
+
async createActionPlan(id, options) {
|
|
134
|
+
return await this.action(async () => {
|
|
135
|
+
const r = await this.endpoint.post(`/api/csp/filing-types/${id}/action-plan`);
|
|
136
|
+
const updated = (await r.json());
|
|
137
|
+
this.applyResponse(updated);
|
|
138
|
+
return updated.actionPlanId;
|
|
139
|
+
}, options !== null && options !== void 0 ? options : {});
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Deletes the filing type's reminder action plan template (spec:2405). The filing type itself
|
|
143
|
+
* stays. The server throws if any other plan still references this template (e.g., a derived
|
|
144
|
+
* plan on an existing filing of this type) — that throw surfaces here as an ApiError so the
|
|
145
|
+
* caller can show an error toast.
|
|
146
|
+
*
|
|
147
|
+
* On success the FilingType cache entry's actionPlanId is explicitly cleared to undefined,
|
|
148
|
+
* because CountedMap.overwrite merges and won't reset a field that's missing from the response.
|
|
149
|
+
*/
|
|
150
|
+
async deleteActionPlan(id, options) {
|
|
151
|
+
return await this.action(async () => {
|
|
152
|
+
await this.endpoint.delete(`/api/csp/filing-types/${id}/action-plan`);
|
|
153
|
+
runInAction(() => {
|
|
154
|
+
if (this.items.has(id)) {
|
|
155
|
+
const cached = this.items.peek(id);
|
|
156
|
+
cached.actionPlanId = undefined;
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
}, options !== null && options !== void 0 ? options : {});
|
|
160
|
+
}
|
|
106
161
|
}
|
|
107
162
|
/** 响应钩子检索 IdentityStore */
|
|
108
163
|
export const useFilingTypeStore = () => {
|
|
109
164
|
const context = useApplicationContext();
|
|
165
|
+
// ActionPlanStore must be initialised first — FilingTypeStore depends on it for cross-cache
|
|
166
|
+
// updates when an edit response carries the inline action plan.
|
|
167
|
+
const actionPlanStore = useActionPlanStore();
|
|
110
168
|
if (!context.getStore(StoreName)) {
|
|
111
|
-
context.addStore(new FilingTypeStore(context.api.currentEndPoint));
|
|
169
|
+
context.addStore(new FilingTypeStore(context.api.currentEndPoint, actionPlanStore));
|
|
112
170
|
}
|
|
113
171
|
return context.getStore(StoreName);
|
|
114
172
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilingTypeStore.js","sourceRoot":"","sources":["../../../src/data/filing-type/FilingTypeStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"FilingTypeStore.js","sourceRoot":"","sources":["../../../src/data/filing-type/FilingTypeStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { LoadOptions, StoreActionOptions } from "@voplus/morpho-data";
|
|
2
2
|
import { DeleteDocumentOptions } from "@voplus/morpho-document-core";
|
|
3
|
+
import { ActionEditOptions } from "@voplus/morpho-document/es/data/action-plan";
|
|
3
4
|
import { IFilingType } from "./interfaces";
|
|
4
5
|
import dayjs from "dayjs";
|
|
5
6
|
/** Custom load org contact options type */
|
|
@@ -28,6 +29,11 @@ export type FilingTypeEditOptions = {
|
|
|
28
29
|
FixedDate?: dayjs.Dayjs | string;
|
|
29
30
|
MonthOffset?: number;
|
|
30
31
|
FixedOffset?: FilingFixedOffset;
|
|
32
|
+
/**
|
|
33
|
+
* Reminder-plan action edits routed through FilingType.EditAsync. Spec:1492 auto-creates
|
|
34
|
+
* the plan if missing; spec:2353 backfills the changes onto open filing records.
|
|
35
|
+
*/
|
|
36
|
+
ActionChanges?: ActionEditOptions[];
|
|
31
37
|
};
|
|
32
38
|
export type CreateFilingTypeOptions = {
|
|
33
39
|
data: FilingTypeCreateOptions;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import React, { useState } from "react";
|
|
2
|
+
import { Skeleton } from "antd";
|
|
2
3
|
import { observe } from "@voplus/morpho-ui";
|
|
3
4
|
import { useCorporate } from "../../../../../data/corporate";
|
|
4
|
-
import { ColumnItem, ColumnItemCol } from "@voplus/morpho-ui/es/controls/ColumnItem";
|
|
5
|
-
import { Skeleton } from "antd";
|
|
6
5
|
import { Open } from "@voplus/morpho-document-core/es/controls/ToolBar/buttons";
|
|
7
|
-
import
|
|
8
|
-
import CorporateMenu from "../../controls/CorporateMenu";
|
|
9
|
-
import CorporatePropertiesView from "../CorporatePropertiesView";
|
|
6
|
+
import { ColumnItem, ColumnItemCol } from "@voplus/morpho-ui/es/controls/ColumnItem";
|
|
10
7
|
import ListItemController from "@voplus/morpho-document-core/es/controls/ListItemController";
|
|
11
|
-
import UTCShortDate from "@voplus/morpho-ui/es/controls/UTCShortDate";
|
|
12
8
|
import UnitAvatar from "@voplus/morpho-org/es/components/UnitAvatar/LoadedUnitAvatar";
|
|
13
9
|
import StatusLabel from "@voplus/morpho-ui/es/controls/DocumentStatusLabel/StatusLabel";
|
|
10
|
+
import ToolBar from "@voplus/morpho-document-core/es/controls/ToolBar";
|
|
11
|
+
import UTCShortDate from "@voplus/morpho-ui/es/controls/UTCShortDate";
|
|
12
|
+
import CorporatePropertiesView from "../CorporatePropertiesView";
|
|
13
|
+
import CorporateMenu from "../../controls/CorporateMenu";
|
|
14
14
|
import classnames from "classnames";
|
|
15
15
|
import "./index.css";
|
|
16
16
|
// spec:1845 — CSP: Corporate row status badge color depends on corporate status
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/modules/corporate/company/components/CorporateItem/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/modules/corporate/company/components/CorporateItem/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import StatusLabel from "../../../../../../components/StatusLabel";
|
|
3
2
|
import { observe } from "@voplus/morpho-ui";
|
|
3
|
+
import StatusLabel from "@voplus/morpho-ui/es/controls/StatusLabel";
|
|
4
4
|
const ControllerStatusLabel = (props) => {
|
|
5
5
|
const { status, className } = props;
|
|
6
6
|
return observe(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControllerStatusLabel2.js","sourceRoot":"","sources":["../../../../../../../src/modules/corporate/company/controller-register/controls/ControllerStatusLabel/ControllerStatusLabel2.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"ControllerStatusLabel2.js","sourceRoot":"","sources":["../../../../../../../src/modules/corporate/company/controller-register/controls/ControllerStatusLabel/ControllerStatusLabel2.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,WAAW,MAAM,2CAA2C,CAAC;AAEpE,MAAM,qBAAqB,GAAG,CAAC,KAA8C,EAAE,EAAE;IAChF,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAEpC,OAAO,OAAO,CAAC,GAAG,EAAE;QACnB,MAAM,SAAS,GAAG,GAAG,EAAE;YACtB,QAAQ,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;gBACrC,KAAK,qBAAqB;oBACzB,OAAO,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC;gBAClF,KAAK,wBAAwB;oBAC5B,OAAO,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;gBACxE,KAAK,cAAc;oBAClB,OAAO,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC;gBAClF,KAAK,aAAa,CAAC;gBACnB;oBACC,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC;YAC3E,CAAC;QACF,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAE3B,MAAM,IAAI,GACT,MAAM,KAAK,wBAAwB;YAClC,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,MAAM,KAAK,qBAAqB;gBACjC,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,MAAM,CAAC;QAEZ,OAAO,oBAAC,WAAW,IAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAI,CAAC;IAC1F,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import "./index.css";
|
|
3
|
-
import StatusLabel from "../../../../../../components/StatusLabel";
|
|
4
2
|
import { observe } from "@voplus/morpho-ui";
|
|
3
|
+
import StatusLabel from "@voplus/morpho-ui/es/controls/StatusLabel";
|
|
4
|
+
import "./index.css";
|
|
5
5
|
const MemberStatusLabel = (props) => {
|
|
6
6
|
const { status, className } = props;
|
|
7
7
|
return observe(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemberStatusLabel2.js","sourceRoot":"","sources":["../../../../../../../src/modules/corporate/company/member-register/controls/MemberStatusLabel/MemberStatusLabel2.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"MemberStatusLabel2.js","sourceRoot":"","sources":["../../../../../../../src/modules/corporate/company/member-register/controls/MemberStatusLabel/MemberStatusLabel2.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,WAAW,MAAM,2CAA2C,CAAC;AACpE,OAAO,aAAa,CAAC;AAErB,MAAM,iBAAiB,GAAG,CAAC,KAA8C,EAAE,EAAE;IAC5E,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAEpC,OAAO,OAAO,CAAC,GAAG,EAAE;QACnB,MAAM,SAAS,GAAG,GAAG,EAAE;YACtB,QAAQ,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;gBACrC,KAAK,QAAQ;oBACZ,OAAO,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC;gBAClF,KAAK,cAAc;oBAClB,OAAO,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC;gBAClF;oBACC,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC;YAC3E,CAAC;QACF,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAE3B,OAAO,oBAAC,WAAW,IAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAI,CAAC;IAC9E,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import React, { useState } from "react";
|
|
2
|
+
import { Modal, Skeleton, Tooltip, message } from "antd";
|
|
3
|
+
import { observe } from "@voplus/morpho-ui";
|
|
4
|
+
import { faPenSolid, faTrashXmarkRegular, FontAwesomeIcon as FAIcon, } from "@voplus/morpho-ui/es/faIcons";
|
|
5
|
+
import DocumentReference from "@voplus/morpho-document/es/controls/DocumentReference";
|
|
6
|
+
import { useActionPlan, } from "@voplus/morpho-document/es/data/action-plan";
|
|
7
|
+
import { useFilingTypeStore } from "../../../../../../data/filing-type";
|
|
8
|
+
import ReminderActionForm from "../ReminderActionForm";
|
|
9
|
+
// spec:2356 — CSP: Filing type's Reminders tab — schedule list with Option-C row layout
|
|
10
|
+
// spec:2353 — CSP: Configuring a filing type's reminders backfills reminder plans onto its open filing records
|
|
11
|
+
// (reachable via this UI because saves route through filingTypeStore.edit → FilingType.EditAsync)
|
|
12
|
+
const FilingTypeReminderScheduleList = (props) => {
|
|
13
|
+
const { filingTypeId, planId } = props;
|
|
14
|
+
const plan = useActionPlan(planId);
|
|
15
|
+
const filingTypeStore = useFilingTypeStore();
|
|
16
|
+
const [adding, setAdding] = useState(false);
|
|
17
|
+
const [editingAction, setEditingAction] = useState(null);
|
|
18
|
+
// FilingTypeStore.edit/createActionPlan also overwrite the ActionPlanStore cache
|
|
19
|
+
// from the inline `actionPlan` field on the response (spec:2348/2353 contract),
|
|
20
|
+
// so this list refreshes via useActionPlan(planId) automatically.
|
|
21
|
+
const saveChanges = async (changes) => {
|
|
22
|
+
var _a;
|
|
23
|
+
try {
|
|
24
|
+
await filingTypeStore.edit(filingTypeId, {
|
|
25
|
+
data: { ActionChanges: changes },
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
message.error((_a = err === null || err === void 0 ? void 0 : err.message) !== null && _a !== void 0 ? _a : "Failed to update reminder");
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
const handleDelete = (action) => {
|
|
33
|
+
Modal.confirm({
|
|
34
|
+
title: "Delete reminder",
|
|
35
|
+
content: "Open filings using this filing type will stop receiving this reminder. Continue?",
|
|
36
|
+
okText: "Delete",
|
|
37
|
+
okButtonProps: { danger: true },
|
|
38
|
+
cancelText: "Cancel",
|
|
39
|
+
onOk: () => saveChanges([{ Operation: "Delete", Id: action.id }]),
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
return observe(() => {
|
|
43
|
+
var _a;
|
|
44
|
+
return (React.createElement(Skeleton, { loading: !plan.loaded, active: true },
|
|
45
|
+
React.createElement("div", { className: "flex flex-col gap-sm" },
|
|
46
|
+
((_a = plan.actions) !== null && _a !== void 0 ? _a : []).length === 0 ? (React.createElement("div", { className: "flex flex-col items-center justify-center p-lg gap-sm text-font-grey" },
|
|
47
|
+
React.createElement("span", { className: "text-sm" }, "No reminders set up yet."))) : (React.createElement("div", { className: "flex flex-col" }, plan.actions.map((action) => (React.createElement(ReminderRow, { key: action.id, action: action, onEdit: () => setEditingAction(action), onDelete: () => handleDelete(action) }))))),
|
|
48
|
+
React.createElement("button", { type: "button", onClick: () => setAdding(true), className: "flex items-center justify-center gap-sm p-md mt-sm bg-transparent border border-dashed border-border rounded text-font-secondary text-sm font-medium hover:bg-bg-blue hover:border-font-secondary cursor-pointer" }, "\uFF0B Add reminder")),
|
|
49
|
+
adding && (React.createElement(ReminderActionForm, { onCancel: () => setAdding(false), onOk: async (data) => {
|
|
50
|
+
setAdding(false);
|
|
51
|
+
await saveChanges([data]);
|
|
52
|
+
} })),
|
|
53
|
+
editingAction && (React.createElement(ReminderActionForm, { action: editingAction, onCancel: () => setEditingAction(null), onOk: async (data) => {
|
|
54
|
+
setEditingAction(null);
|
|
55
|
+
await saveChanges([data]);
|
|
56
|
+
} }))));
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
const formatOffset = (offset) => {
|
|
60
|
+
if (offset === undefined || offset === null)
|
|
61
|
+
return { num: "?", unit: "no offset set" };
|
|
62
|
+
if (offset === 0)
|
|
63
|
+
return { num: "0", unit: "on due date" };
|
|
64
|
+
const abs = Math.abs(offset);
|
|
65
|
+
const days = abs === 1 ? "day" : "days";
|
|
66
|
+
return { num: String(abs), unit: `${days} ${offset < 0 ? "before" : "after"} due date` };
|
|
67
|
+
};
|
|
68
|
+
const humanizeType = (type) => type.replace(/([A-Z])/g, " $1").trim();
|
|
69
|
+
const ReminderRow = (props) => {
|
|
70
|
+
var _a, _b;
|
|
71
|
+
const { action, onEdit, onDelete } = props;
|
|
72
|
+
const [hover, setHover] = useState(false);
|
|
73
|
+
const { num, unit } = formatOffset(action.offset);
|
|
74
|
+
return (React.createElement("div", { onMouseEnter: () => setHover(true), onMouseLeave: () => setHover(false), className: "grid grid-cols-[110px_1fr_auto] items-center gap-md py-sm px-sm border-b border-border last:border-b-0 hover:bg-bg-blue rounded transition-colors" },
|
|
75
|
+
React.createElement("div", { className: "flex items-baseline gap-1" },
|
|
76
|
+
React.createElement("span", { className: "text-xl font-semibold text-font-primary leading-none" }, num),
|
|
77
|
+
React.createElement("span", { className: "text-xs text-font-grey" }, unit)),
|
|
78
|
+
React.createElement("div", { className: "flex flex-col min-w-0" },
|
|
79
|
+
React.createElement("span", { className: "text-sm text-font-primary truncate" }, humanizeType(action.type)),
|
|
80
|
+
((_b = (_a = action.data) === null || _a === void 0 ? void 0 : _a.template) === null || _b === void 0 ? void 0 : _b.key) && (React.createElement("span", { className: "text-xs text-font-grey truncate" },
|
|
81
|
+
React.createElement(DocumentReference, { id: action.data.template.key, type: "link" })))),
|
|
82
|
+
React.createElement("div", { className: `flex items-center gap-xs ${hover ? "opacity-100" : "opacity-0"} transition-opacity` },
|
|
83
|
+
React.createElement(Tooltip, { title: "Edit" },
|
|
84
|
+
React.createElement("button", { type: "button", "aria-label": "Edit reminder", onClick: onEdit, className: "w-7 h-7 inline-flex items-center justify-center border border-border bg-bg-white rounded text-font-grey hover:text-font-secondary hover:border-font-secondary cursor-pointer" },
|
|
85
|
+
React.createElement(FAIcon, { icon: faPenSolid }))),
|
|
86
|
+
React.createElement(Tooltip, { title: "Delete" },
|
|
87
|
+
React.createElement("button", { type: "button", "aria-label": "Delete reminder", onClick: onDelete, className: "w-7 h-7 inline-flex items-center justify-center border border-border bg-bg-white rounded text-font-grey hover:text-danger hover:border-danger cursor-pointer" },
|
|
88
|
+
React.createElement(FAIcon, { icon: faTrashXmarkRegular }))))));
|
|
89
|
+
};
|
|
90
|
+
export default FilingTypeReminderScheduleList;
|
|
91
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/modules/corporate/filing-record/filing-type/components/FilingTypeReminderScheduleList/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACN,UAAU,EACV,mBAAmB,EACnB,eAAe,IAAI,MAAM,GACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,iBAAiB,MAAM,uDAAuD,CAAC;AACtF,OAAO,EACN,aAAa,GAGb,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AAEvD,wFAAwF;AACxF,+GAA+G;AAC/G,oGAAoG;AACpG,MAAM,8BAA8B,GAAG,CAAC,KAGvC,EAAE,EAAE;IACJ,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACvC,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAE7C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAiB,IAAI,CAAC,CAAC;IAEzE,iFAAiF;IACjF,gFAAgF;IAChF,kEAAkE;IAClE,MAAM,WAAW,GAAG,KAAK,EAAE,OAA4B,EAAE,EAAE;;QAC1D,IAAI,CAAC;YACJ,MAAM,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE;gBACxC,IAAI,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE;aAChC,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CAAC,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,mCAAI,2BAA2B,CAAC,CAAC;QAC5D,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,MAAe,EAAE,EAAE;QACxC,KAAK,CAAC,OAAO,CAAC;YACb,KAAK,EAAE,iBAAiB;YACxB,OAAO,EAAE,kFAAkF;YAC3F,MAAM,EAAE,QAAQ;YAChB,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YAC/B,UAAU,EAAE,QAAQ;YACpB,IAAI,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;SACjE,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,OAAO,CAAC,GAAG,EAAE;;QAAC,OAAA,CACpB,oBAAC,QAAQ,IAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM;YACtC,6BAAK,SAAS,EAAC,sBAAsB;gBACnC,CAAC,MAAA,IAAI,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACpC,6BAAK,SAAS,EAAC,sEAAsE;oBACpF,8BAAM,SAAS,EAAC,SAAS,+BAAgC,CACpD,CACN,CAAC,CAAC,CAAC,CACH,6BAAK,SAAS,EAAC,eAAe,IAC5B,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC9B,oBAAC,WAAW,IACX,GAAG,EAAE,MAAM,CAAC,EAAE,EACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,EACtC,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,GACnC,CACF,CAAC,CACG,CACN;gBAED,gCACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAC9B,SAAS,EAAC,kNAAkN,0BAGpN,CACJ;YAEL,MAAM,IAAI,CACV,oBAAC,kBAAkB,IAClB,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAChC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;oBACpB,SAAS,CAAC,KAAK,CAAC,CAAC;oBACjB,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3B,CAAC,GACA,CACF;YAEA,aAAa,IAAI,CACjB,oBAAC,kBAAkB,IAClB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EACtC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;oBACpB,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBACvB,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3B,CAAC,GACA,CACF,CACS,CACX,CAAA;KAAA,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,MAA0B,EAAiC,EAAE;IAClF,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;QAC1C,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;IAC5C,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,WAAW,EAAE,CAAC;AAC1F,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,IAAY,EAAU,EAAE,CAC7C,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AAExC,MAAM,WAAW,GAAG,CAAC,KAIpB,EAAE,EAAE;;IACJ,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC3C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAElD,OAAO,CACN,6BACC,YAAY,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAClC,YAAY,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EACnC,SAAS,EAAC,mJAAmJ;QAE7J,6BAAK,SAAS,EAAC,2BAA2B;YACzC,8BAAM,SAAS,EAAC,sDAAsD,IAAE,GAAG,CAAQ;YACnF,8BAAM,SAAS,EAAC,wBAAwB,IAAE,IAAI,CAAQ,CACjD;QACN,6BAAK,SAAS,EAAC,uBAAuB;YACrC,8BAAM,SAAS,EAAC,oCAAoC,IAAE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAQ;YACtF,CAAA,MAAA,MAAA,MAAM,CAAC,IAAI,0CAAE,QAAQ,0CAAE,GAAG,KAAI,CAC9B,8BAAM,SAAS,EAAC,iCAAiC;gBAChD,oBAAC,iBAAiB,IAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAC,MAAM,GAAG,CACzD,CACP,CACI;QACN,6BACC,SAAS,EAAE,4BAA4B,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,qBAAqB;YAE/F,oBAAC,OAAO,IAAC,KAAK,EAAC,MAAM;gBACpB,gCACC,IAAI,EAAC,QAAQ,gBACF,eAAe,EAC1B,OAAO,EAAE,MAAM,EACf,SAAS,EAAC,8KAA8K;oBAExL,oBAAC,MAAM,IAAC,IAAI,EAAE,UAAU,GAAI,CACpB,CACA;YACV,oBAAC,OAAO,IAAC,KAAK,EAAC,QAAQ;gBACtB,gCACC,IAAI,EAAC,QAAQ,gBACF,iBAAiB,EAC5B,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAC,8JAA8J;oBAExK,oBAAC,MAAM,IAAC,IAAI,EAAE,mBAAmB,GAAI,CAC7B,CACA,CACL,CACD,CACN,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,8BAA8B,CAAC"}
|
package/es/modules/corporate/filing-record/filing-type/components/FilingTypeReminderTab/index.js
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import React, { useState } from "react";
|
|
2
|
+
import { Button, Dropdown, Modal, message } from "antd";
|
|
3
|
+
import { observe } from "@voplus/morpho-ui";
|
|
4
|
+
import { faEllipsisVerticalSolid, FontAwesomeIcon as FAIcon, } from "@voplus/morpho-ui/es/faIcons";
|
|
5
|
+
import { useFilingType, useFilingTypeStore } from "../../../../../../data/filing-type";
|
|
6
|
+
import { useActionPlan } from "@voplus/morpho-document/es/data/action-plan";
|
|
7
|
+
import FilingTypeReminderScheduleList from "../FilingTypeReminderScheduleList";
|
|
8
|
+
// spec:2356 — CSP: Filing type's Reminders tab offers a create button until a reminder plan exists, then the reminder editor
|
|
9
|
+
const FilingTypeReminderTab = (props) => {
|
|
10
|
+
const { id } = props;
|
|
11
|
+
const filingType = useFilingType(id);
|
|
12
|
+
const store = useFilingTypeStore();
|
|
13
|
+
const [creating, setCreating] = useState(false);
|
|
14
|
+
const onCreate = async () => {
|
|
15
|
+
setCreating(true);
|
|
16
|
+
try {
|
|
17
|
+
await store.createActionPlan(id);
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
message.error("Failed to create reminder plan");
|
|
21
|
+
}
|
|
22
|
+
finally {
|
|
23
|
+
setCreating(false);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
return observe(() => filingType.actionPlanId ? (React.createElement(ReminderPlanView, { filingTypeId: id, planId: filingType.actionPlanId })) : (React.createElement("div", { className: "flex flex-col items-center justify-center p-lg gap-sm" },
|
|
27
|
+
React.createElement("span", { className: "text-font-primary text-sm" }, "No reminder plan yet."),
|
|
28
|
+
React.createElement(Button, { type: "primary", onClick: onCreate, loading: creating }, "Create reminder plan"))));
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Embedded reminder-plan surface shown inside the FilingType Reminders tab. The plan
|
|
32
|
+
* is a TEMPLATE (no instance-level Active/Paused/next-firing state), so the header
|
|
33
|
+
* stays minimal: plan name + action count + an overflow ⋯ menu with the destructive
|
|
34
|
+
* "Delete reminder plan" action (spec:2405).
|
|
35
|
+
*
|
|
36
|
+
* Deliberately NO "Open in action-plan view" affordance — that page would let users
|
|
37
|
+
* edit actions through the default ActionPlanStore, bypassing FilingType.EditAsync
|
|
38
|
+
* and therefore skipping the spec:2353 backfill onto open filings. All reminder
|
|
39
|
+
* mutations must route through filingTypeStore so backfill stays consistent.
|
|
40
|
+
*
|
|
41
|
+
* The schedule list itself is FilingTypeReminderScheduleList — a custom component
|
|
42
|
+
* (not morpho-document's ActionList) whose saves route through filingTypeStore.edit
|
|
43
|
+
* → FilingType.EditAsync → BackfillOpenFilingRemindersAsync.
|
|
44
|
+
*/
|
|
45
|
+
const ReminderPlanView = (props) => {
|
|
46
|
+
const { filingTypeId, planId } = props;
|
|
47
|
+
const plan = useActionPlan(planId);
|
|
48
|
+
const store = useFilingTypeStore();
|
|
49
|
+
const handleDeletePlan = () => {
|
|
50
|
+
Modal.confirm({
|
|
51
|
+
title: "Delete reminder plan",
|
|
52
|
+
content: "This removes the reminder plan template for this filing type. Open filings of this type may block the delete if they still hold derived plans. Continue?",
|
|
53
|
+
okText: "Delete plan",
|
|
54
|
+
okButtonProps: { danger: true },
|
|
55
|
+
cancelText: "Cancel",
|
|
56
|
+
onOk: async () => {
|
|
57
|
+
var _a;
|
|
58
|
+
try {
|
|
59
|
+
await store.deleteActionPlan(filingTypeId);
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
message.error((_a = err === null || err === void 0 ? void 0 : err.message) !== null && _a !== void 0 ? _a : "Failed to delete reminder plan");
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
const menuItems = [
|
|
68
|
+
{
|
|
69
|
+
key: "delete-plan",
|
|
70
|
+
danger: true,
|
|
71
|
+
label: "Delete reminder plan",
|
|
72
|
+
onClick: handleDeletePlan,
|
|
73
|
+
},
|
|
74
|
+
];
|
|
75
|
+
return observe(() => {
|
|
76
|
+
var _a, _b;
|
|
77
|
+
const actionCount = (_b = (_a = plan.actions) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
|
|
78
|
+
return (React.createElement("div", null,
|
|
79
|
+
React.createElement("div", { className: "flex items-center justify-between gap-md pb-md mb-md border-b border-border" },
|
|
80
|
+
React.createElement("div", { className: "flex flex-col min-w-0" },
|
|
81
|
+
React.createElement("div", { className: "text-base font-semibold text-font-primary truncate" }, plan.name || "Reminder plan"),
|
|
82
|
+
React.createElement("div", { className: "text-xs text-font-grey" },
|
|
83
|
+
actionCount,
|
|
84
|
+
" ",
|
|
85
|
+
actionCount === 1 ? "action" : "actions")),
|
|
86
|
+
React.createElement(Dropdown, { menu: { items: menuItems }, trigger: ["click"], placement: "bottomRight" },
|
|
87
|
+
React.createElement("button", { type: "button", "aria-label": "Reminder plan options", className: "w-7 h-7 inline-flex items-center justify-center border border-border bg-bg-white rounded text-font-grey hover:text-font-secondary hover:border-font-secondary cursor-pointer" },
|
|
88
|
+
React.createElement(FAIcon, { icon: faEllipsisVerticalSolid })))),
|
|
89
|
+
React.createElement(FilingTypeReminderScheduleList, { filingTypeId: filingTypeId, planId: planId })));
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
export default FilingTypeReminderTab;
|
|
93
|
+
//# sourceMappingURL=index.js.map
|
package/es/modules/corporate/filing-record/filing-type/components/FilingTypeReminderTab/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/modules/corporate/filing-record/filing-type/components/FilingTypeReminderTab/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
import React, { useState } from "react";
|
|
2
2
|
import { Badge } from "antd";
|
|
3
3
|
import { observe } from "@voplus/morpho-ui";
|
|
4
|
-
import { useFilingType } from "../../../../../../data/filing-type";
|
|
5
4
|
import { useDocumentListEffect } from "@voplus/morpho-document-core";
|
|
6
5
|
import ActivityLog from "@voplus/morpho-org/es/components/ActivityLog2/ActivityLog2";
|
|
7
6
|
import DocumentTabs from "@voplus/morpho-document/es/components/DocumentTabs";
|
|
8
7
|
import DocumentList from "@voplus/morpho-document/es/components/DocumentList";
|
|
9
8
|
import Links from "@voplus/morpho-document/es/components/Links";
|
|
9
|
+
import FilingTypeReminderTab from "../FilingTypeReminderTab";
|
|
10
10
|
// spec:1539 — CSP: Filing type tabs compose Details and Document
|
|
11
11
|
const FilingTypeTabs = (props) => {
|
|
12
12
|
const { id, details } = props;
|
|
13
13
|
const [docTotals, setDocTotals] = useState(0);
|
|
14
14
|
/**Tabs 当前激活 tab 面板的 key */
|
|
15
15
|
const [activeKey, setActiveKey] = useState(details ? "Details" : "Activities");
|
|
16
|
-
const filingType = useFilingType(props.id);
|
|
17
16
|
useDocumentListEffect(null, (result, total) => setDocTotals(total || 0), {
|
|
18
17
|
Total: true,
|
|
19
18
|
List: false,
|
|
@@ -33,12 +32,16 @@ const FilingTypeTabs = (props) => {
|
|
|
33
32
|
children: (React.createElement(DocumentList, { id: id, multiple: true, viewTitle: " ", total: false, exclude: ["Task", "Ticket", "Deal"] })),
|
|
34
33
|
},
|
|
35
34
|
{ key: "Links", label: "Links", children: React.createElement(Links, { id: id }) },
|
|
35
|
+
{
|
|
36
|
+
key: "Reminders",
|
|
37
|
+
label: "Reminders",
|
|
38
|
+
children: activeKey === "Reminders" ? React.createElement(FilingTypeReminderTab, { id: id }) : null,
|
|
39
|
+
},
|
|
36
40
|
];
|
|
37
41
|
details && items.unshift({ key: "Details", label: "Details", children: details });
|
|
38
|
-
return observe(() => {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
});
|
|
42
|
+
return observe(() => (React.createElement(DocumentTabs, { id: id, active: activeKey,
|
|
43
|
+
// spec:1539, spec:2356 — Reminders tab replaces the generic action-plan list for filing types
|
|
44
|
+
actionPlan: false, onChange: (key) => setActiveKey(key), tabItems: items })));
|
|
42
45
|
};
|
|
43
46
|
export default FilingTypeTabs;
|
|
44
47
|
//# sourceMappingURL=index.js.map
|
package/es/modules/corporate/filing-record/filing-type/components/FilingTypeTabs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/modules/corporate/filing-record/filing-type/components/FilingTypeTabs/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAa,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/modules/corporate/filing-record/filing-type/components/FilingTypeTabs/index.tsx"],"names":[],"mappings":"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"}
|
package/es/modules/corporate/filing-record/filing-type/components/ReminderActionForm/index.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { ActionEditOptions, IAction } from "@voplus/morpho-document/es/data/action-plan";
|
|
3
|
+
/**
|
|
4
|
+
* Add/edit modal for a reminder action on a filing type's reminder plan.
|
|
5
|
+
*
|
|
6
|
+
* Unlike morpho-document's NewActionsForm (which only creates and only sets Type +
|
|
7
|
+
* TemplateId), this form covers both Create and Update, and includes an Offset
|
|
8
|
+
* field so the user can pick when the reminder fires relative to the filing's
|
|
9
|
+
* DueDate. Emits a fully-formed ActionEditOptions via onOk; the parent is
|
|
10
|
+
* responsible for posting it through filingTypeStore.edit so spec:2353 backfill
|
|
11
|
+
* runs against existing open filings.
|
|
12
|
+
*/
|
|
13
|
+
declare const ReminderActionForm: (props: {
|
|
14
|
+
action?: IAction;
|
|
15
|
+
onCancel?: () => void;
|
|
16
|
+
onOk?: (data: ActionEditOptions) => void;
|
|
17
|
+
}) => React.JSX.Element;
|
|
18
|
+
export default ReminderActionForm;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import React, { useState } from "react";
|
|
2
|
+
import { Modal, Form, InputNumber, Radio } from "antd";
|
|
3
|
+
import { observe } from "@voplus/morpho-ui";
|
|
4
|
+
import MessageTemplateSelect from "@voplus/morpho-document/es/modules/message-template/components/MessageTemplateSelect";
|
|
5
|
+
const offsetToWhen = (offset) => {
|
|
6
|
+
if (offset === undefined || offset === null)
|
|
7
|
+
return "before";
|
|
8
|
+
if (offset === 0)
|
|
9
|
+
return "on";
|
|
10
|
+
return offset < 0 ? "before" : "after";
|
|
11
|
+
};
|
|
12
|
+
const composeOffset = (when, days) => {
|
|
13
|
+
if (when === "on")
|
|
14
|
+
return 0;
|
|
15
|
+
if (when === "before")
|
|
16
|
+
return -Math.abs(days);
|
|
17
|
+
return Math.abs(days);
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Add/edit modal for a reminder action on a filing type's reminder plan.
|
|
21
|
+
*
|
|
22
|
+
* Unlike morpho-document's NewActionsForm (which only creates and only sets Type +
|
|
23
|
+
* TemplateId), this form covers both Create and Update, and includes an Offset
|
|
24
|
+
* field so the user can pick when the reminder fires relative to the filing's
|
|
25
|
+
* DueDate. Emits a fully-formed ActionEditOptions via onOk; the parent is
|
|
26
|
+
* responsible for posting it through filingTypeStore.edit so spec:2353 backfill
|
|
27
|
+
* runs against existing open filings.
|
|
28
|
+
*/
|
|
29
|
+
const ReminderActionForm = (props) => {
|
|
30
|
+
var _a, _b, _c, _d;
|
|
31
|
+
const isEdit = !!props.action;
|
|
32
|
+
const initialOffset = (_a = props.action) === null || _a === void 0 ? void 0 : _a.offset;
|
|
33
|
+
const [templateId, setTemplateId] = useState((_d = (_c = (_b = props.action) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.template) === null || _d === void 0 ? void 0 : _d.key);
|
|
34
|
+
const [when, setWhen] = useState(offsetToWhen(initialOffset));
|
|
35
|
+
const [days, setDays] = useState(initialOffset === undefined ? 7 : Math.abs(initialOffset));
|
|
36
|
+
const handleOk = () => {
|
|
37
|
+
var _a;
|
|
38
|
+
const offset = composeOffset(when, days);
|
|
39
|
+
const json = { Offset: offset };
|
|
40
|
+
if (templateId)
|
|
41
|
+
json.TemplateId = templateId;
|
|
42
|
+
const payload = isEdit
|
|
43
|
+
? {
|
|
44
|
+
Id: props.action.id,
|
|
45
|
+
Operation: "Update",
|
|
46
|
+
JSON: JSON.stringify(json),
|
|
47
|
+
}
|
|
48
|
+
: {
|
|
49
|
+
Operation: "Create",
|
|
50
|
+
Type: "MessageAction",
|
|
51
|
+
JSON: JSON.stringify(json),
|
|
52
|
+
};
|
|
53
|
+
(_a = props.onOk) === null || _a === void 0 ? void 0 : _a.call(props, payload);
|
|
54
|
+
};
|
|
55
|
+
return observe(() => (React.createElement(Modal, { open: true, title: isEdit ? "Edit reminder" : "New reminder", okText: isEdit ? "Save" : "Add", onCancel: props.onCancel, onOk: handleOk, okButtonProps: { disabled: !templateId } },
|
|
56
|
+
React.createElement(Form, { layout: "vertical" },
|
|
57
|
+
React.createElement(Form.Item, { label: "When" },
|
|
58
|
+
React.createElement("div", { className: "flex items-center gap-sm" },
|
|
59
|
+
React.createElement(Radio.Group, { value: when, onChange: (e) => setWhen(e.target.value), optionType: "button", options: [
|
|
60
|
+
{ label: "Before", value: "before" },
|
|
61
|
+
{ label: "On", value: "on" },
|
|
62
|
+
{ label: "After", value: "after" },
|
|
63
|
+
] }),
|
|
64
|
+
when !== "on" && (React.createElement(React.Fragment, null,
|
|
65
|
+
React.createElement(InputNumber, { min: 1, value: days, onChange: (v) => setDays(Number(v) || 0) }),
|
|
66
|
+
React.createElement("span", { className: "text-font-grey text-sm" }, "days"))),
|
|
67
|
+
React.createElement("span", { className: "text-font-grey text-sm" }, "due date"))),
|
|
68
|
+
React.createElement(Form.Item, { label: "Template", required: true },
|
|
69
|
+
React.createElement(MessageTemplateSelect, { isLayout: false, defaultValue: templateId, onChange: (template) => setTemplateId(template === null || template === void 0 ? void 0 : template.id) }))))));
|
|
70
|
+
};
|
|
71
|
+
export default ReminderActionForm;
|
|
72
|
+
//# sourceMappingURL=index.js.map
|
package/es/modules/corporate/filing-record/filing-type/components/ReminderActionForm/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/modules/corporate/filing-record/filing-type/components/ReminderActionForm/index.tsx"],"names":[],"mappings":"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"}
|
package/es/modules/corporate/virtual-address-mail/components/VirtualAddressMailItem/index.js
CHANGED
|
@@ -14,7 +14,7 @@ import VirtualAddressMailMenu from "../../controls/VirtualAddressMailMenu";
|
|
|
14
14
|
import UTCShortDate from "@voplus/morpho-ui/es/controls/UTCShortDate";
|
|
15
15
|
import ToolBar from "@voplus/morpho-document-core/es/controls/ToolBar";
|
|
16
16
|
import PropertiesView from "../VirtualAddressMailPropertiesView";
|
|
17
|
-
import StatusLabel from "
|
|
17
|
+
import StatusLabel from "@voplus/morpho-ui/es/controls/StatusLabel";
|
|
18
18
|
import Scan from "../../controls/VirtualAddressMailMenu/Scan";
|
|
19
19
|
import Routes from "../../../../../routes";
|
|
20
20
|
import "./index.css";
|
|
@@ -33,7 +33,7 @@ const VirtualAddressMailItem = (props) => {
|
|
|
33
33
|
React.createElement(UTCShortDate, { className: "text-xs text-slate-500", value: virtualAddress.date, format: "DD MMM YYYY" })),
|
|
34
34
|
React.createElement(ColumnItemCol, { span: 5, label: "Mail Type" }, virtualAddress.mailType),
|
|
35
35
|
React.createElement(ColumnItemCol, { span: 3, label: "Scanned" },
|
|
36
|
-
React.createElement(StatusLabel, {
|
|
36
|
+
React.createElement(StatusLabel, { text: virtualAddress.scanned ? "Yes" : "No", colors: virtualAddress.scanned
|
|
37
37
|
? { bg: "bg-bg-green-data", text: "text-green-data", dot: "bg-green-data" }
|
|
38
38
|
: { bg: "bg-bg-grey", text: "text-font-grey", dot: "bg-font-grey" } })),
|
|
39
39
|
React.createElement(ColumnItemCol, { span: 6, label: "Sender" }, virtualAddress.sender),
|
package/es/modules/corporate/virtual-address-mail/components/VirtualAddressMailItem/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/modules/corporate/virtual-address-mail/components/VirtualAddressMailItem/index.tsx"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,6DAA6D;AAC7D,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,0DAA0D,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,0DAA0D,CAAC;AAC1F,OAAO,aAAa,MAAM,kEAAkE,CAAC;AAC7F,OAAO,kBAAkB,MAAM,6DAA6D,CAAC;AAC7F,OAAO,iCAAiC,MAAM,sCAAsC,CAAC;AACrF,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAC3E,OAAO,YAAY,MAAM,4CAA4C,CAAC;AACtE,OAAO,OAAO,MAAM,kDAAkD,CAAC;AACvE,OAAO,cAAc,MAAM,qCAAqC,CAAC;AACjE,OAAO,WAAW,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/modules/corporate/virtual-address-mail/components/VirtualAddressMailItem/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
/**
|
|
3
|
-
* 状态标签组件的属性接口
|
|
4
|
-
*/
|
|
5
|
-
interface StatusLabelProps {
|
|
6
|
-
/**
|
|
7
|
-
* 原始状态值,主要用于判定是否显示标签。
|
|
8
|
-
* 如果没有传入 `text`,则会将此值直接用于展示。
|
|
9
|
-
*/
|
|
10
|
-
status?: string;
|
|
11
|
-
/**
|
|
12
|
-
* 覆盖默认状态的显示文本,可选项。
|
|
13
|
-
* 当需要实际显示的文案与后台返回的状态值 (status) 不一致时使用。
|
|
14
|
-
*/
|
|
15
|
-
text?: string;
|
|
16
|
-
/** 组件的容器自定义 className */
|
|
17
|
-
className?: string;
|
|
18
|
-
/**
|
|
19
|
-
* 定义标签的各项颜色 Tailwind 类名
|
|
20
|
-
*/
|
|
21
|
-
colors: {
|
|
22
|
-
/** 标签整体背景颜色类名 */
|
|
23
|
-
bg: string;
|
|
24
|
-
/** 标签文本颜色类名 */
|
|
25
|
-
text: string;
|
|
26
|
-
/** 前侧状态小圆点颜色类名 */
|
|
27
|
-
dot: string;
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* 通用状态 UI 组件 (共用部分提炼)。
|
|
32
|
-
* 根据不同的状态显示不同的文字和对应的主题色(带有左侧实心小圆点的胶囊样式)。
|
|
33
|
-
* 常用于 MemberRegister、ControllerRegister 等列表或详情处的状态呈现。
|
|
34
|
-
*/
|
|
35
|
-
declare const StatusLabel: (props: StatusLabelProps) => React.JSX.Element;
|
|
36
|
-
export default StatusLabel;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import classnames from "classnames";
|
|
3
|
-
import { observe } from "@voplus/morpho-ui";
|
|
4
|
-
/**
|
|
5
|
-
* 通用状态 UI 组件 (共用部分提炼)。
|
|
6
|
-
* 根据不同的状态显示不同的文字和对应的主题色(带有左侧实心小圆点的胶囊样式)。
|
|
7
|
-
* 常用于 MemberRegister、ControllerRegister 等列表或详情处的状态呈现。
|
|
8
|
-
*/
|
|
9
|
-
const StatusLabel = (props) => {
|
|
10
|
-
const { status, text, className, colors } = props;
|
|
11
|
-
return observe(() => (React.createElement("span", { className: classnames("inline-flex items-center gap-1 px-2.5 py-1 rounded-xl text-[10px] font-bold uppercase", colors.bg, colors.text, className) }, status ? (React.createElement(React.Fragment, null,
|
|
12
|
-
React.createElement("i", { className: classnames("inline-block w-1.5 h-1.5 rounded-full", colors.dot) }),
|
|
13
|
-
React.createElement("span", null, text || status))) : null)));
|
|
14
|
-
};
|
|
15
|
-
export default StatusLabel;
|
|
16
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/StatusLabel/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AA+B5C;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAC,KAAuB,EAAE,EAAE;IAC/C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAElD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CACpB,8BACC,SAAS,EAAE,UAAU,CACpB,uFAAuF,EACvF,MAAM,CAAC,EAAE,EACT,MAAM,CAAC,IAAI,EACX,SAAS,CACT,IAEA,MAAM,CAAC,CAAC,CAAC,CACT;QACC,2BAAG,SAAS,EAAE,UAAU,CAAC,uCAAuC,EAAE,MAAM,CAAC,GAAG,CAAC,GAAI;QACjF,kCAAO,IAAI,IAAI,MAAM,CAAQ,CAC3B,CACH,CAAC,CAAC,CAAC,IAAI,CACF,CACP,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
|