@acorex-platform/module-platform-management-client 0.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-platform-module-platform-management-client-acorex-platform-module-platform-management-client-V_ao4WVM.mjs +4599 -0
- package/fesm2022/acorex-platform-module-platform-management-client-acorex-platform-module-platform-management-client-V_ao4WVM.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-platform-management-client-contracts.mjs +179 -0
- package/fesm2022/acorex-platform-module-platform-management-client-contracts.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-platform-management-client-create-user-query.command-2Qu7aoCp.mjs +1542 -0
- package/fesm2022/acorex-platform-module-platform-management-client-create-user-query.command-2Qu7aoCp.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-platform-management-client-create-user-query.types-DdygAori.mjs +71 -0
- package/fesm2022/acorex-platform-module-platform-management-client-create-user-query.types-DdygAori.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-platform-management-client-customize-menu.command-2319iHsD.mjs +231 -0
- package/fesm2022/acorex-platform-module-platform-management-client-customize-menu.command-2319iHsD.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-platform-management-client-data-list-pick-entity-item.command-CJVpqPmY.mjs +52 -0
- package/fesm2022/acorex-platform-module-platform-management-client-data-list-pick-entity-item.command-CJVpqPmY.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-platform-management-client-entity-master-actions-for-ai.util-DmGyoy9o.mjs +55 -0
- package/fesm2022/acorex-platform-module-platform-management-client-entity-master-actions-for-ai.util-DmGyoy9o.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-platform-management-client-execute-token.command-DNuHR-0y.mjs +152 -0
- package/fesm2022/acorex-platform-module-platform-management-client-execute-token.command-DNuHR-0y.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-platform-management-client-list-catalog-scopes.query-ByhDTWE6.mjs +71 -0
- package/fesm2022/acorex-platform-module-platform-management-client-list-catalog-scopes.query-ByhDTWE6.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-platform-management-client-list-editor-widgets.query-DITPMmbw.mjs +68 -0
- package/fesm2022/acorex-platform-module-platform-management-client-list-editor-widgets.query-DITPMmbw.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-platform-management-client-list-platform-navigation-for-ai.query-2oHMITw-.mjs +194 -0
- package/fesm2022/acorex-platform-module-platform-management-client-list-platform-navigation-for-ai.query-2oHMITw-.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-platform-management-client-list-registered-entities.query-DjStd3a8.mjs +136 -0
- package/fesm2022/acorex-platform-module-platform-management-client-list-registered-entities.query-DjStd3a8.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-platform-management-client-list-registered-queries.query-C-IfkTel.mjs +122 -0
- package/fesm2022/acorex-platform-module-platform-management-client-list-registered-queries.query-C-IfkTel.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-platform-management-client-menu-list.component-C5HH5-Dw.mjs +524 -0
- package/fesm2022/acorex-platform-module-platform-management-client-menu-list.component-C5HH5-Dw.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-platform-management-client-platform-console-charts.queries-CQ34R13-.mjs +216 -0
- package/fesm2022/acorex-platform-module-platform-management-client-platform-console-charts.queries-CQ34R13-.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-platform-management-client-platform-console-data.util-BIkULtKk.mjs +81 -0
- package/fesm2022/acorex-platform-module-platform-management-client-platform-console-data.util-BIkULtKk.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-platform-management-client-platform-console-kpi.queries-BkPdhVq_.mjs +137 -0
- package/fesm2022/acorex-platform-module-platform-management-client-platform-console-kpi.queries-BkPdhVq_.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-platform-management-client-rest-api-generator-widget-column.component-CYb2zOSj.mjs +45 -0
- package/fesm2022/acorex-platform-module-platform-management-client-rest-api-generator-widget-column.component-CYb2zOSj.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-platform-management-client-rest-api-generator-widget-edit.component-BBwrzcXa.mjs +178 -0
- package/fesm2022/acorex-platform-module-platform-management-client-rest-api-generator-widget-edit.component-BBwrzcXa.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-platform-management-client-rest-api-generator-widget-view.component-DBlZVz6u.mjs +45 -0
- package/fesm2022/acorex-platform-module-platform-management-client-rest-api-generator-widget-view.component-DBlZVz6u.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-platform-management-client.mjs +2 -0
- package/fesm2022/acorex-platform-module-platform-management-client.mjs.map +1 -0
- package/package.json +28 -0
- package/types/acorex-platform-module-platform-management-client-contracts.d.ts +258 -0
- package/types/acorex-platform-module-platform-management-client.d.ts +548 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
|
+
import { f as formatRestApiSummary } from './acorex-platform-module-platform-management-client-acorex-platform-module-platform-management-client-V_ao4WVM.mjs';
|
|
5
|
+
|
|
6
|
+
//#region ----- Imports -----
|
|
7
|
+
//#endregion
|
|
8
|
+
//#region ----- Component -----
|
|
9
|
+
class AXMRestApiGeneratorWidgetColumnComponent extends AXPValueWidgetComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
//#region ----- Computed Properties -----
|
|
13
|
+
this.summary = computed(() => formatRestApiSummary(this.getValue()), /* @ts-ignore */
|
|
14
|
+
...(ngDevMode ? [{ debugName: "summary" }] : /* istanbul ignore next */ []));
|
|
15
|
+
}
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMRestApiGeneratorWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMRestApiGeneratorWidgetColumnComponent, isStandalone: true, selector: "axm-rest-api-generator-widget-column", usesInheritance: true, ngImport: i0, template: `
|
|
18
|
+
@if (summary()) {
|
|
19
|
+
<span class="text-xs font-medium" [title]="summary()">{{ summary() }}</span>
|
|
20
|
+
}
|
|
21
|
+
<!-- ----- Empty request ----- -->
|
|
22
|
+
@else {
|
|
23
|
+
<span class="text-muted">---</span>
|
|
24
|
+
}
|
|
25
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26
|
+
}
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMRestApiGeneratorWidgetColumnComponent, decorators: [{
|
|
28
|
+
type: Component,
|
|
29
|
+
args: [{
|
|
30
|
+
selector: 'axm-rest-api-generator-widget-column',
|
|
31
|
+
template: `
|
|
32
|
+
@if (summary()) {
|
|
33
|
+
<span class="text-xs font-medium" [title]="summary()">{{ summary() }}</span>
|
|
34
|
+
}
|
|
35
|
+
<!-- ----- Empty request ----- -->
|
|
36
|
+
@else {
|
|
37
|
+
<span class="text-muted">---</span>
|
|
38
|
+
}
|
|
39
|
+
`,
|
|
40
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
41
|
+
}]
|
|
42
|
+
}] });
|
|
43
|
+
|
|
44
|
+
export { AXMRestApiGeneratorWidgetColumnComponent };
|
|
45
|
+
//# sourceMappingURL=acorex-platform-module-platform-management-client-rest-api-generator-widget-column.component-CYb2zOSj.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-platform-management-client-rest-api-generator-widget-column.component-CYb2zOSj.mjs","sources":["../../../../libs/modules/platform-management/client/src/lib/features/rest-api-generator-widget/rest-api-generator-widget-column.component.ts"],"sourcesContent":["//#region ----- Imports -----\n\nimport { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport type { AXRestApiOutput } from '@acorex/components/rest-api-generator';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\n\nimport { formatRestApiSummary } from './parse-http-request.util';\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-rest-api-generator-widget-column',\n template: `\n @if (summary()) {\n <span class=\"text-xs font-medium\" [title]=\"summary()\">{{ summary() }}</span>\n }\n <!-- ----- Empty request ----- -->\n @else {\n <span class=\"text-muted\">---</span>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXMRestApiGeneratorWidgetColumnComponent extends AXPValueWidgetComponent<AXRestApiOutput> {\n //#region ----- Computed Properties -----\n\n protected readonly summary = computed(() => formatRestApiSummary(this.getValue()));\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;;AAAA;AAQA;AAEA;AAeM,MAAO,wCAAyC,SAAQ,uBAAwC,CAAA;AAbtG,IAAA,WAAA,GAAA;;;AAgBqB,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oFAAC;AAGnF,IAAA;8GANY,wCAAwC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wCAAwC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAXzC;;;;;;;;AAQT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGU,wCAAwC,EAAA,UAAA,EAAA,CAAA;kBAbpD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sCAAsC;AAChD,oBAAA,QAAQ,EAAE;;;;;;;;AAQT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;;;;;"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';
|
|
2
|
+
import { AXRestApiGeneratorComponent } from '@acorex/components/rest-api-generator';
|
|
3
|
+
import * as i1$1 from '@acorex/components/button';
|
|
4
|
+
import { AXButtonModule } from '@acorex/components/button';
|
|
5
|
+
import * as i3 from '@acorex/components/text-area';
|
|
6
|
+
import { AXTextAreaModule } from '@acorex/components/text-area';
|
|
7
|
+
import { AXToastService } from '@acorex/components/toast';
|
|
8
|
+
import * as i5 from '@acorex/core/translation';
|
|
9
|
+
import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
|
|
10
|
+
import * as i1$2 from '@angular/common';
|
|
11
|
+
import { CommonModule } from '@angular/common';
|
|
12
|
+
import * as i0 from '@angular/core';
|
|
13
|
+
import { inject, DestroyRef, signal, computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
14
|
+
import * as i1 from '@angular/forms';
|
|
15
|
+
import { FormsModule } from '@angular/forms';
|
|
16
|
+
import { C as CREATE_USER_QUERY_I18N } from './acorex-platform-module-platform-management-client-create-user-query.types-DdygAori.mjs';
|
|
17
|
+
import { c as createEmptyRestApiOutput, n as normalizeRestApiOutput, h as hasParsedContent, a as REST_API_GENERATOR_IMPORT_DEBOUNCE_MS, p as parseHttpRequest } from './acorex-platform-module-platform-management-client-acorex-platform-module-platform-management-client-V_ao4WVM.mjs';
|
|
18
|
+
|
|
19
|
+
//#region ----- Imports -----
|
|
20
|
+
//#endregion
|
|
21
|
+
//#region ----- Component -----
|
|
22
|
+
class AXMRestApiGeneratorWidgetEditComponent extends AXPValueWidgetComponent {
|
|
23
|
+
constructor() {
|
|
24
|
+
super();
|
|
25
|
+
//#region ----- Services & Dependencies -----
|
|
26
|
+
this.toastService = inject(AXToastService);
|
|
27
|
+
this.translationService = inject(AXTranslationService);
|
|
28
|
+
this.destroyRef = inject(DestroyRef);
|
|
29
|
+
//#endregion
|
|
30
|
+
//#region ----- Constants -----
|
|
31
|
+
this.importI18n = CREATE_USER_QUERY_I18N.import;
|
|
32
|
+
//#endregion
|
|
33
|
+
//#region ----- State Signals -----
|
|
34
|
+
this.importText = signal('', /* @ts-ignore */
|
|
35
|
+
...(ngDevMode ? [{ debugName: "importText" }] : /* istanbul ignore next */ []));
|
|
36
|
+
this.boundRequest = signal(createEmptyRestApiOutput(), /* @ts-ignore */
|
|
37
|
+
...(ngDevMode ? [{ debugName: "boundRequest" }] : /* istanbul ignore next */ []));
|
|
38
|
+
this.revision = signal(0, /* @ts-ignore */
|
|
39
|
+
...(ngDevMode ? [{ debugName: "revision" }] : /* istanbul ignore next */ []));
|
|
40
|
+
this.revisionKeys = computed(() => [this.revision()], /* @ts-ignore */
|
|
41
|
+
...(ngDevMode ? [{ debugName: "revisionKeys" }] : /* istanbul ignore next */ []));
|
|
42
|
+
this.suppressGeneratorChange = false;
|
|
43
|
+
//#endregion
|
|
44
|
+
//#region ----- Lifecycle -----
|
|
45
|
+
this.parseTimer = null;
|
|
46
|
+
this.destroyRef.onDestroy(() => this.clearParseTimer());
|
|
47
|
+
}
|
|
48
|
+
ngOnInit() {
|
|
49
|
+
super.ngOnInit();
|
|
50
|
+
this.boundRequest.set(normalizeRestApiOutput(this.getValue()));
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
//#region ----- Event Handlers -----
|
|
54
|
+
onImportModelChange(value) {
|
|
55
|
+
const text = this.coerceImportText(value);
|
|
56
|
+
this.importText.set(text);
|
|
57
|
+
this.scheduleDebouncedParse(text);
|
|
58
|
+
}
|
|
59
|
+
onImportTextChanged(event) {
|
|
60
|
+
const text = this.coerceImportText(event.value);
|
|
61
|
+
this.importText.set(text);
|
|
62
|
+
if (event.isUserInteraction === false) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
this.scheduleDebouncedParse(text);
|
|
66
|
+
}
|
|
67
|
+
onApplyImport() {
|
|
68
|
+
this.clearParseTimer();
|
|
69
|
+
void this.applyParsedText(this.importText(), true);
|
|
70
|
+
}
|
|
71
|
+
onGeneratorChange(value) {
|
|
72
|
+
const next = normalizeRestApiOutput(value);
|
|
73
|
+
if (this.suppressGeneratorChange) {
|
|
74
|
+
if (hasParsedContent(next)) {
|
|
75
|
+
this.boundRequest.set(next);
|
|
76
|
+
this.setValue(next);
|
|
77
|
+
}
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
this.boundRequest.set(next);
|
|
81
|
+
this.setValue(next);
|
|
82
|
+
}
|
|
83
|
+
//#endregion
|
|
84
|
+
//#region ----- Import -----
|
|
85
|
+
scheduleDebouncedParse(text) {
|
|
86
|
+
this.clearParseTimer();
|
|
87
|
+
this.parseTimer = setTimeout(() => {
|
|
88
|
+
this.parseTimer = null;
|
|
89
|
+
void this.applyParsedText(text, false);
|
|
90
|
+
}, REST_API_GENERATOR_IMPORT_DEBOUNCE_MS);
|
|
91
|
+
}
|
|
92
|
+
clearParseTimer() {
|
|
93
|
+
if (this.parseTimer != null) {
|
|
94
|
+
clearTimeout(this.parseTimer);
|
|
95
|
+
this.parseTimer = null;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
coerceImportText(value) {
|
|
99
|
+
if (typeof value === 'string') {
|
|
100
|
+
return value;
|
|
101
|
+
}
|
|
102
|
+
if (value != null && typeof value === 'object' && 'value' in value) {
|
|
103
|
+
const inner = value.value;
|
|
104
|
+
if (typeof inner === 'string') {
|
|
105
|
+
return inner;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return '';
|
|
109
|
+
}
|
|
110
|
+
async applyParsedText(text, showError) {
|
|
111
|
+
const result = parseHttpRequest(text);
|
|
112
|
+
if (!result.ok) {
|
|
113
|
+
if (showError) {
|
|
114
|
+
await this.showParseError();
|
|
115
|
+
}
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
this.applyRequest(result.value);
|
|
119
|
+
}
|
|
120
|
+
applyRequest(value) {
|
|
121
|
+
const next = normalizeRestApiOutput(value);
|
|
122
|
+
if (this.isSameRequest(next, this.boundRequest())) {
|
|
123
|
+
this.setValue(next);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
this.suppressGeneratorChange = true;
|
|
127
|
+
this.boundRequest.set(next);
|
|
128
|
+
this.setValue(next);
|
|
129
|
+
this.revision.update((current) => current + 1);
|
|
130
|
+
window.setTimeout(() => {
|
|
131
|
+
this.suppressGeneratorChange = false;
|
|
132
|
+
}, 100);
|
|
133
|
+
}
|
|
134
|
+
isSameRequest(left, right) {
|
|
135
|
+
return JSON.stringify(this.stripTempIds(left)) === JSON.stringify(this.stripTempIds(right));
|
|
136
|
+
}
|
|
137
|
+
stripTempIds(value) {
|
|
138
|
+
return {
|
|
139
|
+
url: value.url,
|
|
140
|
+
method: value.method,
|
|
141
|
+
body: value.body,
|
|
142
|
+
headers: value.headers,
|
|
143
|
+
queries: value.queries.map((item) => {
|
|
144
|
+
const copy = { ...item };
|
|
145
|
+
delete copy.tempId;
|
|
146
|
+
return copy;
|
|
147
|
+
}),
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
async showParseError() {
|
|
151
|
+
const message = await this.translationService.translateAsync(this.importI18n.parseFailed);
|
|
152
|
+
this.toastService.show({
|
|
153
|
+
color: 'warning',
|
|
154
|
+
content: message,
|
|
155
|
+
closeButton: true,
|
|
156
|
+
timeOut: 4000,
|
|
157
|
+
timeOutProgress: true,
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMRestApiGeneratorWidgetEditComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
161
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMRestApiGeneratorWidgetEditComponent, isStandalone: true, selector: "axm-rest-api-generator-widget-edit", host: { classAttribute: "block w-full" }, usesInheritance: true, ngImport: i0, template: "<div class=\"axm-rest-api-generator-widget\">\n <!-- ----- Import from cURL, fetch, HTTP, JSON, or URL ----- -->\n <div class=\"axm-rest-api-generator-widget__import\">\n <div class=\"axm-rest-api-generator-widget__import-header\">\n <span class=\"axm-rest-api-generator-widget__import-title\">\n {{ importI18n.title | translate | async }}\n </span>\n <ax-button\n look=\"solid\"\n color=\"primary\"\n class=\"ax-sm\"\n [text]=\"(importI18n.apply | translate | async) ?? ''\"\n (onClick)=\"onApplyImport()\"\n ></ax-button>\n </div>\n <ax-text-area\n [ngModel]=\"importText()\"\n (ngModelChange)=\"onImportModelChange($event)\"\n (onValueChanged)=\"onImportTextChanged($event)\"\n [rows]=\"4\"\n [placeholder]=\"(importI18n.placeholder | translate | async) ?? ''\"\n ></ax-text-area>\n </div>\n\n <!-- ----- Visual REST request builder ----- -->\n @for (rev of revisionKeys(); track rev) {\n <ax-rest-api-generator [value]=\"boundRequest()\" (onValueChange)=\"onGeneratorChange($event)\">\n </ax-rest-api-generator>\n }\n</div>\n", styles: ["@layer properties;.axm-rest-api-generator-widget{display:flex;width:100%;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}.axm-rest-api-generator-widget__import{display:flex;width:100%;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2)}.axm-rest-api-generator-widget__import-header{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2)}.axm-rest-api-generator-widget__import-title{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTextAreaModule }, { kind: "component", type: i3.AXTextAreaComponent, selector: "ax-text-area", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "placeholder", "maxLength", "look", "rows", "allowResize", "showCounter", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXRestApiGeneratorComponent, selector: "ax-rest-api-generator", inputs: ["value"], outputs: ["onValueChange"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
162
|
+
}
|
|
163
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMRestApiGeneratorWidgetEditComponent, decorators: [{
|
|
164
|
+
type: Component,
|
|
165
|
+
args: [{ selector: 'axm-rest-api-generator-widget-edit', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
166
|
+
class: 'block w-full',
|
|
167
|
+
}, imports: [
|
|
168
|
+
CommonModule,
|
|
169
|
+
FormsModule,
|
|
170
|
+
AXButtonModule,
|
|
171
|
+
AXTextAreaModule,
|
|
172
|
+
AXTranslationModule,
|
|
173
|
+
AXRestApiGeneratorComponent,
|
|
174
|
+
], template: "<div class=\"axm-rest-api-generator-widget\">\n <!-- ----- Import from cURL, fetch, HTTP, JSON, or URL ----- -->\n <div class=\"axm-rest-api-generator-widget__import\">\n <div class=\"axm-rest-api-generator-widget__import-header\">\n <span class=\"axm-rest-api-generator-widget__import-title\">\n {{ importI18n.title | translate | async }}\n </span>\n <ax-button\n look=\"solid\"\n color=\"primary\"\n class=\"ax-sm\"\n [text]=\"(importI18n.apply | translate | async) ?? ''\"\n (onClick)=\"onApplyImport()\"\n ></ax-button>\n </div>\n <ax-text-area\n [ngModel]=\"importText()\"\n (ngModelChange)=\"onImportModelChange($event)\"\n (onValueChanged)=\"onImportTextChanged($event)\"\n [rows]=\"4\"\n [placeholder]=\"(importI18n.placeholder | translate | async) ?? ''\"\n ></ax-text-area>\n </div>\n\n <!-- ----- Visual REST request builder ----- -->\n @for (rev of revisionKeys(); track rev) {\n <ax-rest-api-generator [value]=\"boundRequest()\" (onValueChange)=\"onGeneratorChange($event)\">\n </ax-rest-api-generator>\n }\n</div>\n", styles: ["@layer properties;.axm-rest-api-generator-widget{display:flex;width:100%;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}.axm-rest-api-generator-widget__import{display:flex;width:100%;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2)}.axm-rest-api-generator-widget__import-header{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2)}.axm-rest-api-generator-widget__import-title{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
|
|
175
|
+
}], ctorParameters: () => [] });
|
|
176
|
+
|
|
177
|
+
export { AXMRestApiGeneratorWidgetEditComponent };
|
|
178
|
+
//# sourceMappingURL=acorex-platform-module-platform-management-client-rest-api-generator-widget-edit.component-BBwrzcXa.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-platform-management-client-rest-api-generator-widget-edit.component-BBwrzcXa.mjs","sources":["../../../../libs/modules/platform-management/client/src/lib/features/rest-api-generator-widget/rest-api-generator-widget-edit.component.ts","../../../../libs/modules/platform-management/client/src/lib/features/rest-api-generator-widget/rest-api-generator-widget-edit.component.html"],"sourcesContent":["//#region ----- Imports -----\n\nimport { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport type { AXRestApiOutput } from '@acorex/components/rest-api-generator';\nimport { AXRestApiGeneratorComponent } from '@acorex/components/rest-api-generator';\nimport { AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXTextAreaModule } from '@acorex/components/text-area';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, DestroyRef, computed, inject, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { CREATE_USER_QUERY_I18N } from '../query-definition/create-user-query.types';\nimport {\n REST_API_GENERATOR_IMPORT_DEBOUNCE_MS,\n} from './rest-api-generator-widget.constants';\nimport {\n createEmptyRestApiOutput,\n hasParsedContent,\n normalizeRestApiOutput,\n parseHttpRequest,\n} from './parse-http-request.util';\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-rest-api-generator-widget-edit',\n templateUrl: './rest-api-generator-widget-edit.component.html',\n styleUrl: './rest-api-generator-widget-edit.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'block w-full',\n },\n imports: [\n CommonModule,\n FormsModule,\n AXButtonModule,\n AXTextAreaModule,\n AXTranslationModule,\n AXRestApiGeneratorComponent,\n ],\n})\nexport class AXMRestApiGeneratorWidgetEditComponent extends AXPValueWidgetComponent<AXRestApiOutput> {\n //#region ----- Services & Dependencies -----\n\n private readonly toastService = inject(AXToastService);\n private readonly translationService = inject(AXTranslationService);\n private readonly destroyRef = inject(DestroyRef);\n\n //#endregion\n\n //#region ----- Constants -----\n\n protected readonly importI18n = CREATE_USER_QUERY_I18N.import;\n\n //#endregion\n\n //#region ----- State Signals -----\n\n protected readonly importText = signal('');\n protected readonly boundRequest = signal<AXRestApiOutput>(createEmptyRestApiOutput());\n protected readonly revision = signal(0);\n protected readonly revisionKeys = computed(() => [this.revision()]);\n private suppressGeneratorChange = false;\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n private parseTimer: ReturnType<typeof setTimeout> | null = null;\n\n constructor() {\n super();\n this.destroyRef.onDestroy(() => this.clearParseTimer());\n }\n\n override ngOnInit(): void {\n super.ngOnInit();\n this.boundRequest.set(normalizeRestApiOutput(this.getValue()));\n }\n\n //#endregion\n\n //#region ----- Event Handlers -----\n\n protected onImportModelChange(value: unknown): void {\n const text = this.coerceImportText(value);\n this.importText.set(text);\n this.scheduleDebouncedParse(text);\n }\n\n protected onImportTextChanged(event: AXValueChangedEvent<string>): void {\n const text = this.coerceImportText(event.value);\n this.importText.set(text);\n if (event.isUserInteraction === false) {\n return;\n }\n this.scheduleDebouncedParse(text);\n }\n\n protected onApplyImport(): void {\n this.clearParseTimer();\n void this.applyParsedText(this.importText(), true);\n }\n\n protected onGeneratorChange(value: AXRestApiOutput): void {\n const next = normalizeRestApiOutput(value);\n if (this.suppressGeneratorChange) {\n if (hasParsedContent(next)) {\n this.boundRequest.set(next);\n this.setValue(next);\n }\n return;\n }\n this.boundRequest.set(next);\n this.setValue(next);\n }\n\n //#endregion\n\n //#region ----- Import -----\n\n private scheduleDebouncedParse(text: string): void {\n this.clearParseTimer();\n this.parseTimer = setTimeout(() => {\n this.parseTimer = null;\n void this.applyParsedText(text, false);\n }, REST_API_GENERATOR_IMPORT_DEBOUNCE_MS);\n }\n\n private clearParseTimer(): void {\n if (this.parseTimer != null) {\n clearTimeout(this.parseTimer);\n this.parseTimer = null;\n }\n }\n\n private coerceImportText(value: unknown): string {\n if (typeof value === 'string') {\n return value;\n }\n if (value != null && typeof value === 'object' && 'value' in value) {\n const inner = (value as { value: unknown }).value;\n if (typeof inner === 'string') {\n return inner;\n }\n }\n return '';\n }\n\n private async applyParsedText(text: string, showError: boolean): Promise<void> {\n const result = parseHttpRequest(text);\n if (!result.ok) {\n if (showError) {\n await this.showParseError();\n }\n return;\n }\n\n this.applyRequest(result.value);\n }\n\n private applyRequest(value: AXRestApiOutput): void {\n const next = normalizeRestApiOutput(value);\n if (this.isSameRequest(next, this.boundRequest())) {\n this.setValue(next);\n return;\n }\n\n this.suppressGeneratorChange = true;\n this.boundRequest.set(next);\n this.setValue(next);\n this.revision.update((current) => current + 1);\n window.setTimeout(() => {\n this.suppressGeneratorChange = false;\n }, 100);\n }\n\n private isSameRequest(left: AXRestApiOutput, right: AXRestApiOutput): boolean {\n return JSON.stringify(this.stripTempIds(left)) === JSON.stringify(this.stripTempIds(right));\n }\n\n private stripTempIds(value: AXRestApiOutput): unknown {\n return {\n url: value.url,\n method: value.method,\n body: value.body,\n headers: value.headers,\n queries: value.queries.map((item) => {\n const copy = { ...item };\n delete copy.tempId;\n return copy;\n }),\n };\n }\n\n private async showParseError(): Promise<void> {\n const message = await this.translationService.translateAsync(this.importI18n.parseFailed);\n this.toastService.show({\n color: 'warning',\n content: message,\n closeButton: true,\n timeOut: 4000,\n timeOutProgress: true,\n });\n }\n\n //#endregion\n}\n\n//#endregion\n","<div class=\"axm-rest-api-generator-widget\">\n <!-- ----- Import from cURL, fetch, HTTP, JSON, or URL ----- -->\n <div class=\"axm-rest-api-generator-widget__import\">\n <div class=\"axm-rest-api-generator-widget__import-header\">\n <span class=\"axm-rest-api-generator-widget__import-title\">\n {{ importI18n.title | translate | async }}\n </span>\n <ax-button\n look=\"solid\"\n color=\"primary\"\n class=\"ax-sm\"\n [text]=\"(importI18n.apply | translate | async) ?? ''\"\n (onClick)=\"onApplyImport()\"\n ></ax-button>\n </div>\n <ax-text-area\n [ngModel]=\"importText()\"\n (ngModelChange)=\"onImportModelChange($event)\"\n (onValueChanged)=\"onImportTextChanged($event)\"\n [rows]=\"4\"\n [placeholder]=\"(importI18n.placeholder | translate | async) ?? ''\"\n ></ax-text-area>\n </div>\n\n <!-- ----- Visual REST request builder ----- -->\n @for (rev of revisionKeys(); track rev) {\n <ax-rest-api-generator [value]=\"boundRequest()\" (onValueChange)=\"onGeneratorChange($event)\">\n </ax-rest-api-generator>\n }\n</div>\n"],"names":["i2","i4"],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
|
+
import { f as formatRestApiSummary } from './acorex-platform-module-platform-management-client-acorex-platform-module-platform-management-client-V_ao4WVM.mjs';
|
|
5
|
+
|
|
6
|
+
//#region ----- Imports -----
|
|
7
|
+
//#endregion
|
|
8
|
+
//#region ----- Component -----
|
|
9
|
+
class AXMRestApiGeneratorWidgetViewComponent extends AXPValueWidgetComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
//#region ----- Computed Properties -----
|
|
13
|
+
this.summary = computed(() => formatRestApiSummary(this.getValue()), /* @ts-ignore */
|
|
14
|
+
...(ngDevMode ? [{ debugName: "summary" }] : /* istanbul ignore next */ []));
|
|
15
|
+
}
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMRestApiGeneratorWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMRestApiGeneratorWidgetViewComponent, isStandalone: true, selector: "axm-rest-api-generator-widget-view", usesInheritance: true, ngImport: i0, template: `
|
|
18
|
+
@if (summary()) {
|
|
19
|
+
<span class="text-xs font-medium" [title]="summary()">{{ summary() }}</span>
|
|
20
|
+
}
|
|
21
|
+
<!-- ----- Empty request ----- -->
|
|
22
|
+
@else {
|
|
23
|
+
<span class="text-muted">---</span>
|
|
24
|
+
}
|
|
25
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26
|
+
}
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMRestApiGeneratorWidgetViewComponent, decorators: [{
|
|
28
|
+
type: Component,
|
|
29
|
+
args: [{
|
|
30
|
+
selector: 'axm-rest-api-generator-widget-view',
|
|
31
|
+
template: `
|
|
32
|
+
@if (summary()) {
|
|
33
|
+
<span class="text-xs font-medium" [title]="summary()">{{ summary() }}</span>
|
|
34
|
+
}
|
|
35
|
+
<!-- ----- Empty request ----- -->
|
|
36
|
+
@else {
|
|
37
|
+
<span class="text-muted">---</span>
|
|
38
|
+
}
|
|
39
|
+
`,
|
|
40
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
41
|
+
}]
|
|
42
|
+
}] });
|
|
43
|
+
|
|
44
|
+
export { AXMRestApiGeneratorWidgetViewComponent };
|
|
45
|
+
//# sourceMappingURL=acorex-platform-module-platform-management-client-rest-api-generator-widget-view.component-DBlZVz6u.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-platform-management-client-rest-api-generator-widget-view.component-DBlZVz6u.mjs","sources":["../../../../libs/modules/platform-management/client/src/lib/features/rest-api-generator-widget/rest-api-generator-widget-view.component.ts"],"sourcesContent":["//#region ----- Imports -----\n\nimport { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport type { AXRestApiOutput } from '@acorex/components/rest-api-generator';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\n\nimport { formatRestApiSummary } from './parse-http-request.util';\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-rest-api-generator-widget-view',\n template: `\n @if (summary()) {\n <span class=\"text-xs font-medium\" [title]=\"summary()\">{{ summary() }}</span>\n }\n <!-- ----- Empty request ----- -->\n @else {\n <span class=\"text-muted\">---</span>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXMRestApiGeneratorWidgetViewComponent extends AXPValueWidgetComponent<AXRestApiOutput> {\n //#region ----- Computed Properties -----\n\n protected readonly summary = computed(() => formatRestApiSummary(this.getValue()));\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;;AAAA;AAQA;AAEA;AAeM,MAAO,sCAAuC,SAAQ,uBAAwC,CAAA;AAbpG,IAAA,WAAA,GAAA;;;AAgBqB,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oFAAC;AAGnF,IAAA;8GANY,sCAAsC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sCAAsC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAXvC;;;;;;;;AAQT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGU,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBAblD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oCAAoC;AAC9C,oBAAA,QAAQ,EAAE;;;;;;;;AAQT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;;;;;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { b as AXMPlatformManagementModule, d as AXPWorkflowDesignerComponent, e as AXPWorkflowPaletteItemDragDirective, g as AXP_WORKFLOW_PALETTE_MIME, i as arrangeWorkflowDiagram, j as cloneDiagram, k as connectorPath, l as createNodeFromPaletteItem, m as createPortsFromPalette, o as createWorkflowConnectorId, q as createWorkflowNodeId, r as createWorkflowPortId, s as defaultCanConnectRequest, t as findConnector, u as findNode, v as findPort, w as parsePaletteItemDragPayload, x as portAnchorOnNode, y as portCanvasPosition, z as routeOrthogonalConnector, B as snapPoint, C as snapScalar } from './acorex-platform-module-platform-management-client-acorex-platform-module-platform-management-client-V_ao4WVM.mjs';
|
|
2
|
+
//# sourceMappingURL=acorex-platform-module-platform-management-client.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-platform-management-client.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@acorex-platform/module-platform-management-client",
|
|
3
|
+
"version": "0.0.21",
|
|
4
|
+
"sideEffects": false,
|
|
5
|
+
"peerDependencies": {
|
|
6
|
+
"@angular/common": "^21.0.0",
|
|
7
|
+
"@angular/core": "^21.0.0"
|
|
8
|
+
},
|
|
9
|
+
"dependencies": {
|
|
10
|
+
"tslib": "^2.3.0"
|
|
11
|
+
},
|
|
12
|
+
"module": "fesm2022/acorex-platform-module-platform-management-client.mjs",
|
|
13
|
+
"typings": "types/acorex-platform-module-platform-management-client.d.ts",
|
|
14
|
+
"exports": {
|
|
15
|
+
"./package.json": {
|
|
16
|
+
"default": "./package.json"
|
|
17
|
+
},
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./types/acorex-platform-module-platform-management-client.d.ts",
|
|
20
|
+
"default": "./fesm2022/acorex-platform-module-platform-management-client.mjs"
|
|
21
|
+
},
|
|
22
|
+
"./contracts": {
|
|
23
|
+
"types": "./types/acorex-platform-module-platform-management-client-contracts.d.ts",
|
|
24
|
+
"default": "./fesm2022/acorex-platform-module-platform-management-client-contracts.mjs"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"type": "module"
|
|
28
|
+
}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import { AXPCategoryListItem } from '@acorex-platform/framework-shared/core';
|
|
2
|
+
import { AXPEntityModel } from '@acorex-platform/framework-shared/entity';
|
|
3
|
+
import { AXPCommandCapability, AXPPropertyDefinition, AXPQueryRegistryRecord, AXPPluginRegistryRecord, AXPWidgetRegistryRecord } from '@acorex-platform/framework-shared/domain';
|
|
4
|
+
|
|
5
|
+
declare const AXPPlatformManagementFeatureKeys: {
|
|
6
|
+
readonly MenuCustomization: "PlatformManagement:Feature:menu-customization";
|
|
7
|
+
readonly AutoCheckUpdates: "PlatformManagement:Feature:auto-check-updates";
|
|
8
|
+
readonly MaxTokens: "PlatformManagement:Feature:max-tokens";
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
declare const AXPPlatformManagementMenuKeys: {
|
|
12
|
+
readonly AdministrationGroup: "administration:group";
|
|
13
|
+
readonly Root: "platform-management:menu";
|
|
14
|
+
readonly Tokens: "platform-management:menu:tokens";
|
|
15
|
+
readonly Glossary: "platform-management:menu:glossary";
|
|
16
|
+
readonly UserMenuManagement: "platform-management:user:menus";
|
|
17
|
+
readonly MenuManagement: "platform-management:menus";
|
|
18
|
+
readonly EntityDefinitions: "platform-management:menu:entity-definitions";
|
|
19
|
+
readonly CommandDefinitions: "platform-management:menu:command-definitions";
|
|
20
|
+
readonly QueryDefinitions: "platform-management:menu:query-definitions";
|
|
21
|
+
readonly PluginDefinitions: "platform-management:menu:plugin-definitions";
|
|
22
|
+
readonly Widgets: "platform-management:menu:widgets";
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Applications & Platform capabilities used by this module.
|
|
27
|
+
* Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).
|
|
28
|
+
*/
|
|
29
|
+
declare const AXPApplicationsPlatformPermissionKeys: {
|
|
30
|
+
readonly Access: "ApplicationsPlatform:Permission:Access";
|
|
31
|
+
readonly MaintainApplications: "ApplicationsPlatform:Permission:MaintainApplications";
|
|
32
|
+
readonly MaintainTenants: "ApplicationsPlatform:Permission:MaintainTenants";
|
|
33
|
+
readonly MaintainPlatformShell: "ApplicationsPlatform:Permission:MaintainPlatformShell";
|
|
34
|
+
readonly MaintainLandingPages: "ApplicationsPlatform:Permission:MaintainLandingPages";
|
|
35
|
+
readonly MaintainIdentifiers: "ApplicationsPlatform:Permission:MaintainIdentifiers";
|
|
36
|
+
readonly MaintainTenantSettings: "ApplicationsPlatform:Permission:MaintainTenantSettings";
|
|
37
|
+
readonly MaintainPlatformSettings: "ApplicationsPlatform:Permission:MaintainPlatformSettings";
|
|
38
|
+
readonly MaintainLocales: "ApplicationsPlatform:Permission:MaintainLocales";
|
|
39
|
+
readonly UseDevTools: "ApplicationsPlatform:Permission:UseDevTools";
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* @deprecated Prefer {@link AXPApplicationsPlatformPermissionKeys}.
|
|
43
|
+
* Legacy nested shape kept so existing imports compile during migration.
|
|
44
|
+
*/
|
|
45
|
+
declare const AXPPlatformManagementPermissionKeys: {
|
|
46
|
+
readonly PlatformManagement: {
|
|
47
|
+
readonly Management: "ApplicationsPlatform:Permission:MaintainPlatformShell";
|
|
48
|
+
readonly Administration: "ApplicationsPlatform:Permission:MaintainPlatformShell";
|
|
49
|
+
readonly Token: {
|
|
50
|
+
readonly Management: "ApplicationsPlatform:Permission:MaintainPlatformShell";
|
|
51
|
+
readonly View: "ApplicationsPlatform:Permission:MaintainPlatformShell";
|
|
52
|
+
readonly Edit: "ApplicationsPlatform:Permission:MaintainPlatformShell";
|
|
53
|
+
readonly Delete: "ApplicationsPlatform:Permission:MaintainPlatformShell";
|
|
54
|
+
readonly Create: "ApplicationsPlatform:Permission:MaintainPlatformShell";
|
|
55
|
+
};
|
|
56
|
+
readonly MenuManagement: {
|
|
57
|
+
readonly Management: "ApplicationsPlatform:Permission:MaintainPlatformShell";
|
|
58
|
+
readonly View: "ApplicationsPlatform:Permission:MaintainPlatformShell";
|
|
59
|
+
readonly Edit: "ApplicationsPlatform:Permission:MaintainPlatformShell";
|
|
60
|
+
readonly Delete: "ApplicationsPlatform:Permission:MaintainPlatformShell";
|
|
61
|
+
readonly Create: "ApplicationsPlatform:Permission:MaintainPlatformShell";
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
declare const RootConfig: {
|
|
67
|
+
readonly config: {
|
|
68
|
+
i18n: string;
|
|
69
|
+
};
|
|
70
|
+
readonly module: {
|
|
71
|
+
readonly route: "platform-management";
|
|
72
|
+
readonly name: "PlatformManagement";
|
|
73
|
+
readonly title: `@${string}:module.title`;
|
|
74
|
+
readonly icon: "fa-light fa-cogs";
|
|
75
|
+
};
|
|
76
|
+
readonly entities: {
|
|
77
|
+
readonly localizationManagement: {
|
|
78
|
+
readonly name: "Localization Management";
|
|
79
|
+
readonly title: `@${string}:localization-management.entities.localization-management.title`;
|
|
80
|
+
readonly icon: "fa-light fa-globe";
|
|
81
|
+
};
|
|
82
|
+
readonly token: {
|
|
83
|
+
readonly name: "Tokens";
|
|
84
|
+
readonly title: `@${string}:tokens.entities.token.title`;
|
|
85
|
+
readonly icon: "fa-light fa-object-exclude";
|
|
86
|
+
};
|
|
87
|
+
readonly commandDefinition: {
|
|
88
|
+
readonly name: "CommandDefinition";
|
|
89
|
+
readonly title: `@${string}:command-definitions.entities.command-definition.title`;
|
|
90
|
+
readonly titlePlural: `@${string}:command-definitions.entities.command-definition.title-plural`;
|
|
91
|
+
readonly icon: "fa-light fa-terminal";
|
|
92
|
+
};
|
|
93
|
+
readonly queryDefinition: {
|
|
94
|
+
readonly name: "QueryDefinition";
|
|
95
|
+
readonly title: `@${string}:query-definitions.entities.query-definition.title`;
|
|
96
|
+
readonly titlePlural: `@${string}:query-definitions.entities.query-definition.title-plural`;
|
|
97
|
+
readonly icon: "fa-light fa-database";
|
|
98
|
+
};
|
|
99
|
+
readonly pluginDefinition: {
|
|
100
|
+
readonly name: "PluginDefinition";
|
|
101
|
+
readonly title: `@${string}:plugin-definitions.entities.plugin-definition.title`;
|
|
102
|
+
readonly titlePlural: `@${string}:plugin-definitions.entities.plugin-definition.title-plural`;
|
|
103
|
+
readonly icon: "fa-light fa-puzzle-piece";
|
|
104
|
+
};
|
|
105
|
+
readonly widget: {
|
|
106
|
+
readonly name: "Widget";
|
|
107
|
+
readonly title: `@${string}:widgets.entities.widget.title`;
|
|
108
|
+
readonly titlePlural: `@${string}:widgets.entities.widget.title-plural`;
|
|
109
|
+
readonly icon: "fa-light fa-cubes";
|
|
110
|
+
};
|
|
111
|
+
readonly entityDefinition: {
|
|
112
|
+
readonly name: "EntityDefinition";
|
|
113
|
+
readonly title: `@${string}:entity-definitions.entities.entity-definition.title`;
|
|
114
|
+
readonly titlePlural: `@${string}:entity-definitions.entities.entity-definition.title-plural`;
|
|
115
|
+
readonly icon: "fa-light fa-diagram-project";
|
|
116
|
+
};
|
|
117
|
+
readonly entityAccessPolicy: {
|
|
118
|
+
readonly name: "EntityAccessPolicy";
|
|
119
|
+
readonly title: `@${string}:entity-access-policies.entities.entity-access-policy.title`;
|
|
120
|
+
readonly titlePlural: `@${string}:entity-access-policies.entities.entity-access-policy.title-plural`;
|
|
121
|
+
readonly icon: "fa-light fa-shield-keyhole";
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
readonly queries: {
|
|
125
|
+
readonly listRegisteredQueries: "PlatformManagement:ListRegisteredQueries";
|
|
126
|
+
readonly dashboard: {
|
|
127
|
+
readonly tenantsKpi: "PlatformManagement:Dashboard:TenantsKpi";
|
|
128
|
+
readonly usersKpi: "PlatformManagement:Dashboard:UsersKpi";
|
|
129
|
+
readonly applicationsKpi: "PlatformManagement:Dashboard:ApplicationsKpi";
|
|
130
|
+
readonly errorsKpi: "PlatformManagement:Dashboard:ErrorsKpi";
|
|
131
|
+
readonly onlineUsersKpi: "PlatformManagement:Dashboard:OnlineUsersKpi";
|
|
132
|
+
readonly todayLoggedInUsersKpi: "PlatformManagement:Dashboard:TodayLoggedInUsersKpi";
|
|
133
|
+
readonly todayOnlineByHourLine: "PlatformManagement:Dashboard:TodayOnlineByHourLine";
|
|
134
|
+
readonly tenantsByStatusBar: "PlatformManagement:Dashboard:TenantsByStatusBar";
|
|
135
|
+
readonly applicationsByEditionDonut: "PlatformManagement:Dashboard:ApplicationsByEditionDonut";
|
|
136
|
+
readonly errorsTrendLine: "PlatformManagement:Dashboard:ErrorsTrendLine";
|
|
137
|
+
readonly jobsByStatusBar: "PlatformManagement:Dashboard:JobsByStatusBar";
|
|
138
|
+
};
|
|
139
|
+
readonly reports: {
|
|
140
|
+
readonly userActivityTimeline: "PlatformManagement:Reports:UserActivityTimeline";
|
|
141
|
+
readonly userPresenceSummary: "PlatformManagement:Reports:UserPresenceSummary";
|
|
142
|
+
readonly userPresenceDaily: "PlatformManagement:Reports:UserPresenceDaily";
|
|
143
|
+
readonly userPresenceDailyChart: "PlatformManagement:Reports:UserPresenceDailyChart";
|
|
144
|
+
readonly userPresenceTimeline: "PlatformManagement:Reports:UserPresenceTimeline";
|
|
145
|
+
readonly userPresenceAwayBusy: "PlatformManagement:Reports:UserPresenceAwayBusy";
|
|
146
|
+
readonly tenantPresenceSnapshot: "PlatformManagement:Reports:TenantPresenceSnapshot";
|
|
147
|
+
readonly tenantPresenceWhoWasAround: "PlatformManagement:Reports:TenantPresenceWhoWasAround";
|
|
148
|
+
readonly tenantPresenceDailyTrend: "PlatformManagement:Reports:TenantPresenceDailyTrend";
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
/** Public server command: reload in-memory entity schemas from domain definitions. */
|
|
154
|
+
declare const AXM_RELOAD_RUNTIME_MEMORY_COMMAND_KEY = "PlatformManagement:ReloadRuntimeMemory";
|
|
155
|
+
interface AXMReloadRuntimeMemoryResult {
|
|
156
|
+
schemaCount: number;
|
|
157
|
+
policiesReloaded: boolean;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/** Value data type of the token */
|
|
161
|
+
type AXMTokenDataType = 'String' | 'Integer' | 'Boolean' | 'Decimal' | 'DateTime' | 'Json';
|
|
162
|
+
/** Token kind/category indicating source or usage */
|
|
163
|
+
type AXMTokenKind = 'Static' | 'Context' | 'Event' | 'Computed' | 'Secret';
|
|
164
|
+
/** Token value format hint */
|
|
165
|
+
type AXMTokenFormat = 'None' | 'Email' | 'Url' | 'Phone' | 'Currency' | 'Percent';
|
|
166
|
+
interface AXMTokenEntityModel extends AXPEntityModel<string> {
|
|
167
|
+
name: string;
|
|
168
|
+
title: string;
|
|
169
|
+
description?: string;
|
|
170
|
+
/** Data type of the token value */
|
|
171
|
+
dataType: AXMTokenDataType;
|
|
172
|
+
/** Token kind/category */
|
|
173
|
+
kind: AXMTokenKind;
|
|
174
|
+
/** Format hint for the token value */
|
|
175
|
+
format?: AXMTokenFormat;
|
|
176
|
+
expression?: string;
|
|
177
|
+
/** Sample value for template preview and documentation */
|
|
178
|
+
sampleValue?: string;
|
|
179
|
+
/** Category IDs (from category plugin) */
|
|
180
|
+
categoryIds?: string[];
|
|
181
|
+
/** Category display data (from category plugin) */
|
|
182
|
+
categories?: AXPCategoryListItem[];
|
|
183
|
+
/** Whether the token value is sensitive (e.g. API keys) */
|
|
184
|
+
isSensitive?: boolean;
|
|
185
|
+
/** How to mask sensitive values when displayed */
|
|
186
|
+
maskPattern?: 'Full' | 'Partial' | 'None';
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/** Server command: resolve a PlatformManagement token by name via `expression`. */
|
|
190
|
+
declare const AXM_TOKEN_RESOLVE_COMMAND_KEY = "PlatformManagement.Tokens:Resolve";
|
|
191
|
+
interface AXMTokenResolveRequest {
|
|
192
|
+
/** Token name (`PlatformManagement.Tokens.name`). */
|
|
193
|
+
tokenName?: string;
|
|
194
|
+
}
|
|
195
|
+
interface AXMTokenResolveResult {
|
|
196
|
+
tokenName: string;
|
|
197
|
+
/** Resolved value; omitted/null when expression is empty or token missing. */
|
|
198
|
+
value?: unknown;
|
|
199
|
+
kind?: string;
|
|
200
|
+
dataType?: string;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
interface AXMCommandDefinitionEntityModel extends AXPEntityModel<string> {
|
|
204
|
+
name: string;
|
|
205
|
+
active: boolean;
|
|
206
|
+
catalogTitle?: string;
|
|
207
|
+
description?: string;
|
|
208
|
+
executionMode?: 'frontend' | 'backend' | 'both';
|
|
209
|
+
capabilities?: AXPCommandCapability[];
|
|
210
|
+
inputOptionDefinitions?: AXPPropertyDefinition[];
|
|
211
|
+
outputOptionDefinitions?: AXPPropertyDefinition[];
|
|
212
|
+
outcomesDefinitionJson?: string;
|
|
213
|
+
aiMetadataJson?: string;
|
|
214
|
+
categories?: unknown[];
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
interface AXMQueryDefinitionEntityModel extends AXPEntityModel<string>, Omit<AXPQueryRegistryRecord, 'name' | 'active'> {
|
|
218
|
+
name: string;
|
|
219
|
+
active: boolean;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
interface AXMPluginDefinitionEntityModel extends AXPEntityModel<string>, Omit<AXPPluginRegistryRecord, 'name' | 'active'> {
|
|
223
|
+
name: string;
|
|
224
|
+
active: boolean;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
interface AXMWidgetEntityModel extends AXPEntityModel<string>, Omit<AXPWidgetRegistryRecord, 'name' | 'active'> {
|
|
228
|
+
name: string;
|
|
229
|
+
active: boolean;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Row shape in `PlatformManagement.EntityDefinition` (domain definition store).
|
|
234
|
+
* Seeded from module `*.entity.ts` catalogs via domain-definition seed.
|
|
235
|
+
*/
|
|
236
|
+
interface AXMEntityDefinitionEntityModel extends AXPEntityModel<string> {
|
|
237
|
+
/** Logical key: `Module.Entity`. */
|
|
238
|
+
name: string;
|
|
239
|
+
/** Full serializable {@link AXPEntity} from the module factory. */
|
|
240
|
+
content?: Record<string, unknown>;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Platform-wide row governing read/write access expressions for an entity
|
|
245
|
+
* (exact name or pattern such as `SystemInsight.*` / `*`).
|
|
246
|
+
*/
|
|
247
|
+
interface AXMPlatformManagementEntityAccessPolicyEntityModel extends AXPEntityModel<string> {
|
|
248
|
+
entityName: string;
|
|
249
|
+
/** Builtin name or inline expression. */
|
|
250
|
+
read: string;
|
|
251
|
+
/** Builtin name or inline expression. */
|
|
252
|
+
write: string;
|
|
253
|
+
enabled?: boolean;
|
|
254
|
+
description?: string;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
export { AXM_RELOAD_RUNTIME_MEMORY_COMMAND_KEY, AXM_TOKEN_RESOLVE_COMMAND_KEY, AXPApplicationsPlatformPermissionKeys, AXPPlatformManagementFeatureKeys, AXPPlatformManagementMenuKeys, AXPPlatformManagementPermissionKeys, RootConfig };
|
|
258
|
+
export type { AXMCommandDefinitionEntityModel, AXMEntityDefinitionEntityModel, AXMPlatformManagementEntityAccessPolicyEntityModel, AXMPluginDefinitionEntityModel, AXMQueryDefinitionEntityModel, AXMReloadRuntimeMemoryResult, AXMTokenDataType, AXMTokenEntityModel, AXMTokenFormat, AXMTokenKind, AXMTokenResolveRequest, AXMTokenResolveResult, AXMWidgetEntityModel };
|