@plait/core 0.0.55 → 0.0.56
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.
|
@@ -16,11 +16,20 @@ export const inverse = (op) => {
|
|
|
16
16
|
if (Path.equals(newPath, path)) {
|
|
17
17
|
return op;
|
|
18
18
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
|
|
19
|
+
// when operation path is [0,0] -> [0,2], should exec Path.transform to get [0,1] -> [0,0]
|
|
20
|
+
// shoud not return [0,2] -> [0,0] #WIK-8981
|
|
21
|
+
// if (Path.isSibling(path, newPath)) {
|
|
22
|
+
// return { ...op, path: newPath, newPath: path };
|
|
23
|
+
// }
|
|
24
|
+
// If the move does not happen within a single parent it is possible
|
|
25
|
+
// for the move to impact the true path to the location where the node
|
|
26
|
+
// was removed from and where it was inserted. We have to adjust for this
|
|
27
|
+
// and find the original path. We can accomplish this (only in non-sibling)
|
|
28
|
+
// moves by looking at the impact of the move operation on the node
|
|
29
|
+
// after the original move path.
|
|
30
|
+
const inversePath = Path.transform(path, op);
|
|
31
|
+
const inverseNewPath = Path.transform(Path.next(path), op);
|
|
32
|
+
return { ...op, path: inversePath, newPath: inverseNewPath };
|
|
24
33
|
}
|
|
25
34
|
case 'set_node': {
|
|
26
35
|
const { properties, newProperties } = op;
|
|
@@ -72,4 +81,4 @@ export const PlaitOperation = {
|
|
|
72
81
|
isSetViewportOperation,
|
|
73
82
|
inverse
|
|
74
83
|
};
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL2ludGVyZmFjZXMvb3BlcmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFzRDlCLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsS0FBVSxFQUFpQyxFQUFFO0lBQ2hGLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxjQUFjLENBQUM7QUFDekMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsRUFBa0IsRUFBa0IsRUFBRTtJQUMxRCxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUU7UUFDYixLQUFLLGFBQWEsQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUM7U0FDekM7UUFFRCxLQUFLLGFBQWEsQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUM7U0FDekM7UUFFRCxLQUFLLFdBQVcsQ0FBQyxDQUFDO1lBQ2QsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFFN0IsNERBQTREO1lBQzVELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQzVCLE9BQU8sRUFBRSxDQUFDO2FBQ2I7WUFFRCwwRkFBMEY7WUFDMUYsNENBQTRDO1lBQzVDLHVDQUF1QztZQUN2QyxzREFBc0Q7WUFDdEQsSUFBSTtZQUVKLG9FQUFvRTtZQUNwRSxzRUFBc0U7WUFDdEUseUVBQXlFO1lBQ3pFLDJFQUEyRTtZQUMzRSxtRUFBbUU7WUFDbkUsZ0NBQWdDO1lBQ2hDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBRSxDQUFDO1lBQzlDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUUsQ0FBQztZQUM1RCxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLENBQUM7U0FDaEU7UUFFRCxLQUFLLFVBQVUsQ0FBQyxDQUFDO1lBQ2IsTUFBTSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDekMsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxDQUFDO1NBQzFFO1FBRUQsS0FBSyxlQUFlLENBQUMsQ0FBQztZQUNsQixNQUFNLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUV6QyxJQUFJLFVBQVUsSUFBSSxJQUFJLEVBQUU7Z0JBQ3BCLE9BQU87b0JBQ0gsR0FBRyxFQUFFO29CQUNMLFVBQVUsRUFBRSxhQUFhO29CQUN6QixhQUFhLEVBQUUsSUFBSTtpQkFDdEIsQ0FBQzthQUNMO2lCQUFNLElBQUksYUFBYSxJQUFJLElBQUksRUFBRTtnQkFDOUIsT0FBTztvQkFDSCxHQUFHLEVBQUU7b0JBQ0wsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGFBQWEsRUFBRSxVQUFVO2lCQUM1QixDQUFDO2FBQ0w7aUJBQU07Z0JBQ0gsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxDQUFDO2FBQzFFO1NBQ0o7UUFFRCxLQUFLLGNBQWMsQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ3pDLElBQUksVUFBVSxJQUFJLElBQUksRUFBRTtnQkFDcEIsT0FBTztvQkFDSCxHQUFHLEVBQUU7b0JBQ0wsVUFBVSxFQUFFLGFBQWE7b0JBQ3pCLGFBQWEsRUFBRSxhQUFhO2lCQUMvQixDQUFDO2FBQ0w7aUJBQU0sSUFBSSxhQUFhLElBQUksSUFBSSxFQUFFO2dCQUM5QixPQUFPO29CQUNILEdBQUcsRUFBRTtvQkFDTCxVQUFVLEVBQUUsVUFBVTtvQkFDdEIsYUFBYSxFQUFFLFVBQVU7aUJBQzVCLENBQUM7YUFDTDtpQkFBTTtnQkFDSCxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLENBQUM7YUFDMUU7U0FDSjtLQUNKO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUE0QjtJQUNuRCxzQkFBc0I7SUFDdEIsT0FBTztDQUNWLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdE5vZGUgfSBmcm9tICcuL25vZGUnO1xuaW1wb3J0IHsgUGF0aCB9IGZyb20gJy4vcGF0aCc7XG5pbXBvcnQgeyBTZWxlY3Rpb24gfSBmcm9tICcuL3NlbGVjdGlvbic7XG5pbXBvcnQgeyBWaWV3cG9ydCB9IGZyb20gJy4vdmlld3BvcnQnO1xuXG5leHBvcnQgdHlwZSBJbnNlcnROb2RlT3BlcmF0aW9uID0ge1xuICAgIHR5cGU6ICdpbnNlcnRfbm9kZSc7XG4gICAgcGF0aDogUGF0aDtcbiAgICBub2RlOiBQbGFpdE5vZGU7XG59O1xuXG5leHBvcnQgdHlwZSBSZW1vdmVOb2RlT3BlcmF0aW9uID0ge1xuICAgIHR5cGU6ICdyZW1vdmVfbm9kZSc7XG4gICAgcGF0aDogUGF0aDtcbiAgICBub2RlOiBQbGFpdE5vZGU7XG59O1xuXG5leHBvcnQgdHlwZSBNb3ZlTm9kZU9wZXJhdGlvbiA9IHtcbiAgICB0eXBlOiAnbW92ZV9ub2RlJztcbiAgICBwYXRoOiBQYXRoO1xuICAgIG5ld1BhdGg6IFBhdGg7XG59O1xuXG5leHBvcnQgdHlwZSBTZXRWaWV3cG9ydE9wZXJhdGlvbiA9IHtcbiAgICB0eXBlOiAnc2V0X3ZpZXdwb3J0JztcbiAgICBwcm9wZXJ0aWVzOiBQYXJ0aWFsPFZpZXdwb3J0PjtcbiAgICBuZXdQcm9wZXJ0aWVzOiBQYXJ0aWFsPFZpZXdwb3J0Pjtcbn07XG5cbmV4cG9ydCB0eXBlIFNldFNlbGVjdGlvbk9wZXJhdGlvbiA9IHtcbiAgICB0eXBlOiAnc2V0X3NlbGVjdGlvbic7XG4gICAgcHJvcGVydGllczogU2VsZWN0aW9uIHwgbnVsbDtcbiAgICBuZXdQcm9wZXJ0aWVzOiBTZWxlY3Rpb24gfCBudWxsO1xufTtcblxuZXhwb3J0IHR5cGUgU2V0Tm9kZU9wZXJhdGlvbiA9IHtcbiAgICB0eXBlOiAnc2V0X25vZGUnO1xuICAgIHBhdGg6IFBhdGg7XG4gICAgcHJvcGVydGllczogUGFydGlhbDxQbGFpdE5vZGU+O1xuICAgIG5ld1Byb3BlcnRpZXM6IFBhcnRpYWw8UGxhaXROb2RlPjtcbn07XG5cbmV4cG9ydCB0eXBlIFBsYWl0T3BlcmF0aW9uID1cbiAgICB8IEluc2VydE5vZGVPcGVyYXRpb25cbiAgICB8IFNldFZpZXdwb3J0T3BlcmF0aW9uXG4gICAgfCBTZXRTZWxlY3Rpb25PcGVyYXRpb25cbiAgICB8IFNldE5vZGVPcGVyYXRpb25cbiAgICB8IFJlbW92ZU5vZGVPcGVyYXRpb25cbiAgICB8IE1vdmVOb2RlT3BlcmF0aW9uO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWl0T3BlcmF0aW9uSW50ZXJmYWNlIHtcbiAgICBpbnZlcnNlOiAob3A6IFBsYWl0T3BlcmF0aW9uKSA9PiBQbGFpdE9wZXJhdGlvbjtcbiAgICBpc1NldFZpZXdwb3J0T3BlcmF0aW9uOiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGlzU2V0Vmlld3BvcnRPcGVyYXRpb24gPSAodmFsdWU6IGFueSk6IHZhbHVlIGlzIFNldFZpZXdwb3J0T3BlcmF0aW9uID0+IHtcbiAgICByZXR1cm4gdmFsdWUudHlwZSA9PT0gJ3NldF92aWV3cG9ydCc7XG59O1xuXG5leHBvcnQgY29uc3QgaW52ZXJzZSA9IChvcDogUGxhaXRPcGVyYXRpb24pOiBQbGFpdE9wZXJhdGlvbiA9PiB7XG4gICAgc3dpdGNoIChvcC50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2luc2VydF9ub2RlJzoge1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4ub3AsIHR5cGU6ICdyZW1vdmVfbm9kZScgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgJ3JlbW92ZV9ub2RlJzoge1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4ub3AsIHR5cGU6ICdpbnNlcnRfbm9kZScgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgJ21vdmVfbm9kZSc6IHtcbiAgICAgICAgICAgIGNvbnN0IHsgbmV3UGF0aCwgcGF0aCB9ID0gb3A7XG5cbiAgICAgICAgICAgIC8vIFBFUkY6IGluIHRoaXMgY2FzZSB0aGUgbW92ZSBvcGVyYXRpb24gaXMgYSBuby1vcCBhbnl3YXlzLlxuICAgICAgICAgICAgaWYgKFBhdGguZXF1YWxzKG5ld1BhdGgsIHBhdGgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyB3aGVuIG9wZXJhdGlvbiBwYXRoIGlzIFswLDBdIC0+IFswLDJdLCBzaG91bGQgZXhlYyBQYXRoLnRyYW5zZm9ybSB0byBnZXQgWzAsMV0gLT4gWzAsMF1cbiAgICAgICAgICAgIC8vIHNob3VkIG5vdCByZXR1cm4gWzAsMl0gLT4gWzAsMF0gI1dJSy04OTgxXG4gICAgICAgICAgICAvLyBpZiAoUGF0aC5pc1NpYmxpbmcocGF0aCwgbmV3UGF0aCkpIHtcbiAgICAgICAgICAgIC8vICAgICByZXR1cm4geyAuLi5vcCwgcGF0aDogbmV3UGF0aCwgbmV3UGF0aDogcGF0aCB9O1xuICAgICAgICAgICAgLy8gfVxuXG4gICAgICAgICAgICAvLyBJZiB0aGUgbW92ZSBkb2VzIG5vdCBoYXBwZW4gd2l0aGluIGEgc2luZ2xlIHBhcmVudCBpdCBpcyBwb3NzaWJsZVxuICAgICAgICAgICAgLy8gZm9yIHRoZSBtb3ZlIHRvIGltcGFjdCB0aGUgdHJ1ZSBwYXRoIHRvIHRoZSBsb2NhdGlvbiB3aGVyZSB0aGUgbm9kZVxuICAgICAgICAgICAgLy8gd2FzIHJlbW92ZWQgZnJvbSBhbmQgd2hlcmUgaXQgd2FzIGluc2VydGVkLiBXZSBoYXZlIHRvIGFkanVzdCBmb3IgdGhpc1xuICAgICAgICAgICAgLy8gYW5kIGZpbmQgdGhlIG9yaWdpbmFsIHBhdGguIFdlIGNhbiBhY2NvbXBsaXNoIHRoaXMgKG9ubHkgaW4gbm9uLXNpYmxpbmcpXG4gICAgICAgICAgICAvLyBtb3ZlcyBieSBsb29raW5nIGF0IHRoZSBpbXBhY3Qgb2YgdGhlIG1vdmUgb3BlcmF0aW9uIG9uIHRoZSBub2RlXG4gICAgICAgICAgICAvLyBhZnRlciB0aGUgb3JpZ2luYWwgbW92ZSBwYXRoLlxuICAgICAgICAgICAgY29uc3QgaW52ZXJzZVBhdGggPSBQYXRoLnRyYW5zZm9ybShwYXRoLCBvcCkhO1xuICAgICAgICAgICAgY29uc3QgaW52ZXJzZU5ld1BhdGggPSBQYXRoLnRyYW5zZm9ybShQYXRoLm5leHQocGF0aCksIG9wKSE7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5vcCwgcGF0aDogaW52ZXJzZVBhdGgsIG5ld1BhdGg6IGludmVyc2VOZXdQYXRoIH07XG4gICAgICAgIH1cblxuICAgICAgICBjYXNlICdzZXRfbm9kZSc6IHtcbiAgICAgICAgICAgIGNvbnN0IHsgcHJvcGVydGllcywgbmV3UHJvcGVydGllcyB9ID0gb3A7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5vcCwgcHJvcGVydGllczogbmV3UHJvcGVydGllcywgbmV3UHJvcGVydGllczogcHJvcGVydGllcyB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSAnc2V0X3NlbGVjdGlvbic6IHtcbiAgICAgICAgICAgIGNvbnN0IHsgcHJvcGVydGllcywgbmV3UHJvcGVydGllcyB9ID0gb3A7XG5cbiAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5vcCxcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczogbmV3UHJvcGVydGllcyxcbiAgICAgICAgICAgICAgICAgICAgbmV3UHJvcGVydGllczogbnVsbFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG5ld1Byb3BlcnRpZXMgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLm9wLFxuICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBuZXdQcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgLi4ub3AsIHByb3BlcnRpZXM6IG5ld1Byb3BlcnRpZXMsIG5ld1Byb3BlcnRpZXM6IHByb3BlcnRpZXMgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgJ3NldF92aWV3cG9ydCc6IHtcbiAgICAgICAgICAgIGNvbnN0IHsgcHJvcGVydGllcywgbmV3UHJvcGVydGllcyB9ID0gb3A7XG4gICAgICAgICAgICBpZiAocHJvcGVydGllcyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4ub3AsXG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IG5ld1Byb3BlcnRpZXMsXG4gICAgICAgICAgICAgICAgICAgIG5ld1Byb3BlcnRpZXM6IG5ld1Byb3BlcnRpZXNcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChuZXdQcm9wZXJ0aWVzID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5vcCxcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczogcHJvcGVydGllcyxcbiAgICAgICAgICAgICAgICAgICAgbmV3UHJvcGVydGllczogcHJvcGVydGllc1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLm9wLCBwcm9wZXJ0aWVzOiBuZXdQcm9wZXJ0aWVzLCBuZXdQcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgUGxhaXRPcGVyYXRpb246IFBsYWl0T3BlcmF0aW9uSW50ZXJmYWNlID0ge1xuICAgIGlzU2V0Vmlld3BvcnRPcGVyYXRpb24sXG4gICAgaW52ZXJzZVxufTtcbiJdfQ==
|
|
@@ -132,8 +132,8 @@ export const Path = {
|
|
|
132
132
|
break;
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
|
-
return
|
|
135
|
+
return p;
|
|
136
136
|
});
|
|
137
137
|
}
|
|
138
138
|
};
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYWl0L3NyYy9pbnRlcmZhY2VzL3BhdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxPQUFPLE1BQU0sT0FBTyxDQUFDO0FBSzVCLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRztJQUNoQixNQUFNLENBQUMsSUFBVTtRQUNiLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsSUFBSSxJQUFJLENBQUMsQ0FBQztTQUM3RTtRQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBSSxDQUFDLElBQVU7UUFDWCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLElBQUksa0NBQWtDLENBQUMsQ0FBQztTQUN2RztRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFDRDs7T0FFRztJQUVILFVBQVUsQ0FBQyxJQUFVLEVBQUUsT0FBYTtRQUNoQyxPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUNEOzs7Ozs7O09BT0c7SUFDSCxPQUFPLENBQUMsSUFBVSxFQUFFLE9BQWE7UUFDN0IsTUFBTSxHQUFHLEdB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QyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUMxQjt5QkFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFO3dCQUMvQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFOzRCQUNyQixDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQzFCO3dCQUVELENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDekI7b0JBRUQsTUFBTTtpQkFDVDthQUNKO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwcm9kdWNlIGZyb20gJ2ltbWVyJztcbmltcG9ydCB7IFBsYWl0T3BlcmF0aW9uIH0gZnJvbSAnLi9vcGVyYXRpb24nO1xuXG5leHBvcnQgdHlwZSBQYXRoID0gbnVtYmVyW107XG5cbmV4cG9ydCBjb25zdCBQYXRoID0ge1xuICAgIHBhcmVudChwYXRoOiBQYXRoKTogUGF0aCB7XG4gICAgICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZ2V0IHRoZSBwYXJlbnQgcGF0aCBvZiB0aGUgcm9vdCBwYXRoIFske3BhdGh9XS5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXRoLnNsaWNlKDAsIC0xKTtcbiAgICB9LFxuICAgIG5leHQocGF0aDogUGF0aCk6IFBhdGgge1xuICAgICAgICBpZiAocGF0aC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGdldCB0aGUgbmV4dCBwYXRoIG9mIGEgcm9vdCBwYXRoIFske3BhdGh9XSwgYmVjYXVzZSBpdCBoYXMgbm8gbmV4dCBpbmRleC5gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsYXN0ID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdO1xuICAgICAgICByZXR1cm4gcGF0aC5zbGljZSgwLCAtMSkuY29uY2F0KGxhc3QgKyAxKTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGEgcGF0aCBpcyBhbiBhbmNlc3RvciBvZiBhbm90aGVyLlxuICAgICAqL1xuXG4gICAgaXNBbmNlc3RvcihwYXRoOiBQYXRoLCBhbm90aGVyOiBQYXRoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBwYXRoLmxlbmd0aCA8IGFub3RoZXIubGVuZ3RoICYmIFBhdGguY29tcGFyZShwYXRoLCBhbm90aGVyKSA9PT0gMDtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIENvbXBhcmUgYSBwYXRoIHRvIGFub3RoZXIsIHJldHVybmluZyBhbiBpbnRlZ2VyIGluZGljYXRpbmcgd2hldGhlciB0aGUgcGF0aFxuICAgICAqIHdhcyBiZWZvcmUsIGF0LCBvciBhZnRlciB0aGUgb3RoZXIuXG4gICAgICpcbiAgICAgKiBOb3RlOiBUd28gcGF0aHMgb2YgdW5lcXVhbCBsZW5ndGggY2FuIHN0aWxsIHJlY2VpdmUgYSBgMGAgcmVzdWx0IGlmIG9uZSBpc1xuICAgICAqIGRpcmVjdGx5IGFib3ZlIG9yIGJlbG93IHRoZSBvdGhlci4gSWYgeW91IHdhbnQgZXhhY3QgbWF0Y2hpbmcsIHVzZVxuICAgICAqIFtbUGF0aC5lcXVhbHNdXSBpbnN0ZWFkLlxuICAgICAqL1xuICAgIGNvbXBhcmUocGF0aDogUGF0aCwgYW5vdGhlcjogUGF0aCk6IC0xIHwgMCB8IDEge1xuICAgICAgICBjb25zdCBtaW4gPSBNYXRoLm1pbihwYXRoLmxlbmd0aCwgYW5vdGhlci5sZW5ndGgpO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWluOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChwYXRoW2ldIDwgYW5vdGhlcltpXSkgcmV0dXJuIC0xO1xuICAgICAgICAgICAgaWYgKHBhdGhbaV0gPiBhbm90aGVyW2ldKSByZXR1cm4gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAwO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiBhIHBhdGggaXMgZXhhY3RseSBlcXVhbCB0byBhbm90aGVyLlxuICAgICAqL1xuXG4gICAgZXF1YWxzKHBhdGg6IFBhdGgsIGFub3RoZXI6IFBhdGgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHBhdGgubGVuZ3RoID09PSBhbm90aGVyLmxlbmd0aCAmJiBwYXRoLmV2ZXJ5KChuLCBpKSA9PiBuID09PSBhbm90aGVyW2ldKTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGEgcGF0aCBlbmRzIGJlZm9yZSBvbmUgb2YgdGhlIGluZGV4ZXMgaW4gYW5vdGhlci5cbiAgICAgKi9cblxuICAgIGVuZHNCZWZvcmUocGF0aDogUGF0aCwgYW5vdGhlcjogUGF0aCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBpID0gcGF0aC5sZW5ndGggLSAxO1xuICAgICAgICBjb25zdCBhcyA9IHBhdGguc2xpY2UoMCwgaSk7XG4gICAgICAgIGNvbnN0IGJzID0gYW5vdGhlci5zbGljZSgwLCBpKTtcbiAgICAgICAgY29uc3QgYXYgPSBwYXRoW2ldO1xuICAgICAgICBjb25zdCBidiA9IGFub3RoZXJbaV07XG4gICAgICAgIHJldHVybiBQYXRoLmVxdWFscyhhcywgYnMpICYmIGF2IDwgYnY7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiBhIHBhdGggaXMgYSBzaWJsaW5nIG9mIGFub3RoZXIuXG4gICAgICovXG4gICAgaXNTaWJsaW5nKHBhdGg6IFBhdGgsIGFub3RoZXI6IFBhdGgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHBhdGgubGVuZ3RoICE9PSBhbm90aGVyLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXMgPSBwYXRoLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgY29uc3QgYnMgPSBhbm90aGVyLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgY29uc3QgYWwgPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XG4gICAgICAgIGNvbnN0IGJsID0gYW5vdGhlclthbm90aGVyLmxlbmd0aCAtIDFdO1xuICAgICAgICByZXR1cm4gYWwgIT09IGJsICYmIFBhdGguZXF1YWxzKGFzLCBicyk7XG4gICAgfSxcbiAgICB0cmFuc2Zvcm0ocGF0aDogUGF0aCB8IG51bGwsIG9wZXJhdGlvbjogUGxhaXRPcGVyYXRpb24pOiBQYXRoIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBwcm9kdWNlKHBhdGgsIHAgPT4ge1xuICAgICAgICAgICAgLy8gUEVSRjogRXhpdCBlYXJseSBpZiB0aGUgb3BlcmF0aW9uIGlzIGd1YXJhbnRlZWQgbm90IHRvIGhhdmUgYW4gZWZmZWN0LlxuICAgICAgICAgICAgaWYgKCFwYXRoIHx8IHBhdGg/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHAgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3dpdGNoIChvcGVyYXRpb24udHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2luc2VydF9ub2RlJzoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHBhdGg6IG9wIH0gPSBvcGVyYXRpb247XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKFBhdGguZXF1YWxzKG9wLCBwKSB8fCBQYXRoLmVuZHNCZWZvcmUob3AsIHApIHx8IFBhdGguaXNBbmNlc3RvcihvcCwgcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBbb3AubGVuZ3RoIC0gMV0gKz0gMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNhc2UgJ3JlbW92ZV9ub2RlJzoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHBhdGg6IG9wIH0gPSBvcGVyYXRpb247XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKFBhdGguZXF1YWxzKG9wLCBwKSB8fCBQYXRoLmlzQW5jZXN0b3Iob3AsIHApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChQYXRoLmVuZHNCZWZvcmUob3AsIHApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwW29wLmxlbmd0aCAtIDFdIC09IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjYXNlICdtb3ZlX25vZGUnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcGF0aDogb3AsIG5ld1BhdGg6IG9ucCB9ID0gb3BlcmF0aW9uO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBvbGQgYW5kIG5ldyBwYXRoIGFyZSB0aGUgc2FtZSwgaXQncyBhIG5vLW9wLlxuICAgICAgICAgICAgICAgICAgICBpZiAoUGF0aC5lcXVhbHMob3AsIG9ucCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChQYXRoLmlzQW5jZXN0b3Iob3AsIHApIHx8IFBhdGguZXF1YWxzKG9wLCBwKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29weSA9IG9ucC5zbGljZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3AubGVuZ3RoIDw9IG9ucC5sZW5ndGggaXMgZGlmZmVyZW50IGZvciBzbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVzb2x2ZSBkcmFnIGZyb20gWzAsIDBdIHRvIFswLCAzXSBpc3N1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFBhdGguZW5kc0JlZm9yZShvcCwgb25wKSAmJiBvcC5sZW5ndGggPD0gb25wLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHlbb3AubGVuZ3RoIC0gMV0gLT0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvcHkuY29uY2F0KHAuc2xpY2Uob3AubGVuZ3RoKSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoUGF0aC5pc1NpYmxpbmcob3AsIG9ucCkgJiYgKFBhdGguaXNBbmNlc3RvcihvbnAsIHApIHx8IFBhdGguZXF1YWxzKG9ucCwgcCkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoUGF0aC5lbmRzQmVmb3JlKG9wLCBwKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBbb3AubGVuZ3RoIC0gMV0gLT0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcFtvcC5sZW5ndGggLSAxXSArPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFBhdGguZW5kc0JlZm9yZShvbnAsIHApIHx8IFBhdGguZXF1YWxzKG9ucCwgcCkgfHwgUGF0aC5pc0FuY2VzdG9yKG9ucCwgcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChQYXRoLmVuZHNCZWZvcmUob3AsIHApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcFtvcC5sZW5ndGggLSAxXSAtPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBwW29ucC5sZW5ndGggLSAxXSArPSAxO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFBhdGguZW5kc0JlZm9yZShvcCwgcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChQYXRoLmVxdWFscyhvbnAsIHApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcFtvbnAubGVuZ3RoIC0gMV0gKz0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcFtvcC5sZW5ndGggLSAxXSAtPSAxO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0pO1xuICAgIH1cbn07XG4iXX0=
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYWl0L3NyYy9pbnRlcmZhY2VzL3BhdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxPQUFPLE1BQU0sT0FBTyxDQUFDO0FBSzVCLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRztJQUNoQixNQUFNLENBQUMsSUFBVTtRQUNiLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsSUFBSSxJQUFJLENBQUMsQ0FBQztTQUM3RTtRQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBSSxDQUFDLElBQVU7UUFDWCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLElBQUksa0NBQWtDLENBQUMsQ0FBQztTQUN2RztRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFDRDs7T0FFRztJQUVILFVBQVUsQ0FBQyxJQUFVLEVBQUUsT0FBYTtRQUNoQyxPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUNEOzs7Ozs7O09BT0c7SUFDSCxPQUFPLENBQUMsSUFBVSxFQUFFLE9BQWE7UUFDN0IsTUFBTSxHQUFHLEdB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QyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUMxQjt5QkFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFO3dCQUMvQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFOzRCQUNyQixDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQzFCO3dCQUVELENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDekI7b0JBRUQsTUFBTTtpQkFDVDthQUNKO1lBQ0QsT0FBTyxDQUFDLENBQUM7UUFDYixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHByb2R1Y2UgZnJvbSAnaW1tZXInO1xuaW1wb3J0IHsgUGxhaXRPcGVyYXRpb24gfSBmcm9tICcuL29wZXJhdGlvbic7XG5cbmV4cG9ydCB0eXBlIFBhdGggPSBudW1iZXJbXTtcblxuZXhwb3J0IGNvbnN0IFBhdGggPSB7XG4gICAgcGFyZW50KHBhdGg6IFBhdGgpOiBQYXRoIHtcbiAgICAgICAgaWYgKHBhdGgubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBnZXQgdGhlIHBhcmVudCBwYXRoIG9mIHRoZSByb290IHBhdGggWyR7cGF0aH1dLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhdGguc2xpY2UoMCwgLTEpO1xuICAgIH0sXG4gICAgbmV4dChwYXRoOiBQYXRoKTogUGF0aCB7XG4gICAgICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZ2V0IHRoZSBuZXh0IHBhdGggb2YgYSByb290IHBhdGggWyR7cGF0aH1dLCBiZWNhdXNlIGl0IGhhcyBubyBuZXh0IGluZGV4LmApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxhc3QgPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XG4gICAgICAgIHJldHVybiBwYXRoLnNsaWNlKDAsIC0xKS5jb25jYXQobGFzdCArIDEpO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgYSBwYXRoIGlzIGFuIGFuY2VzdG9yIG9mIGFub3RoZXIuXG4gICAgICovXG5cbiAgICBpc0FuY2VzdG9yKHBhdGg6IFBhdGgsIGFub3RoZXI6IFBhdGgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHBhdGgubGVuZ3RoIDwgYW5vdGhlci5sZW5ndGggJiYgUGF0aC5jb21wYXJlKHBhdGgsIGFub3RoZXIpID09PSAwO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogQ29tcGFyZSBhIHBhdGggdG8gYW5vdGhlciwgcmV0dXJuaW5nIGFuIGludGVnZXIgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBwYXRoXG4gICAgICogd2FzIGJlZm9yZSwgYXQsIG9yIGFmdGVyIHRoZSBvdGhlci5cbiAgICAgKlxuICAgICAqIE5vdGU6IFR3byBwYXRocyBvZiB1bmVxdWFsIGxlbmd0aCBjYW4gc3RpbGwgcmVjZWl2ZSBhIGAwYCByZXN1bHQgaWYgb25lIGlzXG4gICAgICogZGlyZWN0bHkgYWJvdmUgb3IgYmVsb3cgdGhlIG90aGVyLiBJZiB5b3Ugd2FudCBleGFjdCBtYXRjaGluZywgdXNlXG4gICAgICogW1tQYXRoLmVxdWFsc11dIGluc3RlYWQuXG4gICAgICovXG4gICAgY29tcGFyZShwYXRoOiBQYXRoLCBhbm90aGVyOiBQYXRoKTogLTEgfCAwIHwgMSB7XG4gICAgICAgIGNvbnN0IG1pbiA9IE1hdGgubWluKHBhdGgubGVuZ3RoLCBhbm90aGVyLmxlbmd0aCk7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtaW47IGkrKykge1xuICAgICAgICAgICAgaWYgKHBhdGhbaV0gPCBhbm90aGVyW2ldKSByZXR1cm4gLTE7XG4gICAgICAgICAgICBpZiAocGF0aFtpXSA+IGFub3RoZXJbaV0pIHJldHVybiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGEgcGF0aCBpcyBleGFjdGx5IGVxdWFsIHRvIGFub3RoZXIuXG4gICAgICovXG5cbiAgICBlcXVhbHMocGF0aDogUGF0aCwgYW5vdGhlcjogUGF0aCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gcGF0aC5sZW5ndGggPT09IGFub3RoZXIubGVuZ3RoICYmIHBhdGguZXZlcnkoKG4sIGkpID0+IG4gPT09IGFub3RoZXJbaV0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgYSBwYXRoIGVuZHMgYmVmb3JlIG9uZSBvZiB0aGUgaW5kZXhlcyBpbiBhbm90aGVyLlxuICAgICAqL1xuXG4gICAgZW5kc0JlZm9yZShwYXRoOiBQYXRoLCBhbm90aGVyOiBQYXRoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGkgPSBwYXRoLmxlbmd0aCAtIDE7XG4gICAgICAgIGNvbnN0IGFzID0gcGF0aC5zbGljZSgwLCBpKTtcbiAgICAgICAgY29uc3QgYnMgPSBhbm90aGVyLnNsaWNlKDAsIGkpO1xuICAgICAgICBjb25zdCBhdiA9IHBhdGhbaV07XG4gICAgICAgIGNvbnN0IGJ2ID0gYW5vdGhlcltpXTtcbiAgICAgICAgcmV0dXJuIFBhdGguZXF1YWxzKGFzLCBicykgJiYgYXYgPCBidjtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGEgcGF0aCBpcyBhIHNpYmxpbmcgb2YgYW5vdGhlci5cbiAgICAgKi9cbiAgICBpc1NpYmxpbmcocGF0aDogUGF0aCwgYW5vdGhlcjogUGF0aCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAocGF0aC5sZW5ndGggIT09IGFub3RoZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhcyA9IHBhdGguc2xpY2UoMCwgLTEpO1xuICAgICAgICBjb25zdCBicyA9IGFub3RoZXIuc2xpY2UoMCwgLTEpO1xuICAgICAgICBjb25zdCBhbCA9IHBhdGhbcGF0aC5sZW5ndGggLSAxXTtcbiAgICAgICAgY29uc3QgYmwgPSBhbm90aGVyW2Fub3RoZXIubGVuZ3RoIC0gMV07XG4gICAgICAgIHJldHVybiBhbCAhPT0gYmwgJiYgUGF0aC5lcXVhbHMoYXMsIGJzKTtcbiAgICB9LFxuICAgIHRyYW5zZm9ybShwYXRoOiBQYXRoIHwgbnVsbCwgb3BlcmF0aW9uOiBQbGFpdE9wZXJhdGlvbik6IFBhdGggfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHByb2R1Y2UocGF0aCwgcCA9PiB7XG4gICAgICAgICAgICAvLyBQRVJGOiBFeGl0IGVhcmx5IGlmIHRoZSBvcGVyYXRpb24gaXMgZ3VhcmFudGVlZCBub3QgdG8gaGF2ZSBhbiBlZmZlY3QuXG4gICAgICAgICAgICBpZiAoIXBhdGggfHwgcGF0aD8ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzd2l0Y2ggKG9wZXJhdGlvbi50eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnaW5zZXJ0X25vZGUnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcGF0aDogb3AgfSA9IG9wZXJhdGlvbjtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoUGF0aC5lcXVhbHMob3AsIHApIHx8IFBhdGguZW5kc0JlZm9yZShvcCwgcCkgfHwgUGF0aC5pc0FuY2VzdG9yKG9wLCBwKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcFtvcC5sZW5ndGggLSAxXSArPSAxO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY2FzZSAncmVtb3ZlX25vZGUnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcGF0aDogb3AgfSA9IG9wZXJhdGlvbjtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoUGF0aC5lcXVhbHMob3AsIHApIHx8IFBhdGguaXNBbmNlc3RvcihvcCwgcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFBhdGguZW5kc0JlZm9yZShvcCwgcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBbb3AubGVuZ3RoIC0gMV0gLT0gMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNhc2UgJ21vdmVfbm9kZSc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBwYXRoOiBvcCwgbmV3UGF0aDogb25wIH0gPSBvcGVyYXRpb247XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIG9sZCBhbmQgbmV3IHBhdGggYXJlIHRoZSBzYW1lLCBpdCdzIGEgbm8tb3AuXG4gICAgICAgICAgICAgICAgICAgIGlmIChQYXRoLmVxdWFscyhvcCwgb25wKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKFBhdGguaXNBbmNlc3RvcihvcCwgcCkgfHwgUGF0aC5lcXVhbHMob3AsIHApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb3B5ID0gb25wLnNsaWNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvcC5sZW5ndGggPD0gb25wLmxlbmd0aCBpcyBkaWZmZXJlbnQgZm9yIHNsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyByZXNvbHZlIGRyYWcgZnJvbSBbMCwgMF0gdG8gWzAsIDNdIGlzc3VlXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoUGF0aC5lbmRzQmVmb3JlKG9wLCBvbnApICYmIG9wLmxlbmd0aCA8PSBvbnAubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29weVtvcC5sZW5ndGggLSAxXSAtPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29weS5jb25jYXQocC5zbGljZShvcC5sZW5ndGgpKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChQYXRoLmlzU2libGluZyhvcCwgb25wKSAmJiAoUGF0aC5pc0FuY2VzdG9yKG9ucCwgcCkgfHwgUGF0aC5lcXVhbHMob25wLCBwKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChQYXRoLmVuZHNCZWZvcmUob3AsIHApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcFtvcC5sZW5ndGggLSAxXSAtPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwW29wLmxlbmd0aCAtIDFdICs9IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoUGF0aC5lbmRzQmVmb3JlKG9ucCwgcCkgfHwgUGF0aC5lcXVhbHMob25wLCBwKSB8fCBQYXRoLmlzQW5jZXN0b3Iob25wLCBwKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFBhdGguZW5kc0JlZm9yZShvcCwgcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwW29wLmxlbmd0aCAtIDFdIC09IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHBbb25wLmxlbmd0aCAtIDFdICs9IDE7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoUGF0aC5lbmRzQmVmb3JlKG9wLCBwKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFBhdGguZXF1YWxzKG9ucCwgcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwW29ucC5sZW5ndGggLSAxXSArPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBwW29wLmxlbmd0aCAtIDFdIC09IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcDtcbiAgICAgICAgfSk7XG4gICAgfVxufTtcbiJdfQ==
|
package/fesm2015/plait-core.mjs
CHANGED
|
@@ -151,7 +151,7 @@ const Path = {
|
|
|
151
151
|
break;
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
|
-
return
|
|
154
|
+
return p;
|
|
155
155
|
});
|
|
156
156
|
}
|
|
157
157
|
};
|
|
@@ -192,11 +192,20 @@ const inverse = (op) => {
|
|
|
192
192
|
if (Path.equals(newPath, path)) {
|
|
193
193
|
return op;
|
|
194
194
|
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
}
|
|
199
|
-
|
|
195
|
+
// when operation path is [0,0] -> [0,2], should exec Path.transform to get [0,1] -> [0,0]
|
|
196
|
+
// shoud not return [0,2] -> [0,0] #WIK-8981
|
|
197
|
+
// if (Path.isSibling(path, newPath)) {
|
|
198
|
+
// return { ...op, path: newPath, newPath: path };
|
|
199
|
+
// }
|
|
200
|
+
// If the move does not happen within a single parent it is possible
|
|
201
|
+
// for the move to impact the true path to the location where the node
|
|
202
|
+
// was removed from and where it was inserted. We have to adjust for this
|
|
203
|
+
// and find the original path. We can accomplish this (only in non-sibling)
|
|
204
|
+
// moves by looking at the impact of the move operation on the node
|
|
205
|
+
// after the original move path.
|
|
206
|
+
const inversePath = Path.transform(path, op);
|
|
207
|
+
const inverseNewPath = Path.transform(Path.next(path), op);
|
|
208
|
+
return Object.assign(Object.assign({}, op), { path: inversePath, newPath: inverseNewPath });
|
|
200
209
|
}
|
|
201
210
|
case 'set_node': {
|
|
202
211
|
const { properties, newProperties } = op;
|