ng-cw-v12
Version:
Angular UI component library
82 lines • 25.5 kB
JavaScript
import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
import { createEditor, createToolbar } from '@wangeditor/editor';
import * as i0 from "@angular/core";
export class EditorComponent {
constructor() {
this.ncEditorMode = 'default';
this.ncToolbarMode = 'default';
this.ncEditorConfig = {}; //菜单栏和编辑器配置
this.ncToolbarConfig = {}; //工具栏配置
this.ncHtml = '<p><br></p>'; //初始化内容
this.ncDomId = 'nc-editor'; //编辑器容器id
this.ncLoaded = new EventEmitter();
}
ngAfterViewInit() {
//默认工具栏配置
const toolbarConfig = {
excludeKeys: ['group-video', 'insertImage']
};
//默认菜单栏和编辑器配置
const editorConfig = {
//菜单栏配置
MENU_CONF: {
uploadImage: {
server: '',
base64LimitSize: 10 * 1024 * 1024
}
},
//编辑器配置
placeholder: '请输入内容...'
};
this.editor = createEditor({
selector: `#${this.ncDomId}-editor`,
html: this.ncHtml,
config: Object.assign({}, editorConfig, this.ncEditorConfig),
mode: this.ncEditorMode
});
this.toolbar = createToolbar({
editor: this.editor,
selector: `#${this.ncDomId}-toolbar`,
config: Object.assign({}, toolbarConfig, this.ncToolbarConfig),
mode: this.ncToolbarMode
});
// console.log(Object.assign({}, editorConfig, this.ncEditorConfig));
// console.log(Object.assign({}, toolbarConfig, this.ncToolbarConfig));
// console.log(this.editor.getAllMenuKeys());
console.log(this.toolbar.getConfig().toolbarKeys);
this.ncLoaded.emit({ editor: this.editor, toolbar: this.toolbar });
}
ngOnDestroy() {
this.editor.destroy();
this.toolbar.destroy();
}
}
EditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: EditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
EditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: EditorComponent, selector: "nc-editor", inputs: { ncEditorMode: "ncEditorMode", ncToolbarMode: "ncToolbarMode", ncEditorConfig: "ncEditorConfig", ncToolbarConfig: "ncToolbarConfig", ncHtml: "ncHtml", ncDomId: "ncDomId" }, outputs: { ncLoaded: "ncLoaded" }, ngImport: i0, template: "<div class=\"editor\u2014wrapper\" [id]=\"ncDomId\">\n <div class=\"toolbar-container\" [id]=\"ncDomId + '-toolbar'\"><!-- \u5DE5\u5177\u680F --></div>\n <div class=\"editor-container\" [id]=\"ncDomId + '-editor'\"><!-- \u7F16\u8F91\u5668 --></div>\n</div>", styles: [".editor\\2014wrapper{border:1px solid #ccc;width:100%;height:100%;display:flex;flex-direction:column}.editor\\2014wrapper .toolbar-container{border-bottom:1px solid #ccc}.editor\\2014wrapper .editor-container{flex:1;overflow:auto}\n", ":root,:host{--w-e-textarea-bg-color: #fff;--w-e-textarea-color: #333;--w-e-textarea-border-color: #ccc;--w-e-textarea-slight-border-color: #e8e8e8;--w-e-textarea-slight-color: #d4d4d4;--w-e-textarea-slight-bg-color: #f5f2f0;--w-e-textarea-selected-border-color: #B4D5FF;--w-e-textarea-handler-bg-color: #4290f7;--w-e-toolbar-color: #595959;--w-e-toolbar-bg-color: #fff;--w-e-toolbar-active-color: #333;--w-e-toolbar-active-bg-color: #f1f1f1;--w-e-toolbar-disabled-color: #999;--w-e-toolbar-border-color: #e8e8e8;--w-e-modal-button-bg-color: #fafafa;--w-e-modal-button-border-color: #d9d9d9}.w-e-text-container *,.w-e-toolbar *{box-sizing:border-box;margin:0;outline:none;padding:0}.w-e-text-container blockquote,.w-e-text-container li,.w-e-text-container p,.w-e-text-container td,.w-e-text-container th,.w-e-toolbar *{line-height:1.5}.w-e-text-container{background-color:var(--w-e-textarea-bg-color);color:var(--w-e-textarea-color);height:100%;position:relative}.w-e-text-container .w-e-scroll{-webkit-overflow-scrolling:touch;height:100%}.w-e-text-container [data-slate-editor]{word-wrap:break-word;border-top:1px solid transparent;min-height:100%;outline:0;padding:0 10px;white-space:pre-wrap}.w-e-text-container [data-slate-editor] p{margin:15px 0}.w-e-text-container [data-slate-editor] h1,.w-e-text-container [data-slate-editor] h2,.w-e-text-container [data-slate-editor] h3,.w-e-text-container [data-slate-editor] h4,.w-e-text-container [data-slate-editor] h5{margin:20px 0}.w-e-text-container [data-slate-editor] img{cursor:default;display:inline!important;max-width:100%;min-height:20px;min-width:20px}.w-e-text-container [data-slate-editor] span{text-indent:0}.w-e-text-container [data-slate-editor] [data-selected=true]{box-shadow:0 0 0 2px var(--w-e-textarea-selected-border-color)}.w-e-text-placeholder{font-style:italic;left:10px;top:17px;width:90%}.w-e-max-length-info,.w-e-text-placeholder{color:var(--w-e-textarea-slight-color);pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none}.w-e-max-length-info{bottom:.5em;right:1em}.w-e-bar{background-color:var(--w-e-toolbar-bg-color);color:var(--w-e-toolbar-color);font-size:14px;padding:0 5px}.w-e-bar svg{fill:var(--w-e-toolbar-color);height:14px;width:14px}.w-e-bar-show{display:flex}.w-e-bar-hidden{display:none}.w-e-hover-bar{border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;box-shadow:0 2px 5px #0000001f;position:absolute}.w-e-toolbar{flex-wrap:wrap;position:relative}.w-e-bar-divider{background-color:var(--w-e-toolbar-border-color);display:inline-flex;height:40px;margin:0 5px;width:1px}.w-e-bar-item{display:flex;height:40px;padding:4px;position:relative;text-align:center}.w-e-bar-item,.w-e-bar-item button{align-items:center;justify-content:center}.w-e-bar-item button{background:transparent;border:none;color:var(--w-e-toolbar-color);cursor:pointer;display:inline-flex;height:32px;overflow:hidden;padding:0 8px;white-space:nowrap}.w-e-bar-item button:hover{background-color:var(--w-e-toolbar-active-bg-color);color:var(--w-e-toolbar-active-color)}.w-e-bar-item button .title{margin-left:5px}.w-e-bar-item .active{background-color:var(--w-e-toolbar-active-bg-color);color:var(--w-e-toolbar-active-color)}.w-e-bar-item .disabled{color:var(--w-e-toolbar-disabled-color);cursor:not-allowed}.w-e-bar-item .disabled svg{fill:var(--w-e-toolbar-disabled-color)}.w-e-bar-item .disabled:hover{background-color:var(--w-e-toolbar-bg-color);color:var(--w-e-toolbar-disabled-color)}.w-e-bar-item .disabled:hover svg{fill:var(--w-e-toolbar-disabled-color)}.w-e-menu-tooltip-v5:before{background-color:var(--w-e-toolbar-active-color);border-radius:5px;color:var(--w-e-toolbar-bg-color);content:attr(data-tooltip);font-size:.75em;opacity:0;padding:5px 10px;position:absolute;text-align:center;top:40px;transition:opacity .6s;visibility:hidden;white-space:pre;z-index:1}.w-e-menu-tooltip-v5:after{border:5px solid transparent;border-bottom:5px solid var(--w-e-toolbar-active-color);content:\"\";opacity:0;position:absolute;top:30px;transition:opacity .6s;visibility:hidden}.w-e-menu-tooltip-v5:hover:after,.w-e-menu-tooltip-v5:hover:before{opacity:1;visibility:visible}.w-e-menu-tooltip-v5.tooltip-right:before{left:100%;top:10px}.w-e-menu-tooltip-v5.tooltip-right:after{border-bottom-color:transparent;border-left-color:transparent;border-right-color:var(--w-e-toolbar-active-color);border-top-color:transparent;left:100%;margin-left:-10px;top:16px}.w-e-bar-item-group .w-e-bar-item-menus-container{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;box-shadow:0 2px 10px #0000001f;display:none;left:0;margin-top:40px;position:absolute;top:0;z-index:1}.w-e-bar-item-group:hover .w-e-bar-item-menus-container{display:block}.w-e-select-list{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;box-shadow:0 2px 10px #0000001f;left:0;margin-top:40px;max-height:350px;min-width:100px;overflow-y:auto;position:absolute;top:0;z-index:1}.w-e-select-list ul{line-height:1;list-style:none}.w-e-select-list ul .selected{background-color:var(--w-e-toolbar-active-bg-color)}.w-e-select-list ul li{cursor:pointer;padding:7px 0 7px 25px;position:relative;text-align:left;white-space:nowrap}.w-e-select-list ul li:hover{background-color:var(--w-e-toolbar-active-bg-color)}.w-e-select-list ul li svg{left:0;margin-left:5px;margin-top:-7px;position:absolute;top:50%}.w-e-bar-bottom .w-e-select-list{bottom:0;margin-bottom:40px;margin-top:0;top:inherit}.w-e-drop-panel{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;box-shadow:0 2px 10px #0000001f;margin-top:40px;min-width:200px;padding:10px;position:absolute;top:0;z-index:1}.w-e-bar-bottom .w-e-drop-panel{bottom:0;margin-bottom:40px;margin-top:0;top:inherit}.w-e-modal{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;box-shadow:0 2px 10px #0000001f;color:var(--w-e-toolbar-color);font-size:14px;min-height:40px;min-width:100px;padding:20px 15px 0;position:absolute;text-align:left;z-index:1}.w-e-modal .btn-close{cursor:pointer;line-height:1;padding:5px;position:absolute;right:8px;top:7px}.w-e-modal .btn-close svg{fill:var(--w-e-toolbar-color);height:10px;width:10px}.w-e-modal .babel-container{display:block;margin-bottom:15px}.w-e-modal .babel-container span{display:block;margin-bottom:10px}.w-e-modal .button-container{margin-bottom:15px}.w-e-modal button{background-color:var(--w-e-modal-button-bg-color);border:1px solid var(--w-e-modal-button-border-color);border-radius:4px;color:var(--w-e-toolbar-color);cursor:pointer;font-weight:400;height:32px;padding:4.5px 15px;text-align:center;touch-action:manipulation;transition:all .3s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;user-select:none;white-space:nowrap}.w-e-modal input[type=number],.w-e-modal input[type=text],.w-e-modal textarea{font-feature-settings:\"tnum\";background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-modal-button-border-color);border-radius:4px;color:var(--w-e-toolbar-color);font-variant:tabular-nums;padding:4.5px 11px;transition:all .3s;width:100%}.w-e-modal textarea{min-height:60px}body .w-e-modal,body .w-e-modal *{box-sizing:border-box}.w-e-progress-bar{background-color:var(--w-e-textarea-handler-bg-color);height:1px;position:absolute;transition:width .3s;width:0}.w-e-full-screen-container{bottom:0!important;display:flex!important;flex-direction:column!important;height:100%!important;left:0!important;margin:0!important;padding:0!important;position:fixed;right:0!important;top:0!important;width:100%!important}.w-e-full-screen-container [data-w-e-textarea=true]{flex:1!important}.w-e-text-container [data-slate-editor] code{background-color:var(--w-e-textarea-slight-bg-color);border-radius:3px;font-family:monospace;padding:3px}.w-e-panel-content-color{list-style:none;text-align:left;width:230px}.w-e-panel-content-color li{border:1px solid var(--w-e-toolbar-bg-color);border-radius:3px;cursor:pointer;display:inline-block;padding:2px}.w-e-panel-content-color li:hover{border-color:var(--w-e-toolbar-color)}.w-e-panel-content-color li .color-block{border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;height:17px;width:17px}.w-e-panel-content-color .active{border-color:var(--w-e-toolbar-color)}.w-e-panel-content-color .clear{line-height:1.5;margin-bottom:5px;width:100%}.w-e-panel-content-color .clear svg{height:16px;margin-bottom:-4px;width:16px}.w-e-text-container [data-slate-editor] blockquote{background-color:var(--w-e-textarea-slight-bg-color);border-left:8px solid var(--w-e-textarea-selected-border-color);display:block;font-size:100%;line-height:1.5;margin:10px 0;padding:10px}.w-e-panel-content-emotion{font-size:20px;list-style:none;text-align:left;width:300px}.w-e-panel-content-emotion li{border-radius:3px;cursor:pointer;display:inline-block;padding:0 5px}.w-e-panel-content-emotion li:hover{background-color:var(--w-e-textarea-slight-bg-color)}.w-e-textarea-divider{border-radius:3px;margin:20px auto;padding:20px}.w-e-textarea-divider hr{background-color:var(--w-e-textarea-border-color);border:0;display:block;height:1px}.w-e-text-container [data-slate-editor] pre>code{background-color:var(--w-e-textarea-slight-bg-color);border:1px solid var(--w-e-textarea-slight-border-color);border-radius:4px;display:block;font-size:14px;padding:10px;text-indent:0}.w-e-text-container [data-slate-editor] .w-e-image-container{display:inline-block;margin:0 3px}.w-e-text-container [data-slate-editor] .w-e-image-container:hover{box-shadow:0 0 0 2px var(--w-e-textarea-selected-border-color)}.w-e-text-container [data-slate-editor] .w-e-selected-image-container{overflow:hidden;position:relative}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .w-e-image-dragger{background-color:var(--w-e-textarea-handler-bg-color);height:7px;position:absolute;width:7px}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .left-top{cursor:nwse-resize;left:0;top:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .right-top{cursor:nesw-resize;right:0;top:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .left-bottom{bottom:0;cursor:nesw-resize;left:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .right-bottom{bottom:0;cursor:nwse-resize;right:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container:hover{box-shadow:none}.w-e-text-container [contenteditable=false] .w-e-image-container:hover{box-shadow:none}.w-e-text-container [data-slate-editor] .table-container{border:1px dashed var(--w-e-textarea-border-color);border-radius:5px;margin-top:10px;overflow-x:auto;padding:10px;width:100%}.w-e-text-container [data-slate-editor] table{border-collapse:collapse}.w-e-text-container [data-slate-editor] table td,.w-e-text-container [data-slate-editor] table th{border:1px solid var(--w-e-textarea-border-color);line-height:1.5;min-width:30px;padding:3px 5px;text-align:left}.w-e-text-container [data-slate-editor] table th{background-color:var(--w-e-textarea-slight-bg-color);font-weight:700;text-align:center}.w-e-panel-content-table{background-color:var(--w-e-toolbar-bg-color)}.w-e-panel-content-table table{border-collapse:collapse}.w-e-panel-content-table td{border:1px solid var(--w-e-toolbar-border-color);cursor:pointer;height:15px;padding:3px 5px;width:20px}.w-e-panel-content-table td.active{background-color:var(--w-e-toolbar-active-bg-color)}.w-e-textarea-video-container{background-image:linear-gradient(45deg,#eee 25%,transparent 0,transparent 75%,#eee 0,#eee),linear-gradient(45deg,#eee 25%,#fff 0,#fff 75%,#eee 0,#eee);background-position:0 0,10px 10px;background-size:20px 20px;border:1px dashed var(--w-e-textarea-border-color);border-radius:5px;margin:10px auto 0;padding:10px 0;text-align:center}.w-e-text-container [data-slate-editor] pre>code{word-wrap:normal;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;-webkit-hyphens:none;hyphens:none;line-height:1.5;margin:.5em 0;overflow:auto;padding:1em;tab-size:4;text-align:left;text-shadow:0 1px #fff;white-space:pre;word-break:normal;word-spacing:normal}.w-e-text-container [data-slate-editor] pre>code .token.cdata,.w-e-text-container [data-slate-editor] pre>code .token.comment,.w-e-text-container [data-slate-editor] pre>code .token.doctype,.w-e-text-container [data-slate-editor] pre>code .token.prolog{color:#708090}.w-e-text-container [data-slate-editor] pre>code .token.punctuation{color:#999}.w-e-text-container [data-slate-editor] pre>code .token.namespace{opacity:.7}.w-e-text-container [data-slate-editor] pre>code .token.boolean,.w-e-text-container [data-slate-editor] pre>code .token.constant,.w-e-text-container [data-slate-editor] pre>code .token.deleted,.w-e-text-container [data-slate-editor] pre>code .token.number,.w-e-text-container [data-slate-editor] pre>code .token.property,.w-e-text-container [data-slate-editor] pre>code .token.symbol,.w-e-text-container [data-slate-editor] pre>code .token.tag{color:#905}.w-e-text-container [data-slate-editor] pre>code .token.attr-name,.w-e-text-container [data-slate-editor] pre>code .token.builtin,.w-e-text-container [data-slate-editor] pre>code .token.char,.w-e-text-container [data-slate-editor] pre>code .token.inserted,.w-e-text-container [data-slate-editor] pre>code .token.selector,.w-e-text-container [data-slate-editor] pre>code .token.string{color:#690}.w-e-text-container [data-slate-editor] pre>code .language-css .token.string,.w-e-text-container [data-slate-editor] pre>code .style .token.string,.w-e-text-container [data-slate-editor] pre>code .token.entity,.w-e-text-container [data-slate-editor] pre>code .token.operator,.w-e-text-container [data-slate-editor] pre>code .token.url{color:#9a6e3a}.w-e-text-container [data-slate-editor] pre>code .token.atrule,.w-e-text-container [data-slate-editor] pre>code .token.attr-value,.w-e-text-container [data-slate-editor] pre>code .token.keyword{color:#07a}.w-e-text-container [data-slate-editor] pre>code .token.class-name,.w-e-text-container [data-slate-editor] pre>code .token.function{color:#dd4a68}.w-e-text-container [data-slate-editor] pre>code .token.important,.w-e-text-container [data-slate-editor] pre>code .token.regex,.w-e-text-container [data-slate-editor] pre>code .token.variable{color:#e90}.w-e-text-container [data-slate-editor] pre>code .token.bold,.w-e-text-container [data-slate-editor] pre>code .token.important{font-weight:700}.w-e-text-container [data-slate-editor] pre>code .token.italic{font-style:italic}.w-e-text-container [data-slate-editor] pre>code .token.entity{cursor:help}\n"], encapsulation: i0.ViewEncapsulation.None });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: EditorComponent, decorators: [{
type: Component,
args: [{
selector: 'nc-editor',
templateUrl: './editor.component.html',
styleUrls: [
'./editor.component.less',
'../../../node_modules/@wangeditor/editor/dist/css/style.css'
],
encapsulation: ViewEncapsulation.None
}]
}], ctorParameters: function () { return []; }, propDecorators: { ncEditorMode: [{
type: Input
}], ncToolbarMode: [{
type: Input
}], ncEditorConfig: [{
type: Input
}], ncToolbarConfig: [{
type: Input
}], ncHtml: [{
type: Input
}], ncDomId: [{
type: Input
}], ncLoaded: [{
type: Output
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvZWRpdG9yL2VkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL2VkaXRvci9lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQXNELE1BQU0sb0JBQW9CLENBQUM7O0FBV3JILE1BQU0sT0FBTyxlQUFlO0lBVzFCO1FBVlMsaUJBQVksR0FBeUIsU0FBUyxDQUFDO1FBQy9DLGtCQUFhLEdBQXlCLFNBQVMsQ0FBQztRQUNoRCxtQkFBYyxHQUEyQixFQUFFLENBQUMsQ0FBQSxXQUFXO1FBQ3ZELG9CQUFlLEdBQTRCLEVBQUUsQ0FBQyxDQUFBLE9BQU87UUFDckQsV0FBTSxHQUFXLGFBQWEsQ0FBQyxDQUFBLE9BQU87UUFDdEMsWUFBTyxHQUFXLFdBQVcsQ0FBQyxDQUFBLFNBQVM7UUFDdEMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUE0QyxDQUFDO0lBSWxFLENBQUM7SUFFakIsZUFBZTtRQUNiLFNBQVM7UUFDVCxNQUFNLGFBQWEsR0FBNEI7WUFDN0MsV0FBVyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQztTQUM1QyxDQUFBO1FBRUQsYUFBYTtRQUNiLE1BQU0sWUFBWSxHQUEyQjtZQUMzQyxPQUFPO1lBQ1AsU0FBUyxFQUFFO2dCQUNULFdBQVcsRUFBRTtvQkFDWCxNQUFNLEVBQUUsRUFBRTtvQkFDVixlQUFlLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJO2lCQUNsQzthQUNGO1lBQ0QsT0FBTztZQUNQLFdBQVcsRUFBRSxVQUFVO1NBQ3hCLENBQUE7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQztZQUN6QixRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxTQUFTO1lBQ25DLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNqQixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDNUQsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQ3hCLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxPQUFPLEdBQUcsYUFBYSxDQUFDO1lBQzNCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxVQUFVO1lBQ3BDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUM5RCxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWE7U0FDekIsQ0FBQyxDQUFBO1FBRUYscUVBQXFFO1FBQ3JFLHVFQUF1RTtRQUN2RSw2Q0FBNkM7UUFDN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWxELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3pCLENBQUM7OzRHQXpEVSxlQUFlO2dHQUFmLGVBQWUsMFFDWjVCLHdRQUdNOzJGRFNPLGVBQWU7a0JBVDNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFdBQVcsRUFBRSx5QkFBeUI7b0JBQ3RDLFNBQVMsRUFBRTt3QkFDVCx5QkFBeUI7d0JBQ3pCLDZEQUE2RDtxQkFDOUQ7b0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDOzBFQUVVLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBBZnRlclZpZXdJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjcmVhdGVFZGl0b3IsIGNyZWF0ZVRvb2xiYXIsIElEb21FZGl0b3IsIElFZGl0b3JDb25maWcsIElUb29sYmFyQ29uZmlnLCBUb29sYmFyIH0gZnJvbSAnQHdhbmdlZGl0b3IvZWRpdG9yJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmMtZWRpdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW1xuICAgICcuL2VkaXRvci5jb21wb25lbnQubGVzcycsXG4gICAgJy4uLy4uLy4uL25vZGVfbW9kdWxlcy9Ad2FuZ2VkaXRvci9lZGl0b3IvZGlzdC9jc3Mvc3R5bGUuY3NzJ1xuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBuY0VkaXRvck1vZGU6ICdkZWZhdWx0JyB8ICdzaW1wbGUnID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSBuY1Rvb2xiYXJNb2RlOiAnZGVmYXVsdCcgfCAnc2ltcGxlJyA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgbmNFZGl0b3JDb25maWc6IFBhcnRpYWw8SUVkaXRvckNvbmZpZz4gPSB7fTsvL+iPnOWNleagj+WSjOe8lui+keWZqOmFjee9rlxuICBASW5wdXQoKSBuY1Rvb2xiYXJDb25maWc6IFBhcnRpYWw8SVRvb2xiYXJDb25maWc+ID0ge307Ly/lt6XlhbfmoI/phY3nva5cbiAgQElucHV0KCkgbmNIdG1sOiBzdHJpbmcgPSAnPHA+PGJyPjwvcD4nOy8v5Yid5aeL5YyW5YaF5a65XG4gIEBJbnB1dCgpIG5jRG9tSWQ6IHN0cmluZyA9ICduYy1lZGl0b3InOy8v57yW6L6R5Zmo5a655ZmoaWRcbiAgQE91dHB1dCgpIG5jTG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7IGVkaXRvcjogSURvbUVkaXRvciwgdG9vbGJhcjogVG9vbGJhciB9PigpO1xuICBlZGl0b3IhOiBJRG9tRWRpdG9yO1xuICB0b29sYmFyITogVG9vbGJhcjtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvL+m7mOiupOW3peWFt+agj+mFjee9rlxuICAgIGNvbnN0IHRvb2xiYXJDb25maWc6IFBhcnRpYWw8SVRvb2xiYXJDb25maWc+ID0ge1xuICAgICAgZXhjbHVkZUtleXM6IFsnZ3JvdXAtdmlkZW8nLCAnaW5zZXJ0SW1hZ2UnXVxuICAgIH1cblxuICAgIC8v6buY6K6k6I+c5Y2V5qCP5ZKM57yW6L6R5Zmo6YWN572uXG4gICAgY29uc3QgZWRpdG9yQ29uZmlnOiBQYXJ0aWFsPElFZGl0b3JDb25maWc+ID0ge1xuICAgICAgLy/oj5zljZXmoI/phY3nva5cbiAgICAgIE1FTlVfQ09ORjoge1xuICAgICAgICB1cGxvYWRJbWFnZToge1xuICAgICAgICAgIHNlcnZlcjogJycsXG4gICAgICAgICAgYmFzZTY0TGltaXRTaXplOiAxMCAqIDEwMjQgKiAxMDI0XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvL+e8lui+keWZqOmFjee9rlxuICAgICAgcGxhY2Vob2xkZXI6ICfor7fovpPlhaXlhoXlrrkuLi4nXG4gICAgfVxuXG4gICAgdGhpcy5lZGl0b3IgPSBjcmVhdGVFZGl0b3Ioe1xuICAgICAgc2VsZWN0b3I6IGAjJHt0aGlzLm5jRG9tSWR9LWVkaXRvcmAsXG4gICAgICBodG1sOiB0aGlzLm5jSHRtbCxcbiAgICAgIGNvbmZpZzogT2JqZWN0LmFzc2lnbih7fSwgZWRpdG9yQ29uZmlnLCB0aGlzLm5jRWRpdG9yQ29uZmlnKSxcbiAgICAgIG1vZGU6IHRoaXMubmNFZGl0b3JNb2RlXG4gICAgfSlcblxuICAgIHRoaXMudG9vbGJhciA9IGNyZWF0ZVRvb2xiYXIoe1xuICAgICAgZWRpdG9yOiB0aGlzLmVkaXRvcixcbiAgICAgIHNlbGVjdG9yOiBgIyR7dGhpcy5uY0RvbUlkfS10b29sYmFyYCxcbiAgICAgIGNvbmZpZzogT2JqZWN0LmFzc2lnbih7fSwgdG9vbGJhckNvbmZpZywgdGhpcy5uY1Rvb2xiYXJDb25maWcpLFxuICAgICAgbW9kZTogdGhpcy5uY1Rvb2xiYXJNb2RlXG4gICAgfSlcblxuICAgIC8vIGNvbnNvbGUubG9nKE9iamVjdC5hc3NpZ24oe30sIGVkaXRvckNvbmZpZywgdGhpcy5uY0VkaXRvckNvbmZpZykpO1xuICAgIC8vIGNvbnNvbGUubG9nKE9iamVjdC5hc3NpZ24oe30sIHRvb2xiYXJDb25maWcsIHRoaXMubmNUb29sYmFyQ29uZmlnKSk7XG4gICAgLy8gY29uc29sZS5sb2codGhpcy5lZGl0b3IuZ2V0QWxsTWVudUtleXMoKSk7XG4gICAgY29uc29sZS5sb2codGhpcy50b29sYmFyLmdldENvbmZpZygpLnRvb2xiYXJLZXlzKTtcblxuICAgIHRoaXMubmNMb2FkZWQuZW1pdCh7IGVkaXRvcjogdGhpcy5lZGl0b3IsIHRvb2xiYXI6IHRoaXMudG9vbGJhciB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZWRpdG9yLmRlc3Ryb3koKTtcbiAgICB0aGlzLnRvb2xiYXIuZGVzdHJveSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZWRpdG9y4oCUd3JhcHBlclwiIFtpZF09XCJuY0RvbUlkXCI+XG4gICAgPGRpdiBjbGFzcz1cInRvb2xiYXItY29udGFpbmVyXCIgW2lkXT1cIm5jRG9tSWQgKyAnLXRvb2xiYXInXCI+PCEtLSDlt6XlhbfmoI8gLS0+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImVkaXRvci1jb250YWluZXJcIiBbaWRdPVwibmNEb21JZCArICctZWRpdG9yJ1wiPjwhLS0g57yW6L6R5ZmoIC0tPjwvZGl2PlxuPC9kaXY+Il19