@steedos-labs/content-compliance 0.7.18 → 0.7.19

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 (157) hide show
  1. package/main/default/objects/pepsico_material_approval/buttons/pepsico_postpone_review.button.yml +1 -1
  2. package/main/default/objects/pepsico_material_approval/buttons/pepsico_urgent_review.button.yml +1 -1
  3. package/package.json +1 -1
  4. package/dist/index.js +0 -1
  5. package/lib/actions/addBulkMaterials.d.ts +0 -15
  6. package/lib/actions/addBulkMaterials.js +0 -69
  7. package/lib/actions/addBulkMaterials.js.map +0 -1
  8. package/lib/actions/briefFlows.d.ts +0 -14
  9. package/lib/actions/briefFlows.js +0 -46
  10. package/lib/actions/briefFlows.js.map +0 -1
  11. package/lib/actions/bypassApproval.d.ts +0 -10
  12. package/lib/actions/bypassApproval.js +0 -269
  13. package/lib/actions/bypassApproval.js.map +0 -1
  14. package/lib/actions/bypassMaterial.d.ts +0 -10
  15. package/lib/actions/bypassMaterial.js +0 -190
  16. package/lib/actions/bypassMaterial.js.map +0 -1
  17. package/lib/actions/calculateSpotCheckRates.d.ts +0 -13
  18. package/lib/actions/calculateSpotCheckRates.js +0 -94
  19. package/lib/actions/calculateSpotCheckRates.js.map +0 -1
  20. package/lib/actions/collection.d.ts +0 -2
  21. package/lib/actions/collection.js +0 -26
  22. package/lib/actions/collection.js.map +0 -1
  23. package/lib/actions/confirmDeployment.d.ts +0 -7
  24. package/lib/actions/confirmDeployment.js +0 -31
  25. package/lib/actions/confirmDeployment.js.map +0 -1
  26. package/lib/actions/dashboard_sync_data.d.ts +0 -7
  27. package/lib/actions/dashboard_sync_data.js +0 -30
  28. package/lib/actions/dashboard_sync_data.js.map +0 -1
  29. package/lib/actions/fixStuckPersonnelReview.d.ts +0 -20
  30. package/lib/actions/fixStuckPersonnelReview.js +0 -145
  31. package/lib/actions/fixStuckPersonnelReview.js.map +0 -1
  32. package/lib/actions/hasDuplicateMaterials.d.ts +0 -9
  33. package/lib/actions/hasDuplicateMaterials.js +0 -30
  34. package/lib/actions/hasDuplicateMaterials.js.map +0 -1
  35. package/lib/actions/imageComparison.d.ts +0 -34
  36. package/lib/actions/imageComparison.js +0 -95
  37. package/lib/actions/imageComparison.js.map +0 -1
  38. package/lib/actions/index.d.ts +0 -27
  39. package/lib/actions/index.js +0 -31
  40. package/lib/actions/index.js.map +0 -1
  41. package/lib/actions/initCollaborator.d.ts +0 -13
  42. package/lib/actions/initCollaborator.js +0 -87
  43. package/lib/actions/initCollaborator.js.map +0 -1
  44. package/lib/actions/initUrgentQuota.d.ts +0 -17
  45. package/lib/actions/initUrgentQuota.js +0 -99
  46. package/lib/actions/initUrgentQuota.js.map +0 -1
  47. package/lib/actions/migrateReviewCompletedDate.d.ts +0 -21
  48. package/lib/actions/migrateReviewCompletedDate.js +0 -150
  49. package/lib/actions/migrateReviewCompletedDate.js.map +0 -1
  50. package/lib/actions/migrateSpotCheckData.d.ts +0 -23
  51. package/lib/actions/migrateSpotCheckData.js +0 -143
  52. package/lib/actions/migrateSpotCheckData.js.map +0 -1
  53. package/lib/actions/migrateSpotCheckDepartments.d.ts +0 -25
  54. package/lib/actions/migrateSpotCheckDepartments.js +0 -142
  55. package/lib/actions/migrateSpotCheckDepartments.js.map +0 -1
  56. package/lib/actions/postponeDeployment.d.ts +0 -7
  57. package/lib/actions/postponeDeployment.js +0 -30
  58. package/lib/actions/postponeDeployment.js.map +0 -1
  59. package/lib/actions/postponeReview.d.ts +0 -7
  60. package/lib/actions/postponeReview.js +0 -30
  61. package/lib/actions/postponeReview.js.map +0 -1
  62. package/lib/actions/progress.d.ts +0 -18
  63. package/lib/actions/progress.js +0 -71
  64. package/lib/actions/progress.js.map +0 -1
  65. package/lib/actions/rule.d.ts +0 -7
  66. package/lib/actions/rule.js +0 -27
  67. package/lib/actions/rule.js.map +0 -1
  68. package/lib/actions/sendToContentHub.d.ts +0 -7
  69. package/lib/actions/sendToContentHub.js +0 -37
  70. package/lib/actions/sendToContentHub.js.map +0 -1
  71. package/lib/actions/spotCheckMaterial.d.ts +0 -46
  72. package/lib/actions/spotCheckMaterial.js +0 -591
  73. package/lib/actions/spotCheckMaterial.js.map +0 -1
  74. package/lib/actions/submit.d.ts +0 -7
  75. package/lib/actions/submit.js +0 -48
  76. package/lib/actions/submit.js.map +0 -1
  77. package/lib/actions/submitKids.d.ts +0 -7
  78. package/lib/actions/submitKids.js +0 -30
  79. package/lib/actions/submitKids.js.map +0 -1
  80. package/lib/actions/submitMaterial.d.ts +0 -7
  81. package/lib/actions/submitMaterial.js +0 -30
  82. package/lib/actions/submitMaterial.js.map +0 -1
  83. package/lib/actions/submitPreReview.d.ts +0 -7
  84. package/lib/actions/submitPreReview.js +0 -34
  85. package/lib/actions/submitPreReview.js.map +0 -1
  86. package/lib/actions/terminate.d.ts +0 -7
  87. package/lib/actions/terminate.js +0 -30
  88. package/lib/actions/terminate.js.map +0 -1
  89. package/lib/actions/urgentApproval.d.ts +0 -14
  90. package/lib/actions/urgentApproval.js +0 -51
  91. package/lib/actions/urgentApproval.js.map +0 -1
  92. package/lib/const.d.ts +0 -1
  93. package/lib/const.js +0 -6
  94. package/lib/const.js.map +0 -1
  95. package/lib/index.d.ts +0 -1
  96. package/lib/index.js +0 -1238
  97. package/lib/index.js.map +0 -1
  98. package/lib/methods/AI.d.ts +0 -1
  99. package/lib/methods/AI.js +0 -45
  100. package/lib/methods/AI.js.map +0 -1
  101. package/lib/methods/__tests__/__mocks__/empty.d.ts +0 -2
  102. package/lib/methods/__tests__/__mocks__/empty.js +0 -4
  103. package/lib/methods/__tests__/__mocks__/empty.js.map +0 -1
  104. package/lib/methods/__tests__/postponeReview.test.d.ts +0 -1
  105. package/lib/methods/__tests__/postponeReview.test.js +0 -102
  106. package/lib/methods/__tests__/postponeReview.test.js.map +0 -1
  107. package/lib/methods/__tests__/pre_review_flow.test.d.ts +0 -1
  108. package/lib/methods/__tests__/pre_review_flow.test.js +0 -583
  109. package/lib/methods/__tests__/pre_review_flow.test.js.map +0 -1
  110. package/lib/methods/__tests__/pre_review_helpers.test.d.ts +0 -1
  111. package/lib/methods/__tests__/pre_review_helpers.test.js +0 -306
  112. package/lib/methods/__tests__/pre_review_helpers.test.js.map +0 -1
  113. package/lib/methods/__tests__/urgent.test.d.ts +0 -1
  114. package/lib/methods/__tests__/urgent.test.js +0 -121
  115. package/lib/methods/__tests__/urgent.test.js.map +0 -1
  116. package/lib/methods/agent.d.ts +0 -4
  117. package/lib/methods/agent.js +0 -86
  118. package/lib/methods/agent.js.map +0 -1
  119. package/lib/methods/approval_engine.d.ts +0 -40
  120. package/lib/methods/approval_engine.js +0 -2302
  121. package/lib/methods/approval_engine.js.map +0 -1
  122. package/lib/methods/consts.d.ts +0 -209
  123. package/lib/methods/consts.js +0 -46
  124. package/lib/methods/consts.js.map +0 -1
  125. package/lib/methods/content_hub.d.ts +0 -2
  126. package/lib/methods/content_hub.js +0 -228
  127. package/lib/methods/content_hub.js.map +0 -1
  128. package/lib/methods/dashboard_sync_data.d.ts +0 -4
  129. package/lib/methods/dashboard_sync_data.js +0 -346
  130. package/lib/methods/dashboard_sync_data.js.map +0 -1
  131. package/lib/methods/docx.d.ts +0 -3
  132. package/lib/methods/docx.js +0 -12
  133. package/lib/methods/docx.js.map +0 -1
  134. package/lib/methods/image_comparison.d.ts +0 -39
  135. package/lib/methods/image_comparison.js +0 -454
  136. package/lib/methods/image_comparison.js.map +0 -1
  137. package/lib/methods/index.d.ts +0 -7
  138. package/lib/methods/index.js +0 -11
  139. package/lib/methods/index.js.map +0 -1
  140. package/lib/methods/material.d.ts +0 -15
  141. package/lib/methods/material.js +0 -756
  142. package/lib/methods/material.js.map +0 -1
  143. package/lib/methods/notification.d.ts +0 -4
  144. package/lib/methods/notification.js +0 -270
  145. package/lib/methods/notification.js.map +0 -1
  146. package/lib/methods/password_expiry.d.ts +0 -1
  147. package/lib/methods/password_expiry.js +0 -151
  148. package/lib/methods/password_expiry.js.map +0 -1
  149. package/lib/methods/pls.d.ts +0 -1
  150. package/lib/methods/pls.js +0 -217
  151. package/lib/methods/pls.js.map +0 -1
  152. package/lib/methods/task.d.ts +0 -7
  153. package/lib/methods/task.js +0 -317
  154. package/lib/methods/task.js.map +0 -1
  155. package/lib/methods/urgent.d.ts +0 -20
  156. package/lib/methods/urgent.js +0 -259
  157. package/lib/methods/urgent.js.map +0 -1
@@ -1,259 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.doUrgent = exports.canUrgent = exports.getUrgentQuota = void 0;
4
- var tslib_1 = require("tslib");
5
- var consts_1 = require("./consts");
6
- var HALF_YEAR_QUOTA = 6;
7
- var getUrgentQuota = function (ctx, userId, space) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
8
- var now, year, half, quota, h1_used, h2_used, available, used, total, h1_remaining;
9
- return tslib_1.__generator(this, function (_a) {
10
- switch (_a.label) {
11
- case 0:
12
- now = new Date();
13
- year = now.getFullYear();
14
- half = now.getMonth() < 6 ? 1 : 2;
15
- return [4, ctx.getObject('pepsico_urgent_quota').findOne({
16
- filters: [['user', '=', userId], ['space', '=', space], ['year', '=', year]]
17
- })];
18
- case 1:
19
- quota = _a.sent();
20
- if (!quota) {
21
- return [2, { available: 0, used: 0, total: 0, year: year, half: half, configured: false }];
22
- }
23
- h1_used = (quota === null || quota === void 0 ? void 0 : quota.h1_used) || 0;
24
- h2_used = (quota === null || quota === void 0 ? void 0 : quota.h2_used) || 0;
25
- if (half === 1) {
26
- used = h1_used;
27
- total = HALF_YEAR_QUOTA;
28
- available = Math.max(0, HALF_YEAR_QUOTA - h1_used);
29
- }
30
- else {
31
- h1_remaining = Math.max(0, HALF_YEAR_QUOTA - h1_used);
32
- total = HALF_YEAR_QUOTA + h1_remaining;
33
- used = h2_used;
34
- available = Math.max(0, total - h2_used);
35
- }
36
- return [2, { available: available, used: used, total: total, year: year, half: half, configured: true }];
37
- }
38
- });
39
- }); };
40
- exports.getUrgentQuota = getUrgentQuota;
41
- var canUrgent = function (ctx, approvalId, userId) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
42
- var approval, spaceUser, reviewSteps, postponedUsers, quota;
43
- return tslib_1.__generator(this, function (_a) {
44
- switch (_a.label) {
45
- case 0: return [4, ctx.getObject('pepsico_material_approval').findOne(approvalId)];
46
- case 1:
47
- approval = _a.sent();
48
- if (!approval) {
49
- return [2, { canUrgent: false, reason: '审批单不存在' }];
50
- }
51
- if (approval.is_urgent) {
52
- return [2, { canUrgent: false, reason: '该审批单已处于加急状态' }];
53
- }
54
- if (approval.owner !== userId) {
55
- return [2, { canUrgent: false, reason: '只有发起人可以加急' }];
56
- }
57
- return [4, ctx.getObject('space_users').findOne({
58
- filters: [['user', '=', userId], ['space', '=', approval.space]],
59
- fields: ['is_collaborator']
60
- })];
61
- case 2:
62
- spaceUser = _a.sent();
63
- if ((spaceUser === null || spaceUser === void 0 ? void 0 : spaceUser.is_collaborator) === true) {
64
- return [2, { canUrgent: false, reason: '只有内部用户可以加急' }];
65
- }
66
- reviewSteps = [consts_1.Step.departmental_review, consts_1.Step.personnel_review];
67
- if (!reviewSteps.includes(approval.current_step)) {
68
- return [2, { canUrgent: false, reason: '当前步骤不支持加急' }];
69
- }
70
- postponedUsers = approval.review_postponed_users || [];
71
- if (postponedUsers.length > 0) {
72
- return [2, { canUrgent: false, reason: '存在延后审核人,无法加急' }];
73
- }
74
- return [4, (0, exports.getUrgentQuota)(ctx, userId, approval.space)];
75
- case 3:
76
- quota = _a.sent();
77
- if (!quota.configured) {
78
- return [2, { canUrgent: false, reason: '未配置加急次数', quota: quota }];
79
- }
80
- if (quota.available <= 0) {
81
- return [2, { canUrgent: false, reason: '暂无加急次数', quota: quota }];
82
- }
83
- return [2, { canUrgent: true, quota: quota }];
84
- }
85
- });
86
- }); };
87
- exports.canUrgent = canUrgent;
88
- var sendUrgentNotification = function (ctx, space, approvalId, approvalName, fromUserId, toUserId) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
89
- var error_1, spaceUsers, spaceUsers_1, spaceUsers_1_1, spaceUser, error_2, e_1_1, error_3;
90
- var e_1, _a;
91
- return tslib_1.__generator(this, function (_b) {
92
- switch (_b.label) {
93
- case 0:
94
- _b.trys.push([0, 2, , 3]);
95
- return [4, ctx.broker.call('notifications.add', {
96
- message: {
97
- name: "\u52A0\u6025\u5BA1\u6279\uFF1A ".concat(approvalName),
98
- body: '发起人已标记为加急审核,请优先处理',
99
- related_to: {
100
- o: 'pepsico_material_approval',
101
- ids: [approvalId]
102
- },
103
- related_name: approvalName,
104
- from: fromUserId,
105
- space: space
106
- },
107
- from: fromUserId,
108
- to: toUserId
109
- })];
110
- case 1:
111
- _b.sent();
112
- return [3, 3];
113
- case 2:
114
- error_1 = _b.sent();
115
- console.log('[urgent] sendUrgentNotification notification error', error_1);
116
- return [3, 3];
117
- case 3:
118
- _b.trys.push([3, 15, , 16]);
119
- return [4, ctx.getObject('space_users').find({
120
- filters: [['user', '=', toUserId], ['space', '=', space]]
121
- })];
122
- case 4:
123
- spaceUsers = _b.sent();
124
- _b.label = 5;
125
- case 5:
126
- _b.trys.push([5, 12, 13, 14]);
127
- spaceUsers_1 = tslib_1.__values(spaceUsers), spaceUsers_1_1 = spaceUsers_1.next();
128
- _b.label = 6;
129
- case 6:
130
- if (!!spaceUsers_1_1.done) return [3, 11];
131
- spaceUser = spaceUsers_1_1.value;
132
- if (!spaceUser.email) return [3, 10];
133
- _b.label = 7;
134
- case 7:
135
- _b.trys.push([7, 9, , 10]);
136
- return [4, ctx.broker.call('@builder6/email.send', {
137
- to: spaceUser.email,
138
- subject: "[\u52A0\u6025\u5BA1\u6838] ".concat(approvalName),
139
- html: "\n <p>\u60A8\u6709\u4E00\u4EFD\u5BA1\u6279\u5355\u88AB\u6807\u8BB0\u4E3A<strong>\u52A0\u6025\u5BA1\u6838</strong>\uFF0C\u8BF7\u4F18\u5148\u5904\u7406\u3002</p>\n <a href=\"".concat(process.env.ROOT_URL, "/app/pepsico_content_review/pepsico_material_approval/view/").concat(approvalId, "?side_object=pepsico_material_approval&side_listview_id=pending\">").concat(approvalName, "</a>\n ")
140
- })];
141
- case 8:
142
- _b.sent();
143
- return [3, 10];
144
- case 9:
145
- error_2 = _b.sent();
146
- console.log('[urgent] sendUrgentNotification email error', error_2);
147
- return [3, 10];
148
- case 10:
149
- spaceUsers_1_1 = spaceUsers_1.next();
150
- return [3, 6];
151
- case 11: return [3, 14];
152
- case 12:
153
- e_1_1 = _b.sent();
154
- e_1 = { error: e_1_1 };
155
- return [3, 14];
156
- case 13:
157
- try {
158
- if (spaceUsers_1_1 && !spaceUsers_1_1.done && (_a = spaceUsers_1.return)) _a.call(spaceUsers_1);
159
- }
160
- finally { if (e_1) throw e_1.error; }
161
- return [7];
162
- case 14: return [3, 16];
163
- case 15:
164
- error_3 = _b.sent();
165
- console.log('[urgent] sendUrgentNotification spaceUsers error', error_3);
166
- return [3, 16];
167
- case 16: return [2];
168
- }
169
- });
170
- }); };
171
- var doUrgent = function (ctx, approvalId, userId) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
172
- var check, approval, _a, year, half, used, total, existingQuota, updateField, pendingApprovers, pendingApprovers_1, pendingApprovers_1_1, approverId, e_2_1, newUsed, newAvailable;
173
- var _b, e_2, _c;
174
- return tslib_1.__generator(this, function (_d) {
175
- switch (_d.label) {
176
- case 0: return [4, (0, exports.canUrgent)(ctx, approvalId, userId)];
177
- case 1:
178
- check = _d.sent();
179
- if (!check.canUrgent) {
180
- throw new Error(check.reason);
181
- }
182
- return [4, ctx.getObject('pepsico_material_approval').findOne(approvalId)];
183
- case 2:
184
- approval = _d.sent();
185
- _a = check.quota, year = _a.year, half = _a.half, used = _a.used, total = _a.total;
186
- return [4, ctx.getObject('pepsico_urgent_quota').findOne({
187
- filters: [['user', '=', userId], ['space', '=', approval.space], ['year', '=', year]]
188
- })];
189
- case 3:
190
- existingQuota = _d.sent();
191
- if (!existingQuota) {
192
- throw new Error('未配置加急次数');
193
- }
194
- updateField = half === 1 ? 'h1_used' : 'h2_used';
195
- return [4, ctx.getObject('pepsico_urgent_quota').directUpdate(existingQuota._id, (_b = {},
196
- _b[updateField] = (existingQuota[updateField] || 0) + 1,
197
- _b))];
198
- case 4:
199
- _d.sent();
200
- return [4, ctx.getObject('pepsico_material_approval').directUpdate(approvalId, {
201
- is_urgent: true,
202
- urgent_times: (approval.urgent_times || 0) + 1,
203
- urgent_at: new Date()
204
- })];
205
- case 5:
206
- _d.sent();
207
- return [4, ctx.getObject('pepsico_urgent_log').insert({
208
- approval: approvalId,
209
- approval_name: approval.name,
210
- operator: userId,
211
- space: approval.space,
212
- year: year,
213
- half: half
214
- })];
215
- case 6:
216
- _d.sent();
217
- pendingApprovers = Array.isArray(approval.person_pending_approve)
218
- ? approval.person_pending_approve
219
- : [];
220
- _d.label = 7;
221
- case 7:
222
- _d.trys.push([7, 12, 13, 14]);
223
- pendingApprovers_1 = tslib_1.__values(pendingApprovers), pendingApprovers_1_1 = pendingApprovers_1.next();
224
- _d.label = 8;
225
- case 8:
226
- if (!!pendingApprovers_1_1.done) return [3, 11];
227
- approverId = pendingApprovers_1_1.value;
228
- return [4, sendUrgentNotification(ctx, approval.space, approvalId, approval.name, userId, approverId)];
229
- case 9:
230
- _d.sent();
231
- _d.label = 10;
232
- case 10:
233
- pendingApprovers_1_1 = pendingApprovers_1.next();
234
- return [3, 8];
235
- case 11: return [3, 14];
236
- case 12:
237
- e_2_1 = _d.sent();
238
- e_2 = { error: e_2_1 };
239
- return [3, 14];
240
- case 13:
241
- try {
242
- if (pendingApprovers_1_1 && !pendingApprovers_1_1.done && (_c = pendingApprovers_1.return)) _c.call(pendingApprovers_1);
243
- }
244
- finally { if (e_2) throw e_2.error; }
245
- return [7];
246
- case 14:
247
- newUsed = used + 1;
248
- newAvailable = Math.max(0, total - newUsed);
249
- return [2, {
250
- message: "\u52A0\u6025\u6210\u529F\uFF01\u5DF2\u4F7F\u7528 ".concat(newUsed, " \u6B21\uFF0C\u5269\u4F59 ").concat(newAvailable, " \u6B21"),
251
- used: newUsed,
252
- available: newAvailable,
253
- total: total
254
- }];
255
- }
256
- });
257
- }); };
258
- exports.doUrgent = doUrgent;
259
- //# sourceMappingURL=urgent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"urgent.js","sourceRoot":"","sources":["../../src/methods/urgent.ts"],"names":[],"mappings":";;;;AAMA,mCAAkD;AAElD,IAAM,eAAe,GAAG,CAAC,CAAC;AAcnB,IAAM,cAAc,GAAG,UAAO,GAAG,EAAE,MAAc,EAAE,KAAa;;;;;gBAC7D,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;gBACjB,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;gBACzB,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE1B,WAAM,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC;wBAC9D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;qBAC/E,CAAC,EAAA;;gBAFI,KAAK,GAAG,SAEZ;gBAEF,IAAI,CAAC,KAAK,EAAE;oBACR,WAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,UAAU,EAAE,KAAK,EAAE,EAAC;iBAC7E;gBAEK,OAAO,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,CAAC,CAAC;gBAC9B,OAAO,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,CAAC,CAAC;gBAMpC,IAAI,IAAI,KAAK,CAAC,EAAE;oBACZ,IAAI,GAAG,OAAO,CAAC;oBACf,KAAK,GAAG,eAAe,CAAC;oBACxB,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,CAAC;iBACtD;qBAAM;oBAEG,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,CAAC;oBAC5D,KAAK,GAAG,eAAe,GAAG,YAAY,CAAC;oBACvC,IAAI,GAAG,OAAO,CAAC;oBACf,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC;iBAC5C;gBAED,WAAO,EAAE,SAAS,WAAA,EAAE,IAAI,MAAA,EAAE,KAAK,OAAA,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,UAAU,EAAE,IAAI,EAAE,EAAC;;;KACnE,CAAC;AAjCW,QAAA,cAAc,kBAiCzB;AAKK,IAAM,SAAS,GAAG,UAAO,GAAG,EAAE,UAAkB,EAAE,MAAc;;;;oBAKhC,WAAM,GAAG,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAA;;gBAAjG,QAAQ,GAAqB,SAAoE;gBAEvG,IAAI,CAAC,QAAQ,EAAE;oBACX,WAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAC;iBACjD;gBAGD,IAAI,QAAQ,CAAC,SAAS,EAAE;oBACpB,WAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,EAAC;iBACtD;gBAGD,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM,EAAE;oBAC3B,WAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAC;iBACpD;gBAGiB,WAAM,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC;wBACzD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;wBAChE,MAAM,EAAE,CAAC,iBAAiB,CAAC;qBAC9B,CAAC,EAAA;;gBAHI,SAAS,GAAG,SAGhB;gBACF,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,eAAe,MAAK,IAAI,EAAE;oBACrC,WAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAC;iBACrD;gBAIK,WAAW,GAAW,CAAC,aAAI,CAAC,mBAAmB,EAAE,aAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC9E,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;oBAC9C,WAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAC;iBACpD;gBAGK,cAAc,GAAG,QAAQ,CAAC,sBAAsB,IAAI,EAAE,CAAC;gBAC7D,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3B,WAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,EAAC;iBACvD;gBAGa,WAAM,IAAA,sBAAc,EAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAA;;gBAAzD,KAAK,GAAG,SAAiD;gBAC/D,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;oBACnB,WAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,OAAA,EAAE,EAAC;iBACzD;gBACD,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,EAAE;oBACtB,WAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,OAAA,EAAE,EAAC;iBACxD;gBAED,WAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,OAAA,EAAE,EAAC;;;KACrC,CAAC;AArDW,QAAA,SAAS,aAqDpB;AAKF,IAAM,sBAAsB,GAAG,UAC3B,GAAG,EACH,KAAa,EACb,UAAkB,EAClB,YAAoB,EACpB,UAAkB,EAClB,QAAgB;;;;;;;gBAIZ,WAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;wBACvC,OAAO,EAAE;4BACL,IAAI,EAAE,yCAAS,YAAY,CAAE;4BAC7B,IAAI,EAAE,mBAAmB;4BACzB,UAAU,EAAE;gCACR,CAAC,EAAE,2BAA2B;gCAC9B,GAAG,EAAE,CAAC,UAAU,CAAC;6BACpB;4BACD,YAAY,EAAE,YAAY;4BAC1B,IAAI,EAAE,UAAU;4BAChB,KAAK,OAAA;yBACR;wBACD,IAAI,EAAE,UAAU;wBAChB,EAAE,EAAE,QAAQ;qBACf,CAAC,EAAA;;gBAdF,SAcE,CAAC;;;;gBAEH,OAAO,CAAC,GAAG,CAAC,oDAAoD,EAAE,OAAK,CAAC,CAAC;;;;gBAKtD,WAAM,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC;wBACvD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;qBAC5D,CAAC,EAAA;;gBAFI,UAAU,GAAG,SAEjB;;;;gBACsB,eAAA,iBAAA,UAAU,CAAA;;;;gBAAvB,SAAS;qBACZ,SAAS,CAAC,KAAK,EAAf,eAAe;;;;gBAEX,WAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;wBAC1C,EAAE,EAAE,SAAS,CAAC,KAAK;wBACnB,OAAO,EAAE,qCAAU,YAAY,CAAE;wBACjC,IAAI,EAAE,4OAES,OAAO,CAAC,GAAG,CAAC,QAAQ,wEAA8D,UAAU,+EAAoE,YAAY,mCAC1L;qBACJ,CAAC,EAAA;;gBAPF,SAOE,CAAC;;;;gBAEH,OAAO,CAAC,GAAG,CAAC,6CAA6C,EAAE,OAAK,CAAC,CAAC;;;;;;;;;;;;;;;;;;;gBAK9E,OAAO,CAAC,GAAG,CAAC,kDAAkD,EAAE,OAAK,CAAC,CAAC;;;;;KAE9E,CAAC;AAMK,IAAM,QAAQ,GAAG,UAAO,GAAG,EAAE,UAAkB,EAAE,MAAc;;;;;oBAMpD,WAAM,IAAA,iBAAS,EAAC,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,EAAA;;gBAAhD,KAAK,GAAG,SAAwC;gBACtD,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;oBAClB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;iBACjC;gBAEkC,WAAM,GAAG,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAA;;gBAAjG,QAAQ,GAAqB,SAAoE;gBACjG,KAA8B,KAAK,CAAC,KAAM,EAAxC,IAAI,UAAA,EAAE,IAAI,UAAA,EAAE,IAAI,UAAA,EAAE,KAAK,WAAA,CAAkB;gBAG3B,WAAM,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC;wBACtE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;qBACxF,CAAC,EAAA;;gBAFI,aAAa,GAAG,SAEpB;gBACF,IAAI,CAAC,aAAa,EAAE;oBAChB,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;iBAC9B;gBAEK,WAAW,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;gBACvD,WAAM,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG;wBACtE,GAAC,WAAW,IAAG,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;4BACtD,EAAA;;gBAFF,SAEE,CAAC;gBAGH,WAAM,GAAG,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE;wBACtE,SAAS,EAAE,IAAI;wBACf,YAAY,EAAE,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC;wBAC9C,SAAS,EAAE,IAAI,IAAI,EAAE;qBACxB,CAAC,EAAA;;gBAJF,SAIE,CAAC;gBAGH,WAAM,GAAG,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC;wBAC7C,QAAQ,EAAE,UAAU;wBACpB,aAAa,EAAE,QAAQ,CAAC,IAAI;wBAC5B,QAAQ,EAAE,MAAM;wBAChB,KAAK,EAAE,QAAQ,CAAC,KAAK;wBACrB,IAAI,MAAA;wBACJ,IAAI,MAAA;qBACP,CAAC,EAAA;;gBAPF,SAOE,CAAC;gBAGG,gBAAgB,GAAa,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC;oBAC7E,CAAC,CAAC,QAAQ,CAAC,sBAAsB;oBACjC,CAAC,CAAC,EAAE,CAAC;;;;gBAEgB,qBAAA,iBAAA,gBAAgB,CAAA;;;;gBAA9B,UAAU;gBACjB,WAAM,sBAAsB,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAA;;gBAAhG,SAAgG,CAAC;;;;;;;;;;;;;;;;;gBAI/F,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC;gBACnB,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC;gBAElD,WAAO;wBACH,OAAO,EAAE,2DAAY,OAAO,uCAAS,YAAY,YAAI;wBACrD,IAAI,EAAE,OAAO;wBACb,SAAS,EAAE,YAAY;wBACvB,KAAK,OAAA;qBACR,EAAC;;;KACL,CAAC;AA/DW,QAAA,QAAQ,YA+DnB"}