-
Notifications
You must be signed in to change notification settings - Fork 27
Expand file tree
/
Copy pathgenerate-all-anchors.cjs
More file actions
63 lines (56 loc) · 2.77 KB
/
generate-all-anchors.cjs
File metadata and controls
63 lines (56 loc) · 2.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
const fs = require('fs');
const appTiles = {
"inspectTable-ui": [
"TableInspectTable", "iconTabFilterBasicInfoInspectTable", "iconTabFilterFieldsInspectTable",
"iconTabFilterConstraintsInspectTable", "iconTabFilterSQLInspectTable", "iconTabFilterCDSInspectTable",
"iconTabFilterHDBTableInspectTable", "Schema", "schemaInnerInput", "settingsButtonInspectTable",
"chkAdmin", "inputConnFile", "connRefresh", "disableVerbose", "debug", "inputSchemaInspectTable",
"inputTableInspectTable", "inputTableTypeInspectTable", "inputTableOIDInspectTable",
"inputHasPrimaryKeyInspectTable", "inputIsPreloadInspectTable", "inputUnloadPriorityInspectTable",
"inputCreatedInspectTable", "fieldsTableInspectTable", "constraintsTableInspectTable",
"aCodeEditorSQLInspectTable", "aCodeEditorCDSInspectTable", "aCodeEditorHDBTableInspectTable"
],
"inspectView-ui": [
"ViewInspectView", "iconTabFilterBasicInfoInspectView", "iconTabFilterFieldsInspectView",
"iconTabFilterSQLInspectView", "iconTabFilterCDSInspectView", "iconTabFilterHDBTableInspectView",
"Schema", "schemaInnerInput", "settingsButtonInspectView", "chkAdmin", "inputConnFile",
"connRefresh", "disableVerbose", "debug", "inputSchemaInspectView", "inputViewInspectView",
"inputViewTypeInspectView", "inputViewOIDInspectView", "inputHasParametersInspectView",
"inputHasCheckInspectView", "inputHasCacheInspectView", "inputCreatedInspectView",
"fieldsTableInspectView", "aCodeEditorSQLInspectView", "aCodeEditorCDSInspectView",
"aCodeEditorHDBTableInspectView"
],
"querySimple-ui": [
"FolderQuerySimple", "FilenameQuerySimple", "outputFormatQuerySimple", "aCodeEditorSQL",
"settingsButtonQuerySimple", "chkAdmin", "inputConnFile", "connRefresh", "disableVerbose", "debug"
],
"systeminfo-ui": [
"currentUser", "currentSchema", "systemId", "databaseName", "host", "startTime", "version",
"overviewTable"
]
};
function generateHotspotAnchor(appUrl, tileId) {
const json = {
value: `DIV[id$='application-${appUrl}-component---App--${tileId}']`,
rule: "IdSelectorUI5",
offset: { x: 0.5, y: 0.2812 }
};
const jsonString = JSON.stringify(json);
const urlEncoded = encodeURIComponent(jsonString);
const base64Encoded = Buffer.from(urlEncoded).toString('base64');
const anchor = `WA#2#${base64Encoded}`;
return anchor;
}
const results = [];
for (const [appUrl, tileIds] of Object.entries(appTiles)) {
for (const tileId of tileIds) {
results.push({
appUrl,
tileId,
anchor: generateHotspotAnchor(appUrl, tileId)
});
}
}
console.log(JSON.stringify(results, null, 2));
fs.writeFileSync('hotspot-anchors-all.json', JSON.stringify(results, null, 2));
console.log(`\nGenerated ${results.length} hotspot anchors and saved to hotspot-anchors-all.json`);