slate-angular 16.1.0-next.18 → 16.1.0-next.19
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.
|
@@ -136,6 +136,8 @@ export class ListRender {
|
|
|
136
136
|
else {
|
|
137
137
|
const newContexts = [];
|
|
138
138
|
this.children.forEach((child, index) => {
|
|
139
|
+
NODE_TO_INDEX.set(child, index);
|
|
140
|
+
NODE_TO_PARENT.set(child, parent);
|
|
139
141
|
let context = getContext(index, child, parentPath, childrenContext, this.viewContext);
|
|
140
142
|
const previousContext = this.contexts[index];
|
|
141
143
|
if (memoizedContext(this.viewContext, child, previousContext, context)) {
|
|
@@ -230,7 +232,7 @@ export function getCommonContext(index, item, parentPath, viewContext, childrenC
|
|
|
230
232
|
}
|
|
231
233
|
}
|
|
232
234
|
catch (error) {
|
|
233
|
-
|
|
235
|
+
viewContext.editor.onError({
|
|
234
236
|
code: SlateErrorCode.GetStartPointError,
|
|
235
237
|
nativeError: error
|
|
236
238
|
});
|
|
@@ -287,4 +289,4 @@ export function memoizedTextContext(prev, next) {
|
|
|
287
289
|
next.text === prev.text &&
|
|
288
290
|
isDecoratorRangeListEqual(next.decorations, prev.decorations));
|
|
289
291
|
}
|
|
290
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1yZW5kZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvdmlldy9yZW5kZXIvbGlzdC1yZW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBUSxNQUFNLE9BQU8sQ0FBQztBQUMzRSxPQUFPLEVBQWlELGVBQWUsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFHakgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNsRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFckksTUFBTSxPQUFPLFVBQVU7SUFVbkIsWUFDWSxXQUE2QixFQUM3QixnQkFBa0MsRUFDbEMsZUFBa0MsRUFDbEMsZ0JBQTBDO1FBSDFDLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtRQUNsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTBCO1FBWjlDLFVBQUssR0FBaUQsRUFBRSxDQUFDO1FBQ3pELGVBQVUsR0FBaUQsRUFBRSxDQUFDO1FBQzlELGVBQVUsR0FBNEMsRUFBRSxDQUFDO1FBQ3pELGFBQVEsR0FBK0MsRUFBRSxDQUFDO1FBQzFELGNBQVMsR0FBZSxFQUFFLENBQUM7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QUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxJQUFzQixFQUFFLElBQXNCO0lBQzlFLE9BQU8sQ0FDSCxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNO1FBQzNCLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU07UUFDM0IsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSTtRQUN2Qix5QkFBeUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDaEUsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmNlc3RvciwgRGVzY2VuZGFudCwgUmFuZ2UsIEVkaXRvciwgRWxlbWVudCwgUGF0aCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IENvbXBvbmVudFJlZiwgRW1iZWRkZWRWaWV3UmVmLCBJdGVyYWJsZURpZmZlciwgSXRlcmFibGVEaWZmZXJzLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzL3ZpZXcnO1xuaW1wb3J0IHsgU2xhdGVDaGlsZHJlbkNvbnRleHQsIFNsYXRlRWxlbWVudENvbnRleHQsIFNsYXRlVGV4dENvbnRleHQsIFNsYXRlVmlld0NvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IgfSBmcm9tICcuLi8uLi9wbHVnaW5zL2FuZ3VsYXItZWRpdG9yJztcbmltcG9ydCB7IFNsYXRlRXJyb3JDb2RlIH0gZnJvbSAnLi4vLi4vdHlwZXMvZXJyb3InO1xuaW1wb3J0IHsgTk9ERV9UT19JTkRFWCwgTk9ERV9UT19QQVJFTlQgfSBmcm9tICcuLi8uLi91dGlscy93ZWFrLW1hcHMnO1xuaW1wb3J0IHsgaXNEZWNvcmF0b3JSYW5nZUxpc3RFcXVhbCB9IGZyb20gJy4uLy4uL3V0aWxzL3JhbmdlLWxpc3QnO1xuaW1wb3J0IHsgU2xhdGVCbG9ja0NhcmQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Jsb2NrLWNhcmQvYmxvY2stY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgY3JlYXRlRW1iZWRkZWRWaWV3T3JDb21wb25lbnQsIGV4ZWN1dGVBZnRlclZpZXdJbml0LCBnZXRSb290Tm9kZXMsIG1vdW50LCBtb3VudE9uSXRlbUNoYW5nZSwgdXBkYXRlQ29udGV4dCB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgTGlzdFJlbmRlciB7XG4gICAgcHJpdmF0ZSBjaGlsZHJlbjogRGVzY2VuZGFudFtdO1xuICAgIHByaXZhdGUgdmlld3M6IChFbWJlZGRlZFZpZXdSZWY8YW55PiB8IENvbXBvbmVudFJlZjxhbnk+KVtdID0gW107XG4gICAgcHJpdmF0ZSBhZGRlZFZpZXdzOiAoRW1iZWRkZWRWaWV3UmVmPGFueT4gfCBDb21wb25lbnRSZWY8YW55PilbXSA9IFtdO1xuICAgIHByaXZhdGUgYmxvY2tDYXJkczogKENvbXBvbmVudFJlZjxTbGF0ZUJsb2NrQ2FyZD4gfCBudWxsKVtdID0gW107XG4gICAgcHJpdmF0ZSBjb250ZXh0czogKFNsYXRlVGV4dENvbnRleHQgfCBTbGF0ZUVsZW1lbnRDb250ZXh0KVtdID0gW107XG4gICAgcHJpdmF0ZSB2aWV3VHlwZXM6IFZpZXdUeXBlW10gPSBbXTtcbiAgICBwcml2YXRlIGRpZmZlcjogSXRlcmFibGVEaWZmZXI8YW55PiB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQsXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBnZXRPdXRsZXRQYXJlbnQ6ICgpID0+IEhUTUxFbGVtZW50LFxuICAgICAgICBwcml2YXRlIGdldE91dGxldEVsZW1lbnQ6ICgpID0+IEhUTUxFbGVtZW50IHwgbnVsbFxuICAgICkge31cblxuICAgIHB1YmxpYyBpbml0aWFsaXplKGNoaWxkcmVuOiBEZXNjZW5kYW50W10sIHBhcmVudDogQW5jZXN0b3IsIGNoaWxkcmVuQ29udGV4dDogU2xhdGVDaGlsZHJlbkNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIHRoaXMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICAgICAgY29uc3QgcGFyZW50UGF0aCA9IEFuZ3VsYXJFZGl0b3IuZmluZFBhdGgodGhpcy52aWV3Q29udGV4dC5lZGl0b3IsIHBhcmVudCk7XG4gICAgICAgIGNoaWxkcmVuLmZvckVhY2goKGRlc2NlbmRhbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBOT0RFX1RPX0lOREVYLnNldChkZXNjZW5kYW50LCBpbmRleCk7XG4gICAgICAgICAgICBOT0RFX1RPX1BBUkVOVC5zZXQoZGVzY2VuZGFudCwgcGFyZW50KTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBnZXRDb250ZXh0KGluZGV4LCBkZXNjZW5kYW50LCBwYXJlbnRQYXRoLCBjaGlsZHJlbkNvbnRleHQsIHRoaXMudmlld0NvbnRleHQpO1xuICAgICAgICAgICAgY29uc3Qgdmlld1R5cGUgPSBnZXRWaWV3VHlwZShkZXNjZW5kYW50LCBwYXJlbnQsIHRoaXMudmlld0NvbnRleHQpO1xuICAgICAgICAgICAgY29uc3QgdmlldyA9IGNyZWF0ZUVtYmVkZGVkVmlld09yQ29tcG9uZW50KHZpZXdUeXBlLCBjb250ZXh0LCB0aGlzLnZpZXdDb250ZXh0LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICAgICAgY29uc3QgYmxvY2tDYXJkID0gY3JlYXRlQmxvY2tDYXJkKGRlc2NlbmRhbnQsIHZpZXcsIHRoaXMudmlld0NvbnRhaW5lclJlZiwgdGhpcy52aWV3Q29udGV4dCk7XG4gICAgICAgICAgICB0aGlzLnZpZXdzLnB1c2godmlldyk7XG4gICAgICAgICAgICB0aGlzLmFkZGVkVmlld3MucHVzaCh2aWV3KTtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dHMucHVzaChjb250ZXh0KTtcbiAgICAgICAgICAgIHRoaXMudmlld1R5cGVzLnB1c2godmlld1R5cGUpO1xuICAgICAgICAgICAgdGhpcy5ibG9ja0NhcmRzLnB1c2goYmxvY2tDYXJkKTtcbiAgICAgICAgfSk7XG4gICAgICAgIG1vdW50KHRoaXMudmlld3MsIHRoaXMuYmxvY2tDYXJkcywgdGhpcy5nZXRPdXRsZXRQYXJlbnQoKSwgdGhpcy5nZXRPdXRsZXRFbGVtZW50KCkpO1xuICAgICAgICBjb25zdCBuZXdEaWZmZXJzID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yLmdldChJdGVyYWJsZURpZmZlcnMpO1xuICAgICAgICB0aGlzLmRpZmZlciA9IG5ld0RpZmZlcnMuZmluZChjaGlsZHJlbikuY3JlYXRlKHRyYWNrQnkodGhpcy52aWV3Q29udGV4dCkpO1xuICAgICAgICB0aGlzLmRpZmZlci5kaWZmKGNoaWxkcmVuKTtcbiAgICAgICAgaWYgKHBhcmVudCA9PT0gdGhpcy52aWV3Q29udGV4dC5lZGl0b3IpIHtcbiAgICAgICAgICAgIHRoaXMuYWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZShjaGlsZHJlbjogRGVzY2VuZGFudFtdLCBwYXJlbnQ6IEFuY2VzdG9yLCBjaGlsZHJlbkNvbnRleHQ6IFNsYXRlQ2hpbGRyZW5Db250ZXh0KSB7XG4gICAgICAgIGlmICghdGhpcy5pbml0aWFsaXplZCB8fCB0aGlzLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplKGNoaWxkcmVuLCBwYXJlbnQsIGNoaWxkcmVuQ29udGV4dCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmRpZmZlcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeGNlcHRpb246IENhbiBub3QgZmluZCBkaWZmZXIgJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3V0bGV0UGFyZW50ID0gdGhpcy5nZXRPdXRsZXRQYXJlbnQoKTtcbiAgICAgICAgY29uc3QgZGlmZlJlc3VsdCA9IHRoaXMuZGlmZmVyLmRpZmYoY2hpbGRyZW4pO1xuICAgICAgICBjb25zdCBwYXJlbnRQYXRoID0gQW5ndWxhckVkaXRvci5maW5kUGF0aCh0aGlzLnZpZXdDb250ZXh0LmVkaXRvciwgcGFyZW50KTtcbiAgICAgICAgaWYgKGRpZmZSZXN1bHQpIHtcbiAgICAgICAgICAgIGxldCBmaXJzdFJvb3ROb2RlID0gZ2V0Um9vdE5vZGVzKHRoaXMudmlld3NbMF0sIHRoaXMuYmxvY2tDYXJkc1swXSlbMF07XG4gICAgICAgICAgICBjb25zdCBuZXdDb250ZXh0cyA9IFtdO1xuICAgICAgICAgICAgY29uc3QgbmV3Vmlld1R5cGVzID0gW107XG4gICAgICAgICAgICBjb25zdCBuZXdWaWV3cyA9IFtdO1xuICAgICAgICAgICAgY29uc3QgbmV3QmxvY2tDYXJkczogKENvbXBvbmVudFJlZjxTbGF0ZUJsb2NrQ2FyZD4gfCBudWxsKVtdID0gW107XG4gICAgICAgICAgICBkaWZmUmVzdWx0LmZvckVhY2hJdGVtKHJlY29yZCA9PiB7XG4gICAgICAgICAgICAgICAgTk9ERV9UT19JTkRFWC5zZXQocmVjb3JkLml0ZW0sIHJlY29yZC5jdXJyZW50SW5kZXgpO1xuICAgICAgICAgICAgICAgIE5PREVfVE9fUEFSRU5ULnNldChyZWNvcmQuaXRlbSwgcGFyZW50KTtcbiAgICAgICAgICAgICAgICBsZXQgY29udGV4dCA9IGdldENvbnRleHQocmVjb3JkLmN1cnJlbnRJbmRleCwgcmVjb3JkLml0ZW0sIHBhcmVudFBhdGgsIGNoaWxkcmVuQ29udGV4dCwgdGhpcy52aWV3Q29udGV4dCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgdmlld1R5cGUgPSBnZXRWaWV3VHlwZShyZWNvcmQuaXRlbSwgcGFyZW50LCB0aGlzLnZpZXdDb250ZXh0KTtcbiAgICAgICAgICAgICAgICBuZXdWaWV3VHlwZXMucHVzaCh2aWV3VHlwZSk7XG4gICAgICAgICAgICAgICAgbGV0IHZpZXc6IEVtYmVkZGVkVmlld1JlZjxhbnk+IHwgQ29tcG9uZW50UmVmPGFueT47XG4gICAgICAgICAgICAgICAgbGV0IGJsb2NrQ2FyZDogQ29tcG9uZW50UmVmPFNsYXRlQmxvY2tDYXJkPiB8IG51bGw7XG4gICAgICAgICAgICAgICAgaWYgKHJlY29yZC5wcmV2aW91c0luZGV4ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHZpZXcgPSBjcmVhdGVFbWJlZGRlZFZpZXdPckNvbXBvbmVudCh2aWV3VHlwZSwgY29udGV4dCwgdGhpcy52aWV3Q29udGV4dCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgICAgICAgICAgICAgYmxvY2tDYXJkID0gY3JlYXRlQmxvY2tDYXJkKHJlY29yZC5pdGVtLCB2aWV3LCB0aGlzLnZpZXdDb250YWluZXJSZWYsIHRoaXMudmlld0NvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICBuZXdDb250ZXh0cy5wdXNoKGNvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICBuZXdWaWV3cy5wdXNoKHZpZXcpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZGVkVmlld3MucHVzaCh2aWV3KTtcbiAgICAgICAgICAgICAgICAgICAgbmV3QmxvY2tDYXJkcy5wdXNoKGJsb2NrQ2FyZCk7XG4gICAgICAgICAgICAgICAgICAgIG1vdW50T25JdGVtQ2hhbmdlKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmN1cnJlbnRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZC5pdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3Vmlld3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdCbG9ja0NhcmRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGV0UGFyZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RSb290Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0NvbnRleHRcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1ZpZXcgPSB0aGlzLnZpZXdzW3JlY29yZC5wcmV2aW91c0luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNWaWV3VHlwZSA9IHRoaXMudmlld1R5cGVzW3JlY29yZC5wcmV2aW91c0luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNDb250ZXh0ID0gdGhpcy5jb250ZXh0c1tyZWNvcmQucHJldmlvdXNJbmRleF07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzQmxvY2tDYXJkID0gdGhpcy5ibG9ja0NhcmRzW3JlY29yZC5wcmV2aW91c0luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzVmlld1R5cGUgIT09IHZpZXdUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3ID0gY3JlYXRlRW1iZWRkZWRWaWV3T3JDb21wb25lbnQodmlld1R5cGUsIGNvbnRleHQsIHRoaXMudmlld0NvbnRleHQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZGVkVmlld3MucHVzaCh2aWV3KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrQ2FyZCA9IGNyZWF0ZUJsb2NrQ2FyZChyZWNvcmQuaXRlbSwgdmlldywgdGhpcy52aWV3Q29udGFpbmVyUmVmLCB0aGlzLnZpZXdDb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0Um9vdE5vZGUgPSBnZXRSb290Tm9kZXMocHJldmlvdXNWaWV3LCBwcmV2aW91c0Jsb2NrQ2FyZClbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdSb290Tm9kZXMgPSBnZXRSb290Tm9kZXModmlldywgYmxvY2tDYXJkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0Um9vdE5vZGUucmVwbGFjZVdpdGgoLi4ubmV3Um9vdE5vZGVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVmlldy5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0Jsb2NrQ2FyZD8uZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlldyA9IHByZXZpb3VzVmlldztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrQ2FyZCA9IHByZXZpb3VzQmxvY2tDYXJkO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1lbW9pemVkQ29udGV4dCh0aGlzLnZpZXdDb250ZXh0LCByZWNvcmQuaXRlbSwgcHJldmlvdXNDb250ZXh0IGFzIGFueSwgY29udGV4dCBhcyBhbnkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dCA9IHByZXZpb3VzQ29udGV4dDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlQ29udGV4dChwcmV2aW91c1ZpZXcsIGNvbnRleHQsIHRoaXMudmlld0NvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5ld0NvbnRleHRzLnB1c2goY29udGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIG5ld1ZpZXdzLnB1c2godmlldyk7XG4gICAgICAgICAgICAgICAgICAgIG5ld0Jsb2NrQ2FyZHMucHVzaChibG9ja0NhcmQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZGlmZlJlc3VsdC5mb3JFYWNoT3BlcmF0aW9uKHJlY29yZCA9PiB7XG4gICAgICAgICAgICAgICAgLy8gcmVtb3ZlZFxuICAgICAgICAgICAgICAgIGlmIChyZWNvcmQuY3VycmVudEluZGV4ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLnZpZXdzW3JlY29yZC5wcmV2aW91c0luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2tDYXJkID0gdGhpcy5ibG9ja0NhcmRzW3JlY29yZC5wcmV2aW91c0luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgdmlldy5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgICAgIGJsb2NrQ2FyZD8uZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBtb3ZlZFxuICAgICAgICAgICAgICAgIGlmIChyZWNvcmQucHJldmlvdXNJbmRleCAhPT0gbnVsbCAmJiByZWNvcmQuY3VycmVudEluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIG1vdW50T25JdGVtQ2hhbmdlKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmN1cnJlbnRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZC5pdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3Vmlld3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdCbG9ja0NhcmRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGV0UGFyZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RSb290Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0NvbnRleHRcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gU29sdmUgdGhlIGJsb2NrLWNhcmQgRE9NRWxlbWVudCBsb3NzIHdoZW4gbW92aW5nIG5vZGVzXG4gICAgICAgICAgICAgICAgICAgIG5ld0Jsb2NrQ2FyZHNbcmVjb3JkLmN1cnJlbnRJbmRleF0/Lmluc3RhbmNlLmFwcGVuZCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy52aWV3VHlwZXMgPSBuZXdWaWV3VHlwZXM7XG4gICAgICAgICAgICB0aGlzLnZpZXdzID0gbmV3Vmlld3M7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHRzID0gbmV3Q29udGV4dHM7XG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XG4gICAgICAgICAgICB0aGlzLmJsb2NrQ2FyZHMgPSBuZXdCbG9ja0NhcmRzO1xuICAgICAgICAgICAgaWYgKHBhcmVudCA9PT0gdGhpcy52aWV3Q29udGV4dC5lZGl0b3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFmdGVyVmlld0luaXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0NvbnRleHRzID0gW107XG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBjb250ZXh0ID0gZ2V0Q29udGV4dChpbmRleCwgY2hpbGQsIHBhcmVudFBhdGgsIGNoaWxkcmVuQ29udGV4dCwgdGhpcy52aWV3Q29udGV4dCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNDb250ZXh0ID0gdGhpcy5jb250ZXh0c1tpbmRleF07XG4gICAgICAgICAgICAgICAgaWYgKG1lbW9pemVkQ29udGV4dCh0aGlzLnZpZXdDb250ZXh0LCBjaGlsZCwgcHJldmlvdXNDb250ZXh0IGFzIGFueSwgY29udGV4dCBhcyBhbnkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQgPSBwcmV2aW91c0NvbnRleHQ7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlQ29udGV4dCh0aGlzLnZpZXdzW2luZGV4XSwgY29udGV4dCwgdGhpcy52aWV3Q29udGV4dCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG5ld0NvbnRleHRzLnB1c2goY29udGV4dCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dHMgPSBuZXdDb250ZXh0cztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLmFkZGVkVmlld3MuZm9yRWFjaCh2aWV3ID0+IHtcbiAgICAgICAgICAgIGV4ZWN1dGVBZnRlclZpZXdJbml0KHZpZXcpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hZGRlZFZpZXdzID0gW107XG4gICAgfVxuXG4gICAgcHVibGljIGRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuY2hpbGRyZW4uZm9yRWFjaCgoZWxlbWVudDogRWxlbWVudCwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMudmlld3NbaW5kZXhdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52aWV3c1tpbmRleF0uZGVzdHJveSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuYmxvY2tDYXJkc1tpbmRleF0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2NrQ2FyZHNbaW5kZXhdLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudmlld3MgPSBbXTtcbiAgICAgICAgdGhpcy5ibG9ja0NhcmRzID0gW107XG4gICAgICAgIHRoaXMuY29udGV4dHMgPSBbXTtcbiAgICAgICAgdGhpcy52aWV3VHlwZXMgPSBbXTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRpZmZlciA9IG51bGw7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29udGV4dChcbiAgICBpbmRleDogbnVtYmVyLFxuICAgIGl0ZW06IERlc2NlbmRhbnQsXG4gICAgcGFyZW50UGF0aDogUGF0aCxcbiAgICBjaGlsZHJlbkNvbnRleHQ6IFNsYXRlQ2hpbGRyZW5Db250ZXh0LFxuICAgIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0XG4pOiBTbGF0ZUVsZW1lbnRDb250ZXh0IHwgU2xhdGVUZXh0Q29udGV4dCB7XG4gICAgaWYgKEVsZW1lbnQuaXNFbGVtZW50KGl0ZW0pKSB7XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkQ29udGV4dCA9IGdldENvbW1vbkNvbnRleHQoaW5kZXgsIGl0ZW0sIHBhcmVudFBhdGgsIHZpZXdDb250ZXh0LCBjaGlsZHJlbkNvbnRleHQpO1xuICAgICAgICBjb25zdCBrZXkgPSBBbmd1bGFyRWRpdG9yLmZpbmRLZXkodmlld0NvbnRleHQuZWRpdG9yLCBpdGVtKTtcbiAgICAgICAgY29uc3QgaXNJbmxpbmUgPSB2aWV3Q29udGV4dC5lZGl0b3IuaXNJbmxpbmUoaXRlbSk7XG4gICAgICAgIGNvbnN0IGlzVm9pZCA9IHZpZXdDb250ZXh0LmVkaXRvci5pc1ZvaWQoaXRlbSk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRDb250ZXh0OiBTbGF0ZUVsZW1lbnRDb250ZXh0ID0ge1xuICAgICAgICAgICAgZWxlbWVudDogaXRlbSxcbiAgICAgICAgICAgIC4uLmNvbXB1dGVkQ29udGV4dCxcbiAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAnZGF0YS1zbGF0ZS1ub2RlJzogJ2VsZW1lbnQnLFxuICAgICAgICAgICAgICAgICdkYXRhLXNsYXRlLWtleSc6IGtleS5pZFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlY29yYXRlOiBjaGlsZHJlbkNvbnRleHQuZGVjb3JhdGUsXG4gICAgICAgICAgICByZWFkb25seTogY2hpbGRyZW5Db250ZXh0LnJlYWRvbmx5XG4gICAgICAgIH07XG4gICAgICAgIGlmIChpc0lubGluZSkge1xuICAgICAgICAgICAgZWxlbWVudENvbnRleHQuYXR0cmlidXRlc1snZGF0YS1zbGF0ZS1pbmxpbmUnXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzVm9pZCkge1xuICAgICAgICAgICAgZWxlbWVudENvbnRleHQuYXR0cmlidXRlc1snZGF0YS1zbGF0ZS12b2lkJ10gPSB0cnVlO1xuICAgICAgICAgICAgZWxlbWVudENvbnRleHQuY29udGVudEVkaXRhYmxlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVsZW1lbnRDb250ZXh0O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkQ29udGV4dCA9IGdldENvbW1vbkNvbnRleHQoaW5kZXgsIGl0ZW0sIHBhcmVudFBhdGgsIHZpZXdDb250ZXh0LCBjaGlsZHJlbkNvbnRleHQpO1xuICAgICAgICBjb25zdCBpc0xlYWZCbG9jayA9IEFuZ3VsYXJFZGl0b3IuaXNMZWFmQmxvY2sodmlld0NvbnRleHQuZWRpdG9yLCBjaGlsZHJlbkNvbnRleHQucGFyZW50KTtcbiAgICAgICAgY29uc3QgdGV4dENvbnRleHQ6IFNsYXRlVGV4dENvbnRleHQgPSB7XG4gICAgICAgICAgICBkZWNvcmF0aW9uczogY29tcHV0ZWRDb250ZXh0LmRlY29yYXRpb25zLFxuICAgICAgICAgICAgaXNMYXN0OiBpc0xlYWZCbG9jayAmJiBpbmRleCA9PT0gY2hpbGRyZW5Db250ZXh0LnBhcmVudC5jaGlsZHJlbi5sZW5ndGggLSAxLFxuICAgICAgICAgICAgcGFyZW50OiBjaGlsZHJlbkNvbnRleHQucGFyZW50IGFzIEVsZW1lbnQsXG4gICAgICAgICAgICB0ZXh0OiBpdGVtXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB0ZXh0Q29udGV4dDtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb21tb25Db250ZXh0KFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgaXRlbTogRGVzY2VuZGFudCxcbiAgICBwYXJlbnRQYXRoOiBQYXRoLFxuICAgIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0LFxuICAgIGNoaWxkcmVuQ29udGV4dDogU2xhdGVDaGlsZHJlbkNvbnRleHRcbik6IHsgc2VsZWN0aW9uOiBSYW5nZTsgZGVjb3JhdGlvbnM6IFJhbmdlW10gfSB7XG4gICAgY29uc3QgcCA9IHBhcmVudFBhdGguY29uY2F0KGluZGV4KTtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCBkcyA9IGNoaWxkcmVuQ29udGV4dC5kZWNvcmF0ZShbaXRlbSwgcF0pO1xuICAgICAgICAvLyBbbGlzdC1yZW5kZXJdIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbjogcmVkdWNlIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gdGhlIGBFZGl0b3IucmFuZ2Uodmlld0NvbnRleHQuZWRpdG9yLCBwKWAgbWV0aG9kXG4gICAgICAgIGlmIChjaGlsZHJlbkNvbnRleHQuc2VsZWN0aW9uIHx8IGNoaWxkcmVuQ29udGV4dC5kZWNvcmF0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCByYW5nZSA9IEVkaXRvci5yYW5nZSh2aWV3Q29udGV4dC5lZGl0b3IsIHApO1xuICAgICAgICAgICAgY29uc3Qgc2VsID0gY2hpbGRyZW5Db250ZXh0LnNlbGVjdGlvbiAmJiBSYW5nZS5pbnRlcnNlY3Rpb24ocmFuZ2UsIGNoaWxkcmVuQ29udGV4dC5zZWxlY3Rpb24pO1xuICAgICAgICAgICAgZm9yIChjb25zdCBkZWMgb2YgY2hpbGRyZW5Db250ZXh0LmRlY29yYXRpb25zKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZCA9IFJhbmdlLmludGVyc2VjdGlvbihkZWMsIHJhbmdlKTtcbiAgICAgICAgICAgICAgICBpZiAoZCkge1xuICAgICAgICAgICAgICAgICAgICBkcy5wdXNoKGQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7IHNlbGVjdGlvbjogc2VsLCBkZWNvcmF0aW9uczogZHMgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB7IHNlbGVjdGlvbjogbnVsbCwgZGVjb3JhdGlvbnM6IGRzIH07XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0aGlzLm9wdGlvbnMudmlld0NvbnRleHQuZWRpdG9yLm9uRXJyb3Ioe1xuICAgICAgICAgICAgY29kZTogU2xhdGVFcnJvckNvZGUuR2V0U3RhcnRQb2ludEVycm9yLFxuICAgICAgICAgICAgbmF0aXZlRXJyb3I6IGVycm9yXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4geyBzZWxlY3Rpb246IG51bGwsIGRlY29yYXRpb25zOiBbXSB9O1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZpZXdUeXBlKGl0ZW06IERlc2NlbmRhbnQsIHBhcmVudDogQW5jZXN0b3IsIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0KSB7XG4gICAgaWYgKEVsZW1lbnQuaXNFbGVtZW50KGl0ZW0pKSB7XG4gICAgICAgIHJldHVybiAodmlld0NvbnRleHQucmVuZGVyRWxlbWVudCAmJiB2aWV3Q29udGV4dC5yZW5kZXJFbGVtZW50KGl0ZW0pKSB8fCB2aWV3Q29udGV4dC5kZWZhdWx0RWxlbWVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpc1ZvaWQgPSB2aWV3Q29udGV4dC5lZGl0b3IuaXNWb2lkKHBhcmVudCBhcyBFbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIGlzVm9pZCA/IHZpZXdDb250ZXh0LmRlZmF1bHRWb2lkVGV4dCA6ICh2aWV3Q29udGV4dC5yZW5kZXJUZXh0ICYmIHZpZXdDb250ZXh0LnJlbmRlclRleHQoaXRlbSkpIHx8IHZpZXdDb250ZXh0LmRlZmF1bHRUZXh0O1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJsb2NrQ2FyZChcbiAgICBpdGVtOiBEZXNjZW5kYW50LFxuICAgIHZpZXc6IEVtYmVkZGVkVmlld1JlZjxhbnk+IHwgQ29tcG9uZW50UmVmPGFueT4sXG4gICAgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICB2aWV3Q29udGV4dDogU2xhdGVWaWV3Q29udGV4dFxuKSB7XG4gICAgY29uc3QgaXNCbG9ja0NhcmQgPSB2aWV3Q29udGV4dC5lZGl0b3IuaXNCbG9ja0NhcmQoaXRlbSk7XG4gICAgaWYgKGlzQmxvY2tDYXJkKSB7XG4gICAgICAgIGNvbnN0IHJvb3ROb2RlcyA9IGdldFJvb3ROb2Rlcyh2aWV3KTtcbiAgICAgICAgY29uc3QgYmxvY2tDYXJkQ29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQ8U2xhdGVCbG9ja0NhcmQ+KFNsYXRlQmxvY2tDYXJkLCB7XG4gICAgICAgICAgICBpbmplY3Rvcjogdmlld0NvbnRhaW5lclJlZi5pbmplY3RvclxuICAgICAgICB9KTtcbiAgICAgICAgYmxvY2tDYXJkQ29tcG9uZW50UmVmLmluc3RhbmNlLmluaXRpYWxpemVDZW50ZXIocm9vdE5vZGVzKTtcbiAgICAgICAgYmxvY2tDYXJkQ29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgcmV0dXJuIGJsb2NrQ2FyZENvbXBvbmVudFJlZjtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFja0J5KHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0KSB7XG4gICAgcmV0dXJuIChpbmRleCwgbm9kZSkgPT4ge1xuICAgICAgICByZXR1cm4gdmlld0NvbnRleHQudHJhY2tCeShub2RlKSB8fCBBbmd1bGFyRWRpdG9yLmZpbmRLZXkodmlld0NvbnRleHQuZWRpdG9yLCBub2RlKTtcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWVtb2l6ZWRDb250ZXh0KFxuICAgIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0LFxuICAgIGRlc2NlbmRhbnQ6IERlc2NlbmRhbnQsXG4gICAgcHJldjogU2xhdGVFbGVtZW50Q29udGV4dCB8IFNsYXRlVGV4dENvbnRleHQsXG4gICAgbmV4dDogU2xhdGVFbGVtZW50Q29udGV4dCB8IFNsYXRlVGV4dENvbnRleHRcbik6IGJvb2xlYW4ge1xuICAgIGlmIChFbGVtZW50LmlzRWxlbWVudChkZXNjZW5kYW50KSkge1xuICAgICAgICByZXR1cm4gbWVtb2l6ZWRFbGVtZW50Q29udGV4dCh2aWV3Q29udGV4dCwgcHJldiBhcyBTbGF0ZUVsZW1lbnRDb250ZXh0LCBuZXh0IGFzIFNsYXRlRWxlbWVudENvbnRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBtZW1vaXplZFRleHRDb250ZXh0KHByZXYgYXMgU2xhdGVUZXh0Q29udGV4dCwgbmV4dCBhcyBTbGF0ZVRleHRDb250ZXh0KTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZW1vaXplZEVsZW1lbnRDb250ZXh0KHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0LCBwcmV2OiBTbGF0ZUVsZW1lbnRDb250ZXh0LCBuZXh0OiBTbGF0ZUVsZW1lbnRDb250ZXh0KSB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgcHJldi5lbGVtZW50ID09PSBuZXh0LmVsZW1lbnQgJiZcbiAgICAgICAgKCF2aWV3Q29udGV4dC5pc1N0cmljdERlY29yYXRlIHx8IHByZXYuZGVjb3JhdGUgPT09IG5leHQuZGVjb3JhdGUpICYmXG4gICAgICAgIHByZXYucmVhZG9ubHkgPT09IG5leHQucmVhZG9ubHkgJiZcbiAgICAgICAgaXNEZWNvcmF0b3JSYW5nZUxpc3RFcXVhbChwcmV2LmRlY29yYXRpb25zLCBuZXh0LmRlY29yYXRpb25zKSAmJlxuICAgICAgICAocHJldi5zZWxlY3Rpb24gPT09IG5leHQuc2VsZWN0aW9uIHx8ICghIXByZXYuc2VsZWN0aW9uICYmICEhbmV4dC5zZWxlY3Rpb24gJiYgUmFuZ2UuZXF1YWxzKHByZXYuc2VsZWN0aW9uLCBuZXh0LnNlbGVjdGlvbikpKVxuICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZW1vaXplZFRleHRDb250ZXh0KHByZXY6IFNsYXRlVGV4dENvbnRleHQsIG5leHQ6IFNsYXRlVGV4dENvbnRleHQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgICBuZXh0LnBhcmVudCA9PT0gcHJldi5wYXJlbnQgJiZcbiAgICAgICAgbmV4dC5pc0xhc3QgPT09IHByZXYuaXNMYXN0ICYmXG4gICAgICAgIG5leHQudGV4dCA9PT0gcHJldi50ZXh0ICYmXG4gICAgICAgIGlzRGVjb3JhdG9yUmFuZ2VMaXN0RXF1YWwobmV4dC5kZWNvcmF0aW9ucywgcHJldi5kZWNvcmF0aW9ucylcbiAgICApO1xufVxuIl19
|
|
292
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1yZW5kZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvdmlldy9yZW5kZXIvbGlzdC1yZW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBUSxNQUFNLE9BQU8sQ0FBQztBQUMzRSxPQUFPLEVBQWlELGVBQWUsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFHakgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNsRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFckksTUFBTSxPQUFPLFVBQVU7SUFVbkIsWUFDWSxXQUE2QixFQUM3QixnQkFBa0MsRUFDbEMsZUFBa0MsRUFDbEMsZ0JBQTBDO1FBSDFDLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtRQUNsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTBCO1FBWjlDLFVBQUssR0FBaUQsRUFBRSxDQUFDO1FBQ3pELGVBQVUsR0FBaUQsRUFBRSxDQUFDO1FBQzlELGVBQVUsR0FBNEMsRUFBRSxDQUFDO1FBQ3pELGFBQVEsR0FBK0MsRUFBRSxDQUFDO1FBQzFELGNBQVMsR0FBZSxFQUFFLENBQUM7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UyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUNoSSxDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxJQUFzQixFQUFFLElBQXNCO0lBQzlFLE9BQU8sQ0FDSCxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNO1FBQzNCLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU07UUFDM0IsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSTtRQUN2Qix5QkFBeUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDaEUsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmNlc3RvciwgRGVzY2VuZGFudCwgUmFuZ2UsIEVkaXRvciwgRWxlbWVudCwgUGF0aCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IENvbXBvbmVudFJlZiwgRW1iZWRkZWRWaWV3UmVmLCBJdGVyYWJsZURpZmZlciwgSXRlcmFibGVEaWZmZXJzLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzL3ZpZXcnO1xuaW1wb3J0IHsgU2xhdGVDaGlsZHJlbkNvbnRleHQsIFNsYXRlRWxlbWVudENvbnRleHQsIFNsYXRlVGV4dENvbnRleHQsIFNsYXRlVmlld0NvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IgfSBmcm9tICcuLi8uLi9wbHVnaW5zL2FuZ3VsYXItZWRpdG9yJztcbmltcG9ydCB7IFNsYXRlRXJyb3JDb2RlIH0gZnJvbSAnLi4vLi4vdHlwZXMvZXJyb3InO1xuaW1wb3J0IHsgTk9ERV9UT19JTkRFWCwgTk9ERV9UT19QQVJFTlQgfSBmcm9tICcuLi8uLi91dGlscy93ZWFrLW1hcHMnO1xuaW1wb3J0IHsgaXNEZWNvcmF0b3JSYW5nZUxpc3RFcXVhbCB9IGZyb20gJy4uLy4uL3V0aWxzL3JhbmdlLWxpc3QnO1xuaW1wb3J0IHsgU2xhdGVCbG9ja0NhcmQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Jsb2NrLWNhcmQvYmxvY2stY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgY3JlYXRlRW1iZWRkZWRWaWV3T3JDb21wb25lbnQsIGV4ZWN1dGVBZnRlclZpZXdJbml0LCBnZXRSb290Tm9kZXMsIG1vdW50LCBtb3VudE9uSXRlbUNoYW5nZSwgdXBkYXRlQ29udGV4dCB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgTGlzdFJlbmRlciB7XG4gICAgcHJpdmF0ZSBjaGlsZHJlbjogRGVzY2VuZGFudFtdO1xuICAgIHByaXZhdGUgdmlld3M6IChFbWJlZGRlZFZpZXdSZWY8YW55PiB8IENvbXBvbmVudFJlZjxhbnk+KVtdID0gW107XG4gICAgcHJpdmF0ZSBhZGRlZFZpZXdzOiAoRW1iZWRkZWRWaWV3UmVmPGFueT4gfCBDb21wb25lbnRSZWY8YW55PilbXSA9IFtdO1xuICAgIHByaXZhdGUgYmxvY2tDYXJkczogKENvbXBvbmVudFJlZjxTbGF0ZUJsb2NrQ2FyZD4gfCBudWxsKVtdID0gW107XG4gICAgcHJpdmF0ZSBjb250ZXh0czogKFNsYXRlVGV4dENvbnRleHQgfCBTbGF0ZUVsZW1lbnRDb250ZXh0KVtdID0gW107XG4gICAgcHJpdmF0ZSB2aWV3VHlwZXM6IFZpZXdUeXBlW10gPSBbXTtcbiAgICBwcml2YXRlIGRpZmZlcjogSXRlcmFibGVEaWZmZXI8YW55PiB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQsXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBnZXRPdXRsZXRQYXJlbnQ6ICgpID0+IEhUTUxFbGVtZW50LFxuICAgICAgICBwcml2YXRlIGdldE91dGxldEVsZW1lbnQ6ICgpID0+IEhUTUxFbGVtZW50IHwgbnVsbFxuICAgICkge31cblxuICAgIHB1YmxpYyBpbml0aWFsaXplKGNoaWxkcmVuOiBEZXNjZW5kYW50W10sIHBhcmVudDogQW5jZXN0b3IsIGNoaWxkcmVuQ29udGV4dDogU2xhdGVDaGlsZHJlbkNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIHRoaXMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICAgICAgY29uc3QgcGFyZW50UGF0aCA9IEFuZ3VsYXJFZGl0b3IuZmluZFBhdGgodGhpcy52aWV3Q29udGV4dC5lZGl0b3IsIHBhcmVudCk7XG4gICAgICAgIGNoaWxkcmVuLmZvckVhY2goKGRlc2NlbmRhbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBOT0RFX1RPX0lOREVYLnNldChkZXNjZW5kYW50LCBpbmRleCk7XG4gICAgICAgICAgICBOT0RFX1RPX1BBUkVOVC5zZXQoZGVzY2VuZGFudCwgcGFyZW50KTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBnZXRDb250ZXh0KGluZGV4LCBkZXNjZW5kYW50LCBwYXJlbnRQYXRoLCBjaGlsZHJlbkNvbnRleHQsIHRoaXMudmlld0NvbnRleHQpO1xuICAgICAgICAgICAgY29uc3Qgdmlld1R5cGUgPSBnZXRWaWV3VHlwZShkZXNjZW5kYW50LCBwYXJlbnQsIHRoaXMudmlld0NvbnRleHQpO1xuICAgICAgICAgICAgY29uc3QgdmlldyA9IGNyZWF0ZUVtYmVkZGVkVmlld09yQ29tcG9uZW50KHZpZXdUeXBlLCBjb250ZXh0LCB0aGlzLnZpZXdDb250ZXh0LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICAgICAgY29uc3QgYmxvY2tDYXJkID0gY3JlYXRlQmxvY2tDYXJkKGRlc2NlbmRhbnQsIHZpZXcsIHRoaXMudmlld0NvbnRhaW5lclJlZiwgdGhpcy52aWV3Q29udGV4dCk7XG4gICAgICAgICAgICB0aGlzLnZpZXdzLnB1c2godmlldyk7XG4gICAgICAgICAgICB0aGlzLmFkZGVkVmlld3MucHVzaCh2aWV3KTtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dHMucHVzaChjb250ZXh0KTtcbiAgICAgICAgICAgIHRoaXMudmlld1R5cGVzLnB1c2godmlld1R5cGUpO1xuICAgICAgICAgICAgdGhpcy5ibG9ja0NhcmRzLnB1c2goYmxvY2tDYXJkKTtcbiAgICAgICAgfSk7XG4gICAgICAgIG1vdW50KHRoaXMudmlld3MsIHRoaXMuYmxvY2tDYXJkcywgdGhpcy5nZXRPdXRsZXRQYXJlbnQoKSwgdGhpcy5nZXRPdXRsZXRFbGVtZW50KCkpO1xuICAgICAgICBjb25zdCBuZXdEaWZmZXJzID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yLmdldChJdGVyYWJsZURpZmZlcnMpO1xuICAgICAgICB0aGlzLmRpZmZlciA9IG5ld0RpZmZlcnMuZmluZChjaGlsZHJlbikuY3JlYXRlKHRyYWNrQnkodGhpcy52aWV3Q29udGV4dCkpO1xuICAgICAgICB0aGlzLmRpZmZlci5kaWZmKGNoaWxkcmVuKTtcbiAgICAgICAgaWYgKHBhcmVudCA9PT0gdGhpcy52aWV3Q29udGV4dC5lZGl0b3IpIHtcbiAgICAgICAgICAgIHRoaXMuYWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZShjaGlsZHJlbjogRGVzY2VuZGFudFtdLCBwYXJlbnQ6IEFuY2VzdG9yLCBjaGlsZHJlbkNvbnRleHQ6IFNsYXRlQ2hpbGRyZW5Db250ZXh0KSB7XG4gICAgICAgIGlmICghdGhpcy5pbml0aWFsaXplZCB8fCB0aGlzLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplKGNoaWxkcmVuLCBwYXJlbnQsIGNoaWxkcmVuQ29udGV4dCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmRpZmZlcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeGNlcHRpb246IENhbiBub3QgZmluZCBkaWZmZXIgJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3V0bGV0UGFyZW50ID0gdGhpcy5nZXRPdXRsZXRQYXJlbnQoKTtcbiAgICAgICAgY29uc3QgZGlmZlJlc3VsdCA9IHRoaXMuZGlmZmVyLmRpZmYoY2hpbGRyZW4pO1xuICAgICAgICBjb25zdCBwYXJlbnRQYXRoID0gQW5ndWxhckVkaXRvci5maW5kUGF0aCh0aGlzLnZpZXdDb250ZXh0LmVkaXRvciwgcGFyZW50KTtcbiAgICAgICAgaWYgKGRpZmZSZXN1bHQpIHtcbiAgICAgICAgICAgIGxldCBmaXJzdFJvb3ROb2RlID0gZ2V0Um9vdE5vZGVzKHRoaXMudmlld3NbMF0sIHRoaXMuYmxvY2tDYXJkc1swXSlbMF07XG4gICAgICAgICAgICBjb25zdCBuZXdDb250ZXh0cyA9IFtdO1xuICAgICAgICAgICAgY29uc3QgbmV3Vmlld1R5cGVzID0gW107XG4gICAgICAgICAgICBjb25zdCBuZXdWaWV3cyA9IFtdO1xuICAgICAgICAgICAgY29uc3QgbmV3QmxvY2tDYXJkczogKENvbXBvbmVudFJlZjxTbGF0ZUJsb2NrQ2FyZD4gfCBudWxsKVtdID0gW107XG4gICAgICAgICAgICBkaWZmUmVzdWx0LmZvckVhY2hJdGVtKHJlY29yZCA9PiB7XG4gICAgICAgICAgICAgICAgTk9ERV9UT19JTkRFWC5zZXQocmVjb3JkLml0ZW0sIHJlY29yZC5jdXJyZW50SW5kZXgpO1xuICAgICAgICAgICAgICAgIE5PREVfVE9fUEFSRU5ULnNldChyZWNvcmQuaXRlbSwgcGFyZW50KTtcbiAgICAgICAgICAgICAgICBsZXQgY29udGV4dCA9IGdldENvbnRleHQocmVjb3JkLmN1cnJlbnRJbmRleCwgcmVjb3JkLml0ZW0sIHBhcmVudFBhdGgsIGNoaWxkcmVuQ29udGV4dCwgdGhpcy52aWV3Q29udGV4dCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgdmlld1R5cGUgPSBnZXRWaWV3VHlwZShyZWNvcmQuaXRlbSwgcGFyZW50LCB0aGlzLnZpZXdDb250ZXh0KTtcbiAgICAgICAgICAgICAgICBuZXdWaWV3VHlwZXMucHVzaCh2aWV3VHlwZSk7XG4gICAgICAgICAgICAgICAgbGV0IHZpZXc6IEVtYmVkZGVkVmlld1JlZjxhbnk+IHwgQ29tcG9uZW50UmVmPGFueT47XG4gICAgICAgICAgICAgICAgbGV0IGJsb2NrQ2FyZDogQ29tcG9uZW50UmVmPFNsYXRlQmxvY2tDYXJkPiB8IG51bGw7XG4gICAgICAgICAgICAgICAgaWYgKHJlY29yZC5wcmV2aW91c0luZGV4ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHZpZXcgPSBjcmVhdGVFbWJlZGRlZFZpZXdPckNvbXBvbmVudCh2aWV3VHlwZSwgY29udGV4dCwgdGhpcy52aWV3Q29udGV4dCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgICAgICAgICAgICAgYmxvY2tDYXJkID0gY3JlYXRlQmxvY2tDYXJkKHJlY29yZC5pdGVtLCB2aWV3LCB0aGlzLnZpZXdDb250YWluZXJSZWYsIHRoaXMudmlld0NvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICBuZXdDb250ZXh0cy5wdXNoKGNvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICBuZXdWaWV3cy5wdXNoKHZpZXcpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZGVkVmlld3MucHVzaCh2aWV3KTtcbiAgICAgICAgICAgICAgICAgICAgbmV3QmxvY2tDYXJkcy5wdXNoKGJsb2NrQ2FyZCk7XG4gICAgICAgICAgICAgICAgICAgIG1vdW50T25JdGVtQ2hhbmdlKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmN1cnJlbnRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZC5pdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3Vmlld3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdCbG9ja0NhcmRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGV0UGFyZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RSb290Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0NvbnRleHRcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1ZpZXcgPSB0aGlzLnZpZXdzW3JlY29yZC5wcmV2aW91c0luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNWaWV3VHlwZSA9IHRoaXMudmlld1R5cGVzW3JlY29yZC5wcmV2aW91c0luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNDb250ZXh0ID0gdGhpcy5jb250ZXh0c1tyZWNvcmQucHJldmlvdXNJbmRleF07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzQmxvY2tDYXJkID0gdGhpcy5ibG9ja0NhcmRzW3JlY29yZC5wcmV2aW91c0luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzVmlld1R5cGUgIT09IHZpZXdUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3ID0gY3JlYXRlRW1iZWRkZWRWaWV3T3JDb21wb25lbnQodmlld1R5cGUsIGNvbnRleHQsIHRoaXMudmlld0NvbnRleHQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZGVkVmlld3MucHVzaCh2aWV3KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrQ2FyZCA9IGNyZWF0ZUJsb2NrQ2FyZChyZWNvcmQuaXRlbSwgdmlldywgdGhpcy52aWV3Q29udGFpbmVyUmVmLCB0aGlzLnZpZXdDb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0Um9vdE5vZGUgPSBnZXRSb290Tm9kZXMocHJldmlvdXNWaWV3LCBwcmV2aW91c0Jsb2NrQ2FyZClbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdSb290Tm9kZXMgPSBnZXRSb290Tm9kZXModmlldywgYmxvY2tDYXJkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0Um9vdE5vZGUucmVwbGFjZVdpdGgoLi4ubmV3Um9vdE5vZGVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVmlldy5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0Jsb2NrQ2FyZD8uZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlldyA9IHByZXZpb3VzVmlldztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrQ2FyZCA9IHByZXZpb3VzQmxvY2tDYXJkO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1lbW9pemVkQ29udGV4dCh0aGlzLnZpZXdDb250ZXh0LCByZWNvcmQuaXRlbSwgcHJldmlvdXNDb250ZXh0IGFzIGFueSwgY29udGV4dCBhcyBhbnkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dCA9IHByZXZpb3VzQ29udGV4dDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlQ29udGV4dChwcmV2aW91c1ZpZXcsIGNvbnRleHQsIHRoaXMudmlld0NvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5ld0NvbnRleHRzLnB1c2goY29udGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIG5ld1ZpZXdzLnB1c2godmlldyk7XG4gICAgICAgICAgICAgICAgICAgIG5ld0Jsb2NrQ2FyZHMucHVzaChibG9ja0NhcmQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZGlmZlJlc3VsdC5mb3JFYWNoT3BlcmF0aW9uKHJlY29yZCA9PiB7XG4gICAgICAgICAgICAgICAgLy8gcmVtb3ZlZFxuICAgICAgICAgICAgICAgIGlmIChyZWNvcmQuY3VycmVudEluZGV4ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLnZpZXdzW3JlY29yZC5wcmV2aW91c0luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2tDYXJkID0gdGhpcy5ibG9ja0NhcmRzW3JlY29yZC5wcmV2aW91c0luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgdmlldy5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgICAgIGJsb2NrQ2FyZD8uZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBtb3ZlZFxuICAgICAgICAgICAgICAgIGlmIChyZWNvcmQucHJldmlvdXNJbmRleCAhPT0gbnVsbCAmJiByZWNvcmQuY3VycmVudEluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIG1vdW50T25JdGVtQ2hhbmdlKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmN1cnJlbnRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZC5pdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3Vmlld3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdCbG9ja0NhcmRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGV0UGFyZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RSb290Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0NvbnRleHRcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gU29sdmUgdGhlIGJsb2NrLWNhcmQgRE9NRWxlbWVudCBsb3NzIHdoZW4gbW92aW5nIG5vZGVzXG4gICAgICAgICAgICAgICAgICAgIG5ld0Jsb2NrQ2FyZHNbcmVjb3JkLmN1cnJlbnRJbmRleF0/Lmluc3RhbmNlLmFwcGVuZCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy52aWV3VHlwZXMgPSBuZXdWaWV3VHlwZXM7XG4gICAgICAgICAgICB0aGlzLnZpZXdzID0gbmV3Vmlld3M7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHRzID0gbmV3Q29udGV4dHM7XG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XG4gICAgICAgICAgICB0aGlzLmJsb2NrQ2FyZHMgPSBuZXdCbG9ja0NhcmRzO1xuICAgICAgICAgICAgaWYgKHBhcmVudCA9PT0gdGhpcy52aWV3Q29udGV4dC5lZGl0b3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFmdGVyVmlld0luaXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0NvbnRleHRzID0gW107XG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIE5PREVfVE9fSU5ERVguc2V0KGNoaWxkLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgTk9ERV9UT19QQVJFTlQuc2V0KGNoaWxkLCBwYXJlbnQpO1xuICAgICAgICAgICAgICAgIGxldCBjb250ZXh0ID0gZ2V0Q29udGV4dChpbmRleCwgY2hpbGQsIHBhcmVudFBhdGgsIGNoaWxkcmVuQ29udGV4dCwgdGhpcy52aWV3Q29udGV4dCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNDb250ZXh0ID0gdGhpcy5jb250ZXh0c1tpbmRleF07XG4gICAgICAgICAgICAgICAgaWYgKG1lbW9pemVkQ29udGV4dCh0aGlzLnZpZXdDb250ZXh0LCBjaGlsZCwgcHJldmlvdXNDb250ZXh0IGFzIGFueSwgY29udGV4dCBhcyBhbnkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQgPSBwcmV2aW91c0NvbnRleHQ7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlQ29udGV4dCh0aGlzLnZpZXdzW2luZGV4XSwgY29udGV4dCwgdGhpcy52aWV3Q29udGV4dCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG5ld0NvbnRleHRzLnB1c2goY29udGV4dCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dHMgPSBuZXdDb250ZXh0cztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLmFkZGVkVmlld3MuZm9yRWFjaCh2aWV3ID0+IHtcbiAgICAgICAgICAgIGV4ZWN1dGVBZnRlclZpZXdJbml0KHZpZXcpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hZGRlZFZpZXdzID0gW107XG4gICAgfVxuXG4gICAgcHVibGljIGRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuY2hpbGRyZW4uZm9yRWFjaCgoZWxlbWVudDogRWxlbWVudCwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMudmlld3NbaW5kZXhdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52aWV3c1tpbmRleF0uZGVzdHJveSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuYmxvY2tDYXJkc1tpbmRleF0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2NrQ2FyZHNbaW5kZXhdLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudmlld3MgPSBbXTtcbiAgICAgICAgdGhpcy5ibG9ja0NhcmRzID0gW107XG4gICAgICAgIHRoaXMuY29udGV4dHMgPSBbXTtcbiAgICAgICAgdGhpcy52aWV3VHlwZXMgPSBbXTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRpZmZlciA9IG51bGw7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29udGV4dChcbiAgICBpbmRleDogbnVtYmVyLFxuICAgIGl0ZW06IERlc2NlbmRhbnQsXG4gICAgcGFyZW50UGF0aDogUGF0aCxcbiAgICBjaGlsZHJlbkNvbnRleHQ6IFNsYXRlQ2hpbGRyZW5Db250ZXh0LFxuICAgIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0XG4pOiBTbGF0ZUVsZW1lbnRDb250ZXh0IHwgU2xhdGVUZXh0Q29udGV4dCB7XG4gICAgaWYgKEVsZW1lbnQuaXNFbGVtZW50KGl0ZW0pKSB7XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkQ29udGV4dCA9IGdldENvbW1vbkNvbnRleHQoaW5kZXgsIGl0ZW0sIHBhcmVudFBhdGgsIHZpZXdDb250ZXh0LCBjaGlsZHJlbkNvbnRleHQpO1xuICAgICAgICBjb25zdCBrZXkgPSBBbmd1bGFyRWRpdG9yLmZpbmRLZXkodmlld0NvbnRleHQuZWRpdG9yLCBpdGVtKTtcbiAgICAgICAgY29uc3QgaXNJbmxpbmUgPSB2aWV3Q29udGV4dC5lZGl0b3IuaXNJbmxpbmUoaXRlbSk7XG4gICAgICAgIGNvbnN0IGlzVm9pZCA9IHZpZXdDb250ZXh0LmVkaXRvci5pc1ZvaWQoaXRlbSk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRDb250ZXh0OiBTbGF0ZUVsZW1lbnRDb250ZXh0ID0ge1xuICAgICAgICAgICAgZWxlbWVudDogaXRlbSxcbiAgICAgICAgICAgIC4uLmNvbXB1dGVkQ29udGV4dCxcbiAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAnZGF0YS1zbGF0ZS1ub2RlJzogJ2VsZW1lbnQnLFxuICAgICAgICAgICAgICAgICdkYXRhLXNsYXRlLWtleSc6IGtleS5pZFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlY29yYXRlOiBjaGlsZHJlbkNvbnRleHQuZGVjb3JhdGUsXG4gICAgICAgICAgICByZWFkb25seTogY2hpbGRyZW5Db250ZXh0LnJlYWRvbmx5XG4gICAgICAgIH07XG4gICAgICAgIGlmIChpc0lubGluZSkge1xuICAgICAgICAgICAgZWxlbWVudENvbnRleHQuYXR0cmlidXRlc1snZGF0YS1zbGF0ZS1pbmxpbmUnXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzVm9pZCkge1xuICAgICAgICAgICAgZWxlbWVudENvbnRleHQuYXR0cmlidXRlc1snZGF0YS1zbGF0ZS12b2lkJ10gPSB0cnVlO1xuICAgICAgICAgICAgZWxlbWVudENvbnRleHQuY29udGVudEVkaXRhYmxlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVsZW1lbnRDb250ZXh0O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkQ29udGV4dCA9IGdldENvbW1vbkNvbnRleHQoaW5kZXgsIGl0ZW0sIHBhcmVudFBhdGgsIHZpZXdDb250ZXh0LCBjaGlsZHJlbkNvbnRleHQpO1xuICAgICAgICBjb25zdCBpc0xlYWZCbG9jayA9IEFuZ3VsYXJFZGl0b3IuaXNMZWFmQmxvY2sodmlld0NvbnRleHQuZWRpdG9yLCBjaGlsZHJlbkNvbnRleHQucGFyZW50KTtcbiAgICAgICAgY29uc3QgdGV4dENvbnRleHQ6IFNsYXRlVGV4dENvbnRleHQgPSB7XG4gICAgICAgICAgICBkZWNvcmF0aW9uczogY29tcHV0ZWRDb250ZXh0LmRlY29yYXRpb25zLFxuICAgICAgICAgICAgaXNMYXN0OiBpc0xlYWZCbG9jayAmJiBpbmRleCA9PT0gY2hpbGRyZW5Db250ZXh0LnBhcmVudC5jaGlsZHJlbi5sZW5ndGggLSAxLFxuICAgICAgICAgICAgcGFyZW50OiBjaGlsZHJlbkNvbnRleHQucGFyZW50IGFzIEVsZW1lbnQsXG4gICAgICAgICAgICB0ZXh0OiBpdGVtXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB0ZXh0Q29udGV4dDtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb21tb25Db250ZXh0KFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgaXRlbTogRGVzY2VuZGFudCxcbiAgICBwYXJlbnRQYXRoOiBQYXRoLFxuICAgIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0LFxuICAgIGNoaWxkcmVuQ29udGV4dDogU2xhdGVDaGlsZHJlbkNvbnRleHRcbik6IHsgc2VsZWN0aW9uOiBSYW5nZTsgZGVjb3JhdGlvbnM6IFJhbmdlW10gfSB7XG4gICAgY29uc3QgcCA9IHBhcmVudFBhdGguY29uY2F0KGluZGV4KTtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCBkcyA9IGNoaWxkcmVuQ29udGV4dC5kZWNvcmF0ZShbaXRlbSwgcF0pO1xuICAgICAgICAvLyBbbGlzdC1yZW5kZXJdIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbjogcmVkdWNlIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gdGhlIGBFZGl0b3IucmFuZ2Uodmlld0NvbnRleHQuZWRpdG9yLCBwKWAgbWV0aG9kXG4gICAgICAgIGlmIChjaGlsZHJlbkNvbnRleHQuc2VsZWN0aW9uIHx8IGNoaWxkcmVuQ29udGV4dC5kZWNvcmF0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCByYW5nZSA9IEVkaXRvci5yYW5nZSh2aWV3Q29udGV4dC5lZGl0b3IsIHApO1xuICAgICAgICAgICAgY29uc3Qgc2VsID0gY2hpbGRyZW5Db250ZXh0LnNlbGVjdGlvbiAmJiBSYW5nZS5pbnRlcnNlY3Rpb24ocmFuZ2UsIGNoaWxkcmVuQ29udGV4dC5zZWxlY3Rpb24pO1xuICAgICAgICAgICAgZm9yIChjb25zdCBkZWMgb2YgY2hpbGRyZW5Db250ZXh0LmRlY29yYXRpb25zKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZCA9IFJhbmdlLmludGVyc2VjdGlvbihkZWMsIHJhbmdlKTtcbiAgICAgICAgICAgICAgICBpZiAoZCkge1xuICAgICAgICAgICAgICAgICAgICBkcy5wdXNoKGQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7IHNlbGVjdGlvbjogc2VsLCBkZWNvcmF0aW9uczogZHMgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB7IHNlbGVjdGlvbjogbnVsbCwgZGVjb3JhdGlvbnM6IGRzIH07XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB2aWV3Q29udGV4dC5lZGl0b3Iub25FcnJvcih7XG4gICAgICAgICAgICBjb2RlOiBTbGF0ZUVycm9yQ29kZS5HZXRTdGFydFBvaW50RXJyb3IsXG4gICAgICAgICAgICBuYXRpdmVFcnJvcjogZXJyb3JcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB7IHNlbGVjdGlvbjogbnVsbCwgZGVjb3JhdGlvbnM6IFtdIH07XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Vmlld1R5cGUoaXRlbTogRGVzY2VuZGFudCwgcGFyZW50OiBBbmNlc3Rvciwgdmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQpIHtcbiAgICBpZiAoRWxlbWVudC5pc0VsZW1lbnQoaXRlbSkpIHtcbiAgICAgICAgcmV0dXJuICh2aWV3Q29udGV4dC5yZW5kZXJFbGVtZW50ICYmIHZpZXdDb250ZXh0LnJlbmRlckVsZW1lbnQoaXRlbSkpIHx8IHZpZXdDb250ZXh0LmRlZmF1bHRFbGVtZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGlzVm9pZCA9IHZpZXdDb250ZXh0LmVkaXRvci5pc1ZvaWQocGFyZW50IGFzIEVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gaXNWb2lkID8gdmlld0NvbnRleHQuZGVmYXVsdFZvaWRUZXh0IDogKHZpZXdDb250ZXh0LnJlbmRlclRleHQgJiYgdmlld0NvbnRleHQucmVuZGVyVGV4dChpdGVtKSkgfHwgdmlld0NvbnRleHQuZGVmYXVsdFRleHQ7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQmxvY2tDYXJkKFxuICAgIGl0ZW06IERlc2NlbmRhbnQsXG4gICAgdmlldzogRW1iZWRkZWRWaWV3UmVmPGFueT4gfCBDb21wb25lbnRSZWY8YW55PixcbiAgICB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0XG4pIHtcbiAgICBjb25zdCBpc0Jsb2NrQ2FyZCA9IHZpZXdDb250ZXh0LmVkaXRvci5pc0Jsb2NrQ2FyZChpdGVtKTtcbiAgICBpZiAoaXNCbG9ja0NhcmQpIHtcbiAgICAgICAgY29uc3Qgcm9vdE5vZGVzID0gZ2V0Um9vdE5vZGVzKHZpZXcpO1xuICAgICAgICBjb25zdCBibG9ja0NhcmRDb21wb25lbnRSZWYgPSB2aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudDxTbGF0ZUJsb2NrQ2FyZD4oU2xhdGVCbG9ja0NhcmQsIHtcbiAgICAgICAgICAgIGluamVjdG9yOiB2aWV3Q29udGFpbmVyUmVmLmluamVjdG9yXG4gICAgICAgIH0pO1xuICAgICAgICBibG9ja0NhcmRDb21wb25lbnRSZWYuaW5zdGFuY2UuaW5pdGlhbGl6ZUNlbnRlcihyb290Tm9kZXMpO1xuICAgICAgICBibG9ja0NhcmRDb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICByZXR1cm4gYmxvY2tDYXJkQ29tcG9uZW50UmVmO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYWNrQnkodmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQpIHtcbiAgICByZXR1cm4gKGluZGV4LCBub2RlKSA9PiB7XG4gICAgICAgIHJldHVybiB2aWV3Q29udGV4dC50cmFja0J5KG5vZGUpIHx8IEFuZ3VsYXJFZGl0b3IuZmluZEtleSh2aWV3Q29udGV4dC5lZGl0b3IsIG5vZGUpO1xuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZW1vaXplZENvbnRleHQoXG4gICAgdmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQsXG4gICAgZGVzY2VuZGFudDogRGVzY2VuZGFudCxcbiAgICBwcmV2OiBTbGF0ZUVsZW1lbnRDb250ZXh0IHwgU2xhdGVUZXh0Q29udGV4dCxcbiAgICBuZXh0OiBTbGF0ZUVsZW1lbnRDb250ZXh0IHwgU2xhdGVUZXh0Q29udGV4dFxuKTogYm9vbGVhbiB7XG4gICAgaWYgKEVsZW1lbnQuaXNFbGVtZW50KGRlc2NlbmRhbnQpKSB7XG4gICAgICAgIHJldHVybiBtZW1vaXplZEVsZW1lbnRDb250ZXh0KHZpZXdDb250ZXh0LCBwcmV2IGFzIFNsYXRlRWxlbWVudENvbnRleHQsIG5leHQgYXMgU2xhdGVFbGVtZW50Q29udGV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG1lbW9pemVkVGV4dENvbnRleHQocHJldiBhcyBTbGF0ZVRleHRDb250ZXh0LCBuZXh0IGFzIFNsYXRlVGV4dENvbnRleHQpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lbW9pemVkRWxlbWVudENvbnRleHQodmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQsIHByZXY6IFNsYXRlRWxlbWVudENvbnRleHQsIG5leHQ6IFNsYXRlRWxlbWVudENvbnRleHQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgICBwcmV2LmVsZW1lbnQgPT09IG5leHQuZWxlbWVudCAmJlxuICAgICAgICAoIXZpZXdDb250ZXh0LmlzU3RyaWN0RGVjb3JhdGUgfHwgcHJldi5kZWNvcmF0ZSA9PT0gbmV4dC5kZWNvcmF0ZSkgJiZcbiAgICAgICAgcHJldi5yZWFkb25seSA9PT0gbmV4dC5yZWFkb25seSAmJlxuICAgICAgICBpc0RlY29yYXRvclJhbmdlTGlzdEVxdWFsKHByZXYuZGVjb3JhdGlvbnMsIG5leHQuZGVjb3JhdGlvbnMpICYmXG4gICAgICAgIChwcmV2LnNlbGVjdGlvbiA9PT0gbmV4dC5zZWxlY3Rpb24gfHwgKCEhcHJldi5zZWxlY3Rpb24gJiYgISFuZXh0LnNlbGVjdGlvbiAmJiBSYW5nZS5lcXVhbHMocHJldi5zZWxlY3Rpb24sIG5leHQuc2VsZWN0aW9uKSkpXG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lbW9pemVkVGV4dENvbnRleHQocHJldjogU2xhdGVUZXh0Q29udGV4dCwgbmV4dDogU2xhdGVUZXh0Q29udGV4dCkge1xuICAgIHJldHVybiAoXG4gICAgICAgIG5leHQucGFyZW50ID09PSBwcmV2LnBhcmVudCAmJlxuICAgICAgICBuZXh0LmlzTGFzdCA9PT0gcHJldi5pc0xhc3QgJiZcbiAgICAgICAgbmV4dC50ZXh0ID09PSBwcmV2LnRleHQgJiZcbiAgICAgICAgaXNEZWNvcmF0b3JSYW5nZUxpc3RFcXVhbChuZXh0LmRlY29yYXRpb25zLCBwcmV2LmRlY29yYXRpb25zKVxuICAgICk7XG59XG4iXX0=
|
|
@@ -2059,6 +2059,8 @@ class ListRender {
|
|
|
2059
2059
|
else {
|
|
2060
2060
|
const newContexts = [];
|
|
2061
2061
|
this.children.forEach((child, index) => {
|
|
2062
|
+
NODE_TO_INDEX.set(child, index);
|
|
2063
|
+
NODE_TO_PARENT.set(child, parent);
|
|
2062
2064
|
let context = getContext$1(index, child, parentPath, childrenContext, this.viewContext);
|
|
2063
2065
|
const previousContext = this.contexts[index];
|
|
2064
2066
|
if (memoizedContext(this.viewContext, child, previousContext, context)) {
|
|
@@ -2153,7 +2155,7 @@ function getCommonContext(index, item, parentPath, viewContext, childrenContext)
|
|
|
2153
2155
|
}
|
|
2154
2156
|
}
|
|
2155
2157
|
catch (error) {
|
|
2156
|
-
|
|
2158
|
+
viewContext.editor.onError({
|
|
2157
2159
|
code: SlateErrorCode.GetStartPointError,
|
|
2158
2160
|
nativeError: error
|
|
2159
2161
|
});
|
|
@@ -3610,7 +3612,10 @@ class SlateEditable {
|
|
|
3610
3612
|
Transforms.select(this.editor, range);
|
|
3611
3613
|
return;
|
|
3612
3614
|
}
|
|
3613
|
-
if (startVoid &&
|
|
3615
|
+
if (startVoid &&
|
|
3616
|
+
endVoid &&
|
|
3617
|
+
Path.equals(startVoid[1], endVoid[1]) &&
|
|
3618
|
+
!(AngularEditor.isBlockCardLeftCursor(this.editor) || AngularEditor.isBlockCardRightCursor(this.editor))) {
|
|
3614
3619
|
const range = Editor.range(this.editor, start);
|
|
3615
3620
|
Transforms.select(this.editor, range);
|
|
3616
3621
|
}
|