nuxeo-development-framework 4.1.1 → 4.1.2
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/bundles/nuxeo-development-framework.umd.js +724 -343
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/components/diagrams/components/circle-node/circle-node.component.js +6 -7
- package/esm2015/lib/components/diagrams/components/connection-label.component.js +92 -0
- package/esm2015/lib/components/diagrams/components/content-node/content-node.component.js +7 -8
- package/esm2015/lib/components/diagrams/components/custom-connection.component.js +68 -32
- package/esm2015/lib/components/diagrams/components/custom-socket.component.js +22 -19
- package/esm2015/lib/components/diagrams/components/gateway-node/gateway-node.component.js +18 -0
- package/esm2015/lib/components/diagrams/components/gateway-ports.component.js +118 -0
- package/esm2015/lib/components/diagrams/components/index.js +5 -1
- package/esm2015/lib/components/diagrams/components/node-inputs.component.js +34 -35
- package/esm2015/lib/components/diagrams/components/node-outputs.component.js +30 -31
- package/esm2015/lib/components/diagrams/components/node-ports.component.js +98 -0
- package/esm2015/lib/components/diagrams/components/remove-button.component.js +46 -43
- package/esm2015/lib/components/diagrams/components/template-node/template-node.component.js +6 -7
- package/esm2015/lib/components/diagrams/constants/node-type.js +2 -1
- package/esm2015/lib/components/diagrams/constants/sizes.js +2 -1
- package/esm2015/lib/components/diagrams/constants/status.js +4 -1
- package/esm2015/lib/components/diagrams/diagrams.module.js +14 -6
- package/esm2015/lib/components/diagrams/directive/diagram.directive.js +9 -6
- package/esm2015/lib/components/diagrams/editor/customize.js +16 -12
- package/esm2015/lib/components/diagrams/editor/editor.js +21 -19
- package/esm2015/lib/components/diagrams/editor/overrides/connection-path.transformers.js +32 -7
- package/esm2015/lib/components/diagrams/editor/path-plugin.js +10 -9
- package/esm2015/lib/components/diagrams/models/base-node.model.js +3 -2
- package/esm2015/lib/components/diagrams/models/connection.model.js +11 -4
- package/esm2015/lib/components/diagrams/models/gate-way.model.js +11 -0
- package/esm2015/lib/components/diagrams/models/index.js +2 -1
- package/esm2015/lib/components/diagrams/models/ports.model.js +14 -0
- package/esm2015/lib/components/diagrams/models/socket.model.js +5 -4
- package/esm2015/lib/components/diagrams/services/diagram.service.js +77 -29
- package/esm2015/lib/components/diagrams/services/workflow.service.js +14 -19
- package/esm2015/lib/components/diagrams/types/common.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/connection-config.type.js +2 -0
- package/esm2015/lib/components/diagrams/types/connection-label.type.js +2 -0
- package/esm2015/lib/components/diagrams/types/diagram-config.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/diagram-editor.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/index.js +6 -2
- package/esm2015/lib/components/diagrams/types/node-definition.js +1 -1
- package/esm2015/lib/components/diagrams/types/path.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/ports-config.type.js +2 -0
- package/esm2015/lib/components/diagrams/types/socket.type.js +2 -0
- package/esm2015/lib/components/diagrams/utilities/common.js +35 -0
- package/esm2015/lib/components/diagrams/utilities/index.js +3 -1
- package/esm2015/lib/components/diagrams/utilities/random.js +11 -0
- package/esm2015/lib/components/diagrams/utilities/remove.util.js +2 -2
- package/fesm2015/nuxeo-development-framework.js +921 -408
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/diagrams/components/base-node.component.d.ts +1 -0
- package/lib/components/diagrams/components/connection-label.component.d.ts +19 -0
- package/lib/components/diagrams/components/custom-connection.component.d.ts +5 -0
- package/lib/components/diagrams/components/gateway-node/gateway-node.component.d.ts +6 -0
- package/lib/components/diagrams/components/gateway-ports.component.d.ts +12 -0
- package/lib/components/diagrams/components/index.d.ts +4 -0
- package/lib/components/diagrams/components/node-ports.component.d.ts +13 -0
- package/lib/components/diagrams/constants/node-type.d.ts +1 -0
- package/lib/components/diagrams/constants/sizes.d.ts +1 -0
- package/lib/components/diagrams/constants/status.d.ts +3 -0
- package/lib/components/diagrams/diagrams.module.d.ts +12 -8
- package/lib/components/diagrams/editor/overrides/connection-path.transformers.d.ts +2 -7
- package/lib/components/diagrams/models/base-node.model.d.ts +3 -2
- package/lib/components/diagrams/models/connection.model.d.ts +9 -1
- package/lib/components/diagrams/models/gate-way.model.d.ts +8 -0
- package/lib/components/diagrams/models/index.d.ts +1 -0
- package/lib/components/diagrams/models/ports.model.d.ts +11 -0
- package/lib/components/diagrams/models/socket.model.d.ts +3 -1
- package/lib/components/diagrams/services/diagram.service.d.ts +20 -9
- package/lib/components/diagrams/services/workflow.service.d.ts +0 -1
- package/lib/components/diagrams/types/common.type.d.ts +5 -0
- package/lib/components/diagrams/types/connection-config.type.d.ts +11 -0
- package/lib/components/diagrams/types/connection-label.type.d.ts +4 -0
- package/lib/components/diagrams/types/diagram-config.type.d.ts +6 -0
- package/lib/components/diagrams/types/diagram-editor.type.d.ts +3 -2
- package/lib/components/diagrams/types/index.d.ts +5 -1
- package/lib/components/diagrams/types/node-definition.d.ts +1 -0
- package/lib/components/diagrams/types/path.type.d.ts +1 -0
- package/lib/components/diagrams/types/ports-config.type.d.ts +11 -0
- package/lib/components/diagrams/types/socket.type.d.ts +5 -0
- package/lib/components/diagrams/utilities/common.d.ts +19 -0
- package/lib/components/diagrams/utilities/index.d.ts +2 -0
- package/lib/components/diagrams/utilities/random.d.ts +1 -0
- package/lib/components/diagrams/utilities/remove.util.d.ts +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export class DiagramUtils {
|
|
2
|
+
static createInputId(id, type = 'primary') {
|
|
3
|
+
return `${id}-${type}-input`;
|
|
4
|
+
}
|
|
5
|
+
static createOutputId(id, type = 'primary') {
|
|
6
|
+
return `${id}-${type}-output`;
|
|
7
|
+
}
|
|
8
|
+
static createInputClass(type = 'primary') {
|
|
9
|
+
return `input-${type}-port`;
|
|
10
|
+
}
|
|
11
|
+
static createOutputClass(type = 'primary') {
|
|
12
|
+
return `output-${type}-port`;
|
|
13
|
+
}
|
|
14
|
+
static createOutputsConfig(id, types) {
|
|
15
|
+
return types.map((type) => {
|
|
16
|
+
return {
|
|
17
|
+
id: DiagramUtils.createOutputId(id, type),
|
|
18
|
+
config: {
|
|
19
|
+
styleClass: DiagramUtils.createOutputClass(type)
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
static createInputsConfig(id, types) {
|
|
25
|
+
return types.map((type) => {
|
|
26
|
+
return {
|
|
27
|
+
id: DiagramUtils.createInputId(id, type),
|
|
28
|
+
config: {
|
|
29
|
+
styleClass: DiagramUtils.createInputClass(type)
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9kaWFncmFtcy91dGlsaXRpZXMvY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxZQUFZO0lBRXhCLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBVSxFQUFFLE9BQWlCLFNBQVM7UUFDMUQsT0FBTyxHQUFHLEVBQUUsSUFBSSxJQUFJLFFBQVEsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxFQUFVLEVBQUUsT0FBaUIsU0FBUztRQUMzRCxPQUFPLEdBQUcsRUFBRSxJQUFJLElBQUksU0FBUyxDQUFDO0lBQy9CLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBaUIsU0FBUztRQUNqRCxPQUFPLFNBQVMsSUFBSSxPQUFPLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFpQixTQUFTO1FBQ2xELE9BQU8sVUFBVSxJQUFJLE9BQU8sQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEVBQVUsRUFBRSxLQUFpQjtRQUN2RCxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN6QixPQUFPO2dCQUNOLEVBQUUsRUFBRSxZQUFZLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUM7Z0JBQ3pDLE1BQU0sRUFBRTtvQkFDUCxVQUFVLEVBQUUsWUFBWSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztpQkFDaEQ7YUFDRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEVBQVUsRUFBRSxLQUFpQjtRQUN0RCxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN6QixPQUFPO2dCQUNOLEVBQUUsRUFBRSxZQUFZLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUM7Z0JBQ3hDLE1BQU0sRUFBRTtvQkFDUCxVQUFVLEVBQUUsWUFBWSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztpQkFDL0M7YUFDRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb3J0VHlwZSB9IGZyb20gJy4uL3R5cGVzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBEaWFncmFtVXRpbHMge1xyXG5cclxuXHRzdGF0aWMgY3JlYXRlSW5wdXRJZChpZDogc3RyaW5nLCB0eXBlOiBQb3J0VHlwZSA9ICdwcmltYXJ5Jykge1xyXG5cdFx0cmV0dXJuIGAke2lkfS0ke3R5cGV9LWlucHV0YDtcclxuXHR9XHJcblxyXG5cdHN0YXRpYyBjcmVhdGVPdXRwdXRJZChpZDogc3RyaW5nLCB0eXBlOiBQb3J0VHlwZSA9ICdwcmltYXJ5Jykge1xyXG5cdFx0cmV0dXJuIGAke2lkfS0ke3R5cGV9LW91dHB1dGA7XHJcblx0fVxyXG5cclxuXHRzdGF0aWMgY3JlYXRlSW5wdXRDbGFzcyh0eXBlOiBQb3J0VHlwZSA9ICdwcmltYXJ5Jykge1xyXG5cdFx0cmV0dXJuIGBpbnB1dC0ke3R5cGV9LXBvcnRgO1xyXG5cdH1cclxuXHJcblx0c3RhdGljIGNyZWF0ZU91dHB1dENsYXNzKHR5cGU6IFBvcnRUeXBlID0gJ3ByaW1hcnknKSB7XHJcblx0XHRyZXR1cm4gYG91dHB1dC0ke3R5cGV9LXBvcnRgO1xyXG5cdH1cclxuXHJcblx0c3RhdGljIGNyZWF0ZU91dHB1dHNDb25maWcoaWQ6IHN0cmluZywgdHlwZXM6IFBvcnRUeXBlW10pIHtcclxuXHRcdHJldHVybiB0eXBlcy5tYXAoKHR5cGUpID0+IHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRpZDogRGlhZ3JhbVV0aWxzLmNyZWF0ZU91dHB1dElkKGlkLCB0eXBlKSxcclxuXHRcdFx0XHRjb25maWc6IHtcclxuXHRcdFx0XHRcdHN0eWxlQ2xhc3M6IERpYWdyYW1VdGlscy5jcmVhdGVPdXRwdXRDbGFzcyh0eXBlKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0c3RhdGljIGNyZWF0ZUlucHV0c0NvbmZpZyhpZDogc3RyaW5nLCB0eXBlczogUG9ydFR5cGVbXSkge1xyXG5cdFx0cmV0dXJuIHR5cGVzLm1hcCgodHlwZSkgPT4ge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGlkOiBEaWFncmFtVXRpbHMuY3JlYXRlSW5wdXRJZChpZCwgdHlwZSksXHJcblx0XHRcdFx0Y29uZmlnOiB7XHJcblx0XHRcdFx0XHRzdHlsZUNsYXNzOiBEaWFncmFtVXRpbHMuY3JlYXRlSW5wdXRDbGFzcyh0eXBlKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fTtcclxuXHRcdH0pO1xyXG5cdH1cclxufVxyXG4iXX0=
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export * from './common';
|
|
2
|
+
export * from './random';
|
|
1
3
|
export * from './remove.util';
|
|
2
4
|
export * from './serialize';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RpYWdyYW1zL3V0aWxpdGllcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tbW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9yYW5kb20nO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlbW92ZS51dGlsJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJpYWxpemUnO1xyXG4iXX0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function getRandomNumber(x, y, step = 1, min = 0, max = 1000) {
|
|
2
|
+
// Create a deterministic seed based on x and y
|
|
3
|
+
const seed = Math.abs(x * 31 + y * 17) % 100000;
|
|
4
|
+
// Generate a pseudo-random number based on the seed
|
|
5
|
+
const seededRandom = ((seed * 9301 + 49297) % 233280) / 233280;
|
|
6
|
+
// Calculate range
|
|
7
|
+
const range = Math.floor((max - min) / step) + 1;
|
|
8
|
+
// Return the adjusted number
|
|
9
|
+
return min + Math.floor(seededRandom * range) * step;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9kaWFncmFtcy91dGlsaXRpZXMvcmFuZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxlQUFlLENBQzlCLENBQVMsRUFDVCxDQUFTLEVBQ1QsSUFBSSxHQUFHLENBQUMsRUFDUixHQUFHLEdBQUcsQ0FBQyxFQUNQLEdBQUcsR0FBRyxJQUFJO0lBRVYsK0NBQStDO0lBQy9DLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBRWhELG9EQUFvRDtJQUNwRCxNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUM7SUFFL0Qsa0JBQWtCO0lBQ2xCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRWpELDZCQUE2QjtJQUM3QixPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDdEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRSYW5kb21OdW1iZXIoXHJcblx0eDogbnVtYmVyLFxyXG5cdHk6IG51bWJlcixcclxuXHRzdGVwID0gMSxcclxuXHRtaW4gPSAwLFxyXG5cdG1heCA9IDEwMDBcclxuKSB7XHJcblx0Ly8gQ3JlYXRlIGEgZGV0ZXJtaW5pc3RpYyBzZWVkIGJhc2VkIG9uIHggYW5kIHlcclxuXHRjb25zdCBzZWVkID0gTWF0aC5hYnMoeCAqIDMxICsgeSAqIDE3KSAlIDEwMDAwMDtcclxuXHJcblx0Ly8gR2VuZXJhdGUgYSBwc2V1ZG8tcmFuZG9tIG51bWJlciBiYXNlZCBvbiB0aGUgc2VlZFxyXG5cdGNvbnN0IHNlZWRlZFJhbmRvbSA9ICgoc2VlZCAqIDkzMDEgKyA0OTI5NykgJSAyMzMyODApIC8gMjMzMjgwO1xyXG5cclxuXHQvLyBDYWxjdWxhdGUgcmFuZ2VcclxuXHRjb25zdCByYW5nZSA9IE1hdGguZmxvb3IoKG1heCAtIG1pbikgLyBzdGVwKSArIDE7XHJcblxyXG5cdC8vIFJldHVybiB0aGUgYWRqdXN0ZWQgbnVtYmVyXHJcblx0cmV0dXJuIG1pbiArIE1hdGguZmxvb3Ioc2VlZGVkUmFuZG9tICogcmFuZ2UpICogc3RlcDtcclxufVxyXG4iXX0=
|
|
@@ -89,7 +89,7 @@ const _updateConnections = (outputs, inputs, editor) => __awaiter(void 0, void 0
|
|
|
89
89
|
if (!sourceNode || !targetNode) {
|
|
90
90
|
return;
|
|
91
91
|
}
|
|
92
|
-
const connection = new Connection(sourceNode,
|
|
92
|
+
const connection = new Connection(sourceNode, targetNode);
|
|
93
93
|
yield editor.addConnection(connection);
|
|
94
94
|
});
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RpYWdyYW1zL3V0aWxpdGllcy9yZW1vdmUudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQWlCLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUd0RDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQ3hCLElBQXdCLEVBQ3hCLE1BQTJCLEVBQzNCLEVBQUU7SUFDRixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMvQixPQUFPO0tBQ1I7SUFDRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFekMsSUFBSSxDQUFDLElBQUksRUFBRTtRQUNULE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMvQixPQUFPO0tBQ1I7SUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNyRCxPQUFPO0tBQ1I7SUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBRS9CLE9BQU8sQ0FBQSxVQUFVLGFBQVYsVUFBVSx1QkFBVixVQUFVLENBQUUsUUFBUTtRQUN6QixDQUFDLENBQUMsTUFBTSwrQkFBK0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO1FB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QixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsRUFBRTtRQUM5QixPQUFPO0tBQ1I7SUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FDL0IsVUFBVSxFQUNWLFVBQVUsQ0FDWCxDQUFDO0lBRUYsTUFBTSxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3pDLENBQUMsQ0FBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9kZUVkaXRvciB9IGZyb20gJ3JldGUnO1xyXG5pbXBvcnQgeyBOT0RFX1RZUEUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBCYXNlTm9kZUNsYXNzLCBDb25uZWN0aW9uIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgU2NoZW1lcyB9IGZyb20gJy4uL3R5cGVzJztcclxuXHJcbi8qKlxyXG4gKlxyXG4gKiBAcGFyYW0gbm9kZVxyXG4gKiBAcmV0dXJuc1xyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHJlbW92ZU5vZGUgPSBhc3luYyAoXHJcbiAgZGF0YTogeyBub2RlSWQ6IHN0cmluZyB9LFxyXG4gIGVkaXRvcjogTm9kZUVkaXRvcjxTY2hlbWVzPlxyXG4pID0+IHtcclxuICBpZiAoIWRhdGEgfHwgIWVkaXRvcikge1xyXG4gICAgY29uc29sZS5sb2coJ05vZGUgbm90IGZvdW5kLicpO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICBjb25zdCBub2RlcyA9IGVkaXRvci5nZXROb2RlcygpO1xyXG4gIGNvbnN0IG5vZGUgPSBlZGl0b3IuZ2V0Tm9kZShkYXRhLm5vZGVJZCk7XHJcblxyXG4gIGlmICghbm9kZSkge1xyXG4gICAgY29uc29sZS5sb2coJ05vZGUgbm90IGZvdW5kLicpO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgaWYgKG5vZGUudHlwZSA9PT0gTk9ERV9UWVBFLnN0YXJ0ICYmIG5vZGVzLmxlbmd0aCA+IDEpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGNvbnN0IG5vZGVDb25maWcgPSBub2RlLmNvbmZpZztcclxuXHJcbiAgcmV0dXJuIG5vZGVDb25maWc/LmlzTGlua2VkXHJcbiAgICA/IGF3YWl0IHJlbW92ZU5vZGVBbmRSZXBsYWNlQ29ubmVjdGlvbnMobm9kZSwgZWRpdG9yKVxyXG4gICAgOiBhd2FpdCByZW1vdmVOb2RlQW5kQ29ubmVjdGlvbnMobm9kZSwgZWRpdG9yKTtcclxufTtcclxuXHJcbi8qKlxyXG4gKlxyXG4gKiBAcGFyYW0gbm9kZVxyXG4gKiBAcGFyYW0gZWRpdG9yXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgcmVtb3ZlTm9kZUFuZENvbm5lY3Rpb25zID0gYXN5bmMgKFxyXG4gIG5vZGU6IEJhc2VOb2RlQ2xhc3MsXHJcbiAgZWRpdG9yOiBOb2RlRWRpdG9yPFNjaGVtZXM+XHJcbikgPT4ge1xyXG4gIHJlbW92ZUNvbm5lY3Rpb25zKG5vZGUsIGVkaXRvcik7XHJcbiAgYXdhaXQgZWRpdG9yLnJlbW92ZU5vZGUobm9kZS5pZCk7XHJcbn07XHJcblxyXG4vKipcclxuICpcclxuICogQHBhcmFtIG5vZGVcclxuICogQHBhcmFtIGVkaXRvclxyXG4gKi9cclxuY29uc3QgcmVtb3ZlTm9kZUFuZFJlcGxhY2VDb25uZWN0aW9ucyA9IGFzeW5jIChcclxuICBub2RlOiBCYXNlTm9kZUNsYXNzLFxyXG4gIGVkaXRvcjogTm9kZUVkaXRvcjxTY2hlbWVzPlxyXG4pID0+IHtcclxuICBjb25zdCBvdXRwdXRzID0gZ2V0Q29ubmVjdGlvbnMoXHJcbiAgICBlZGl0b3IsXHJcbiAgICAoY29ubmVjdGlvbikgPT4gY29ubmVjdGlvbi5zb3VyY2UgPT0gbm9kZS5pZFxyXG4gICk7XHJcbiAgY29uc3QgaW5wdXRzID0gZ2V0Q29ubmVjdGlvbnMoXHJcbiAgICBlZGl0b3IsXHJcbiAgICAoY29ubmVjdGlvbikgPT4gY29ubmVjdGlvbi50YXJnZXQgPT0gbm9kZS5pZFxyXG4gICk7XHJcblxyXG4gIGlmICghIWlucHV0cy5sZW5ndGggJiYgISFvdXRwdXRzLmxlbmd0aCkge1xyXG4gICAgYXdhaXQgX3VwZGF0ZUNvbm5lY3Rpb25zKG91dHB1dHMsIGlucHV0cywgZWRpdG9yKTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmVtb3ZlQ29ubmVjdGlvbnMobm9kZSwgZWRpdG9yKTtcclxuICB9XHJcblxyXG4gIGF3YWl0IGVkaXRvci5yZW1vdmVOb2RlKG5vZGUuaWQpO1xyXG59O1xyXG4vKipcclxuICpcclxuICogQHBhcmFtIG5vZGVcclxuICogQHBhcmFtIGVkaXRvclxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHJlbW92ZUNvbm5lY3Rpb25zID0gKFxyXG4gIG5vZGU6IEJhc2VOb2RlQ2xhc3MsXHJcbiAgZWRpdG9yOiBOb2RlRWRpdG9yPFNjaGVtZXM+XHJcbikgPT4ge1xyXG4gIGNvbnN0IGNvbm5lY3Rpb25zID0gZ2V0Q29ubmVjdGlvbnMoXHJcbiAgICBlZGl0b3IsXHJcbiAgICAoY29ubmVjdGlvbikgPT5cclxuICAgICAgY29ubmVjdGlvbi5zb3VyY2UgPT09IG5vZGUuaWQgfHwgY29ubmVjdGlvbi50YXJnZXQgPT09IG5vZGUuaWRcclxuICApO1xyXG5cclxuICBpZiAoY29ubmVjdGlvbnMubGVuZ3RoKSB7XHJcbiAgICBjb25uZWN0aW9ucy5mb3JFYWNoKChjb25uZWN0aW9uKSA9PiB7XHJcbiAgICAgIGVkaXRvci5yZW1vdmVDb25uZWN0aW9uKGNvbm5lY3Rpb24uaWQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59O1xyXG4vKipcclxuICpcclxuICogQHBhcmFtIGVkaXRvclxyXG4gKiBAcGFyYW0gcHJlZGljYXRlXHJcbiAqIEByZXR1cm5zXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0Q29ubmVjdGlvbnMgPSAoXHJcbiAgZWRpdG9yOiBOb2RlRWRpdG9yPFNjaGVtZXM+LFxyXG4gIHByZWRpY2F0ZTogKGNvbm5lY3Rpb246IENvbm5lY3Rpb24pID0+IGJvb2xlYW5cclxuKSA9PiB7XHJcbiAgcmV0dXJuIGVkaXRvci5nZXRDb25uZWN0aW9ucygpLmZpbHRlcihwcmVkaWNhdGUpO1xyXG59O1xyXG4vKipcclxuICpcclxuICogQHBhcmFtIG91dHB1dHNcclxuICogQHBhcmFtIGlucHV0c1xyXG4gKiBAcGFyYW0gZWRpdG9yXHJcbiAqL1xyXG5jb25zdCBfdXBkYXRlQ29ubmVjdGlvbnMgPSBhc3luYyAoXHJcbiAgb3V0cHV0czogQ29ubmVjdGlvbltdLFxyXG4gIGlucHV0czogQ29ubmVjdGlvbltdLFxyXG4gIGVkaXRvcjogTm9kZUVkaXRvcjxTY2hlbWVzPlxyXG4pID0+IHtcclxuICBjb25zdCBzb3VyY2UgPSBpbnB1dHNbMF0uc291cmNlO1xyXG4gIGNvbnN0IHRhcmdldCA9IG91dHB1dHNbMF0udGFyZ2V0O1xyXG5cclxuICBjb25zdCBzb3VyY2VOb2RlID0gZWRpdG9yLmdldE5vZGUoc291cmNlKSBhcyBCYXNlTm9kZUNsYXNzO1xyXG4gIGNvbnN0IHRhcmdldE5vZGUgPSBlZGl0b3IuZ2V0Tm9kZSh0YXJnZXQpIGFzIEJhc2VOb2RlQ2xhc3M7XHJcblxyXG4gIFsuLi5vdXRwdXRzLCAuLi5pbnB1dHNdLmZvckVhY2goYXN5bmMgKGNvbm5lY3Rpb24pID0+IHtcclxuICAgIGF3YWl0IGVkaXRvci5yZW1vdmVDb25uZWN0aW9uKGNvbm5lY3Rpb24uaWQpO1xyXG4gIH0pO1xyXG5cclxuICBpZiAoIXNvdXJjZU5vZGUgfHwgIXRhcmdldE5vZGUpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBDb25uZWN0aW9uKFxyXG4gICAgc291cmNlTm9kZSxcclxuICAgIHRhcmdldE5vZGUsXHJcbiAgKTtcclxuXHJcbiAgYXdhaXQgZWRpdG9yLmFkZENvbm5lY3Rpb24oY29ubmVjdGlvbik7XHJcbn07XHJcbiJdfQ==
|