@sd-angular/core 0.0.1041 → 0.0.1045
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/assets/scss/quill-mention/quill-mention.css +55 -0
- package/assets/scss/sd-core.scss +1 -0
- package/autocomplete/src/lib/autocomplete.component.d.ts +1 -1
- package/bundles/sd-angular-core-autocomplete.umd.js +4 -1
- package/bundles/sd-angular-core-autocomplete.umd.js.map +1 -1
- package/bundles/sd-angular-core-autocomplete.umd.min.js +1 -1
- package/bundles/sd-angular-core-autocomplete.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-chip.umd.js +1 -1
- package/bundles/sd-angular-core-chip.umd.min.js +1 -1
- package/bundles/sd-angular-core-chip.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-comment.umd.js +17 -16
- package/bundles/sd-angular-core-comment.umd.js.map +1 -1
- package/bundles/sd-angular-core-comment.umd.min.js +2 -2
- package/bundles/sd-angular-core-comment.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-editor.umd.js +73 -18
- package/bundles/sd-angular-core-editor.umd.js.map +1 -1
- package/bundles/sd-angular-core-editor.umd.min.js +2 -2
- package/bundles/sd-angular-core-editor.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-form.umd.js +6 -4
- package/bundles/sd-angular-core-form.umd.js.map +1 -1
- package/bundles/sd-angular-core-form.umd.min.js +1 -1
- package/bundles/sd-angular-core-form.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-modal-custom.umd.js +487 -0
- package/bundles/sd-angular-core-modal-custom.umd.js.map +1 -0
- package/bundles/sd-angular-core-modal-custom.umd.min.js +16 -0
- package/bundles/sd-angular-core-modal-custom.umd.min.js.map +1 -0
- package/bundles/sd-angular-core-modal-resizable.umd.js +487 -0
- package/bundles/sd-angular-core-modal-resizable.umd.js.map +1 -0
- package/bundles/sd-angular-core-modal-resizable.umd.min.js +16 -0
- package/bundles/sd-angular-core-modal-resizable.umd.min.js.map +1 -0
- package/bundles/sd-angular-core-setting.umd.js +1 -1
- package/bundles/sd-angular-core-setting.umd.js.map +1 -1
- package/bundles/sd-angular-core-setting.umd.min.js +1 -1
- package/bundles/sd-angular-core-setting.umd.min.js.map +1 -1
- package/bundles/sd-angular-core.umd.js +4 -4
- package/bundles/sd-angular-core.umd.min.js +1 -1
- package/bundles/sd-angular-core.umd.min.js.map +1 -1
- package/chip/sd-angular-core-chip.metadata.json +1 -1
- package/comment/sd-angular-core-comment.metadata.json +1 -1
- package/comment/src/lib/comment.model.d.ts +11 -0
- package/editor/sd-angular-core-editor.metadata.json +1 -1
- package/editor/src/lib/editor.component.d.ts +17 -3
- package/esm2015/autocomplete/src/lib/autocomplete.component.js +6 -3
- package/esm2015/chip/src/lib/chip.component.js +1 -1
- package/esm2015/comment/src/lib/comment.component.js +5 -5
- package/esm2015/comment/src/lib/comment.model.js +1 -1
- package/esm2015/comment/src/lib/comment.module.js +3 -1
- package/esm2015/editor/src/lib/editor.component.js +70 -14
- package/esm2015/editor/src/lib/editor.module.js +4 -2
- package/esm2015/form/src/lib/form.module.js +4 -1
- package/esm2015/modal-custom/index.js +2 -0
- package/esm2015/modal-custom/sd-angular-core-modal-custom.js +5 -0
- package/esm2015/modal-custom/src/lib/modal-custom/modal-custom.component.js +123 -0
- package/esm2015/modal-custom/src/lib/modal-custom.module.js +30 -0
- package/esm2015/modal-custom/src/public-api.js +6 -0
- package/esm2015/modal-resizable/index.js +2 -0
- package/esm2015/modal-resizable/sd-angular-core-modal-resizable.js +5 -0
- package/esm2015/modal-resizable/src/lib/modal-resizable/modal-resizable.component.js +123 -0
- package/esm2015/modal-resizable/src/lib/modal-resizable.module.js +30 -0
- package/esm2015/modal-resizable/src/public-api.js +6 -0
- package/esm2015/public-api.js +2 -1
- package/esm2015/setting/src/lib/setting.service.js +2 -2
- package/fesm2015/sd-angular-core-autocomplete.js +5 -2
- package/fesm2015/sd-angular-core-autocomplete.js.map +1 -1
- package/fesm2015/sd-angular-core-chip.js +1 -1
- package/fesm2015/sd-angular-core-comment.js +6 -4
- package/fesm2015/sd-angular-core-comment.js.map +1 -1
- package/fesm2015/sd-angular-core-editor.js +72 -15
- package/fesm2015/sd-angular-core-editor.js.map +1 -1
- package/fesm2015/sd-angular-core-form.js +3 -0
- package/fesm2015/sd-angular-core-form.js.map +1 -1
- package/fesm2015/sd-angular-core-modal-custom.js +161 -0
- package/fesm2015/sd-angular-core-modal-custom.js.map +1 -0
- package/fesm2015/sd-angular-core-modal-resizable.js +161 -0
- package/fesm2015/sd-angular-core-modal-resizable.js.map +1 -0
- package/fesm2015/sd-angular-core-setting.js +1 -1
- package/fesm2015/sd-angular-core-setting.js.map +1 -1
- package/fesm2015/sd-angular-core.js +1 -0
- package/fesm2015/sd-angular-core.js.map +1 -1
- package/form/sd-angular-core-form.metadata.json +1 -1
- package/modal-custom/index.d.ts +1 -0
- package/modal-custom/package.json +12 -0
- package/modal-custom/sd-angular-core-modal-custom.d.ts +4 -0
- package/modal-custom/sd-angular-core-modal-custom.metadata.json +1 -0
- package/modal-custom/src/lib/modal-custom/modal-custom.component.d.ts +31 -0
- package/modal-custom/src/lib/modal-custom.module.d.ts +2 -0
- package/modal-custom/src/public-api.d.ts +2 -0
- package/modal-resizable/index.d.ts +1 -0
- package/modal-resizable/package.json +12 -0
- package/modal-resizable/sd-angular-core-modal-resizable.d.ts +4 -0
- package/modal-resizable/sd-angular-core-modal-resizable.metadata.json +1 -0
- package/modal-resizable/src/lib/modal-resizable/modal-resizable.component.d.ts +31 -0
- package/modal-resizable/src/lib/modal-resizable.module.d.ts +2 -0
- package/modal-resizable/src/public-api.d.ts +2 -0
- package/package.json +3 -2
- package/public-api.d.ts +1 -0
- package/{sd-angular-core-0.0.1041.tgz → sd-angular-core-0.0.1045.tgz} +0 -0
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import { OnInit, EventEmitter, ChangeDetectorRef } from '@angular/core';
|
|
1
|
+
import { OnInit, EventEmitter, ChangeDetectorRef, AfterViewInit, OnDestroy } from '@angular/core';
|
|
2
2
|
import { QuillEditorComponent } from 'ngx-quill';
|
|
3
3
|
import { FormControl, FormGroup, NgForm } from '@angular/forms';
|
|
4
|
-
|
|
4
|
+
import { SdApiService } from '@sd-angular/core/api';
|
|
5
|
+
import 'quill-mention';
|
|
6
|
+
export declare class SdEditor implements OnInit, AfterViewInit, OnDestroy {
|
|
5
7
|
#private;
|
|
6
8
|
private ref;
|
|
9
|
+
private sdApiService;
|
|
7
10
|
id: string;
|
|
8
11
|
editor: QuillEditorComponent;
|
|
9
12
|
label: string;
|
|
@@ -22,10 +25,16 @@ export declare class SdEditor implements OnInit {
|
|
|
22
25
|
domain: string;
|
|
23
26
|
urlUploadImage: string;
|
|
24
27
|
set form(val: NgForm | FormGroup);
|
|
28
|
+
toolbar: any;
|
|
25
29
|
enableHTMLButton: boolean;
|
|
26
30
|
showHtmlEditor: boolean;
|
|
27
31
|
modelHTML: string;
|
|
28
32
|
quillEvent: any;
|
|
33
|
+
mentionValues: {
|
|
34
|
+
id: string;
|
|
35
|
+
value: string;
|
|
36
|
+
link?: string;
|
|
37
|
+
}[];
|
|
29
38
|
quillConfig: {
|
|
30
39
|
toolbar: {
|
|
31
40
|
container: (string[] | {
|
|
@@ -54,6 +63,11 @@ export declare class SdEditor implements OnInit {
|
|
|
54
63
|
align: any[];
|
|
55
64
|
}[])[];
|
|
56
65
|
};
|
|
66
|
+
mention: {
|
|
67
|
+
allowedChars: RegExp;
|
|
68
|
+
mentionDenotationChars: string[];
|
|
69
|
+
source: (searchTerm: any, renderList: any, mentionChar: any) => void;
|
|
70
|
+
};
|
|
57
71
|
keyboard: {
|
|
58
72
|
bindings: {
|
|
59
73
|
enter: {
|
|
@@ -65,7 +79,7 @@ export declare class SdEditor implements OnInit {
|
|
|
65
79
|
};
|
|
66
80
|
textLength: number;
|
|
67
81
|
sdChange: EventEmitter<string>;
|
|
68
|
-
constructor(ref: ChangeDetectorRef);
|
|
82
|
+
constructor(ref: ChangeDetectorRef, sdApiService: SdApiService);
|
|
69
83
|
ngOnInit(): void;
|
|
70
84
|
ngAfterViewInit(): void;
|
|
71
85
|
ngOnDestroy(): void;
|
|
@@ -3,7 +3,7 @@ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
|
3
3
|
import { Component, Input, ViewChild, Output, EventEmitter, ChangeDetectorRef, ContentChild, ChangeDetectionStrategy } from '@angular/core';
|
|
4
4
|
import { startWith, switchMap, debounceTime, map, finalize } from 'rxjs/operators';
|
|
5
5
|
import * as uuid from 'uuid';
|
|
6
|
-
import {
|
|
6
|
+
import { NgForm, Validators } from '@angular/forms';
|
|
7
7
|
import { BehaviorSubject, combineLatest, defer, from, of, Subscription } from 'rxjs';
|
|
8
8
|
import { SdAutocompleteDisplayDefDirective } from './autocomplete-display-def.directive';
|
|
9
9
|
import { MatAutocompleteTrigger } from '@angular/material/autocomplete';
|
|
@@ -26,7 +26,7 @@ export class SdAutocomplete {
|
|
|
26
26
|
_delay.set(this, 0); // Sau khoảng thời gian delay nếu không có thay đổi thì thì mới bắt đầu thực hiện gọi hàm
|
|
27
27
|
_name.set(this, uuid.v4());
|
|
28
28
|
this.loading = false;
|
|
29
|
-
this.inputControl = new
|
|
29
|
+
this.inputControl = new SdFormControl();
|
|
30
30
|
this.formControl = new SdFormControl();
|
|
31
31
|
this.matcher = new SdAutocompleteErrotStateMatcher(this.formControl);
|
|
32
32
|
_form.set(this, void 0);
|
|
@@ -175,6 +175,9 @@ export class SdAutocomplete {
|
|
|
175
175
|
__classPrivateFieldGet(this, _subscription).add(this.formControl.touchedChanges.subscribe(() => {
|
|
176
176
|
this.ref.markForCheck();
|
|
177
177
|
}));
|
|
178
|
+
__classPrivateFieldGet(this, _subscription).add(this.inputControl.touchedChanges.subscribe(() => {
|
|
179
|
+
this.ref.markForCheck();
|
|
180
|
+
}));
|
|
178
181
|
this.filteredItems = combineLatest([
|
|
179
182
|
__classPrivateFieldGet(this, _itemsChanges).asObservable(),
|
|
180
183
|
this.inputControl.valueChanges.pipe(debounceTime(__classPrivateFieldGet(this, _delay)))
|
|
@@ -284,4 +287,4 @@ SdAutocomplete.propDecorators = {
|
|
|
284
287
|
input: [{ type: ViewChild, args: ['input',] }],
|
|
285
288
|
sdView: [{ type: ContentChild, args: [SdViewDefDirective,] }]
|
|
286
289
|
};
|
|
287
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTUvRGVza3RvcC9Xb3JraW5nLzFNRy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2F1dG9jb21wbGV0ZS8iLCJzb3VyY2VzIjpbInNyYy9saWIvYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUlaLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osdUJBQXVCLEVBRXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkYsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFpQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqRyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFNUUsTUFBTSwrQkFBK0I7SUFDbkMsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFBSSxDQUFDO0lBQ2pELFlBQVksQ0FBQyxPQUEyQixFQUFFLElBQXdDOztRQUNoRixNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFD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LEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLHNEQUFDLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRyxJQUFJLENBQUMsWUFBWSxvQ0FBSyxJQUFJLG1DQUFJLElBQUksQ0FBQyxXQUFXLG1DQUFJLElBQUksQ0FBQyxLQUFLLG1DQUFJLEVBQUUsR0FBQSxDQUFDLENBQUMsQ0FBQztJQUN2SSxDQUFDO0lBRUQsZUFBZTs7UUFDYixtRkFBWSxVQUFVLHNDQUFhLElBQUksQ0FBQyxXQUFXLEVBQUU7SUFDdkQsQ0FBQztJQUVELFdBQVc7O1FBQ1QsNENBQW1CLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLG1GQUFZLGFBQWEsc0NBQWE7SUFDeEMsQ0FBQzs7OztZQXhMRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IseXBGQUE0QztnQkFFNUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7WUE1QkMsaUJBQWlCOzs7a0NBOEJoQixTQUFTLFNBQUMsc0JBQXNCLEVBQUUsRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUU7bUJBTWxFLEtBQUs7bUJBU0wsS0FBSzttQkFFTCxLQUFLO29CQVNMLEtBQUs7eUJBQ0wsS0FBSzsyQkFDTCxLQUFLOzBCQUNMLEtBQUs7b0JBR0wsS0FBSztvQkFZTCxLQUFLO29CQUtMLEtBQUs7cUNBS0wsWUFBWSxTQUFDLGlDQUFpQzt5QkFDOUMsS0FBSztxQkFDTCxNQUFNOzBCQUNOLE1BQU07dUJBQ04sTUFBTTt1QkFHTixLQUFLO3VCQVdMLEtBQUs7bUNBU0wsS0FBSyxTQUFDLHFCQUFxQjtvQkFLM0IsU0FBUyxTQUFDLE9BQU87cUJBQ2pCLFlBQVksU0FBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPbkluaXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEVsZW1lbnRSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIGRlYm91bmNlVGltZSwgbWFwLCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBOZ0Zvcm0sIFZhbGlkYXRvcnMsIEZvcm1Hcm91cERpcmVjdGl2ZSwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRlZmVyLCBmcm9tLCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEVycm9yU3RhdGVNYXRjaGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IFNkQXV0b2NvbXBsZXRlRGlzcGxheURlZkRpcmVjdGl2ZSB9IGZyb20gJy4vYXV0b2NvbXBsZXRlLWRpc3BsYXktZGVmLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBTZEZvcm1Db250cm9sLCBTZFZpZXdEZWZEaXJlY3RpdmUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2NvbW1vbic7XHJcblxyXG5jbGFzcyBTZEF1dG9jb21wbGV0ZUVycm90U3RhdGVNYXRjaGVyIGltcGxlbWVudHMgRXJyb3JTdGF0ZU1hdGNoZXIge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sKSB7IH1cclxuICBpc0Vycm9yU3RhdGUoY29udHJvbDogRm9ybUNvbnRyb2wgfCBudWxsLCBmb3JtOiBGb3JtR3JvdXBEaXJlY3RpdmUgfCBOZ0Zvcm0gfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBpc1N1Ym1pdHRlZCA9IGZvcm0gJiYgZm9ybS5zdWJtaXR0ZWQ7XHJcbiAgICByZXR1cm4gISEodGhpcy5mb3JtQ29udHJvbD8uaW52YWxpZCAmJiAodGhpcy5mb3JtQ29udHJvbD8uZGlydHkgfHwgdGhpcy5mb3JtQ29udHJvbD8udG91Y2hlZCB8fCBpc1N1Ym1pdHRlZCkpO1xyXG4gIH1cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzZC1hdXRvY29tcGxldGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZEF1dG9jb21wbGV0ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsIHsgcmVhZDogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9KSBhdXRvY29tcGxldGVUcmlnZ2VyOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xyXG4gIGlkID0gYEkke3V1aWQudjQoKX1gO1xyXG4gICNtb2RlbDogc3RyaW5nIHwgbnVtYmVyO1xyXG5cclxuICAjZGVsYXkgPSAwOyAvLyBTYXUga2hv4bqjbmcgdGjhu51pIGdpYW4gZGVsYXkgbuG6v3Uga2jDtG5nIGPDsyB0aGF5IMSR4buVaSB0aMOsIHRow6wgbeG7m2kgYuG6r3QgxJHhuqd1IHRo4buxYyBoaeG7h24gZ+G7jWkgaMOgbVxyXG4gICNuYW1lID0gdXVpZC52NCgpO1xyXG4gIEBJbnB1dCgpIHNldCBuYW1lKHZhbDogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuI25hbWUgPSB2YWw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICBpbnB1dENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICBmb3JtQ29udHJvbCA9IG5ldyBTZEZvcm1Db250cm9sKCk7XHJcbiAgbWF0Y2hlciA9IG5ldyBTZEF1dG9jb21wbGV0ZUVycm90U3RhdGVNYXRjaGVyKHRoaXMuZm9ybUNvbnRyb2wpO1xyXG4gIEBJbnB1dCgpIHNpemU6ICdzbScgfCAnbGcnO1xyXG4gICNmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgc2V0IGZvcm0odmFsOiBOZ0Zvcm0gfCBGb3JtR3JvdXApIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIE5nRm9ybSkge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWwuZm9ybTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdmFsdWVGaWVsZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXlGaWVsZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcblxyXG4gICNpdGVtc0NoYW5nZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdIHwgU2VhcmNoRnVuYz4oW10pO1xyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyhpdGVtczogdW5kZWZpbmVkIHwgYW55W10gfCBTZWFyY2hGdW5jKSB7XHJcbiAgICBpZiAoIWl0ZW1zKSB7XHJcbiAgICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy5uZXh0KFtdKTtcclxuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShpdGVtcykpIHtcclxuICAgICAgdGhpcy4jaXRlbXNDaGFuZ2VzLm5leHQoaXRlbXMuZmlsdGVyKGUgPT4gZSAhPT0gbnVsbCAmJiBlICE9PSB1bmRlZmluZWQpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy5uZXh0KGl0ZW1zKTtcclxuICAgICAgdGhpcy4jZGVsYXkgPSA1MDA7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGxpbWl0ID0gMTAwO1xyXG5cclxuICBmaWx0ZXJlZEl0ZW1zOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICBjb250cm9sUGxhY2VIb2xkZXI6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVtYmVyPjtcclxuICBjb250cm9sUGxhY2VIb2xkZXIyOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bWJlcj47XHJcbiAgQElucHV0KCkgc2V0IG1vZGVsKHZhbHVlOiB1bmRlZmluZWQgfCBudW1iZXIgfCBzdHJpbmcpIHtcclxuICAgIHRoaXMuI21vZGVsID0gdmFsdWU7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoU2RBdXRvY29tcGxldGVEaXNwbGF5RGVmRGlyZWN0aXZlKSBhdXRvY29tcGxldGVEaXNwbGF5RGVmOiBTZEF1dG9jb21wbGV0ZURpc3BsYXlEZWZEaXJlY3RpdmU7XHJcbiAgQElucHV0KCkgYWN0aW9uSWNvbjogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSBhY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLy8gT3B0aW9uYWxcclxuICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHZhbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRDb250cm9sLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlucHV0Q29udHJvbC5lbmFibGUoKTtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGlzUmVxdWlyZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZXQgcmVxdWlyZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuaXNSZXF1aXJlZCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICBpZiAodGhpcy5pc1JlcXVpcmVkKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIH1cclxuICB9XHJcbiAgZGlzYWJsZUVycm9yTWVzc2FnZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgnZGlzYWJsZUVycm9yTWVzc2FnZScpIHNldCBfZGlzYWJsZUVycm9yTWVzc2FnZSh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5kaXNhYmxlRXJyb3JNZXNzYWdlID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIHZhbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgfVxyXG4gICNzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dDogRWxlbWVudFJlZjtcclxuICBAQ29udGVudENoaWxkKFNkVmlld0RlZkRpcmVjdGl2ZSkgc2RWaWV3OiBTZFZpZXdEZWZEaXJlY3RpdmU7XHJcbiAgaXNGb2N1c2VkID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWQ6IE9ic2VydmFibGU8YW55PjtcclxuXHJcbiAgI2NhY2hlOiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnlbXVxyXG4gIH0gPSB7fTtcclxuICAjaXRlbToge1xyXG4gICAgW2tleTogc3RyaW5nXTogYW55XHJcbiAgfSA9IHt9O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQodGhpcy5mb3JtQ29udHJvbC50b3VjaGVkQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pKTtcclxuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLiNpdGVtc0NoYW5nZXMuYXNPYnNlcnZhYmxlKCksXHJcbiAgICAgIHRoaXMuaW5wdXRDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSh0aGlzLiNkZWxheSkpXSkucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAoKFtpdGVtcywgc2VhcmNoVGV4dF0pID0+IHtcclxuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0IHx8ICcnO1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiAoaXRlbXMpID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLiNjYWNoZVtzZWFyY2hUZXh0XSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxldCBvYnM6IE9ic2VydmFibGU8YW55W10+O1xyXG4gICAgICAgICAgICBjb25zdCBmdW5jID0gaXRlbXMoc2VhcmNoVGV4dCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIGlmIChmdW5jIGluc3RhbmNlb2YgUHJvbWlzZSkge1xyXG4gICAgICAgICAgICAgIG9icyA9IGRlZmVyKCgpID0+IGZyb20oZnVuYykpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIG9icyA9IGZ1bmNcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICByZXR1cm4gb2JzLnBpcGUobWFwKGRhdGEgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdID0gZGF0YSB8fCBbXTtcclxuICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuI2l0ZW0sIEFycmF5LnRvT2JqZWN0KHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdLCB0aGlzLnZhbHVlRmllbGQpKTtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy4jY2FjaGVbc2VhcmNoVGV4dF07XHJcbiAgICAgICAgICAgIH0pLCBmaW5hbGl6ZSgoKSA9PiB0aGlzLmxvYWRpbmcgPSBmYWxzZSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIGl0ZW1zXHJcbiAgICAgICAgICAgIC5zZWFyY2goc2VhcmNoVGV4dCwgW3RoaXMudmFsdWVGaWVsZCwgdGhpcy5kaXNwbGF5RmllbGRdKVxyXG4gICAgICAgICAgICAucGFnaW5nKHRoaXMubGltaXQpXHJcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLiNpdGVtc0NoYW5nZXMuYXNPYnNlcnZhYmxlKCksXHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpKV0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcCgoW2l0ZW1zLCB2YWxdKSA9PiB7XHJcbiAgICAgICAgICBpZiAoIXRoaXMudmFsdWVGaWVsZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gb2YodmFsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh2YWwgfHwgdmFsID09PSAwKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgKGl0ZW1zKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLiNpdGVtW3ZhbF0pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvZih0aGlzLiNpdGVtW3ZhbF0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBsZXQgb2JzOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICAgICAgICAgICAgICBjb25zdCBmdW5jID0gaXRlbXModmFsLCB0cnVlKTtcclxuICAgICAgICAgICAgICBpZiAoZnVuYyBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgICAgICAgIG9icyA9IGRlZmVyKCgpID0+IGZyb20oZnVuYykpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBvYnMgPSBmdW5jXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHJldHVybiBvYnMucGlwZShtYXAoZGF0YSA9PiB7XHJcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuI2l0ZW0sIEFycmF5LnRvT2JqZWN0KGRhdGEsIHRoaXMudmFsdWVGaWVsZCkpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI2l0ZW1bdmFsXSB8fCB7XHJcbiAgICAgICAgICAgICAgICAgIFt0aGlzLnZhbHVlRmllbGRdOiB2YWwsXHJcbiAgICAgICAgICAgICAgICAgIFt0aGlzLmRpc3BsYXlGaWVsZF06IHZhbFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG9mKGl0ZW1zLmZpbmQoZSA9PiBlW3RoaXMudmFsdWVGaWVsZF0gPT09IHZhbCkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIG9mKCcnKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5jb250cm9sUGxhY2VIb2xkZXIgPSB0aGlzLnNlbGVjdGVkLnBpcGUobWFwKGl0ZW0gPT4gaXRlbT8uW3RoaXMuZGlzcGxheUZpZWxkXSA/PyBpdGVtID8/IHRoaXMucGxhY2Vob2xkZXIgPz8gdGhpcy5sYWJlbCA/PyAnJykpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy4jZm9ybT8uYWRkQ29udHJvbCh0aGlzLiNuYW1lLCB0aGlzLmZvcm1Db250cm9sKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLiNmb3JtPy5yZW1vdmVDb250cm9sKHRoaXMuI25hbWUpO1xyXG4gIH1cclxuICBvblNlbGVjdCA9IChpdGVtOiBhbnkpID0+IHtcclxuICAgIGlmIChpdGVtKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgKGl0ZW0pID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgKGl0ZW0pID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sLnZhbHVlICE9PSBpdGVtKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGl0ZW0pO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KGl0ZW0pO1xyXG4gICAgICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmICh0aGlzLnZhbHVlRmllbGQgJiYgdGhpcy5kaXNwbGF5RmllbGQpIHtcclxuICAgICAgICBjb25zdCB2YWwgPSBpdGVtPy5bdGhpcy52YWx1ZUZpZWxkXSB8fCBudWxsO1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sLnZhbHVlICE9PSB2YWwpIHtcclxuICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsKTtcclxuICAgICAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh2YWwpO1xyXG4gICAgICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlucHV0Q29udHJvbC5zZXRWYWx1ZSgnJywge1xyXG4gICAgICAgIGVtaXRFdmVudDogZmFsc2VcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5pbnB1dENvbnRyb2wuc2V0VmFsdWUoJycpO1xyXG4gICAgLy8gdGhpcy5pbnB1dENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaW5wdXRDb250cm9sLnNldFZhbHVlKCcnLCB7XHJcbiAgICAgIGVtaXRFdmVudDogZmFsc2VcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25DbGljayA9ICgpID0+IHtcclxuICAgIGlmICh0aGlzLnNkVmlldz8udGVtcGxhdGVSZWYpIHtcclxuICAgICAgaWYgKCF0aGlzLmZvcm1Db250cm9sLmRpc2FibGVkICYmICF0aGlzLmlzRm9jdXNlZCkge1xyXG4gICAgICAgIHRoaXMuZm9jdXMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYmx1ciA9ICgpID0+IHtcclxuICAgIHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LmJsdXIoKTtcclxuICB9XHJcblxyXG4gIGZvY3VzID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlcj8ub3BlblBhbmVsKCk7XHJcbiAgICAgIHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIgPSAoJGV2ZW50PzogYW55KSA9PiB7XHJcbiAgICAkZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5pbnB1dENvbnRyb2w/LnNldFZhbHVlKCcnKTtcclxuICAgIGlmICh0aGlzLiNtb2RlbCkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICAgIHRoaXMuc2RDaGFuZ2UuZW1pdChudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQWN0aW9uID0gKCRldmVudDogRXZlbnQpID0+IHtcclxuICAgICRldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXI/LmNsb3NlUGFuZWwoKTtcclxuICAgIHRoaXMuYWN0aW9uLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHJlVmFsaWRhdGUgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlucHV0Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gIH1cclxufVxyXG5cclxudHlwZSBTZWFyY2hGdW5jID0gKHNlYXJjaFRleHQ/OiBzdHJpbmcgfCBudW1iZXIsIGlzRm9ybVZhbHVlPzogYm9vbGVhbikgPT4gUHJvbWlzZTxhbnlbXT4gfCBPYnNlcnZhYmxlPGFueVtdPjsiXX0=
|
|
290
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTUvRGVza3RvcC9Xb3JraW5nLzFNRy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2F1dG9jb21wbGV0ZS8iLCJzb3VyY2VzIjpbInNyYy9saWIvYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUlaLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osdUJBQXVCLEVBRXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkYsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFlLE1BQU0sRUFBRSxVQUFVLEVBQWlDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBYyxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWpHLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RSxNQUFNLCtCQUErQjtJQUNuQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFJLENBQUM7SUFDakQsWUFBWSxDQUFDLE9BQTJCLEVBQUUsSUFBd0M7O1FBQ2hGLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFD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QVksU0FBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPbkluaXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEVsZW1lbnRSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIGRlYm91bmNlVGltZSwgbWFwLCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBOZ0Zvcm0sIFZhbGlkYXRvcnMsIEZvcm1Hcm91cERpcmVjdGl2ZSwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRlZmVyLCBmcm9tLCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEVycm9yU3RhdGVNYXRjaGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IFNkQXV0b2NvbXBsZXRlRGlzcGxheURlZkRpcmVjdGl2ZSB9IGZyb20gJy4vYXV0b2NvbXBsZXRlLWRpc3BsYXktZGVmLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBTZEZvcm1Db250cm9sLCBTZFZpZXdEZWZEaXJlY3RpdmUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2NvbW1vbic7XHJcblxyXG5jbGFzcyBTZEF1dG9jb21wbGV0ZUVycm90U3RhdGVNYXRjaGVyIGltcGxlbWVudHMgRXJyb3JTdGF0ZU1hdGNoZXIge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sKSB7IH1cclxuICBpc0Vycm9yU3RhdGUoY29udHJvbDogRm9ybUNvbnRyb2wgfCBudWxsLCBmb3JtOiBGb3JtR3JvdXBEaXJlY3RpdmUgfCBOZ0Zvcm0gfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBpc1N1Ym1pdHRlZCA9IGZvcm0gJiYgZm9ybS5zdWJtaXR0ZWQ7XHJcbiAgICByZXR1cm4gISEodGhpcy5mb3JtQ29udHJvbD8uaW52YWxpZCAmJiAodGhpcy5mb3JtQ29udHJvbD8uZGlydHkgfHwgdGhpcy5mb3JtQ29udHJvbD8udG91Y2hlZCB8fCBpc1N1Ym1pdHRlZCkpO1xyXG4gIH1cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzZC1hdXRvY29tcGxldGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZEF1dG9jb21wbGV0ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsIHsgcmVhZDogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9KSBhdXRvY29tcGxldGVUcmlnZ2VyOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xyXG4gIGlkID0gYEkke3V1aWQudjQoKX1gO1xyXG4gICNtb2RlbDogc3RyaW5nIHwgbnVtYmVyO1xyXG5cclxuICAjZGVsYXkgPSAwOyAvLyBTYXUga2hv4bqjbmcgdGjhu51pIGdpYW4gZGVsYXkgbuG6v3Uga2jDtG5nIGPDsyB0aGF5IMSR4buVaSB0aMOsIHRow6wgbeG7m2kgYuG6r3QgxJHhuqd1IHRo4buxYyBoaeG7h24gZ+G7jWkgaMOgbVxyXG4gICNuYW1lID0gdXVpZC52NCgpO1xyXG4gIEBJbnB1dCgpIHNldCBuYW1lKHZhbDogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuI25hbWUgPSB2YWw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICBpbnB1dENvbnRyb2wgPSBuZXcgU2RGb3JtQ29udHJvbCgpO1xyXG4gIGZvcm1Db250cm9sID0gbmV3IFNkRm9ybUNvbnRyb2woKTtcclxuICBtYXRjaGVyID0gbmV3IFNkQXV0b2NvbXBsZXRlRXJyb3RTdGF0ZU1hdGNoZXIodGhpcy5mb3JtQ29udHJvbCk7XHJcbiAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICdsZyc7XHJcbiAgI2Zvcm06IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBzZXQgZm9ybSh2YWw6IE5nRm9ybSB8IEZvcm1Hcm91cCkge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICBpZiAodmFsIGluc3RhbmNlb2YgTmdGb3JtKSB7XHJcbiAgICAgICAgdGhpcy4jZm9ybSA9IHZhbC5mb3JtO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSB2YWx1ZUZpZWxkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGlzcGxheUZpZWxkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuXHJcbiAgI2l0ZW1zQ2hhbmdlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55W10gfCBTZWFyY2hGdW5jPihbXSk7XHJcbiAgQElucHV0KCkgc2V0IGl0ZW1zKGl0ZW1zOiB1bmRlZmluZWQgfCBhbnlbXSB8IFNlYXJjaEZ1bmMpIHtcclxuICAgIGlmICghaXRlbXMpIHtcclxuICAgICAgdGhpcy4jaXRlbXNDaGFuZ2VzLm5leHQoW10pO1xyXG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGl0ZW1zKSkge1xyXG4gICAgICB0aGlzLiNpdGVtc0NoYW5nZXMubmV4dChpdGVtcy5maWx0ZXIoZSA9PiBlICE9PSBudWxsICYmIGUgIT09IHVuZGVmaW5lZCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy4jaXRlbXNDaGFuZ2VzLm5leHQoaXRlbXMpO1xyXG4gICAgICB0aGlzLiNkZWxheSA9IDUwMDtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgbGltaXQgPSAxMDA7XHJcblxyXG4gIGZpbHRlcmVkSXRlbXM6IE9ic2VydmFibGU8YW55W10+O1xyXG4gIGNvbnRyb2xQbGFjZUhvbGRlcjogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudW1iZXI+O1xyXG4gIGNvbnRyb2xQbGFjZUhvbGRlcjI6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVtYmVyPjtcclxuICBASW5wdXQoKSBzZXQgbW9kZWwodmFsdWU6IHVuZGVmaW5lZCB8IG51bWJlciB8IHN0cmluZykge1xyXG4gICAgdGhpcy4jbW9kZWwgPSB2YWx1ZTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgQENvbnRlbnRDaGlsZChTZEF1dG9jb21wbGV0ZURpc3BsYXlEZWZEaXJlY3RpdmUpIGF1dG9jb21wbGV0ZURpc3BsYXlEZWY6IFNkQXV0b2NvbXBsZXRlRGlzcGxheURlZkRpcmVjdGl2ZTtcclxuICBASW5wdXQoKSBhY3Rpb25JY29uOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIGFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvLyBPcHRpb25hbFxyXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy5pbnB1dENvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmRpc2FibGUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaW5wdXRDb250cm9sLmVuYWJsZSgpO1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmRpc2FibGUoKTtcclxuICAgIH1cclxuICB9XHJcbiAgaXNSZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNldCByZXF1aXJlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5pc1JlcXVpcmVkID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIGlmICh0aGlzLmlzUmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBkaXNhYmxlRXJyb3JNZXNzYWdlID0gZmFsc2U7XHJcbiAgQElucHV0KCdkaXNhYmxlRXJyb3JNZXNzYWdlJykgc2V0IF9kaXNhYmxlRXJyb3JNZXNzYWdlKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLmRpc2FibGVFcnJvck1lc3NhZ2UgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICB9XHJcbiAgI3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmO1xyXG4gIEBDb250ZW50Q2hpbGQoU2RWaWV3RGVmRGlyZWN0aXZlKSBzZFZpZXc6IFNkVmlld0RlZkRpcmVjdGl2ZTtcclxuICBpc0ZvY3VzZWQgPSBmYWxzZTtcclxuICBzZWxlY3RlZDogT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuICAjY2FjaGU6IHtcclxuICAgIFtrZXk6IHN0cmluZ106IGFueVtdXHJcbiAgfSA9IHt9O1xyXG4gICNpdGVtOiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnlcclxuICB9ID0ge307XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLmFkZCh0aGlzLmZvcm1Db250cm9sLnRvdWNoZWRDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfSkpO1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLmFkZCh0aGlzLmlucHV0Q29udHJvbC50b3VjaGVkQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pKTtcclxuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLiNpdGVtc0NoYW5nZXMuYXNPYnNlcnZhYmxlKCksXHJcbiAgICAgIHRoaXMuaW5wdXRDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSh0aGlzLiNkZWxheSkpXSkucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAoKFtpdGVtcywgc2VhcmNoVGV4dF0pID0+IHtcclxuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0IHx8ICcnO1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiAoaXRlbXMpID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLiNjYWNoZVtzZWFyY2hUZXh0XSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxldCBvYnM6IE9ic2VydmFibGU8YW55W10+O1xyXG4gICAgICAgICAgICBjb25zdCBmdW5jID0gaXRlbXMoc2VhcmNoVGV4dCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIGlmIChmdW5jIGluc3RhbmNlb2YgUHJvbWlzZSkge1xyXG4gICAgICAgICAgICAgIG9icyA9IGRlZmVyKCgpID0+IGZyb20oZnVuYykpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIG9icyA9IGZ1bmNcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICByZXR1cm4gb2JzLnBpcGUobWFwKGRhdGEgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdID0gZGF0YSB8fCBbXTtcclxuICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuI2l0ZW0sIEFycmF5LnRvT2JqZWN0KHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdLCB0aGlzLnZhbHVlRmllbGQpKTtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy4jY2FjaGVbc2VhcmNoVGV4dF07XHJcbiAgICAgICAgICAgIH0pLCBmaW5hbGl6ZSgoKSA9PiB0aGlzLmxvYWRpbmcgPSBmYWxzZSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIGl0ZW1zXHJcbiAgICAgICAgICAgIC5zZWFyY2goc2VhcmNoVGV4dCwgW3RoaXMudmFsdWVGaWVsZCwgdGhpcy5kaXNwbGF5RmllbGRdKVxyXG4gICAgICAgICAgICAucGFnaW5nKHRoaXMubGltaXQpXHJcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLiNpdGVtc0NoYW5nZXMuYXNPYnNlcnZhYmxlKCksXHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpKV0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcCgoW2l0ZW1zLCB2YWxdKSA9PiB7XHJcbiAgICAgICAgICBpZiAoIXRoaXMudmFsdWVGaWVsZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gb2YodmFsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh2YWwgfHwgdmFsID09PSAwKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgKGl0ZW1zKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLiNpdGVtW3ZhbF0pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvZih0aGlzLiNpdGVtW3ZhbF0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBsZXQgb2JzOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICAgICAgICAgICAgICBjb25zdCBmdW5jID0gaXRlbXModmFsLCB0cnVlKTtcclxuICAgICAgICAgICAgICBpZiAoZnVuYyBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgICAgICAgIG9icyA9IGRlZmVyKCgpID0+IGZyb20oZnVuYykpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBvYnMgPSBmdW5jXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHJldHVybiBvYnMucGlwZShtYXAoZGF0YSA9PiB7XHJcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuI2l0ZW0sIEFycmF5LnRvT2JqZWN0KGRhdGEsIHRoaXMudmFsdWVGaWVsZCkpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI2l0ZW1bdmFsXSB8fCB7XHJcbiAgICAgICAgICAgICAgICAgIFt0aGlzLnZhbHVlRmllbGRdOiB2YWwsXHJcbiAgICAgICAgICAgICAgICAgIFt0aGlzLmRpc3BsYXlGaWVsZF06IHZhbFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG9mKGl0ZW1zLmZpbmQoZSA9PiBlW3RoaXMudmFsdWVGaWVsZF0gPT09IHZhbCkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIG9mKCcnKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5jb250cm9sUGxhY2VIb2xkZXIgPSB0aGlzLnNlbGVjdGVkLnBpcGUobWFwKGl0ZW0gPT4gaXRlbT8uW3RoaXMuZGlzcGxheUZpZWxkXSA/PyBpdGVtID8/IHRoaXMucGxhY2Vob2xkZXIgPz8gdGhpcy5sYWJlbCA/PyAnJykpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy4jZm9ybT8uYWRkQ29udHJvbCh0aGlzLiNuYW1lLCB0aGlzLmZvcm1Db250cm9sKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLiNmb3JtPy5yZW1vdmVDb250cm9sKHRoaXMuI25hbWUpO1xyXG4gIH1cclxuICBvblNlbGVjdCA9IChpdGVtOiBhbnkpID0+IHtcclxuICAgIGlmIChpdGVtKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgKGl0ZW0pID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgKGl0ZW0pID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sLnZhbHVlICE9PSBpdGVtKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGl0ZW0pO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KGl0ZW0pO1xyXG4gICAgICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmICh0aGlzLnZhbHVlRmllbGQgJiYgdGhpcy5kaXNwbGF5RmllbGQpIHtcclxuICAgICAgICBjb25zdCB2YWwgPSBpdGVtPy5bdGhpcy52YWx1ZUZpZWxkXSB8fCBudWxsO1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sLnZhbHVlICE9PSB2YWwpIHtcclxuICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsKTtcclxuICAgICAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh2YWwpO1xyXG4gICAgICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlucHV0Q29udHJvbC5zZXRWYWx1ZSgnJywge1xyXG4gICAgICAgIGVtaXRFdmVudDogZmFsc2VcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5pbnB1dENvbnRyb2wuc2V0VmFsdWUoJycpO1xyXG4gICAgLy8gdGhpcy5pbnB1dENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaW5wdXRDb250cm9sLnNldFZhbHVlKCcnLCB7XHJcbiAgICAgIGVtaXRFdmVudDogZmFsc2VcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25DbGljayA9ICgpID0+IHtcclxuICAgIGlmICh0aGlzLnNkVmlldz8udGVtcGxhdGVSZWYpIHtcclxuICAgICAgaWYgKCF0aGlzLmZvcm1Db250cm9sLmRpc2FibGVkICYmICF0aGlzLmlzRm9jdXNlZCkge1xyXG4gICAgICAgIHRoaXMuZm9jdXMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYmx1ciA9ICgpID0+IHtcclxuICAgIHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LmJsdXIoKTtcclxuICB9XHJcblxyXG4gIGZvY3VzID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlcj8ub3BlblBhbmVsKCk7XHJcbiAgICAgIHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIgPSAoJGV2ZW50PzogYW55KSA9PiB7XHJcbiAgICAkZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5pbnB1dENvbnRyb2w/LnNldFZhbHVlKCcnKTtcclxuICAgIGlmICh0aGlzLiNtb2RlbCkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICAgIHRoaXMuc2RDaGFuZ2UuZW1pdChudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQWN0aW9uID0gKCRldmVudDogRXZlbnQpID0+IHtcclxuICAgICRldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXI/LmNsb3NlUGFuZWwoKTtcclxuICAgIHRoaXMuYWN0aW9uLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHJlVmFsaWRhdGUgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlucHV0Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gIH1cclxufVxyXG5cclxudHlwZSBTZWFyY2hGdW5jID0gKHNlYXJjaFRleHQ/OiBzdHJpbmcgfCBudW1iZXIsIGlzRm9ybVZhbHVlPzogYm9vbGVhbikgPT4gUHJvbWlzZTxhbnlbXT4gfCBPYnNlcnZhYmxlPGFueVtdPjsiXX0=
|
|
@@ -274,7 +274,7 @@ SdChip.decorators = [
|
|
|
274
274
|
{ type: Component, args: [{
|
|
275
275
|
selector: 'sd-chip',
|
|
276
276
|
template: "<div class=\"d-flex align-items-center\" [class.sd-view]=\"sdView?.templateRef\" [class.c-focused]=\"isFocused\"\r\n [class.c-disabled]=\"formControl.disabled\" (click)=\"onClick()\">\r\n <ng-container *ngIf=\"sdView?.templateRef && !autocompleteTrigger?.panelOpen && !isFocused; else default\">\r\n <ng-container *ngTemplateOutlet=\"sdView.templateRef;context: { value: formControl.value}\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #default>\r\n <mat-form-field class=\"c-md\" [ngClass]=\"{'c-sm': size === 'sm'}\" appearance=\"outline\">\r\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\r\n <mat-chip-list [formControl]=\"formControl\" #chipList>\r\n <ng-container *ngFor=\"let item of selectedItems\">\r\n <mat-chip *ngIf=\"item\" [selectable]=\"selectable\" [removable]=\"true\" (removed)=\"onRemove(item)\"\r\n [selected]=\"item.isSelected\" (selectionChange)=\"select(item)\" [disabled]=\"inputControl.disabled\"\r\n (click)=\"item.isSelected = !item.isSelected\">\r\n <ng-container *ngIf=\"sdChipDisplay?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"sdChipDisplay.templateRef;context:{item: item}\">\r\n </ng-container>\r\n </ng-container>\r\n <span *ngIf=\"!sdChipDisplay?.templateRef\">{{item[displayField] || item[valueField]}}</span>\r\n <mat-icon *ngIf=\"!inputControl.disabled && item | sdRemovableChip:removable\" matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n </ng-container>\r\n <input #autocompleteTrigger [formControl]=\"inputControl\" [placeholder]=\"placeholder || label\"\r\n [matAutocomplete]=\"auto\" [matChipInputFor]=\"chipList\" [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n (matChipInputTokenEnd)=\"onAdd($event)\" autocomplete=\"off\" [errorStateMatcher]=\"matcher\" (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\" matInput #input>\r\n </mat-chip-list>\r\n <mat-error *ngIf=\"formControl?.errors?.minItem\">\r\n {{formControl?.errors?.minItem}}\r\n </mat-error>\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayFn\" (optionSelected)=\"onSelect($event)\">\r\n <mat-option *ngFor=\"let item of filteredItems | async\" [value]=\"item\">\r\n {{item[displayField]}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </ng-template>\r\n</div>",
|
|
277
|
-
styles: [":host{display:block;padding-top:5px}:host ::ng-deep mat-form-field.c-md .mat-form-field-infix{min-height:43.5px;padding:2px 0}:host ::ng-deep mat-form-field.c-md .mat-standard-chip{min-height:26px;padding:7px 10px}:host ::ng-deep mat-form-field.c-md .mat-standard-chip.mat-chip-with-trailing-icon{padding:7px 7px 7px 10px}"]
|
|
277
|
+
styles: [":host{display:block;padding-top:5px}:host ::ng-deep mat-form-field.c-md .mat-form-field-infix{min-height:43.5px;padding:2px 0}:host ::ng-deep mat-form-field.c-md .mat-standard-chip{min-height:26px;padding:7px 10px}:host ::ng-deep mat-form-field.c-md .mat-standard-chip.mat-chip-with-trailing-icon{padding:7px 7px 7px 10px}.sd-view:not(.c-focused):not(.c-disabled):hover{background-color:#ebecf0}"]
|
|
278
278
|
},] }
|
|
279
279
|
];
|
|
280
280
|
SdChip.ctorParameters = () => [
|
|
@@ -9,11 +9,11 @@ export class SdComment {
|
|
|
9
9
|
_items.set(this, new BehaviorSubject([]));
|
|
10
10
|
_send.set(this, new BehaviorSubject(''));
|
|
11
11
|
this.onSend = () => {
|
|
12
|
-
var _a, _b;
|
|
12
|
+
var _a, _b, _c;
|
|
13
13
|
if (this.message) {
|
|
14
14
|
(_b = (_a = this.commentOption) === null || _a === void 0 ? void 0 : _a.event) === null || _b === void 0 ? void 0 : _b.onSend(this.message);
|
|
15
15
|
this.message = null;
|
|
16
|
-
this.textarea.focus();
|
|
16
|
+
(_c = this.textarea) === null || _c === void 0 ? void 0 : _c.focus();
|
|
17
17
|
}
|
|
18
18
|
};
|
|
19
19
|
_load.set(this, () => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -51,9 +51,9 @@ _items = new WeakMap(), _send = new WeakMap(), _load = new WeakMap();
|
|
|
51
51
|
SdComment.decorators = [
|
|
52
52
|
{ type: Component, args: [{
|
|
53
53
|
selector: 'sd-comment',
|
|
54
|
-
template: "<div class=\"c-container\">\r\n <div class=\"c-header\">\r\n <div class=\"c-title\">{{'Comments' | sdTranslate}} <a href=\"javascript:;\">({{count | async}})</a></div>\r\n </div>\r\n <div class=\"c-body\">\r\n <ng-container *ngFor=\"let item of items | async\">\r\n <div class=\"d-flex my-8\">\r\n <div class=\"c-avatar mr-12\">\r\n <img height=\"32\" width=\"32px\" [src]=\"item.picture\">\r\n </div>\r\n <div class=\"c-comment\">\r\n <div class=\"c-info mb-4\">\r\n {{'By' | sdTranslate}}\r\n <span class=\"c-creator ml-2\">\r\n {{item.creator}}\r\n </span>\r\n <ng-container *ngIf=\"item.createdDate\">\r\n <span class=\"mx-4\">\u2022</span>\r\n <span
|
|
54
|
+
template: "<div class=\"c-container\">\r\n <div class=\"c-header\">\r\n <div class=\"c-title\">{{'Comments' | sdTranslate}} <a href=\"javascript:;\">({{count | async}})</a></div>\r\n </div>\r\n <div class=\"c-body\">\r\n <ng-container *ngFor=\"let item of items | async\">\r\n <div class=\"d-flex my-8\">\r\n <div class=\"c-avatar mr-12\">\r\n <img height=\"32\" width=\"32px\" [src]=\"item.picture\">\r\n </div>\r\n <div class=\"c-comment\">\r\n <div class=\"c-info mb-4\">\r\n {{'By' | sdTranslate}}\r\n <span class=\"c-creator ml-2\">\r\n {{item.creator}}\r\n </span>\r\n <ng-container *ngIf=\"item.createdDate\">\r\n <span class=\"mx-4\">\u2022</span>\r\n <span\r\n [matTooltip]=\"item.createdDate | date:'dd/MM/yyyy HH:mm'\">{{item.createdDate | sdTimeDifferent:'dd/MM/yyyy HH:mm':'hour' | async}}</span>\r\n </ng-container>\r\n </div>\r\n <div class=\"c-content\" [innerHtml]=\"item.content\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"c-footer p-16\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <ng-container *ngIf=\"commentOption?.editor?.enabled else noUseEditor\">\r\n <div class=\"mb-8\">\r\n <sd-editor [(model)]=\"message\" [styles]=\"commentOption?.editor?.styles\"\r\n [toolbar]=\"commentOption?.editor?.toolbar\"\r\n [urlUploadImage]=\"commentOption?.editor?.urlUploadImage\"\r\n [mentionValues]=\"commentOption?.editor?.mentionValues\"></sd-editor>\r\n </div>\r\n </ng-container>\r\n <ng-template #noUseEditor>\r\n <sd-textarea [(model)]=\"message\" rows=\"1\" autoHeight></sd-textarea>\r\n </ng-template>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <sd-button class=\"float-right\" title=\"G\u1EEDi\" (action)=\"onSend()\" [disabled]=\"!message\" color=\"primary\" type=\"fill\"\r\n size=\"sm\">\r\n </sd-button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
55
55
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
56
|
-
styles: [".c-container{display:flex;flex-direction:column;height:100%}.c-container .c-header{align-items:center;background-color:#fff;display:flex;height:40px;padding:0 16px}.c-container .c-header .c-title{font-weight:500}.c-container .c-body{background:#f8f9fa;flex:1;overflow-y:hidden;padding:16px}.c-container .c-body:hover{overflow-y:auto}.c-container .c-body .c-comment{background:#fff;border:1px solid #f2f2f2;border-radius:4px;padding:12px 16px}.c-container .c-body .c-comment .c-info{color:#757575}.c-container .c-body .c-comment .c-info .c-creator{color:#000;font-weight:500}.c-container .c-footer{background:#fff;min-height:120px}"]
|
|
56
|
+
styles: [".c-container{display:flex;flex-direction:column;height:100%}.c-container .c-header{align-items:center;background-color:#fff;display:flex;height:40px;padding:0 16px}.c-container .c-header .c-title{font-weight:500}.c-container .c-body{background:#f8f9fa;flex:1;overflow-y:hidden;padding:16px}.c-container .c-body:hover{overflow-y:auto}.c-container .c-body .c-comment{background:#fff;border:1px solid #f2f2f2;border-radius:4px;flex:1;overflow-wrap:break-word;padding:12px 16px;white-space:pre-wrap;word-break:break-all}.c-container .c-body .c-comment .c-info{color:#757575}.c-container .c-body .c-comment .c-info .c-creator{color:#000;font-weight:500}.c-container .c-footer{background:#fff;min-height:120px}"]
|
|
57
57
|
},] }
|
|
58
58
|
];
|
|
59
59
|
SdComment.ctorParameters = () => [];
|
|
@@ -61,4 +61,4 @@ SdComment.propDecorators = {
|
|
|
61
61
|
textarea: [{ type: ViewChild, args: [SdTextarea,] }],
|
|
62
62
|
option: [{ type: Input }]
|
|
63
63
|
};
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1L0Rlc2t0b3AvV29ya2luZy8xTUcvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9jb21tZW50LyIsInNvdXJjZXMiOlsic3JjL2xpYi9jb21tZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBSVQsS0FBSyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBU2hELE1BQU0sT0FBTyxTQUFTO0lBYXBCO1FBWEEsaUJBQVMsSUFBSSxlQUFlLENBQVksRUFBRSxDQUFDLEVBQUM7UUFDNUMsZ0JBQVEsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLEVBQUM7UUEwQnhDLFdBQU0sR0FBRyxHQUFHLEVBQUU7O1lBQ1osSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixZQUFBLElBQUksQ0FBQyxhQUFhLDBDQUFFLEtBQUssMENBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2dCQUNwQixNQUFBLElBQUksQ0FBQyxRQUFRLDBDQUFFLEtBQUssR0FBRzthQUN4QjtRQUNILENBQUMsQ0FBQTtRQUVELGdCQUFRLEdBQVMsRUFBRTtZQUNqQixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUNyQyxNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUN4QixJQUFJLE9BQU8sWUFBWSxPQUFPLEVBQUU7Z0JBQzlCLE9BQU8sTUFBTSxPQUFPLENBQUM7YUFDdEI7WUFDRCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDLENBQUEsRUFBQTtRQUVELFdBQU0sR0FBRyxHQUFTLEVBQUU7WUFDbEIscUNBQVksSUFBSSxDQUFDLE1BQU0seUNBQUEsSUFBSSxDQUFRLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUEsQ0FBQTtJQWxDRCxDQUFDO0lBVEQsSUFBYSxNQUFNLENBQUMsTUFBdUI7UUFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7UUFDNUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFBQSxDQUFDO0lBT0YsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcscUNBQVksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7O2dCQUFDLE9BQUEsaUNBQ2pCLENBQUMsS0FDSixPQUFPLFFBQUUsQ0FBQyxDQUFDLE9BQU8sbUNBQUksMkVBQTJFLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFDNUcsQ0FBQTthQUFBLENBQUMsQ0FBQTtRQUNMLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDSixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDRCxXQUFXO0lBQ1gsQ0FBQztJQUNELGVBQWU7SUFDZixDQUFDOzs7O1lBakNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIseXRFQUF1QztnQkFFdkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7O3VCQUVFLFNBQVMsU0FBQyxVQUFVO3FCQUlwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBPbkluaXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIElucHV0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTZFRleHRhcmVhIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS90ZXh0YXJlYSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29tbWVudCwgU2RDb21tZW50T3B0aW9uIH0gZnJvbSAnLi9jb21tZW50Lm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtY29tbWVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbW1lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbW1lbnQuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RDb21tZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoU2RUZXh0YXJlYSkgdGV4dGFyZWE6IFNkVGV4dGFyZWE7XHJcbiAgI2l0ZW1zID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb21tZW50W10+KFtdKTtcclxuICAjc2VuZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XHJcbiAgY29tbWVudE9wdGlvbjogU2RDb21tZW50T3B0aW9uO1xyXG4gIEBJbnB1dCgpIHNldCBvcHRpb24ob3B0aW9uOiBTZENvbW1lbnRPcHRpb24pIHtcclxuICAgIHRoaXMuY29tbWVudE9wdGlvbiA9IG9wdGlvbjtcclxuICAgIHRoaXMucmVsb2FkKCk7XHJcbiAgfTtcclxuXHJcbiAgaXRlbXM6IE9ic2VydmFibGU8Q29tbWVudFtdPjtcclxuICBjb3VudDogT2JzZXJ2YWJsZTxudW1iZXI+O1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLml0ZW1zID0gdGhpcy4jaXRlbXMucGlwZShtYXAoaXRlbXMgPT4ge1xyXG4gICAgICByZXR1cm4gaXRlbXMubWFwKGUgPT4gKHtcclxuICAgICAgICAuLi5lLFxyXG4gICAgICAgIHBpY3R1cmU6IGUucGljdHVyZSA/PyBgaHR0cHM6Ly91aS1hdmF0YXJzLmNvbS9hcGkvP3NpemU9MzImcm91bmRlZD10cnVlJmJhY2tncm91bmQ9cmFuZG9tJm5hbWU9JHtlLmNyZWF0b3J9YFxyXG4gICAgICB9KSlcclxuICAgIH0pKTtcclxuICAgIHRoaXMuY291bnQgPSB0aGlzLml0ZW1zLnBpcGUobWFwKGl0ZW1zID0+IGl0ZW1zLmxlbmd0aCkpO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgb25TZW5kID0gKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMubWVzc2FnZSkge1xyXG4gICAgICB0aGlzLmNvbW1lbnRPcHRpb24/LmV2ZW50Py5vblNlbmQodGhpcy5tZXNzYWdlKTtcclxuICAgICAgdGhpcy5tZXNzYWdlID0gbnVsbDtcclxuICAgICAgdGhpcy50ZXh0YXJlYT8uZm9jdXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICNsb2FkID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgY29uc3QgeyBpdGVtcyB9ID0gdGhpcy5jb21tZW50T3B0aW9uO1xyXG4gICAgY29uc3QgcmVzdWx0cyA9IGl0ZW1zKCk7XHJcbiAgICBpZiAocmVzdWx0cyBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgcmV0dXJuIGF3YWl0IHJlc3VsdHM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0cztcclxuICB9XHJcblxyXG4gIHJlbG9hZCA9IGFzeW5jICgpID0+IHtcclxuICAgIHRoaXMuI2l0ZW1zLm5leHQoYXdhaXQgdGhpcy4jbG9hZCgpKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTUvRGVza3RvcC9Xb3JraW5nLzFNRy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2NvbW1lbnQvIiwic291cmNlcyI6WyJzcmMvbGliL2NvbW1lbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZENvbW1lbnRPcHRpb24ge1xyXG4gIGl0ZW1zOiAoKSA9PiBDb21tZW50W10gfCBQcm9taXNlPENvbW1lbnRbXT47XHJcbiAgZXZlbnQ6IHtcclxuICAgIG9uU2VuZDogKHRleHQ6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxyXG4gIH07XHJcbiAgZWRpdG9yPzoge1xyXG4gICAgZW5hYmxlZD86IGJvb2xlYW47XHJcbiAgICB0b29sYmFyPzogYW55O1xyXG4gICAgdXJsVXBsb2FkSW1hZ2U/OiBzdHJpbmc7XHJcbiAgICBzdHlsZXM/OiBhbnk7XHJcbiAgICBtZW50aW9uVmFsdWVzPzogeyBpZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBsaW5rPzogc3RyaW5nIH1bXTtcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbW1lbnQgZXh0ZW5kcyBCYXNlQ29tbWVudCB7XHJcbiAgY2hpbGRyZW46IENvbW1lbnRMdjJbXTtcclxufVxyXG5cclxuaW50ZXJmYWNlIEJhc2VDb21tZW50IHtcclxuICBjcmVhdG9yOiBzdHJpbmc7XHJcbiAgY3JlYXRlZERhdGU6IHN0cmluZyB8IERhdGU7XHJcbiAgY29udGVudDogc3RyaW5nO1xyXG4gIHBpY3R1cmU6IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIENvbW1lbnRMdjIgZXh0ZW5kcyBCYXNlQ29tbWVudCB7XHJcbiAgY2hpbGRyZW46IENvbW1lbnRMdjNbXTtcclxufVxyXG5cclxuaW50ZXJmYWNlIENvbW1lbnRMdjMgZXh0ZW5kcyBCYXNlQ29tbWVudCB7XHJcblxyXG59XHJcblxyXG5cclxuXHJcbiJdfQ==
|
|
@@ -9,6 +9,7 @@ import { SdInputModule } from '@sd-angular/core/input';
|
|
|
9
9
|
import { SdTextareaModule } from '@sd-angular/core/textarea';
|
|
10
10
|
import { SdUtilityModule } from '@sd-angular/core/utility';
|
|
11
11
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
12
|
+
import { SdEditorModule } from '@sd-angular/core/editor';
|
|
12
13
|
export class SdCommentModule {
|
|
13
14
|
}
|
|
14
15
|
SdCommentModule.decorators = [
|
|
@@ -22,6 +23,7 @@ SdCommentModule.decorators = [
|
|
|
22
23
|
SdButtonModule,
|
|
23
24
|
SdInputModule,
|
|
24
25
|
SdTextareaModule,
|
|
26
|
+
SdEditorModule,
|
|
25
27
|
SdUtilityModule,
|
|
26
28
|
SdTranslateModule
|
|
27
29
|
],
|
|
@@ -34,4 +36,4 @@ SdCommentModule.decorators = [
|
|
|
34
36
|
providers: []
|
|
35
37
|
},] }
|
|
36
38
|
];
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1L0Rlc2t0b3AvV29ya2luZy8xTUcvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9jb21tZW50LyIsInNvdXJjZXMiOlsic3JjL2xpYi9jb21tZW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUF5QnZELE1BQU0sT0FBTyxlQUFlOzs7WUF2QjNCLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixlQUFlO29CQUNmLGFBQWE7b0JBQ2IsZ0JBQWdCO29CQUNoQixpQkFBaUI7b0JBQ2pCLGNBQWM7b0JBQ2QsYUFBYTtvQkFDYixnQkFBZ0I7b0JBQ2hCLGNBQWM7b0JBQ2QsZUFBZTtvQkFDZixpQkFBaUI7aUJBQ2xCO2dCQUNELFlBQVksRUFBRTtvQkFDWixTQUFTO2lCQUNWO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxTQUFTO2lCQUNWO2dCQUNELFNBQVMsRUFBRSxFQUNWO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTZFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvdHJhbnNsYXRlJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBTZENvbW1lbnQgfSBmcm9tICcuL2NvbW1lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2RCdXR0b25Nb2R1bGUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2J1dHRvbic7XHJcbmltcG9ydCB7IFNkSW5wdXRNb2R1bGUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2lucHV0JztcclxuaW1wb3J0IHsgU2RUZXh0YXJlYU1vZHVsZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvdGV4dGFyZWEnO1xyXG5pbXBvcnQgeyBTZFV0aWxpdHlNb2R1bGUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL3V0aWxpdHknO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7U2RFZGl0b3JNb2R1bGV9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvZWRpdG9yJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBTZFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIFNkQnV0dG9uTW9kdWxlLFxyXG4gICAgU2RJbnB1dE1vZHVsZSxcclxuICAgIFNkVGV4dGFyZWFNb2R1bGUsXHJcbiAgICBTZEVkaXRvck1vZHVsZSxcclxuICAgIFNkVXRpbGl0eU1vZHVsZSxcclxuICAgIFNkVHJhbnNsYXRlTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFNkQ29tbWVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgU2RDb21tZW50XHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZENvbW1lbnRNb2R1bGUgeyB9XHJcbiJdfQ==
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
var _name, _subscription, _model, _form, _updateValidator;
|
|
1
|
+
var _name, _subscription, _model, _form, _updateValidator, _uploadImage;
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
3
|
import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';
|
|
4
4
|
import * as uuid from 'uuid';
|
|
5
5
|
import { FormControl, NgForm, Validators } from '@angular/forms';
|
|
6
6
|
import { Constants } from './constant';
|
|
7
7
|
import { Subscription } from 'rxjs';
|
|
8
|
+
import { SdApiService } from '@sd-angular/core/api';
|
|
9
|
+
import 'quill-mention';
|
|
8
10
|
export class SdEditor {
|
|
9
|
-
constructor(ref) {
|
|
11
|
+
constructor(ref, sdApiService) {
|
|
10
12
|
this.ref = ref;
|
|
13
|
+
this.sdApiService = sdApiService;
|
|
11
14
|
_name.set(this, `N${uuid.v4()}`);
|
|
12
15
|
this.id = `I${uuid.v4()}`;
|
|
13
16
|
_subscription.set(this, new Subscription());
|
|
@@ -41,6 +44,35 @@ export class SdEditor {
|
|
|
41
44
|
['link', 'image', 'video'] // link and image, video
|
|
42
45
|
]
|
|
43
46
|
},
|
|
47
|
+
mention: {
|
|
48
|
+
allowedChars: /^[A-Za-z\sÅÄÖåäö]*$/,
|
|
49
|
+
mentionDenotationChars: ['@'],
|
|
50
|
+
source: (searchTerm, renderList, mentionChar) => {
|
|
51
|
+
if (this.mentionValues) {
|
|
52
|
+
let values;
|
|
53
|
+
if (mentionChar === '@') {
|
|
54
|
+
values = this.mentionValues;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
values = [];
|
|
58
|
+
}
|
|
59
|
+
if (searchTerm.length === 0) {
|
|
60
|
+
renderList(values, searchTerm);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
const matches = [];
|
|
64
|
+
// tslint:disable-next-line:prefer-for-of
|
|
65
|
+
for (let i = 0; i < values.length; i++) {
|
|
66
|
+
// tslint:disable-next-line:no-bitwise
|
|
67
|
+
if (~values[i].value.toLowerCase().indexOf(searchTerm.toLowerCase())) {
|
|
68
|
+
matches.push(values[i]);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
renderList(matches, searchTerm);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
},
|
|
44
76
|
keyboard: {
|
|
45
77
|
bindings: {
|
|
46
78
|
enter: {
|
|
@@ -90,6 +122,7 @@ export class SdEditor {
|
|
|
90
122
|
// // }
|
|
91
123
|
// // this.formControl.setValue(html);
|
|
92
124
|
// });
|
|
125
|
+
const self = this;
|
|
93
126
|
quill.getModule('toolbar').addHandler('image', function () {
|
|
94
127
|
let fileInput = this.container.querySelector('input.ql-image[type=file]');
|
|
95
128
|
if (fileInput == null) {
|
|
@@ -106,14 +139,15 @@ export class SdEditor {
|
|
|
106
139
|
const formData = new FormData();
|
|
107
140
|
formData.append(Constants.FILE, files[0]);
|
|
108
141
|
this.quill.enable(false);
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
142
|
+
/*this.apiService.post(this.domain + this.urlUploadImage, formData).subscribe((resp: any) => {
|
|
143
|
+
this.quill.enable(true);
|
|
144
|
+
this.quill.editor.insertEmbed(range.index, 'image', resp.data.imageUrl || resp.data.publish_url || resp.url);
|
|
145
|
+
const content = this.quill.getContents();
|
|
146
|
+
this.quill.setContents(content);
|
|
147
|
+
this.quill.setSelection(range.index + 1, 'silent');
|
|
148
|
+
fileInput.value = '';
|
|
149
|
+
});*/
|
|
150
|
+
__classPrivateFieldGet(self, _uploadImage).call(self, formData, quill, range, fileInput);
|
|
117
151
|
});
|
|
118
152
|
this.container.appendChild(fileInput);
|
|
119
153
|
}
|
|
@@ -127,6 +161,21 @@ export class SdEditor {
|
|
|
127
161
|
this.onClickShowHtmlEditor = () => {
|
|
128
162
|
this.showHtmlEditor = !this.showHtmlEditor;
|
|
129
163
|
};
|
|
164
|
+
_uploadImage.set(this, (formData, quill, range, fileInput) => {
|
|
165
|
+
if (!this.urlUploadImage) {
|
|
166
|
+
this.urlUploadImage = '/partner/v2/merchandise/file/uploaduserfile';
|
|
167
|
+
}
|
|
168
|
+
// this.domain = 'https://api-commerce-qc.vinid.dev';
|
|
169
|
+
this.sdApiService.post(this.urlUploadImage, formData).then((resp) => {
|
|
170
|
+
var _a, _b;
|
|
171
|
+
quill.enable(true);
|
|
172
|
+
quill.editor.insertEmbed(range.index, 'image', ((_a = resp === null || resp === void 0 ? void 0 : resp.data) === null || _a === void 0 ? void 0 : _a.imageUrl) || ((_b = resp === null || resp === void 0 ? void 0 : resp.data) === null || _b === void 0 ? void 0 : _b.publish_url) || (resp === null || resp === void 0 ? void 0 : resp.url) || '');
|
|
173
|
+
const content = quill.getContents();
|
|
174
|
+
quill.setContents(content);
|
|
175
|
+
quill.setSelection(range.index + 1, 'silent');
|
|
176
|
+
fileInput.value = '';
|
|
177
|
+
});
|
|
178
|
+
});
|
|
130
179
|
}
|
|
131
180
|
set model(val) {
|
|
132
181
|
__classPrivateFieldSet(this, _model, val);
|
|
@@ -170,6 +219,10 @@ export class SdEditor {
|
|
|
170
219
|
ngOnInit() {
|
|
171
220
|
var _a;
|
|
172
221
|
(_a = __classPrivateFieldGet(this, _form)) === null || _a === void 0 ? void 0 : _a.addControl(__classPrivateFieldGet(this, _name), this.formControl);
|
|
222
|
+
if (this.toolbar) {
|
|
223
|
+
this.quillConfig.toolbar.container = this.toolbar;
|
|
224
|
+
console.log('toolbar', this.quillConfig);
|
|
225
|
+
}
|
|
173
226
|
}
|
|
174
227
|
ngAfterViewInit() {
|
|
175
228
|
__classPrivateFieldGet(this, _subscription).add(this.formControl.valueChanges.subscribe((val) => {
|
|
@@ -183,16 +236,17 @@ export class SdEditor {
|
|
|
183
236
|
__classPrivateFieldGet(this, _subscription).unsubscribe();
|
|
184
237
|
}
|
|
185
238
|
}
|
|
186
|
-
_name = new WeakMap(), _subscription = new WeakMap(), _model = new WeakMap(), _form = new WeakMap(), _updateValidator = new WeakMap();
|
|
239
|
+
_name = new WeakMap(), _subscription = new WeakMap(), _model = new WeakMap(), _form = new WeakMap(), _updateValidator = new WeakMap(), _uploadImage = new WeakMap();
|
|
187
240
|
SdEditor.decorators = [
|
|
188
241
|
{ type: Component, args: [{
|
|
189
242
|
selector: 'sd-editor',
|
|
190
|
-
template: "<label *ngIf=\"label\" class=\"d-block T14M\">{{label}} <span class=\"text-danger mb-2\" *ngIf=\"required\">*</span></label>\r\n<ng-container *ngIf=\"!formControl.disabled && !showHtmlEditor\">\r\n <quill-editor #editor [styles]=\"styles\" (onEditorCreated)=\"editorInit($event)\" [ngModel]=\"formControl.value\"\r\n (ngModelChange)=\"onModelChange($event)\" [id]=\"id\" [modules]=\"quillConfig\" [placeholder]=\"placeholder\"\r\n [maxLength]=\"maxlength\">\r\n </quill-editor>\r\n <span class=\"d-block text-danger mt-5\" *ngIf=\"formControl.errors?.required\">\r\n {{'This field is required' | sdTranslate}}\r\n </span>\r\n <span class=\"d-block text-danger mt-5\" *ngIf=\"formControl.errors?.minlength\">\r\n {{'Max length' | sdTranslate}} <strong>{{minlength}}</strong>\r\n </span>\r\n <span class=\"d-block text-danger mt-5\" *ngIf=\"formControl.errors?.maxlength\">\r\n {{'Max length' | sdTranslate}} <strong>{{maxlength}}</strong>\r\n </span>\r\n</ng-container>\r\n<ng-container *ngIf=\"formControl.disabled\">\r\n <div [innerHtml]=\"formControl.value\"></div>\r\n</ng-container>\r\n<ng-container *ngIf=\"enableHTMLButton\">\r\n <sd-textarea [(model)]=\"modelHTML\" *ngIf=\"showHtmlEditor\" rows=\"20\"\r\n (modelChange)=\"onModelChange($event)\"></sd-textarea>\r\n <sd-button\r\n title=\"{{showHtmlEditor?'\u1EA8n':'Hi\u1EC7n'}} m\u00E3 HTML\"\r\n class=\"mr-8\"\r\n fontSet=\"material-icons-outlined\"\r\n (action)=\"onClickShowHtmlEditor()\"\r\n type=\"light\"\r\n ></sd-button>\r\n</ng-container>\r\n",
|
|
243
|
+
template: "<label *ngIf=\"label\" class=\"d-block T14M\">{{label}} <span class=\"text-danger mb-2\" *ngIf=\"required\">*</span></label>\r\n<ng-container *ngIf=\"!formControl.disabled && !showHtmlEditor\">\r\n <quill-editor #editor [styles]=\"styles\" (onEditorCreated)=\"editorInit($event)\" [ngModel]=\"formControl.value\"\r\n (ngModelChange)=\"onModelChange($event)\" [id]=\"id\" [modules]=\"quillConfig\" [placeholder]=\"placeholder\"\r\n [maxLength]=\"maxlength\" >\r\n </quill-editor>\r\n <span class=\"d-block text-danger mt-5\" *ngIf=\"formControl.errors?.required\">\r\n {{'This field is required' | sdTranslate}}\r\n </span>\r\n <span class=\"d-block text-danger mt-5\" *ngIf=\"formControl.errors?.minlength\">\r\n {{'Max length' | sdTranslate}} <strong>{{minlength}}</strong>\r\n </span>\r\n <span class=\"d-block text-danger mt-5\" *ngIf=\"formControl.errors?.maxlength\">\r\n {{'Max length' | sdTranslate}} <strong>{{maxlength}}</strong>\r\n </span>\r\n</ng-container>\r\n<ng-container *ngIf=\"formControl.disabled\">\r\n <div [innerHtml]=\"formControl.value\"></div>\r\n</ng-container>\r\n<ng-container *ngIf=\"enableHTMLButton\">\r\n <sd-textarea [(model)]=\"modelHTML\" *ngIf=\"showHtmlEditor\" rows=\"20\"\r\n (modelChange)=\"onModelChange($event)\"></sd-textarea>\r\n <sd-button\r\n title=\"{{showHtmlEditor?'\u1EA8n':'Hi\u1EC7n'}} m\u00E3 HTML\"\r\n class=\"mr-8\"\r\n fontSet=\"material-icons-outlined\"\r\n (action)=\"onClickShowHtmlEditor()\"\r\n type=\"light\"\r\n ></sd-button>\r\n</ng-container>\r\n",
|
|
191
244
|
styles: [""]
|
|
192
245
|
},] }
|
|
193
246
|
];
|
|
194
247
|
SdEditor.ctorParameters = () => [
|
|
195
|
-
{ type: ChangeDetectorRef }
|
|
248
|
+
{ type: ChangeDetectorRef },
|
|
249
|
+
{ type: SdApiService }
|
|
196
250
|
];
|
|
197
251
|
SdEditor.propDecorators = {
|
|
198
252
|
editor: [{ type: ViewChild, args: ['editor',] }],
|
|
@@ -208,7 +262,9 @@ SdEditor.propDecorators = {
|
|
|
208
262
|
domain: [{ type: Input }],
|
|
209
263
|
urlUploadImage: [{ type: Input }],
|
|
210
264
|
form: [{ type: Input }],
|
|
265
|
+
toolbar: [{ type: Input }],
|
|
211
266
|
enableHTMLButton: [{ type: Input }],
|
|
267
|
+
mentionValues: [{ type: Input }],
|
|
212
268
|
sdChange: [{ type: Output }]
|
|
213
269
|
};
|
|
214
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTUvRGVza3RvcC9Xb3JraW5nLzFNRy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2VkaXRvci8iLCJzb3VyY2VzIjpbInNyYy9saWIvZWRpdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTNHLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBQyxXQUFXLEVBQWEsTUFBTSxFQUFlLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQU9sQyxNQUFNLE9BQU8sUUFBUTtJQWlIbkIsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFoSDFDLGdCQUFRLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUM7UUFDeEIsT0FBRSxHQUFXLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDN0Isd0JBQWdCLElBQUksWUFBWSxFQUFFLEVBQUM7UUFHbkMseUJBQWU7UUFtQmYsYUFBUSxHQUFHLEtBQUssQ0FBQztRQXFCUCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFMUMsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFFekIsV0FBTSxHQUFRLEVBQUMsTUFBTSxFQUFFLE9BQU8sRUFBQyxDQUFDO1FBRXpDLGdCQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUV2QixXQUFNLEdBQUcsRUFBRSxDQUFDO1FBRXJCLHdCQUFpQjtRQVdS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SSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVzs7UUFDVCxtRkFBWSxhQUFhLHNDQUFhO1FBQ3RDLDRDQUFtQixXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDOzs7O1lBdklGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsV0FBVztnQkFDckIsbWtEQUFzQzs7YUFFdkM7OztZQVhrRSxpQkFBaUI7OztxQkFnQmpGLFNBQVMsU0FBQyxRQUFRO29CQUNsQixLQUFLO29CQUVMLEtBQUs7dUJBU0wsS0FBSzt3QkFXTCxLQUFLO3lCQU9MLEtBQUssU0FBQyxXQUFXO3lCQU9qQixLQUFLLFNBQUMsV0FBVzswQkFLakIsTUFBTTswQkFFTixLQUFLO3FCQUVMLEtBQUs7cUJBSUwsS0FBSzs2QkFDTCxLQUFLO21CQUVMLEtBQUs7K0JBVUwsS0FBSzt1QkE0Q0wsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBWaWV3Q2hpbGQsIElucHV0LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3RvclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7UXVpbGxFZGl0b3JDb21wb25lbnR9IGZyb20gJ25neC1xdWlsbCc7XHJcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7Rm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTmdGb3JtLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge0NvbnN0YW50c30gZnJvbSAnLi9jb25zdGFudCc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtZWRpdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkRWRpdG9yIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAjbmFtZSA9IGBOJHt1dWlkLnY0KCl9YDtcclxuICBpZDogc3RyaW5nID0gYEkke3V1aWQudjQoKX1gO1xyXG4gICNzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgQFZpZXdDaGlsZCgnZWRpdG9yJykgZWRpdG9yOiBRdWlsbEVkaXRvckNvbXBvbmVudDtcclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG4gICNtb2RlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNldCBtb2RlbCh2YWw6IHN0cmluZykge1xyXG4gICAgdGhpcy4jbW9kZWwgPSB2YWw7XHJcbiAgICB0aGlzLm1vZGVsSFRNTCA9IHZhbDtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy4jbW9kZWwsIHtcclxuICAgICAgZW1pdEV2ZW50OiBmYWxzZVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHZhbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5lbmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlcXVpcmVkID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBwUmVxdWlyZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMucmVxdWlyZWQgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgdGhpcy4jdXBkYXRlVmFsaWRhdG9yKCk7XHJcbiAgfVxyXG5cclxuICBtaW5sZW5ndGg6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KCdtaW5sZW5ndGgnKSBzZXQgX21pbmxlbmd0aCh2YWw6IG51bWJlcikge1xyXG4gICAgdGhpcy5taW5sZW5ndGggPSArdmFsO1xyXG4gICAgdGhpcy4jdXBkYXRlVmFsaWRhdG9yKCk7XHJcbiAgfVxyXG5cclxuICBtYXhsZW5ndGg6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KCdtYXhsZW5ndGgnKSBzZXQgX21heGxlbmd0aCh2YWw6IG51bWJlcikge1xyXG4gICAgdGhpcy5tYXhsZW5ndGggPSArdmFsO1xyXG4gICAgdGhpcy4jdXBkYXRlVmFsaWRhdG9yKCk7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG5cclxuICBASW5wdXQoKSBzdHlsZXM6IGFueSA9IHtoZWlnaHQ6ICcyNTBweCd9O1xyXG5cclxuICBmb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG5cclxuICBASW5wdXQoKSBkb21haW4gPSAnJztcclxuICBASW5wdXQoKSB1cmxVcGxvYWRJbWFnZTogc3RyaW5nO1xyXG4gICNmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgc2V0IGZvcm0odmFsOiBOZ0Zvcm0gfCBGb3JtR3JvdXApIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIE5nRm9ybSkge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWwuZm9ybTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBlbmFibGVIVE1MQnV0dG9uID0gZmFsc2U7XHJcbiAgc2hvd0h0bWxFZGl0b3IgPSBmYWxzZTtcclxuICBtb2RlbEhUTUw6IHN0cmluZztcclxuXHJcbiAgcXVpbGxFdmVudDogYW55O1xyXG5cclxuICBxdWlsbENvbmZpZyA9IHtcclxuICAgIC8vIHRvb2xiYXI6ICcudG9vbGJhcicsXHJcbiAgICB0b29sYmFyOiB7XHJcbiAgICAgIGNvbnRhaW5lcjogW1xyXG4gICAgICAgIFsnYm9sZCcsICdpdGFsaWMnLCAndW5kZXJsaW5lJywgJ3N0cmlrZSddLCAgICAgICAgLy8gdG9nZ2xlZCBidXR0b25zXHJcbiAgICAgICAgWydibG9ja3F1b3RlJywgJ2NvZGUtYmxvY2snXSxcclxuXHJcbiAgICAgICAgW3snaGVhZGVyJzogMX0sIHsnaGVhZGVyJzogMn1dLCAgICAgICAgICAgICAgIC8vIGN1c3RvbSBidXR0b24gdmFsdWVzXHJcbiAgICAgICAgW3snbGlzdCc6ICdvcmRlcmVkJ30sIHsnbGlzdCc6ICdidWxsZXQnfV0sXHJcbiAgICAgICAgW3snc2NyaXB0JzogJ3N1Yid9LCB7J3NjcmlwdCc6ICdzdXBlcid9XSwgICAgICAvLyBzdXBlcnNjcmlwdC9zdWJzY3JpcHRcclxuICAgICAgICBbeydpbmRlbnQnOiAnLTEnfSwgeydpbmRlbnQnOiAnKzEnfV0sICAgICAgICAgIC8vIG91dGRlbnQvaW5kZW50XHJcbiAgICAgICAgW3snZGlyZWN0aW9uJzogJ3J0bCd9XSwgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGV4dCBkaXJlY3Rpb25cclxuXHJcbiAgICAgICAgW3snc2l6ZSc6IFsnc21hbGwnLCBmYWxzZSwgJ2xhcmdlJywgJ2h1Z2UnXX1dLCAgLy8gY3VzdG9tIGRyb3Bkb3duXHJcbiAgICAgICAgW3snaGVhZGVyJzogWzEsIDIsIDMsIDQsIDUsIDYsIGZhbHNlXX1dLFxyXG5cclxuICAgICAgICBbeydjb2xvcic6IFtdfSwgeydiYWNrZ3JvdW5kJzogW119XSwgICAgICAgICAgLy8gZHJvcGRvd24gd2l0aCBkZWZhdWx0cyBmcm9tIHRoZW1lXHJcbiAgICAgICAgW3snZm9udCc6IFtdfV0sXHJcbiAgICAgICAgW3snYWxpZ24nOiBbXX1dLFxyXG5cclxuICAgICAgICBbJ2NsZWFuJ10sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZW1vdmUgZm9ybWF0dGluZyBidXR0b25cclxuXHJcbiAgICAgICAgWydsaW5rJywgJ2ltYWdlJywgJ3ZpZGVvJ10gICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGluayBhbmQgaW1hZ2UsIHZpZGVvXHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICBrZXlib2FyZDoge1xyXG4gICAgICBiaW5kaW5nczoge1xyXG4gICAgICAgIGVudGVyOiB7XHJcbiAgICAgICAgICBrZXk6IDEzLFxyXG4gICAgICAgICAgaGFuZGxlcjogKHJhbmdlLCBjb250ZXh0KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHRleHRMZW5ndGg6IG51bWJlciA9IDA7XHJcbiAgQE91dHB1dCgpIHNkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLiNmb3JtPy5hZGRDb250cm9sKHRoaXMuI25hbWUsIHRoaXMuZm9ybUNvbnRyb2wpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLmFkZCh0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbCkgPT4ge1xyXG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodmFsKTtcclxuICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KHZhbCk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuI2Zvcm0/LnJlbW92ZUNvbnRyb2wodGhpcy4jbmFtZSk7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gICN1cGRhdGVWYWxpZGF0b3IgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhckFzeW5jVmFsaWRhdG9ycygpO1xyXG4gICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMucmVxdWlyZWQpIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubWlubGVuZ3RoID4gMCkge1xyXG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgodGhpcy5taW5sZW5ndGgpKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1heGxlbmd0aCA+IDApIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4bGVuZ3RoKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIGVkaXRvckluaXQgPSAocXVpbGwpID0+IHtcclxuICAgIHRoaXMucXVpbGxFdmVudCA9IHF1aWxsO1xyXG4gICAgLy8gY29uc3QgdHh0QXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7XHJcbiAgICAvLyB0eHRBcmVhLnN0eWxlLmNzc1RleHQgPVxyXG4gICAgLy8gICAnd2lkdGg6IDEwMCU7bWFyZ2luOiAwcHg7YmFja2dyb3VuZDogcmdiKDI5LCAyOSwgMjkpOycgK1xyXG4gICAgLy8gICAnYm94LXNpemluZzogYm9yZGVyLWJveDtjb2xvcjogcmdiKDIwNCwgMjA0LCAyMDQpOycgK1xyXG4gICAgLy8gICAnZm9udC1zaXplOiAxNXB4O291dGxpbmU6IG5vbmU7cGFkZGluZzogMjBweDsnICtcclxuICAgIC8vICAgJ2xpbmUtaGVpZ2h0OiAyNHB4O2ZvbnQtZmFtaWx5OiBDb25zb2xhcywgTWVubG8sIE1vbmFjbywgJnF1b3Q7Q291cmllciBOZXcmcXVvdDssIG1vbm9zcGFjZTsnICtcclxuICAgIC8vICAgJ3Bvc2l0aW9uOiBhYnNvbHV0ZTt0b3A6IDA7Ym90dG9tOiAwO2JvcmRlcjogbm9uZTtkaXNwbGF5Om5vbmUnO1xyXG5cclxuICAgIC8vIGNvbnN0IGh0bWxFZGl0b3IgPSBxdWlsbC5hZGRDb250YWluZXIoJ3FsLWN1c3RvbScpO1xyXG4gICAgLy8gaHRtbEVkaXRvci5hcHBlbmRDaGlsZCh0eHRBcmVhKTtcclxuXHJcbiAgICAvLyBjb25zdCBteUVkaXRvciA9IHF1aWxsLmNvbnRhaW5lcjtcclxuICAgIC8vIHF1aWxsLm9uKCd0ZXh0LWNoYW5nZScsIChkZWx0YSwgb2xkRGVsdGEsIHNvdXJjZSkgPT4ge1xyXG4gICAgLy8gICBjb25zdCBodG1sID0gbXlFZGl0b3IuY2hpbGRyZW5bMF0uaW5uZXJIVE1MO1xyXG4gICAgLy8gICB0eHRBcmVhLnZhbHVlID0gaHRtbDtcclxuICAgIC8vICAgLy8gaWYgKHF1aWxsLmdldExlbmd0aCgpID4gdGhpcy5tYXhsZW5ndGgpIHtcclxuICAgIC8vICAgLy8gICBxdWlsbC5kZWxldGVUZXh0KHRoaXMubWF4bGVuZ3RoLCBxdWlsbC5nZXRMZW5ndGgoKSk7XHJcbiAgICAvLyAgIC8vIH1cclxuICAgIC8vICAgLy8gdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShodG1sKTtcclxuICAgIC8vIH0pO1xyXG5cclxuICAgIHF1aWxsLmdldE1vZHVsZSgndG9vbGJhcicpLmFkZEhhbmRsZXIoJ2ltYWdlJywgZnVuY3Rpb24gKCkge1xyXG4gICAgICBsZXQgZmlsZUlucHV0ID0gdGhpcy5jb250YWluZXIucXVlcnlTZWxlY3RvcignaW5wdXQucWwtaW1hZ2VbdHlwZT1maWxlXScpO1xyXG5cclxuICAgICAgaWYgKGZpbGVJbnB1dCA9PSBudWxsKSB7XHJcbiAgICAgICAgZmlsZUlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcclxuICAgICAgICBmaWxlSW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgQ29uc3RhbnRzLkZJTEUpO1xyXG4gICAgICAgIGZpbGVJbnB1dC5zZXRBdHRyaWJ1dGUoJ2FjY2VwdCcsICdpbWFnZS9wbmcsIGltYWdlL2dpZiwgaW1hZ2UvanBlZywgaW1hZ2UvYm1wLCBpbWFnZS94LWljb24nKTtcclxuICAgICAgICBmaWxlSW5wdXQuY2xhc3NMaXN0LmFkZCgncWwtaW1hZ2UnKTtcclxuICAgICAgICBmaWxlSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZmlsZXMgPSBmaWxlSW5wdXQuZmlsZXM7XHJcbiAgICAgICAgICBjb25zdCByYW5nZSA9IHRoaXMucXVpbGwuZ2V0U2VsZWN0aW9uKHRydWUpO1xyXG4gICAgICAgICAgaWYgKCFmaWxlcyB8fCAhZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgICAgICAgZm9ybURhdGEuYXBwZW5kKENvbnN0YW50cy5GSUxFLCBmaWxlc1swXSk7XHJcblxyXG4gICAgICAgICAgdGhpcy5xdWlsbC5lbmFibGUoZmFsc2UpO1xyXG4gICAgICAgICAgLy8gc2VsZi5hcGlTZXJ2aWNlLnBvc3Qoc2VsZi5kb21haW4sIHNlbGYudXJsVXBsb2FkSW1hZ2UsIGZvcm1EYXRhKS5zdWJzY3JpYmUoKHJlc3A6IGFueSkgPT4ge1xyXG4gICAgICAgICAgLy8gICB0aGlzLnF1aWxsLmVuYWJsZSh0cnVlKTtcclxuICAgICAgICAgIC8vICAgdGhpcy5xdWlsbC5lZGl0b3IuaW5zZXJ0RW1iZWQocmFuZ2UuaW5kZXgsICdpbWFnZScsIHJlc3AuZGF0YS5pbWFnZVVybCB8fCByZXNwLmRhdGEucHVibGlzaF91cmwpO1xyXG4gICAgICAgICAgLy8gICBjb25zdCBjb250ZW50ID0gdGhpcy5xdWlsbC5nZXRDb250ZW50cygpO1xyXG4gICAgICAgICAgLy8gICB0aGlzLnF1aWxsLnNldENvbnRlbnRzKGNvbnRlbnQpO1xyXG4gICAgICAgICAgLy8gICB0aGlzLnF1aWxsLnNldFNlbGVjdGlvbihyYW5nZS5pbmRleCArIDEsIChRdWlsbCBhcyBhbnkpLnNvdXJjZXMuU0lMRU5UKTtcclxuICAgICAgICAgIC8vICAgZmlsZUlucHV0LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAvLyB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNvbnRhaW5lci5hcHBlbmRDaGlsZChmaWxlSW5wdXQpO1xyXG4gICAgICB9XHJcbiAgICAgIGZpbGVJbnB1dC5jbGljaygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG9uTW9kZWxDaGFuZ2UgPSAodmFsOiBzdHJpbmcpID0+IHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsKTtcclxuICAgIHRoaXMubW9kZWxIVE1MID0gdmFsO1xyXG4gIH1cclxuICBvbkNsaWNrU2hvd0h0bWxFZGl0b3IgPSAoKSA9PiB7XHJcbiAgICB0aGlzLnNob3dIdG1sRWRpdG9yID0gIXRoaXMuc2hvd0h0bWxFZGl0b3I7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
270
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTUvRGVza3RvcC9Xb3JraW5nLzFNRy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2VkaXRvci8iLCJzb3VyY2VzIjpbInNyYy9saWIvZWRpdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULEtBQUssRUFFTCxNQUFNLEVBQ04sWUFBWSxFQUNaLGlCQUFpQixFQUVsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUMsV0FBVyxFQUFhLE1BQU0sRUFBZSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sZUFBZSxDQUFDO0FBT3ZCLE1BQU0sT0FBTyxRQUFRO0lBK0luQixZQUNVLEdBQXNCLEVBQ3RCLFlBQTBCO1FBRDFCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBaEpwQyxnQkFBUSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFDO1FBQ3hCLE9BQUUsR0FBVyxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQzdCLHdCQUFnQixJQUFJLFlBQVksRUFBRSxFQUFDO1FBR25DLHlCQUFlO1FBbUJmLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFxQlAsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTFDLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBRXpCLFdBQU0sR0FBUSxFQUFDLE1B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QUNyRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVc7O1FBQ1QsbUZBQVksYUFBYSxzQ0FBYTtRQUN0Qyw0Q0FBbUIsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7OztZQTVLRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLG9rREFBc0M7O2FBRXZDOzs7WUFmQyxpQkFBaUI7WUFRWCxZQUFZOzs7cUJBWWpCLFNBQVMsU0FBQyxRQUFRO29CQUNsQixLQUFLO29CQUVMLEtBQUs7dUJBU0wsS0FBSzt3QkFXTCxLQUFLO3lCQU9MLEtBQUssU0FBQyxXQUFXO3lCQU9qQixLQUFLLFNBQUMsV0FBVzswQkFLakIsTUFBTTswQkFFTixLQUFLO3FCQUVMLEtBQUs7cUJBSUwsS0FBSzs2QkFDTCxLQUFLO21CQUVMLEtBQUs7c0JBVUwsS0FBSzsrQkFDTCxLQUFLOzRCQUtMLEtBQUs7dUJBb0VMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7UXVpbGxFZGl0b3JDb21wb25lbnR9IGZyb20gJ25neC1xdWlsbCc7XHJcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7Rm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTmdGb3JtLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge0NvbnN0YW50c30gZnJvbSAnLi9jb25zdGFudCc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtTZEFwaVNlcnZpY2V9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvYXBpJztcclxuaW1wb3J0ICdxdWlsbC1tZW50aW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtZWRpdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkRWRpdG9yIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICNuYW1lID0gYE4ke3V1aWQudjQoKX1gO1xyXG4gIGlkOiBzdHJpbmcgPSBgSSR7dXVpZC52NCgpfWA7XHJcbiAgI3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBAVmlld0NoaWxkKCdlZGl0b3InKSBlZGl0b3I6IFF1aWxsRWRpdG9yQ29tcG9uZW50O1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgI21vZGVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2V0IG1vZGVsKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLiNtb2RlbCA9IHZhbDtcclxuICAgIHRoaXMubW9kZWxIVE1MID0gdmFsO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLiNtb2RlbCwge1xyXG4gICAgICBlbWl0RXZlbnQ6IGZhbHNlXHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVxdWlyZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc2V0IHBSZXF1aXJlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5yZXF1aXJlZCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcblxyXG4gIG1pbmxlbmd0aDogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoJ21pbmxlbmd0aCcpIHNldCBfbWlubGVuZ3RoKHZhbDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm1pbmxlbmd0aCA9ICt2YWw7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcblxyXG4gIG1heGxlbmd0aDogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoJ21heGxlbmd0aCcpIHNldCBfbWF4bGVuZ3RoKHZhbDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm1heGxlbmd0aCA9ICt2YWw7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIHN0eWxlczogYW55ID0ge2hlaWdodDogJzI1MHB4J307XHJcblxyXG4gIGZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcblxyXG4gIEBJbnB1dCgpIGRvbWFpbiA9ICcnO1xyXG4gIEBJbnB1dCgpIHVybFVwbG9hZEltYWdlOiBzdHJpbmc7XHJcbiAgI2Zvcm06IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBzZXQgZm9ybSh2YWw6IE5nRm9ybSB8IEZvcm1Hcm91cCkge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICBpZiAodmFsIGluc3RhbmNlb2YgTmdGb3JtKSB7XHJcbiAgICAgICAgdGhpcy4jZm9ybSA9IHZhbC5mb3JtO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHRvb2xiYXI6IGFueTtcclxuICBASW5wdXQoKSBlbmFibGVIVE1MQnV0dG9uID0gZmFsc2U7XHJcbiAgc2hvd0h0bWxFZGl0b3IgPSBmYWxzZTtcclxuICBtb2RlbEhUTUw6IHN0cmluZztcclxuXHJcbiAgcXVpbGxFdmVudDogYW55O1xyXG4gIEBJbnB1dCgpIG1lbnRpb25WYWx1ZXM6IHsgaWQ6IHN0cmluZywgdmFsdWU6IHN0cmluZywgbGluaz86IHN0cmluZyB9W107XHJcblxyXG4gIHF1aWxsQ29uZmlnID0ge1xyXG4gICAgLy8gdG9vbGJhcjogJy50b29sYmFyJyxcclxuICAgIHRvb2xiYXI6IHtcclxuICAgICAgY29udGFpbmVyOiBbXHJcbiAgICAgICAgWydib2xkJywgJ2l0YWxpYycsICd1bmRlcmxpbmUnLCAnc3RyaWtlJ10sICAgICAgICAvLyB0b2dnbGVkIGJ1dHRvbnNcclxuICAgICAgICBbJ2Jsb2NrcXVvdGUnLCAnY29kZS1ibG9jayddLFxyXG5cclxuICAgICAgICBbeydoZWFkZXInOiAxfSwgeydoZWFkZXInOiAyfV0sICAgICAgICAgICAgICAgLy8gY3VzdG9tIGJ1dHRvbiB2YWx1ZXNcclxuICAgICAgICBbeydsaXN0JzogJ29yZGVyZWQnfSwgeydsaXN0JzogJ2J1bGxldCd9XSxcclxuICAgICAgICBbeydzY3JpcHQnOiAnc3ViJ30sIHsnc2NyaXB0JzogJ3N1cGVyJ31dLCAgICAgIC8vIHN1cGVyc2NyaXB0L3N1YnNjcmlwdFxyXG4gICAgICAgIFt7J2luZGVudCc6ICctMSd9LCB7J2luZGVudCc6ICcrMSd9XSwgICAgICAgICAgLy8gb3V0ZGVudC9pbmRlbnRcclxuICAgICAgICBbeydkaXJlY3Rpb24nOiAncnRsJ31dLCAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0ZXh0IGRpcmVjdGlvblxyXG5cclxuICAgICAgICBbeydzaXplJzogWydzbWFsbCcsIGZhbHNlLCAnbGFyZ2UnLCAnaHVnZSddfV0sICAvLyBjdXN0b20gZHJvcGRvd25cclxuICAgICAgICBbeydoZWFkZXInOiBbMSwgMiwgMywgNCwgNSwgNiwgZmFsc2VdfV0sXHJcblxyXG4gICAgICAgIFt7J2NvbG9yJzogW119LCB7J2JhY2tncm91bmQnOiBbXX1dLCAgICAgICAgICAvLyBkcm9wZG93biB3aXRoIGRlZmF1bHRzIGZyb20gdGhlbWVcclxuICAgICAgICBbeydmb250JzogW119XSxcclxuICAgICAgICBbeydhbGlnbic6IFtdfV0sXHJcblxyXG4gICAgICAgIFsnY2xlYW4nXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBmb3JtYXR0aW5nIGJ1dHRvblxyXG5cclxuICAgICAgICBbJ2xpbmsnLCAnaW1hZ2UnLCAndmlkZW8nXSAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsaW5rIGFuZCBpbWFnZSwgdmlkZW9cclxuICAgICAgXVxyXG4gICAgfSxcclxuICAgIG1lbnRpb246IHtcclxuICAgICAgYWxsb3dlZENoYXJzOiAvXltBLVphLXpcXHPDhcOEw5bDpcOkw7ZdKiQvLFxyXG4gICAgICBtZW50aW9uRGVub3RhdGlvbkNoYXJzOiBbJ0AnXSxcclxuICAgICAgc291cmNlOiAoc2VhcmNoVGVybSwgcmVuZGVyTGlzdCwgbWVudGlvbkNoYXIpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5tZW50aW9uVmFsdWVzKSB7XHJcbiAgICAgICAgICBsZXQgdmFsdWVzO1xyXG4gICAgICAgICAgaWYgKG1lbnRpb25DaGFyID09PSAnQCcpIHtcclxuICAgICAgICAgICAgdmFsdWVzID0gdGhpcy5tZW50aW9uVmFsdWVzO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdmFsdWVzID0gW107XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHNlYXJjaFRlcm0ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJlbmRlckxpc3QodmFsdWVzLCBzZWFyY2hUZXJtKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSBbXTtcclxuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnByZWZlci1mb3Itb2ZcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxyXG4gICAgICAgICAgICAgIGlmICh+dmFsdWVzW2ldLnZhbHVlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkpKSB7XHJcbiAgICAgICAgICAgICAgICBtYXRjaGVzLnB1c2godmFsdWVzW2ldKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmVuZGVyTGlzdChtYXRjaGVzLCBzZWFyY2hUZXJtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAga2V5Ym9hcmQ6IHtcclxuICAgICAgYmluZGluZ3M6IHtcclxuICAgICAgICBlbnRlcjoge1xyXG4gICAgICAgICAga2V5OiAxMyxcclxuICAgICAgICAgIGhhbmRsZXI6IChyYW5nZSwgY29udGV4dCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG5cclxuICB0ZXh0TGVuZ3RoOiBudW1iZXIgPSAwO1xyXG4gIEBPdXRwdXQoKSBzZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgc2RBcGlTZXJ2aWNlOiBTZEFwaVNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy4jZm9ybT8uYWRkQ29udHJvbCh0aGlzLiNuYW1lLCB0aGlzLmZvcm1Db250cm9sKTtcclxuICAgIGlmICh0aGlzLnRvb2xiYXIpIHtcclxuICAgICAgdGhpcy5xdWlsbENvbmZpZy50b29sYmFyLmNvbnRhaW5lciA9IHRoaXMudG9vbGJhcjtcclxuICAgICAgY29uc29sZS5sb2coJ3Rvb2xiYXInLCB0aGlzLnF1aWxsQ29uZmlnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQodGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWwpID0+IHtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHZhbCk7XHJcbiAgICAgIHRoaXMuc2RDaGFuZ2UuZW1pdCh2YWwpO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLiNmb3JtPy5yZW1vdmVDb250cm9sKHRoaXMuI25hbWUpO1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAjdXBkYXRlVmFsaWRhdG9yID0gKCkgPT4ge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJBc3luY1ZhbGlkYXRvcnMoKTtcclxuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuICAgIGlmICh0aGlzLnJlcXVpcmVkKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1pbmxlbmd0aCA+IDApIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKHRoaXMubWlubGVuZ3RoKSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tYXhsZW5ndGggPiAwKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heGxlbmd0aCkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICBlZGl0b3JJbml0ID0gKHF1aWxsKSA9PiB7XHJcbiAgICB0aGlzLnF1aWxsRXZlbnQgPSBxdWlsbDtcclxuICAgIC8vIGNvbnN0IHR4dEFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpO1xyXG4gICAgLy8gdHh0QXJlYS5zdHlsZS5jc3NUZXh0ID1cclxuICAgIC8vICAgJ3dpZHRoOiAxMDAlO21hcmdpbjogMHB4O2JhY2tncm91bmQ6IHJnYigyOSwgMjksIDI5KTsnICtcclxuICAgIC8vICAgJ2JveC1zaXppbmc6IGJvcmRlci1ib3g7Y29sb3I6IHJnYigyMDQsIDIwNCwgMjA0KTsnICtcclxuICAgIC8vICAgJ2ZvbnQtc2l6ZTogMTVweDtvdXRsaW5lOiBub25lO3BhZGRpbmc6IDIwcHg7JyArXHJcbiAgICAvLyAgICdsaW5lLWhlaWdodDogMjRweDtmb250LWZhbWlseTogQ29uc29sYXMsIE1lbmxvLCBNb25hY28sICZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7LCBtb25vc3BhY2U7JyArXHJcbiAgICAvLyAgICdwb3NpdGlvbjogYWJzb2x1dGU7dG9wOiAwO2JvdHRvbTogMDtib3JkZXI6IG5vbmU7ZGlzcGxheTpub25lJztcclxuXHJcbiAgICAvLyBjb25zdCBodG1sRWRpdG9yID0gcXVpbGwuYWRkQ29udGFpbmVyKCdxbC1jdXN0b20nKTtcclxuICAgIC8vIGh0bWxFZGl0b3IuYXBwZW5kQ2hpbGQodHh0QXJlYSk7XHJcblxyXG4gICAgLy8gY29uc3QgbXlFZGl0b3IgPSBxdWlsbC5jb250YWluZXI7XHJcbiAgICAvLyBxdWlsbC5vbigndGV4dC1jaGFuZ2UnLCAoZGVsdGEsIG9sZERlbHRhLCBzb3VyY2UpID0+IHtcclxuICAgIC8vICAgY29uc3QgaHRtbCA9IG15RWRpdG9yLmNoaWxkcmVuWzBdLmlubmVySFRNTDtcclxuICAgIC8vICAgdHh0QXJlYS52YWx1ZSA9IGh0bWw7XHJcbiAgICAvLyAgIC8vIGlmIChxdWlsbC5nZXRMZW5ndGgoKSA+IHRoaXMubWF4bGVuZ3RoKSB7XHJcbiAgICAvLyAgIC8vICAgcXVpbGwuZGVsZXRlVGV4dCh0aGlzLm1heGxlbmd0aCwgcXVpbGwuZ2V0TGVuZ3RoKCkpO1xyXG4gICAgLy8gICAvLyB9XHJcbiAgICAvLyAgIC8vIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoaHRtbCk7XHJcbiAgICAvLyB9KTtcclxuXHJcbiAgICBjb25zdCBzZWxmID0gdGhpcztcclxuICAgIHF1aWxsLmdldE1vZHVsZSgndG9vbGJhcicpLmFkZEhhbmRsZXIoJ2ltYWdlJywgZnVuY3Rpb24gKCkge1xyXG4gICAgICBsZXQgZmlsZUlucHV0ID0gdGhpcy5jb250YWluZXIucXVlcnlTZWxlY3RvcignaW5wdXQucWwtaW1hZ2VbdHlwZT1maWxlXScpO1xyXG5cclxuICAgICAgaWYgKGZpbGVJbnB1dCA9PSBudWxsKSB7XHJcbiAgICAgICAgZmlsZUlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcclxuICAgICAgICBmaWxlSW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgQ29uc3RhbnRzLkZJTEUpO1xyXG4gICAgICAgIGZpbGVJbnB1dC5zZXRBdHRyaWJ1dGUoJ2FjY2VwdCcsICdpbWFnZS9wbmcsIGltYWdlL2dpZiwgaW1hZ2UvanBlZywgaW1hZ2UvYm1wLCBpbWFnZS94LWljb24nKTtcclxuICAgICAgICBmaWxlSW5wdXQuY2xhc3NMaXN0LmFkZCgncWwtaW1hZ2UnKTtcclxuICAgICAgICBmaWxlSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZmlsZXMgPSBmaWxlSW5wdXQuZmlsZXM7XHJcbiAgICAgICAgICBjb25zdCByYW5nZSA9IHRoaXMucXVpbGwuZ2V0U2VsZWN0aW9uKHRydWUpO1xyXG4gICAgICAgICAgaWYgKCFmaWxlcyB8fCAhZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgICAgICAgZm9ybURhdGEuYXBwZW5kKENvbnN0YW50cy5GSUxFLCBmaWxlc1swXSk7XHJcblxyXG4gICAgICAgICAgdGhpcy5xdWlsbC5lbmFibGUoZmFsc2UpO1xyXG4gICAgICAgICAgLyp0aGlzLmFwaVNlcnZpY2UucG9zdCh0aGlzLmRvbWFpbiArIHRoaXMudXJsVXBsb2FkSW1hZ2UsIGZvcm1EYXRhKS5zdWJzY3JpYmUoKHJlc3A6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnF1aWxsLmVuYWJsZSh0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5xdWlsbC5lZGl0b3IuaW5zZXJ0RW1iZWQocmFuZ2UuaW5kZXgsICdpbWFnZScsIHJlc3AuZGF0YS5pbWFnZVVybCB8fCByZXNwLmRhdGEucHVibGlzaF91cmwgfHwgIHJlc3AudXJsKTtcclxuICAgICAgICAgICAgY29uc3QgY29udGVudCA9IHRoaXMucXVpbGwuZ2V0Q29udGVudHMoKTtcclxuICAgICAgICAgICAgdGhpcy5xdWlsbC5zZXRDb250ZW50cyhjb250ZW50KTtcclxuICAgICAgICAgICAgdGhpcy5xdWlsbC5zZXRTZWxlY3Rpb24ocmFuZ2UuaW5kZXggKyAxLCAnc2lsZW50Jyk7XHJcbiAgICAgICAgICAgIGZpbGVJbnB1dC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgfSk7Ki9cclxuICAgICAgICAgIHNlbGYuI3VwbG9hZEltYWdlKGZvcm1EYXRhLCBxdWlsbCwgcmFuZ2UsIGZpbGVJbnB1dCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5jb250YWluZXIuYXBwZW5kQ2hpbGQoZmlsZUlucHV0KTtcclxuICAgICAgfVxyXG4gICAgICBmaWxlSW5wdXQuY2xpY2soKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25Nb2RlbENoYW5nZSA9ICh2YWw6IHN0cmluZykgPT4ge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWwpO1xyXG4gICAgdGhpcy5tb2RlbEhUTUwgPSB2YWw7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrU2hvd0h0bWxFZGl0b3IgPSAoKSA9PiB7XHJcbiAgICB0aGlzLnNob3dIdG1sRWRpdG9yID0gIXRoaXMuc2hvd0h0bWxFZGl0b3I7XHJcbiAgfVxyXG5cclxuICAjdXBsb2FkSW1hZ2UgPSAoZm9ybURhdGEsIHF1aWxsLCByYW5nZSwgZmlsZUlucHV0KSA9PiB7XHJcbiAgICBpZiAoIXRoaXMudXJsVXBsb2FkSW1hZ2UpIHtcclxuICAgICAgdGhpcy51cmxVcGxvYWRJbWFnZSA9ICcvcGFydG5lci92Mi9tZXJjaGFuZGlzZS9maWxlL3VwbG9hZHVzZXJmaWxlJztcclxuICAgIH1cclxuICAgIC8vIHRoaXMuZG9tYWluID0gJ2h0dHBzOi8vYXBpLWNvbW1lcmNlLXFjLnZpbmlkLmRldic7XHJcbiAgICB0aGlzLnNkQXBpU2VydmljZS5wb3N0KHRoaXMudXJsVXBsb2FkSW1hZ2UsIGZvcm1EYXRhKS50aGVuKChyZXNwOiBhbnkpID0+IHtcclxuICAgICAgcXVpbGwuZW5hYmxlKHRydWUpO1xyXG4gICAgICBxdWlsbC5lZGl0b3IuaW5zZXJ0RW1iZWQocmFuZ2UuaW5kZXgsICdpbWFnZScsIHJlc3A/LmRhdGE/LmltYWdlVXJsIHx8IHJlc3A/LmRhdGE/LnB1Ymxpc2hfdXJsIHx8IHJlc3A/LnVybCB8fCAnJyk7XHJcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBxdWlsbC5nZXRDb250ZW50cygpO1xyXG4gICAgICBxdWlsbC5zZXRDb250ZW50cyhjb250ZW50KTtcclxuICAgICAgcXVpbGwuc2V0U2VsZWN0aW9uKHJhbmdlLmluZGV4ICsgMSwgJ3NpbGVudCcpO1xyXG4gICAgICBmaWxlSW5wdXQudmFsdWUgPSAnJztcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -6,6 +6,7 @@ import { CommonModule } from '@angular/common';
|
|
|
6
6
|
import { SdTranslateModule } from '@sd-angular/core/translate';
|
|
7
7
|
import { SdButtonModule } from '@sd-angular/core/button';
|
|
8
8
|
import { SdTextareaModule } from '@sd-angular/core/textarea';
|
|
9
|
+
import { SdApiModule } from '@sd-angular/core/api';
|
|
9
10
|
export class SdEditorModule {
|
|
10
11
|
}
|
|
11
12
|
SdEditorModule.decorators = [
|
|
@@ -18,10 +19,11 @@ SdEditorModule.decorators = [
|
|
|
18
19
|
QuillModule.forRoot(),
|
|
19
20
|
SdTranslateModule,
|
|
20
21
|
SdButtonModule,
|
|
21
|
-
SdTextareaModule
|
|
22
|
+
SdTextareaModule,
|
|
23
|
+
SdApiModule
|
|
22
24
|
],
|
|
23
25
|
exports: [SdEditor],
|
|
24
26
|
providers: [],
|
|
25
27
|
},] }
|
|
26
28
|
];
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTUvRGVza3RvcC9Xb3JraW5nLzFNRy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2VkaXRvci8iLCJzb3VyY2VzIjpbInNyYy9saWIvZWRpdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBQyxXQUFXLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQWlCL0QsTUFBTSxPQUFPLGNBQWM7OztZQWYxQixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUN4QixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixXQUFXO29CQUNYLG1CQUFtQjtvQkFDbkIsV0FBVyxDQUFDLE9BQU8sRUFBRTtvQkFDckIsaUJBQWlCO29CQUNqQixjQUFjO29CQUNkLGdCQUFnQjtvQkFDaEIsV0FBVztpQkFDWjtnQkFDRCxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBQ25CLFNBQVMsRUFBRSxFQUFFO2FBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBRdWlsbE1vZHVsZSB9IGZyb20gJ25neC1xdWlsbCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTZEVkaXRvciB9IGZyb20gJy4vZWRpdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNkVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS90cmFuc2xhdGUnO1xyXG5pbXBvcnQge1NkQnV0dG9uTW9kdWxlfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2J1dHRvbic7XHJcbmltcG9ydCB7U2RUZXh0YXJlYU1vZHVsZX0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS90ZXh0YXJlYSc7XHJcbmltcG9ydCB7U2RBcGlNb2R1bGUsIFNkQXBpU2VydmljZX0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9hcGknO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtTZEVkaXRvcl0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgUXVpbGxNb2R1bGUuZm9yUm9vdCgpLFxyXG4gICAgU2RUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBTZEJ1dHRvbk1vZHVsZSxcclxuICAgIFNkVGV4dGFyZWFNb2R1bGUsXHJcbiAgICBTZEFwaU1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1NkRWRpdG9yXSxcclxuICBwcm92aWRlcnM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RFZGl0b3JNb2R1bGUgeyB9XHJcbiJdfQ==
|