@magic-xpa/engine 4.1000.0-dev000.0 → 4.1000.0-dev4100.100
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/esm2020/src/ConstInterface.mjs +2 -1
- package/esm2020/src/CurrentClientVersion.mjs +2 -2
- package/esm2020/src/env/MirrorString.mjs +2 -3
- package/esm2020/src/exp/ExpressionDict.mjs +8 -8
- package/esm2020/src/exp/ExpressionEvaluator.mjs +2 -176
- package/esm2020/src/gui/MgForm.mjs +3 -6
- package/esm2020/src/remote/RemoteCommandsProcessor.mjs +14 -5
- package/esm2020/src/util/PrmMap.mjs +2 -2
- package/fesm2015/magic-xpa-engine.mjs +75 -268
- package/fesm2015/magic-xpa-engine.mjs.map +1 -1
- package/fesm2020/magic-xpa-engine.mjs +75 -241
- package/fesm2020/magic-xpa-engine.mjs.map +1 -1
- package/package.json +4 -4
- package/src/ConstInterface.d.ts +1 -0
- package/src/exp/ExpressionEvaluator.d.ts +0 -9
- package/src/util/PrmMap.d.ts +1 -1
|
@@ -99,7 +99,7 @@ export class MirrorPrmMap extends PrmMap {
|
|
|
99
99
|
while (this.mirrorFromXML(parser.getNextTag(), parser)) {
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
|
-
|
|
102
|
+
RestoreParams(xml) {
|
|
103
103
|
let parser = new XmlParser(xml);
|
|
104
104
|
while (this.mirrorFromXML(parser.getNextTag(), parser)) {
|
|
105
105
|
}
|
|
@@ -148,4 +148,4 @@ export class MirrorPrmMap extends PrmMap {
|
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJtTWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy91dGlsL1BybU1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFLcEQsTUFBTSxPQUFPLE1BQU07SUE2QmpCO1FBNUJBLFdBQU0sR0FBdUIsSUFBSSxDQUFDO1FBNkI5QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksVUFBVSxFQUFVLENBQUM7SUFDM0MsQ0FBQztJQXZCUyxRQUFRLENBQUMsQ0FBUztRQUMxQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUM1QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDOztZQUUvQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBSUQsUUFBUSxDQUFDLENBQVMsRUFBRSxDQUFTO1FBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBSUQsTUFBTSxDQUFDLENBQVM7UUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixDQUFDO0NBT0Y7QUFLRCxNQUFNLE9BQU8sWUFBd0MsU0FBUSxNQUFjO0lBWXpFLFlBQVksSUFBc0I7UUFDaEMsS0FBSyxFQUFFLENBQUM7UUFWQSxZQUFPLEdBQWlCLElB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QUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWN0aW9uYXJ5LCBMaXN0LCBTdHJpbmdCdWlsZGVyIH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQgeyBMb2dnZXIsIFhNTENvbnN0YW50cywgWG1sUGFyc2VyIH0gZnJvbSAnQG1hZ2ljLXhwYS91dGlscyc7XHJcbmltcG9ydCB7IENvbnN0SW50ZXJmYWNlIH0gZnJvbSAnLi4vQ29uc3RJbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBJTWlycm9yWE1MIH0gZnJvbSAnLi9JTWlycm9yWE1MJztcclxuaW1wb3J0IHtQYXJhbVBhcnNlUmVzdWx0fSBmcm9tIFwiLi9QYXJhbVBhcnNlUmVzdWx0XCI7XHJcblxyXG5cclxuLy8vIDxzdW1tYXJ5PiBUaGlzIGNsYXNzIG1hbmFnZXMgYSBkaWN0aW9uYXJ5IG9mIHZhcmlhYmxlcy4gdGhlbiBuYW1lIG9mIHRoZSB2YXJpYWJsZSBpcyB0aGUga2V5XHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBQcm1NYXA8VFZhbHVlIGV4dGVuZHMgSU1pcnJvclhNTD57XHJcbiAgdmFsdWVzOiBEaWN0aW9uYXJ5PFRWYWx1ZT4gPSBudWxsO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+IGdldCB0aGUgdmFsdWVcclxuICAvLy9cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInNcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgcHJvdGVjdGVkIGdldHZhbHVlKHM6IHN0cmluZyk6IFRWYWx1ZSB7XHJcbiAgICBpZiAodGhpcy52YWx1ZXMuQ29udGFpbnNLZXkocykpXHJcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlcy5nZXRfSXRlbShzKTtcclxuICAgIGVsc2VcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IHNldFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgc2V0VmFsdWUoczogc3RyaW5nLCB2OiBUVmFsdWUpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWVzLnNldF9JdGVtKHMsIHYpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiByZW1vdmUgYW4gZW50cnlcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHJlbW92ZShzOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWVzLlJlbW92ZShzKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gQ1RPUlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgIHRoaXMudmFsdWVzID0gbmV3IERpY3Rpb25hcnk8VFZhbHVlPigpO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIDxzdW1tYXJ5PiBUaGlzIGNsYXNzIG1hbmFnZXMgdGhlIG1pcnJvcmluZy4gSXQgaG9sZHMgYSBsaXN0IG9mIGNoYW5nZWQgdmFsdWVzIHRoYXQgbmVlZCB0byBiZVxyXG4vLy8gbWlycm9yZWQsIGFuZCBtYW5hZ2VzIHRoZSB3cml0aW5nIG9mIHRob3NlIHZhbHVlcyB0byBhbiBYTUwgYnVmZmVyXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBNaXJyb3JQcm1NYXA8VFZhbHVlIGV4dGVuZHMgSU1pcnJvclhNTD4gZXh0ZW5kcyBQcm1NYXA8VFZhbHVlPiB7XHJcblxyXG4gIC8vIExpc3Qgb2YgY2hhbmdlZCB2YXJpYWJsZXNcclxuICBwcm90ZWN0ZWQgY2hhbmdlczogTGlzdDxzdHJpbmc+ID0gbnVsbDtcclxuXHJcbiAgLy8gVHlwZSBvZiB2YXJpYWJsZXMgaW4gdGhlIHRhYmxlIC0gdXNlIGFzIGFuIGlkIGluIHRoZSBYTUwgYnVmZmVyXHJcbiAgcHJvdGVjdGVkICBtaXJyb3JlZElEOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICBwcml2YXRlIHR5cGUgO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+IENUT1JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGNvbnN0cnVjdG9yKHR5cGU6IG5ldyAoKSA9PiBUVmFsdWUpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gICAgdGhpcy5jaGFuZ2VzID0gbmV3IExpc3Q8c3RyaW5nPigpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBjcmVhdGUgbmV3IGluc3RhbmNlIG9mIHNwZWNpZmllZCB0eXBlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwcml2YXRlIG5ldygpOiBUVmFsdWUge1xyXG4gICAgcmV0dXJuIG5ldyB0aGlzLnR5cGUoKTtcclxuICB9XHJcblxyXG5cclxuICBzZXRWYWx1ZShzOiBzdHJpbmcsIHY6IFRWYWx1ZSwgYWRkVG9DaGFuZ2VzPzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDMpXHJcbiAgICAgIHRoaXMuc2V0VmFsdWVfMChzLCB2LCBhZGRUb0NoYW5nZXMpO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLnNldFZhbHVlXzEocywgdik7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IHNldFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBzZXRWYWx1ZV8wKHM6IHN0cmluZywgdjogVFZhbHVlLCBhZGRUb0NoYW5nZXM6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmIChhZGRUb0NoYW5nZXMgJiYgIXRoaXMuY2hhbmdlcy5Db250YWlucyhzKSlcclxuICAgICAgdGhpcy5jaGFuZ2VzLnB1c2gocyk7XHJcbiAgICBzdXBlci5zZXRWYWx1ZShzLCB2KTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gc2V0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwcml2YXRlIHNldFZhbHVlXzEoczogc3RyaW5nLCB2OiBUVmFsdWUpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jaGFuZ2VzLkNvbnRhaW5zKHMpKVxyXG4gICAgICB0aGlzLmNoYW5nZXMucHVzaChzKTtcclxuICAgIHN1cGVyLnNldFZhbHVlKHMsIHYpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiByZW1vdmVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHJlbW92ZShzOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jaGFuZ2VzLkNvbnRhaW5zKHMpKSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlcy5wdXNoKHMpO1xyXG4gICAgfVxyXG4gICAgc3VwZXIucmVtb3ZlKHMpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyB3cml0ZSB0byBhbiBYTUwgYnVmZjogd3JpdGUgdGhlIElEIGFuZCBjYWxsIGVhY2ggdmFyaWFibGUgdG8gd3JpdGUgaXRzZWxmXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBtaXJyb3JBbGxUb1hNTCgpOiBzdHJpbmcge1xyXG4gICAgbGV0IHhtbDogU3RyaW5nQnVpbGRlciA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7XHJcblxyXG5cclxuICAgIGlmICh0aGlzLnZhbHVlcyAhPSBudWxsKSB7XHJcblxyXG4gICAgICAvLyB3cml0ZSB0aGUgaWRcclxuICAgICAgeG1sLkFwcGVuZChcIjxcIiArIHRoaXMubWlycm9yZWRJRCArIFwiPlwiKTtcclxuXHJcbiAgICAgIC8vIGxvb3Agb24gYWxsIHZhcmlhYmxlc1xyXG4gICAgICBmb3IgKGxldCBrZXkgb2YgdGhpcy52YWx1ZXMuS2V5cykge1xyXG5cclxuICAgICAgICBpZiAodGhpcy5DaGVja0lmU3lzdGVtUmVzZXJ2ZWRQYXJhbShrZXkpKVxyXG4gICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgeG1sLkFwcGVuZChcIjxcIiArIENvbnN0SW50ZXJmYWNlLk1HX1RBR19QQVJBTSArIFwiIFwiICtcclxuICAgICAgICAgIFhNTENvbnN0YW50cy5NR19BVFRSX05BTUUgKyBcIj1cXFwiXCIgKyBYbWxQYXJzZXIuZXNjYXBlKGtleSkgKyBcIlxcXCIgXCIpO1xyXG5cclxuICAgICAgICAvLyBjYWxsIHRoZSB2YXJpYWJsZSB0byB3cml0ZSBpdCdzIG93biBkYXRhXHJcbiAgICAgICAgICB4bWwuQXBwZW5kKHRoaXMudmFsdWVzLmdldF9JdGVtKGtleSkubWlycm9yVG9YTUwoKSk7XHJcblxyXG4gICAgICAgIHhtbC5BcHBlbmQoWE1MQ29uc3RhbnRzLlRBR19URVJNKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgeG1sLkFwcGVuZChcIjwvXCIgKyB0aGlzLm1pcnJvcmVkSUQgKyBcIj5cIik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4geG1sLlRvU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIElmIHN5c3RlbSByZXNlcnZlZCBwYXJhbSwgdGhlbiBkbyBub3Qgc2VyaWFsaXplIGZvciByZS1pbml0aWFsaXplIHNlc3Npb25cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIENoZWNrSWZTeXN0ZW1SZXNlcnZlZFBhcmFtKGtleTogYW55KTogYm9vbGVhblxyXG4gIHtcclxuICAgIGlmIChrZXkgPT0gXCJVVEY4VFJBTlNcIiB8fCBrZXkgPT09IFwiUkVNT1RFX0hPU1RcIiB8fCBrZXkgPT09IFwiUkVNT1RFX0FERFJcIiB8fFxyXG4gICAgICBrZXkgPT09IFwiQ1RYXCIgfHwga2V5ID09PSBcIk1HQVJHMFwiIHx8IGtleSA9PT0gXCJEQVRBXCIgfHwga2V5ID09PSBcIk1HQ1VSUkVOVFJFUVVFU1RJRFwiIHx8XHJcbiAgICAgIGtleSA9PT0gXCJIVFRQX01HWFBBUklBR0xPQkFMVU5JUVVFU0VTU0lPTklEXCIgfHwga2V5ID09PSBcIk1HX1BPU1RfQk9EWVwiKVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIGVsc2VcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyB3cml0ZSB0byBhbiBYTUwgYnVmZjogd3JpdGUgdGhlIElEIGFuZCBjYWxsIGVhY2ggY2hhbmdlZCB2YXJpYWJsZSB0byB3cml0ZSBpdHNlbGZcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIG1pcnJvclRvWE1MKCk6IHN0cmluZyB7XHJcbiAgICBsZXQgeG1sOiBTdHJpbmdCdWlsZGVyID0gbmV3IFN0cmluZ0J1aWxkZXIoKTtcclxuXHJcbiAgICBpZiAodGhpcy5jaGFuZ2VzLmxlbmd0aCA+IDApIHtcclxuXHJcbiAgICAgIC8vIHdyaXRlIHRoZSBpZFxyXG4gICAgICB4bWwuQXBwZW5kKFwiPFwiICsgdGhpcy5taXJyb3JlZElEICsgXCI+XCIpO1xyXG5cclxuICAgICAgLy8gbG9vcCBvbiBhbGwgY2hhbmdlZCB2YXJpYWJsZXNcclxuXHJcblxyXG4gICAgICB0aGlzLmNoYW5nZXMuZm9yRWFjaChjaGFuZ2UgPT4ge1xyXG5cclxuICAgICAgICB4bWwuQXBwZW5kKFwiPFwiICsgQ29uc3RJbnRlcmZhY2UuTUdfVEFHX1BBUkFNICsgXCIgXCIgK1xyXG4gICAgICAgICAgWE1MQ29uc3RhbnRzLk1HX0FUVFJfTkFNRSArIFwiPVxcXCJcIiArIFhtbFBhcnNlci5lc2NhcGUoY2hhbmdlKSArIFwiXFxcIiBcIik7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnZhbHVlcy5Db250YWluc0tleShjaGFuZ2UpKVxyXG4gICAgICAgIC8vIGNhbGwgdGhlIHZhcmlhYmxlIHRvIHdyaXRlIGl0J3Mgb3duIGRhdGFcclxuICAgICAgICAgIHhtbC5BcHBlbmQodGhpcy52YWx1ZXMuZ2V0X0l0ZW0oY2hhbmdlKS5taXJyb3JUb1hNTCgpKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICB4bWwuQXBwZW5kKFwicmVtb3ZlZD1cXFwiWVxcXCJcIik7XHJcbiAgICAgICAgeG1sLkFwcGVuZChcIj5cIik7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgeG1sLkFwcGVuZChcIjwvXCIgKyB0aGlzLm1pcnJvcmVkSUQgKyBcIj5cIik7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoYW5nZXMuQ2xlYXIoKTtcclxuICAgIHJldHVybiB4bWwuVG9TdHJpbmcoKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gcGFyc2UgdGhlIFhNTCBhbmQgZmlsbCB0aGUgZGF0YVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZmlsbERhdGEocGFyc2VyOiBYbWxQYXJzZXIpOiB2b2lkIHtcclxuICAgIHdoaWxlICh0aGlzLm1pcnJvckZyb21YTUwocGFyc2VyLmdldE5leHRUYWcoKSwgcGFyc2VyKSkge1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgUmVzdG9yZUdsb2JhbFBhcmFtcyAoeG1sOiBzdHJpbmcgKVxyXG4gIHtcclxuICAgIGxldCBwYXJzZXI6IFhtbFBhcnNlciA9IG5ldyBYbWxQYXJzZXIoeG1sKTtcclxuICAgIHdoaWxlICh0aGlzLm1pcnJvckZyb21YTUwocGFyc2VyLmdldE5leHRUYWcoKSwgcGFyc2VyKSkge1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBmaWxsIGZyb20gWE1MXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJmb3VuZFRhZ05hbWVcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInhtbFBhcnNlclwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBtaXJyb3JGcm9tWE1MKGZvdW5kVGFnTmFtZTogc3RyaW5nLCB4bWxQYXJzZXI6IFhtbFBhcnNlcik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGZvdW5kVGFnTmFtZSA9PT0gbnVsbClcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGlmIChmb3VuZFRhZ05hbWUgPT09IHRoaXMubWlycm9yZWRJRCkge1xyXG4gICAgICB4bWxQYXJzZXIuc2V0Q3VyckluZGV4MkVuZE9mVGFnKCk7XHJcbiAgICAgIHRoaXMuZmlsbERhdGFFbnRyeSh4bWxQYXJzZXIpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGZvdW5kVGFnTmFtZSA9PT0gKFwiL1wiICsgdGhpcy5taXJyb3JlZElEKSkge1xyXG4gICAgICAvLyBBZnRlciB1cGRhdGluZyBmcm9tIHRoZSBzZXJ2ZXIsIGNsZWFyIHRoZSBjaGFuZ2VzIGxpc3Qgc28gdGhleSB3b24ndCBiZSBzZW50IGFnYWluXHJcbiAgICAgIHRoaXMuY2hhbmdlcy5DbGVhcigpO1xyXG4gICAgICB4bWxQYXJzZXIuc2V0Q3VyckluZGV4MkVuZE9mVGFnKCk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVFeGNlcHRpb25Ub0xvZ1dpdGhNc2coXCJUaGVyZSBpcyBubyBzdWNoIHRhZyBpbiBNaXJyb3JQcm1NYXAubWlycm9yRnJvbVhNTCgpOiBcIiArIGZvdW5kVGFnTmFtZSk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHBhcnNlIGFuZCBmaWxsIHRoZSBwYXJhbXMsIHVudGlsIHRoZSBzZWN0aW9uIGVuZHNcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGZpbGxEYXRhRW50cnkoeG1sUGFyc2VyOiBYbWxQYXJzZXIpOiB2b2lkIHtcclxuICAgIGxldCBuZXh0VGFnOiBzdHJpbmcgPSB4bWxQYXJzZXIuZ2V0TmV4dFRhZygpO1xyXG5cclxuICAgIHdoaWxlIChuZXh0VGFnID09PSBDb25zdEludGVyZmFjZS5NR19UQUdfUEFSQU0pIHtcclxuICAgICAgbGV0IG5hbWVTdGFydDogbnVtYmVyID0geG1sUGFyc2VyLmdldFhNTGRhdGEoKS5pbmRleE9mKFhNTENvbnN0YW50cy5NR19BVFRSX05BTUUgKyBcIj1cXFwiXCIsIHhtbFBhcnNlci5nZXRDdXJySW5kZXgoKSkgK1xyXG4gICAgICAgIFhNTENvbnN0YW50cy5NR19BVFRSX05BTUUubGVuZ3RoICsgMjtcclxuXHJcbiAgICAgIHhtbFBhcnNlci5zZXRDdXJySW5kZXgobmFtZVN0YXJ0KTtcclxuICAgICAgbGV0IG5hbWVFbmQ6IG51bWJlciA9IHhtbFBhcnNlci5nZXRYTUxkYXRhKCkuaW5kZXhPZihcIlxcXCJcIiwgbmFtZVN0YXJ0KTtcclxuXHJcbiAgICAgIC8vIGdldCB0aGUgdmFyaWFibGVzIGRhdGFcclxuICAgICAgbGV0IG5hbWU6IHN0cmluZyA9IHhtbFBhcnNlci5nZXRYTUxzdWJzdHJpbmcobmFtZUVuZCkudHJpbSgpO1xyXG4gICAgICB4bWxQYXJzZXIuc2V0Q3VyckluZGV4KG5hbWVFbmQpO1xyXG5cclxuICAgICAgLy8gY3JlYXRlIGFuZCBpbml0IHRoZSBuZXcgdmFsdWVcclxuICAgICAgbGV0IG5ld1ZhbDogVFZhbHVlID0gdGhpcy5uZXcoKTtcclxuXHJcbiAgICAgIHN3aXRjaCAobmV3VmFsLmluaXQobmFtZSwgeG1sUGFyc2VyKSkge1xyXG4gICAgICAgIGNhc2UgUGFyYW1QYXJzZVJlc3VsdC5PSzpcclxuICAgICAgICAgIHRoaXMudmFsdWVzLnNldF9JdGVtKG5hbWUsIG5ld1ZhbCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFBhcmFtUGFyc2VSZXN1bHQuVE9VUFBFUjpcclxuICAgICAgICAgIHRoaXMudmFsdWVzLnNldF9JdGVtKG5hbWUudG9VcHBlckNhc2UoKSwgbmV3VmFsKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgUGFyYW1QYXJzZVJlc3VsdC5ERUxFVEU6XHJcbiAgICAgICAgICB0aGlzLnZhbHVlcy5SZW1vdmUobmFtZSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gbW92ZSB0byBuZXh0IHRhZ1xyXG4gICAgICB4bWxQYXJzZXIuc2V0Q3VyckluZGV4MkVuZE9mVGFnKCk7XHJcbiAgICAgIG5leHRUYWcgPSB4bWxQYXJzZXIuZ2V0TmV4dFRhZygpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJtTWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy91dGlsL1BybU1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFLcEQsTUFBTSxPQUFPLE1BQU07SUE2QmpCO1FBNUJBLFdBQU0sR0FBdUIsSUFBSSxDQUFDO1FBNkI5QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksVUFBVSxFQUFVLENBQUM7SUFDM0MsQ0FBQztJQXZCUyxRQUFRLENBQUMsQ0FBUztRQUMxQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUM1QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDOztZQUUvQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBSUQsUUFBUSxDQUFDLENBQVMsRUFBRSxDQUFTO1FBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBSUQsTUFBTSxDQUFDLENBQVM7UUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixDQUFDO0NBT0Y7QUFLRCxNQUFNLE9BQU8sWUFBd0MsU0FBUSxNQUFjO0lBWXpFLFlBQVksSUFBc0I7UUFDaEMsS0FBSyxFQUFFLENBQUM7UUFWQSxZQUFPLEdBQWlCLElB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QztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljdGlvbmFyeSwgTGlzdCwgU3RyaW5nQnVpbGRlciB9IGZyb20gJ0BtYWdpYy14cGEvbXNjb3JlbGliJztcclxuaW1wb3J0IHsgTG9nZ2VyLCBYTUxDb25zdGFudHMsIFhtbFBhcnNlciB9IGZyb20gJ0BtYWdpYy14cGEvdXRpbHMnO1xyXG5pbXBvcnQgeyBDb25zdEludGVyZmFjZSB9IGZyb20gJy4uL0NvbnN0SW50ZXJmYWNlJztcclxuaW1wb3J0IHsgSU1pcnJvclhNTCB9IGZyb20gJy4vSU1pcnJvclhNTCc7XHJcbmltcG9ydCB7UGFyYW1QYXJzZVJlc3VsdH0gZnJvbSBcIi4vUGFyYW1QYXJzZVJlc3VsdFwiO1xyXG5cclxuXHJcbi8vLyA8c3VtbWFyeT4gVGhpcyBjbGFzcyBtYW5hZ2VzIGEgZGljdGlvbmFyeSBvZiB2YXJpYWJsZXMuIHRoZW4gbmFtZSBvZiB0aGUgdmFyaWFibGUgaXMgdGhlIGtleVxyXG4vLy8gPC9zdW1tYXJ5PlxyXG5leHBvcnQgY2xhc3MgUHJtTWFwPFRWYWx1ZSBleHRlbmRzIElNaXJyb3JYTUw+e1xyXG4gIHZhbHVlczogRGljdGlvbmFyeTxUVmFsdWU+ID0gbnVsbDtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBnZXQgdGhlIHZhbHVlXHJcbiAgLy8vXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJzXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHByb3RlY3RlZCBnZXR2YWx1ZShzOiBzdHJpbmcpOiBUVmFsdWUge1xyXG4gICAgaWYgKHRoaXMudmFsdWVzLkNvbnRhaW5zS2V5KHMpKVxyXG4gICAgICByZXR1cm4gdGhpcy52YWx1ZXMuZ2V0X0l0ZW0ocyk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBzZXRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHNldFZhbHVlKHM6IHN0cmluZywgdjogVFZhbHVlKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlcy5zZXRfSXRlbShzLCB2KTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gcmVtb3ZlIGFuIGVudHJ5XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICByZW1vdmUoczogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlcy5SZW1vdmUocyk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IENUT1JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICB0aGlzLnZhbHVlcyA9IG5ldyBEaWN0aW9uYXJ5PFRWYWx1ZT4oKTtcclxuICB9XHJcbn1cclxuXHJcbi8vLyA8c3VtbWFyeT4gVGhpcyBjbGFzcyBtYW5hZ2VzIHRoZSBtaXJyb3JpbmcuIEl0IGhvbGRzIGEgbGlzdCBvZiBjaGFuZ2VkIHZhbHVlcyB0aGF0IG5lZWQgdG8gYmVcclxuLy8vIG1pcnJvcmVkLCBhbmQgbWFuYWdlcyB0aGUgd3JpdGluZyBvZiB0aG9zZSB2YWx1ZXMgdG8gYW4gWE1MIGJ1ZmZlclxyXG4vLy8gPC9zdW1tYXJ5PlxyXG5leHBvcnQgY2xhc3MgTWlycm9yUHJtTWFwPFRWYWx1ZSBleHRlbmRzIElNaXJyb3JYTUw+IGV4dGVuZHMgUHJtTWFwPFRWYWx1ZT4ge1xyXG5cclxuICAvLyBMaXN0IG9mIGNoYW5nZWQgdmFyaWFibGVzXHJcbiAgcHJvdGVjdGVkIGNoYW5nZXM6IExpc3Q8c3RyaW5nPiA9IG51bGw7XHJcblxyXG4gIC8vIFR5cGUgb2YgdmFyaWFibGVzIGluIHRoZSB0YWJsZSAtIHVzZSBhcyBhbiBpZCBpbiB0aGUgWE1MIGJ1ZmZlclxyXG4gIHByb3RlY3RlZCAgbWlycm9yZWRJRDogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgcHJpdmF0ZSB0eXBlIDtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBDVE9SXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBjb25zdHJ1Y3Rvcih0eXBlOiBuZXcgKCkgPT4gVFZhbHVlKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy50eXBlID0gdHlwZTtcclxuICAgIHRoaXMuY2hhbmdlcyA9IG5ldyBMaXN0PHN0cmluZz4oKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gY3JlYXRlIG5ldyBpbnN0YW5jZSBvZiBzcGVjaWZpZWQgdHlwZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBuZXcoKTogVFZhbHVlIHtcclxuICAgIHJldHVybiBuZXcgdGhpcy50eXBlKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgc2V0VmFsdWUoczogc3RyaW5nLCB2OiBUVmFsdWUsIGFkZFRvQ2hhbmdlcz86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAzKVxyXG4gICAgICB0aGlzLnNldFZhbHVlXzAocywgdiwgYWRkVG9DaGFuZ2VzKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5zZXRWYWx1ZV8xKHMsIHYpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBzZXRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHByaXZhdGUgc2V0VmFsdWVfMChzOiBzdHJpbmcsIHY6IFRWYWx1ZSwgYWRkVG9DaGFuZ2VzOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoYWRkVG9DaGFuZ2VzICYmICF0aGlzLmNoYW5nZXMuQ29udGFpbnMocykpXHJcbiAgICAgIHRoaXMuY2hhbmdlcy5wdXNoKHMpO1xyXG4gICAgc3VwZXIuc2V0VmFsdWUocywgdik7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IHNldFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBzZXRWYWx1ZV8xKHM6IHN0cmluZywgdjogVFZhbHVlKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuY2hhbmdlcy5Db250YWlucyhzKSlcclxuICAgICAgdGhpcy5jaGFuZ2VzLnB1c2gocyk7XHJcbiAgICBzdXBlci5zZXRWYWx1ZShzLCB2KTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gcmVtb3ZlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICByZW1vdmUoczogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuY2hhbmdlcy5Db250YWlucyhzKSkge1xyXG4gICAgICB0aGlzLmNoYW5nZXMucHVzaChzKTtcclxuICAgIH1cclxuICAgIHN1cGVyLnJlbW92ZShzKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gd3JpdGUgdG8gYW4gWE1MIGJ1ZmY6IHdyaXRlIHRoZSBJRCBhbmQgY2FsbCBlYWNoIHZhcmlhYmxlIHRvIHdyaXRlIGl0c2VsZlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgbWlycm9yQWxsVG9YTUwoKTogc3RyaW5nIHtcclxuICAgIGxldCB4bWw6IFN0cmluZ0J1aWxkZXIgPSBuZXcgU3RyaW5nQnVpbGRlcigpO1xyXG5cclxuXHJcbiAgICBpZiAodGhpcy52YWx1ZXMgIT0gbnVsbCkge1xyXG5cclxuICAgICAgLy8gd3JpdGUgdGhlIGlkXHJcbiAgICAgIHhtbC5BcHBlbmQoXCI8XCIgKyB0aGlzLm1pcnJvcmVkSUQgKyBcIj5cIik7XHJcblxyXG4gICAgICAvLyBsb29wIG9uIGFsbCB2YXJpYWJsZXNcclxuICAgICAgZm9yIChsZXQga2V5IG9mIHRoaXMudmFsdWVzLktleXMpIHtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuQ2hlY2tJZlN5c3RlbVJlc2VydmVkUGFyYW0oa2V5KSlcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIHhtbC5BcHBlbmQoXCI8XCIgKyBDb25zdEludGVyZmFjZS5NR19UQUdfUEFSQU0gKyBcIiBcIiArXHJcbiAgICAgICAgICBYTUxDb25zdGFudHMuTUdfQVRUUl9OQU1FICsgXCI9XFxcIlwiICsgWG1sUGFyc2VyLmVzY2FwZShrZXkpICsgXCJcXFwiIFwiKTtcclxuXHJcbiAgICAgICAgLy8gY2FsbCB0aGUgdmFyaWFibGUgdG8gd3JpdGUgaXQncyBvd24gZGF0YVxyXG4gICAgICAgICAgeG1sLkFwcGVuZCh0aGlzLnZhbHVlcy5nZXRfSXRlbShrZXkpLm1pcnJvclRvWE1MKCkpO1xyXG5cclxuICAgICAgICB4bWwuQXBwZW5kKFhNTENvbnN0YW50cy5UQUdfVEVSTSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHhtbC5BcHBlbmQoXCI8L1wiICsgdGhpcy5taXJyb3JlZElEICsgXCI+XCIpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHhtbC5Ub1N0cmluZygpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBJZiBzeXN0ZW0gcmVzZXJ2ZWQgcGFyYW0sIHRoZW4gZG8gbm90IHNlcmlhbGl6ZSBmb3IgcmUtaW5pdGlhbGl6ZSBzZXNzaW9uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBDaGVja0lmU3lzdGVtUmVzZXJ2ZWRQYXJhbShrZXk6IGFueSk6IGJvb2xlYW5cclxuICB7XHJcbiAgICBpZiAoa2V5ID09IFwiVVRGOFRSQU5TXCIgfHwga2V5ID09PSBcIlJFTU9URV9IT1NUXCIgfHwga2V5ID09PSBcIlJFTU9URV9BRERSXCIgfHxcclxuICAgICAga2V5ID09PSBcIkNUWFwiIHx8IGtleSA9PT0gXCJNR0FSRzBcIiB8fCBrZXkgPT09IFwiREFUQVwiIHx8IGtleSA9PT0gXCJNR0NVUlJFTlRSRVFVRVNUSURcIiB8fFxyXG4gICAgICBrZXkgPT09IFwiSFRUUF9NR1hQQVJJQUdMT0JBTFVOSVFVRVNFU1NJT05JRFwiIHx8IGtleSA9PT0gXCJNR19QT1NUX0JPRFlcIilcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICBlbHNlXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gd3JpdGUgdG8gYW4gWE1MIGJ1ZmY6IHdyaXRlIHRoZSBJRCBhbmQgY2FsbCBlYWNoIGNoYW5nZWQgdmFyaWFibGUgdG8gd3JpdGUgaXRzZWxmXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBtaXJyb3JUb1hNTCgpOiBzdHJpbmcge1xyXG4gICAgbGV0IHhtbDogU3RyaW5nQnVpbGRlciA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuY2hhbmdlcy5sZW5ndGggPiAwKSB7XHJcblxyXG4gICAgICAvLyB3cml0ZSB0aGUgaWRcclxuICAgICAgeG1sLkFwcGVuZChcIjxcIiArIHRoaXMubWlycm9yZWRJRCArIFwiPlwiKTtcclxuXHJcbiAgICAgIC8vIGxvb3Agb24gYWxsIGNoYW5nZWQgdmFyaWFibGVzXHJcblxyXG5cclxuICAgICAgdGhpcy5jaGFuZ2VzLmZvckVhY2goY2hhbmdlID0+IHtcclxuXHJcbiAgICAgICAgeG1sLkFwcGVuZChcIjxcIiArIENvbnN0SW50ZXJmYWNlLk1HX1RBR19QQVJBTSArIFwiIFwiICtcclxuICAgICAgICAgIFhNTENvbnN0YW50cy5NR19BVFRSX05BTUUgKyBcIj1cXFwiXCIgKyBYbWxQYXJzZXIuZXNjYXBlKGNoYW5nZSkgKyBcIlxcXCIgXCIpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy52YWx1ZXMuQ29udGFpbnNLZXkoY2hhbmdlKSlcclxuICAgICAgICAvLyBjYWxsIHRoZSB2YXJpYWJsZSB0byB3cml0ZSBpdCdzIG93biBkYXRhXHJcbiAgICAgICAgICB4bWwuQXBwZW5kKHRoaXMudmFsdWVzLmdldF9JdGVtKGNoYW5nZSkubWlycm9yVG9YTUwoKSk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgeG1sLkFwcGVuZChcInJlbW92ZWQ9XFxcIllcXFwiXCIpO1xyXG4gICAgICAgIHhtbC5BcHBlbmQoXCI+XCIpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHhtbC5BcHBlbmQoXCI8L1wiICsgdGhpcy5taXJyb3JlZElEICsgXCI+XCIpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jaGFuZ2VzLkNsZWFyKCk7XHJcbiAgICByZXR1cm4geG1sLlRvU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IHBhcnNlIHRoZSBYTUwgYW5kIGZpbGwgdGhlIGRhdGFcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGZpbGxEYXRhKHBhcnNlcjogWG1sUGFyc2VyKTogdm9pZCB7XHJcbiAgICB3aGlsZSAodGhpcy5taXJyb3JGcm9tWE1MKHBhcnNlci5nZXROZXh0VGFnKCksIHBhcnNlcikpIHtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIFJlc3RvcmVQYXJhbXMgKHhtbDogc3RyaW5nIClcclxuICB7XHJcbiAgICBsZXQgcGFyc2VyOiBYbWxQYXJzZXIgPSBuZXcgWG1sUGFyc2VyKHhtbCk7XHJcbiAgICB3aGlsZSAodGhpcy5taXJyb3JGcm9tWE1MKHBhcnNlci5nZXROZXh0VGFnKCksIHBhcnNlcikpIHtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gZmlsbCBmcm9tIFhNTFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiZm91bmRUYWdOYW1lXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ4bWxQYXJzZXJcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgbWlycm9yRnJvbVhNTChmb3VuZFRhZ05hbWU6IHN0cmluZywgeG1sUGFyc2VyOiBYbWxQYXJzZXIpOiBib29sZWFuIHtcclxuICAgIGlmIChmb3VuZFRhZ05hbWUgPT09IG51bGwpXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICBpZiAoZm91bmRUYWdOYW1lID09PSB0aGlzLm1pcnJvcmVkSUQpIHtcclxuICAgICAgeG1sUGFyc2VyLnNldEN1cnJJbmRleDJFbmRPZlRhZygpO1xyXG4gICAgICB0aGlzLmZpbGxEYXRhRW50cnkoeG1sUGFyc2VyKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChmb3VuZFRhZ05hbWUgPT09IChcIi9cIiArIHRoaXMubWlycm9yZWRJRCkpIHtcclxuICAgICAgLy8gQWZ0ZXIgdXBkYXRpbmcgZnJvbSB0aGUgc2VydmVyLCBjbGVhciB0aGUgY2hhbmdlcyBsaXN0IHNvIHRoZXkgd29uJ3QgYmUgc2VudCBhZ2FpblxyXG4gICAgICB0aGlzLmNoYW5nZXMuQ2xlYXIoKTtcclxuICAgICAgeG1sUGFyc2VyLnNldEN1cnJJbmRleDJFbmRPZlRhZygpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlRXhjZXB0aW9uVG9Mb2dXaXRoTXNnKFwiVGhlcmUgaXMgbm8gc3VjaCB0YWcgaW4gTWlycm9yUHJtTWFwLm1pcnJvckZyb21YTUwoKTogXCIgKyBmb3VuZFRhZ05hbWUpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBwYXJzZSBhbmQgZmlsbCB0aGUgcGFyYW1zLCB1bnRpbCB0aGUgc2VjdGlvbiBlbmRzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBmaWxsRGF0YUVudHJ5KHhtbFBhcnNlcjogWG1sUGFyc2VyKTogdm9pZCB7XHJcbiAgICBsZXQgbmV4dFRhZzogc3RyaW5nID0geG1sUGFyc2VyLmdldE5leHRUYWcoKTtcclxuXHJcbiAgICB3aGlsZSAobmV4dFRhZyA9PT0gQ29uc3RJbnRlcmZhY2UuTUdfVEFHX1BBUkFNKSB7XHJcbiAgICAgIGxldCBuYW1lU3RhcnQ6IG51bWJlciA9IHhtbFBhcnNlci5nZXRYTUxkYXRhKCkuaW5kZXhPZihYTUxDb25zdGFudHMuTUdfQVRUUl9OQU1FICsgXCI9XFxcIlwiLCB4bWxQYXJzZXIuZ2V0Q3VyckluZGV4KCkpICtcclxuICAgICAgICBYTUxDb25zdGFudHMuTUdfQVRUUl9OQU1FLmxlbmd0aCArIDI7XHJcblxyXG4gICAgICB4bWxQYXJzZXIuc2V0Q3VyckluZGV4KG5hbWVTdGFydCk7XHJcbiAgICAgIGxldCBuYW1lRW5kOiBudW1iZXIgPSB4bWxQYXJzZXIuZ2V0WE1MZGF0YSgpLmluZGV4T2YoXCJcXFwiXCIsIG5hbWVTdGFydCk7XHJcblxyXG4gICAgICAvLyBnZXQgdGhlIHZhcmlhYmxlcyBkYXRhXHJcbiAgICAgIGxldCBuYW1lOiBzdHJpbmcgPSB4bWxQYXJzZXIuZ2V0WE1Mc3Vic3RyaW5nKG5hbWVFbmQpLnRyaW0oKTtcclxuICAgICAgeG1sUGFyc2VyLnNldEN1cnJJbmRleChuYW1lRW5kKTtcclxuXHJcbiAgICAgIC8vIGNyZWF0ZSBhbmQgaW5pdCB0aGUgbmV3IHZhbHVlXHJcbiAgICAgIGxldCBuZXdWYWw6IFRWYWx1ZSA9IHRoaXMubmV3KCk7XHJcblxyXG4gICAgICBzd2l0Y2ggKG5ld1ZhbC5pbml0KG5hbWUsIHhtbFBhcnNlcikpIHtcclxuICAgICAgICBjYXNlIFBhcmFtUGFyc2VSZXN1bHQuT0s6XHJcbiAgICAgICAgICB0aGlzLnZhbHVlcy5zZXRfSXRlbShuYW1lLCBuZXdWYWwpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBQYXJhbVBhcnNlUmVzdWx0LlRPVVBQRVI6XHJcbiAgICAgICAgICB0aGlzLnZhbHVlcy5zZXRfSXRlbShuYW1lLnRvVXBwZXJDYXNlKCksIG5ld1ZhbCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFBhcmFtUGFyc2VSZXN1bHQuREVMRVRFOlxyXG4gICAgICAgICAgdGhpcy52YWx1ZXMuUmVtb3ZlKG5hbWUpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIG1vdmUgdG8gbmV4dCB0YWdcclxuICAgICAgeG1sUGFyc2VyLnNldEN1cnJJbmRleDJFbmRPZlRhZygpO1xyXG4gICAgICBuZXh0VGFnID0geG1sUGFyc2VyLmdldE5leHRUYWcoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -476,6 +476,7 @@ ConstInterface.RC_TOKEN_DATA = "DATA=";
|
|
|
476
476
|
ConstInterface.WEBCLIENT_REINITIALIZE_REQUEST = "WCREINITIALIZEREQUEST=Y";
|
|
477
477
|
ConstInterface.MAIN_PROG_VIEW = "MainProgramsDataView";
|
|
478
478
|
ConstInterface.GLOBAL_PARAM_LIST = "GlobalParamList";
|
|
479
|
+
ConstInterface.ENV_VAR_LIST = "EnvVarList";
|
|
479
480
|
ConstInterface.LAST_EXCEPTION = "LastException";
|
|
480
481
|
ConstInterface.CTX_REMOVED_FROM_SRVR = "CtxRemovedFromSrvr";
|
|
481
482
|
ConstInterface.LAST_ROUTE_EVENT = "LastRouteEvent";
|
|
@@ -5274,10 +5275,12 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
|
|
|
5274
5275
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5275
5276
|
let mainPrgViewStringForServer = yield this.BuildXMLForMainProgramDataView();
|
|
5276
5277
|
let globalParamsString = AccessHelper.globalParams.mirrorAllToXML();
|
|
5278
|
+
let changedEnvVarList = AccessHelper.envParamsTable.mirrorAllToXML();
|
|
5277
5279
|
let dataStorage = window.localStorage;
|
|
5278
5280
|
dataStorage.setItem(ConstInterface.IS_SESSION_REINITIALIZING, "true");
|
|
5279
5281
|
dataStorage.setItem(ConstInterface.MAIN_PROG_VIEW, mainPrgViewStringForServer.toString());
|
|
5280
5282
|
dataStorage.setItem(ConstInterface.GLOBAL_PARAM_LIST, globalParamsString);
|
|
5283
|
+
dataStorage.setItem(ConstInterface.ENV_VAR_LIST, changedEnvVarList);
|
|
5281
5284
|
dataStorage.setItem(ConstInterface.LAST_EXCEPTION, RemoteCommandsProcessor.lastExceptionMessage);
|
|
5282
5285
|
if (RuntimeContextBase.Instance.RemovedContextFromServer)
|
|
5283
5286
|
dataStorage.setItem(ConstInterface.CTX_REMOVED_FROM_SRVR, "1");
|
|
@@ -5514,6 +5517,7 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
|
|
|
5514
5517
|
let reqBuf;
|
|
5515
5518
|
let isInitialCall = sessionStage === CommandsProcessorBase_SessionStage.INITIAL;
|
|
5516
5519
|
let globalParamsString = null;
|
|
5520
|
+
let envVarsString = null;
|
|
5517
5521
|
if (this.DelayCommandExecution)
|
|
5518
5522
|
return;
|
|
5519
5523
|
if (Logger.Instance.LogLevel == Logger_LogLevels.RequestInfo && !isInitialCall)
|
|
@@ -5539,12 +5543,16 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
|
|
|
5539
5543
|
let buffer = new StringBuilder();
|
|
5540
5544
|
if (!RemoteCommandsProcessor.IsSessionReInitializing)
|
|
5541
5545
|
buffer.Append(reqBuf);
|
|
5542
|
-
if (RemoteCommandsProcessor.IsSessionReInitializing)
|
|
5546
|
+
if (RemoteCommandsProcessor.IsSessionReInitializing) {
|
|
5543
5547
|
globalParamsString = this.RestoreSessionReInitializingDataFromLocalStorage(ConstInterface.GLOBAL_PARAM_LIST);
|
|
5544
|
-
|
|
5548
|
+
envVarsString = this.RestoreSessionReInitializingDataFromLocalStorage(ConstInterface.ENV_VAR_LIST);
|
|
5549
|
+
}
|
|
5550
|
+
else {
|
|
5545
5551
|
globalParamsString = AccessHelper.globalParams.mirrorToXML();
|
|
5552
|
+
envVarsString = AccessHelper.envParamsTable.mirrorToXML();
|
|
5553
|
+
}
|
|
5546
5554
|
changes.Append(globalParamsString);
|
|
5547
|
-
changes.Append(
|
|
5555
|
+
changes.Append(envVarsString);
|
|
5548
5556
|
if (changes.Length > 0) {
|
|
5549
5557
|
changes.Insert(0, "<" + ConstInterface.MG_TAG_ENV_CHANGES + ">");
|
|
5550
5558
|
changes.Append("</" + ConstInterface.MG_TAG_ENV_CHANGES + ">");
|
|
@@ -5583,13 +5591,15 @@ class RemoteCommandsProcessor extends CommandsProcessorBase {
|
|
|
5583
5591
|
dataStorage.removeItem(ConstInterface.IS_SESSION_REINITIALIZING);
|
|
5584
5592
|
dataStorage.removeItem(ConstInterface.MAIN_PROG_VIEW);
|
|
5585
5593
|
dataStorage.removeItem(ConstInterface.GLOBAL_PARAM_LIST);
|
|
5594
|
+
dataStorage.removeItem(ConstInterface.ENV_VAR_LIST);
|
|
5586
5595
|
dataStorage.removeItem(ConstInterface.LAST_EXCEPTION);
|
|
5587
5596
|
}
|
|
5588
5597
|
}
|
|
5589
5598
|
FlowMonitorQueue.Instance.enable(false);
|
|
5590
5599
|
yield this.ProcessResponse(respBuf, AccessHelper.mgDataTable.currMgdID, null, res);
|
|
5591
5600
|
if (RemoteCommandsProcessor.IsSessionReInitializing) {
|
|
5592
|
-
AccessHelper.globalParams.
|
|
5601
|
+
AccessHelper.globalParams.RestoreParams(globalParamsString);
|
|
5602
|
+
AccessHelper.envParamsTable.RestoreParams(envVarsString);
|
|
5593
5603
|
let dataStorage = window.localStorage;
|
|
5594
5604
|
let ctxRemoved = dataStorage.getItem(ConstInterface.CTX_REMOVED_FROM_SRVR);
|
|
5595
5605
|
if (ctxRemoved === "1") {
|
|
@@ -6918,7 +6928,7 @@ ExpressionDict.expDesc = [
|
|
|
6918
6928
|
null,
|
|
6919
6929
|
new ExpDesc('N', 0, 0, 0, "", false),
|
|
6920
6930
|
null,
|
|
6921
|
-
|
|
6931
|
+
null,
|
|
6922
6932
|
new ExpDesc('B', 0, 2, 2, "V ", false),
|
|
6923
6933
|
null,
|
|
6924
6934
|
null,
|
|
@@ -7367,12 +7377,12 @@ ExpressionDict.expDesc = [
|
|
|
7367
7377
|
null,
|
|
7368
7378
|
new ExpDesc('A', 0, 1, 1, "A", false),
|
|
7369
7379
|
new ExpDesc('N', 0, 2, 2, "AA", false),
|
|
7370
|
-
|
|
7371
|
-
|
|
7372
|
-
|
|
7373
|
-
|
|
7374
|
-
|
|
7375
|
-
|
|
7380
|
+
null,
|
|
7381
|
+
null,
|
|
7382
|
+
null,
|
|
7383
|
+
null,
|
|
7384
|
+
null,
|
|
7385
|
+
null,
|
|
7376
7386
|
new ExpDesc('N', 0, 1, 1, "N", false),
|
|
7377
7387
|
null,
|
|
7378
7388
|
null,
|
|
@@ -7459,48 +7469,6 @@ ExpressionDict.expDesc = [
|
|
|
7459
7469
|
new ExpDesc('U', 0, 0, 0, '', false),
|
|
7460
7470
|
];
|
|
7461
7471
|
|
|
7462
|
-
var DataViewCommandType;
|
|
7463
|
-
(function (DataViewCommandType) {
|
|
7464
|
-
DataViewCommandType[DataViewCommandType["Init"] = 0] = "Init";
|
|
7465
|
-
DataViewCommandType[DataViewCommandType["Clear"] = 1] = "Clear";
|
|
7466
|
-
DataViewCommandType[DataViewCommandType["Prepare"] = 2] = "Prepare";
|
|
7467
|
-
DataViewCommandType[DataViewCommandType["FirstChunk"] = 3] = "FirstChunk";
|
|
7468
|
-
DataViewCommandType[DataViewCommandType["RecomputeUnit"] = 4] = "RecomputeUnit";
|
|
7469
|
-
DataViewCommandType[DataViewCommandType["ExecuteLocalUpdates"] = 5] = "ExecuteLocalUpdates";
|
|
7470
|
-
DataViewCommandType[DataViewCommandType["InitDataControlViews"] = 6] = "InitDataControlViews";
|
|
7471
|
-
DataViewCommandType[DataViewCommandType["OpenTransaction"] = 7] = "OpenTransaction";
|
|
7472
|
-
DataViewCommandType[DataViewCommandType["CloseTransaction"] = 8] = "CloseTransaction";
|
|
7473
|
-
DataViewCommandType[DataViewCommandType["SetTransactionState"] = 9] = "SetTransactionState";
|
|
7474
|
-
DataViewCommandType[DataViewCommandType["AddUserRange"] = 10] = "AddUserRange";
|
|
7475
|
-
DataViewCommandType[DataViewCommandType["ResetUserRange"] = 11] = "ResetUserRange";
|
|
7476
|
-
DataViewCommandType[DataViewCommandType["DbDisconnect"] = 12] = "DbDisconnect";
|
|
7477
|
-
DataViewCommandType[DataViewCommandType["AddUserLocate"] = 13] = "AddUserLocate";
|
|
7478
|
-
DataViewCommandType[DataViewCommandType["ResetUserLocate"] = 14] = "ResetUserLocate";
|
|
7479
|
-
DataViewCommandType[DataViewCommandType["AddUserSort"] = 15] = "AddUserSort";
|
|
7480
|
-
DataViewCommandType[DataViewCommandType["ResetUserSort"] = 16] = "ResetUserSort";
|
|
7481
|
-
DataViewCommandType[DataViewCommandType["DataViewToDataSource"] = 17] = "DataViewToDataSource";
|
|
7482
|
-
DataViewCommandType[DataViewCommandType["DbDelete"] = 18] = "DbDelete";
|
|
7483
|
-
DataViewCommandType[DataViewCommandType["ControlItemsRefresh"] = 19] = "ControlItemsRefresh";
|
|
7484
|
-
DataViewCommandType[DataViewCommandType["SQLExecute"] = 20] = "SQLExecute";
|
|
7485
|
-
})(DataViewCommandType || (DataViewCommandType = {}));
|
|
7486
|
-
class DataviewCommand extends ClientOriginatedCommandTaskTag {
|
|
7487
|
-
constructor() {
|
|
7488
|
-
super();
|
|
7489
|
-
this.CommandType = 0;
|
|
7490
|
-
this.TaskTag = null;
|
|
7491
|
-
}
|
|
7492
|
-
get CommandTypeAttribute() {
|
|
7493
|
-
throw new NotImplementedException();
|
|
7494
|
-
}
|
|
7495
|
-
SerializeCommandData() {
|
|
7496
|
-
Debug.Assert(false, "Dataview commands need not be serialized");
|
|
7497
|
-
return null;
|
|
7498
|
-
}
|
|
7499
|
-
get ShouldSerialize() {
|
|
7500
|
-
return false;
|
|
7501
|
-
}
|
|
7502
|
-
}
|
|
7503
|
-
|
|
7504
7472
|
class EventHandlerPosition {
|
|
7505
7473
|
constructor() {
|
|
7506
7474
|
this._handlerIdx = 0;
|
|
@@ -7697,6 +7665,48 @@ EventHandlerPosition.PHASE_CONTROL_NON_SPECIFIC = 2;
|
|
|
7697
7665
|
EventHandlerPosition.PHASE_GLOBAL = 3;
|
|
7698
7666
|
EventHandlerPosition.PHASE_GLOBAL_SPECIFIC = 4;
|
|
7699
7667
|
|
|
7668
|
+
var DataViewCommandType;
|
|
7669
|
+
(function (DataViewCommandType) {
|
|
7670
|
+
DataViewCommandType[DataViewCommandType["Init"] = 0] = "Init";
|
|
7671
|
+
DataViewCommandType[DataViewCommandType["Clear"] = 1] = "Clear";
|
|
7672
|
+
DataViewCommandType[DataViewCommandType["Prepare"] = 2] = "Prepare";
|
|
7673
|
+
DataViewCommandType[DataViewCommandType["FirstChunk"] = 3] = "FirstChunk";
|
|
7674
|
+
DataViewCommandType[DataViewCommandType["RecomputeUnit"] = 4] = "RecomputeUnit";
|
|
7675
|
+
DataViewCommandType[DataViewCommandType["ExecuteLocalUpdates"] = 5] = "ExecuteLocalUpdates";
|
|
7676
|
+
DataViewCommandType[DataViewCommandType["InitDataControlViews"] = 6] = "InitDataControlViews";
|
|
7677
|
+
DataViewCommandType[DataViewCommandType["OpenTransaction"] = 7] = "OpenTransaction";
|
|
7678
|
+
DataViewCommandType[DataViewCommandType["CloseTransaction"] = 8] = "CloseTransaction";
|
|
7679
|
+
DataViewCommandType[DataViewCommandType["SetTransactionState"] = 9] = "SetTransactionState";
|
|
7680
|
+
DataViewCommandType[DataViewCommandType["AddUserRange"] = 10] = "AddUserRange";
|
|
7681
|
+
DataViewCommandType[DataViewCommandType["ResetUserRange"] = 11] = "ResetUserRange";
|
|
7682
|
+
DataViewCommandType[DataViewCommandType["DbDisconnect"] = 12] = "DbDisconnect";
|
|
7683
|
+
DataViewCommandType[DataViewCommandType["AddUserLocate"] = 13] = "AddUserLocate";
|
|
7684
|
+
DataViewCommandType[DataViewCommandType["ResetUserLocate"] = 14] = "ResetUserLocate";
|
|
7685
|
+
DataViewCommandType[DataViewCommandType["AddUserSort"] = 15] = "AddUserSort";
|
|
7686
|
+
DataViewCommandType[DataViewCommandType["ResetUserSort"] = 16] = "ResetUserSort";
|
|
7687
|
+
DataViewCommandType[DataViewCommandType["DataViewToDataSource"] = 17] = "DataViewToDataSource";
|
|
7688
|
+
DataViewCommandType[DataViewCommandType["DbDelete"] = 18] = "DbDelete";
|
|
7689
|
+
DataViewCommandType[DataViewCommandType["ControlItemsRefresh"] = 19] = "ControlItemsRefresh";
|
|
7690
|
+
DataViewCommandType[DataViewCommandType["SQLExecute"] = 20] = "SQLExecute";
|
|
7691
|
+
})(DataViewCommandType || (DataViewCommandType = {}));
|
|
7692
|
+
class DataviewCommand extends ClientOriginatedCommandTaskTag {
|
|
7693
|
+
constructor() {
|
|
7694
|
+
super();
|
|
7695
|
+
this.CommandType = 0;
|
|
7696
|
+
this.TaskTag = null;
|
|
7697
|
+
}
|
|
7698
|
+
get CommandTypeAttribute() {
|
|
7699
|
+
throw new NotImplementedException();
|
|
7700
|
+
}
|
|
7701
|
+
SerializeCommandData() {
|
|
7702
|
+
Debug.Assert(false, "Dataview commands need not be serialized");
|
|
7703
|
+
return null;
|
|
7704
|
+
}
|
|
7705
|
+
get ShouldSerialize() {
|
|
7706
|
+
return false;
|
|
7707
|
+
}
|
|
7708
|
+
}
|
|
7709
|
+
|
|
7700
7710
|
class AddUserRangeDataviewCommand extends DataviewCommand {
|
|
7701
7711
|
constructor() {
|
|
7702
7712
|
super();
|
|
@@ -8336,13 +8346,6 @@ class CommandFactory {
|
|
|
8336
8346
|
}
|
|
8337
8347
|
}
|
|
8338
8348
|
|
|
8339
|
-
class Sort {
|
|
8340
|
-
constructor() {
|
|
8341
|
-
this.fldIdx = 0;
|
|
8342
|
-
this.dir = false;
|
|
8343
|
-
}
|
|
8344
|
-
}
|
|
8345
|
-
|
|
8346
8349
|
var ParamParseResult;
|
|
8347
8350
|
(function (ParamParseResult) {
|
|
8348
8351
|
ParamParseResult[ParamParseResult["OK"] = 0] = "OK";
|
|
@@ -8448,7 +8451,7 @@ class MirrorPrmMap extends PrmMap {
|
|
|
8448
8451
|
while (this.mirrorFromXML(parser.getNextTag(), parser)) {
|
|
8449
8452
|
}
|
|
8450
8453
|
}
|
|
8451
|
-
|
|
8454
|
+
RestoreParams(xml) {
|
|
8452
8455
|
let parser = new XmlParser(xml);
|
|
8453
8456
|
while (this.mirrorFromXML(parser.getNextTag(), parser)) {
|
|
8454
8457
|
}
|
|
@@ -9920,8 +9923,7 @@ class MirrorString {
|
|
|
9920
9923
|
this._reserved = false;
|
|
9921
9924
|
}
|
|
9922
9925
|
mirrorToXML() {
|
|
9923
|
-
return ConstInterface.MG_ATTR_ENV_VALUE + "=\"" + XmlParser.escape(this._value) + "\"
|
|
9924
|
-
ConstInterface.MG_ATTR_ENV_WRITEINI + "=F";
|
|
9926
|
+
return ConstInterface.MG_ATTR_ENV_VALUE + "=\"" + XmlParser.escape(this._value) + "\"";
|
|
9925
9927
|
}
|
|
9926
9928
|
init(name, xmlParser) {
|
|
9927
9929
|
let valueStart, valueEnd, reserveStart, paramEnd;
|
|
@@ -11497,11 +11499,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
|
|
|
11497
11499
|
val1 = valStack.pop();
|
|
11498
11500
|
this.eval_op_eoy(resVal, val1);
|
|
11499
11501
|
break;
|
|
11500
|
-
case ExpressionInterface.EXP_OP_ROLLBACK:
|
|
11501
|
-
val2 = valStack.pop();
|
|
11502
|
-
val1 = valStack.pop();
|
|
11503
|
-
yield this.eval_op_rollback(resVal);
|
|
11504
|
-
break;
|
|
11505
11502
|
case ExpressionInterface.EXP_OP_VARSET:
|
|
11506
11503
|
val2 = valStack.pop();
|
|
11507
11504
|
val1 = valStack.pop();
|
|
@@ -11866,41 +11863,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
|
|
|
11866
11863
|
val1 = valStack.pop();
|
|
11867
11864
|
this.eval_op_taskType(resVal, val1);
|
|
11868
11865
|
break;
|
|
11869
|
-
case ExpressionInterface.EXP_OP_RANGE_ADD:
|
|
11870
|
-
nArgs = valStack.pop();
|
|
11871
|
-
if (nArgs > 0) {
|
|
11872
|
-
Exp_params = new Array(nArgs);
|
|
11873
|
-
for (j = 0; j < nArgs; j++)
|
|
11874
|
-
Exp_params[nArgs - 1 - j] = valStack.pop();
|
|
11875
|
-
yield this.eval_op_range_add(resVal, Exp_params);
|
|
11876
|
-
}
|
|
11877
|
-
break;
|
|
11878
|
-
case ExpressionInterface.EXP_OP_RANGE_RESET:
|
|
11879
|
-
val1 = valStack.pop();
|
|
11880
|
-
yield this.eval_op_range_reset(resVal, val1);
|
|
11881
|
-
break;
|
|
11882
|
-
case ExpressionInterface.EXP_OP_LOCATE_ADD:
|
|
11883
|
-
nArgs = valStack.pop();
|
|
11884
|
-
if (nArgs > 0) {
|
|
11885
|
-
Exp_params = new Array(nArgs);
|
|
11886
|
-
for (j = 0; j < nArgs; j++)
|
|
11887
|
-
Exp_params[nArgs - 1 - j] = valStack.pop();
|
|
11888
|
-
yield this.eval_op_locate_add(resVal, Exp_params);
|
|
11889
|
-
}
|
|
11890
|
-
break;
|
|
11891
|
-
case ExpressionInterface.EXP_OP_LOCATE_RESET:
|
|
11892
|
-
val1 = valStack.pop();
|
|
11893
|
-
yield this.eval_op_locate_reset(resVal, val1);
|
|
11894
|
-
break;
|
|
11895
|
-
case ExpressionInterface.EXP_OP_SORT_ADD:
|
|
11896
|
-
val2 = valStack.pop();
|
|
11897
|
-
val1 = valStack.pop();
|
|
11898
|
-
yield this.eval_op_sort_add(resVal, val1, val2);
|
|
11899
|
-
break;
|
|
11900
|
-
case ExpressionInterface.EXP_OP_SORT_RESET:
|
|
11901
|
-
val1 = valStack.pop();
|
|
11902
|
-
yield this.eval_op_sort_reset(resVal, val1);
|
|
11903
|
-
break;
|
|
11904
11866
|
case ExpressionInterface.EXP_OP_TSK_INSTANCE:
|
|
11905
11867
|
val1 = valStack.pop();
|
|
11906
11868
|
this.eval_op_tsk_instance(resVal, val1);
|
|
@@ -13569,14 +13531,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
|
|
|
13569
13531
|
yield fld.updateDisplay();
|
|
13570
13532
|
});
|
|
13571
13533
|
}
|
|
13572
|
-
eval_op_rollback(resVal) {
|
|
13573
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
13574
|
-
let task = this.ExpTask.GetContextTask() || this.ExpTask;
|
|
13575
|
-
yield AccessHelper.eventsManager.handleInternalEventWithTask(task, InternalInterface.MG_ACT_ROLLBACK);
|
|
13576
|
-
resVal.Attr = StorageAttribute.BOOLEAN;
|
|
13577
|
-
resVal.BoolVal = true;
|
|
13578
|
-
});
|
|
13579
|
-
}
|
|
13580
13534
|
eval_op_like(source, maskOrg, resVal) {
|
|
13581
13535
|
let i;
|
|
13582
13536
|
let j;
|
|
@@ -14137,75 +14091,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
|
|
|
14137
14091
|
resultStr.Replace('\\@', '@');
|
|
14138
14092
|
resVal.StrVal = resultStr.ToString();
|
|
14139
14093
|
}
|
|
14140
|
-
eval_op_range_add(resVal, Exp_params) {
|
|
14141
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
14142
|
-
resVal.Attr = StorageAttribute.BOOLEAN;
|
|
14143
|
-
resVal.BoolVal = yield this.add_rt_ranges(Exp_params, false);
|
|
14144
|
-
});
|
|
14145
|
-
}
|
|
14146
|
-
eval_op_range_reset(resVal, parent) {
|
|
14147
|
-
const _super = Object.create(null, {
|
|
14148
|
-
GetContextTask: { get: () => super.GetContextTask }
|
|
14149
|
-
});
|
|
14150
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
14151
|
-
resVal.Attr = StorageAttribute.BOOLEAN;
|
|
14152
|
-
let iParent = parent.MgNumVal.NUM_2_LONG();
|
|
14153
|
-
if ((iParent >= 0 && iParent < (this.ExpTask.getTaskDepth(false))) || iParent === ExpressionEvaluator.TRIGGER_TASK) {
|
|
14154
|
-
let task = _super.GetContextTask.call(this, iParent);
|
|
14155
|
-
if (task !== null) {
|
|
14156
|
-
let command = CommandFactory.CreateDataViewCommand(task.getTaskTag(), DataViewCommandType.ResetUserRange);
|
|
14157
|
-
yield task.DataviewManager.Execute(command);
|
|
14158
|
-
resVal.BoolVal = true;
|
|
14159
|
-
}
|
|
14160
|
-
}
|
|
14161
|
-
});
|
|
14162
|
-
}
|
|
14163
|
-
eval_op_locate_add(resVal, Exp_params) {
|
|
14164
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
14165
|
-
resVal.Attr = StorageAttribute.BOOLEAN;
|
|
14166
|
-
resVal.BoolVal = yield this.add_rt_ranges(Exp_params, true);
|
|
14167
|
-
});
|
|
14168
|
-
}
|
|
14169
|
-
eval_op_locate_reset(resVal, parent) {
|
|
14170
|
-
const _super = Object.create(null, {
|
|
14171
|
-
GetContextTask: { get: () => super.GetContextTask }
|
|
14172
|
-
});
|
|
14173
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
14174
|
-
resVal.Attr = StorageAttribute.BOOLEAN;
|
|
14175
|
-
let iParent = parent.MgNumVal.NUM_2_LONG();
|
|
14176
|
-
if ((iParent >= 0 && iParent < (this.ExpTask.getTaskDepth(false))) || iParent === ExpressionEvaluator.TRIGGER_TASK) {
|
|
14177
|
-
let task = _super.GetContextTask.call(this, iParent);
|
|
14178
|
-
if (task !== null) {
|
|
14179
|
-
let command = CommandFactory.CreateDataViewCommand(task.getTaskTag(), DataViewCommandType.ResetUserLocate);
|
|
14180
|
-
yield task.DataviewManager.Execute(command);
|
|
14181
|
-
resVal.BoolVal = true;
|
|
14182
|
-
}
|
|
14183
|
-
}
|
|
14184
|
-
});
|
|
14185
|
-
}
|
|
14186
|
-
eval_op_sort_add(resVal, varnum, dir) {
|
|
14187
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
14188
|
-
resVal.Attr = StorageAttribute.BOOLEAN;
|
|
14189
|
-
resVal.BoolVal = yield this.add_sort(varnum, dir);
|
|
14190
|
-
});
|
|
14191
|
-
}
|
|
14192
|
-
eval_op_sort_reset(resVal, parent) {
|
|
14193
|
-
const _super = Object.create(null, {
|
|
14194
|
-
GetContextTask: { get: () => super.GetContextTask }
|
|
14195
|
-
});
|
|
14196
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
14197
|
-
resVal.Attr = StorageAttribute.BOOLEAN;
|
|
14198
|
-
let iParent = parent.MgNumVal.NUM_2_LONG();
|
|
14199
|
-
if ((iParent >= 0 && iParent < (this.ExpTask.getTaskDepth(false))) || iParent === ExpressionEvaluator.TRIGGER_TASK) {
|
|
14200
|
-
let task = _super.GetContextTask.call(this, iParent);
|
|
14201
|
-
if (task !== null) {
|
|
14202
|
-
let command = CommandFactory.CreateDataViewCommand(task.getTaskTag(), DataViewCommandType.ResetUserSort);
|
|
14203
|
-
yield task.DataviewManager.Execute(command);
|
|
14204
|
-
resVal.BoolVal = true;
|
|
14205
|
-
}
|
|
14206
|
-
}
|
|
14207
|
-
});
|
|
14208
|
-
}
|
|
14209
14094
|
eval_op_tsk_instance(resVal, Parent) {
|
|
14210
14095
|
let tag = 0;
|
|
14211
14096
|
let iParent = Parent.MgNumVal.NUM_2_LONG();
|
|
@@ -14219,88 +14104,6 @@ class ExpressionEvaluator extends GuiExpressionEvaluator {
|
|
|
14219
14104
|
resVal.MgNumVal = new NUM_TYPE();
|
|
14220
14105
|
resVal.MgNumVal.NUM_4_LONG(tag);
|
|
14221
14106
|
}
|
|
14222
|
-
add_sort(varnum, dir) {
|
|
14223
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
14224
|
-
if (varnum.MgNumVal === null)
|
|
14225
|
-
return false;
|
|
14226
|
-
let itm = varnum.MgNumVal.NUM_2_LONG();
|
|
14227
|
-
if (itm === 0)
|
|
14228
|
-
return false;
|
|
14229
|
-
let fld = this.GetFieldOfContextTask(itm);
|
|
14230
|
-
if (fld === null)
|
|
14231
|
-
return false;
|
|
14232
|
-
let task = fld.getTask();
|
|
14233
|
-
let vee_idx = fld.getId() + 1;
|
|
14234
|
-
let expr_64 = new Sort();
|
|
14235
|
-
expr_64.fldIdx = vee_idx;
|
|
14236
|
-
expr_64.dir = dir.BoolVal;
|
|
14237
|
-
let sort = expr_64;
|
|
14238
|
-
let command = CommandFactory.CreateAddUserSortDataviewCommand(task.getTaskTag(), sort);
|
|
14239
|
-
yield task.DataviewManager.Execute(command);
|
|
14240
|
-
return true;
|
|
14241
|
-
});
|
|
14242
|
-
}
|
|
14243
|
-
add_rt_ranges(Exp_params, locate) {
|
|
14244
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
14245
|
-
let varnum = Exp_params[0];
|
|
14246
|
-
let min = Exp_params[1];
|
|
14247
|
-
if (varnum.MgNumVal === null)
|
|
14248
|
-
return false;
|
|
14249
|
-
let itm = varnum.MgNumVal.NUM_2_LONG();
|
|
14250
|
-
if (itm === 0)
|
|
14251
|
-
return false;
|
|
14252
|
-
let fld = this.GetFieldOfContextTask(itm);
|
|
14253
|
-
if (fld === null)
|
|
14254
|
-
return false;
|
|
14255
|
-
let task = fld.getTask();
|
|
14256
|
-
let vee_idx = fld.getId() + 1;
|
|
14257
|
-
let expr_78 = new UserRange();
|
|
14258
|
-
expr_78.veeIdx = vee_idx;
|
|
14259
|
-
let rng = expr_78;
|
|
14260
|
-
if (min.IsNull)
|
|
14261
|
-
rng.nullMin = true;
|
|
14262
|
-
if (!rng.nullMin && (min.Attr === StorageAttribute.ALPHA || min.Attr === StorageAttribute.UNICODE) && min.StrVal.length === 0)
|
|
14263
|
-
rng.discardMin = true;
|
|
14264
|
-
else {
|
|
14265
|
-
if (!rng.nullMin) {
|
|
14266
|
-
if (!StorageAttributeCheck.isTheSameType(fld.getType(), min.Attr))
|
|
14267
|
-
return false;
|
|
14268
|
-
if (StorageAttributeCheck.StorageFldAlphaUnicodeOrBlob(fld.getType(), min.Attr))
|
|
14269
|
-
this.ConvertExpVal(min, fld.getType());
|
|
14270
|
-
rng.min = min.ToMgVal();
|
|
14271
|
-
}
|
|
14272
|
-
}
|
|
14273
|
-
if (Exp_params.length === 3) {
|
|
14274
|
-
let max = Exp_params[2];
|
|
14275
|
-
if (max.IsNull)
|
|
14276
|
-
rng.nullMax = true;
|
|
14277
|
-
if (!rng.nullMax && (max.Attr === StorageAttribute.ALPHA || max.Attr === StorageAttribute.UNICODE) && max.StrVal.length === 0)
|
|
14278
|
-
rng.discardMax = true;
|
|
14279
|
-
else {
|
|
14280
|
-
if (!rng.nullMax) {
|
|
14281
|
-
if (!StorageAttributeCheck.isTheSameType(fld.getType(), max.Attr))
|
|
14282
|
-
return false;
|
|
14283
|
-
if (StorageAttributeCheck.StorageFldAlphaUnicodeOrBlob(fld.getType(), max.Attr))
|
|
14284
|
-
this.ConvertExpVal(max, fld.getType());
|
|
14285
|
-
rng.max = max.ToMgVal();
|
|
14286
|
-
}
|
|
14287
|
-
}
|
|
14288
|
-
}
|
|
14289
|
-
else
|
|
14290
|
-
rng.discardMax = true;
|
|
14291
|
-
if (!rng.discardMin || !rng.discardMax) {
|
|
14292
|
-
if (locate) {
|
|
14293
|
-
let command = CommandFactory.CreateAddUserLocateDataviewCommand(task.getTaskTag(), rng);
|
|
14294
|
-
yield task.DataviewManager.Execute(command);
|
|
14295
|
-
}
|
|
14296
|
-
else {
|
|
14297
|
-
let command2 = CommandFactory.CreateAddUserRangeDataviewCommand(task.getTaskTag(), rng);
|
|
14298
|
-
yield task.DataviewManager.Execute(command2);
|
|
14299
|
-
}
|
|
14300
|
-
}
|
|
14301
|
-
return true;
|
|
14302
|
-
});
|
|
14303
|
-
}
|
|
14304
14107
|
eval_op_getParam(resVal, name) {
|
|
14305
14108
|
Debug.Assert(!name.IsNull && name.StrVal !== null);
|
|
14306
14109
|
let expVal = GlobalParams.Instance.get(name.StrVal);
|
|
@@ -19636,6 +19439,13 @@ class DataviewManager extends DataviewManagerBase {
|
|
|
19636
19439
|
}
|
|
19637
19440
|
}
|
|
19638
19441
|
|
|
19442
|
+
class Sort {
|
|
19443
|
+
constructor() {
|
|
19444
|
+
this.fldIdx = 0;
|
|
19445
|
+
this.dir = false;
|
|
19446
|
+
}
|
|
19447
|
+
}
|
|
19448
|
+
|
|
19639
19449
|
class SortCollection {
|
|
19640
19450
|
constructor() {
|
|
19641
19451
|
this._sortTab = null;
|
|
@@ -19871,11 +19681,7 @@ class MgForm extends MgFormBase {
|
|
|
19871
19681
|
this.GetDataview().setTopRecIdxModified(true);
|
|
19872
19682
|
try {
|
|
19873
19683
|
this._suffixDone = false;
|
|
19874
|
-
|
|
19875
|
-
if (unit === Constants.MOVE_UNIT_PAGE && this.isLineMode())
|
|
19876
|
-
if (newDisplayLine > this.GetDataview().getSize() - 1)
|
|
19877
|
-
visibleLine -= newDisplayLine - (this.GetDataview().getSize() - 1);
|
|
19878
|
-
yield this.setCurrRowByDisplayLine(newDisplayLine, true, false);
|
|
19684
|
+
yield this.setCurrRowByDisplayLine(this.GetDataview().getCurrRecIdx() + size, true, false);
|
|
19879
19685
|
this.GetDataview().setTopRecIdxModified(false);
|
|
19880
19686
|
yield this.RefreshDisplay(Constants.TASK_REFRESH_FORM);
|
|
19881
19687
|
}
|
|
@@ -19915,6 +19721,7 @@ class MgForm extends MgFormBase {
|
|
|
19915
19721
|
try {
|
|
19916
19722
|
yield this.RefreshDisplay(Constants.TASK_REFRESH_FORM);
|
|
19917
19723
|
yield this.setCurrRowByDisplayLine(this.GetDataview().getTopRecIdx() + this.getLastValidRow(), false, true);
|
|
19724
|
+
visibleLine = this.getLastValidRow();
|
|
19918
19725
|
}
|
|
19919
19726
|
catch (Exception) {
|
|
19920
19727
|
}
|
|
@@ -30432,7 +30239,7 @@ class CommandsTable {
|
|
|
30432
30239
|
}
|
|
30433
30240
|
}
|
|
30434
30241
|
|
|
30435
|
-
let CurrentClientVersion = '4.1000.0-
|
|
30242
|
+
let CurrentClientVersion = '4.1000.0-dev4100.100';
|
|
30436
30243
|
|
|
30437
30244
|
class ClientManager {
|
|
30438
30245
|
constructor() {
|