@acorex/connectivity 20.8.23 → 20.9.0

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 (119) hide show
  1. package/fesm2022/{acorex-connectivity-api-execute.command-D2Q0ahw4.mjs → acorex-connectivity-api-execute.command-CjCFEav4.mjs} +16 -6
  2. package/fesm2022/acorex-connectivity-api-execute.command-CjCFEav4.mjs.map +1 -0
  3. package/fesm2022/acorex-connectivity-api.mjs +202 -47
  4. package/fesm2022/acorex-connectivity-api.mjs.map +1 -1
  5. package/fesm2022/acorex-connectivity-mock-acorex-connectivity-mock-g0RVU1Og.mjs +90679 -0
  6. package/fesm2022/acorex-connectivity-mock-acorex-connectivity-mock-g0RVU1Og.mjs.map +1 -0
  7. package/fesm2022/acorex-connectivity-mock-assign-to-manager.activity-CTrrsAvF.mjs +288 -0
  8. package/fesm2022/acorex-connectivity-mock-assign-to-manager.activity-CTrrsAvF.mjs.map +1 -0
  9. package/fesm2022/acorex-connectivity-mock-category-metadata-inheritance.query-CIof4zTg.mjs +200 -0
  10. package/fesm2022/acorex-connectivity-mock-category-metadata-inheritance.query-CIof4zTg.mjs.map +1 -0
  11. package/fesm2022/{acorex-connectivity-mock-category-with-items.query-DWW7t6nc.mjs → acorex-connectivity-mock-category-with-items.query-DAKUJIIt.mjs} +18 -17
  12. package/fesm2022/acorex-connectivity-mock-category-with-items.query-DAKUJIIt.mjs.map +1 -0
  13. package/fesm2022/acorex-connectivity-mock-chat-generate-image.command-CSbgiZEm.mjs +110 -0
  14. package/fesm2022/acorex-connectivity-mock-chat-generate-image.command-CSbgiZEm.mjs.map +1 -0
  15. package/fesm2022/acorex-connectivity-mock-chat-synthesize-speech.command-CjdySQzM.mjs +120 -0
  16. package/fesm2022/acorex-connectivity-mock-chat-synthesize-speech.command-CjdySQzM.mjs.map +1 -0
  17. package/fesm2022/acorex-connectivity-mock-chat-transcribe-speech.command-Wm1Ao81s.mjs +120 -0
  18. package/fesm2022/acorex-connectivity-mock-chat-transcribe-speech.command-Wm1Ao81s.mjs.map +1 -0
  19. package/fesm2022/{acorex-connectivity-mock-check-permission.command-DFcxfjxp.mjs → acorex-connectivity-mock-check-permission.activity-vr3OHtjC.mjs} +8 -16
  20. package/fesm2022/acorex-connectivity-mock-check-permission.activity-vr3OHtjC.mjs.map +1 -0
  21. package/fesm2022/acorex-connectivity-mock-content-management.module-GQdqKsPB.mjs +16 -0
  22. package/fesm2022/acorex-connectivity-mock-content-management.module-GQdqKsPB.mjs.map +1 -0
  23. package/fesm2022/{acorex-connectivity-mock-distribution-record.command-BopU0LyU.mjs → acorex-connectivity-mock-distribution-record.activity-a1_k9Czb.mjs} +29 -14
  24. package/fesm2022/acorex-connectivity-mock-distribution-record.activity-a1_k9Czb.mjs.map +1 -0
  25. package/fesm2022/acorex-connectivity-mock-entity-create.activity-CdoUzUvF.mjs +67 -0
  26. package/fesm2022/acorex-connectivity-mock-entity-create.activity-CdoUzUvF.mjs.map +1 -0
  27. package/fesm2022/acorex-connectivity-mock-entity-delete.activity-ErEN1c24.mjs +60 -0
  28. package/fesm2022/acorex-connectivity-mock-entity-delete.activity-ErEN1c24.mjs.map +1 -0
  29. package/fesm2022/acorex-connectivity-mock-entity-read.activity-1fJW8gVe.mjs +67 -0
  30. package/fesm2022/acorex-connectivity-mock-entity-read.activity-1fJW8gVe.mjs.map +1 -0
  31. package/fesm2022/acorex-connectivity-mock-entity-update.activity-06HTKiQQ.mjs +68 -0
  32. package/fesm2022/acorex-connectivity-mock-entity-update.activity-06HTKiQQ.mjs.map +1 -0
  33. package/fesm2022/acorex-connectivity-mock-extract-document-text.command-nGfUTSf6.mjs +64 -0
  34. package/fesm2022/acorex-connectivity-mock-extract-document-text.command-nGfUTSf6.mjs.map +1 -0
  35. package/fesm2022/{acorex-connectivity-mock-get-application-versions-chart-data.query-uwDUrbFJ.mjs → acorex-connectivity-mock-get-application-versions-chart-data.query-DwVuYuKx.mjs} +4 -4
  36. package/fesm2022/acorex-connectivity-mock-get-application-versions-chart-data.query-DwVuYuKx.mjs.map +1 -0
  37. package/fesm2022/{acorex-connectivity-mock-get-application-versions-timeline.query-BHjQYTyZ.mjs → acorex-connectivity-mock-get-application-versions-timeline.query-sFKYynZA.mjs} +4 -4
  38. package/fesm2022/acorex-connectivity-mock-get-application-versions-timeline.query-sFKYynZA.mjs.map +1 -0
  39. package/fesm2022/acorex-connectivity-mock-get-current-session-user.activity-CsmxwXsM.mjs +39 -0
  40. package/fesm2022/acorex-connectivity-mock-get-current-session-user.activity-CsmxwXsM.mjs.map +1 -0
  41. package/fesm2022/acorex-connectivity-mock-get-current-user-manager.activity-C1mj2bgB.mjs +69 -0
  42. package/fesm2022/acorex-connectivity-mock-get-current-user-manager.activity-C1mj2bgB.mjs.map +1 -0
  43. package/fesm2022/{acorex-connectivity-mock-get-employee-list.query-Ch-Vh5GE.mjs → acorex-connectivity-mock-get-employee-list.query-BWbZj3tp.mjs} +8 -7
  44. package/fesm2022/acorex-connectivity-mock-get-employee-list.query-BWbZj3tp.mjs.map +1 -0
  45. package/fesm2022/{acorex-connectivity-mock-get-location-list.query-Xbc6d8kb.mjs → acorex-connectivity-mock-get-location-list.query-CQ2rFDUM.mjs} +5 -5
  46. package/fesm2022/acorex-connectivity-mock-get-location-list.query-CQ2rFDUM.mjs.map +1 -0
  47. package/fesm2022/{acorex-connectivity-mock-get-product-chart-data.query-m8_ME45B.mjs → acorex-connectivity-mock-get-product-chart-data.query-D7DBzLT-.mjs} +4 -4
  48. package/fesm2022/acorex-connectivity-mock-get-product-chart-data.query-D7DBzLT-.mjs.map +1 -0
  49. package/fesm2022/{acorex-connectivity-mock-get-product-list.query-DzkssYRw.mjs → acorex-connectivity-mock-get-product-list.query-o9TcY_RC.mjs} +20 -12
  50. package/fesm2022/acorex-connectivity-mock-get-product-list.query-o9TcY_RC.mjs.map +1 -0
  51. package/fesm2022/{acorex-connectivity-mock-get-product-pdf-data.query-wMD65pwR.mjs → acorex-connectivity-mock-get-product-pdf-data.query-DUZvwsmY.mjs} +5 -5
  52. package/fesm2022/acorex-connectivity-mock-get-product-pdf-data.query-DUZvwsmY.mjs.map +1 -0
  53. package/fesm2022/{acorex-connectivity-mock-get-subscriptions-chart-data.query-DBOT_0IN.mjs → acorex-connectivity-mock-get-subscriptions-chart-data.query-BXDzY2Sd.mjs} +5 -5
  54. package/fesm2022/acorex-connectivity-mock-get-subscriptions-chart-data.query-BXDzY2Sd.mjs.map +1 -0
  55. package/fesm2022/{acorex-connectivity-mock-get-subscriptions-timeline.query-DBEEbeiS.mjs → acorex-connectivity-mock-get-subscriptions-timeline.query-D_jVT-7a.mjs} +6 -6
  56. package/fesm2022/acorex-connectivity-mock-get-subscriptions-timeline.query-D_jVT-7a.mjs.map +1 -0
  57. package/fesm2022/{acorex-connectivity-mock-get-tenant-application-access.query-BM9toJ45.mjs → acorex-connectivity-mock-get-tenant-application-access.query-BG6t0137.mjs} +6 -6
  58. package/fesm2022/acorex-connectivity-mock-get-tenant-application-access.query-BG6t0137.mjs.map +1 -0
  59. package/fesm2022/{acorex-connectivity-mock-get-tenant-registration-chart-data.query-CACCBXn-.mjs → acorex-connectivity-mock-get-tenant-registration-chart-data.query-CgMZxfzh.mjs} +5 -5
  60. package/fesm2022/acorex-connectivity-mock-get-tenant-registration-chart-data.query-CgMZxfzh.mjs.map +1 -0
  61. package/fesm2022/{acorex-connectivity-mock-get-tenant-registration-timeline.query-CfDjhtaC.mjs → acorex-connectivity-mock-get-tenant-registration-timeline.query-COmTsDCV.mjs} +5 -5
  62. package/fesm2022/acorex-connectivity-mock-get-tenant-registration-timeline.query-COmTsDCV.mjs.map +1 -0
  63. package/fesm2022/{acorex-connectivity-mock-get-tenant-user-distribution.query-CZXvavUh.mjs → acorex-connectivity-mock-get-tenant-user-distribution.query-gqSqvIaa.mjs} +6 -6
  64. package/fesm2022/acorex-connectivity-mock-get-tenant-user-distribution.query-gqSqvIaa.mjs.map +1 -0
  65. package/fesm2022/acorex-connectivity-mock-if.activity-DvzuhItL.mjs +35 -0
  66. package/fesm2022/acorex-connectivity-mock-if.activity-DvzuhItL.mjs.map +1 -0
  67. package/fesm2022/acorex-connectivity-mock-index-D0jdkk2E.mjs +99 -0
  68. package/fesm2022/acorex-connectivity-mock-index-D0jdkk2E.mjs.map +1 -0
  69. package/fesm2022/acorex-connectivity-mock-jira-instance-sync.command-CaOd4PJa.mjs +474 -0
  70. package/fesm2022/acorex-connectivity-mock-jira-instance-sync.command-CaOd4PJa.mjs.map +1 -0
  71. package/fesm2022/acorex-connectivity-mock-notification-management-email-send.command-BuH_Lm6V.mjs +72 -0
  72. package/fesm2022/acorex-connectivity-mock-notification-management-email-send.command-BuH_Lm6V.mjs.map +1 -0
  73. package/fesm2022/acorex-connectivity-mock-report-summary.util-CGOhHIZr.mjs +56 -0
  74. package/fesm2022/acorex-connectivity-mock-report-summary.util-CGOhHIZr.mjs.map +1 -0
  75. package/fesm2022/{acorex-connectivity-mock-sample.command-CXz1poTn.mjs → acorex-connectivity-mock-sample.command-CJmDL4pL.mjs} +4 -4
  76. package/fesm2022/acorex-connectivity-mock-sample.command-CJmDL4pL.mjs.map +1 -0
  77. package/fesm2022/acorex-connectivity-mock-structured-text-completion.command-l31pjl9-.mjs +38 -0
  78. package/fesm2022/acorex-connectivity-mock-structured-text-completion.command-l31pjl9-.mjs.map +1 -0
  79. package/fesm2022/acorex-connectivity-mock-user-roles-for-list-column.query-wRFHOp-X.mjs +30 -0
  80. package/fesm2022/acorex-connectivity-mock-user-roles-for-list-column.query-wRFHOp-X.mjs.map +1 -0
  81. package/fesm2022/acorex-connectivity-mock.mjs +2 -51673
  82. package/fesm2022/acorex-connectivity-mock.mjs.map +1 -1
  83. package/fesm2022/acorex-connectivity-utils.mjs +7 -7
  84. package/fesm2022/acorex-connectivity-utils.mjs.map +1 -1
  85. package/fesm2022/acorex-connectivity.mjs.map +1 -1
  86. package/package.json +8 -7
  87. package/{api/index.d.ts → types/acorex-connectivity-api.d.ts} +21 -2
  88. package/types/acorex-connectivity-mock.d.ts +4136 -0
  89. package/fesm2022/acorex-connectivity-api-execute.command-D2Q0ahw4.mjs.map +0 -1
  90. package/fesm2022/acorex-connectivity-mock-assign-to-manager.command-CzzTHBVX.mjs +0 -66
  91. package/fesm2022/acorex-connectivity-mock-assign-to-manager.command-CzzTHBVX.mjs.map +0 -1
  92. package/fesm2022/acorex-connectivity-mock-category-with-items.query-DWW7t6nc.mjs.map +0 -1
  93. package/fesm2022/acorex-connectivity-mock-check-permission.command-DFcxfjxp.mjs.map +0 -1
  94. package/fesm2022/acorex-connectivity-mock-complete-signature-process.command-BG_rxbUl.mjs +0 -80
  95. package/fesm2022/acorex-connectivity-mock-complete-signature-process.command-BG_rxbUl.mjs.map +0 -1
  96. package/fesm2022/acorex-connectivity-mock-distribution-record.command-BopU0LyU.mjs.map +0 -1
  97. package/fesm2022/acorex-connectivity-mock-get-application-versions-chart-data.query-uwDUrbFJ.mjs.map +0 -1
  98. package/fesm2022/acorex-connectivity-mock-get-application-versions-timeline.query-BHjQYTyZ.mjs.map +0 -1
  99. package/fesm2022/acorex-connectivity-mock-get-employee-list.query-Ch-Vh5GE.mjs.map +0 -1
  100. package/fesm2022/acorex-connectivity-mock-get-location-list.query-Xbc6d8kb.mjs.map +0 -1
  101. package/fesm2022/acorex-connectivity-mock-get-product-chart-data.query-m8_ME45B.mjs.map +0 -1
  102. package/fesm2022/acorex-connectivity-mock-get-product-list.query-DzkssYRw.mjs.map +0 -1
  103. package/fesm2022/acorex-connectivity-mock-get-product-pdf-data.query-wMD65pwR.mjs.map +0 -1
  104. package/fesm2022/acorex-connectivity-mock-get-subscriptions-chart-data.query-DBOT_0IN.mjs.map +0 -1
  105. package/fesm2022/acorex-connectivity-mock-get-subscriptions-timeline.query-DBEEbeiS.mjs.map +0 -1
  106. package/fesm2022/acorex-connectivity-mock-get-tenant-application-access.query-BM9toJ45.mjs.map +0 -1
  107. package/fesm2022/acorex-connectivity-mock-get-tenant-registration-chart-data.query-CACCBXn-.mjs.map +0 -1
  108. package/fesm2022/acorex-connectivity-mock-get-tenant-registration-timeline.query-CfDjhtaC.mjs.map +0 -1
  109. package/fesm2022/acorex-connectivity-mock-get-tenant-user-distribution.query-CZXvavUh.mjs.map +0 -1
  110. package/fesm2022/acorex-connectivity-mock-notify-signers.command-BV-b8NBg.mjs +0 -69
  111. package/fesm2022/acorex-connectivity-mock-notify-signers.command-BV-b8NBg.mjs.map +0 -1
  112. package/fesm2022/acorex-connectivity-mock-request-signature.command-DZyVnhAp.mjs +0 -72
  113. package/fesm2022/acorex-connectivity-mock-request-signature.command-DZyVnhAp.mjs.map +0 -1
  114. package/fesm2022/acorex-connectivity-mock-sample.command-CXz1poTn.mjs.map +0 -1
  115. package/fesm2022/acorex-connectivity-mock-validate-all-signatures.command-leYngRtS.mjs +0 -81
  116. package/fesm2022/acorex-connectivity-mock-validate-all-signatures.command-leYngRtS.mjs.map +0 -1
  117. package/mock/index.d.ts +0 -3022
  118. /package/{utils/index.d.ts → types/acorex-connectivity-utils.d.ts} +0 -0
  119. /package/{index.d.ts → types/acorex-connectivity.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-connectivity-mock-notification-management-email-send.command-BuH_Lm6V.mjs","sources":["../../../../libs/connectivity/mock/src/lib/notification-management/commands/notification-management-email-send.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPCommand } from '@acorex/platform/runtime-contracts';\nimport { AXPDataGenerator, AXPExecuteCommandResult } from '@acorex/platform/contracts';\n\nimport type {\n NotificationManagementEmailSendInput,\n NotificationManagementEmailSendResult,\n} from '@acorex/modules/notification-management';\nimport { AXToastService } from '@acorex/components/toast';\nimport { inject, Injectable } from '@angular/core';\n\n//#endregion\n\n//#region ---- Input parsing ----\n\nfunction parseSendInput(\n raw: unknown,\n): { ok: true; value: NotificationManagementEmailSendInput } | { ok: false; error: string } {\n const obj =\n raw != null && typeof raw === 'object' && !Array.isArray(raw) ? (raw as Record<string, unknown>) : null;\n if (!obj) {\n return { ok: false, error: 'Invalid arguments: expected an object.' };\n }\n const to = typeof obj['to'] === 'string' ? obj['to'].trim() : '';\n const subject = typeof obj['subject'] === 'string' ? obj['subject'].trim() : '';\n const body = typeof obj['body'] === 'string' ? obj['body'].trim() : '';\n if (!to) {\n return { ok: false, error: 'Invalid arguments: \"to\" is required.' };\n }\n if (!subject) {\n return { ok: false, error: 'Invalid arguments: \"subject\" is required.' };\n }\n if (!body) {\n return { ok: false, error: 'Invalid arguments: \"body\" is required.' };\n }\n const cc = typeof obj['cc'] === 'string' ? obj['cc'].trim() : '';\n const bcc = typeof obj['bcc'] === 'string' ? obj['bcc'].trim() : '';\n const tid = typeof obj['textTemplateId'] === 'string' ? obj['textTemplateId'].trim() : '';\n return {\n ok: true,\n value: {\n to,\n subject,\n body,\n ...(cc ? { cc } : {}),\n ...(bcc ? { bcc } : {}),\n ...(tid ? { textTemplateId: tid } : {}),\n },\n };\n}\n\n//#endregion\n\n//#region ---- Mock send command ----\n\nconst MOCK_SEND_LATENCY_MS = 120;\n\n@Injectable()\nexport class NotificationManagementEmailSendMockCommand\n implements AXPCommand<NotificationManagementEmailSendInput, NotificationManagementEmailSendResult> {\n private readonly toastService = inject(AXToastService);\n\n async execute(\n input: NotificationManagementEmailSendInput,\n ): Promise<AXPExecuteCommandResult<NotificationManagementEmailSendResult>> {\n await new Promise<void>((resolve) => setTimeout(resolve, MOCK_SEND_LATENCY_MS));\n const parsed = parseSendInput(input);\n if (!parsed.ok) {\n return { success: false, message: { text: parsed.error } };\n }\n // Mock transport: surface as UI toast only; replace with HTTP when backend exists.\n this.toastService.show({\n color: 'warning',\n title: 'Email send (simulation)',\n content: `No email was delivered — mock only.\\n To: ${parsed.value.to}.\\n Subject: ${parsed.value.subject}.`,\n });\n return {\n success: true,\n data: { messageId: AXPDataGenerator.uuid() },\n };\n }\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ //#region ---- Summary Computation ----
2
+ /**
3
+ * Computes server-side report footer totals over the full filtered dataset (before pagination).
4
+ */
5
+ function computeReportFooterSummary(rows, summaryConfig) {
6
+ const specs = summaryConfig?.filter((s) => s.displayIn === 'reportFooter') ?? [];
7
+ if (specs.length === 0) {
8
+ return undefined;
9
+ }
10
+ const result = {};
11
+ for (const spec of specs) {
12
+ result[spec.field] = computeSummaryOperation(rows, spec.field, spec.operation);
13
+ }
14
+ return result;
15
+ }
16
+ function computeSummaryOperation(rows, field, operation) {
17
+ if (operation === 'count') {
18
+ const count = rows.filter((row) => row[field] != null && row[field] !== '').length;
19
+ return count;
20
+ }
21
+ const numbers = rows
22
+ .map((row) => toNumber(row[field]))
23
+ .filter((n) => n !== null);
24
+ if (numbers.length === 0) {
25
+ return null;
26
+ }
27
+ switch (operation) {
28
+ case 'sum':
29
+ return roundDecimal(numbers.reduce((acc, n) => acc + n, 0));
30
+ case 'avg':
31
+ return roundDecimal(numbers.reduce((acc, n) => acc + n, 0) / numbers.length);
32
+ case 'min':
33
+ return roundDecimal(Math.min(...numbers));
34
+ case 'max':
35
+ return roundDecimal(Math.max(...numbers));
36
+ default:
37
+ return null;
38
+ }
39
+ }
40
+ function roundDecimal(value, decimals = 2) {
41
+ return Number(value.toFixed(decimals));
42
+ }
43
+ function toNumber(value) {
44
+ if (typeof value === 'number' && Number.isFinite(value)) {
45
+ return value;
46
+ }
47
+ if (typeof value === 'string' && value.trim().length > 0) {
48
+ const parsed = Number(value);
49
+ return Number.isFinite(parsed) ? parsed : null;
50
+ }
51
+ return null;
52
+ }
53
+ //#endregion
54
+
55
+ export { computeReportFooterSummary as c };
56
+ //# sourceMappingURL=acorex-connectivity-mock-report-summary.util-CGOhHIZr.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-connectivity-mock-report-summary.util-CGOhHIZr.mjs","sources":["../../../../libs/connectivity/mock/src/lib/report-management/report-summary.util.ts"],"sourcesContent":["import { AXPReportSummaryOptions } from '@acorex/modules/report-management';\n\n//#region ---- Summary Computation ----\n\n/**\n * Computes server-side report footer totals over the full filtered dataset (before pagination).\n */\nexport function computeReportFooterSummary(\n rows: Record<string, unknown>[],\n summaryConfig: AXPReportSummaryOptions[] | undefined,\n): Record<string, number | null> | undefined {\n const specs = summaryConfig?.filter((s) => s.displayIn === 'reportFooter') ?? [];\n if (specs.length === 0) {\n return undefined;\n }\n\n const result: Record<string, number | null> = {};\n\n for (const spec of specs) {\n result[spec.field] = computeSummaryOperation(rows, spec.field, spec.operation);\n }\n\n return result;\n}\n\nfunction computeSummaryOperation(\n rows: Record<string, unknown>[],\n field: string,\n operation: AXPReportSummaryOptions['operation'],\n): number | null {\n if (operation === 'count') {\n const count = rows.filter((row) => row[field] != null && row[field] !== '').length;\n return count;\n }\n\n const numbers = rows\n .map((row) => toNumber(row[field]))\n .filter((n): n is number => n !== null);\n\n if (numbers.length === 0) {\n return null;\n }\n\n switch (operation) {\n case 'sum':\n return roundDecimal(numbers.reduce((acc, n) => acc + n, 0));\n case 'avg':\n return roundDecimal(numbers.reduce((acc, n) => acc + n, 0) / numbers.length);\n case 'min':\n return roundDecimal(Math.min(...numbers));\n case 'max':\n return roundDecimal(Math.max(...numbers));\n default:\n return null;\n }\n}\n\nfunction roundDecimal(value: number, decimals = 2): number {\n return Number(value.toFixed(decimals));\n}\n\nfunction toNumber(value: unknown): number | null {\n if (typeof value === 'number' && Number.isFinite(value)) {\n return value;\n }\n if (typeof value === 'string' && value.trim().length > 0) {\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : null;\n }\n return null;\n}\n\n//#endregion\n"],"names":[],"mappings":"AAEA;AAEA;;AAEG;AACG,SAAU,0BAA0B,CACxC,IAA+B,EAC/B,aAAoD,EAAA;AAEpD,IAAA,MAAM,KAAK,GAAG,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,cAAc,CAAC,IAAI,EAAE;AAChF,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACtB,QAAA,OAAO,SAAS;IAClB;IAEA,MAAM,MAAM,GAAkC,EAAE;AAEhD,IAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACxB,QAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;IAChF;AAEA,IAAA,OAAO,MAAM;AACf;AAEA,SAAS,uBAAuB,CAC9B,IAA+B,EAC/B,KAAa,EACb,SAA+C,EAAA;AAE/C,IAAA,IAAI,SAAS,KAAK,OAAO,EAAE;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM;AAClF,QAAA,OAAO,KAAK;IACd;IAEA,MAAM,OAAO,GAAG;AACb,SAAA,GAAG,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACjC,MAAM,CAAC,CAAC,CAAC,KAAkB,CAAC,KAAK,IAAI,CAAC;AAEzC,IAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACxB,QAAA,OAAO,IAAI;IACb;IAEA,QAAQ,SAAS;AACf,QAAA,KAAK,KAAK;YACR,OAAO,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7D,QAAA,KAAK,KAAK;YACR,OAAO,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;AAC9E,QAAA,KAAK,KAAK;YACR,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;AAC3C,QAAA,KAAK,KAAK;YACR,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;AAC3C,QAAA;AACE,YAAA,OAAO,IAAI;;AAEjB;AAEA,SAAS,YAAY,CAAC,KAAa,EAAE,QAAQ,GAAG,CAAC,EAAA;IAC/C,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACxC;AAEA,SAAS,QAAQ,CAAC,KAAc,EAAA;AAC9B,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACvD,QAAA,OAAO,KAAK;IACd;AACA,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AACxD,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;AAC5B,QAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI;IAChD;AACA,IAAA,OAAO,IAAI;AACb;AAEA;;;;"}
@@ -9,10 +9,10 @@ class AXMReportSampleActionExecuteCommand {
9
9
  success: true,
10
10
  };
11
11
  }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXMReportSampleActionExecuteCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
13
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXMReportSampleActionExecuteCommand, providedIn: 'root' }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMReportSampleActionExecuteCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
13
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMReportSampleActionExecuteCommand, providedIn: 'root' }); }
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXMReportSampleActionExecuteCommand, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMReportSampleActionExecuteCommand, decorators: [{
16
16
  type: Injectable,
17
17
  args: [{
18
18
  providedIn: 'root',
@@ -20,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
20
20
  }] });
21
21
 
22
22
  export { AXMReportSampleActionExecuteCommand };
23
- //# sourceMappingURL=acorex-connectivity-mock-sample.command-CXz1poTn.mjs.map
23
+ //# sourceMappingURL=acorex-connectivity-mock-sample.command-CJmDL4pL.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-connectivity-mock-sample.command-CJmDL4pL.mjs","sources":["../../../../libs/connectivity/mock/src/lib/report-management/sample.command.ts"],"sourcesContent":["import { AXPCommand } from '@acorex/platform/runtime-contracts';\nimport { Injectable } from '@angular/core';\nimport { AXPExecuteCommandResult } from '@acorex/platform/contracts';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMReportSampleActionExecuteCommand implements AXPCommand<any, void> {\n\n //#region ---- Command Implementation ----\n\n async execute(context: any): Promise<AXPExecuteCommandResult<void>> {\n console.log('ReportManagement.Report:SampleAction', context);\n return {\n success: true,\n };\n }\n\n //#endregion\n} "],"names":[],"mappings":";;;MAOa,mCAAmC,CAAA;;IAI9C,MAAM,OAAO,CAAC,OAAY,EAAA;AACxB,QAAA,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,OAAO,CAAC;QAC5D,OAAO;AACL,YAAA,OAAO,EAAE,IAAI;SACd;IACH;8GATW,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnC,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mCAAmC,cAFlC,MAAM,EAAA,CAAA,CAAA;;2FAEP,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAH/C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;;;"}
@@ -0,0 +1,38 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, Injectable } from '@angular/core';
3
+ import { AXPAiEngine } from '@acorex/modules/ai-management';
4
+
5
+ class AiManagementStructuredTextCompletionCommand {
6
+ constructor() {
7
+ this.engine = inject(AXPAiEngine);
8
+ }
9
+ async execute(input) {
10
+ if (!Array.isArray(input.messages) || input.messages.length === 0) {
11
+ return { success: false, message: { text: 'Invalid arguments: "messages" is required.' } };
12
+ }
13
+ const options = {
14
+ assistId: input.assistId,
15
+ modelEntityId: input.modelEntityId,
16
+ modelId: input.modelId,
17
+ messages: input.messages,
18
+ maxTokens: input.maxTokens,
19
+ temperature: input.temperature,
20
+ };
21
+ try {
22
+ const { text } = await this.engine.completeStructuredText(options);
23
+ return { success: true, data: { text } };
24
+ }
25
+ catch (e) {
26
+ const msg = e instanceof Error ? e.message : String(e);
27
+ return { success: false, message: { text: msg } };
28
+ }
29
+ }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AiManagementStructuredTextCompletionCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
31
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AiManagementStructuredTextCompletionCommand }); }
32
+ }
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AiManagementStructuredTextCompletionCommand, decorators: [{
34
+ type: Injectable
35
+ }] });
36
+
37
+ export { AiManagementStructuredTextCompletionCommand };
38
+ //# sourceMappingURL=acorex-connectivity-mock-structured-text-completion.command-l31pjl9-.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-connectivity-mock-structured-text-completion.command-l31pjl9-.mjs","sources":["../../../../libs/connectivity/mock/src/lib/ai-management/commands/structured-text-completion.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPCommand } from '@acorex/platform/runtime-contracts';\nimport type { AXPAiChatMessage } from '@acorex/modules/ai-management';\nimport type { AXPAiStructuredTextCompletionOptions } from '../ai-engine.mock-types';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPExecuteCommandResult } from '@acorex/platform/contracts';\n\nimport { AXPAiEngine } from '@acorex/modules/ai-management';\n\nimport type { AXCAiEngine } from '../ai-agent-engine';\n\n//#endregion\n\n//#region ---- Command ----\n\nexport interface AiManagementStructuredTextCompletionInput {\n assistId?: string;\n modelEntityId?: string;\n modelId?: string;\n messages: AXPAiChatMessage[];\n maxTokens?: number;\n temperature?: number;\n}\n\n@Injectable()\nexport class AiManagementStructuredTextCompletionCommand\n implements AXPCommand<AiManagementStructuredTextCompletionInput, { text: string }>\n{\n private readonly engine = inject(AXPAiEngine) as AXCAiEngine;\n\n async execute(\n input: AiManagementStructuredTextCompletionInput,\n ): Promise<AXPExecuteCommandResult<{ text: string }>> {\n if (!Array.isArray(input.messages) || input.messages.length === 0) {\n return { success: false, message: { text: 'Invalid arguments: \"messages\" is required.' } };\n }\n const options: AXPAiStructuredTextCompletionOptions = {\n assistId: input.assistId,\n modelEntityId: input.modelEntityId,\n modelId: input.modelId,\n messages: input.messages,\n maxTokens: input.maxTokens,\n temperature: input.temperature,\n };\n try {\n const { text } = await this.engine.completeStructuredText(options);\n return { success: true, data: { text } };\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n return { success: false, message: { text: msg } };\n }\n }\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;MA0Ba,2CAA2C,CAAA;AADxD,IAAA,WAAA,GAAA;AAImB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,WAAW,CAAgB;AAwB7D,IAAA;IAtBC,MAAM,OAAO,CACX,KAAgD,EAAA;AAEhD,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AACjE,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,4CAA4C,EAAE,EAAE;QAC5F;AACA,QAAA,MAAM,OAAO,GAAyC;YACpD,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B;AACD,QAAA,IAAI;AACF,YAAA,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC;YAClE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE;QAC1C;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;AACtD,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QACnD;IACF;8GA1BW,2CAA2C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA3C,2CAA2C,EAAA,CAAA,CAAA;;2FAA3C,2CAA2C,EAAA,UAAA,EAAA,CAAA;kBADvD;;;;;"}
@@ -0,0 +1,30 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable } from '@angular/core';
3
+ import { m as mockUsers } from './acorex-connectivity-mock-acorex-connectivity-mock-g0RVU1Og.mjs';
4
+
5
+ //#endregion
6
+ /**
7
+ * Resolves role rows for the user list lookup column when using {@link countOnly} column resolve.
8
+ */
9
+ class UserRolesForListColumnQuery {
10
+ async fetch(input) {
11
+ const userId = input?.userId?.trim();
12
+ if (!userId) {
13
+ return { items: [] };
14
+ }
15
+ const user = mockUsers.find((u) => u.id === userId);
16
+ if (!user?.roles?.length) {
17
+ return { items: [] };
18
+ }
19
+ return { items: user.roles };
20
+ }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: UserRolesForListColumnQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
22
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: UserRolesForListColumnQuery, providedIn: 'root' }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: UserRolesForListColumnQuery, decorators: [{
25
+ type: Injectable,
26
+ args: [{ providedIn: 'root' }]
27
+ }] });
28
+
29
+ export { UserRolesForListColumnQuery };
30
+ //# sourceMappingURL=acorex-connectivity-mock-user-roles-for-list-column.query-wRFHOp-X.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-connectivity-mock-user-roles-for-list-column.query-wRFHOp-X.mjs","sources":["../../../../libs/connectivity/mock/src/lib/security-management/user/user-roles-for-list-column.query.ts"],"sourcesContent":["\nimport { AXPQuery } from '@acorex/platform/runtime-contracts';\nimport { Injectable } from '@angular/core';\nimport { mockUsers } from './user.mock';\n\n//#region ---- Types ----\n\nexport interface UserRolesForListColumnQueryInput {\n userId?: string;\n}\n\nexport interface UserRolesForListColumnQueryResult {\n items: { id: string; title: unknown }[];\n}\n\n//#endregion\n\n/**\n * Resolves role rows for the user list lookup column when using {@link countOnly} column resolve.\n */\n@Injectable({ providedIn: 'root' })\nexport class UserRolesForListColumnQuery implements AXPQuery<UserRolesForListColumnQueryInput, UserRolesForListColumnQueryResult> {\n async fetch(input: UserRolesForListColumnQueryInput): Promise<UserRolesForListColumnQueryResult> {\n const userId = input?.userId?.trim();\n if (!userId) {\n return { items: [] };\n }\n const user = mockUsers.find((u) => u.id === userId);\n if (!user?.roles?.length) {\n return { items: [] };\n }\n return { items: user.roles };\n }\n}\n"],"names":[],"mappings":";;;;AAeA;AAEA;;AAEG;MAEU,2BAA2B,CAAA;IACtC,MAAM,KAAK,CAAC,KAAuC,EAAA;QACjD,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;QACpC,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;QACtB;AACA,QAAA,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC;AACnD,QAAA,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;AACxB,YAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;QACtB;AACA,QAAA,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;IAC9B;8GAXW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,cADd,MAAM,EAAA,CAAA,CAAA;;2FACnB,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;;;"}