@worktile/theia 17.4.5 → 17.4.7
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/esm2022/components/plugin-menu/plugin-menu.component.mjs +2 -2
- package/esm2022/plugins/quick-insert/components/quick-insert.component.mjs +16 -16
- package/esm2022/transforms/insert-elements.mjs +5 -11
- package/fesm2022/worktile-theia.mjs +20 -26
- package/fesm2022/worktile-theia.mjs.map +1 -1
- package/interfaces/editor.d.ts +1 -1
- package/package.json +1 -1
- package/plugins/quick-insert/components/quick-insert.component.d.ts +4 -5
- package/queries/is-range-across-blocks.d.ts +1 -1
- package/transforms/insert-elements.d.ts +1 -1
|
@@ -67,7 +67,7 @@ export class ThePluginMenuComponent {
|
|
|
67
67
|
const nodeString = Node.string(node);
|
|
68
68
|
const isStartWithHotkey = nodeString.startsWith('/') || nodeString.startsWith('#');
|
|
69
69
|
const isIncludeKeywords = nodeString.toLocaleLowerCase().trim().includes(this.keyWords);
|
|
70
|
-
if (
|
|
70
|
+
if (this.originKeywords?.length > 0 && (isStartWithHotkey || isIncludeKeywords)) {
|
|
71
71
|
Transforms.delete(this.editor, { distance: this.originKeywords.length, reverse: true });
|
|
72
72
|
}
|
|
73
73
|
};
|
|
@@ -248,4 +248,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
|
|
|
248
248
|
}], autoActiveFirstItem: [{
|
|
249
249
|
type: Input
|
|
250
250
|
}] } });
|
|
251
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvcGx1Z2luLW1lbnUvcGx1Z2luLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvcGx1Z2luLW1lbnUvcGx1Z2luLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQXFCLFNBQVMsRUFBYyxXQUFXLEVBQUUsS0FBSyxFQUFrQixZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0gsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSx3QkFBd0IsRUFBRSxvQkFBb0IsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pJLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBaUIsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBaUIsVUFBVSxFQUFF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QWM7d0JBQ2QsY0FBYzt3QkFDZCxPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixjQUFjO3dCQUNkLHdCQUF3Qjt3QkFDeEIsb0JBQW9CO3dCQUNwQixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsd0JBQXdCO3dCQUN4Qix5QkFBeUI7d0JBQ3pCLDBCQUEwQjt3QkFDMUIsNEJBQTRCO3FCQUMvQjtnS0EwQ2lFLGdCQUFnQjtzQkFBakYsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRTtnQkFFMUMsa0JBQWtCO3NCQUF2QyxXQUFXO3VCQUFDLE9BQU87Z0JBRVgsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxtQkFBbUI7c0JBQTNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE5nWm9uZSwgT25Jbml0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGh5QWN0aW9uIH0gZnJvbSAnbmd4LXRldGh5cy9hY3Rpb24nO1xuaW1wb3J0IHsgU2Nyb2xsVG9TZXJ2aWNlIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRoeURpdmlkZXIgfSBmcm9tICduZ3gtdGV0aHlzL2RpdmlkZXInO1xuaW1wb3J0IHsgVGh5RHJvcGRvd25EaXJlY3RpdmUsIFRoeURyb3Bkb3duTWVudUNvbXBvbmVudCwgVGh5RHJvcGRvd25NZW51R3JvdXAsIFRoeURyb3Bkb3duTWVudUl0ZW1EaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL2Ryb3Bkb3duJztcbmltcG9ydCB7IFRoeUVtcHR5TW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9lbXB0eSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeUlucHV0U2VhcmNoIH0gZnJvbSAnbmd4LXRldGh5cy9pbnB1dCc7XG5pbXBvcnQgeyBUaHlQb3BvdmVyRGlyZWN0aXZlLCBUaHlQb3BvdmVyUmVmIH0gZnJvbSAnbmd4LXRldGh5cy9wb3BvdmVyJztcbmltcG9ydCB7IFRoeVRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgRWRpdG9yLCBOb2RlLCBQYXRoUmVmLCBUZXh0LCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgRGVmYXVsdFBsdWdpbk1lbnUsIFRoZVBsdWdpbk1lbnVJdGVtVHlwZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBidWlsZFBsdWdpbk1lbnUsIGJ1aWxkUGx1Z2luTWVudUl0ZW1NYXAgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IFRoZVBsdWdpbk1lbnUsIFRoZVBsdWdpbk1lbnVHcm91cCwgVGhlUGx1Z2luTWVudUl0ZW0sIFRoZVBsdWdpbk1lbnVJdGVtQ29uZmlnLCBUaGVQbHVnaW5NZW51SXRlbVdyYXAgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBsdWdpbk1lbnVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMnO1xuaW1wb3J0IHsgUXVpY2tJbnNlcnRFZGl0b3IgfSBmcm9tICcuLi8uLi9wbHVnaW5zL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgcmVmb2N1cyB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFRoZVByZXZlbnREZWZhdWx0RGlyZWN0aXZlIH0gZnJvbSAnLi4vYWN0aW9uL3ByZXZlbnQtZGVmYXVsdCc7XG5pbXBvcnQgeyBUaGVMaXN0Ym94Q2hhbmdlRXZlbnQsIFRoZUxpc3Rib3hEaXJlY3RpdmUsIFRoZUxpc3Rib3hHcm91cERpcmVjdGl2ZSwgVGhlTGlzdGJveE9wdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL2xpc3Rib3gvbGlzdGJveCc7XG5pbXBvcnQgeyBUaGVUYWJsZVNlbGVjdCB9IGZyb20gJy4uL3RhYmxlLXNlbGVjdC90YWJsZS1zZWxlY3QuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aGUtcGx1Z2luLW1lbnUnLFxuICAgIHRlbXBsYXRlVXJsOiAncGx1Z2luLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ0ZvcixcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFRoeUVtcHR5TW9kdWxlLFxuICAgICAgICBUaGVUYWJsZVNlbGVjdCxcbiAgICAgICAgVGh5SWNvbixcbiAgICAgICAgVGh5QWN0aW9uLFxuICAgICAgICBUaHlEaXZpZGVyLFxuICAgICAgICBUaHlJbnB1dFNlYXJjaCxcbiAgICAgICAgVGh5RHJvcGRvd25NZW51Q29tcG9uZW50LFxuICAgICAgICBUaHlEcm9wZG93bk1lbnVHcm91cCxcbiAgICAgICAgUGx1Z2luTWVudVBpcGUsXG4gICAgICAgIFRoeVRvb2x0aXBEaXJlY3RpdmUsXG4gICAgICAgIFRoeVBvcG92ZXJEaXJlY3RpdmUsXG4gICAgICAgIFRoZUxpc3Rib3hEaXJlY3RpdmUsXG4gICAgICAgIFRoeURyb3Bkb3duRGlyZWN0aXZlLFxuICAgICAgICBUaGVMaXN0Ym94R3JvdXBEaXJlY3RpdmUsXG4gICAgICAgIFRoZUxpc3Rib3hPcHRpb25EaXJlY3RpdmUsXG4gICAgICAgIFRoZVByZXZlbnREZWZhdWx0RGlyZWN0aXZlLFxuICAgICAgICBUaHlEcm9wZG93bk1lbnVJdGVtRGlyZWN0aXZlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUaGVQbHVnaW5NZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBsaXN0Qm94QXV0b0FjdGl2ZUZpcnN0SXRlbSA9IHRydWU7XG5cbiAgICBwYXRoUmVmOiBQYXRoUmVmO1xuXG4gICAga2V5Ym9hcmRDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXG4gICAgX3BsdWdpbk1lbnU6IFRoZVBsdWdpbk1lbnU7XG5cbiAgICBncm91cE1lbnU6IFRoZVBsdWdpbk1lbnUgPSBbXTtcblxuICAgIGljb25NZW51OiBUaGVQbHVnaW5NZW51ID0gW107XG5cbiAgICBUaGVQbHVnaW5NZW51SXRlbVR5cGUgPSBUaGVQbHVnaW5NZW51SXRlbVR5cGU7XG5cbiAgICBrZXlXb3Jkczogc3RyaW5nO1xuXG4gICAgdGh5TWVzc2FnZSA9ICfmmoLml6DmlbDmja4nO1xuXG4gICAgc2Nyb2xsQ29udGFpbmVyOiBIVE1MRWxlbWVudDtcblxuICAgIHNlYXJjaEdyb3VwOiBUaGVQbHVnaW5NZW51R3JvdXAgPSB7XG4gICAgICAgIGdyb3VwTmFtZTogJ+aQnOe0oue7k+aenCdcbiAgICB9O1xuXG4gICAgZXhwYW5kUG9wb3Zlck9wdGlvbnMgPSB7XG4gICAgICAgIHBsYWNlbWVudDogJ3JpZ2h0VG9wJyxcbiAgICAgICAgd2lkdGg6ICcyNjJweCcsXG4gICAgICAgIG1pbldpZHRoOiAnMjYycHgnXG4gICAgfTtcblxuICAgIHRhYmxlU2VsZWN0UG9wb3ZlckNvbmZpZyA9IHtcbiAgICAgICAgcGFuZWxDbGFzczogJ3BsdWdpbi1tZW51LXRhYmxlLXNlbGVjdC1jb250YWluZXInLFxuICAgICAgICBtaW5XaWR0aDogMCxcbiAgICAgICAgLy8gIOmBv+WFjemHjeWGmVxuICAgICAgICBvcmlnaW5BY3RpdmVDbGFzczogJ3RoeS1wb3BvdmVyLW9yaWdpbi1hY3RpdmUnXG4gICAgfTtcblxuICAgIG9yaWdpbktleXdvcmRzOiBzdHJpbmc7XG5cbiAgICBAVmlld0NoaWxkcmVuKCdkcm9wZG93blRyaWdnZXJzJywgeyByZWFkOiBUaHlEcm9wZG93bkRpcmVjdGl2ZSB9KSBkcm9wZG93blRyaWdnZXJzOiBUaHlEcm9wZG93bkRpcmVjdGl2ZVtdO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNvbnRhaW5lckNsYXNzTmFtZSA9IGB0aGUtcGx1Z2luLW1lbnUtY29udGFpbmVyYDtcblxuICAgIEBJbnB1dCgpIGVkaXRvcjogRWRpdG9yO1xuXG4gICAgQElucHV0KCkgdGhlRGlzcGxheVNlYXJjaDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgdGhlUGx1Z2luTWVudTogVGhlUGx1Z2luTWVudUl0ZW1Db25maWdbXTtcblxuICAgIEBJbnB1dCgpIHNjZW5lS2V5Pzogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgc3ViUGFuZWxDbGFzczogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgICBASW5wdXQoKSBhdXRvQWN0aXZlRmlyc3RJdGVtOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHRoeVBvcG92ZXJSZWY6IFRoeVBvcG92ZXJSZWY8VGhlUGx1Z2luTWVudUNvbXBvbmVudD5cbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmF1dG9BY3RpdmVGaXJzdEl0ZW0gfHwgdGhpcy50aGVEaXNwbGF5U2VhcmNoKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RCb3hBdXRvQWN0aXZlRmlyc3RJdGVtID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0aWFsaXplU2VhcmNoKCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVBsdWdpbk1lbnUoKTtcbiAgICAgICAgdGhpcy5idWlsZE1lbnVzKCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxDb250YWluZXIgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcudGhlLXBsdWdpbi1tZW51LXNjcm9sbC1jb250YWluZXInKTtcbiAgICAgICAgfSwgMCk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZVNlYXJjaCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGhlRGlzcGxheVNlYXJjaCkge1xuICAgICAgICAgICAgdGhpcy5rZXlib2FyZENvbnRhaW5lciA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8g6K6w5L2P5L2N572uXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZWRpdG9yLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhdGhSZWYgPSBFZGl0b3IucGF0aFJlZih0aGlzLmVkaXRvciwgdGhpcy5lZGl0b3Iuc2VsZWN0aW9uLmFuY2hvci5wYXRoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS5mb2N1cygpO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmtleWJvYXJkQ29udGFpbmVyID0gQW5ndWxhckVkaXRvci50b0RPTU5vZGUodGhpcy5lZGl0b3IsIHRoaXMuZWRpdG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGluaXRpYWxpemVQbHVnaW5NZW51KCkge1xuICAgICAgICBjb25zdCBjdXJyZW50TWVudSA9IHRoaXMudGhlUGx1Z2luTWVudSB8fCBEZWZhdWx0UGx1Z2luTWVudTtcbiAgICAgICAgY29uc3QgbWVudUl0ZW1zTWFwID0gYnVpbGRQbHVnaW5NZW51SXRlbU1hcCh0aGlzLmVkaXRvcik7XG4gICAgICAgIHRoaXMuX3BsdWdpbk1lbnUgPSBidWlsZFBsdWdpbk1lbnUobWVudUl0ZW1zTWFwLCBjdXJyZW50TWVudSk7XG4gICAgfVxuXG4gICAgYnVpbGRNZW51cygpIHtcbiAgICAgICAgdGhpcy5pY29uTWVudSA9IFtdO1xuICAgICAgICB0aGlzLmdyb3VwTWVudSA9IFtdO1xuXG4gICAgICAgIHRoaXMuX3BsdWdpbk1lbnUuZm9yRWFjaCgoaXRlbTogVGhlUGx1Z2luTWVudUl0ZW1XcmFwKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0hpZGRlbiA9IGl0ZW0/LmlzSGlkZGVuICYmIGl0ZW0uaXNIaWRkZW4odGhpcy5lZGl0b3IpO1xuXG4gICAgICAgICAgICBpZiAoVGhlUGx1Z2luTWVudS5pc01lbnVJdGVtKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5pc01lbnVJdGVtID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpdGVtLmRpc2FibGVkID0gaXRlbS5pc0Rpc2FibGVkICYmIGl0ZW0uaXNEaXNhYmxlZCh0aGlzLmVkaXRvcik7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMua2V5V29yZHMgJiYgIWlzSGlkZGVuICYmIGl0ZW0ua2V5d29yZHMgJiYgaXRlbS5rZXl3b3Jkcz8uaW5jbHVkZXModGhpcy5rZXlXb3JkcykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncm91cE1lbnUucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCFpc0hpZGRlbiAmJiBpdGVtLmNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmNoaWxkcmVuPy5mb3JFYWNoKChjaGlsZDogVGhlUGx1Z2luTWVudUl0ZW1XcmFwIHwgJ2RpdmlkZXInKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQgPT09ICdkaXZpZGVyJykgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZC5pc01lbnVJdGVtID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLmRpc2FibGVkID0gY2hpbGQuaXNEaXNhYmxlZCAmJiBjaGlsZC5pc0Rpc2FibGVkKHRoaXMuZWRpdG9yKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNIaWRkZW5DaGlkID0gaXRlbS5pc0hpZGRlbiAmJiBpdGVtLmlzSGlkZGVuKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmtleVdvcmRzICYmICFpc0hpZGRlbkNoaWQgJiYgY2hpbGQua2V5d29yZHMgJiYgY2hpbGQua2V5d29yZHM/LmluY2x1ZGVzKHRoaXMua2V5V29yZHMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ncm91cE1lbnUucHVzaChjaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCF0aGlzLmtleVdvcmRzICYmICFpc0hpZGRlbikge1xuICAgICAgICAgICAgICAgIGl0ZW0/LnR5cGUgPT09IFRoZVBsdWdpbk1lbnVJdGVtVHlwZS5pY29uID8gdGhpcy5pY29uTWVudS5wdXNoKGl0ZW0pIDogdGhpcy5ncm91cE1lbnUucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMua2V5V29yZHMgJiYgdGhpcy5ncm91cE1lbnUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5ncm91cE1lbnUudW5zaGlmdCh0aGlzLnNlYXJjaEdyb3VwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5rZXlXb3Jkcykge1xuICAgICAgICAgICAgY29uc3QgbWVudXMgPSBbLi4udGhpcy5ncm91cE1lbnVdO1xuICAgICAgICAgICAgdGhpcy5ncm91cE1lbnUgPSBtZW51cy5maWx0ZXIoKGl0ZW06IFRoZVBsdWdpbk1lbnVJdGVtV3JhcCwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzR3JvdXBNZW51ID0gVGhlUGx1Z2luTWVudS5pc01lbnVHcm91cChpdGVtKTtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0TWVudSA9IG1lbnVzW2luZGV4ICsgMV07XG4gICAgICAgICAgICAgICAgY29uc3QgaXNMYXN0TWVudSA9IGluZGV4ID09PSBtZW51cy5sZW5ndGggLSAxO1xuXG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAobmV4dE1lbnUgJiYgaXNHcm91cE1lbnUgJiYgVGhlUGx1Z2luTWVudS5pc01lbnVHcm91cChuZXh0TWVudSkpIHx8XG4gICAgICAgICAgICAgICAgICAgIChpc0xhc3RNZW51ICYmIGlzR3JvdXBNZW51KSB8fFxuICAgICAgICAgICAgICAgICAgICAoaXRlbT8uY2hpbGRyZW4gJiYgaXRlbT8uY2hpbGRyZW4/Lmxlbmd0aCA8PSAwKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIGhhbmRsZUl0ZW1TZWxlY3Rpb24obWVudUl0ZW06IFRoZVBsdWdpbk1lbnVJdGVtKSB7XG4gICAgICAgIGlmIChtZW51SXRlbS5pc0Rpc2FibGVkICYmIG1lbnVJdGVtLmlzRGlzYWJsZWQodGhpcy5lZGl0b3IpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmVkaXRvci5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIHJlZm9jdXModGhpcy5lZGl0b3IpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy50aGVEaXNwbGF5U2VhcmNoKSB7XG4gICAgICAgICAgICBtZW51SXRlbT8ucmVtb3ZlS2V5d29yZHNUeXBlID09PSAnY2hhcmFjdGVyJyA/IHRoaXMucmVtb3ZlQ2hhcmFjdGVyKCkgOiB0aGlzLnJlbW92ZUJsb2NrKCk7XG4gICAgICAgIH1cbiAgICAgICAgbWVudUl0ZW0uZXhlY3V0ZSh0aGlzLmVkaXRvcik7XG4gICAgICAgIHRoaXMudGh5UG9wb3ZlclJlZi5jbG9zZSgpO1xuICAgICAgICBRdWlja0luc2VydEVkaXRvci51cGRhdGVQbHVnaW5NZW51UmVmKHRoaXMuZWRpdG9yLCBudWxsKTtcbiAgICB9XG5cbiAgICByZW1vdmVCbG9jayA9ICgpID0+IHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IE5vZGUuZ2V0KHRoaXMuZWRpdG9yLCB0aGlzLmVkaXRvci5zZWxlY3Rpb24uYW5jaG9yLnBhdGgpIGFzIFRleHQ7XG4gICAgICAgIGNvbnN0IG5vZGVTdHJpbmcgPSBOb2RlLnN0cmluZyhub2RlKTtcbiAgICAgICAgY29uc3QgaXNTdGFydFdpdGhIb3RrZXkgPSBub2RlU3RyaW5nLnN0YXJ0c1dpdGgoJy8nKTtcbiAgICAgICAgY29uc3QgaXNJbmNsdWRlS2V5d29yZHMgPSBub2RlU3RyaW5nLnRvTG9jYWxlTG93ZXJDYXNlKCkudHJpbSgpLmluY2x1ZGVzKHRoaXMua2V5V29yZHMpO1xuICAgICAgICBpZiAobm9kZSAmJiBub2RlU3RyaW5nLmxlbmd0aCA+IDAgJiYgKGlzU3RhcnRXaXRoSG90a2V5IHx8IGlzSW5jbHVkZUtleXdvcmRzKSkge1xuICAgICAgICAgICAgRWRpdG9yLmRlbGV0ZUJhY2t3YXJkKHRoaXMuZWRpdG9yLCB7IHVuaXQ6ICdibG9jaycgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmVtb3ZlQ2hhcmFjdGVyID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBub2RlID0gTm9kZS5nZXQodGhpcy5lZGl0b3IsIHRoaXMuZWRpdG9yLnNlbGVjdGlvbi5hbmNob3IucGF0aCkgYXMgVGV4dDtcbiAgICAgICAgY29uc3Qgbm9kZVN0cmluZyA9IE5vZGUuc3RyaW5nKG5vZGUpO1xuICAgICAgICBjb25zdCBpc1N0YXJ0V2l0aEhvdGtleSA9IG5vZGVTdHJpbmcuc3RhcnRzV2l0aCgnLycpIHx8IG5vZGVTdHJpbmcuc3RhcnRzV2l0aCgnIycpO1xuICAgICAgICBjb25zdCBpc0luY2x1ZGVLZXl3b3JkcyA9IG5vZGVTdHJpbmcudG9Mb2NhbGVMb3dlckNhc2UoKS50cmltKCkuaW5jbHVkZXModGhpcy5rZXlXb3Jkcyk7XG4gICAgICAgIGlmIChub2RlICYmIG5vZGVTdHJpbmcubGVuZ3RoID4gMSAmJiAoaXNTdGFydFdpdGhIb3RrZXkgfHwgaXNJbmNsdWRlS2V5d29yZHMpKSB7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLmRlbGV0ZSh0aGlzLmVkaXRvciwgeyBkaXN0YW5jZTogdGhpcy5vcmlnaW5LZXl3b3Jkcy5sZW5ndGgsIHJldmVyc2U6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgdXBkYXRlS2V5d29yZHMoa2V5d29yZHM6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5hdXRvQWN0aXZlRmlyc3RJdGVtKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RCb3hBdXRvQWN0aXZlRmlyc3RJdGVtID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9yaWdpbktleXdvcmRzID0ga2V5d29yZHM7XG4gICAgICAgIHRoaXMua2V5V29yZHMgPSBrZXl3b3Jkcy50b0xvd2VyQ2FzZSgpLnRyaW0oKTtcbiAgICAgICAgdGhpcy5idWlsZE1lbnVzKCk7XG4gICAgICAgIGlmICh0aGlzLnNjcm9sbENvbnRhaW5lcikge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxDb250YWluZXIuc2Nyb2xsVG9wID0gMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRoZUxpc3Rib3hDaGFuZ2UoZXZlbnQ6IFRoZUxpc3Rib3hDaGFuZ2VFdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3NlbGVjdCcpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlSXRlbVNlbGVjdGlvbihldmVudC5vcHRpb24udGhlT3B0aW9uVmFsdWUgYXMgVGhlUGx1Z2luTWVudUl0ZW0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC50eXBlID09PSAnY2hpbGQnKSB7XG4gICAgICAgICAgICBjb25zdCBkcm9wZG93biA9IHRoaXMuZmluZERyb3Bkb3duVHJpZ2dlcihldmVudC5vcHRpb24ucGFyZW50T3B0aW9uKTtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgZHJvcGRvd24uc2hvdygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdwYXJlbnQnKSB7XG4gICAgICAgICAgICBjb25zdCBkcm9wZG93biA9IHRoaXMuZmluZERyb3Bkb3duVHJpZ2dlcihldmVudC5vcHRpb24pO1xuICAgICAgICAgICAgZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC50eXBlID09PSAndHVybicgJiYgIWV2ZW50Lm9wdGlvbi5wYXJlbnRPcHRpb24pIHtcbiAgICAgICAgICAgIFNjcm9sbFRvU2VydmljZS5zY3JvbGxUb0VsZW1lbnQoZXZlbnQub3B0aW9uLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5zY3JvbGxDb250YWluZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZmluZERyb3Bkb3duVHJpZ2dlcihvcHRpb246IFRoZUxpc3Rib3hPcHRpb25EaXJlY3RpdmUpIHtcbiAgICAgICAgY29uc3QgZHJvcGRvd24gPSB0aGlzLmRyb3Bkb3duVHJpZ2dlcnMuZmluZCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWVbJ2VsZW1lbnRSZWYnXS5uYXRpdmVFbGVtZW50ID09PSBvcHRpb24uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGRyb3Bkb3duO1xuICAgIH1cblxuICAgIHRyYWNrQnlGbihpbmRleDogVGhlUGx1Z2luTWVudUl0ZW0sIGl0ZW06IGFueSkge1xuICAgICAgICByZXR1cm4gaXRlbT8ua2V5ID8/IGluZGV4O1xuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJ0aGVEaXNwbGF5U2VhcmNoXCIgY2xhc3M9XCJtZW51LXNlYXJjaCBweC01IHB0LTUgcGItMlwiPlxuICA8dGh5LWlucHV0LXNlYXJjaCBbKG5nTW9kZWwpXT1cImtleVdvcmRzXCIgcGxhY2Vob2xkZXI9XCLmkJzntKJcIiB0aHlJY29uUG9zaXRpb249XCJhZnRlclwiIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZUtleXdvcmRzKGtleVdvcmRzKVwiPlxuICA8L3RoeS1pbnB1dC1zZWFyY2g+XG48L2Rpdj5cblxuPGRpdlxuICAqbmdJZj1cImdyb3VwTWVudS5sZW5ndGggPiAwOyBlbHNlIGVtcHR5XCJcbiAgdGhlTGlzdEJveFxuICBba2V5Ym9hcmRDb250YWluZXJdPVwia2V5Ym9hcmRDb250YWluZXJcIlxuICBbYXV0b0FjdGl2ZUZpcnN0SXRlbV09XCJsaXN0Qm94QXV0b0FjdGl2ZUZpcnN0SXRlbVwiXG4gICh0aGVMaXN0Ym94Q2hhbmdlKT1cInRoZUxpc3Rib3hDaGFuZ2UoJGV2ZW50KVwiXG4gIGNsYXNzPVwidGh5LWRyb3Bkb3duLW1lbnUgdGhlLXBsdWdpbi1tZW51LXNjcm9sbC1jb250YWluZXIgcGItMiBwdC0wXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImljb25NZW51Py5sZW5ndGggPiAwXCI+XG4gICAgPGRpdiB0aGVMaXN0Ym94R3JvdXAgW2hvcml6b250YWxDb2x1bW5dPVwiNlwiIGNsYXNzPVwiaWNvbi1tZW51IGQtZmxleCBwbC01IHB5LTFcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaWNvbk1lbnU7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgICA8YVxuICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09PSBUaGVQbHVnaW5NZW51SXRlbVR5cGUuaWNvblwiXG4gICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6O1wiXG4gICAgICAgICAgY2xhc3M9XCJtdC0yXCJcbiAgICAgICAgICB0aHlBY3Rpb25cbiAgICAgICAgICB0aGVMaXN0Ym94T3B0aW9uXG4gICAgICAgICAgW3RoZU9wdGlvblZhbHVlXT1cIml0ZW1cIlxuICAgICAgICAgIFt0aHlBY3Rpb25JY29uXT1cIml0ZW0uaWNvblwiXG4gICAgICAgICAgW3RoeVRvb2x0aXBdPVwiaXRlbT8ubmFtZVwiXG4gICAgICAgICAgW3RoeURpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgIFt0aGVPcHRpb25EaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICB0aGVQcmV2ZW50RGVmYXVsdFxuICAgICAgICAgIChjbGljayk9XCJoYW5kbGVJdGVtU2VsZWN0aW9uKGl0ZW0pXCJcbiAgICAgICAgPjwvYT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDx0aHktZGl2aWRlciBjbGFzcz1cIm15LTJcIj48L3RoeS1kaXZpZGVyPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8ZGl2IHRoZUxpc3Rib3hHcm91cD5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdyb3VwTWVudTsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5pc01lbnVJdGVtICYmICEoaXRlbS5jaGlsZHJlbj8ubGVuZ3RoID4gMCkgJiYgaXRlbS5rZXkgIT09ICd0YWJsZSdcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIHRoeURyb3Bkb3duTWVudUl0ZW1cbiAgICAgICAgICB0aGVMaXN0Ym94T3B0aW9uXG4gICAgICAgICAgW3RoZU9wdGlvblZhbHVlXT1cIml0ZW1cIlxuICAgICAgICAgIGNsYXNzPVwicHktMFwiXG4gICAgICAgICAgdGhlUHJldmVudERlZmF1bHRcbiAgICAgICAgICBbdGh5RGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgW3RoZU9wdGlvbkRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJoYW5kbGVJdGVtU2VsZWN0aW9uKGl0ZW0pXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLm1lbnVJY29uXCIgY2xhc3M9XCJtZW51LWljb24gbXItMlwiPlxuICAgICAgICAgICAgPHRoeS1pY29uIFt0aHlJY29uTmFtZV09XCJpdGVtLm1lbnVJY29uIHwgZ2V0TWVudUljb246IHNjZW5lS2V5XCI+PC90aHktaWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1jb250ZW50IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0tdGl0bGUgdy0xMDBcIj5cbiAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uaXNNZW51SXRlbSAmJiBpdGVtLmNoaWxkcmVuPy5sZW5ndGggPiAwXCIgI2hhc0V4cGFuZGVkPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgI2Ryb3Bkb3duVHJpZ2dlcnNcbiAgICAgICAgICBbdGh5RHJvcGRvd25dPVwiZXhwYW5kXCJcbiAgICAgICAgICB0aHlUcmlnZ2VyPVwiaG92ZXJcIlxuICAgICAgICAgIHRoeURyb3Bkb3duTWVudUl0ZW1cbiAgICAgICAgICBbdGh5RGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgdGhlTGlzdGJveE9wdGlvblxuICAgICAgICAgIFt0aGVPcHRpb25WYWx1ZV09XCJpdGVtXCJcbiAgICAgICAgICBbdGhlT3B0aW9uRGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgW3RoeVBvcG92ZXJPcHRpb25zXT1cImV4cGFuZFBvcG92ZXJPcHRpb25zXCJcbiAgICAgICAgICBjbGFzcz1cInB5LTBcIlxuICAgICAgICAgIHRoZVByZXZlbnREZWZhdWx0XG4gICAgICAgICAgW3RoeVBhbmVsQ2xhc3NdPVwic3ViUGFuZWxDbGFzc1wiXG4gICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUl0ZW1TZWxlY3Rpb24oaXRlbSlcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0ubWVudUljb25cIiBjbGFzcz1cIm1lbnUtaWNvbiBtci0yXCI+XG4gICAgICAgICAgICA8dGh5LWljb24gW3RoeUljb25OYW1lXT1cIml0ZW0ubWVudUljb24gfCBnZXRNZW51SWNvbjogc2NlbmVLZXlcIj48L3RoeS1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWNvbnRlbnQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaXRlbS10aXRsZSB3LTEwMFwiPlxuICAgICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLmNoaWxkcmVuPy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICA8dGh5LWljb24gY2xhc3M9XCJ0ZXh0LW11dGVkXCIgdGh5SWNvbk5hbWU9XCJhbmdsZS1yaWdodFwiPjwvdGh5LWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHRoeS1kcm9wZG93bi1tZW51ICNleHBhbmQ+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGhlLXBsdWdpbi1tZW51LWNvbnRhaW5lciBleHBhbmQtbWVudVwiIHRoZUxpc3Rib3hHcm91cD5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2hpbGQgb2YgaXRlbS5jaGlsZHJlblwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY2hpbGQudHlwZSA9PT0gVGhlUGx1Z2luTWVudUl0ZW1UeXBlLmdyb3VwXCJcbiAgICAgICAgICAgICAgICAgIHRoeURyb3Bkb3duTWVudUl0ZW1cbiAgICAgICAgICAgICAgICAgIHRoZUxpc3Rib3hPcHRpb25cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHktMFwiXG4gICAgICAgICAgICAgICAgICB0aGVQcmV2ZW50RGVmYXVsdFxuICAgICAgICAgICAgICAgICAgW3RoZU9wdGlvbkRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgW3RoeURpc2FibGVkXT1cImNoaWxkLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVJdGVtU2VsZWN0aW9uKGNoaWxkKVwiXG4gICAgICAgICAgICAgICAgICBbdGhlT3B0aW9uVmFsdWVdPVwiY2hpbGRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjaGlsZC5tZW51SWNvblwiIGNsYXNzPVwibWVudS1pY29uIG1yLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRoeS1pY29uIFt0aHlJY29uTmFtZV09XCJjaGlsZC5tZW51SWNvbiB8IGdldE1lbnVJY29uOiBzY2VuZUtleVwiPjwvdGh5LWljb24+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWNvbnRlbnQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1pdGVtLXRpdGxlIHctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgY2hpbGQubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDx0aHktZGl2aWRlciAqbmdJZj1cImNoaWxkID09PSAnZGl2aWRlcidcIiBjbGFzcz1cIm15LTJcIj48L3RoeS1kaXZpZGVyPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvdGh5LWRyb3Bkb3duLW1lbnU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmlzTWVudUl0ZW0gJiYgaXRlbS5rZXkgPT09ICd0YWJsZSdcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICNkcm9wZG93blRyaWdnZXJzXG4gICAgICAgICAgW3RoeVBvcG92ZXJdPVwidGFibGVTZWxlY3RcIlxuICAgICAgICAgIHRoeVBsYWNlbWVudD1cInJpZ2h0VG9wXCJcbiAgICAgICAgICB0aHlUcmlnZ2VyPVwiaG92ZXJcIlxuICAgICAgICAgIHRoeURyb3Bkb3duTWVudUl0ZW1cbiAgICAgICAgICB0aGVMaXN0Ym94T3B0aW9uXG4gICAgICAgICAgW3RoeUNvbmZpZ109XCJ0YWJsZVNlbGVjdFBvcG92ZXJDb25maWdcIlxuICAgICAgICAgIFt0aGVPcHRpb25WYWx1ZV09XCJpdGVtXCJcbiAgICAgICAgICBbdGhlT3B0aW9uRGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgW3RoeURpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgIGNsYXNzPVwicHktMFwiXG4gICAgICAgICAgdGhlUHJldmVudERlZmF1bHRcbiAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlSXRlbVNlbGVjdGlvbihpdGVtKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1pY29uIG1yLTJcIj5cbiAgICAgICAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiaXRlbS5tZW51SWNvbiB8IGdldE1lbnVJY29uOiBzY2VuZUtleVwiPjwvdGh5LWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtY29udGVudCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1pdGVtLXRpdGxlIHctMTAwXCI+XG4gICAgICAgICAgICAgIHt7IGl0ZW0ubmFtZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDx0aHktaWNvbiBjbGFzcz1cInRleHQtbXV0ZWRcIiB0aHlJY29uTmFtZT1cImFuZ2xlLXJpZ2h0XCI+PC90aHktaWNvbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdGFibGVTZWxlY3Q+XG4gICAgICAgICAgICA8dGFibGUtc2VsZWN0IGNsYXNzPVwicGx1Z2luLW1lbnUtdGFibGUgdGhlLXRhYmxlLXNlbGVjdG9yLXBhbmVsXCIgW2VkaXRvcl09XCJlZGl0b3JcIiBbYmVmb3JlSW5zZXJ0XT1cInJlbW92ZUJsb2NrXCI+PC90YWJsZS1zZWxlY3Q+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmlzTWVudUl0ZW1cIiAjbWVudUdyb3VwPlxuICAgICAgICA8dGh5LWRyb3Bkb3duLW1lbnUtZ3JvdXAgY2xhc3M9XCJmb250LXNpemUtc21cIiBbdGh5VGl0bGVdPVwiaXRlbS5ncm91cE5hbWVcIj48L3RoeS1kcm9wZG93bi1tZW51LWdyb3VwPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjZW1wdHk+XG4gIDxkaXYgY2xhc3M9XCJlbXB0eSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICA8dGh5LWVtcHR5IFt0aHlNZXNzYWdlXT1cInRoeU1lc3NhZ2VcIj48L3RoeS1lbXB0eT5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
251
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvcGx1Z2luLW1lbnUvcGx1Z2luLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvcGx1Z2luLW1lbnUvcGx1Z2luLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQXFCLFNBQVMsRUFBYyxXQUFXLEVBQUUsS0FBSyxFQUFrQixZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0gsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSx3QkFBd0IsRUFBRSxvQkFBb0IsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pJLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBaUIsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBaUIsVUFBVSxFQUFF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QWM7d0JBQ2QsY0FBYzt3QkFDZCxPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixjQUFjO3dCQUNkLHdCQUF3Qjt3QkFDeEIsb0JBQW9CO3dCQUNwQixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsd0JBQXdCO3dCQUN4Qix5QkFBeUI7d0JBQ3pCLDBCQUEwQjt3QkFDMUIsNEJBQTRCO3FCQUMvQjtnS0EwQ2lFLGdCQUFnQjtzQkFBakYsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRTtnQkFFMUMsa0JBQWtCO3NCQUF2QyxXQUFXO3VCQUFDLE9BQU87Z0JBRVgsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxtQkFBbUI7c0JBQTNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE5nWm9uZSwgT25Jbml0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGh5QWN0aW9uIH0gZnJvbSAnbmd4LXRldGh5cy9hY3Rpb24nO1xuaW1wb3J0IHsgU2Nyb2xsVG9TZXJ2aWNlIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRoeURpdmlkZXIgfSBmcm9tICduZ3gtdGV0aHlzL2RpdmlkZXInO1xuaW1wb3J0IHsgVGh5RHJvcGRvd25EaXJlY3RpdmUsIFRoeURyb3Bkb3duTWVudUNvbXBvbmVudCwgVGh5RHJvcGRvd25NZW51R3JvdXAsIFRoeURyb3Bkb3duTWVudUl0ZW1EaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL2Ryb3Bkb3duJztcbmltcG9ydCB7IFRoeUVtcHR5TW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9lbXB0eSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeUlucHV0U2VhcmNoIH0gZnJvbSAnbmd4LXRldGh5cy9pbnB1dCc7XG5pbXBvcnQgeyBUaHlQb3BvdmVyRGlyZWN0aXZlLCBUaHlQb3BvdmVyUmVmIH0gZnJvbSAnbmd4LXRldGh5cy9wb3BvdmVyJztcbmltcG9ydCB7IFRoeVRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgRWRpdG9yLCBOb2RlLCBQYXRoUmVmLCBUZXh0LCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgRGVmYXVsdFBsdWdpbk1lbnUsIFRoZVBsdWdpbk1lbnVJdGVtVHlwZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBidWlsZFBsdWdpbk1lbnUsIGJ1aWxkUGx1Z2luTWVudUl0ZW1NYXAgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IFRoZVBsdWdpbk1lbnUsIFRoZVBsdWdpbk1lbnVHcm91cCwgVGhlUGx1Z2luTWVudUl0ZW0sIFRoZVBsdWdpbk1lbnVJdGVtQ29uZmlnLCBUaGVQbHVnaW5NZW51SXRlbVdyYXAgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBsdWdpbk1lbnVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMnO1xuaW1wb3J0IHsgUXVpY2tJbnNlcnRFZGl0b3IgfSBmcm9tICcuLi8uLi9wbHVnaW5zL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgcmVmb2N1cyB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFRoZVByZXZlbnREZWZhdWx0RGlyZWN0aXZlIH0gZnJvbSAnLi4vYWN0aW9uL3ByZXZlbnQtZGVmYXVsdCc7XG5pbXBvcnQgeyBUaGVMaXN0Ym94Q2hhbmdlRXZlbnQsIFRoZUxpc3Rib3hEaXJlY3RpdmUsIFRoZUxpc3Rib3hHcm91cERpcmVjdGl2ZSwgVGhlTGlzdGJveE9wdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL2xpc3Rib3gvbGlzdGJveCc7XG5pbXBvcnQgeyBUaGVUYWJsZVNlbGVjdCB9IGZyb20gJy4uL3RhYmxlLXNlbGVjdC90YWJsZS1zZWxlY3QuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aGUtcGx1Z2luLW1lbnUnLFxuICAgIHRlbXBsYXRlVXJsOiAncGx1Z2luLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ0ZvcixcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFRoeUVtcHR5TW9kdWxlLFxuICAgICAgICBUaGVUYWJsZVNlbGVjdCxcbiAgICAgICAgVGh5SWNvbixcbiAgICAgICAgVGh5QWN0aW9uLFxuICAgICAgICBUaHlEaXZpZGVyLFxuICAgICAgICBUaHlJbnB1dFNlYXJjaCxcbiAgICAgICAgVGh5RHJvcGRvd25NZW51Q29tcG9uZW50LFxuICAgICAgICBUaHlEcm9wZG93bk1lbnVHcm91cCxcbiAgICAgICAgUGx1Z2luTWVudVBpcGUsXG4gICAgICAgIFRoeVRvb2x0aXBEaXJlY3RpdmUsXG4gICAgICAgIFRoeVBvcG92ZXJEaXJlY3RpdmUsXG4gICAgICAgIFRoZUxpc3Rib3hEaXJlY3RpdmUsXG4gICAgICAgIFRoeURyb3Bkb3duRGlyZWN0aXZlLFxuICAgICAgICBUaGVMaXN0Ym94R3JvdXBEaXJlY3RpdmUsXG4gICAgICAgIFRoZUxpc3Rib3hPcHRpb25EaXJlY3RpdmUsXG4gICAgICAgIFRoZVByZXZlbnREZWZhdWx0RGlyZWN0aXZlLFxuICAgICAgICBUaHlEcm9wZG93bk1lbnVJdGVtRGlyZWN0aXZlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUaGVQbHVnaW5NZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBsaXN0Qm94QXV0b0FjdGl2ZUZpcnN0SXRlbSA9IHRydWU7XG5cbiAgICBwYXRoUmVmOiBQYXRoUmVmO1xuXG4gICAga2V5Ym9hcmRDb250YWluZXI6IEhUTUxFbGVtZW50O1xuXG4gICAgX3BsdWdpbk1lbnU6IFRoZVBsdWdpbk1lbnU7XG5cbiAgICBncm91cE1lbnU6IFRoZVBsdWdpbk1lbnUgPSBbXTtcblxuICAgIGljb25NZW51OiBUaGVQbHVnaW5NZW51ID0gW107XG5cbiAgICBUaGVQbHVnaW5NZW51SXRlbVR5cGUgPSBUaGVQbHVnaW5NZW51SXRlbVR5cGU7XG5cbiAgICBrZXlXb3Jkczogc3RyaW5nO1xuXG4gICAgdGh5TWVzc2FnZSA9ICfmmoLml6DmlbDmja4nO1xuXG4gICAgc2Nyb2xsQ29udGFpbmVyOiBIVE1MRWxlbWVudDtcblxuICAgIHNlYXJjaEdyb3VwOiBUaGVQbHVnaW5NZW51R3JvdXAgPSB7XG4gICAgICAgIGdyb3VwTmFtZTogJ+aQnOe0oue7k+aenCdcbiAgICB9O1xuXG4gICAgZXhwYW5kUG9wb3Zlck9wdGlvbnMgPSB7XG4gICAgICAgIHBsYWNlbWVudDogJ3JpZ2h0VG9wJyxcbiAgICAgICAgd2lkdGg6ICcyNjJweCcsXG4gICAgICAgIG1pbldpZHRoOiAnMjYycHgnXG4gICAgfTtcblxuICAgIHRhYmxlU2VsZWN0UG9wb3ZlckNvbmZpZyA9IHtcbiAgICAgICAgcGFuZWxDbGFzczogJ3BsdWdpbi1tZW51LXRhYmxlLXNlbGVjdC1jb250YWluZXInLFxuICAgICAgICBtaW5XaWR0aDogMCxcbiAgICAgICAgLy8gIOmBv+WFjemHjeWGmVxuICAgICAgICBvcmlnaW5BY3RpdmVDbGFzczogJ3RoeS1wb3BvdmVyLW9yaWdpbi1hY3RpdmUnXG4gICAgfTtcblxuICAgIG9yaWdpbktleXdvcmRzOiBzdHJpbmc7XG5cbiAgICBAVmlld0NoaWxkcmVuKCdkcm9wZG93blRyaWdnZXJzJywgeyByZWFkOiBUaHlEcm9wZG93bkRpcmVjdGl2ZSB9KSBkcm9wZG93blRyaWdnZXJzOiBUaHlEcm9wZG93bkRpcmVjdGl2ZVtdO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNvbnRhaW5lckNsYXNzTmFtZSA9IGB0aGUtcGx1Z2luLW1lbnUtY29udGFpbmVyYDtcblxuICAgIEBJbnB1dCgpIGVkaXRvcjogRWRpdG9yO1xuXG4gICAgQElucHV0KCkgdGhlRGlzcGxheVNlYXJjaDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgdGhlUGx1Z2luTWVudTogVGhlUGx1Z2luTWVudUl0ZW1Db25maWdbXTtcblxuICAgIEBJbnB1dCgpIHNjZW5lS2V5Pzogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgc3ViUGFuZWxDbGFzczogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgICBASW5wdXQoKSBhdXRvQWN0aXZlRmlyc3RJdGVtOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHRoeVBvcG92ZXJSZWY6IFRoeVBvcG92ZXJSZWY8VGhlUGx1Z2luTWVudUNvbXBvbmVudD5cbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmF1dG9BY3RpdmVGaXJzdEl0ZW0gfHwgdGhpcy50aGVEaXNwbGF5U2VhcmNoKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RCb3hBdXRvQWN0aXZlRmlyc3RJdGVtID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0aWFsaXplU2VhcmNoKCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVBsdWdpbk1lbnUoKTtcbiAgICAgICAgdGhpcy5idWlsZE1lbnVzKCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxDb250YWluZXIgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcudGhlLXBsdWdpbi1tZW51LXNjcm9sbC1jb250YWluZXInKTtcbiAgICAgICAgfSwgMCk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZVNlYXJjaCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGhlRGlzcGxheVNlYXJjaCkge1xuICAgICAgICAgICAgdGhpcy5rZXlib2FyZENvbnRhaW5lciA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8g6K6w5L2P5L2N572uXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZWRpdG9yLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhdGhSZWYgPSBFZGl0b3IucGF0aFJlZih0aGlzLmVkaXRvciwgdGhpcy5lZGl0b3Iuc2VsZWN0aW9uLmFuY2hvci5wYXRoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS5mb2N1cygpO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmtleWJvYXJkQ29udGFpbmVyID0gQW5ndWxhckVkaXRvci50b0RPTU5vZGUodGhpcy5lZGl0b3IsIHRoaXMuZWRpdG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGluaXRpYWxpemVQbHVnaW5NZW51KCkge1xuICAgICAgICBjb25zdCBjdXJyZW50TWVudSA9IHRoaXMudGhlUGx1Z2luTWVudSB8fCBEZWZhdWx0UGx1Z2luTWVudTtcbiAgICAgICAgY29uc3QgbWVudUl0ZW1zTWFwID0gYnVpbGRQbHVnaW5NZW51SXRlbU1hcCh0aGlzLmVkaXRvcik7XG4gICAgICAgIHRoaXMuX3BsdWdpbk1lbnUgPSBidWlsZFBsdWdpbk1lbnUobWVudUl0ZW1zTWFwLCBjdXJyZW50TWVudSk7XG4gICAgfVxuXG4gICAgYnVpbGRNZW51cygpIHtcbiAgICAgICAgdGhpcy5pY29uTWVudSA9IFtdO1xuICAgICAgICB0aGlzLmdyb3VwTWVudSA9IFtdO1xuXG4gICAgICAgIHRoaXMuX3BsdWdpbk1lbnUuZm9yRWFjaCgoaXRlbTogVGhlUGx1Z2luTWVudUl0ZW1XcmFwKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0hpZGRlbiA9IGl0ZW0/LmlzSGlkZGVuICYmIGl0ZW0uaXNIaWRkZW4odGhpcy5lZGl0b3IpO1xuXG4gICAgICAgICAgICBpZiAoVGhlUGx1Z2luTWVudS5pc01lbnVJdGVtKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5pc01lbnVJdGVtID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpdGVtLmRpc2FibGVkID0gaXRlbS5pc0Rpc2FibGVkICYmIGl0ZW0uaXNEaXNhYmxlZCh0aGlzLmVkaXRvcik7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMua2V5V29yZHMgJiYgIWlzSGlkZGVuICYmIGl0ZW0ua2V5d29yZHMgJiYgaXRlbS5rZXl3b3Jkcz8uaW5jbHVkZXModGhpcy5rZXlXb3JkcykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncm91cE1lbnUucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCFpc0hpZGRlbiAmJiBpdGVtLmNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmNoaWxkcmVuPy5mb3JFYWNoKChjaGlsZDogVGhlUGx1Z2luTWVudUl0ZW1XcmFwIHwgJ2RpdmlkZXInKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQgPT09ICdkaXZpZGVyJykgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZC5pc01lbnVJdGVtID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLmRpc2FibGVkID0gY2hpbGQuaXNEaXNhYmxlZCAmJiBjaGlsZC5pc0Rpc2FibGVkKHRoaXMuZWRpdG9yKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNIaWRkZW5DaGlkID0gaXRlbS5pc0hpZGRlbiAmJiBpdGVtLmlzSGlkZGVuKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmtleVdvcmRzICYmICFpc0hpZGRlbkNoaWQgJiYgY2hpbGQua2V5d29yZHMgJiYgY2hpbGQua2V5d29yZHM/LmluY2x1ZGVzKHRoaXMua2V5V29yZHMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ncm91cE1lbnUucHVzaChjaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCF0aGlzLmtleVdvcmRzICYmICFpc0hpZGRlbikge1xuICAgICAgICAgICAgICAgIGl0ZW0/LnR5cGUgPT09IFRoZVBsdWdpbk1lbnVJdGVtVHlwZS5pY29uID8gdGhpcy5pY29uTWVudS5wdXNoKGl0ZW0pIDogdGhpcy5ncm91cE1lbnUucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMua2V5V29yZHMgJiYgdGhpcy5ncm91cE1lbnUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5ncm91cE1lbnUudW5zaGlmdCh0aGlzLnNlYXJjaEdyb3VwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5rZXlXb3Jkcykge1xuICAgICAgICAgICAgY29uc3QgbWVudXMgPSBbLi4udGhpcy5ncm91cE1lbnVdO1xuICAgICAgICAgICAgdGhpcy5ncm91cE1lbnUgPSBtZW51cy5maWx0ZXIoKGl0ZW06IFRoZVBsdWdpbk1lbnVJdGVtV3JhcCwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzR3JvdXBNZW51ID0gVGhlUGx1Z2luTWVudS5pc01lbnVHcm91cChpdGVtKTtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0TWVudSA9IG1lbnVzW2luZGV4ICsgMV07XG4gICAgICAgICAgICAgICAgY29uc3QgaXNMYXN0TWVudSA9IGluZGV4ID09PSBtZW51cy5sZW5ndGggLSAxO1xuXG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAobmV4dE1lbnUgJiYgaXNHcm91cE1lbnUgJiYgVGhlUGx1Z2luTWVudS5pc01lbnVHcm91cChuZXh0TWVudSkpIHx8XG4gICAgICAgICAgICAgICAgICAgIChpc0xhc3RNZW51ICYmIGlzR3JvdXBNZW51KSB8fFxuICAgICAgICAgICAgICAgICAgICAoaXRlbT8uY2hpbGRyZW4gJiYgaXRlbT8uY2hpbGRyZW4/Lmxlbmd0aCA8PSAwKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIGhhbmRsZUl0ZW1TZWxlY3Rpb24obWVudUl0ZW06IFRoZVBsdWdpbk1lbnVJdGVtKSB7XG4gICAgICAgIGlmIChtZW51SXRlbS5pc0Rpc2FibGVkICYmIG1lbnVJdGVtLmlzRGlzYWJsZWQodGhpcy5lZGl0b3IpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmVkaXRvci5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIHJlZm9jdXModGhpcy5lZGl0b3IpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy50aGVEaXNwbGF5U2VhcmNoKSB7XG4gICAgICAgICAgICBtZW51SXRlbT8ucmVtb3ZlS2V5d29yZHNUeXBlID09PSAnY2hhcmFjdGVyJyA/IHRoaXMucmVtb3ZlQ2hhcmFjdGVyKCkgOiB0aGlzLnJlbW92ZUJsb2NrKCk7XG4gICAgICAgIH1cbiAgICAgICAgbWVudUl0ZW0uZXhlY3V0ZSh0aGlzLmVkaXRvcik7XG4gICAgICAgIHRoaXMudGh5UG9wb3ZlclJlZi5jbG9zZSgpO1xuICAgICAgICBRdWlja0luc2VydEVkaXRvci51cGRhdGVQbHVnaW5NZW51UmVmKHRoaXMuZWRpdG9yLCBudWxsKTtcbiAgICB9XG5cbiAgICByZW1vdmVCbG9jayA9ICgpID0+IHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IE5vZGUuZ2V0KHRoaXMuZWRpdG9yLCB0aGlzLmVkaXRvci5zZWxlY3Rpb24uYW5jaG9yLnBhdGgpIGFzIFRleHQ7XG4gICAgICAgIGNvbnN0IG5vZGVTdHJpbmcgPSBOb2RlLnN0cmluZyhub2RlKTtcbiAgICAgICAgY29uc3QgaXNTdGFydFdpdGhIb3RrZXkgPSBub2RlU3RyaW5nLnN0YXJ0c1dpdGgoJy8nKTtcbiAgICAgICAgY29uc3QgaXNJbmNsdWRlS2V5d29yZHMgPSBub2RlU3RyaW5nLnRvTG9jYWxlTG93ZXJDYXNlKCkudHJpbSgpLmluY2x1ZGVzKHRoaXMua2V5V29yZHMpO1xuICAgICAgICBpZiAobm9kZSAmJiBub2RlU3RyaW5nLmxlbmd0aCA+IDAgJiYgKGlzU3RhcnRXaXRoSG90a2V5IHx8IGlzSW5jbHVkZUtleXdvcmRzKSkge1xuICAgICAgICAgICAgRWRpdG9yLmRlbGV0ZUJhY2t3YXJkKHRoaXMuZWRpdG9yLCB7IHVuaXQ6ICdibG9jaycgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmVtb3ZlQ2hhcmFjdGVyID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBub2RlID0gTm9kZS5nZXQodGhpcy5lZGl0b3IsIHRoaXMuZWRpdG9yLnNlbGVjdGlvbi5hbmNob3IucGF0aCkgYXMgVGV4dDtcbiAgICAgICAgY29uc3Qgbm9kZVN0cmluZyA9IE5vZGUuc3RyaW5nKG5vZGUpO1xuICAgICAgICBjb25zdCBpc1N0YXJ0V2l0aEhvdGtleSA9IG5vZGVTdHJpbmcuc3RhcnRzV2l0aCgnLycpIHx8IG5vZGVTdHJpbmcuc3RhcnRzV2l0aCgnIycpO1xuICAgICAgICBjb25zdCBpc0luY2x1ZGVLZXl3b3JkcyA9IG5vZGVTdHJpbmcudG9Mb2NhbGVMb3dlckNhc2UoKS50cmltKCkuaW5jbHVkZXModGhpcy5rZXlXb3Jkcyk7XG4gICAgICAgIGlmICh0aGlzLm9yaWdpbktleXdvcmRzPy5sZW5ndGggPiAwICYmIChpc1N0YXJ0V2l0aEhvdGtleSB8fCBpc0luY2x1ZGVLZXl3b3JkcykpIHtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuZGVsZXRlKHRoaXMuZWRpdG9yLCB7IGRpc3RhbmNlOiB0aGlzLm9yaWdpbktleXdvcmRzLmxlbmd0aCwgcmV2ZXJzZTogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICB1cGRhdGVLZXl3b3JkcyhrZXl3b3Jkczogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9BY3RpdmVGaXJzdEl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMubGlzdEJveEF1dG9BY3RpdmVGaXJzdEl0ZW0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3JpZ2luS2V5d29yZHMgPSBrZXl3b3JkcztcbiAgICAgICAgdGhpcy5rZXlXb3JkcyA9IGtleXdvcmRzLnRvTG93ZXJDYXNlKCkudHJpbSgpO1xuICAgICAgICB0aGlzLmJ1aWxkTWVudXMoKTtcbiAgICAgICAgaWYgKHRoaXMuc2Nyb2xsQ29udGFpbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbENvbnRhaW5lci5zY3JvbGxUb3AgPSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGhlTGlzdGJveENoYW5nZShldmVudDogVGhlTGlzdGJveENoYW5nZUV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC50eXBlID09PSAnc2VsZWN0Jykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVJdGVtU2VsZWN0aW9uKGV2ZW50Lm9wdGlvbi50aGVPcHRpb25WYWx1ZSBhcyBUaGVQbHVnaW5NZW51SXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdjaGlsZCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGRyb3Bkb3duID0gdGhpcy5maW5kRHJvcGRvd25UcmlnZ2VyKGV2ZW50Lm9wdGlvbi5wYXJlbnRPcHRpb24pO1xuICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICBkcm9wZG93bi5zaG93KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3BhcmVudCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGRyb3Bkb3duID0gdGhpcy5maW5kRHJvcGRvd25UcmlnZ2VyKGV2ZW50Lm9wdGlvbik7XG4gICAgICAgICAgICBkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICd0dXJuJyAmJiAhZXZlbnQub3B0aW9uLnBhcmVudE9wdGlvbikge1xuICAgICAgICAgICAgU2Nyb2xsVG9TZXJ2aWNlLnNjcm9sbFRvRWxlbWVudChldmVudC5vcHRpb24uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLnNjcm9sbENvbnRhaW5lcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmaW5kRHJvcGRvd25UcmlnZ2VyKG9wdGlvbjogVGhlTGlzdGJveE9wdGlvbkRpcmVjdGl2ZSkge1xuICAgICAgICBjb25zdCBkcm9wZG93biA9IHRoaXMuZHJvcGRvd25UcmlnZ2Vycy5maW5kKHZhbHVlID0+IHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZVsnZWxlbWVudFJlZiddLm5hdGl2ZUVsZW1lbnQgPT09IG9wdGlvbi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZHJvcGRvd247XG4gICAgfVxuXG4gICAgdHJhY2tCeUZuKGluZGV4OiBUaGVQbHVnaW5NZW51SXRlbSwgaXRlbTogYW55KSB7XG4gICAgICAgIHJldHVybiBpdGVtPy5rZXkgPz8gaW5kZXg7XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cInRoZURpc3BsYXlTZWFyY2hcIiBjbGFzcz1cIm1lbnUtc2VhcmNoIHB4LTUgcHQtNSBwYi0yXCI+XG4gIDx0aHktaW5wdXQtc2VhcmNoIFsobmdNb2RlbCldPVwia2V5V29yZHNcIiBwbGFjZWhvbGRlcj1cIuaQnOe0olwiIHRoeUljb25Qb3NpdGlvbj1cImFmdGVyXCIgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlS2V5d29yZHMoa2V5V29yZHMpXCI+XG4gIDwvdGh5LWlucHV0LXNlYXJjaD5cbjwvZGl2PlxuXG48ZGl2XG4gICpuZ0lmPVwiZ3JvdXBNZW51Lmxlbmd0aCA+IDA7IGVsc2UgZW1wdHlcIlxuICB0aGVMaXN0Qm94XG4gIFtrZXlib2FyZENvbnRhaW5lcl09XCJrZXlib2FyZENvbnRhaW5lclwiXG4gIFthdXRvQWN0aXZlRmlyc3RJdGVtXT1cImxpc3RCb3hBdXRvQWN0aXZlRmlyc3RJdGVtXCJcbiAgKHRoZUxpc3Rib3hDaGFuZ2UpPVwidGhlTGlzdGJveENoYW5nZSgkZXZlbnQpXCJcbiAgY2xhc3M9XCJ0aHktZHJvcGRvd24tbWVudSB0aGUtcGx1Z2luLW1lbnUtc2Nyb2xsLWNvbnRhaW5lciBwYi0yIHB0LTBcIlxuPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaWNvbk1lbnU/Lmxlbmd0aCA+IDBcIj5cbiAgICA8ZGl2IHRoZUxpc3Rib3hHcm91cCBbaG9yaXpvbnRhbENvbHVtbl09XCI2XCIgY2xhc3M9XCJpY29uLW1lbnUgZC1mbGV4IHBsLTUgcHktMVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpY29uTWVudTsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICAgIDxhXG4gICAgICAgICAgKm5nSWY9XCJpdGVtLnR5cGUgPT09IFRoZVBsdWdpbk1lbnVJdGVtVHlwZS5pY29uXCJcbiAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDo7XCJcbiAgICAgICAgICBjbGFzcz1cIm10LTJcIlxuICAgICAgICAgIHRoeUFjdGlvblxuICAgICAgICAgIHRoZUxpc3Rib3hPcHRpb25cbiAgICAgICAgICBbdGhlT3B0aW9uVmFsdWVdPVwiaXRlbVwiXG4gICAgICAgICAgW3RoeUFjdGlvbkljb25dPVwiaXRlbS5pY29uXCJcbiAgICAgICAgICBbdGh5VG9vbHRpcF09XCJpdGVtPy5uYW1lXCJcbiAgICAgICAgICBbdGh5RGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgW3RoZU9wdGlvbkRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgIHRoZVByZXZlbnREZWZhdWx0XG4gICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUl0ZW1TZWxlY3Rpb24oaXRlbSlcIlxuICAgICAgICA+PC9hPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPHRoeS1kaXZpZGVyIGNsYXNzPVwibXktMlwiPjwvdGh5LWRpdmlkZXI+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxkaXYgdGhlTGlzdGJveEdyb3VwPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ3JvdXBNZW51OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmlzTWVudUl0ZW0gJiYgIShpdGVtLmNoaWxkcmVuPy5sZW5ndGggPiAwKSAmJiBpdGVtLmtleSAhPT0gJ3RhYmxlJ1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgdGh5RHJvcGRvd25NZW51SXRlbVxuICAgICAgICAgIHRoZUxpc3Rib3hPcHRpb25cbiAgICAgICAgICBbdGhlT3B0aW9uVmFsdWVdPVwiaXRlbVwiXG4gICAgICAgICAgY2xhc3M9XCJweS0wXCJcbiAgICAgICAgICB0aGVQcmV2ZW50RGVmYXVsdFxuICAgICAgICAgIFt0aHlEaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICBbdGhlT3B0aW9uRGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUl0ZW1TZWxlY3Rpb24oaXRlbSlcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0ubWVudUljb25cIiBjbGFzcz1cIm1lbnUtaWNvbiBtci0yXCI+XG4gICAgICAgICAgICA8dGh5LWljb24gW3RoeUljb25OYW1lXT1cIml0ZW0ubWVudUljb24gfCBnZXRNZW51SWNvbjogc2NlbmVLZXlcIj48L3RoeS1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWNvbnRlbnQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaXRlbS10aXRsZSB3LTEwMFwiPlxuICAgICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5pc01lbnVJdGVtICYmIGl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCA+IDBcIiAjaGFzRXhwYW5kZWQ+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAjZHJvcGRvd25UcmlnZ2Vyc1xuICAgICAgICAgIFt0aHlEcm9wZG93bl09XCJleHBhbmRcIlxuICAgICAgICAgIHRoeVRyaWdnZXI9XCJob3ZlclwiXG4gICAgICAgICAgdGh5RHJvcGRvd25NZW51SXRlbVxuICAgICAgICAgIFt0aHlEaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICB0aGVMaXN0Ym94T3B0aW9uXG4gICAgICAgICAgW3RoZU9wdGlvblZhbHVlXT1cIml0ZW1cIlxuICAgICAgICAgIFt0aGVPcHRpb25EaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICBbdGh5UG9wb3Zlck9wdGlvbnNdPVwiZXhwYW5kUG9wb3Zlck9wdGlvbnNcIlxuICAgICAgICAgIGNsYXNzPVwicHktMFwiXG4gICAgICAgICAgdGhlUHJldmVudERlZmF1bHRcbiAgICAgICAgICBbdGh5UGFuZWxDbGFzc109XCJzdWJQYW5lbENsYXNzXCJcbiAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlSXRlbVNlbGVjdGlvbihpdGVtKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS5tZW51SWNvblwiIGNsYXNzPVwibWVudS1pY29uIG1yLTJcIj5cbiAgICAgICAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiaXRlbS5tZW51SWNvbiB8IGdldE1lbnVJY29uOiBzY2VuZUtleVwiPjwvdGh5LWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtY29udGVudCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1pdGVtLXRpdGxlIHctMTAwXCI+XG4gICAgICAgICAgICAgIHt7IGl0ZW0ubmFtZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uY2hpbGRyZW4/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgIDx0aHktaWNvbiBjbGFzcz1cInRleHQtbXV0ZWRcIiB0aHlJY29uTmFtZT1cImFuZ2xlLXJpZ2h0XCI+PC90aHktaWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8dGh5LWRyb3Bkb3duLW1lbnUgI2V4cGFuZD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aGUtcGx1Z2luLW1lbnUtY29udGFpbmVyIGV4cGFuZC1tZW51XCIgdGhlTGlzdGJveEdyb3VwPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBpdGVtLmNoaWxkcmVuXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjaGlsZC50eXBlID09PSBUaGVQbHVnaW5NZW51SXRlbVR5cGUuZ3JvdXBcIlxuICAgICAgICAgICAgICAgICAgdGh5RHJvcGRvd25NZW51SXRlbVxuICAgICAgICAgICAgICAgICAgdGhlTGlzdGJveE9wdGlvblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJweS0wXCJcbiAgICAgICAgICAgICAgICAgIHRoZVByZXZlbnREZWZhdWx0XG4gICAgICAgICAgICAgICAgICBbdGhlT3B0aW9uRGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICBbdGh5RGlzYWJsZWRdPVwiY2hpbGQuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUl0ZW1TZWxlY3Rpb24oY2hpbGQpXCJcbiAgICAgICAgICAgICAgICAgIFt0aGVPcHRpb25WYWx1ZV09XCJjaGlsZFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNoaWxkLm1lbnVJY29uXCIgY2xhc3M9XCJtZW51LWljb24gbXItMlwiPlxuICAgICAgICAgICAgICAgICAgICA8dGh5LWljb24gW3RoeUljb25OYW1lXT1cImNoaWxkLm1lbnVJY29uIHwgZ2V0TWVudUljb246IHNjZW5lS2V5XCI+PC90aHktaWNvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtY29udGVudCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0tdGl0bGUgdy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBjaGlsZC5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHRoeS1kaXZpZGVyICpuZ0lmPVwiY2hpbGQgPT09ICdkaXZpZGVyJ1wiIGNsYXNzPVwibXktMlwiPjwvdGh5LWRpdmlkZXI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC90aHktZHJvcGRvd24tbWVudT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uaXNNZW51SXRlbSAmJiBpdGVtLmtleSA9PT0gJ3RhYmxlJ1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgI2Ryb3Bkb3duVHJpZ2dlcnNcbiAgICAgICAgICBbdGh5UG9wb3Zlcl09XCJ0YWJsZVNlbGVjdFwiXG4gICAgICAgICAgdGh5UGxhY2VtZW50PVwicmlnaHRUb3BcIlxuICAgICAgICAgIHRoeVRyaWdnZXI9XCJob3ZlclwiXG4gICAgICAgICAgdGh5RHJvcGRvd25NZW51SXRlbVxuICAgICAgICAgIHRoZUxpc3Rib3hPcHRpb25cbiAgICAgICAgICBbdGh5Q29uZmlnXT1cInRhYmxlU2VsZWN0UG9wb3ZlckNvbmZpZ1wiXG4gICAgICAgICAgW3RoZU9wdGlvblZhbHVlXT1cIml0ZW1cIlxuICAgICAgICAgIFt0aGVPcHRpb25EaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICBbdGh5RGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgY2xhc3M9XCJweS0wXCJcbiAgICAgICAgICB0aGVQcmV2ZW50RGVmYXVsdFxuICAgICAgICAgIChjbGljayk9XCJoYW5kbGVJdGVtU2VsZWN0aW9uKGl0ZW0pXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWljb24gbXItMlwiPlxuICAgICAgICAgICAgPHRoeS1pY29uIFt0aHlJY29uTmFtZV09XCJpdGVtLm1lbnVJY29uIHwgZ2V0TWVudUljb246IHNjZW5lS2V5XCI+PC90aHktaWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1jb250ZW50IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0tdGl0bGUgdy0xMDBcIj5cbiAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPHRoeS1pY29uIGNsYXNzPVwidGV4dC1tdXRlZFwiIHRoeUljb25OYW1lPVwiYW5nbGUtcmlnaHRcIj48L3RoeS1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICN0YWJsZVNlbGVjdD5cbiAgICAgICAgICAgIDx0YWJsZS1zZWxlY3QgY2xhc3M9XCJwbHVnaW4tbWVudS10YWJsZSB0aGUtdGFibGUtc2VsZWN0b3ItcGFuZWxcIiBbZWRpdG9yXT1cImVkaXRvclwiIFtiZWZvcmVJbnNlcnRdPVwicmVtb3ZlQmxvY2tcIj48L3RhYmxlLXNlbGVjdD5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uaXNNZW51SXRlbVwiICNtZW51R3JvdXA+XG4gICAgICAgIDx0aHktZHJvcGRvd24tbWVudS1ncm91cCBjbGFzcz1cImZvbnQtc2l6ZS1zbVwiIFt0aHlUaXRsZV09XCJpdGVtLmdyb3VwTmFtZVwiPjwvdGh5LWRyb3Bkb3duLW1lbnUtZ3JvdXA+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNlbXB0eT5cbiAgPGRpdiBjbGFzcz1cImVtcHR5IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgIDx0aHktZW1wdHkgW3RoeU1lc3NhZ2VdPVwidGh5TWVzc2FnZVwiPjwvdGh5LWVtcHR5PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ElementRef, HostBinding, HostListener, Input, ViewChild } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, HostListener, Input, Renderer2, ViewChild, inject } from '@angular/core';
|
|
2
2
|
import { ThyIcon } from 'ngx-tethys/icon';
|
|
3
3
|
import { Node } from 'slate';
|
|
4
4
|
import { AngularEditor } from 'slate-angular';
|
|
@@ -8,19 +8,19 @@ import { isCleanEmptyParagraph } from '../../../utils/is-clean-empty-paragraph';
|
|
|
8
8
|
import { QuickInsertEditor } from '../quick-insert.editor';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
export class TheQuickInsert {
|
|
11
|
-
|
|
12
|
-
event.preventDefault();
|
|
13
|
-
event.stopPropagation();
|
|
14
|
-
}
|
|
15
|
-
constructor(renderer, elementRef, cdr) {
|
|
16
|
-
this.renderer = renderer;
|
|
17
|
-
this.elementRef = elementRef;
|
|
18
|
-
this.cdr = cdr;
|
|
11
|
+
constructor() {
|
|
19
12
|
this.className = 'the-quick-insert';
|
|
20
13
|
this.isVisible = false;
|
|
21
14
|
this.defaultIconName = 'plus-circle-thin';
|
|
22
15
|
this.iconNameFill = 'plus-circle-thin-fill';
|
|
23
16
|
this.displayIconName = this.defaultIconName;
|
|
17
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
18
|
+
this.renderer = inject(Renderer2);
|
|
19
|
+
this.elementRef = inject((ElementRef));
|
|
20
|
+
}
|
|
21
|
+
handleMousedownNativeElement(event) {
|
|
22
|
+
event.preventDefault();
|
|
23
|
+
event.stopPropagation();
|
|
24
24
|
}
|
|
25
25
|
ngOnInit() {
|
|
26
26
|
const { onChange } = this.editor;
|
|
@@ -84,11 +84,11 @@ export class TheQuickInsert {
|
|
|
84
84
|
}
|
|
85
85
|
mouseEnter(event) {
|
|
86
86
|
this.displayIconName = this.iconNameFill;
|
|
87
|
-
this.cdr.
|
|
87
|
+
this.cdr.detectChanges();
|
|
88
88
|
}
|
|
89
89
|
mouseLeave(event) {
|
|
90
90
|
this.displayIconName = this.defaultIconName;
|
|
91
|
-
this.cdr.
|
|
91
|
+
this.cdr.detectChanges();
|
|
92
92
|
}
|
|
93
93
|
handleClick(event) {
|
|
94
94
|
event.stopPropagation();
|
|
@@ -103,13 +103,13 @@ export class TheQuickInsert {
|
|
|
103
103
|
this.updateIconDisplay();
|
|
104
104
|
}, 100);
|
|
105
105
|
}
|
|
106
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheQuickInsert, deps: [
|
|
107
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TheQuickInsert, isStandalone: true, selector: "[theQuickInsert]", inputs: { editor: "editor", isVisible: "isVisible" }, host: { listeners: { "mousedown": "handleMousedownNativeElement($event)" }, properties: { "class": "this.className" } }, viewQueries: [{ propertyName: "iconElement", first: true, predicate: ["iconElement"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<thy-icon\n #iconElement\n
|
|
106
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheQuickInsert, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
107
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TheQuickInsert, isStandalone: true, selector: "[theQuickInsert]", inputs: { editor: "editor", isVisible: "isVisible" }, host: { listeners: { "mousedown": "handleMousedownNativeElement($event)" }, properties: { "class": "this.className" } }, viewQueries: [{ propertyName: "iconElement", first: true, predicate: ["iconElement"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<thy-icon\n #iconElement\n class=\"quick-insert-icon text-desc font-size-xlg\"\n [thyIconName]=\"displayIconName\"\n (mouseenter)=\"mouseEnter($event)\"\n (mouseleave)=\"mouseLeave($event)\"\n (mouseup)=\"handleClick($event)\"\n></thy-icon>\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
108
108
|
}
|
|
109
109
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheQuickInsert, decorators: [{
|
|
110
110
|
type: Component,
|
|
111
|
-
args: [{ selector: '[theQuickInsert]', standalone: true, imports: [ThyIcon], template: "<thy-icon\n #iconElement\n
|
|
112
|
-
}],
|
|
111
|
+
args: [{ selector: '[theQuickInsert]', standalone: true, imports: [ThyIcon], changeDetection: ChangeDetectionStrategy.OnPush, template: "<thy-icon\n #iconElement\n class=\"quick-insert-icon text-desc font-size-xlg\"\n [thyIconName]=\"displayIconName\"\n (mouseenter)=\"mouseEnter($event)\"\n (mouseleave)=\"mouseLeave($event)\"\n (mouseup)=\"handleClick($event)\"\n></thy-icon>\n" }]
|
|
112
|
+
}], propDecorators: { className: [{
|
|
113
113
|
type: HostBinding,
|
|
114
114
|
args: ['class']
|
|
115
115
|
}], editor: [{
|
|
@@ -123,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
|
|
|
123
123
|
type: HostListener,
|
|
124
124
|
args: ['mousedown', ['$event']]
|
|
125
125
|
}] } });
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2staW5zZXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3F1aWNrLWluc2VydC9jb21wb25lbnRzL3F1aWNrLWluc2VydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9xdWljay1pbnNlcnQvY29tcG9uZW50cy9xdWljay1pbnNlcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBS0wsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQVUsSUFBSSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sS0FBSyxVQUFVLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBUTNELE1BQU0sT0FBTyxjQUFjO0lBa0J2Qiw0QkFBNEIsQ0FBQyxLQUFLO1FBQzlCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQ1ksUUFBbUIsRUFDbkIsVUFBbUMsRUFDbkMsR0FBc0I7UUFGdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNuQyxRQUFHLEdBQUgsR0FB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ZUFBZSxFQUFFLENBQUM7UUFDeEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLHNDQUFzQztRQUN0QyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osaUJBQWlCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7aUJBQ2xDLFdBQVcsRUFBRTtpQkFDYixTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDO1lBQ1AsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDN0IsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1osQ0FBQzs4R0EzSFEsY0FBYztrR0FBZCxjQUFjLGtWQWNXLFVBQVUsa0RDekNoRCw0UEFRQSw0Q0RpQmMsT0FBTzs7MkZBRVIsY0FBYztrQkFOMUIsU0FBUzsrQkFDSSxrQkFBa0IsY0FFaEIsSUFBSSxXQUNQLENBQUMsT0FBTyxDQUFDO3VJQUlsQixTQUFTO3NCQURSLFdBQVc7dUJBQUMsT0FBTztnQkFHWCxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFTTixXQUFXO3NCQURWLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUk3RCw0QkFBNEI7c0JBRDNCLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IEVkaXRvciwgTm9kZSB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IE1hcmtUeXBlcyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9ub2RlLXR5cGVzJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBpc0NsZWFuRW1wdHlQYXJhZ3JhcGggfSBmcm9tICcuLi8uLi8uLi91dGlscy9pcy1jbGVhbi1lbXB0eS1wYXJhZ3JhcGgnO1xuaW1wb3J0IHsgUXVpY2tJbnNlcnRFZGl0b3IgfSBmcm9tICcuLi9xdWljay1pbnNlcnQuZWRpdG9yJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdbdGhlUXVpY2tJbnNlcnRdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcXVpY2staW5zZXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUaHlJY29uXVxufSlcbmV4cG9ydCBjbGFzcyBUaGVRdWlja0luc2VydCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBjbGFzc05hbWUgPSAndGhlLXF1aWNrLWluc2VydCc7XG5cbiAgICBASW5wdXQoKSBlZGl0b3I6IEVkaXRvcjtcblxuICAgIEBJbnB1dCgpIGlzVmlzaWJsZSA9IGZhbHNlO1xuXG4gICAgZGVmYXVsdEljb25OYW1lID0gJ3BsdXMtY2lyY2xlLXRoaW4nO1xuXG4gICAgaWNvbk5hbWVGaWxsID0gJ3BsdXMtY2lyY2xlLXRoaW4tZmlsbCc7XG5cbiAgICBkaXNwbGF5SWNvbk5hbWUgPSB0aGlzLmRlZmF1bHRJY29uTmFtZTtcblxuICAgIEBWaWV3Q2hpbGQoJ2ljb25FbGVtZW50JywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pXG4gICAgaWNvbkVsZW1lbnQ6IEVsZW1lbnRSZWY8YW55PjtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlTW91c2Vkb3duTmF0aXZlRWxlbWVudChldmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBvbkNoYW5nZSB9ID0gdGhpcy5lZGl0b3I7XG4gICAgICAgIHRoaXMuZWRpdG9yLm9uQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgICAgICAgb25DaGFuZ2UoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuZWRpdG9yICYmIHRoaXMuZWRpdG9yLm9wdGlvbnMgJiYgIXRoaXMuZWRpdG9yLm9wdGlvbnMucmVhZG9ubHkpIHtcbiAgICAgICAgICAgICAgICAvLyB3YWl0IGlzT3BlbmVkTWVudSBpcyB1cGRhdGVkXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSWNvbkRpc3BsYXkoKTtcbiAgICAgICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy51cGRhdGVJY29uRGlzcGxheSgpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuaXNWaXNpYmxlICYmICFjaGFuZ2VzLmlzVmlzaWJsZS5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVJY29uRGlzcGxheSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZUljb25EaXNwbGF5KCkge1xuICAgICAgICBjb25zdCB7IGVkaXRvciB9ID0gdGhpcztcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5pc1Zpc2libGUgJiZcbiAgICAgICAgICAgICFRdWlja0luc2VydEVkaXRvci5pc09wZW5lZE1lbnUoZWRpdG9yKSAmJlxuICAgICAgICAgICAgaXNDbGVhbkVtcHR5UGFyYWdyYXBoKGVkaXRvcikgJiZcbiAgICAgICAgICAgICF0aGlzLmhhc0V4Y2x1ZGVBdHRyaWJ1dGUoKSAmJlxuICAgICAgICAgICAgIXRoaXMuaXNSaWNoTWVkaWFTY29wZSgpXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBOb2RlLmFuY2VzdG9yKGVkaXRvciwgW2VkaXRvcj8uc2VsZWN0aW9uPy5hbmNob3IucGF0aFswXV0pO1xuICAgICAgICAgICAgY29uc3Qgcm9vdE5vZGU6IEhUTUxFbGVtZW50ID0gQW5ndWxhckVkaXRvci50b0RPTU5vZGUoZWRpdG9yLCBibG9jayk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKHJvb3ROb2RlLm9mZnNldExlZnQsIHJvb3ROb2RlLm9mZnNldFRvcCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hZGRIaWRkZW5DbGFzcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkSGlkZGVuQ2xhc3MoKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2Qtbm9uZScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlSGlkZGVuQ2xhc3MoKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2Qtbm9uZScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNSaWNoTWVkaWFTY29wZSgpIHtcbiAgICAgICAgY29uc3QgeyBlZGl0b3IgfSA9IHRoaXM7XG4gICAgICAgIGlmIChlZGl0b3I/LnNlbGVjdGlvbikge1xuICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBOb2RlLmFuY2VzdG9yKGVkaXRvciwgW2VkaXRvcj8uc2VsZWN0aW9uPy5hbmNob3IucGF0aFswXV0pO1xuICAgICAgICAgICAgY29uc3Qgcm9vdEVsZW1lbnQgPSBBbmd1bGFyRWRpdG9yLnRvRE9NTm9kZShlZGl0b3IsIGJsb2NrKTtcbiAgICAgICAgICAgIGNvbnN0IGxlYWZFbGVtZW50ID0gcm9vdEVsZW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtc2xhdGUtbGVhZj1cInRydWVcIl0nKTtcbiAgICAgICAgICAgIGNvbnN0IHJvb3RFbGVtZW50UmVjdCA9IHJvb3RFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgY29uc3QgbGVhZkVsZW1lbnRSZWN0ID0gbGVhZkVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICByZXR1cm4gbGVhZkVsZW1lbnRSZWN0Py54ICE9PSByb290RWxlbWVudFJlY3Q/Lng7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzRXhjbHVkZUF0dHJpYnV0ZSgpIHtcbiAgICAgICAgY29uc3QgbWFya3MgPSBUaGVRdWVyaWVzLmdldFNlbGVjdGlvbk1hcmtzKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgY29uc3QgZm9udFNpemVNYXJrOiBudW1iZXIgPSBtYXJrc1tNYXJrVHlwZXMuZm9udFNpemVdO1xuXG4gICAgICAgIHJldHVybiBmb250U2l6ZU1hcms7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVQb3NpdGlvbihsZWZ0OiBudW1iZXIsIHRvcD86IG51bWJlcikge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndG9wJywgYCR7dG9wfXB4YCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdsZWZ0JywgYCR7bGVmdH1weGApO1xuICAgICAgICB0aGlzLnJlbW92ZUhpZGRlbkNsYXNzKCk7XG4gICAgfVxuXG4gICAgbW91c2VFbnRlcihldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLmRpc3BsYXlJY29uTmFtZSA9IHRoaXMuaWNvbk5hbWVGaWxsO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBtb3VzZUxlYXZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMuZGlzcGxheUljb25OYW1lID0gdGhpcy5kZWZhdWx0SWNvbk5hbWU7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIGhhbmRsZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAvLyBhdm9pZCBwb3BvdmVyIGlzIGNsb3NlZCBpbW1lZGlhdGVseVxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIFF1aWNrSW5zZXJ0RWRpdG9yLm9wZW5NZW51KHRoaXMuZWRpdG9yKVxuICAgICAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSWNvbkRpc3BsYXkoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSWNvbkRpc3BsYXkoKTtcbiAgICAgICAgfSwgMTAwKTtcbiAgICB9XG59XG4iLCI8dGh5LWljb25cbiAgI2ljb25FbGVtZW50XG4gIFt0aHlJY29uTmFtZV09XCJkaXNwbGF5SWNvbk5hbWVcIlxuICBjbGFzcz1cInF1aWNrLWluc2VydC1pY29uIHRleHQtZGVzYyBmb250LXNpemUteGxnXCJcbiAgKG1vdXNlZW50ZXIpPVwibW91c2VFbnRlcigkZXZlbnQpXCJcbiAgKG1vdXNlbGVhdmUpPVwibW91c2VMZWF2ZSgkZXZlbnQpXCJcbiAgKG1vdXNlZG93bik9XCJoYW5kbGVDbGljaygkZXZlbnQpXCJcbj48L3RoeS1pY29uPlxuIl19
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2staW5zZXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3F1aWNrLWluc2VydC9jb21wb25lbnRzL3F1aWNrLWluc2VydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9xdWljay1pbnNlcnQvY29tcG9uZW50cy9xdWljay1pbnNlcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTCxTQUFTLEVBRVQsU0FBUyxFQUNULE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFVLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRCxPQUFPLEtBQUssVUFBVSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQVMzRCxNQUFNLE9BQU8sY0FBYztJQVAzQjtRQVEwQixjQUFTLEdBQUcsa0JBQWtCLENBQUM7UUFJNUMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUUzQixvQkFBZSxHQUFHLGtCQUFrQixDQUFDO1FBRXJDLGlCQUFZLEdBQUcsdUJBQXVCLENBQUM7UUFFdkMsb0JBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBVy9CLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoQyxhQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdCLGVBQVUsR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUF1QixDQUFBLENBQUMsQ0FBQztLQWdHeEQ7SUF2R0csNEJBQTRCLENBQUMsS0FBSztRQUM5QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFNRCxRQUFRO1FBQ0osTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsR0FBRyxFQUFFO1lBQ3hCLFFBQVEsRUFBRSxDQUFDO1lBRVgsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3RFLCtCQUErQjtnQkFDL0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDWixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDN0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ1YsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxPQUFPLENBQUMsU0FBUyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQUVNLGlCQUFpQjtRQUNwQixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQ0ksSUFBSSxDQUFDLFNBQVM7WUFDZCxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7WUFDdkMscUJBQXFCLENBQUMsTUFBTSxDQUFDO1lBQzdCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzNCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQzFCLENBQUM7WUFDQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekUsTUFBTSxRQUFRLEdBQWdCLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JFLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0QsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLGNBQWM7UUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU8saUJBQWlCO1FBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVPLGdCQUFnQjtRQUNwQixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6RSxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMzRCxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLDBCQUEwQixDQUFDLENBQUM7WUFDMUUsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDNUQsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDNUQsT0FBTyxlQUFlLEVBQUUsQ0FBQyxLQUFLLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFTyxtQkFBbUI7UUFDdkIsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4RCxNQUFNLFlBQVksR0FBVyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxjQUFjLENBQUMsSUFBWSxFQUFFLEdBQVk7UUFDN0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBaUI7UUFDeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFpQjtRQUN4QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDNUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWlCO1FBQ3pCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsc0NBQXNDO1FBQ3RDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztpQkFDbEMsV0FBVyxFQUFFO2lCQUNiLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7WUFDUCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM3QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDWixDQUFDOzhHQXZIUSxjQUFjO2tHQUFkLGNBQWMsa1ZBYVcsVUFBVSxrREMzQ2hELDBQQVFBLDRDRG1CYyxPQUFPOzsyRkFHUixjQUFjO2tCQVAxQixTQUFTOytCQUNJLGtCQUFrQixjQUVoQixJQUFJLFdBQ1AsQ0FBQyxPQUFPLENBQUMsbUJBQ0QsdUJBQXVCLENBQUMsTUFBTTs4QkFHekIsU0FBUztzQkFBOUIsV0FBVzt1QkFBQyxPQUFPO2dCQUVYLE1BQU07c0JBQWQsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQVNOLFdBQVc7c0JBRFYsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBSTdELDRCQUE0QjtzQkFEM0IsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIFJlbmRlcmVyMixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IEVkaXRvciwgTm9kZSB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IE1hcmtUeXBlcyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9ub2RlLXR5cGVzJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBpc0NsZWFuRW1wdHlQYXJhZ3JhcGggfSBmcm9tICcuLi8uLi8uLi91dGlscy9pcy1jbGVhbi1lbXB0eS1wYXJhZ3JhcGgnO1xuaW1wb3J0IHsgUXVpY2tJbnNlcnRFZGl0b3IgfSBmcm9tICcuLi9xdWljay1pbnNlcnQuZWRpdG9yJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdbdGhlUXVpY2tJbnNlcnRdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcXVpY2staW5zZXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUaHlJY29uXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBUaGVRdWlja0luc2VydCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3NOYW1lID0gJ3RoZS1xdWljay1pbnNlcnQnO1xuXG4gICAgQElucHV0KCkgZWRpdG9yOiBFZGl0b3I7XG5cbiAgICBASW5wdXQoKSBpc1Zpc2libGUgPSBmYWxzZTtcblxuICAgIGRlZmF1bHRJY29uTmFtZSA9ICdwbHVzLWNpcmNsZS10aGluJztcblxuICAgIGljb25OYW1lRmlsbCA9ICdwbHVzLWNpcmNsZS10aGluLWZpbGwnO1xuXG4gICAgZGlzcGxheUljb25OYW1lID0gdGhpcy5kZWZhdWx0SWNvbk5hbWU7XG5cbiAgICBAVmlld0NoaWxkKCdpY29uRWxlbWVudCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KVxuICAgIGljb25FbGVtZW50OiBFbGVtZW50UmVmPGFueT47XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKVxuICAgIGhhbmRsZU1vdXNlZG93bk5hdGl2ZUVsZW1lbnQoZXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHByaXZhdGUgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgb25DaGFuZ2UgfSA9IHRoaXMuZWRpdG9yO1xuICAgICAgICB0aGlzLmVkaXRvci5vbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgICAgIG9uQ2hhbmdlKCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmVkaXRvciAmJiB0aGlzLmVkaXRvci5vcHRpb25zICYmICF0aGlzLmVkaXRvci5vcHRpb25zLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICAgICAgLy8gd2FpdCBpc09wZW5lZE1lbnUgaXMgdXBkYXRlZFxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUljb25EaXNwbGF5KCk7XG4gICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudXBkYXRlSWNvbkRpc3BsYXkoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmlzVmlzaWJsZSAmJiAhY2hhbmdlcy5pc1Zpc2libGUuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSWNvbkRpc3BsYXkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVJY29uRGlzcGxheSgpIHtcbiAgICAgICAgY29uc3QgeyBlZGl0b3IgfSA9IHRoaXM7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuaXNWaXNpYmxlICYmXG4gICAgICAgICAgICAhUXVpY2tJbnNlcnRFZGl0b3IuaXNPcGVuZWRNZW51KGVkaXRvcikgJiZcbiAgICAgICAgICAgIGlzQ2xlYW5FbXB0eVBhcmFncmFwaChlZGl0b3IpICYmXG4gICAgICAgICAgICAhdGhpcy5oYXNFeGNsdWRlQXR0cmlidXRlKCkgJiZcbiAgICAgICAgICAgICF0aGlzLmlzUmljaE1lZGlhU2NvcGUoKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gTm9kZS5hbmNlc3RvcihlZGl0b3IsIFtlZGl0b3I/LnNlbGVjdGlvbj8uYW5jaG9yLnBhdGhbMF1dKTtcbiAgICAgICAgICAgIGNvbnN0IHJvb3ROb2RlOiBIVE1MRWxlbWVudCA9IEFuZ3VsYXJFZGl0b3IudG9ET01Ob2RlKGVkaXRvciwgYmxvY2spO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVQb3NpdGlvbihyb290Tm9kZS5vZmZzZXRMZWZ0LCByb290Tm9kZS5vZmZzZXRUb3ApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWRkSGlkZGVuQ2xhc3MoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZEhpZGRlbkNsYXNzKCkge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdkLW5vbmUnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUhpZGRlbkNsYXNzKCkge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdkLW5vbmUnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUmljaE1lZGlhU2NvcGUoKSB7XG4gICAgICAgIGNvbnN0IHsgZWRpdG9yIH0gPSB0aGlzO1xuICAgICAgICBpZiAoZWRpdG9yPy5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gTm9kZS5hbmNlc3RvcihlZGl0b3IsIFtlZGl0b3I/LnNlbGVjdGlvbj8uYW5jaG9yLnBhdGhbMF1dKTtcbiAgICAgICAgICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gQW5ndWxhckVkaXRvci50b0RPTU5vZGUoZWRpdG9yLCBibG9jayk7XG4gICAgICAgICAgICBjb25zdCBsZWFmRWxlbWVudCA9IHJvb3RFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXNsYXRlLWxlYWY9XCJ0cnVlXCJdJyk7XG4gICAgICAgICAgICBjb25zdCByb290RWxlbWVudFJlY3QgPSByb290RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGNvbnN0IGxlYWZFbGVtZW50UmVjdCA9IGxlYWZFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgcmV0dXJuIGxlYWZFbGVtZW50UmVjdD8ueCAhPT0gcm9vdEVsZW1lbnRSZWN0Py54O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc0V4Y2x1ZGVBdHRyaWJ1dGUoKSB7XG4gICAgICAgIGNvbnN0IG1hcmtzID0gVGhlUXVlcmllcy5nZXRTZWxlY3Rpb25NYXJrcyh0aGlzLmVkaXRvcik7XG4gICAgICAgIGNvbnN0IGZvbnRTaXplTWFyazogbnVtYmVyID0gbWFya3NbTWFya1R5cGVzLmZvbnRTaXplXTtcbiAgICAgICAgcmV0dXJuIGZvbnRTaXplTWFyaztcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVBvc2l0aW9uKGxlZnQ6IG51bWJlciwgdG9wPzogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd0b3AnLCBgJHt0b3B9cHhgKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2xlZnQnLCBgJHtsZWZ0fXB4YCk7XG4gICAgICAgIHRoaXMucmVtb3ZlSGlkZGVuQ2xhc3MoKTtcbiAgICB9XG5cbiAgICBtb3VzZUVudGVyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMuZGlzcGxheUljb25OYW1lID0gdGhpcy5pY29uTmFtZUZpbGw7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBtb3VzZUxlYXZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMuZGlzcGxheUljb25OYW1lID0gdGhpcy5kZWZhdWx0SWNvbk5hbWU7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBoYW5kbGVDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgLy8gYXZvaWQgcG9wb3ZlciBpcyBjbG9zZWQgaW1tZWRpYXRlbHlcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBRdWlja0luc2VydEVkaXRvci5vcGVuTWVudSh0aGlzLmVkaXRvcilcbiAgICAgICAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUljb25EaXNwbGF5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUljb25EaXNwbGF5KCk7XG4gICAgICAgIH0sIDEwMCk7XG4gICAgfVxufVxuIiwiPHRoeS1pY29uXG4gICNpY29uRWxlbWVudFxuICBjbGFzcz1cInF1aWNrLWluc2VydC1pY29uIHRleHQtZGVzYyBmb250LXNpemUteGxnXCJcbiAgW3RoeUljb25OYW1lXT1cImRpc3BsYXlJY29uTmFtZVwiXG4gIChtb3VzZWVudGVyKT1cIm1vdXNlRW50ZXIoJGV2ZW50KVwiXG4gIChtb3VzZWxlYXZlKT1cIm1vdXNlTGVhdmUoJGV2ZW50KVwiXG4gIChtb3VzZXVwKT1cImhhbmRsZUNsaWNrKCRldmVudClcIlxuPjwvdGh5LWljb24+XG4iXX0=
|
|
@@ -3,7 +3,7 @@ import { Editor, Path, Range, Transforms } from 'slate';
|
|
|
3
3
|
import { getPluginOptions } from '../core/utils/get-plugin-options';
|
|
4
4
|
import * as TheQueries from '../queries';
|
|
5
5
|
import { refocus } from '../utils';
|
|
6
|
-
export const insertElements = (editor, elements) => {
|
|
6
|
+
export const insertElements = (editor, elements, select = true) => {
|
|
7
7
|
if (!editor.selection) {
|
|
8
8
|
refocus(editor);
|
|
9
9
|
}
|
|
@@ -14,25 +14,19 @@ export const insertElements = (editor, elements) => {
|
|
|
14
14
|
const allowParentTypes = getPluginOptions(editor, type)?.allowParentTypes || [];
|
|
15
15
|
const insertNodePath = TheQueries.getInsertElementsPath(editor, allowParentTypes);
|
|
16
16
|
const [anchorBlock, anchorBlockPath] = TheQueries.anchorBlockEntry(editor);
|
|
17
|
-
|
|
17
|
+
const isEmpty = Editor.isEmpty(editor, anchorBlock);
|
|
18
18
|
if (insertNodePath) {
|
|
19
19
|
Editor.withoutNormalizing(editor, () => {
|
|
20
|
-
Transforms.insertNodes(editor, elements, { at: insertNodePath });
|
|
21
|
-
Transforms.select(editor, Editor.start(editor, insertNodePath));
|
|
20
|
+
Transforms.insertNodes(editor, elements, { at: insertNodePath, select });
|
|
22
21
|
if (isEmpty) {
|
|
23
22
|
Transforms.removeNodes(editor, { at: anchorBlockPath });
|
|
24
23
|
}
|
|
25
24
|
});
|
|
26
25
|
return;
|
|
27
26
|
}
|
|
28
|
-
|
|
29
|
-
Transforms.insertNodes(editor, elements, { at: nextPath });
|
|
27
|
+
Transforms.insertNodes(editor, elements, { at: Path.next([anchorBlockPath[0]]), select });
|
|
30
28
|
if (isEmpty && anchorBlockPath.length === 1) {
|
|
31
29
|
Transforms.delete(editor, { at: anchorBlockPath });
|
|
32
|
-
Transforms.select(editor, Editor.start(editor, anchorBlockPath));
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
Transforms.select(editor, Editor.start(editor, nextPath));
|
|
36
30
|
}
|
|
37
31
|
};
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LWVsZW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3RyYW5zZm9ybXMvaW5zZXJ0LWVsZW1lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFXLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXBFLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbkMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBYyxFQUFFLFFBQTZCLEVBQUUsTUFBTSxHQUFHLElBQUksRUFBRSxFQUFFO0lBQzNGLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsTUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFlO0lBQ25GLE1BQU0sZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztJQUNoRixNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLGdCQUF3QyxDQUFDLENBQUM7SUFDMUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUMsR0FBRyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0UsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFFcEQsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNqQixNQUFNLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUNuQyxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDekUsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDVixVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1lBQzVELENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU87SUFDWCxDQUFDO0lBRUQsVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDMUYsSUFBSSxPQUFPLElBQUksZUFBZSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IEVkaXRvciwgRWxlbWVudCwgUGF0aCwgUmFuZ2UsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBnZXRQbHVnaW5PcHRpb25zIH0gZnJvbSAnLi4vY29yZS91dGlscy9nZXQtcGx1Z2luLW9wdGlvbnMnO1xuaW1wb3J0IHsgQ3VzdG9tRWxlbWVudEtpbmRzIH0gZnJvbSAnLi4vY3VzdG9tLXR5cGVzJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vcXVlcmllcyc7XG5pbXBvcnQgeyByZWZvY3VzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgaW5zZXJ0RWxlbWVudHMgPSAoZWRpdG9yOiBFZGl0b3IsIGVsZW1lbnRzOiBFbGVtZW50IHwgRWxlbWVudFtdLCBzZWxlY3QgPSB0cnVlKSA9PiB7XG4gICAgaWYgKCFlZGl0b3Iuc2VsZWN0aW9uKSB7XG4gICAgICAgIHJlZm9jdXMoZWRpdG9yKTtcbiAgICB9XG4gICAgaWYgKFJhbmdlLmlzRXhwYW5kZWQoZWRpdG9yLnNlbGVjdGlvbikpIHtcbiAgICAgICAgRWRpdG9yLmRlbGV0ZUZyYWdtZW50KGVkaXRvcik7XG4gICAgfVxuICAgIGNvbnN0IHR5cGUgPSAhaXNBcnJheShlbGVtZW50cykgPyBlbGVtZW50cy50eXBlIDogZWxlbWVudHNbMF0udHlwZTsgLy8g5ZCO5pyf5aSE55CG5aSN5Yi257KY6LS06ZyA6KaB5L+u5pS5XG4gICAgY29uc3QgYWxsb3dQYXJlbnRUeXBlcyA9IGdldFBsdWdpbk9wdGlvbnMoZWRpdG9yLCB0eXBlKT8uYWxsb3dQYXJlbnRUeXBlcyB8fCBbXTtcbiAgICBjb25zdCBpbnNlcnROb2RlUGF0aCA9IFRoZVF1ZXJpZXMuZ2V0SW5zZXJ0RWxlbWVudHNQYXRoKGVkaXRvciwgYWxsb3dQYXJlbnRUeXBlcyBhcyBDdXN0b21FbGVtZW50S2luZHNbXSk7XG4gICAgY29uc3QgW2FuY2hvckJsb2NrLCBhbmNob3JCbG9ja1BhdGhdID0gVGhlUXVlcmllcy5hbmNob3JCbG9ja0VudHJ5KGVkaXRvcik7XG4gICAgY29uc3QgaXNFbXB0eSA9IEVkaXRvci5pc0VtcHR5KGVkaXRvciwgYW5jaG9yQmxvY2spO1xuXG4gICAgaWYgKGluc2VydE5vZGVQYXRoKSB7XG4gICAgICAgIEVkaXRvci53aXRob3V0Tm9ybWFsaXppbmcoZWRpdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGVzKGVkaXRvciwgZWxlbWVudHMsIHsgYXQ6IGluc2VydE5vZGVQYXRoLCBzZWxlY3QgfSk7XG4gICAgICAgICAgICBpZiAoaXNFbXB0eSkge1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMucmVtb3ZlTm9kZXMoZWRpdG9yLCB7IGF0OiBhbmNob3JCbG9ja1BhdGggfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlcyhlZGl0b3IsIGVsZW1lbnRzLCB7IGF0OiBQYXRoLm5leHQoW2FuY2hvckJsb2NrUGF0aFswXV0pLCBzZWxlY3QgfSk7XG4gICAgaWYgKGlzRW1wdHkgJiYgYW5jaG9yQmxvY2tQYXRoLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBUcmFuc2Zvcm1zLmRlbGV0ZShlZGl0b3IsIHsgYXQ6IGFuY2hvckJsb2NrUGF0aCB9KTtcbiAgICB9XG59O1xuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NgIf, NgFor, NgStyle, NgTemplateOutlet, NgClass, DOCUMENT } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { InjectionToken, Component, Directive, Input, HostBinding, ViewChild, HostListener, ViewContainerRef, Inject, TemplateRef, ChangeDetectionStrategy, Optional, SkipSelf, ContentChildren, forwardRef, EventEmitter, Output, Pipe, Injectable, ElementRef, ChangeDetectorRef, ViewChildren, NgModule } from '@angular/core';
|
|
3
|
+
import { InjectionToken, Component, Directive, Input, HostBinding, ViewChild, HostListener, ViewContainerRef, Inject, TemplateRef, ChangeDetectionStrategy, Optional, SkipSelf, ContentChildren, forwardRef, EventEmitter, Output, Pipe, Injectable, ElementRef, ChangeDetectorRef, inject, Renderer2, ViewChildren, NgModule } from '@angular/core';
|
|
4
4
|
import { ThyDivider } from 'ngx-tethys/divider';
|
|
5
5
|
import { ThyAction, ThyActions } from 'ngx-tethys/action';
|
|
6
6
|
import { ThyDropdownMenuItemDirective, ThyDropdownMenuDivider, ThyDropdownMenuItemNameDirective, ThyDropdownMenuItemIconDirective, ThyDropdownMenuItemActiveDirective, ThyDropdownDirective, ThyDropdownMenuComponent, ThyDropdownMenuGroup, ThyDropdownMenuItemExtendIconDirective } from 'ngx-tethys/dropdown';
|
|
@@ -3826,7 +3826,7 @@ function handleContinualInsertBreak(editor, lowestBlock, type) {
|
|
|
3826
3826
|
return false;
|
|
3827
3827
|
}
|
|
3828
3828
|
|
|
3829
|
-
const insertElements = (editor, elements) => {
|
|
3829
|
+
const insertElements = (editor, elements, select = true) => {
|
|
3830
3830
|
if (!editor.selection) {
|
|
3831
3831
|
refocus(editor);
|
|
3832
3832
|
}
|
|
@@ -3837,25 +3837,19 @@ const insertElements = (editor, elements) => {
|
|
|
3837
3837
|
const allowParentTypes = getPluginOptions(editor, type)?.allowParentTypes || [];
|
|
3838
3838
|
const insertNodePath = getInsertElementsPath(editor, allowParentTypes);
|
|
3839
3839
|
const [anchorBlock, anchorBlockPath] = anchorBlockEntry(editor);
|
|
3840
|
-
|
|
3840
|
+
const isEmpty = Editor.isEmpty(editor, anchorBlock);
|
|
3841
3841
|
if (insertNodePath) {
|
|
3842
3842
|
Editor.withoutNormalizing(editor, () => {
|
|
3843
|
-
Transforms.insertNodes(editor, elements, { at: insertNodePath });
|
|
3844
|
-
Transforms.select(editor, Editor.start(editor, insertNodePath));
|
|
3843
|
+
Transforms.insertNodes(editor, elements, { at: insertNodePath, select });
|
|
3845
3844
|
if (isEmpty) {
|
|
3846
3845
|
Transforms.removeNodes(editor, { at: anchorBlockPath });
|
|
3847
3846
|
}
|
|
3848
3847
|
});
|
|
3849
3848
|
return;
|
|
3850
3849
|
}
|
|
3851
|
-
|
|
3852
|
-
Transforms.insertNodes(editor, elements, { at: nextPath });
|
|
3850
|
+
Transforms.insertNodes(editor, elements, { at: Path.next([anchorBlockPath[0]]), select });
|
|
3853
3851
|
if (isEmpty && anchorBlockPath.length === 1) {
|
|
3854
3852
|
Transforms.delete(editor, { at: anchorBlockPath });
|
|
3855
|
-
Transforms.select(editor, Editor.start(editor, anchorBlockPath));
|
|
3856
|
-
}
|
|
3857
|
-
else {
|
|
3858
|
-
Transforms.select(editor, Editor.start(editor, nextPath));
|
|
3859
3853
|
}
|
|
3860
3854
|
};
|
|
3861
3855
|
|
|
@@ -6868,19 +6862,19 @@ const InlineCodeEditor = {
|
|
|
6868
6862
|
};
|
|
6869
6863
|
|
|
6870
6864
|
class TheQuickInsert {
|
|
6871
|
-
|
|
6872
|
-
event.preventDefault();
|
|
6873
|
-
event.stopPropagation();
|
|
6874
|
-
}
|
|
6875
|
-
constructor(renderer, elementRef, cdr) {
|
|
6876
|
-
this.renderer = renderer;
|
|
6877
|
-
this.elementRef = elementRef;
|
|
6878
|
-
this.cdr = cdr;
|
|
6865
|
+
constructor() {
|
|
6879
6866
|
this.className = 'the-quick-insert';
|
|
6880
6867
|
this.isVisible = false;
|
|
6881
6868
|
this.defaultIconName = 'plus-circle-thin';
|
|
6882
6869
|
this.iconNameFill = 'plus-circle-thin-fill';
|
|
6883
6870
|
this.displayIconName = this.defaultIconName;
|
|
6871
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
6872
|
+
this.renderer = inject(Renderer2);
|
|
6873
|
+
this.elementRef = inject((ElementRef));
|
|
6874
|
+
}
|
|
6875
|
+
handleMousedownNativeElement(event) {
|
|
6876
|
+
event.preventDefault();
|
|
6877
|
+
event.stopPropagation();
|
|
6884
6878
|
}
|
|
6885
6879
|
ngOnInit() {
|
|
6886
6880
|
const { onChange } = this.editor;
|
|
@@ -6944,11 +6938,11 @@ class TheQuickInsert {
|
|
|
6944
6938
|
}
|
|
6945
6939
|
mouseEnter(event) {
|
|
6946
6940
|
this.displayIconName = this.iconNameFill;
|
|
6947
|
-
this.cdr.
|
|
6941
|
+
this.cdr.detectChanges();
|
|
6948
6942
|
}
|
|
6949
6943
|
mouseLeave(event) {
|
|
6950
6944
|
this.displayIconName = this.defaultIconName;
|
|
6951
|
-
this.cdr.
|
|
6945
|
+
this.cdr.detectChanges();
|
|
6952
6946
|
}
|
|
6953
6947
|
handleClick(event) {
|
|
6954
6948
|
event.stopPropagation();
|
|
@@ -6963,13 +6957,13 @@ class TheQuickInsert {
|
|
|
6963
6957
|
this.updateIconDisplay();
|
|
6964
6958
|
}, 100);
|
|
6965
6959
|
}
|
|
6966
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheQuickInsert, deps: [
|
|
6967
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TheQuickInsert, isStandalone: true, selector: "[theQuickInsert]", inputs: { editor: "editor", isVisible: "isVisible" }, host: { listeners: { "mousedown": "handleMousedownNativeElement($event)" }, properties: { "class": "this.className" } }, viewQueries: [{ propertyName: "iconElement", first: true, predicate: ["iconElement"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<thy-icon\n #iconElement\n
|
|
6960
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheQuickInsert, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6961
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TheQuickInsert, isStandalone: true, selector: "[theQuickInsert]", inputs: { editor: "editor", isVisible: "isVisible" }, host: { listeners: { "mousedown": "handleMousedownNativeElement($event)" }, properties: { "class": "this.className" } }, viewQueries: [{ propertyName: "iconElement", first: true, predicate: ["iconElement"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<thy-icon\n #iconElement\n class=\"quick-insert-icon text-desc font-size-xlg\"\n [thyIconName]=\"displayIconName\"\n (mouseenter)=\"mouseEnter($event)\"\n (mouseleave)=\"mouseLeave($event)\"\n (mouseup)=\"handleClick($event)\"\n></thy-icon>\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6968
6962
|
}
|
|
6969
6963
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheQuickInsert, decorators: [{
|
|
6970
6964
|
type: Component,
|
|
6971
|
-
args: [{ selector: '[theQuickInsert]', standalone: true, imports: [ThyIcon], template: "<thy-icon\n #iconElement\n
|
|
6972
|
-
}],
|
|
6965
|
+
args: [{ selector: '[theQuickInsert]', standalone: true, imports: [ThyIcon], changeDetection: ChangeDetectionStrategy.OnPush, template: "<thy-icon\n #iconElement\n class=\"quick-insert-icon text-desc font-size-xlg\"\n [thyIconName]=\"displayIconName\"\n (mouseenter)=\"mouseEnter($event)\"\n (mouseleave)=\"mouseLeave($event)\"\n (mouseup)=\"handleClick($event)\"\n></thy-icon>\n" }]
|
|
6966
|
+
}], propDecorators: { className: [{
|
|
6973
6967
|
type: HostBinding,
|
|
6974
6968
|
args: ['class']
|
|
6975
6969
|
}], editor: [{
|
|
@@ -7068,7 +7062,7 @@ class ThePluginMenuComponent {
|
|
|
7068
7062
|
const nodeString = Node.string(node);
|
|
7069
7063
|
const isStartWithHotkey = nodeString.startsWith('/') || nodeString.startsWith('#');
|
|
7070
7064
|
const isIncludeKeywords = nodeString.toLocaleLowerCase().trim().includes(this.keyWords);
|
|
7071
|
-
if (
|
|
7065
|
+
if (this.originKeywords?.length > 0 && (isStartWithHotkey || isIncludeKeywords)) {
|
|
7072
7066
|
Transforms.delete(this.editor, { distance: this.originKeywords.length, reverse: true });
|
|
7073
7067
|
}
|
|
7074
7068
|
};
|