@codenotch/codenotch.react 1.0.81
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/README.md +145 -0
- package/dist/components/Auml.d.ts +46 -0
- package/dist/components/Auml.d.ts.map +1 -0
- package/dist/components/Auml.js +208 -0
- package/dist/components/CodeEditor.d.ts +39 -0
- package/dist/components/CodeEditor.d.ts.map +1 -0
- package/dist/components/CodeEditor.js +174 -0
- package/dist/core/ProcessUtils.d.ts +10 -0
- package/dist/core/ProcessUtils.d.ts.map +1 -0
- package/dist/core/ProcessUtils.js +65 -0
- package/dist/core/SignalR.d.ts +30 -0
- package/dist/core/SignalR.d.ts.map +1 -0
- package/dist/core/SignalR.js +245 -0
- package/dist/index.d.ts +60 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +370 -0
- package/dist/models/AppManifestModels.d.ts +46 -0
- package/dist/models/AppManifestModels.d.ts.map +1 -0
- package/dist/models/AppManifestModels.js +2 -0
- package/dist/models/Codenotch.d.ts +256 -0
- package/dist/models/Codenotch.d.ts.map +1 -0
- package/dist/models/Codenotch.js +2 -0
- package/dist/models/Misc.d.ts +28 -0
- package/dist/models/Misc.d.ts.map +1 -0
- package/dist/models/Misc.js +2 -0
- package/dist/models/ProjectManifestModels.d.ts +126 -0
- package/dist/models/ProjectManifestModels.d.ts.map +1 -0
- package/dist/models/ProjectManifestModels.js +158 -0
- package/dist/utils/I18nUtils.d.ts +7 -0
- package/dist/utils/I18nUtils.d.ts.map +1 -0
- package/dist/utils/I18nUtils.js +37 -0
- package/package.json +44 -0
- package/src/components/CodeEditor.tsx +203 -0
- package/src/core/ProcessUtils.ts +86 -0
- package/src/core/SignalR.ts +375 -0
- package/src/index.ts +387 -0
- package/src/models/AppManifestModels.ts +54 -0
- package/src/models/Codenotch.ts +285 -0
- package/src/models/Misc.ts +32 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Codenotch.d.ts","sourceRoot":"","sources":["../../src/models/Codenotch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC1B,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oHAAoH;IACpH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yGAAyG;IACzG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yGAAyG;IACzG,IAAI,CAAC,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IACzD,iGAAiG;IACjG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2GAA2G;IAC3G,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAEzB,gGAAgG;IAChG,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,8EAA8E;IAC9E,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,8DAA8D;IAC9D,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAGD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,eAAe;CAE/B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,mBAAmB;CAEnC;AAMD,uGAAuG;AACvG,MAAM,MAAM,WAAW,GAAG,MAAM,eAAe,SAAS,KAAK,GAAG,MAAM,GAAG,MAAM,eAAe,CAAC;AAE/F,iHAAiH;AACjH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,eAAe,GACvD,eAAe,CAAC,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAC7E;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAC;AAEhC,+FAA+F;AAC/F,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,eAAe,GACxD,eAAe,CAAC,CAAC,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,GAAG,GACxD,GAAG,CAAC;AAEV,yGAAyG;AACzG,MAAM,MAAM,cAAc,GAAG,MAAM,mBAAmB,SAAS,KAAK,GAAG,MAAM,GAAG,MAAM,mBAAmB,CAAC;AAE1G,kHAAkH;AAClH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,mBAAmB,GAC9D,mBAAmB,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,GACrE,GAAG,EAAE,CAAC;AAGZ;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,GAAG;IAEnC,kDAAkD;IAClD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,MAAM,EAAE,CAAC,CAAC;IACV,oFAAoF;IACpF,OAAO,EAAE,OAAO,CAAC;IACjB,oDAAoD;IACpD,YAAY,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,aAAa;IAE1B;;;;;;;;;;;;OAYG;IACH,YAAY,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,MAAM,YAAY,CAAC,CAAC,CAAC,EAC/D,WAAW,EAAE,CAAC,EACd,WAAW,EAAE,CAAC,EACd,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAC3B,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7C;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,CAAC,SAAS,cAAc,EACzB,GAAG,EAAE,CAAC,EACN,GAAG,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,GAC5B,MAAM,CAAC;IAEV,qHAAqH;IACrH,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAE5B;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAE1E;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,KAAK,gBAAgB,CAAC;IAE7D;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE/E;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;IAE7D;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAE9G,uGAAuG;IACvG,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;IACrD,qCAAqC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACtD,6FAA6F;IAC7F,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,qCAAqC;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC/C,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,EAAE,MAAM,MAAM,EAAE,CAAC;IACtC,4GAA4G;IAC5G,QAAQ,CAAC,YAAY,EAAE,MAAM;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACvD,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,MAAM,CAAC;IAC5B,qFAAqF;IACrF,QAAQ,CAAC,kBAAkB,EAAE,MAAM,eAAe,CAAC;IACnD,mDAAmD;IACnD,QAAQ,CAAC,cAAc,EAAE,MAAM,mBAAmB,GAAG,SAAS,CAAC;CAClE;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,KAAK,EAAE,MAAM,IAAI,CAAC;CACrB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { IProcessResult } from "./Codenotch";
|
|
2
|
+
/**
|
|
3
|
+
* Internal callbacks used while a BPMN process instance is running.
|
|
4
|
+
*/
|
|
5
|
+
export interface IProcessCallbacks {
|
|
6
|
+
/** Called once when the process instance completes (successfully or not). */
|
|
7
|
+
onOver: (processResult: IProcessResult) => void;
|
|
8
|
+
/** Called for each intermediate callback emitted by the process. */
|
|
9
|
+
onCallback: (callback: any) => void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* A real-time signal emitted by a BPMN process,
|
|
13
|
+
* received through `useCodenotch().listenSignal()`.
|
|
14
|
+
*/
|
|
15
|
+
export interface ICodenotchSignal {
|
|
16
|
+
/** Id of the signal, as declared in the BPMN process. */
|
|
17
|
+
signalId: string;
|
|
18
|
+
/** Payload attached to the signal by the process. */
|
|
19
|
+
data: any;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* A subscription that can be released.
|
|
23
|
+
*/
|
|
24
|
+
export interface IDisposable {
|
|
25
|
+
/** Release the subscription (e.g. stop listening to a signal). */
|
|
26
|
+
dispose: () => void;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=Misc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Misc.d.ts","sourceRoot":"","sources":["../../src/models/Misc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAE9B,6EAA6E;IAC7E,MAAM,EAAE,CAAC,aAAa,EAAE,cAAc,KAAK,IAAI,CAAC;IAChD,oEAAoE;IACpE,UAAU,EAAC,CAAE,QAAQ,EAAE,GAAG,KAAK,IAAI,CAAA;CACtC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAE7B,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,IAAI,EAAE,GAAG,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,kEAAkE;IAClE,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { JSONSchema7 } from "json-schema";
|
|
2
|
+
export declare class ProjectManifest {
|
|
3
|
+
projectName: string;
|
|
4
|
+
serviceName: string;
|
|
5
|
+
version: string;
|
|
6
|
+
index?: string;
|
|
7
|
+
packages: {
|
|
8
|
+
[packageSource: string]: string;
|
|
9
|
+
};
|
|
10
|
+
apis: ProjectManifestApi[];
|
|
11
|
+
languages?: string[];
|
|
12
|
+
dependencies?: (ProjectManifestDependency | string)[];
|
|
13
|
+
applications: ProjectManifestApplication[];
|
|
14
|
+
reactApplications: ProjectManifestReactApplication[] | undefined;
|
|
15
|
+
expressComponents: ProjectManifestExpressComponent[] | undefined;
|
|
16
|
+
scripts: ProjectManifestScript[] | undefined;
|
|
17
|
+
pdfs: ProjectManifestPdf[] | undefined;
|
|
18
|
+
emails: ProjectManifestEmail[] | undefined;
|
|
19
|
+
htmls: ProjectManifestHtml[] | undefined;
|
|
20
|
+
processes: ProjectManifestProcess[];
|
|
21
|
+
tableDataSources: ProjectManifestDatastore[];
|
|
22
|
+
documentDataSources: ProjectManifestDatastore[];
|
|
23
|
+
roles: ProjectManifestRole[];
|
|
24
|
+
postInstallationProcesses?: ProjectManifestPostInstallationProcess[];
|
|
25
|
+
constructor();
|
|
26
|
+
}
|
|
27
|
+
export declare class ProjectManifestPostInstallationProcess {
|
|
28
|
+
processName: string;
|
|
29
|
+
startEvent: string;
|
|
30
|
+
}
|
|
31
|
+
export declare class ProjectManifestDependency {
|
|
32
|
+
name: string;
|
|
33
|
+
version?: string;
|
|
34
|
+
}
|
|
35
|
+
export declare class ProjectManifestRole {
|
|
36
|
+
name: string;
|
|
37
|
+
description: string;
|
|
38
|
+
}
|
|
39
|
+
export declare class ProjectManifestDatastore {
|
|
40
|
+
name: string;
|
|
41
|
+
file: string;
|
|
42
|
+
ttlMinutes?: number;
|
|
43
|
+
constructor();
|
|
44
|
+
}
|
|
45
|
+
export declare class ProjectManifestProcess {
|
|
46
|
+
processName: string;
|
|
47
|
+
file: string;
|
|
48
|
+
startEvents: ProjectManifestProcessStartEvent[];
|
|
49
|
+
endEvent: JSONSchema7;
|
|
50
|
+
signals: ProjectManigestSignal[];
|
|
51
|
+
priority?: "immediate" | "high" | "medium" | "low";
|
|
52
|
+
minThreads?: number;
|
|
53
|
+
maxThreads?: number;
|
|
54
|
+
constructor();
|
|
55
|
+
}
|
|
56
|
+
export declare class ProjectManigestSignal {
|
|
57
|
+
signalId: string;
|
|
58
|
+
type: string;
|
|
59
|
+
}
|
|
60
|
+
export declare class ProjectManifestProcessStartEvent {
|
|
61
|
+
nodeId: string;
|
|
62
|
+
kind: string;
|
|
63
|
+
scope: string;
|
|
64
|
+
roles: string[];
|
|
65
|
+
input: JSONSchema7;
|
|
66
|
+
constructor();
|
|
67
|
+
}
|
|
68
|
+
export declare class ProjectManifestReactApplication {
|
|
69
|
+
applicationName: string;
|
|
70
|
+
file: string;
|
|
71
|
+
scope: string;
|
|
72
|
+
roles: string[];
|
|
73
|
+
constructor();
|
|
74
|
+
}
|
|
75
|
+
export declare class ProjectManifestApplication {
|
|
76
|
+
applicationName: string;
|
|
77
|
+
file: string;
|
|
78
|
+
scope: string;
|
|
79
|
+
roles: string[];
|
|
80
|
+
constructor();
|
|
81
|
+
}
|
|
82
|
+
export declare class ProjectManifestPdf {
|
|
83
|
+
name: string;
|
|
84
|
+
file: string;
|
|
85
|
+
constructor();
|
|
86
|
+
}
|
|
87
|
+
export declare class ProjectManifestEmail {
|
|
88
|
+
name: string;
|
|
89
|
+
file: string;
|
|
90
|
+
constructor();
|
|
91
|
+
}
|
|
92
|
+
export declare class ProjectManifestHtml {
|
|
93
|
+
name: string;
|
|
94
|
+
file: string;
|
|
95
|
+
constructor();
|
|
96
|
+
}
|
|
97
|
+
export declare class ProjectManifestExpressComponent {
|
|
98
|
+
componentName: string;
|
|
99
|
+
file: string;
|
|
100
|
+
constructor();
|
|
101
|
+
}
|
|
102
|
+
export declare class ProjectManifestScript {
|
|
103
|
+
file: string;
|
|
104
|
+
constructor();
|
|
105
|
+
}
|
|
106
|
+
export declare class ProjectManifestApplicationInsight {
|
|
107
|
+
key: string;
|
|
108
|
+
constructor();
|
|
109
|
+
}
|
|
110
|
+
export declare class ProjectManifestApi {
|
|
111
|
+
path: string;
|
|
112
|
+
method: string;
|
|
113
|
+
bpmn: string;
|
|
114
|
+
startNode: string;
|
|
115
|
+
accept: string;
|
|
116
|
+
priority?: "immediate" | "high" | "medium" | "low";
|
|
117
|
+
minThreads?: number;
|
|
118
|
+
maxThreads?: number;
|
|
119
|
+
constructor();
|
|
120
|
+
}
|
|
121
|
+
export declare class ProjectManifestParameter {
|
|
122
|
+
key: string;
|
|
123
|
+
value: string;
|
|
124
|
+
constructor();
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=ProjectManifestModels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectManifestModels.d.ts","sourceRoot":"","sources":["../../src/models/ProjectManifestModels.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProjectManifestParameter = exports.ProjectManifestApi = exports.ProjectManifestApplicationInsight = exports.ProjectManifestScript = exports.ProjectManifestExpressComponent = exports.ProjectManifestHtml = exports.ProjectManifestEmail = exports.ProjectManifestPdf = exports.ProjectManifestApplication = exports.ProjectManifestReactApplication = exports.ProjectManifestProcessStartEvent = exports.ProjectManigestSignal = exports.ProjectManifestProcess = exports.ProjectManifestDatastore = exports.ProjectManifestRole = exports.ProjectManifestDependency = exports.ProjectManifestPostInstallationProcess = exports.ProjectManifest = void 0;
|
|
4
|
+
class ProjectManifest {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.projectName = '';
|
|
7
|
+
this.serviceName = '';
|
|
8
|
+
this.version = '0.0.0';
|
|
9
|
+
this.packages = {};
|
|
10
|
+
this.apis = [];
|
|
11
|
+
this.applications = [];
|
|
12
|
+
this.expressComponents = [];
|
|
13
|
+
this.scripts = [];
|
|
14
|
+
this.pdfs = [];
|
|
15
|
+
this.emails = [];
|
|
16
|
+
this.htmls = [];
|
|
17
|
+
this.processes = [];
|
|
18
|
+
this.tableDataSources = [];
|
|
19
|
+
this.documentDataSources = [];
|
|
20
|
+
this.roles = [];
|
|
21
|
+
this.languages = [];
|
|
22
|
+
this.postInstallationProcesses = [];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.ProjectManifest = ProjectManifest;
|
|
26
|
+
class ProjectManifestPostInstallationProcess {
|
|
27
|
+
constructor() {
|
|
28
|
+
this.processName = '';
|
|
29
|
+
this.startEvent = '';
|
|
30
|
+
}
|
|
31
|
+
;
|
|
32
|
+
;
|
|
33
|
+
}
|
|
34
|
+
exports.ProjectManifestPostInstallationProcess = ProjectManifestPostInstallationProcess;
|
|
35
|
+
class ProjectManifestDependency {
|
|
36
|
+
constructor() {
|
|
37
|
+
this.name = '';
|
|
38
|
+
this.version = '';
|
|
39
|
+
//TODO more options ? optional dependency, auto install, ...
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.ProjectManifestDependency = ProjectManifestDependency;
|
|
43
|
+
class ProjectManifestRole {
|
|
44
|
+
constructor() {
|
|
45
|
+
this.name = '';
|
|
46
|
+
this.description = '';
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.ProjectManifestRole = ProjectManifestRole;
|
|
50
|
+
class ProjectManifestDatastore {
|
|
51
|
+
constructor() {
|
|
52
|
+
this.name = '';
|
|
53
|
+
this.file = '';
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
exports.ProjectManifestDatastore = ProjectManifestDatastore;
|
|
57
|
+
class ProjectManifestProcess {
|
|
58
|
+
constructor() {
|
|
59
|
+
this.processName = '';
|
|
60
|
+
this.file = '';
|
|
61
|
+
this.startEvents = [];
|
|
62
|
+
this.endEvent = {};
|
|
63
|
+
this.signals = [];
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.ProjectManifestProcess = ProjectManifestProcess;
|
|
67
|
+
class ProjectManigestSignal {
|
|
68
|
+
constructor() {
|
|
69
|
+
this.signalId = '';
|
|
70
|
+
this.type = '';
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.ProjectManigestSignal = ProjectManigestSignal;
|
|
74
|
+
class ProjectManifestProcessStartEvent {
|
|
75
|
+
constructor() {
|
|
76
|
+
this.nodeId = '';
|
|
77
|
+
this.kind = '';
|
|
78
|
+
this.scope = '';
|
|
79
|
+
this.roles = [];
|
|
80
|
+
this.input = {};
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.ProjectManifestProcessStartEvent = ProjectManifestProcessStartEvent;
|
|
84
|
+
class ProjectManifestReactApplication {
|
|
85
|
+
constructor() {
|
|
86
|
+
this.applicationName = '';
|
|
87
|
+
this.file = '';
|
|
88
|
+
this.scope = '';
|
|
89
|
+
this.roles = [];
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.ProjectManifestReactApplication = ProjectManifestReactApplication;
|
|
93
|
+
class ProjectManifestApplication {
|
|
94
|
+
constructor() {
|
|
95
|
+
this.applicationName = '';
|
|
96
|
+
this.file = '';
|
|
97
|
+
this.scope = '';
|
|
98
|
+
this.roles = [];
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
exports.ProjectManifestApplication = ProjectManifestApplication;
|
|
102
|
+
class ProjectManifestPdf {
|
|
103
|
+
constructor() {
|
|
104
|
+
this.name = '';
|
|
105
|
+
this.file = '';
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.ProjectManifestPdf = ProjectManifestPdf;
|
|
109
|
+
class ProjectManifestEmail {
|
|
110
|
+
constructor() {
|
|
111
|
+
this.name = '';
|
|
112
|
+
this.file = '';
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.ProjectManifestEmail = ProjectManifestEmail;
|
|
116
|
+
class ProjectManifestHtml {
|
|
117
|
+
constructor() {
|
|
118
|
+
this.name = '';
|
|
119
|
+
this.file = '';
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
exports.ProjectManifestHtml = ProjectManifestHtml;
|
|
123
|
+
class ProjectManifestExpressComponent {
|
|
124
|
+
constructor() {
|
|
125
|
+
this.componentName = '';
|
|
126
|
+
this.file = '';
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
exports.ProjectManifestExpressComponent = ProjectManifestExpressComponent;
|
|
130
|
+
class ProjectManifestScript {
|
|
131
|
+
constructor() {
|
|
132
|
+
this.file = '';
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
exports.ProjectManifestScript = ProjectManifestScript;
|
|
136
|
+
class ProjectManifestApplicationInsight {
|
|
137
|
+
constructor() {
|
|
138
|
+
this.key = '';
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
exports.ProjectManifestApplicationInsight = ProjectManifestApplicationInsight;
|
|
142
|
+
class ProjectManifestApi {
|
|
143
|
+
constructor() {
|
|
144
|
+
this.path = '';
|
|
145
|
+
this.method = '';
|
|
146
|
+
this.bpmn = '';
|
|
147
|
+
this.startNode = '';
|
|
148
|
+
this.accept = '';
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
exports.ProjectManifestApi = ProjectManifestApi;
|
|
152
|
+
class ProjectManifestParameter {
|
|
153
|
+
constructor() {
|
|
154
|
+
this.key = '';
|
|
155
|
+
this.value = '';
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
exports.ProjectManifestParameter = ProjectManifestParameter;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"I18nUtils.d.ts","sourceRoot":"","sources":["../../src/utils/I18nUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,aAAa,EAAgB,MAAM,IAAI,CAAC;AAEhE,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,SAAS;WAErB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM;IAOnE,OAAO,CAAC,MAAM,CAAC,UAAU;IAkBzB,OAAO,CAAC,MAAM,CAAC,UAAU;CAsB5B"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class I18nUtils {
|
|
4
|
+
static compileAuml(auml, env) {
|
|
5
|
+
auml = this.injectI18n(auml, env);
|
|
6
|
+
return auml;
|
|
7
|
+
}
|
|
8
|
+
static revertI18n(i18n) {
|
|
9
|
+
let result = {};
|
|
10
|
+
for (let language in i18n) {
|
|
11
|
+
let translations = i18n[language];
|
|
12
|
+
for (let key in translations) {
|
|
13
|
+
if (!result[key]) {
|
|
14
|
+
result[key] = {};
|
|
15
|
+
}
|
|
16
|
+
result[key][language] = translations[key];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
21
|
+
static injectI18n(auml, env) {
|
|
22
|
+
let i18n = this.revertI18n(env.i18n ?? {});
|
|
23
|
+
if (Object.keys(i18n).length === 0) {
|
|
24
|
+
// No i18n variables, return original auml
|
|
25
|
+
return auml;
|
|
26
|
+
}
|
|
27
|
+
// Obtain the root tag of the file
|
|
28
|
+
let match = auml.match(/<([^!\r\n\t\f\v> ]+)/);
|
|
29
|
+
if (!match) {
|
|
30
|
+
return auml;
|
|
31
|
+
}
|
|
32
|
+
let rootTag = match[1];
|
|
33
|
+
auml = auml.replace(`</${rootTag}>`, `<${rootTag}.I18n><![CDATA[${JSON.stringify(i18n)}]]></${rootTag}.I18n></${rootTag}>`);
|
|
34
|
+
return auml;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.default = I18nUtils;
|
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@codenotch/codenotch.react",
|
|
3
|
+
"version": "1.0.81",
|
|
4
|
+
"description": "React bindings for Codenotch applications: start BPMN processes, run SioQL queries, translate i18n keys, listen to real-time signals, manage theme and language.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"codenotch",
|
|
7
|
+
"react"
|
|
8
|
+
],
|
|
9
|
+
"publishConfig": {
|
|
10
|
+
"access": "public"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://codenotch.com",
|
|
13
|
+
"main": "dist/index.js",
|
|
14
|
+
"types": "dist/index.d.ts",
|
|
15
|
+
"author": "Codenotch SA",
|
|
16
|
+
"license": "MIT",
|
|
17
|
+
"scripts": {
|
|
18
|
+
"build": "tsc",
|
|
19
|
+
"dev": "tsc --watch",
|
|
20
|
+
"prepublishOnly": "npm run build",
|
|
21
|
+
"clean": "rm -rf dist"
|
|
22
|
+
},
|
|
23
|
+
"files": [
|
|
24
|
+
"dist/**/*",
|
|
25
|
+
"src/**/*"
|
|
26
|
+
],
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@codenotch/codenotch.core": "1.0.2",
|
|
29
|
+
"@microsoft/signalr": "^5.0.6",
|
|
30
|
+
"uuid": "^8.2.0"
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@types/node": "^25.3.2",
|
|
34
|
+
"@types/react": "^16.14.69",
|
|
35
|
+
"@types/react-dom": "^16.9.25",
|
|
36
|
+
"@types/uuid": "8.0.0",
|
|
37
|
+
"@types/json-schema": "^7.0.6",
|
|
38
|
+
"react-dom": "^16.14.0",
|
|
39
|
+
"typescript": "^5.9.3"
|
|
40
|
+
},
|
|
41
|
+
"peerDependencies": {
|
|
42
|
+
"react": ">=16.0.0"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { ICodenotchEnv } from "..";
|
|
3
|
+
|
|
4
|
+
interface ICodeEditorProps {
|
|
5
|
+
/** Codenotch environment; only used to follow the current theme (`vs`/`vs-dark`). */
|
|
6
|
+
env?: ICodenotchEnv;
|
|
7
|
+
style?: React.CSSProperties;
|
|
8
|
+
className?: string;
|
|
9
|
+
/** Text content of the editor. */
|
|
10
|
+
value?: string;
|
|
11
|
+
/** Monaco language id (e.g. `'typescript'`, `'json'`, `'xml'`). Defaults to `'plaintext'`. */
|
|
12
|
+
language?: string;
|
|
13
|
+
readOnly?: boolean;
|
|
14
|
+
/** Called (debounced, 300 ms) when the user edits the content. */
|
|
15
|
+
onChange?: (value: string) => void;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Light Monaco code editor embedded in a sandboxed iframe
|
|
20
|
+
* (Monaco is loaded from the jsdelivr CDN — requires network access).
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* <CodeEditor env={cn.env} language="json" value={text} onChange={setText} />
|
|
24
|
+
*/
|
|
25
|
+
export default class CodeEditor extends React.Component<ICodeEditorProps> {
|
|
26
|
+
private isIframeReady = false;
|
|
27
|
+
private onChangeTimeoutHandle: any = null;
|
|
28
|
+
private onMessageHandler: any;
|
|
29
|
+
refFrame = React.createRef<HTMLIFrameElement>();
|
|
30
|
+
|
|
31
|
+
constructor(props: ICodeEditorProps) {
|
|
32
|
+
super(props);
|
|
33
|
+
this.onMessageHandler = this.handleMessage.bind(this);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
setValue(value: string) {
|
|
37
|
+
if (this.isIframeReady) {
|
|
38
|
+
this.postToIframe({
|
|
39
|
+
type: 'update',
|
|
40
|
+
value: value,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
componentDidMount(): void {
|
|
46
|
+
window.addEventListener('message', this.onMessageHandler);
|
|
47
|
+
this.writeIframe();
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
componentWillUnmount(): void {
|
|
51
|
+
window.removeEventListener('message', this.onMessageHandler);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
componentDidUpdate(prevProps: ICodeEditorProps): void {
|
|
55
|
+
const changed = (
|
|
56
|
+
prevProps.value !== this.props.value ||
|
|
57
|
+
prevProps.language !== this.props.language ||
|
|
58
|
+
prevProps.readOnly !== this.props.readOnly
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
if (changed && this.isIframeReady) {
|
|
62
|
+
let isDark = this.props.env?.theme === 'dark';
|
|
63
|
+
this.postToIframe({
|
|
64
|
+
type: 'update',
|
|
65
|
+
value: this.props.value ?? '',
|
|
66
|
+
language: this.props.language || 'plaintext',
|
|
67
|
+
readOnly: !!this.props.readOnly,
|
|
68
|
+
theme: isDark ? 'vs-dark' : 'vs'
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
private handleMessage(event: MessageEvent) {
|
|
75
|
+
const data = event.data as any;
|
|
76
|
+
if (!data || typeof data !== 'object') return;
|
|
77
|
+
if (data.__from !== 'MonacoIframe') return;
|
|
78
|
+
|
|
79
|
+
switch (data.type) {
|
|
80
|
+
case 'ready': {
|
|
81
|
+
this.isIframeReady = true;
|
|
82
|
+
// send initial payload
|
|
83
|
+
this.postToIframe({
|
|
84
|
+
type: 'init',
|
|
85
|
+
value: this.props.value ?? '',
|
|
86
|
+
language: this.props.language || 'plaintext',
|
|
87
|
+
readOnly: !!this.props.readOnly,
|
|
88
|
+
theme: this.props.env?.theme === 'dark' ? 'vs-dark' : 'vs'
|
|
89
|
+
});
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
case 'change': {
|
|
93
|
+
const next = String(data.value ?? '');
|
|
94
|
+
if (this.onChangeTimeoutHandle) {
|
|
95
|
+
clearTimeout(this.onChangeTimeoutHandle);
|
|
96
|
+
}
|
|
97
|
+
this.onChangeTimeoutHandle = setTimeout(() => {
|
|
98
|
+
this.props.onChange?.(next);
|
|
99
|
+
}, 300);
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
private postToIframe(message: any) {
|
|
107
|
+
const w = this.refFrame.current?.contentWindow;
|
|
108
|
+
if (!w) return;
|
|
109
|
+
w.postMessage({ __from: 'MonacoIframe', ...message }, '*');
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
private writeIframe() {
|
|
113
|
+
const iframe = this.refFrame.current;
|
|
114
|
+
if (!iframe) return;
|
|
115
|
+
|
|
116
|
+
const vsBase = 'https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs';
|
|
117
|
+
const html = `<!DOCTYPE html>
|
|
118
|
+
<html>
|
|
119
|
+
<head>
|
|
120
|
+
<meta charset="utf-8" />
|
|
121
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
122
|
+
<style>
|
|
123
|
+
html, body, #container { height: 100%; width: 100%; margin: 0; padding: 0; overflow: hidden; }
|
|
124
|
+
</style>
|
|
125
|
+
<script>
|
|
126
|
+
(function(){
|
|
127
|
+
var vsBase = ${JSON.stringify(vsBase)};
|
|
128
|
+
// AMD loader
|
|
129
|
+
var s = document.createElement('script');
|
|
130
|
+
s.src = vsBase + '/loader.js';
|
|
131
|
+
s.onload = function(){
|
|
132
|
+
// Configure and load monaco
|
|
133
|
+
window.require.config({ paths: { vs: vsBase } });
|
|
134
|
+
window.require(['vs/editor/editor.main'], function(){
|
|
135
|
+
var editor;
|
|
136
|
+
|
|
137
|
+
function post(msg){ parent.postMessage(Object.assign({__from:'MonacoIframe'}, msg), '*'); }
|
|
138
|
+
|
|
139
|
+
function ensureEditor(){
|
|
140
|
+
if (editor) return editor;
|
|
141
|
+
editor = monaco.editor.create(document.getElementById('container'), {
|
|
142
|
+
value: '',
|
|
143
|
+
language: 'plaintext',
|
|
144
|
+
theme: 'vs',
|
|
145
|
+
automaticLayout: true,
|
|
146
|
+
minimap: { enabled: false },
|
|
147
|
+
scrollBeyondLastLine: true,
|
|
148
|
+
wordWrap: "on"
|
|
149
|
+
});
|
|
150
|
+
editor.onDidChangeModelContent(function(){
|
|
151
|
+
var v = editor.getValue();
|
|
152
|
+
post({ type: 'change', value: v });
|
|
153
|
+
});
|
|
154
|
+
return editor;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
window.addEventListener('message', function(ev){
|
|
158
|
+
var data = ev.data || {}; if (data.__from !== 'MonacoIframe') return;
|
|
159
|
+
if (data.type === 'init' || data.type === 'update'){
|
|
160
|
+
var ed = ensureEditor();
|
|
161
|
+
if (typeof data.value === 'string' && ed.getValue() !== data.value){ ed.setValue(data.value); }
|
|
162
|
+
if (typeof data.language === 'string') { monaco.editor.setModelLanguage(ed.getModel(), data.language); }
|
|
163
|
+
if (typeof data.theme === 'string') { monaco.editor.setTheme(data.theme); }
|
|
164
|
+
if (typeof data.readOnly === 'boolean') { ed.updateOptions({ readOnly: data.readOnly }); }
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
// Signal ready after monaco is loaded
|
|
169
|
+
post({ type: 'ready' });
|
|
170
|
+
});
|
|
171
|
+
};
|
|
172
|
+
document.head.appendChild(s);
|
|
173
|
+
})();
|
|
174
|
+
</script>
|
|
175
|
+
</head>
|
|
176
|
+
<body>
|
|
177
|
+
<div id="container"></div>
|
|
178
|
+
</body>
|
|
179
|
+
</html>`;
|
|
180
|
+
|
|
181
|
+
const doc = iframe.contentWindow?.document;
|
|
182
|
+
if (!doc) return;
|
|
183
|
+
doc.open();
|
|
184
|
+
doc.write(html);
|
|
185
|
+
doc.close();
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
render() {
|
|
189
|
+
let style = this.props.style || {};
|
|
190
|
+
style.width = style.width || '100%';
|
|
191
|
+
style.height = style.height || '100%';
|
|
192
|
+
style.border = style.border || '0';
|
|
193
|
+
style.outline = style.outline || '0';
|
|
194
|
+
|
|
195
|
+
return <iframe
|
|
196
|
+
style={style}
|
|
197
|
+
title="Codenotch"
|
|
198
|
+
ref={this.refFrame}
|
|
199
|
+
className={this.props.className}
|
|
200
|
+
sandbox="allow-scripts allow-same-origin"
|
|
201
|
+
/>
|
|
202
|
+
}
|
|
203
|
+
}
|