@steedos-labs/content-compliance 0.8.21 → 0.8.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/dist/index.js +1 -1
  2. package/lib/actions/addBulkMaterials.d.ts +1 -9
  3. package/lib/actions/addBulkMaterials.js +56 -24
  4. package/lib/actions/addBulkMaterials.js.map +1 -1
  5. package/lib/methods/__tests__/materialSizeLimit.test.d.ts +1 -0
  6. package/lib/methods/__tests__/materialSizeLimit.test.js +146 -0
  7. package/lib/methods/__tests__/materialSizeLimit.test.js.map +1 -0
  8. package/lib/methods/__tests__/materialUploadValidation.test.d.ts +1 -0
  9. package/lib/methods/__tests__/materialUploadValidation.test.js +217 -0
  10. package/lib/methods/__tests__/materialUploadValidation.test.js.map +1 -0
  11. package/lib/methods/__tests__/qcParallelReview.test.js +10 -3
  12. package/lib/methods/__tests__/qcParallelReview.test.js.map +1 -1
  13. package/lib/methods/__tests__/resubmissionAutoApprove.test.d.ts +1 -0
  14. package/lib/methods/__tests__/resubmissionAutoApprove.test.js +195 -0
  15. package/lib/methods/__tests__/resubmissionAutoApprove.test.js.map +1 -0
  16. package/lib/methods/approval_engine.d.ts +1 -0
  17. package/lib/methods/approval_engine.js +324 -281
  18. package/lib/methods/approval_engine.js.map +1 -1
  19. package/lib/methods/material.d.ts +1 -0
  20. package/lib/methods/material.js +21 -2
  21. package/lib/methods/material.js.map +1 -1
  22. package/main/default/objects/pepsico_material/buttons/pepsico_upload_supplement.button.yml +1 -1
  23. package/main/default/objects/pepsico_material_approval/buttons/pepsico_material_upload.button.yml +2 -2
  24. package/main/default/objects/pepsico_material_approval/listviews/collaboration.listview.yml +5 -0
  25. package/main/default/pages/pepsico_content_review_detail.page.amis.json +15 -15
  26. package/package.json +3 -2
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var approval_engine_1 = require("../approval_engine");
5
+ var consts_1 = require("../consts");
6
+ var buildCtx = function (_a) {
7
+ var approval = _a.approval, _b = _a.materials, materials = _b === void 0 ? [] : _b, _c = _a.flowRule, flowRule = _c === void 0 ? null : _c, _d = _a.delegations, delegations = _d === void 0 ? {} : _d;
8
+ var objects = {};
9
+ var rule = flowRule || { _id: 'rule-1', name: '${1 == 2}', skip_approve: '' };
10
+ var getOrCreate = function (name) {
11
+ if (objects[name]) {
12
+ return objects[name];
13
+ }
14
+ var stub = {
15
+ find: jest.fn().mockResolvedValue([]),
16
+ findOne: jest.fn().mockResolvedValue(null),
17
+ directFind: jest.fn().mockResolvedValue([]),
18
+ insert: jest.fn().mockResolvedValue({}),
19
+ update: jest.fn().mockResolvedValue({}),
20
+ count: jest.fn().mockResolvedValue(1),
21
+ directInsert: jest.fn().mockResolvedValue({}),
22
+ directUpdate: jest.fn().mockResolvedValue({}),
23
+ directUpdateMany: jest.fn().mockResolvedValue({})
24
+ };
25
+ if (name === 'pepsico_material_approval') {
26
+ stub.findOne = jest.fn().mockResolvedValue(approval);
27
+ }
28
+ if (name === 'pepsico_material') {
29
+ stub.find = jest.fn().mockResolvedValue(materials);
30
+ }
31
+ if (name === 'pepsico_flow_rule') {
32
+ stub.findOne = jest.fn().mockResolvedValue(rule);
33
+ stub.find = jest.fn().mockResolvedValue([rule]);
34
+ }
35
+ if (name === 'process_delegation_rules') {
36
+ stub.find = jest.fn().mockImplementation(function (_a) {
37
+ var _b;
38
+ var filters = _a.filters;
39
+ var fromId = (_b = filters.find(function (f) { return f[0] === 'from'; })) === null || _b === void 0 ? void 0 : _b[2];
40
+ var to = delegations[fromId];
41
+ return Promise.resolve(to ? [{ to: to }] : []);
42
+ });
43
+ }
44
+ objects[name] = stub;
45
+ return stub;
46
+ };
47
+ var ctx = {
48
+ meta: { user: { userId: 'submitter-u', organization: { _id: 'org-1' } } },
49
+ broker: { call: jest.fn().mockResolvedValue({}) },
50
+ getObject: jest.fn(function (name) { return getOrCreate(name); })
51
+ };
52
+ return { ctx: ctx, objects: getOrCreate };
53
+ };
54
+ var directUpdateDocs = function (stub) { return stub.directUpdate.mock.calls.map(function (c) { return c[1]; }); };
55
+ describe('resubmission auto approve converts pre review to formal review (#435)', function () {
56
+ var baseApproval = {
57
+ _id: 'ap-1',
58
+ space: 'spc',
59
+ name: 'AP-1',
60
+ current_step: consts_1.Step.submitter_revisions,
61
+ person_pending_approve: ['submitter-u'],
62
+ ec_has_detail_page: 'yes',
63
+ ns_approval_status: true,
64
+ legal_approval_status: true,
65
+ sra_approval_status: true,
66
+ ca_approval_status: true,
67
+ pre_qc_reviewer: 'preqc-u',
68
+ pre_qc_approval_status: false,
69
+ qc_reviewer: ['qc-u'],
70
+ qc_approval_status: '',
71
+ pls_km_files: []
72
+ };
73
+ it('assigns the formal QC reviewer instead of skipping the department', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
74
+ var approval, _a, ctx, objects, approvalStub, processStub, setDoc, inserted;
75
+ var _b;
76
+ return tslib_1.__generator(this, function (_c) {
77
+ switch (_c.label) {
78
+ case 0:
79
+ approval = tslib_1.__assign({}, baseApproval);
80
+ _a = buildCtx({ ctx: null, approval: approval, materials: [{ _id: 'm-2', pre_qc_approval_status: true }] }), ctx = _a.ctx, objects = _a.objects;
81
+ return [4, (0, approval_engine_1.advanceApproval)(ctx, 'ap-1', consts_1.ApprovalStatus.approved)];
82
+ case 1:
83
+ _c.sent();
84
+ approvalStub = objects('pepsico_material_approval');
85
+ processStub = objects('pepsico_approval_process');
86
+ expect(directUpdateDocs(approvalStub)).toContainEqual({ pre_qc_approval_status: true });
87
+ setDoc = (_b = approvalStub.update.mock.calls.find(function (c) { return c[0] === 'ap-1'; })) === null || _b === void 0 ? void 0 : _b[1];
88
+ expect(setDoc.current_step).toBe(consts_1.Step.departmental_review);
89
+ expect(setDoc.person_pending_approve).toEqual(['qc-u']);
90
+ inserted = processStub.insert.mock.calls.map(function (c) { return c[0]; });
91
+ expect(inserted).toEqual([
92
+ expect.objectContaining({ type: consts_1.ProcessApprovalType.QC, owner: 'qc-u', approved: 'progess' })
93
+ ]);
94
+ expect(directUpdateDocs(approvalStub)).toContainEqual({ handler_qc: ['qc-u'] });
95
+ expect(directUpdateDocs(approvalStub)).toContainEqual({ qc_approval_status: '' });
96
+ return [2];
97
+ }
98
+ });
99
+ }); });
100
+ it('throws and leaves no half-written state when the formal reviewer is missing', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
101
+ var approval, _a, ctx, objects, approvalStub;
102
+ return tslib_1.__generator(this, function (_b) {
103
+ switch (_b.label) {
104
+ case 0:
105
+ approval = tslib_1.__assign(tslib_1.__assign({}, baseApproval), { ec_has_detail_page: 'no', pre_qc_reviewer: null, pre_qc_approval_status: '', pre_sra_reviewer: 'presra-u', pre_sra_approval_status: false, sra_approval_status: '', sra_reviewer: [] });
106
+ _a = buildCtx({ approval: approval, materials: [{ _id: 'm-2', pre_sra_approval_status: true }] }), ctx = _a.ctx, objects = _a.objects;
107
+ return [4, expect((0, approval_engine_1.advanceApproval)(ctx, 'ap-1', consts_1.ApprovalStatus.approved)).rejects.toThrow('正式审核人缺失')];
108
+ case 1:
109
+ _b.sent();
110
+ approvalStub = objects('pepsico_material_approval');
111
+ expect(directUpdateDocs(approvalStub)).not.toContainEqual({ pre_sra_approval_status: true });
112
+ expect(approvalStub.update).not.toHaveBeenCalled();
113
+ return [2];
114
+ }
115
+ });
116
+ }); });
117
+ it('runs the same auto-approve conversion when returning from AI re-review (#432)', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
118
+ var approval, _a, ctx, objects, approvalStub, processStub, setDoc;
119
+ var _b;
120
+ return tslib_1.__generator(this, function (_c) {
121
+ switch (_c.label) {
122
+ case 0:
123
+ approval = tslib_1.__assign(tslib_1.__assign({}, baseApproval), { current_step: consts_1.Step.ai_review });
124
+ _a = buildCtx({ approval: approval, materials: [{ _id: 'm-2', pre_qc_approval_status: true }] }), ctx = _a.ctx, objects = _a.objects;
125
+ return [4, (0, approval_engine_1.advanceApproval)(ctx, 'ap-1', consts_1.ApprovalStatus.approved)];
126
+ case 1:
127
+ _c.sent();
128
+ approvalStub = objects('pepsico_material_approval');
129
+ processStub = objects('pepsico_approval_process');
130
+ expect(directUpdateDocs(approvalStub)).toContainEqual({ pre_qc_approval_status: true });
131
+ setDoc = (_b = approvalStub.update.mock.calls.find(function (c) { return c[0] === 'ap-1'; })) === null || _b === void 0 ? void 0 : _b[1];
132
+ expect(setDoc.current_step).toBe(consts_1.Step.departmental_review);
133
+ expect(setDoc.person_pending_approve).toEqual(['qc-u']);
134
+ expect(processStub.insert.mock.calls.map(function (c) { return c[0]; })).toEqual([
135
+ expect.objectContaining({ type: consts_1.ProcessApprovalType.QC, owner: 'qc-u', approved: 'progess' })
136
+ ]);
137
+ return [2];
138
+ }
139
+ });
140
+ }); });
141
+ it('keeps pending reviewers untouched on a first submission through AI review', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
142
+ var approval, _a, ctx, objects, approvalStub, setDoc;
143
+ var _b;
144
+ return tslib_1.__generator(this, function (_c) {
145
+ switch (_c.label) {
146
+ case 0:
147
+ approval = tslib_1.__assign(tslib_1.__assign({}, baseApproval), { current_step: consts_1.Step.ai_review, ns_approval_status: '', legal_approval_status: '', sra_approval_status: '', ca_approval_status: '', ns_reviewer: ['ns-u'], legal_reviewer: ['legal-u'], sra_reviewer: ['sra-u'], ca_reviewer: ['ca-u'], pre_qc_approval_status: '' });
148
+ _a = buildCtx({ approval: approval, materials: [{ _id: 'm-1' }, { _id: 'm-2' }] }), ctx = _a.ctx, objects = _a.objects;
149
+ return [4, (0, approval_engine_1.advanceApproval)(ctx, 'ap-1', consts_1.ApprovalStatus.approved)];
150
+ case 1:
151
+ _c.sent();
152
+ approvalStub = objects('pepsico_material_approval');
153
+ setDoc = (_b = approvalStub.update.mock.calls.find(function (c) { return c[0] === 'ap-1'; })) === null || _b === void 0 ? void 0 : _b[1];
154
+ expect(setDoc.current_step).toBe(consts_1.Step.departmental_review);
155
+ expect(setDoc.person_pending_approve).toEqual(['ns-u', 'legal-u', 'sra-u', 'ca-u', 'preqc-u']);
156
+ expect(directUpdateDocs(approvalStub)).not.toContainEqual(expect.objectContaining({ pre_qc_approval_status: true }));
157
+ return [2];
158
+ }
159
+ });
160
+ }); });
161
+ });
162
+ describe('pending approve keeps per-role slots (#434)', function () {
163
+ it('preserves the cross-role slot of a user while deduping within the appended role', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
164
+ var approval, _a, ctx, objects, approvalStub, processStub;
165
+ return tslib_1.__generator(this, function (_b) {
166
+ switch (_b.label) {
167
+ case 0:
168
+ approval = {
169
+ _id: 'ap-2',
170
+ space: 'spc',
171
+ name: 'AP-2',
172
+ current_step: consts_1.Step.departmental_review,
173
+ person_pending_approve: ['agent-u', 'other-u'],
174
+ qc_reviewer: ['r1', 'r2'],
175
+ qc_approval_status: ''
176
+ };
177
+ _a = buildCtx({ approval: approval, delegations: { r1: 'agent-u', r2: 'agent-u' } }), ctx = _a.ctx, objects = _a.objects;
178
+ return [4, (0, approval_engine_1.addFormalReviewerAfterPreApproval)(ctx, 'ap-2', 'pre_qc_approval_status', approval)];
179
+ case 1:
180
+ _b.sent();
181
+ approvalStub = objects('pepsico_material_approval');
182
+ processStub = objects('pepsico_approval_process');
183
+ expect(processStub.insert).toHaveBeenCalledTimes(1);
184
+ expect(processStub.insert.mock.calls[0][0]).toEqual(expect.objectContaining({ type: consts_1.ProcessApprovalType.QC, owner: 'agent-u' }));
185
+ expect(directUpdateDocs(approvalStub)).toContainEqual({ handler_qc: ['agent-u'] });
186
+ expect(directUpdateDocs(approvalStub)).toContainEqual({
187
+ person_pending_approve: ['agent-u', 'other-u', 'agent-u'],
188
+ qc_approval_status: ''
189
+ });
190
+ return [2];
191
+ }
192
+ });
193
+ }); });
194
+ });
195
+ //# sourceMappingURL=resubmissionAutoApprove.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resubmissionAutoApprove.test.js","sourceRoot":"","sources":["../../../src/methods/__tests__/resubmissionAutoApprove.test.ts"],"names":[],"mappings":";;;AAAA,sDAAwF;AACxF,oCAAsE;AAOtE,IAAM,QAAQ,GAAG,UAAC,EAAoE;QAAlE,QAAQ,cAAA,EAAE,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EAAE,gBAAe,EAAf,QAAQ,mBAAG,IAAI,KAAA,EAAE,mBAAgB,EAAhB,WAAW,mBAAG,EAAE,KAAA;IAC3E,IAAM,OAAO,GAAQ,EAAE,CAAC;IACxB,IAAM,IAAI,GAAG,QAAQ,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;IAEhF,IAAM,WAAW,GAAG,UAAC,IAAY;QAC7B,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;YACf,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;SACxB;QACD,IAAM,IAAI,GAAQ;YACd,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACrC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAC1C,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC3C,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACvC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACvC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACrC,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC7C,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC7C,gBAAgB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC;SACpD,CAAC;QACF,IAAI,IAAI,KAAK,2BAA2B,EAAE;YACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;SACxD;QACD,IAAI,IAAI,KAAK,kBAAkB,EAAE;YAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;SACtD;QACD,IAAI,IAAI,KAAK,mBAAmB,EAAE;YAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;SACnD;QACD,IAAI,IAAI,KAAK,0BAA0B,EAAE;YACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,UAAC,EAAgB;;oBAAd,OAAO,aAAA;gBAC/C,IAAM,MAAM,GAAG,MAAA,OAAO,CAAC,IAAI,CAAC,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,EAAf,CAAe,CAAC,0CAAG,CAAC,CAAC,CAAC;gBAC9D,IAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC/B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAA,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;SACN;QACD,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEF,IAAM,GAAG,GAAQ;QACb,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;QACzE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE;QACjD,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,UAAC,IAAY,IAAK,OAAA,WAAW,CAAC,IAAI,CAAC,EAAjB,CAAiB,CAAC;KAC1D,CAAC;IACF,OAAO,EAAE,GAAG,KAAA,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AACzC,CAAC,CAAC;AAGF,IAAM,gBAAgB,GAAG,UAAC,IAAS,IAAK,OAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,CAAQ,IAAK,OAAA,CAAC,CAAC,CAAC,CAAC,EAAJ,CAAI,CAAC,EAApD,CAAoD,CAAC;AAE7F,QAAQ,CAAC,uEAAuE,EAAE;IAC9E,IAAM,YAAY,GAAQ;QACtB,GAAG,EAAE,MAAM;QACX,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,aAAI,CAAC,mBAAmB;QACtC,sBAAsB,EAAE,CAAC,aAAa,CAAC;QACvC,kBAAkB,EAAE,KAAK;QACzB,kBAAkB,EAAE,IAAI;QACxB,qBAAqB,EAAE,IAAI;QAC3B,mBAAmB,EAAE,IAAI;QACzB,kBAAkB,EAAE,IAAI;QACxB,eAAe,EAAE,SAAS;QAC1B,sBAAsB,EAAE,KAAK;QAC7B,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,kBAAkB,EAAE,EAAE;QACtB,YAAY,EAAE,EAAE;KACnB,CAAC;IAEF,EAAE,CAAC,mEAAmE,EAAE;;;;;;oBAC9D,QAAQ,wBAAQ,YAAY,CAAE,CAAC;oBAE/B,KAAmB,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,UAAA,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAA7G,GAAG,SAAA,EAAE,OAAO,aAAA,CAAkG;oBAEtH,WAAM,IAAA,iCAAe,EAAC,GAAG,EAAE,MAAM,EAAE,uBAAc,CAAC,QAAQ,CAAC,EAAA;;oBAA3D,SAA2D,CAAC;oBAEtD,YAAY,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;oBACpD,WAAW,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;oBAGxD,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,CAAC;oBAGlF,MAAM,GAAG,MAAA,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAC,CAAQ,IAAK,OAAA,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,EAAf,CAAe,CAAC,0CAAG,CAAC,CAAC,CAAC;oBACvF,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,aAAI,CAAC,mBAAmB,CAAC,CAAC;oBAC3D,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBAGlD,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,CAAQ,IAAK,OAAA,CAAC,CAAC,CAAC,CAAC,EAAJ,CAAI,CAAC,CAAC;oBACvE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;wBACrB,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,4BAAmB,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;qBAChG,CAAC,CAAC;oBACH,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAGhF,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC;;;;SACrF,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE;;;;;oBACxE,QAAQ,yCACP,YAAY,KACf,kBAAkB,EAAE,IAAI,EACxB,eAAe,EAAE,IAAI,EACrB,sBAAsB,EAAE,EAAE,EAC1B,gBAAgB,EAAE,UAAU,EAC5B,uBAAuB,EAAE,KAAK,EAC9B,mBAAmB,EAAE,EAAE,EACvB,YAAY,EAAE,EAAE,GACnB,CAAC;oBACI,KAAmB,QAAQ,CAAC,EAAE,QAAQ,UAAA,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAnG,GAAG,SAAA,EAAE,OAAO,aAAA,CAAwF;oBAE5G,WAAM,MAAM,CAAC,IAAA,iCAAe,EAAC,GAAG,EAAE,MAAM,EAAE,uBAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAA;;oBAA9F,SAA8F,CAAC;oBAEzF,YAAY,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;oBAE1D,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC7F,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;;;;SACtD,CAAC,CAAC;IAEH,EAAE,CAAC,+EAA+E,EAAE;;;;;;oBAC1E,QAAQ,yCAAQ,YAAY,KAAE,YAAY,EAAE,aAAI,CAAC,SAAS,GAAE,CAAC;oBAC7D,KAAmB,QAAQ,CAAC,EAAE,QAAQ,UAAA,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAlG,GAAG,SAAA,EAAE,OAAO,aAAA,CAAuF;oBAE3G,WAAM,IAAA,iCAAe,EAAC,GAAG,EAAE,MAAM,EAAE,uBAAc,CAAC,QAAQ,CAAC,EAAA;;oBAA3D,SAA2D,CAAC;oBAEtD,YAAY,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;oBACpD,WAAW,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;oBAExD,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,CAAC;oBAClF,MAAM,GAAG,MAAA,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAC,CAAQ,IAAK,OAAA,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,EAAf,CAAe,CAAC,0CAAG,CAAC,CAAC,CAAC;oBACvF,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,aAAI,CAAC,mBAAmB,CAAC,CAAC;oBAC3D,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACxD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,CAAQ,IAAK,OAAA,CAAC,CAAC,CAAC,CAAC,EAAJ,CAAI,CAAC,CAAC,CAAC,OAAO,CAAC;wBAClE,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,4BAAmB,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;qBAChG,CAAC,CAAC;;;;SACN,CAAC,CAAC;IAEH,EAAE,CAAC,2EAA2E,EAAE;;;;;;oBACtE,QAAQ,yCACP,YAAY,KACf,YAAY,EAAE,aAAI,CAAC,SAAS,EAC5B,kBAAkB,EAAE,EAAE,EACtB,qBAAqB,EAAE,EAAE,EACzB,mBAAmB,EAAE,EAAE,EACvB,kBAAkB,EAAE,EAAE,EACtB,WAAW,EAAE,CAAC,MAAM,CAAC,EACrB,cAAc,EAAE,CAAC,SAAS,CAAC,EAC3B,YAAY,EAAE,CAAC,OAAO,CAAC,EACvB,WAAW,EAAE,CAAC,MAAM,CAAC,EACrB,sBAAsB,EAAE,EAAE,GAC7B,CAAC;oBAEI,KAAmB,QAAQ,CAAC,EAAE,QAAQ,UAAA,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAApF,GAAG,SAAA,EAAE,OAAO,aAAA,CAAyE;oBAE7F,WAAM,IAAA,iCAAe,EAAC,GAAG,EAAE,MAAM,EAAE,uBAAc,CAAC,QAAQ,CAAC,EAAA;;oBAA3D,SAA2D,CAAC;oBAEtD,YAAY,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;oBACpD,MAAM,GAAG,MAAA,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAC,CAAQ,IAAK,OAAA,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,EAAf,CAAe,CAAC,0CAAG,CAAC,CAAC,CAAC;oBACvF,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,aAAI,CAAC,mBAAmB,CAAC,CAAC;oBAC3D,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;oBAE/F,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;;;;SACxH,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6CAA6C,EAAE;IACpD,EAAE,CAAC,iFAAiF,EAAE;;;;;oBAC5E,QAAQ,GAAQ;wBAClB,GAAG,EAAE,MAAM;wBACX,KAAK,EAAE,KAAK;wBACZ,IAAI,EAAE,MAAM;wBACZ,YAAY,EAAE,aAAI,CAAC,mBAAmB;wBAEtC,sBAAsB,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;wBAC9C,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;wBACzB,kBAAkB,EAAE,EAAE;qBACzB,CAAC;oBAEI,KAAmB,QAAQ,CAAC,EAAE,QAAQ,UAAA,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,EAAtF,GAAG,SAAA,EAAE,OAAO,aAAA,CAA2E;oBAE/F,WAAM,IAAA,mDAAiC,EAAC,GAAG,EAAE,MAAM,EAAE,wBAAwB,EAAE,QAAQ,CAAC,EAAA;;oBAAxF,SAAwF,CAAC;oBAEnF,YAAY,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;oBACpD,WAAW,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;oBAGxD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;oBACpD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAC/C,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,4BAAmB,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAC9E,CAAC;oBACF,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBAGnF,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC;wBAClD,sBAAsB,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;wBACzD,kBAAkB,EAAE,EAAE;qBACzB,CAAC,CAAC;;;;SACN,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -6,6 +6,7 @@ export declare const isDeptReviewComplete: (materialApproval: MaterialApproval,
6
6
  export declare const getDeptEffectiveStatus: (materialApproval: MaterialApproval, deptPrefix: string) => boolean | string;
7
7
  export declare const needsQcReview: (materialApproval: MaterialApproval) => boolean;
8
8
  export declare const needsPLSReReview: (materialApproval: MaterialApproval) => boolean;
9
+ export declare const addFormalReviewerAfterPreApproval: (ctx: any, recordId: string, approveField: string, materialApproval: MaterialApproval) => Promise<void>;
9
10
  export declare const getPreReviewStatuses: (materialApproval: MaterialApproval) => {
10
11
  dept: string;
11
12
  status: boolean | string;