@acorex-platform/framework-shared 0.0.30 → 0.0.32

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 (158) hide show
  1. package/background-job/src/index.d.ts +1 -0
  2. package/background-job/src/index.d.ts.map +1 -1
  3. package/background-job/src/index.js +1 -0
  4. package/background-job/src/index.js.map +1 -1
  5. package/background-job/src/lib/background-job-notification.port.d.ts +9 -0
  6. package/background-job/src/lib/background-job-notification.port.d.ts.map +1 -0
  7. package/background-job/src/lib/background-job-notification.port.js +5 -0
  8. package/background-job/src/lib/background-job-notification.port.js.map +1 -0
  9. package/background-job/src/lib/background-job.constants.d.ts +6 -0
  10. package/background-job/src/lib/background-job.constants.d.ts.map +1 -1
  11. package/background-job/src/lib/background-job.constants.js +6 -0
  12. package/background-job/src/lib/background-job.constants.js.map +1 -1
  13. package/background-job/src/lib/background-job.types.d.ts +25 -0
  14. package/background-job/src/lib/background-job.types.d.ts.map +1 -1
  15. package/background-job/src/lib/background-job.types.js.map +1 -1
  16. package/core/src/lib/color-surface/index.d.ts +3 -0
  17. package/core/src/lib/color-surface/index.d.ts.map +1 -0
  18. package/core/src/lib/color-surface/index.js +6 -0
  19. package/core/src/lib/color-surface/index.js.map +1 -0
  20. package/core/src/lib/color-surface/runtime-surface.types.d.ts +17 -0
  21. package/core/src/lib/color-surface/runtime-surface.types.d.ts.map +1 -0
  22. package/core/src/lib/color-surface/runtime-surface.types.js +26 -0
  23. package/core/src/lib/color-surface/runtime-surface.types.js.map +1 -0
  24. package/core/src/lib/color-surface/runtime-surface.util.d.ts +15 -0
  25. package/core/src/lib/color-surface/runtime-surface.util.d.ts.map +1 -0
  26. package/core/src/lib/color-surface/runtime-surface.util.js +195 -0
  27. package/core/src/lib/color-surface/runtime-surface.util.js.map +1 -0
  28. package/core/src/lib/errors/platform-error-codes.d.ts +2 -0
  29. package/core/src/lib/errors/platform-error-codes.d.ts.map +1 -1
  30. package/core/src/lib/errors/platform-error-codes.js +2 -0
  31. package/core/src/lib/errors/platform-error-codes.js.map +1 -1
  32. package/core/src/lib/index.d.ts +3 -0
  33. package/core/src/lib/index.d.ts.map +1 -1
  34. package/core/src/lib/index.js +3 -0
  35. package/core/src/lib/index.js.map +1 -1
  36. package/core/src/lib/registry/index.d.ts +2 -0
  37. package/core/src/lib/registry/index.d.ts.map +1 -0
  38. package/core/src/lib/registry/index.js +7 -0
  39. package/core/src/lib/registry/index.js.map +1 -0
  40. package/core/src/lib/registry/registry.d.ts +23 -0
  41. package/core/src/lib/registry/registry.d.ts.map +1 -0
  42. package/core/src/lib/registry/registry.js +57 -0
  43. package/core/src/lib/registry/registry.js.map +1 -0
  44. package/core/src/lib/user-notification/index.d.ts +3 -0
  45. package/core/src/lib/user-notification/index.d.ts.map +1 -0
  46. package/core/src/lib/user-notification/index.js +6 -0
  47. package/core/src/lib/user-notification/index.js.map +1 -0
  48. package/core/src/lib/user-notification/user-notification-delivery.util.d.ts +10 -0
  49. package/core/src/lib/user-notification/user-notification-delivery.util.d.ts.map +1 -0
  50. package/core/src/lib/user-notification/user-notification-delivery.util.js +45 -0
  51. package/core/src/lib/user-notification/user-notification-delivery.util.js.map +1 -0
  52. package/core/src/lib/user-notification/user-notification.types.d.ts +56 -0
  53. package/core/src/lib/user-notification/user-notification.types.d.ts.map +1 -0
  54. package/core/src/lib/user-notification/user-notification.types.js +5 -0
  55. package/core/src/lib/user-notification/user-notification.types.js.map +1 -0
  56. package/core/src/lib/utils/index.d.ts +1 -0
  57. package/core/src/lib/utils/index.d.ts.map +1 -1
  58. package/core/src/lib/utils/index.js +1 -0
  59. package/core/src/lib/utils/index.js.map +1 -1
  60. package/core/src/lib/utils/random-uuid.util.d.ts +14 -0
  61. package/core/src/lib/utils/random-uuid.util.d.ts.map +1 -0
  62. package/core/src/lib/utils/random-uuid.util.js +54 -0
  63. package/core/src/lib/utils/random-uuid.util.js.map +1 -0
  64. package/core/src/lib/widgets/widgets-list.d.ts +1 -0
  65. package/core/src/lib/widgets/widgets-list.d.ts.map +1 -1
  66. package/core/src/lib/widgets/widgets-list.js +1 -0
  67. package/core/src/lib/widgets/widgets-list.js.map +1 -1
  68. package/entity/src/lib/types/entity-card-field.types.d.ts +31 -5
  69. package/entity/src/lib/types/entity-card-field.types.d.ts.map +1 -1
  70. package/entity/src/lib/types/entity-card-field.types.js +10 -0
  71. package/entity/src/lib/types/entity-card-field.types.js.map +1 -1
  72. package/entity/src/lib/types/entity-definition.types.d.ts +15 -12
  73. package/entity/src/lib/types/entity-definition.types.d.ts.map +1 -1
  74. package/entity/src/lib/types/entity-definition.types.js.map +1 -1
  75. package/entity/src/lib/types/entity-list-filter.types.d.ts +2 -0
  76. package/entity/src/lib/types/entity-list-filter.types.d.ts.map +1 -1
  77. package/entity/src/lib/types/entity-list-filter.types.js +18 -4
  78. package/entity/src/lib/types/entity-list-filter.types.js.map +1 -1
  79. package/entity/src/lib/types/entity-master-list.types.d.ts +14 -30
  80. package/entity/src/lib/types/entity-master-list.types.d.ts.map +1 -1
  81. package/entity/src/lib/types/entity-master-list.types.js +27 -15
  82. package/entity/src/lib/types/entity-master-list.types.js.map +1 -1
  83. package/entity/src/lib/types/entity-master-styling.types.d.ts +26 -0
  84. package/entity/src/lib/types/entity-master-styling.types.d.ts.map +1 -0
  85. package/entity/src/lib/types/entity-master-styling.types.js +5 -0
  86. package/entity/src/lib/types/entity-master-styling.types.js.map +1 -0
  87. package/entity/src/lib/types/index.d.ts +1 -0
  88. package/entity/src/lib/types/index.d.ts.map +1 -1
  89. package/entity/src/lib/types/index.js +1 -0
  90. package/entity/src/lib/types/index.js.map +1 -1
  91. package/entity/src/lib/utils/entity-default-card-layout.util.d.ts +43 -0
  92. package/entity/src/lib/utils/entity-default-card-layout.util.d.ts.map +1 -0
  93. package/entity/src/lib/utils/entity-default-card-layout.util.js +500 -0
  94. package/entity/src/lib/utils/entity-default-card-layout.util.js.map +1 -0
  95. package/entity/src/lib/utils/entity-master-styling.util.d.ts +19 -0
  96. package/entity/src/lib/utils/entity-master-styling.util.d.ts.map +1 -0
  97. package/entity/src/lib/utils/entity-master-styling.util.js +132 -0
  98. package/entity/src/lib/utils/entity-master-styling.util.js.map +1 -0
  99. package/entity/src/lib/utils/index.d.ts +2 -0
  100. package/entity/src/lib/utils/index.d.ts.map +1 -1
  101. package/entity/src/lib/utils/index.js +2 -0
  102. package/entity/src/lib/utils/index.js.map +1 -1
  103. package/package.json +5 -1
  104. package/runtime/src/lib/commands/bulk-command.types.d.ts +17 -0
  105. package/runtime/src/lib/commands/bulk-command.types.d.ts.map +1 -1
  106. package/runtime/src/lib/commands/bulk-command.types.js.map +1 -1
  107. package/runtime/src/lib/commands/entity-command-keys.d.ts +7 -1
  108. package/runtime/src/lib/commands/entity-command-keys.d.ts.map +1 -1
  109. package/runtime/src/lib/commands/entity-command-keys.js +29 -5
  110. package/runtime/src/lib/commands/entity-command-keys.js.map +1 -1
  111. package/runtime/src/lib/queries/presence-query-keys.d.ts +2 -0
  112. package/runtime/src/lib/queries/presence-query-keys.d.ts.map +1 -1
  113. package/runtime/src/lib/queries/presence-query-keys.js +3 -1
  114. package/runtime/src/lib/queries/presence-query-keys.js.map +1 -1
  115. package/text-template/src/index.d.ts +2 -0
  116. package/text-template/src/index.d.ts.map +1 -0
  117. package/text-template/src/index.js +5 -0
  118. package/text-template/src/index.js.map +1 -0
  119. package/text-template/src/lib/blocks.d.ts +5 -0
  120. package/text-template/src/lib/blocks.d.ts.map +1 -0
  121. package/text-template/src/lib/blocks.js +169 -0
  122. package/text-template/src/lib/blocks.js.map +1 -0
  123. package/text-template/src/lib/create-engine.d.ts +7 -0
  124. package/text-template/src/lib/create-engine.d.ts.map +1 -0
  125. package/text-template/src/lib/create-engine.js +117 -0
  126. package/text-template/src/lib/create-engine.js.map +1 -0
  127. package/text-template/src/lib/eval.util.d.ts +16 -0
  128. package/text-template/src/lib/eval.util.d.ts.map +1 -0
  129. package/text-template/src/lib/eval.util.js +244 -0
  130. package/text-template/src/lib/eval.util.js.map +1 -0
  131. package/text-template/src/lib/format.util.d.ts +11 -0
  132. package/text-template/src/lib/format.util.d.ts.map +1 -0
  133. package/text-template/src/lib/format.util.js +221 -0
  134. package/text-template/src/lib/format.util.js.map +1 -0
  135. package/text-template/src/lib/index.d.ts +10 -0
  136. package/text-template/src/lib/index.d.ts.map +1 -0
  137. package/text-template/src/lib/index.js +19 -0
  138. package/text-template/src/lib/index.js.map +1 -0
  139. package/text-template/src/lib/parse.d.ts +3 -0
  140. package/text-template/src/lib/parse.d.ts.map +1 -0
  141. package/text-template/src/lib/parse.js +356 -0
  142. package/text-template/src/lib/parse.js.map +1 -0
  143. package/text-template/src/lib/pipes.d.ts +3 -0
  144. package/text-template/src/lib/pipes.d.ts.map +1 -0
  145. package/text-template/src/lib/pipes.js +61 -0
  146. package/text-template/src/lib/pipes.js.map +1 -0
  147. package/text-template/src/lib/text-template.constants.d.ts +7 -0
  148. package/text-template/src/lib/text-template.constants.d.ts.map +1 -0
  149. package/text-template/src/lib/text-template.constants.js +35 -0
  150. package/text-template/src/lib/text-template.constants.js.map +1 -0
  151. package/text-template/src/lib/text-template.errors.d.ts +4 -0
  152. package/text-template/src/lib/text-template.errors.d.ts.map +1 -0
  153. package/text-template/src/lib/text-template.errors.js +13 -0
  154. package/text-template/src/lib/text-template.errors.js.map +1 -0
  155. package/text-template/src/lib/text-template.types.d.ts +108 -0
  156. package/text-template/src/lib/text-template.types.d.ts.map +1 -0
  157. package/text-template/src/lib/text-template.types.js +4 -0
  158. package/text-template/src/lib/text-template.types.js.map +1 -0
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ //#region ----- Imports -----
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.normalizeEntityMasterStylingClass = normalizeEntityMasterStylingClass;
5
+ exports.createEntityMasterStylingScope = createEntityMasterStylingScope;
6
+ exports.compileEntityMasterStyling = compileEntityMasterStyling;
7
+ exports.resolveEntityMasterStyling = resolveEntityMasterStyling;
8
+ exports.resolveEntityMasterFieldExpression = resolveEntityMasterFieldExpression;
9
+ const lodash_es_1 = require("lodash-es");
10
+ //#endregion
11
+ //#region ----- Constants -----
12
+ const EMPTY_STYLING_PLAN = Object.freeze({
13
+ fieldByName: Object.freeze({}),
14
+ });
15
+ const WILDCARD_FIELD_NAME = '*';
16
+ const planByEntity = new WeakMap();
17
+ //#endregion
18
+ //#region ----- Public API -----
19
+ /** Normalizes a styling expression result to a CSS class string. */
20
+ function normalizeEntityMasterStylingClass(value) {
21
+ if (value === false || value == null) {
22
+ return undefined;
23
+ }
24
+ const resolved = String(value).trim();
25
+ return resolved !== '' ? resolved : undefined;
26
+ }
27
+ /** Expression scope for `interfaces.master.styling` (`field.name` plus legacy `table.getColumn`). */
28
+ function createEntityMasterStylingScope(data, fieldName) {
29
+ const scope = {
30
+ context: {
31
+ eval: (path) => (0, lodash_es_1.get)(data, path),
32
+ },
33
+ };
34
+ if (!fieldName) {
35
+ return scope;
36
+ }
37
+ const field = { name: fieldName };
38
+ return Object.assign(Object.assign({}, scope), { field, table: {
39
+ getColumn: (key) => field[key],
40
+ } });
41
+ }
42
+ /** Compiles `rules[]` (and the `class` shortcut) into one expression per record / field name. */
43
+ function compileEntityMasterStyling(styling) {
44
+ if (!styling) {
45
+ return EMPTY_STYLING_PLAN;
46
+ }
47
+ const field = compileFieldPlan(styling.fields);
48
+ return {
49
+ record: compileRulesToClassExpression(expandStylingTarget(styling.record)),
50
+ fieldByName: field.byName,
51
+ fieldWildcard: field.wildcard,
52
+ };
53
+ }
54
+ /** Cached compile of `entity.interfaces.master.styling`. */
55
+ function resolveEntityMasterStyling(entity) {
56
+ var _a, _b;
57
+ const cached = planByEntity.get(entity);
58
+ if (cached) {
59
+ return cached;
60
+ }
61
+ const plan = compileEntityMasterStyling((_b = (_a = entity.interfaces) === null || _a === void 0 ? void 0 : _a.master) === null || _b === void 0 ? void 0 : _b.styling);
62
+ planByEntity.set(entity, plan);
63
+ return plan;
64
+ }
65
+ function resolveEntityMasterFieldExpression(plan, fieldName) {
66
+ var _a;
67
+ return (_a = plan.fieldByName[fieldName]) !== null && _a !== void 0 ? _a : plan.fieldWildcard;
68
+ }
69
+ //#endregion
70
+ //#region ----- Compile -----
71
+ function compileFieldPlan(fields) {
72
+ const wildcardRules = expandStylingTarget(fields === null || fields === void 0 ? void 0 : fields[WILDCARD_FIELD_NAME]);
73
+ const byName = {};
74
+ for (const [name, target] of Object.entries(fields !== null && fields !== void 0 ? fields : {})) {
75
+ if (name === WILDCARD_FIELD_NAME) {
76
+ continue;
77
+ }
78
+ const expression = compileRulesToClassExpression([...expandStylingTarget(target), ...wildcardRules]);
79
+ if (expression) {
80
+ byName[name] = expression;
81
+ }
82
+ }
83
+ return {
84
+ byName,
85
+ wildcard: compileRulesToClassExpression(wildcardRules),
86
+ };
87
+ }
88
+ function expandStylingTarget(target) {
89
+ var _a;
90
+ if (!target) {
91
+ return [];
92
+ }
93
+ const rules = [];
94
+ if (target.class != null && String(target.class).trim() !== '') {
95
+ rules.push({ class: target.class });
96
+ }
97
+ if ((_a = target.rules) === null || _a === void 0 ? void 0 : _a.length) {
98
+ rules.push(...target.rules);
99
+ }
100
+ return rules;
101
+ }
102
+ function compileRulesToClassExpression(rules) {
103
+ const terms = rules.map(compileRuleToTerm).filter((term) => !!term);
104
+ if (terms.length === 0) {
105
+ return undefined;
106
+ }
107
+ if (terms.length === 1) {
108
+ return `{{ ${terms[0]} }}`;
109
+ }
110
+ return `{{ [${terms.join(', ')}].filter(Boolean).join(" ") }}`;
111
+ }
112
+ function compileRuleToTerm(rule) {
113
+ var _a, _b;
114
+ const classSource = rule.class;
115
+ if (classSource == null || String(classSource).trim() === '') {
116
+ return undefined;
117
+ }
118
+ const classExpression = (_a = unwrapExpressionBody(String(classSource))) !== null && _a !== void 0 ? _a : JSON.stringify(String(classSource).trim());
119
+ const whenSource = rule.when;
120
+ if (whenSource == null || String(whenSource).trim() === '') {
121
+ return `(${classExpression})`;
122
+ }
123
+ const whenExpression = (_b = unwrapExpressionBody(String(whenSource))) !== null && _b !== void 0 ? _b : String(whenSource).trim();
124
+ return `(${whenExpression}) ? (${classExpression}) : ""`;
125
+ }
126
+ function unwrapExpressionBody(value) {
127
+ var _a;
128
+ const exactMatch = value.trim().match(/^\{\{\s*([\s\S]*?)\s*\}\}$/);
129
+ return ((_a = exactMatch === null || exactMatch === void 0 ? void 0 : exactMatch[1]) === null || _a === void 0 ? void 0 : _a.trim()) || undefined;
130
+ }
131
+ //#endregion
132
+ //# sourceMappingURL=entity-master-styling.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-master-styling.util.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/entity/src/lib/utils/entity-master-styling.util.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ export * from './entity-default-card-layout.util';
2
+ export * from './entity-master-styling.util';
1
3
  export * from './entity-display-template.util';
2
4
  export * from './entity-property-display-path.util';
3
5
  export * from './entity-search-title-context.util';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/entity/src/lib/utils/index.ts"],"names":[],"mappings":"AAEA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/entity/src/lib/utils/index.ts"],"names":[],"mappings":"AAEA,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC"}
@@ -2,6 +2,8 @@
2
2
  //#region ---- Utils barrel ----
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const tslib_1 = require("tslib");
5
+ tslib_1.__exportStar(require("./entity-default-card-layout.util"), exports);
6
+ tslib_1.__exportStar(require("./entity-master-styling.util"), exports);
5
7
  tslib_1.__exportStar(require("./entity-display-template.util"), exports);
6
8
  tslib_1.__exportStar(require("./entity-property-display-path.util"), exports);
7
9
  tslib_1.__exportStar(require("./entity-search-title-context.util"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/entity/src/lib/utils/index.ts"],"names":[],"mappings":";AAAA,gCAAgC;;;AAEhC,yEAA+C;AAC/C,8EAAoD;AACpD,6EAAmD;AACnD,2EAAiD;AACjD,qEAA2C;AAC3C,gFAAsD;AACtD,6EAAmD;AACnD,qFAA2D;AAC3D,wEAA8C;AAC9C,uEAA6C;AAC7C,uEAA6C;AAE7C,YAAY"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/entity/src/lib/utils/index.ts"],"names":[],"mappings":";AAAA,gCAAgC;;;AAEhC,4EAAkD;AAClD,uEAA6C;AAC7C,yEAA+C;AAC/C,8EAAoD;AACpD,6EAAmD;AACnD,2EAAiD;AACjD,qEAA2C;AAC3C,gFAAsD;AACtD,6EAAmD;AACnD,qFAA2D;AAC3D,wEAA8C;AAC9C,uEAA6C;AAC7C,uEAA6C;AAE7C,YAAY"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex-platform/framework-shared",
3
- "version": "0.0.30",
3
+ "version": "0.0.32",
4
4
  "type": "commonjs",
5
5
  "sideEffects": false,
6
6
  "exports": {
@@ -32,6 +32,10 @@
32
32
  "types": "./widget-core/src/index.d.ts",
33
33
  "default": "./widget-core/src/index.js"
34
34
  },
35
+ "./text-template": {
36
+ "types": "./text-template/src/index.d.ts",
37
+ "default": "./text-template/src/index.js"
38
+ },
35
39
  "./runtime/catalog-sidecars": {
36
40
  "types": "./runtime/src/catalog-sidecars.d.ts",
37
41
  "default": "./runtime/src/catalog-sidecars.js"
@@ -27,6 +27,23 @@ export interface AXPBulkCommandRequest {
27
27
  maxItems?: number;
28
28
  /** Parallel fan-out size (capped). Default: 1 (sequential). */
29
29
  concurrency?: number;
30
+ /**
31
+ * Client-generated id so the UI can watch actor-only progress (realtime or poll)
32
+ * while this request is in flight. Server generates one when omitted.
33
+ */
34
+ executionId?: string;
35
+ }
36
+ export type AXPBulkCommandProgressStatus = 'running' | 'completed';
37
+ /** Actor-only snapshot for a bulk command that is still running or just finished. */
38
+ export interface AXPBulkCommandProgress {
39
+ executionId: string;
40
+ entity: string;
41
+ name: string;
42
+ current: number;
43
+ total: number;
44
+ succeeded: number;
45
+ failed: number;
46
+ status: AXPBulkCommandProgressStatus;
30
47
  }
31
48
  export interface AXPBulkCommandItemResult {
32
49
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"bulk-command.types.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/runtime/src/lib/commands/bulk-command.types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE1G,sEAAsE;AACtE,eAAO,MAAM,kCAAkC,MAAM,CAAC;AAEtD,mEAAmE;AACnE,eAAO,MAAM,oCAAoC,IAAI,CAAC;AAEtD,6DAA6D;AAC7D,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAEnD;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,+GAA+G;IAC/G,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,uHAAuH;IACvH,MAAM,EAAE,wBAAwB,CAAC;IACjC,+FAA+F;IAC/F,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,wBAAwB,EAAE,CAAC;CACrC"}
1
+ {"version":3,"file":"bulk-command.types.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/runtime/src/lib/commands/bulk-command.types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE1G,sEAAsE;AACtE,eAAO,MAAM,kCAAkC,MAAM,CAAC;AAEtD,mEAAmE;AACnE,eAAO,MAAM,oCAAoC,IAAI,CAAC;AAEtD,6DAA6D;AAC7D,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAEnD;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,+GAA+G;IAC/G,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,uHAAuH;IACvH,MAAM,EAAE,wBAAwB,CAAC;IACjC,+FAA+F;IAC/F,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,4BAA4B,GAAG,SAAS,GAAG,WAAW,CAAC;AAEnE,qFAAqF;AACrF,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,4BAA4B,CAAC;CACtC;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,wBAAwB,EAAE,CAAC;CACrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bulk-command.types.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/runtime/src/lib/commands/bulk-command.types.ts"],"names":[],"mappings":";AAAA,0CAA0C;;;AAI1C,sEAAsE;AACzD,QAAA,kCAAkC,GAAG,GAAG,CAAC;AAEtD,mEAAmE;AACtD,QAAA,oCAAoC,GAAG,CAAC,CAAC;AAEtD,6DAA6D;AAChD,QAAA,+BAA+B,GAAG,GAAG,CAAC;AA0CnD,YAAY"}
1
+ {"version":3,"file":"bulk-command.types.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/runtime/src/lib/commands/bulk-command.types.ts"],"names":[],"mappings":";AAAA,0CAA0C;;;AAI1C,sEAAsE;AACzD,QAAA,kCAAkC,GAAG,GAAG,CAAC;AAEtD,mEAAmE;AACtD,QAAA,oCAAoC,GAAG,CAAC,CAAC;AAEtD,6DAA6D;AAChD,QAAA,+BAA+B,GAAG,GAAG,CAAC;AA6DnD,YAAY"}
@@ -38,7 +38,13 @@ export declare function isDefaultEntityRuntimeKey(name: string): boolean;
38
38
  */
39
39
  export declare function resolveEntityNameFromRuntimeInput(input: unknown): string | null;
40
40
  /**
41
- * Entity name from custom key (`Module.Entity:Op`) or default key + `input.entity`.
41
+ * Parses `Module:Entity:Operation` keys used by some modules (e.g. `SystemInsight:TraceEntry:GetOne`).
42
+ * Distinct from {@link parseEntityCommandKey} (`Module.Entity:Query`).
43
+ */
44
+ export declare function resolveEntityNameFromModuleColonKey(key: string): string | null;
45
+ /**
46
+ * Entity name from custom key (`Module.Entity:Op`), default key + `input.entity`,
47
+ * or `Module:Entity:Operation` named queries.
42
48
  */
43
49
  export declare function resolveEntityNameFromRuntimeKey(key: string, input?: unknown): string | null;
44
50
  export declare function isEntityMutationOperation(operation: EntityCommandOperation): operation is 'Insert' | 'Update' | 'Delete';
@@ -1 +1 @@
1
- {"version":3,"file":"entity-command-keys.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/runtime/src/lib/commands/entity-command-keys.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAE1F;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAG,uBAAgC,CAAC;AACtE,eAAO,MAAM,qBAAqB,EAAG,uBAAgC,CAAC;AACtE,eAAO,MAAM,qBAAqB,EAAG,uBAAgC,CAAC;AACtE,eAAO,MAAM,oBAAoB,EAAG,sBAA+B,CAAC;AACpE,eAAO,MAAM,wBAAwB,EAAG,wBAAiC,CAAC;AAE1E,sFAAsF;AACtF,eAAO,MAAM,gBAAgB,EAAG,eAAwB,CAAC;AACzD,eAAO,MAAM,cAAc,EAAG,aAAsB,CAAC;AACrD,eAAO,MAAM,gBAAgB,EAAG,eAAwB,CAAC;AAOzD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,sBAAsB,GAAG,MAAM,CAE/G;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,sBAAsB,GAAG,MAAM,CAEtF;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,sBAAsB,CAAC;CACnC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAkBjF;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAGxF;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAU/E;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAS3F;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,sBAAsB,GAAG,SAAS,IAAI,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAExH;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,sBAAsB,GAAG,SAAS,IAAI,OAAO,GAAG,SAAS,CAE1G"}
1
+ {"version":3,"file":"entity-command-keys.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/runtime/src/lib/commands/entity-command-keys.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAE1F;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAG,uBAAgC,CAAC;AACtE,eAAO,MAAM,qBAAqB,EAAG,uBAAgC,CAAC;AACtE,eAAO,MAAM,qBAAqB,EAAG,uBAAgC,CAAC;AACtE,eAAO,MAAM,oBAAoB,EAAG,sBAA+B,CAAC;AACpE,eAAO,MAAM,wBAAwB,EAAG,wBAAiC,CAAC;AAE1E,sFAAsF;AACtF,eAAO,MAAM,gBAAgB,EAAG,eAAwB,CAAC;AACzD,eAAO,MAAM,cAAc,EAAG,aAAsB,CAAC;AACrD,eAAO,MAAM,gBAAgB,EAAG,eAAwB,CAAC;AAOzD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,sBAAsB,GAAG,MAAM,CAE/G;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,sBAAsB,GAAG,MAAM,CAEtF;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,sBAAsB,CAAC;CACnC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAkBjF;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAGxF;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAU/E;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiB9E;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAS3F;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,sBAAsB,GAAG,SAAS,IAAI,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAExH;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,sBAAsB,GAAG,SAAS,IAAI,OAAO,GAAG,SAAS,CAE1G"}
@@ -8,6 +8,7 @@ exports.parseEntityCommandKey = parseEntityCommandKey;
8
8
  exports.parseDefaultEntityRuntimeKey = parseDefaultEntityRuntimeKey;
9
9
  exports.isDefaultEntityRuntimeKey = isDefaultEntityRuntimeKey;
10
10
  exports.resolveEntityNameFromRuntimeInput = resolveEntityNameFromRuntimeInput;
11
+ exports.resolveEntityNameFromModuleColonKey = resolveEntityNameFromModuleColonKey;
11
12
  exports.resolveEntityNameFromRuntimeKey = resolveEntityNameFromRuntimeKey;
12
13
  exports.isEntityMutationOperation = isEntityMutationOperation;
13
14
  exports.isEntityQueryOperation = isEntityQueryOperation;
@@ -83,17 +84,40 @@ function resolveEntityNameFromRuntimeInput(input) {
83
84
  return trimmed.length > 0 ? trimmed : null;
84
85
  }
85
86
  /**
86
- * Entity name from custom key (`Module.Entity:Op`) or default key + `input.entity`.
87
+ * Parses `Module:Entity:Operation` keys used by some modules (e.g. `SystemInsight:TraceEntry:GetOne`).
88
+ * Distinct from {@link parseEntityCommandKey} (`Module.Entity:Query`).
89
+ */
90
+ function resolveEntityNameFromModuleColonKey(key) {
91
+ const parts = key.split(':').map((part) => part.trim());
92
+ if (parts.length < 2) {
93
+ return null;
94
+ }
95
+ const moduleName = parts[0];
96
+ const entityName = parts[1];
97
+ if (!moduleName || !entityName || moduleName === 'Entity') {
98
+ return null;
99
+ }
100
+ if (moduleName.includes('.') || entityName.includes('.')) {
101
+ return null;
102
+ }
103
+ if (!/^[A-Z][A-Za-z0-9]*$/.test(moduleName) || !/^[A-Z][A-Za-z0-9]*$/.test(entityName)) {
104
+ return null;
105
+ }
106
+ return `${moduleName}.${entityName}`;
107
+ }
108
+ /**
109
+ * Entity name from custom key (`Module.Entity:Op`), default key + `input.entity`,
110
+ * or `Module:Entity:Operation` named queries.
87
111
  */
88
112
  function resolveEntityNameFromRuntimeKey(key, input) {
113
+ if (parseDefaultEntityRuntimeKey(key)) {
114
+ return resolveEntityNameFromRuntimeInput(input);
115
+ }
89
116
  const custom = parseEntityCommandKey(key);
90
117
  if (custom) {
91
118
  return custom.entity;
92
119
  }
93
- if (parseDefaultEntityRuntimeKey(key)) {
94
- return resolveEntityNameFromRuntimeInput(input);
95
- }
96
- return null;
120
+ return resolveEntityNameFromModuleColonKey(key);
97
121
  }
98
122
  function isEntityMutationOperation(operation) {
99
123
  return operation === 'Insert' || operation === 'Update' || operation === 'Delete';
@@ -1 +1 @@
1
- {"version":3,"file":"entity-command-keys.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/runtime/src/lib/commands/entity-command-keys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-command-keys.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/runtime/src/lib/commands/entity-command-keys.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
1
  export declare const PRESENCE_USER_ACTIVITY: "Presence:UserActivity";
2
2
  export declare const PRESENCE_TENANT_ACTIVITY: "Presence:TenantActivity";
3
+ /** Chat last-seen timestamps from persisted presence segments (same source as activity reports). */
4
+ export declare const PRESENCE_USER_CHAT_LAST_SEEN: "Presence:UserChatLastSeen";
3
5
  //# sourceMappingURL=presence-query-keys.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"presence-query-keys.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/runtime/src/lib/queries/presence-query-keys.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,EAAG,uBAAgC,CAAC;AACvE,eAAO,MAAM,wBAAwB,EAAG,yBAAkC,CAAC"}
1
+ {"version":3,"file":"presence-query-keys.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/runtime/src/lib/queries/presence-query-keys.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,EAAG,uBAAgC,CAAC;AACvE,eAAO,MAAM,wBAAwB,EAAG,yBAAkC,CAAC;AAC3E,oGAAoG;AACpG,eAAO,MAAM,4BAA4B,EAAG,2BAAoC,CAAC"}
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  //#region ----- Presence query keys -----
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.PRESENCE_TENANT_ACTIVITY = exports.PRESENCE_USER_ACTIVITY = void 0;
4
+ exports.PRESENCE_USER_CHAT_LAST_SEEN = exports.PRESENCE_TENANT_ACTIVITY = exports.PRESENCE_USER_ACTIVITY = void 0;
5
5
  exports.PRESENCE_USER_ACTIVITY = 'Presence:UserActivity';
6
6
  exports.PRESENCE_TENANT_ACTIVITY = 'Presence:TenantActivity';
7
+ /** Chat last-seen timestamps from persisted presence segments (same source as activity reports). */
8
+ exports.PRESENCE_USER_CHAT_LAST_SEEN = 'Presence:UserChatLastSeen';
7
9
  //#endregion
8
10
  //# sourceMappingURL=presence-query-keys.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"presence-query-keys.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/runtime/src/lib/queries/presence-query-keys.ts"],"names":[],"mappings":";AAAA,yCAAyC;;;AAE5B,QAAA,sBAAsB,GAAG,uBAAgC,CAAC;AAC1D,QAAA,wBAAwB,GAAG,yBAAkC,CAAC;AAE3E,YAAY"}
1
+ {"version":3,"file":"presence-query-keys.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/runtime/src/lib/queries/presence-query-keys.ts"],"names":[],"mappings":";AAAA,yCAAyC;;;AAE5B,QAAA,sBAAsB,GAAG,uBAAgC,CAAC;AAC1D,QAAA,wBAAwB,GAAG,yBAAkC,CAAC;AAC3E,oGAAoG;AACvF,QAAA,4BAA4B,GAAG,2BAAoC,CAAC;AAEjF,YAAY"}
@@ -0,0 +1,2 @@
1
+ export * from './lib';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../libs/framework/shared/text-template/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./lib"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/framework/shared/text-template/src/index.ts"],"names":[],"mappings":";;;AAAA,gDAAsB"}
@@ -0,0 +1,5 @@
1
+ import type { ContentBlock, ContentBlockDefinition, ContentRenderContext } from './text-template.types';
2
+ export declare function renderBlocks(blocks: ContentBlock[], ctx: ContentRenderContext): string;
3
+ export declare function renderBlock(block: ContentBlock, ctx: ContentRenderContext): string;
4
+ export declare const builtinTextTemplateBlocks: ContentBlockDefinition[];
5
+ //# sourceMappingURL=blocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../../../../../libs/framework/shared/text-template/src/lib/blocks.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,YAAY,EACZ,sBAAsB,EAOtB,oBAAoB,EAErB,MAAM,uBAAuB,CAAC;AAmB/B,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,oBAAoB,GAAG,MAAM,CAEtF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,oBAAoB,GAAG,MAAM,CAGlF;AA8BD,eAAO,MAAM,yBAAyB,EAAE,sBAAsB,EAkI7D,CAAC"}
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.builtinTextTemplateBlocks = void 0;
4
+ exports.renderBlocks = renderBlocks;
5
+ exports.renderBlock = renderBlock;
6
+ const text_template_constants_1 = require("./text-template.constants");
7
+ const eval_util_1 = require("./eval.util");
8
+ //#region ----- Style -----
9
+ const FONT = 'Arial,Helvetica,sans-serif';
10
+ const HEADING_STYLE = 'margin:0 0 12px;font-family:' + FONT + ';font-weight:700;color:#0f172a;line-height:1.3;';
11
+ const PARAGRAPH_STYLE = 'margin:0 0 12px;font-family:' + FONT + ';font-size:15px;line-height:1.65;color:#111827;';
12
+ const TABLE_STYLE = 'width:100%;border-collapse:collapse;margin:0 0 16px;font-family:' + FONT + ';font-size:14px;';
13
+ const TH_STYLE = 'padding:10px 12px;text-align:left;background:#f8fafc;border:1px solid #e2e8f0;color:#334155;font-weight:700;';
14
+ const TD_STYLE = 'padding:10px 12px;border:1px solid #e2e8f0;color:#111827;vertical-align:top;';
15
+ const EMPTY_STYLE = 'padding:12px;color:#64748b;font-family:' + FONT + ';font-size:14px;';
16
+ //#endregion
17
+ //#region ----- Walk -----
18
+ function renderBlocks(blocks, ctx) {
19
+ return blocks.map((block) => renderBlock(block, ctx)).join((0, text_template_constants_1.isHtmlTextTemplateChannel)(ctx.channel) ? '' : '');
20
+ }
21
+ function renderBlock(block, ctx) {
22
+ const def = ctx.blocks.get(block.kind);
23
+ return def.render(block, ctx);
24
+ }
25
+ function withScope(ctx, name, value) {
26
+ return Object.assign(Object.assign({}, ctx), { data: Object.assign(Object.assign({}, ctx.data), { [name]: value }) });
27
+ }
28
+ function looksLikeHtml(text) {
29
+ return /<\/?[a-z][\s\S]*>/i.test(text);
30
+ }
31
+ function alignCss(align) {
32
+ if (align === 'center')
33
+ return 'text-align:center;';
34
+ if (align === 'end')
35
+ return 'text-align:right;';
36
+ return 'text-align:left;';
37
+ }
38
+ function joinPlain(parts) {
39
+ return parts.filter((part) => part.length > 0).join('\n');
40
+ }
41
+ //#endregion
42
+ //#region ----- Builtin blocks -----
43
+ exports.builtinTextTemplateBlocks = [
44
+ {
45
+ name: 'heading',
46
+ render(block, ctx) {
47
+ const heading = block;
48
+ const text = (0, eval_util_1.interpolateTemplate)(heading.text, ctx);
49
+ if (!(0, text_template_constants_1.isHtmlTextTemplateChannel)(ctx.channel)) {
50
+ return `${text}\n\n`;
51
+ }
52
+ const level = Math.min(6, Math.max(1, heading.level || 2));
53
+ const size = level === 1 ? '28px' : level === 2 ? '20px' : '16px';
54
+ return `<h${level} style="${HEADING_STYLE}font-size:${size};">${text}</h${level}>`;
55
+ },
56
+ },
57
+ {
58
+ name: 'paragraph',
59
+ render(block, ctx) {
60
+ const paragraph = block;
61
+ const text = (0, eval_util_1.interpolateTemplate)(paragraph.text, ctx);
62
+ if (!text.trim()) {
63
+ return '';
64
+ }
65
+ if (!(0, text_template_constants_1.isHtmlTextTemplateChannel)(ctx.channel)) {
66
+ return text;
67
+ }
68
+ if (looksLikeHtml(paragraph.text) || looksLikeHtml(text)) {
69
+ return text;
70
+ }
71
+ return `<p style="${PARAGRAPH_STYLE}">${text}</p>`;
72
+ },
73
+ },
74
+ {
75
+ name: 'table',
76
+ render(block, ctx) {
77
+ var _a;
78
+ const table = block;
79
+ const rows = (0, eval_util_1.asRecordArray)((0, eval_util_1.getPath)(ctx.data, table.source));
80
+ const emptyText = (0, eval_util_1.interpolateTemplate)((_a = table.emptyText) !== null && _a !== void 0 ? _a : '', ctx);
81
+ if (!(0, text_template_constants_1.isHtmlTextTemplateChannel)(ctx.channel)) {
82
+ if (!rows.length) {
83
+ return emptyText ? `${emptyText}\n` : '';
84
+ }
85
+ const lines = rows.map((row) => {
86
+ const scoped = withScope(ctx, table.as, row);
87
+ return table.columns
88
+ .map((column) => `${column.title}: ${(0, eval_util_1.interpolateTemplate)(column.value, scoped)}`)
89
+ .join(' · ');
90
+ });
91
+ return `${lines.join('\n')}\n`;
92
+ }
93
+ if (!rows.length) {
94
+ return emptyText ? `<p style="${EMPTY_STYLE}">${emptyText}</p>` : '';
95
+ }
96
+ const email = (0, text_template_constants_1.isEmailTextTemplateChannel)(ctx.channel);
97
+ const tableOpen = email
98
+ ? `<table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0" style="${TABLE_STYLE}">`
99
+ : `<table style="${TABLE_STYLE}">`;
100
+ const head = `<thead><tr>${table.columns
101
+ .map((column) => `<th style="${TH_STYLE}${alignCss(column.align)}">${column.title}</th>`)
102
+ .join('')}</tr></thead>`;
103
+ const body = `<tbody>${rows
104
+ .map((row) => {
105
+ const scoped = withScope(ctx, table.as, row);
106
+ return `<tr>${table.columns
107
+ .map((column) => `<td style="${TD_STYLE}${alignCss(column.align)}">${(0, eval_util_1.interpolateTemplate)(column.value, scoped)}</td>`)
108
+ .join('')}</tr>`;
109
+ })
110
+ .join('')}</tbody>`;
111
+ return `${tableOpen}${head}${body}</table>`;
112
+ },
113
+ },
114
+ {
115
+ name: 'list',
116
+ render(block, ctx) {
117
+ const list = block;
118
+ const rows = (0, eval_util_1.asRecordArray)((0, eval_util_1.getPath)(ctx.data, list.source));
119
+ const items = rows.map((row) => (0, eval_util_1.interpolateTemplate)(list.itemText, withScope(ctx, list.as, row)));
120
+ if (!(0, text_template_constants_1.isHtmlTextTemplateChannel)(ctx.channel)) {
121
+ return items.map((item) => `- ${item}`).join('\n') + (items.length ? '\n' : '');
122
+ }
123
+ if (!items.length) {
124
+ return '';
125
+ }
126
+ return `<ul style="margin:0 0 16px;padding-left:20px;font-family:${FONT};color:#111827;">${items
127
+ .map((item) => `<li style="margin:0 0 6px;">${item}</li>`)
128
+ .join('')}</ul>`;
129
+ },
130
+ },
131
+ {
132
+ name: 'key-value',
133
+ render(block, ctx) {
134
+ const kv = block;
135
+ if (!(0, text_template_constants_1.isHtmlTextTemplateChannel)(ctx.channel)) {
136
+ return joinPlain(kv.items.map((item) => `${item.key}: ${(0, eval_util_1.interpolateTemplate)(item.value, ctx)}`)) + '\n';
137
+ }
138
+ const rows = kv.items
139
+ .map((item) => {
140
+ const value = (0, eval_util_1.interpolateTemplate)(item.value, ctx);
141
+ return `<tr><td style="${TH_STYLE}width:36%;">${item.key}</td><td style="${TD_STYLE}">${value}</td></tr>`;
142
+ })
143
+ .join('');
144
+ const tableOpen = (0, text_template_constants_1.isEmailTextTemplateChannel)(ctx.channel)
145
+ ? `<table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0" style="${TABLE_STYLE}">`
146
+ : `<table style="${TABLE_STYLE}">`;
147
+ return `${tableOpen}${rows}</table>`;
148
+ },
149
+ },
150
+ {
151
+ name: 'if',
152
+ render(block, ctx) {
153
+ var _a;
154
+ const iff = block;
155
+ const ok = (0, eval_util_1.isTruthyTemplateValue)((0, eval_util_1.getPath)(ctx.data, iff.source));
156
+ return renderBlocks(ok ? iff.then : (_a = iff.else) !== null && _a !== void 0 ? _a : [], ctx);
157
+ },
158
+ },
159
+ {
160
+ name: 'for',
161
+ render(block, ctx) {
162
+ const loop = block;
163
+ const rows = (0, eval_util_1.asRecordArray)((0, eval_util_1.getPath)(ctx.data, loop.source));
164
+ return rows.map((row) => renderBlocks(loop.children, withScope(ctx, loop.as, row))).join('');
165
+ },
166
+ },
167
+ ];
168
+ //#endregion
169
+ //# sourceMappingURL=blocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../../../../../../libs/framework/shared/text-template/src/lib/blocks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type AXPRegistry } from '@acorex-platform/framework-shared/core';
2
+ import type { ContentBlockDefinition, ContentPipe, CreateTextTemplateEngineOptions, TextTemplateEngine } from './text-template.types';
3
+ export declare function createBuiltinBlockRegistry(): AXPRegistry<ContentBlockDefinition>;
4
+ export declare function createBuiltinPipeRegistry(): AXPRegistry<ContentPipe>;
5
+ export declare function createTextTemplateEngine(options?: CreateTextTemplateEngineOptions): TextTemplateEngine;
6
+ export declare function collectPathRootsFromSource(source: string): string[];
7
+ //# sourceMappingURL=create-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-engine.d.ts","sourceRoot":"","sources":["../../../../../../../libs/framework/shared/text-template/src/lib/create-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAK1F,OAAO,KAAK,EACV,sBAAsB,EACtB,WAAW,EAEX,+BAA+B,EAC/B,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAI/B,wBAAgB,0BAA0B,IAAI,WAAW,CAAC,sBAAsB,CAAC,CAMhF;AAED,wBAAgB,yBAAyB,IAAI,WAAW,CAAC,WAAW,CAAC,CAMpE;AAMD,wBAAgB,wBAAwB,CACtC,OAAO,CAAC,EAAE,+BAA+B,GACxC,kBAAkB,CA8BpB;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CA4BnE"}