@bnsights/bbsf-controls 1.0.150 → 1.0.151

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/README.md CHANGED
@@ -5,6 +5,10 @@ BBSF Controls package is part of BBSF 3 packages. It has all the form controls t
5
5
  For more info please visit [BBSF Controls documenation](https://bbsfadmin.bnsights.com/controls) or [BBSF documentation](https://bnsightsprojects.visualstudio.com/BBSF%203/_wiki/wikis/BBSF-3.wiki/65/BBSF-Documentation)
6
6
 
7
7
  # Change Log
8
+ ## 1.0.151 / 19-8-2024
9
+ ======================
10
+ * Added MarkdownEditor Control
11
+
8
12
  ## 1.0.150 / 8-8-2024
9
13
  ======================
10
14
  * Updated TextAreaComponent speech language select with UI fixes
@@ -0,0 +1,20 @@
1
+ export var MarkdownMode;
2
+ (function (MarkdownMode) {
3
+ MarkdownMode["editor"] = "editor";
4
+ MarkdownMode["preview"] = "preview";
5
+ })(MarkdownMode || (MarkdownMode = {}));
6
+ export var MarkDownIcons;
7
+ (function (MarkDownIcons) {
8
+ MarkDownIcons["Bold"] = "Bold";
9
+ MarkDownIcons["Italic"] = "Italic";
10
+ MarkDownIcons["Heading"] = "Heading";
11
+ MarkDownIcons["Reference"] = "Reference";
12
+ MarkDownIcons["Link"] = "Link";
13
+ MarkDownIcons["Image"] = "Image";
14
+ MarkDownIcons["Ul"] = "Ul";
15
+ MarkDownIcons["Ol"] = "Ol";
16
+ MarkDownIcons["Code"] = "Code";
17
+ MarkDownIcons["TogglePreview"] = "TogglePreview";
18
+ MarkDownIcons["FullScreen"] = "FullScreen";
19
+ })(MarkDownIcons || (MarkDownIcons = {}));
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFya2Rvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWNvbnRyb2xzL3NyYy9saWIvU2hhcmVkL0VudW1zL01hcmtkb3duLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFlBR1Q7QUFISCxXQUFZLFlBQVk7SUFDcEIsaUNBQWUsQ0FBQTtJQUNmLG1DQUFpQixDQUFBO0FBQ25CLENBQUMsRUFIUyxZQUFZLEtBQVosWUFBWSxRQUdyQjtBQUNELE1BQU0sQ0FBTixJQUFZLGFBWVg7QUFaRCxXQUFZLGFBQWE7SUFDdkIsOEJBQWEsQ0FBQTtJQUNiLGtDQUFpQixDQUFBO0lBQ2pCLG9DQUFtQixDQUFBO0lBQ25CLHdDQUF1QixDQUFBO0lBQ3ZCLDhCQUFhLENBQUE7SUFDYixnQ0FBZSxDQUFBO0lBQ2YsMEJBQVMsQ0FBQTtJQUNULDBCQUFTLENBQUE7SUFDVCw4QkFBYSxDQUFBO0lBQ2IsZ0RBQStCLENBQUE7SUFDL0IsMENBQXlCLENBQUE7QUFDM0IsQ0FBQyxFQVpXLGFBQWEsS0FBYixhQUFhLFFBWXhCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTWFya2Rvd25Nb2RlIHtcclxuICAgIGVkaXRvcj1cImVkaXRvclwiLFxyXG4gICAgcHJldmlldz1cInByZXZpZXdcIlxyXG4gIH1cclxuICBleHBvcnQgZW51bSBNYXJrRG93bkljb25zIHtcclxuICAgIEJvbGQgPSAnQm9sZCcsXHJcbiAgICBJdGFsaWMgPSAnSXRhbGljJyxcclxuICAgIEhlYWRpbmcgPSAnSGVhZGluZycsXHJcbiAgICBSZWZlcmVuY2UgPSAnUmVmZXJlbmNlJyxcclxuICAgIExpbmsgPSAnTGluaycsXHJcbiAgICBJbWFnZSA9ICdJbWFnZScsXHJcbiAgICBVbCA9ICdVbCcsXHJcbiAgICBPbCA9ICdPbCcsXHJcbiAgICBDb2RlID0gJ0NvZGUnLFxyXG4gICAgVG9nZ2xlUHJldmlldyA9ICdUb2dnbGVQcmV2aWV3JyxcclxuICAgIEZ1bGxTY3JlZW4gPSAnRnVsbFNjcmVlbidcclxuICB9XHJcbiAgXHJcbiAgIl19
@@ -0,0 +1,24 @@
1
+ import { ControlOptionsBase } from "./ControlOptionsBase";
2
+ export class MarkdownEditorOptions extends ControlOptionsBase {
3
+ constructor() {
4
+ super(...arguments);
5
+ /**To set value to MarkdownEditor */
6
+ this.value = '';
7
+ //Enable viewing preview panel
8
+ this.showPreviewPanelOnLoad = true;
9
+ /**
10
+ * Array of icons to be hidden from the toolbar.
11
+ *
12
+ * You can populate this array with icon names from the `MarkDownIcons` enum.
13
+ * This allows you to customize the toolbar by hiding specific icons based on your requirements.
14
+ *
15
+ * @example
16
+ * // Hide the Bold and Italic icons
17
+ * hideIcons: [MarkDownIcons.Bold, MarkDownIcons.Italic];
18
+ */
19
+ this.hideIcons = [];
20
+ /** Set Height For MarkdownEditor ,default=400px */
21
+ this.height = '400px';
22
+ }
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFya2Rvd25FZGl0b3JPcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL1NoYXJlZC9Nb2RlbHMvTWFya2Rvd25FZGl0b3JPcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTFELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxrQkFBa0I7SUFBN0Q7O1FBQ0Usc0NBQXNDO1FBQ3RDLFVBQUssR0FBTyxFQUFFLENBQUE7UUFLZCw4QkFBOEI7UUFDOUIsMkJBQXNCLEdBQVUsSUFBSSxDQUFDO1FBQ3JDOzs7Ozs7Ozs7V0FTRztRQUNILGNBQVMsR0FBYyxFQUFFLENBQUM7UUFRMUIsbURBQW1EO1FBQ25ELFdBQU0sR0FBUSxPQUFPLENBQUE7SUFFdkIsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9yY2VEaXJlY3Rpb24gfSBmcm9tIFwiLi4vRW51bXMvRm9yY2VEaXJlY3Rpb25cIjtcclxuaW1wb3J0IHsgQ29udHJvbE9wdGlvbnNCYXNlIH0gZnJvbSBcIi4vQ29udHJvbE9wdGlvbnNCYXNlXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgTWFya2Rvd25FZGl0b3JPcHRpb25zIGV4dGVuZHMgQ29udHJvbE9wdGlvbnNCYXNlIHtcclxuICAvKipUbyBzZXQgIHZhbHVlICB0byBNYXJrZG93bkVkaXRvciAqL1xyXG4gIHZhbHVlPzogYW55PScnXHJcbiAgLy8qKiBTZXQgdGhlIE1heExlbmd0aCBvZiBjaGFyYWN0ZXJzIEluIE1hcmtkb3duRWRpdG9yICovXHJcbiAgbWF4TGVuZ3RoPzogbnVtYmVyXHJcbiAgLyoqU2V0IHRoZSBNaW5MZW5ndGggb2YgY2hhcmFjdGVycyBJbiBNYXJrZG93bkVkaXRvciAgKi9cclxuICBtaW5MZW5ndGg/Om51bWJlclxyXG4gIC8vRW5hYmxlIHZpZXdpbmcgcHJldmlldyBwYW5lbFxyXG4gIHNob3dQcmV2aWV3UGFuZWxPbkxvYWQ/OmJvb2xlYW49dHJ1ZTtcclxuICAvKipcclxuICAgKiBBcnJheSBvZiBpY29ucyB0byBiZSBoaWRkZW4gZnJvbSB0aGUgdG9vbGJhci5cclxuICAgKiBcclxuICAgKiBZb3UgY2FuIHBvcHVsYXRlIHRoaXMgYXJyYXkgd2l0aCBpY29uIG5hbWVzIGZyb20gdGhlIGBNYXJrRG93bkljb25zYCBlbnVtLlxyXG4gICAqIFRoaXMgYWxsb3dzIHlvdSB0byBjdXN0b21pemUgdGhlIHRvb2xiYXIgYnkgaGlkaW5nIHNwZWNpZmljIGljb25zIGJhc2VkIG9uIHlvdXIgcmVxdWlyZW1lbnRzLlxyXG4gICAqIFxyXG4gICAqIEBleGFtcGxlXHJcbiAgICogLy8gSGlkZSB0aGUgQm9sZCBhbmQgSXRhbGljIGljb25zXHJcbiAgICogaGlkZUljb25zOiBbTWFya0Rvd25JY29ucy5Cb2xkLCBNYXJrRG93bkljb25zLkl0YWxpY107XHJcbiAgICovXHJcbiAgaGlkZUljb25zPzogc3RyaW5nW10gPSBbXTtcclxuICAvKipcclxuICAgKiAgQWxsb3dzIHlvdSB0byBzcGVjaWZ5IGEgY3VzdG9tIHJlbmRlcmluZyBmdW5jdGlvbiBmb3IgdGhlIE1hcmtkb3duIGNvbnRlbnQuXHJcbiAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBvdmVycmlkZSBvciBleHRlbmQgdGhlIGRlZmF1bHQgcmVuZGVyaW5nIGJlaGF2aW9yIHdpdGggY3VzdG9tIEhUTUwgb3Igc3R5bGluZy5cclxuICAgKnsgaW1hZ2U6IGZ1bmN0aW9uIChocmVmOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIHRleHQ6IHN0cmluZyl7fSxjb2RlIGZ1bmN0aW9uKGNvZGU6IGFueSwgbGFuZ3VhZ2U6IGFueSl7fSxcclxuICAgKiB0YWJsZTpmdW5jdGlvbiAoaGVhZGVyOiBzdHJpbmcsIGJvZHk6IHN0cmluZyl7fSxsaXN0aXRlbTpmdW5jdGlvbiAodGV4dDogYW55LCB0YXNrOiBib29sZWFuLCBjaGVja2VkOiBib29sZWFuKXt9fVxyXG4gICAqL1xyXG4gIGN1c3RvbVJlbmRlcjphbnk7XHJcbiAgLyoqIFNldCBIZWlnaHQgRm9yIE1hcmtkb3duRWRpdG9yICxkZWZhdWx0PTQwMHB4ICovXHJcbiAgaGVpZ2h0OnN0cmluZz0nNDAwcHgnXHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,235 @@
1
+ import { Component, EventEmitter, Input, Optional, Output } from '@angular/core';
2
+ import { FormControl, Validators } from '@angular/forms';
3
+ import { MarkdownMode } from '../../Shared/Enums/Markdown';
4
+ import { switchMap } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@bnsights/bbsf-utilities";
7
+ import * as i2 from "../../Shared/services/GlobalSettings.service";
8
+ import * as i3 from "../../Shared/services/ControlUtility";
9
+ import * as i4 from "@angular/forms";
10
+ import * as i5 from "ngx-script-loader";
11
+ import * as i6 from "@angular/common";
12
+ import * as i7 from "ngx-intl-tel-input";
13
+ import * as i8 from "ngx-markdown-editor";
14
+ export class MarkdownEditorComponent {
15
+ static { this.controlContainerstatic = null; }
16
+ constructor(utilityService, globalSettings, controlValidationService, controlUtility, markdownEditorControlHost, scriptService, controlContainer) {
17
+ this.utilityService = utilityService;
18
+ this.globalSettings = globalSettings;
19
+ this.controlValidationService = controlValidationService;
20
+ this.controlUtility = controlUtility;
21
+ this.markdownEditorControlHost = markdownEditorControlHost;
22
+ this.scriptService = scriptService;
23
+ this.controlContainer = controlContainer;
24
+ this.OnChange = new EventEmitter();
25
+ this.hideToolbar = false;
26
+ this.validationRules = [];
27
+ this.validationRulesasync = [];
28
+ this.markAllAsTouched = false;
29
+ this.showMarkdown = false;
30
+ this.btnsText = {
31
+ Buttons: {
32
+ Bold: { title: this.utilityService.getResourceValue('Bold') },
33
+ Italic: { title: this.utilityService.getResourceValue('Italic') },
34
+ Heading: { title: this.utilityService.getResourceValue('Heading') },
35
+ Reference: { title: this.utilityService.getResourceValue('Reference') },
36
+ Link: { title: this.utilityService.getResourceValue('Link') },
37
+ Image: { title: this.utilityService.getResourceValue('Image') },
38
+ UnorderedList: { title: this.utilityService.getResourceValue('UnorderedList') },
39
+ OrderedList: { title: this.utilityService.getResourceValue('OrderedList') },
40
+ CodeBlock: { title: this.utilityService.getResourceValue('CodeBlock') },
41
+ ShowPreview: { title: this.utilityService.getResourceValue('ShowPreview') },
42
+ HidePreview: { title: this.utilityService.getResourceValue('HidePreview') },
43
+ Fullscreen: { title: this.utilityService.getResourceValue('Fullscreen') }
44
+ },
45
+ Upload: {
46
+ Drag: this.utilityService.getResourceValue('DragHere'),
47
+ Uploading: this.utilityService.getResourceValue('Uploading')
48
+ }
49
+ };
50
+ this.locales = {
51
+ en: this.btnsText,
52
+ ar: this.btnsText
53
+ };
54
+ this.resetError = () => {
55
+ this.controlValidationService.removeGlobalError();
56
+ };
57
+ //External Method
58
+ this.removeRequiredValidation = () => {
59
+ this.controlUtility.removeRequiredValidation(this.markdownEditorFormControl, this.validationRules, this.options);
60
+ };
61
+ //External Method
62
+ this.addRequiredValidation = () => {
63
+ this.controlUtility.addRequiredValidation(this.markdownEditorFormControl, this.validationRules, this.options);
64
+ };
65
+ //External Method
66
+ this.removeCustomValidation = (customValidation) => {
67
+ this.controlUtility.removeCustomValidation(this.markdownEditorFormControl, this.validationRules, customValidation);
68
+ };
69
+ //External Method
70
+ this.addCustomValidation = (customValidation) => {
71
+ this.controlUtility.addCustomValidation(this.markdownEditorFormControl, this.validationRules, customValidation);
72
+ };
73
+ //External Method
74
+ this.isValid = () => {
75
+ this.controlUtility.isValid(this.markdownEditorFormControl);
76
+ };
77
+ MarkdownEditorComponent.controlContainerstatic = this.controlContainer;
78
+ this.currentLocale = this.utilityService.getCurrentLanguage();
79
+ }
80
+ loadAllScripts() {
81
+ return this.scriptService.loadScript('assets/ace-builds/ace.js').pipe(switchMap(() => this.scriptService.loadScript('assets/ace-builds/mode-markdown.js')), switchMap(() => this.scriptService.loadScript('assets/ngx-markdown-editor/marked.min.js')), switchMap(() => this.scriptService.loadScript('assets/ngx-markdown-editor/highlight.js/highlight.min.js')));
82
+ }
83
+ ngOnInit() {
84
+ this.loadAllScripts()
85
+ .subscribe({
86
+ next: () => this.showMarkdown = true,
87
+ error: (err) => console.error('Error loading scripts', err)
88
+ });
89
+ this.mode = this.options.isReadonly ? MarkdownMode.preview : MarkdownMode.editor;
90
+ this.editorOptions = {
91
+ hideIcons: this.options.hideIcons,
92
+ showPreviewPanel: this.options.showPreviewPanelOnLoad,
93
+ resizable: false,
94
+ enablePreviewContentClick: this.options.isReadonly,
95
+ markedjsOpt: {
96
+ breaks: true,
97
+ sanitize: true,
98
+ smartypants: true,
99
+ xhtml: true,
100
+ },
101
+ customRender: this.options.customRender,
102
+ placeholder: this.options.placeholder,
103
+ locales: this.locales,
104
+ customIcons: {
105
+ CodeBlock: {
106
+ fontClass: 'fa fa-file-code'
107
+ }
108
+ }
109
+ };
110
+ this.controlValidationService.isCreatedBefor = false;
111
+ this.group.addControl(this.options.name, new FormControl(''));
112
+ this.markdownEditorFormControl = this.group.controls[this.options.name]; // new FormControl('',validationRules);
113
+ this.markdownEditorFormControl.setValue(this.options.value);
114
+ if (!this.options.viewType)
115
+ this.options.viewType = this.globalSettings.viewType;
116
+ if (this.options.customValidation.length > 0) {
117
+ let validations = this.options.customValidation;
118
+ for (let index = 0; index < validations.length; index++) {
119
+ const Validation = validations[index];
120
+ this.validationRules.push(Validation.functionBody);
121
+ }
122
+ }
123
+ if (this.options.labelKey != null && this.options.labelKey != "")
124
+ this.options.labelValue = this.utilityService.getResourceValue(this.options.labelKey);
125
+ if (this.options.minLength > 0) {
126
+ this.validationRules.push(Validators.minLength(this.options.minLength));
127
+ }
128
+ if (this.options.maxLength > 0) {
129
+ this.validationRules.push(Validators.maxLength(this.options.maxLength));
130
+ }
131
+ if (this.options.isRequired) {
132
+ this.validationRules.push(Validators.required);
133
+ }
134
+ this.markdownEditorFormControl.setValidators(this.validationRules);
135
+ this.markdownEditorFormControl.setAsyncValidators(this.validationRulesasync);
136
+ if (this.options.isDisabled) {
137
+ this.markdownEditorFormControl.disable();
138
+ }
139
+ this.markdownEditorControlHost.ngSubmit.subscribe((value) => {
140
+ this.group.markAllAsTouched();
141
+ this.markAllAsTouched = true;
142
+ });
143
+ }
144
+ uploadImg(evt) {
145
+ if (!evt)
146
+ return;
147
+ const file = evt.target.files[0];
148
+ const reader = new FileReader();
149
+ reader.addEventListener('load', () => {
150
+ this.options.value += `![](${reader.result})`;
151
+ }, false);
152
+ if (file)
153
+ reader.readAsDataURL(file);
154
+ }
155
+ onPreviewDomChanged(dom) {
156
+ this.OnChange.emit(dom);
157
+ }
158
+ showGlobalError() {
159
+ this.controlUtility.showGlobalError();
160
+ }
161
+ getErrorValidation(ErrorList) {
162
+ if (this.markAllAsTouched && this.group.invalid) {
163
+ this.showGlobalError();
164
+ this.markAllAsTouched = false;
165
+ }
166
+ return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);
167
+ }
168
+ //Fires on markdown editor has been loaded
169
+ onEditorLoaded(editor) {
170
+ if (this.options.isDisabled) {
171
+ const textarea = editor.renderer.textarea;
172
+ if (textarea && this.options.isDisabled) {
173
+ textarea.setAttribute('disabled', 'true');
174
+ }
175
+ this.hideToolbar = true;
176
+ }
177
+ }
178
+ //The doUpload method handles file uploads when users add images or other files to the editor.
179
+ //This method should be implemented to manage file uploads to a server or cloud storage and return the result to the editor.
180
+ //fires on drag and drop or copy paste
181
+ //if not set will can't add files or images using this way
182
+ onDragFile(files) {
183
+ const results = [];
184
+ // Function to handle a single file
185
+ const processFile = (file) => {
186
+ return new Promise((resolve, reject) => {
187
+ const reader = new FileReader();
188
+ reader.onload = () => {
189
+ const fileUrl = reader.result;
190
+ const result = {
191
+ name: file.name,
192
+ url: fileUrl,
193
+ isImg: file.type.startsWith('image/')
194
+ };
195
+ resolve(result);
196
+ };
197
+ reader.onerror = (error) => {
198
+ reject(error);
199
+ };
200
+ // Read the file as a data URL
201
+ reader.readAsDataURL(file);
202
+ });
203
+ };
204
+ // // Iterate over files and process each one
205
+ const processAllFiles = async () => {
206
+ for (const file of files) {
207
+ try {
208
+ const result = await processFile(file);
209
+ results.push(result);
210
+ }
211
+ catch (error) {
212
+ console.error('Error processing file:', error);
213
+ }
214
+ }
215
+ return results;
216
+ };
217
+ //Return the promise that resolves when all files are processed
218
+ return processAllFiles();
219
+ }
220
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: MarkdownEditorComponent, deps: [{ token: i1.UtilityService }, { token: i2.GlobalSettings }, { token: i1.ControlValidationService }, { token: i3.ControlUtility }, { token: i4.FormGroupDirective }, { token: i5.ScriptService }, { token: i4.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
221
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: MarkdownEditorComponent, selector: "BBSF-MarkdownEditor", inputs: { group: "group", options: "options" }, outputs: { OnChange: "OnChange" }, ngImport: i0, template: "<ng-container *ngIf=\"showMarkdown\">\r\n <div class=\"form-group bbsf-control bbsf-htmleditor\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.viewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.hideLabel\" class=\"bbsf-label {{options.labelExtraClasses}}\">\r\n {{options.labelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.showAsterisk&&options.isRequired)||(options.isRequired))&&!options.isReadonly\"\r\n class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container {{options.extraClasses}}\">\r\n <md-editor id=\"{{options.name}}\" formControlName=\"{{options.name}}\"\r\n (onPreviewDomChanged)=\"onPreviewDomChanged($event)\"\r\n [(ngModel)]=\"options.value\" [mode]=\"mode\" [options]=\"editorOptions\" [attr.required]=\"options.isRequired ? true : null\" [upload]=\"onDragFile\" \r\n [maxlength]=\"options.maxLength\" [height]=\"options.height\" [locale]=\"currentLocale\" (onEditorLoaded)=\"onEditorLoaded($event)\" [hideToolbar]=\"hideToolbar\">\r\n <!-- [ngStyle]=\"{ 'direction': textDirection, 'text-align': textDirection === 'rtl' ? 'right' : 'left' }\" -->\r\n <div custom-btns>\r\n <input #imgInput type=\"file\" style=\"display: none\" (change)=\"uploadImg($event)\" />\r\n <button type=\"button\" class=\"btn btn-sm btn-default\" (click)=\"imgInput.click()\">\r\n {{utilityService.getResourceValue(\"UploadImg\")}}\r\n </button>\r\n </div>\r\n </md-editor>\r\n </div>\r\n\r\n <div class=\"subtext-container\">\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.labelDescription!=null\">{{options.labelDescription}}</div>\r\n <div class=\"bbsf-validation\" *ngIf=\"(markdownEditorFormControl.invalid && markdownEditorFormControl.touched)\">\r\n {{getErrorValidation(markdownEditorFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">\r\n {{resetError()}}</div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NativeElementInjectorDirective, selector: "[ngModel], [formControl], [formControlName]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i8.MarkdownEditorComponent, selector: "md-editor", inputs: ["hideToolbar", "height", "preRender", "postRender", "upload", "locale", "maxlength", "mode", "options"], outputs: ["onEditorLoaded", "onPreviewDomChanged"] }, { kind: "pipe", type: i6.KeyValuePipe, name: "keyvalue" }] }); }
222
+ }
223
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: MarkdownEditorComponent, decorators: [{
224
+ type: Component,
225
+ args: [{ selector: 'BBSF-MarkdownEditor', template: "<ng-container *ngIf=\"showMarkdown\">\r\n <div class=\"form-group bbsf-control bbsf-htmleditor\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.viewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.hideLabel\" class=\"bbsf-label {{options.labelExtraClasses}}\">\r\n {{options.labelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.showAsterisk&&options.isRequired)||(options.isRequired))&&!options.isReadonly\"\r\n class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container {{options.extraClasses}}\">\r\n <md-editor id=\"{{options.name}}\" formControlName=\"{{options.name}}\"\r\n (onPreviewDomChanged)=\"onPreviewDomChanged($event)\"\r\n [(ngModel)]=\"options.value\" [mode]=\"mode\" [options]=\"editorOptions\" [attr.required]=\"options.isRequired ? true : null\" [upload]=\"onDragFile\" \r\n [maxlength]=\"options.maxLength\" [height]=\"options.height\" [locale]=\"currentLocale\" (onEditorLoaded)=\"onEditorLoaded($event)\" [hideToolbar]=\"hideToolbar\">\r\n <!-- [ngStyle]=\"{ 'direction': textDirection, 'text-align': textDirection === 'rtl' ? 'right' : 'left' }\" -->\r\n <div custom-btns>\r\n <input #imgInput type=\"file\" style=\"display: none\" (change)=\"uploadImg($event)\" />\r\n <button type=\"button\" class=\"btn btn-sm btn-default\" (click)=\"imgInput.click()\">\r\n {{utilityService.getResourceValue(\"UploadImg\")}}\r\n </button>\r\n </div>\r\n </md-editor>\r\n </div>\r\n\r\n <div class=\"subtext-container\">\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.labelDescription!=null\">{{options.labelDescription}}</div>\r\n <div class=\"bbsf-validation\" *ngIf=\"(markdownEditorFormControl.invalid && markdownEditorFormControl.touched)\">\r\n {{getErrorValidation(markdownEditorFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">\r\n {{resetError()}}</div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n" }]
226
+ }], ctorParameters: () => [{ type: i1.UtilityService }, { type: i2.GlobalSettings }, { type: i1.ControlValidationService }, { type: i3.ControlUtility }, { type: i4.FormGroupDirective }, { type: i5.ScriptService }, { type: i4.ControlContainer, decorators: [{
227
+ type: Optional
228
+ }] }], propDecorators: { group: [{
229
+ type: Input
230
+ }], options: [{
231
+ type: Input
232
+ }], OnChange: [{
233
+ type: Output
234
+ }] } });
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9NYXJrZG93bkVkaXRvci9tYXJrZG93bi1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL2NvbnRyb2xzL01hcmtkb3duRWRpdG9yL21hcmtkb3duLWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQXFDLFdBQVcsRUFBaUMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLM0gsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBSTNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7QUFNakMsTUFBTSxPQUFPLHVCQUF1QjthQUkzQiwyQkFBc0IsR0FBRyxJQUFJLEFBQVAsQ0FBUTtJQWtDckMsWUFBbUIsY0FBNkIsRUFBUyxjQUE4QixFQUM3RSx3QkFBa0QsRUFBUyxjQUE4QixFQUMxRix5QkFBNkMsRUFBUyxhQUE0QixFQUNyRSxnQkFBa0M7UUFIckMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFBUyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDN0UsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUFTLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUMxRiw4QkFBeUIsR0FBekIseUJBQXlCLENBQW9CO1FBQVMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDckUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXRDOUMsYUFB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QztpQkFDdEI7Z0JBQUMsT0FBTyxLQUFLLEVBQUU7b0JBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDaEQ7YUFDRjtZQUNELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUMsQ0FBQztRQUVGLCtEQUErRDtRQUMvRCxPQUFPLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBNU9VLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDhJQ2hCcEMsNnNFQW9DQTs7MkZEcEJhLHVCQUF1QjtrQkFKbkMsU0FBUzsrQkFDRSxxQkFBcUI7OzBCQTRDNUIsUUFBUTt5Q0F4Q0YsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xDb250YWluZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1Hcm91cERpcmVjdGl2ZSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWRFZGl0b3JPcHRpb24gfSBmcm9tIFwibmd4LW1hcmtkb3duLWVkaXRvclwiO1xyXG5pbXBvcnQgeyBNYXJrZG93bkVkaXRvck9wdGlvbnMgfSBmcm9tICcuLi8uLi9TaGFyZWQvTW9kZWxzL01hcmtkb3duRWRpdG9yT3B0aW9ucyc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWxpZGF0aW9uU2VydmljZSwgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBNZEVkaXRvckxvY2FsZU9wdGlvbnMgfSBmcm9tICduZ3gtbWFya2Rvd24tZWRpdG9yL2xpYi9tZC1lZGl0b3IudHlwZXMnO1xyXG5pbXBvcnQgeyBNYXJrZG93bk1vZGUgfSBmcm9tICcuLi8uLi9TaGFyZWQvRW51bXMvTWFya2Rvd24nO1xyXG5pbXBvcnQgeyBHbG9iYWxTZXR0aW5ncyB9IGZyb20gJy4uLy4uL1NoYXJlZC9zZXJ2aWNlcy9HbG9iYWxTZXR0aW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29udHJvbFV0aWxpdHkgfSBmcm9tICcuLi8uLi9TaGFyZWQvc2VydmljZXMvQ29udHJvbFV0aWxpdHknO1xyXG5pbXBvcnQgeyBTY3JpcHRTZXJ2aWNlIH0gZnJvbSAnbmd4LXNjcmlwdC1sb2FkZXInO1xyXG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnQkJTRi1NYXJrZG93bkVkaXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21hcmtkb3duLWVkaXRvci5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE1hcmtkb3duRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBncm91cDogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIG9wdGlvbnM6IE1hcmtkb3duRWRpdG9yT3B0aW9ucztcclxuICBAT3V0cHV0KCkgT25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgc3RhdGljIGNvbnRyb2xDb250YWluZXJzdGF0aWMgPSBudWxsO1xyXG4gIG1hcmtkb3duRWRpdG9yRm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcclxuICBlZGl0b3JPcHRpb25zOiBNZEVkaXRvck9wdGlvbjtcclxuICBtb2RlOiBzdHJpbmc7XHJcbiAgaGlkZVRvb2xiYXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjdXJyZW50TG9jYWxlOiBzdHJpbmc7XHJcbiAgdmFsaWRhdGlvblJ1bGVzID0gW107XHJcbiAgdmFsaWRhdGlvblJ1bGVzYXN5bmMgPSBbXTtcclxuICBtYXJrQWxsQXNUb3VjaGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd01hcmtkb3duOmJvb2xlYW49ZmFsc2U7XHJcbiAgYnRuc1RleHQgPSB7XHJcbiAgICBCdXR0b25zOiB7XHJcbiAgICAgIEJvbGQ6IHsgdGl0bGU6IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnQm9sZCcpIH0sXHJcbiAgICAgIEl0YWxpYzogeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdJdGFsaWMnKSB9LFxyXG4gICAgICBIZWFkaW5nOiB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ0hlYWRpbmcnKSB9LFxyXG4gICAgICBSZWZlcmVuY2U6IHsgdGl0bGU6IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnUmVmZXJlbmNlJykgfSxcclxuICAgICAgTGluazogeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdMaW5rJykgfSxcclxuICAgICAgSW1hZ2U6IHsgdGl0bGU6IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnSW1hZ2UnKSB9LFxyXG4gICAgICBVbm9yZGVyZWRMaXN0OiB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ1Vub3JkZXJlZExpc3QnKSB9LFxyXG4gICAgICBPcmRlcmVkTGlzdDogeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdPcmRlcmVkTGlzdCcpIH0sXHJcbiAgICAgIENvZGVCbG9jazogeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdDb2RlQmxvY2snKSB9LFxyXG4gICAgICBTaG93UHJldmlldzogeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdTaG93UHJldmlldycpIH0sXHJcbiAgICAgIEhpZGVQcmV2aWV3OiB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ0hpZGVQcmV2aWV3JykgfSxcclxuICAgICAgRnVsbHNjcmVlbjogeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdGdWxsc2NyZWVuJykgfVxyXG4gICAgfSxcclxuICAgIFVwbG9hZDoge1xyXG4gICAgICBEcmFnOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ0RyYWdIZXJlJyksXHJcbiAgICAgIFVwbG9hZGluZzogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdVcGxvYWRpbmcnKVxyXG4gICAgfVxyXG4gIH1cclxuICBsb2NhbGVzOiBNZEVkaXRvckxvY2FsZU9wdGlvbnMgPSB7XHJcbiAgICBlbjogdGhpcy5idG5zVGV4dCxcclxuICAgIGFyOiB0aGlzLmJ0bnNUZXh0XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1dGlsaXR5U2VydmljZTpVdGlsaXR5U2VydmljZSxwcml2YXRlIGdsb2JhbFNldHRpbmdzOiBHbG9iYWxTZXR0aW5ncyxcclxuICAgIHByaXZhdGUgY29udHJvbFZhbGlkYXRpb25TZXJ2aWNlOiBDb250cm9sVmFsaWRhdGlvblNlcnZpY2UscHJpdmF0ZSBjb250cm9sVXRpbGl0eTogQ29udHJvbFV0aWxpdHksXHJcbiAgICBwdWJsaWMgbWFya2Rvd25FZGl0b3JDb250cm9sSG9zdDogRm9ybUdyb3VwRGlyZWN0aXZlLHByaXZhdGUgc2NyaXB0U2VydmljZTogU2NyaXB0U2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcil7XHJcbiAgICBNYXJrZG93bkVkaXRvckNvbXBvbmVudC5jb250cm9sQ29udGFpbmVyc3RhdGljID0gdGhpcy5jb250cm9sQ29udGFpbmVyO1xyXG4gICAgdGhpcy5jdXJyZW50TG9jYWxlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRDdXJyZW50TGFuZ3VhZ2UoKTtcclxuICAgIH1cclxuICAgXHJcbiAgICBwcml2YXRlIGxvYWRBbGxTY3JpcHRzKCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zY3JpcHRTZXJ2aWNlLmxvYWRTY3JpcHQoJ2Fzc2V0cy9hY2UtYnVpbGRzL2FjZS5qcycpLnBpcGUoXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuc2NyaXB0U2VydmljZS5sb2FkU2NyaXB0KCdhc3NldHMvYWNlLWJ1aWxkcy9tb2RlLW1hcmtkb3duLmpzJykpLFxyXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnNjcmlwdFNlcnZpY2UubG9hZFNjcmlwdCgnYXNzZXRzL25neC1tYXJrZG93bi1lZGl0b3IvbWFya2VkLm1pbi5qcycpKSxcclxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5zY3JpcHRTZXJ2aWNlLmxvYWRTY3JpcHQoJ2Fzc2V0cy9uZ3gtbWFya2Rvd24tZWRpdG9yL2hpZ2hsaWdodC5qcy9oaWdobGlnaHQubWluLmpzJykpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRBbGxTY3JpcHRzKClcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6ICgpID0+IHRoaXMuc2hvd01hcmtkb3duID0gdHJ1ZSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxvYWRpbmcgc2NyaXB0cycsIGVycilcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubW9kZT10aGlzLm9wdGlvbnMuaXNSZWFkb25seT9NYXJrZG93bk1vZGUucHJldmlldzogTWFya2Rvd25Nb2RlLmVkaXRvcjtcclxuICAgIHRoaXMuZWRpdG9yT3B0aW9ucyA9IHtcclxuICAgICAgaGlkZUljb25zOiB0aGlzLm9wdGlvbnMuaGlkZUljb25zLFxyXG4gICAgICBzaG93UHJldmlld1BhbmVsOiB0aGlzLm9wdGlvbnMuc2hvd1ByZXZpZXdQYW5lbE9uTG9hZCxcclxuICAgICAgcmVzaXphYmxlOiBmYWxzZSxcclxuICAgICAgZW5hYmxlUHJldmlld0NvbnRlbnRDbGljazogdGhpcy5vcHRpb25zLmlzUmVhZG9ubHksLy8gQWxsb3cgdXNlciBmaXJlIHRoZSBjbGljayBldmVudCBvbiB0aGUgcHJldmlldyBwYW5lbCwgbGlrZSBocmVmIGV0Yy5cclxuICAgICAgbWFya2VkanNPcHQ6IHtcclxuICAgICAgICBicmVha3M6IHRydWUsXHJcbiAgICAgICAgc2FuaXRpemU6IHRydWUsXHJcbiAgICAgICAgc21hcnR5cGFudHM6IHRydWUsXHJcbiAgICAgICAgeGh0bWw6IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIGN1c3RvbVJlbmRlcjogdGhpcy5vcHRpb25zLmN1c3RvbVJlbmRlcixcclxuICAgICAgcGxhY2Vob2xkZXI6IHRoaXMub3B0aW9ucy5wbGFjZWhvbGRlcixcclxuICAgICAgbG9jYWxlczogdGhpcy5sb2NhbGVzLFxyXG4gICAgICBjdXN0b21JY29uczoge1xyXG4gICAgICAgIENvZGVCbG9jazoge1xyXG4gICAgICAgICAgZm9udENsYXNzOiAnZmEgZmEtZmlsZS1jb2RlJ1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5jb250cm9sVmFsaWRhdGlvblNlcnZpY2UuaXNDcmVhdGVkQmVmb3IgPSBmYWxzZVxyXG5cclxuICAgIHRoaXMuZ3JvdXAuYWRkQ29udHJvbCh0aGlzLm9wdGlvbnMubmFtZSwgbmV3IEZvcm1Db250cm9sKCcnKSk7XHJcbiAgICB0aGlzLm1hcmtkb3duRWRpdG9yRm9ybUNvbnRyb2wgPSB0aGlzLmdyb3VwLmNvbnRyb2xzW3RoaXMub3B0aW9ucy5uYW1lXTsgLy8gIG5ldyBGb3JtQ29udHJvbCgnJyx2YWxpZGF0aW9uUnVsZXMpO1xyXG4gICAgdGhpcy5tYXJrZG93bkVkaXRvckZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMub3B0aW9ucy52YWx1ZSk7XHJcblxyXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMudmlld1R5cGUpXHJcbiAgICAgIHRoaXMub3B0aW9ucy52aWV3VHlwZSA9IHRoaXMuZ2xvYmFsU2V0dGluZ3Mudmlld1R5cGU7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5jdXN0b21WYWxpZGF0aW9uLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IHZhbGlkYXRpb25zID0gdGhpcy5vcHRpb25zLmN1c3RvbVZhbGlkYXRpb25cclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHZhbGlkYXRpb25zLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGNvbnN0IFZhbGlkYXRpb24gPSB2YWxpZGF0aW9uc1tpbmRleF07XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0aW9uLmZ1bmN0aW9uQm9keSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5sYWJlbEtleSAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5sYWJlbEtleSAhPSBcIlwiKVxyXG4gICAgICB0aGlzLm9wdGlvbnMubGFiZWxWYWx1ZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSh0aGlzLm9wdGlvbnMubGFiZWxLZXkpO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMubWluTGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25SdWxlcy5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKHRoaXMub3B0aW9ucy5taW5MZW5ndGgpKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9wdGlvbnMubWF4TGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25SdWxlcy5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMub3B0aW9ucy5tYXhMZW5ndGgpKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuaXNSZXF1aXJlZCkge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25SdWxlcy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5tYXJrZG93bkVkaXRvckZvcm1Db250cm9sLnNldFZhbGlkYXRvcnModGhpcy52YWxpZGF0aW9uUnVsZXMpO1xyXG4gICAgdGhpcy5tYXJrZG93bkVkaXRvckZvcm1Db250cm9sLnNldEFzeW5jVmFsaWRhdG9ycyh0aGlzLnZhbGlkYXRpb25SdWxlc2FzeW5jKTtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuaXNEaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLm1hcmtkb3duRWRpdG9yRm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubWFya2Rvd25FZGl0b3JDb250cm9sSG9zdC5uZ1N1Ym1pdC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgIHRoaXMuZ3JvdXAubWFya0FsbEFzVG91Y2hlZCgpXHJcbiAgICAgIHRoaXMubWFya0FsbEFzVG91Y2hlZCA9IHRydWVcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICB1cGxvYWRJbWcoZXZ0OiBhbnkpIHtcclxuICAgIGlmICghZXZ0KSByZXR1cm47XHJcbiAgICBjb25zdCBmaWxlID0gZXZ0LnRhcmdldC5maWxlc1swXTtcclxuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICByZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcihcclxuICAgICAgJ2xvYWQnLFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zLnZhbHVlICs9IGAhW10oJHtyZWFkZXIucmVzdWx0fSlgO1xyXG4gICAgICB9LFxyXG4gICAgICBmYWxzZVxyXG4gICAgKTtcclxuICAgIGlmIChmaWxlKSByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuICB9XHJcbiAgb25QcmV2aWV3RG9tQ2hhbmdlZChkb206IGFueSkge1xyXG4gICAgdGhpcy5PbkNoYW5nZS5lbWl0KGRvbSlcclxuICB9XHJcbiAgcmVzZXRFcnJvciA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLnJlbW92ZUdsb2JhbEVycm9yKCk7XHJcbiAgfVxyXG4gIHNob3dHbG9iYWxFcnJvcigpIHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuc2hvd0dsb2JhbEVycm9yKClcclxuICB9XHJcbiAgZ2V0RXJyb3JWYWxpZGF0aW9uKEVycm9yTGlzdCkge1xyXG4gICAgaWYgKHRoaXMubWFya0FsbEFzVG91Y2hlZCAmJiB0aGlzLmdyb3VwLmludmFsaWQpIHtcclxuICAgICAgdGhpcy5zaG93R2xvYmFsRXJyb3IoKVxyXG4gICAgICB0aGlzLm1hcmtBbGxBc1RvdWNoZWQgPSBmYWxzZVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2xVdGlsaXR5LmdldEVycm9yVmFsaWRhdGlvbk1hc3NhZ2UoRXJyb3JMaXN0LCB0aGlzLmdyb3VwLCB0aGlzLm9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuXHJcbiAgcmVtb3ZlUmVxdWlyZWRWYWxpZGF0aW9uID0gKCkgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5yZW1vdmVSZXF1aXJlZFZhbGlkYXRpb24odGhpcy5tYXJrZG93bkVkaXRvckZvcm1Db250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgdGhpcy5vcHRpb25zKVxyXG4gIH1cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG5cclxuICBhZGRSZXF1aXJlZFZhbGlkYXRpb24gPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LmFkZFJlcXVpcmVkVmFsaWRhdGlvbih0aGlzLm1hcmtkb3duRWRpdG9yRm9ybUNvbnRyb2wsIHRoaXMudmFsaWRhdGlvblJ1bGVzLCB0aGlzLm9wdGlvbnMpXHJcbiAgfVxyXG5cclxuXHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICByZW1vdmVDdXN0b21WYWxpZGF0aW9uID0gKGN1c3RvbVZhbGlkYXRpb24pID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkucmVtb3ZlQ3VzdG9tVmFsaWRhdGlvbih0aGlzLm1hcmtkb3duRWRpdG9yRm9ybUNvbnRyb2wsIHRoaXMudmFsaWRhdGlvblJ1bGVzLCBjdXN0b21WYWxpZGF0aW9uKVxyXG4gIH1cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIGFkZEN1c3RvbVZhbGlkYXRpb24gPSAoY3VzdG9tVmFsaWRhdGlvbikgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5hZGRDdXN0b21WYWxpZGF0aW9uKHRoaXMubWFya2Rvd25FZGl0b3JGb3JtQ29udHJvbCwgdGhpcy52YWxpZGF0aW9uUnVsZXMsIGN1c3RvbVZhbGlkYXRpb24pXHJcbiAgfVxyXG5cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIGlzVmFsaWQgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LmlzVmFsaWQodGhpcy5tYXJrZG93bkVkaXRvckZvcm1Db250cm9sKVxyXG4gIH1cclxuICAvL0ZpcmVzIG9uIG1hcmtkb3duIGVkaXRvciBoYXMgYmVlbiBsb2FkZWRcclxuICBvbkVkaXRvckxvYWRlZChlZGl0b3I6IGFueSkge1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5pc0Rpc2FibGVkKSB7XHJcbiAgICAgIGNvbnN0IHRleHRhcmVhID0gZWRpdG9yLnJlbmRlcmVyLnRleHRhcmVhO1xyXG4gICAgICBpZiAodGV4dGFyZWEgJiYgdGhpcy5vcHRpb25zLmlzRGlzYWJsZWQpIHtcclxuICAgICAgICB0ZXh0YXJlYS5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgJ3RydWUnKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmhpZGVUb29sYmFyID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vVGhlIGRvVXBsb2FkIG1ldGhvZCBoYW5kbGVzIGZpbGUgdXBsb2FkcyB3aGVuIHVzZXJzIGFkZCBpbWFnZXMgb3Igb3RoZXIgZmlsZXMgdG8gdGhlIGVkaXRvci5cclxuICAvL1RoaXMgbWV0aG9kIHNob3VsZCBiZSBpbXBsZW1lbnRlZCB0byBtYW5hZ2UgZmlsZSB1cGxvYWRzIHRvIGEgc2VydmVyIG9yIGNsb3VkIHN0b3JhZ2UgYW5kIHJldHVybiB0aGUgcmVzdWx0IHRvIHRoZSBlZGl0b3IuXHJcbiAgLy9maXJlcyBvbiBkcmFnIGFuZCBkcm9wIG9yIGNvcHkgcGFzdGVcclxuICAvL2lmIG5vdCBzZXQgd2lsbCBjYW4ndCBhZGQgZmlsZXMgb3IgaW1hZ2VzIHVzaW5nIHRoaXMgd2F5XHJcbiAgb25EcmFnRmlsZShmaWxlczogQXJyYXk8RmlsZT4pOiBQcm9taXNlPEFycmF5PGFueT4+IHtcclxuICAgIGNvbnN0IHJlc3VsdHM6IEFycmF5PGFueT4gPSBbXTtcclxuXHJcbiAgICAvLyBGdW5jdGlvbiB0byBoYW5kbGUgYSBzaW5nbGUgZmlsZVxyXG4gICAgY29uc3QgcHJvY2Vzc0ZpbGUgPSAoZmlsZTogRmlsZSkgPT4ge1xyXG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuXHJcbiAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGZpbGVVcmwgPSByZWFkZXIucmVzdWx0IGFzIHN0cmluZztcclxuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcclxuICAgICAgICAgICAgbmFtZTogZmlsZS5uYW1lLFxyXG4gICAgICAgICAgICB1cmw6IGZpbGVVcmwsXHJcbiAgICAgICAgICAgIGlzSW1nOiBmaWxlLnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UvJylcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHJlamVjdChlcnJvcik7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgLy8gUmVhZCB0aGUgZmlsZSBhcyBhIGRhdGEgVVJMXHJcbiAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICAvLyAgLy8gSXRlcmF0ZSBvdmVyIGZpbGVzIGFuZCBwcm9jZXNzIGVhY2ggb25lXHJcbiAgICBjb25zdCBwcm9jZXNzQWxsRmlsZXMgPSBhc3luYyAoKSA9PiB7XHJcbiAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwcm9jZXNzRmlsZShmaWxlKTtcclxuICAgICAgICAgIHJlc3VsdHMucHVzaChyZXN1bHQpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwcm9jZXNzaW5nIGZpbGU6JywgZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gcmVzdWx0cztcclxuICAgIH07XHJcblxyXG4gICAgLy9SZXR1cm4gdGhlIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGFsbCBmaWxlcyBhcmUgcHJvY2Vzc2VkXHJcbiAgICByZXR1cm4gcHJvY2Vzc0FsbEZpbGVzKCk7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dNYXJrZG93blwiPlxyXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGJic2YtY29udHJvbCBiYnNmLWh0bWxlZGl0b3JcIiBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cIihvcHRpb25zLnZpZXdUeXBlPT0xKT8nYmJzZi12ZXJ0aWNhbCc6J2Jic2YtaG9yaXpvbnRhbCdcIj5cclxuICAgICAgPCEtLWxhYmVsLS0+XHJcbiAgICAgIDxsYWJlbCAqbmdJZj1cIiFvcHRpb25zLmhpZGVMYWJlbFwiIGNsYXNzPVwiYmJzZi1sYWJlbCB7e29wdGlvbnMubGFiZWxFeHRyYUNsYXNzZXN9fVwiPlxyXG4gICAgICAgIHt7b3B0aW9ucy5sYWJlbFZhbHVlfX1cclxuICAgICAgICA8IS0tQXN0ZXJpc2stLT5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cIigob3B0aW9ucy5zaG93QXN0ZXJpc2smJm9wdGlvbnMuaXNSZXF1aXJlZCl8fChvcHRpb25zLmlzUmVxdWlyZWQpKSYmIW9wdGlvbnMuaXNSZWFkb25seVwiXHJcbiAgICAgICAgICBjbGFzcz1cInRleHQtZGFuZ2VyXCI+Kjwvc3Bhbj5cclxuICAgICAgPC9sYWJlbD5cclxuICAgICAgPGRpdiAgY2xhc3M9XCJiYnNmLWlucHV0LWNvbnRhaW5lciB7e29wdGlvbnMuZXh0cmFDbGFzc2VzfX1cIj5cclxuICAgICAgICAgIDxtZC1lZGl0b3IgICBpZD1cInt7b3B0aW9ucy5uYW1lfX1cIiBmb3JtQ29udHJvbE5hbWU9XCJ7e29wdGlvbnMubmFtZX19XCJcclxuICAgICAgICAgKG9uUHJldmlld0RvbUNoYW5nZWQpPVwib25QcmV2aWV3RG9tQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICAgWyhuZ01vZGVsKV09XCJvcHRpb25zLnZhbHVlXCIgW21vZGVdPVwibW9kZVwiIFtvcHRpb25zXT1cImVkaXRvck9wdGlvbnNcIiAgW2F0dHIucmVxdWlyZWRdPVwib3B0aW9ucy5pc1JlcXVpcmVkID8gdHJ1ZSA6IG51bGxcIiBbdXBsb2FkXT1cIm9uRHJhZ0ZpbGVcIiBcclxuICAgICAgICAgIFttYXhsZW5ndGhdPVwib3B0aW9ucy5tYXhMZW5ndGhcIiBbaGVpZ2h0XT1cIm9wdGlvbnMuaGVpZ2h0XCIgIFtsb2NhbGVdPVwiY3VycmVudExvY2FsZVwiICAob25FZGl0b3JMb2FkZWQpPVwib25FZGl0b3JMb2FkZWQoJGV2ZW50KVwiIFtoaWRlVG9vbGJhcl09XCJoaWRlVG9vbGJhclwiPlxyXG4gICAgICAgICAgIDwhLS0gW25nU3R5bGVdPVwieyAnZGlyZWN0aW9uJzogdGV4dERpcmVjdGlvbiwgJ3RleHQtYWxpZ24nOiB0ZXh0RGlyZWN0aW9uID09PSAncnRsJyA/ICdyaWdodCcgOiAnbGVmdCcgfVwiIC0tPlxyXG4gICAgICAgICAgIDxkaXYgY3VzdG9tLWJ0bnM+XHJcbiAgICAgICAgICAgIDxpbnB1dCAjaW1nSW5wdXQgdHlwZT1cImZpbGVcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiAoY2hhbmdlKT1cInVwbG9hZEltZygkZXZlbnQpXCIgLz5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1kZWZhdWx0XCIgKGNsaWNrKT1cImltZ0lucHV0LmNsaWNrKClcIj5cclxuICAgICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJVcGxvYWRJbWdcIil9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbWQtZWRpdG9yPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdWJ0ZXh0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJiYnNmLWNvbnRyb2wtZGVzY1wiICpuZ0lmPVwib3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIT1udWxsXCI+e3tvcHRpb25zLmxhYmVsRGVzY3JpcHRpb259fTwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJiYnNmLXZhbGlkYXRpb25cIiAqbmdJZj1cIihtYXJrZG93bkVkaXRvckZvcm1Db250cm9sLmludmFsaWQgJiYgbWFya2Rvd25FZGl0b3JGb3JtQ29udHJvbC50b3VjaGVkKVwiPlxyXG4gICAgICAgICAge3tnZXRFcnJvclZhbGlkYXRpb24obWFya2Rvd25FZGl0b3JGb3JtQ29udHJvbC5lcnJvcnN8a2V5dmFsdWUpfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCIoZ3JvdXAudmFsaWQmJmdyb3VwLmRpcnR5JiZncm91cC50b3VjaGVkICl8fChncm91cC51bnRvdWNoZWQmJmdyb3VwLmludmFsaWQmJmdyb3VwLmRpcnR5KSBcIj5cclxuICAgICAgICB7e3Jlc2V0RXJyb3IoKX19PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
@@ -66,6 +66,8 @@ import { ToggleslideComponent } from './Toggleslide/Toggleslide.component';
66
66
  import { BBSFUtilitiesModule } from '@bnsights/bbsf-utilities';
67
67
  import { ScriptLoaderModule } from 'ngx-script-loader';
68
68
  import { GoogleMapsModule } from '@angular/google-maps';
69
+ import { MarkdownEditorComponent } from './MarkdownEditor/markdown-editor.component';
70
+ import { LMarkdownEditorModule } from 'ngx-markdown-editor';
69
71
  import * as i0 from "@angular/core";
70
72
  import * as i1 from "ng-block-ui";
71
73
  import * as i2 from "ngx-toastr";
@@ -108,7 +110,8 @@ export class BBSFControlsModule {
108
110
  BBSFDatePipe,
109
111
  BTagsInputComponent,
110
112
  RecaptchaComponent,
111
- PageHeaderComponentComponent], imports: [CommonModule,
113
+ PageHeaderComponentComponent,
114
+ MarkdownEditorComponent], imports: [CommonModule,
112
115
  InfiniteScrollModule,
113
116
  NgSelectModule,
114
117
  FullCalendarModule,
@@ -129,7 +132,8 @@ export class BBSFControlsModule {
129
132
  AutocompleteLibModule,
130
133
  BBSFUtilitiesModule, i6.InlineSVGModule, SweetAlert2Module,
131
134
  ScriptLoaderModule,
132
- GoogleMapsModule], exports: [DateInputComponent,
135
+ GoogleMapsModule,
136
+ LMarkdownEditorModule], exports: [DateInputComponent,
133
137
  FileUploadComponent,
134
138
  MultiLingualTextBoxComponent,
135
139
  TextboxComponent,
@@ -161,7 +165,8 @@ export class BBSFControlsModule {
161
165
  BBSFDateTimePipe,
162
166
  BBSFDatePipe,
163
167
  RecaptchaComponent,
164
- PageHeaderComponentComponent] }); }
168
+ PageHeaderComponentComponent,
169
+ MarkdownEditorComponent] }); }
165
170
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: BBSFControlsModule, providers: [
166
171
  ErrorMassageValidation,
167
172
  ControlUtility,
@@ -206,7 +211,8 @@ export class BBSFControlsModule {
206
211
  InlineSVGModule.forRoot(),
207
212
  SweetAlert2Module,
208
213
  ScriptLoaderModule,
209
- GoogleMapsModule] }); }
214
+ GoogleMapsModule,
215
+ LMarkdownEditorModule] }); }
210
216
  }
211
217
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: BBSFControlsModule, decorators: [{
212
218
  type: NgModule,
@@ -244,7 +250,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
244
250
  BBSFDatePipe,
245
251
  BTagsInputComponent,
246
252
  RecaptchaComponent,
247
- PageHeaderComponentComponent
253
+ PageHeaderComponentComponent,
254
+ MarkdownEditorComponent
248
255
  ],
249
256
  imports: [
250
257
  CommonModule,
@@ -279,7 +286,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
279
286
  InlineSVGModule.forRoot(),
280
287
  SweetAlert2Module,
281
288
  ScriptLoaderModule,
282
- GoogleMapsModule
289
+ GoogleMapsModule,
290
+ LMarkdownEditorModule
283
291
  ],
284
292
  providers: [
285
293
  ErrorMassageValidation,
@@ -332,8 +340,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
332
340
  BBSFDateTimePipe,
333
341
  BBSFDatePipe,
334
342
  RecaptchaComponent,
335
- PageHeaderComponentComponent
343
+ PageHeaderComponentComponent,
344
+ MarkdownEditorComponent
336
345
  ]
337
346
  }]
338
347
  }] });
339
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJzZi1jb250cm9scy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWNvbnRyb2xzL3NyYy9saWIvY29udHJvbHMvYmJzZi1jb250cm9scy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQVcsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxF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cGVyanNNb2R1bGUgfSBmcm9tICdhbmd1bGFyLWNyb3BwZXJqcyc7XHJcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpYk1vZHVsZSB9IGZyb20gJ2FuZ3VsYXItbmctYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgQmxvY2tVSU1vZHVsZSB9IGZyb20gJ25nLWJsb2NrLXVpJztcclxuaW1wb3J0IHsgSW5saW5lU1ZHTW9kdWxlIH0gZnJvbSAnbmctaW5saW5lLXN2Zy0yJztcclxuaW1wb3J0IHsgT1dMX0RBVEVfVElNRV9MT0NBTEUsIE93bERhdGVUaW1lTW9kdWxlLCBPd2xOYXRpdmVEYXRlVGltZU1vZHVsZSB9IGZyb20gJ0BkYW5pZWxtb25jYWRhL2FuZ3VsYXItZGF0ZXRpbWUtcGlja2VyJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZE1vZHVsZSB9IGZyb20gJ25nMi1maWxlLXVwbG9hZCc7XHJcbmltcG9ydCB7IEJzRGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IFR5cGVhaGVhZE1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvdHlwZWFoZWFkJztcclxuaW1wb3J0IHsgTmd4RHJvcHpvbmVNb2R1bGUgfSBmcm9tICduZ3gtZHJvcHpvbmUnO1xyXG5pbXBvcnQgeyBJbmZpbml0ZVNjcm9sbE1vZHVsZSB9IGZyb20gJ25neC1pbmZpbml0ZS1zY3JvbGwnO1xyXG5pbXBvcnQgeyBOZ3hJbnRsVGVsSW5wdXRNb2R1bGUgfSBmcm9tICduZ3gtaW50bC10ZWwtaW5wdXQnO1xyXG5pbXBvcnQgeyBJQ29uZmlnLCBOZ3hNYXNrRGlyZWN0aXZlLCBOZ3hNYXNrUGlwZSwgcHJvdmlkZU5neE1hc2sgfSBmcm9tICduZ3gtbWFzayc7XHJcbmltcG9ydCB7IE5neFN1bW1lcm5vdGVNb2R1bGUgfSBmcm9tICduZ3gtc3VtbWVybm90ZSc7XHJcbmltcG9ydCB7IFRvYXN0ck1vZHVsZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5cclxuaW1wb3J0IHsgT3ZlcmxheU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5nTW9kdWxlLCBOT19FUlJPUlNfU0NIRU1BIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cERpcmVjdGl2ZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRnVsbENhbGVuZGFyTW9kdWxlIH0gZnJvbSAnQGZ1bGxjYWxlbmRhci9hbmd1bGFyJztcclxuaW1wb3J0IHsgQW5ndWxhckVkaXRvck1vZHVsZSB9IGZyb20gJ0Brb2xrb3YvYW5ndWxhci1lZGl0b3InO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCwgTmdiTW9kYWwsIE5nYk1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgTmdTZWxlY3RNb2R1bGUgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XHJcbmltcG9ydCB7IFN0b3JlRGV2dG9vbHNNb2R1bGUgfSBmcm9tICdAbmdyeC9zdG9yZS1kZXZ0b29scyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgU3dlZXRBbGVydDJNb2R1bGUgfSBmcm9tICdAc3dlZXRhbGVydDIvbmd4LXN3ZWV0YWxlcnQyJztcclxuXHJcbmltcG9ydCB7IEJUYWdzSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9TaGFyZWQvQ29tcG9uZW50cy9uZy10YWctaW5wdXQnO1xyXG5pbXBvcnQgeyBOZ1RlbXBsYXRlTmFtZURpcmVjdGl2ZSB9IGZyb20gJy4uL1NoYXJlZC9EaXJlY3RpdmVzL3RlbXBsYXRlLW5hbWUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQkJTRkRhdGVUaW1lUGlwZSB9IGZyb20gJy4uL1NoYXJlZC9QaXBlcy9iYnNmLWRhdGUtdGltZS5waXBlJztcclxuaW1wb3J0IHsgQkJTRkRhdGVQaXBlIH0gZnJvbSAnLi4vU2hhcmVkL1BpcGVzL2Jic2YtZGF0ZS5waXBlJztcclxuaW1wb3J0IHsgQ29udHJvbFV0aWxpdHkgfSBmcm9tICcuLi9TaGFyZWQvc2VydmljZXMvQ29udHJvbFV0aWxpdHknO1xyXG5pbXBvcnQgeyBPblBhZ2luZ0ZpbHRlcnNDaGFuZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vU2hhcmVkL3NlcnZpY2VzL09uUGFnaW5nRmlsdGVyc0NoYW5nZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVuZGVyQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uL1NoYXJlZC9zZXJ2aWNlcy9yZW5kZXItY29tcG9uZW50LXNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEVycm9yTWFzc2FnZVZhbGlkYXRpb24gfSBmcm9tICcuLi9TaGFyZWQvc2VydmljZXMvdmFsaWRhdGlvbkVycm9yTWFzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0b2NvbXBsZXRlVGV4dEJveENvbXBvbmVudCB9IGZyb20gJy4vQXV0b2NvbXBsZXRlVGV4dEJveC9BdXRvY29tcGxldGVUZXh0Qm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi9DYWxlbmRhci9DYWxlbmRhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDaGVja0JveENvbXBvbmVudCB9IGZyb20gJy4vQ2hlY2tCb3gvQ2hlY2tCb3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL0NvbmZpcm1hdGlvbk1vZGFsL0NvbmZpcm1hdGlvbk1vZGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERhdGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vRGF0ZVRpbWVQaWNrZXIvRGF0ZVRpbWVQaWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHJvcGRvd25MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9Ecm9wZG93bkxpc3QvRHJvcGRvd25MaXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL0ZpbGVVcGxhb2QvRmlsZVVwbGFvZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9Gb3JtL0Zvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgSHRtbEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vSHRtbEVkaXRvci9IdG1sRWRpdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEltYWdlVXBsb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL0ltYWdlVXBsb2FkL0ltYWdlVXBsb2FkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hcEF1dG9Db21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4vTWFwQXV0b0NvbXBsZXRlL01hcEF1dG9Db21wbGV0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIE11bHRpTGluZ3VhbEh0bWxFZGl0b3JDb21wb25lbnRcclxufSBmcm9tICcuL011bHRpTGluZ3VhbEh0bWxFZGl0b3IvTXVsdGlMaW5ndWFsSHRtbEVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIE11bHRpTGluZ3VhbFRleHRBcmVhQ29tcG9uZW50XHJcbn0gZnJvbSAnLi9NdWx0aUxpbmd1YWxUZXh0QXJlYS9NdWx0aUxpbmd1YWxUZXh0QXJlYS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNdWx0aUxpbmd1YWxUZXh0Qm94Q29tcG9uZW50IH0gZnJvbSAnLi9NdWx0aUxpbmd1YWxUZXh0Qm94L011bHRpTGluZ3VhbFRleHRCb3guY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBQYWdlSGVhZGVyQ29tcG9uZW50Q29tcG9uZW50XHJcbn0gZnJvbSAnLi9wYWdlLWhlYWRlci1jb21wb25lbnQvcGFnZS1oZWFkZXItY29tcG9uZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEp3UGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vUGFnaW5nL0p3UGFnaW5hdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQYWdpbmdDb21wb25lbnQgfSBmcm9tICcuL1BhZ2luZy9QYWdpbmcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGhvbmVDb21wb25lbnQgfSBmcm9tICcuL1Bob25lL1Bob25lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgUHJvZmlsZUltYWdlVXBsb2FkZXJDb21wb25lbnRcclxufSBmcm9tICcuL1Byb2ZpbGVJbWFnZVVwbG9hZGVyL1Byb2ZpbGVJbWFnZVVwbG9hZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJhZGlvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9SYWRpb0J1dHRvbi9SYWRpb0J1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZWNhcHRjaGFDb21wb25lbnQgfSBmcm9tICcuL1JlY2FwdGNoYS9SZWNhcHRjaGEuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBSZXBlYXRlckZpZWxkQnVpbGRlckNvbXBvbmVudFxyXG59IGZyb20gJy4vUmVwZWF0ZXIvcmVwZWF0ZXItZmllbGQtYnVpbGRlci9yZXBlYXRlci1maWVsZC1idWlsZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgUmVwZWF0ZXJJdGVtRmllbGRDb21wb25lbnRcclxufSBmcm9tICcuL1JlcGVhdGVyL3JlcGVhdGVyLWl0ZW0tZmllbGQvcmVwZWF0ZXItaXRlbS1maWVsZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXBlYXRlclRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9SZXBlYXRlci9yZXBlYXRlci10YWJsZS9yZXBlYXRlci10YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXBlYXRlckNvbXBvbmVudCB9IGZyb20gJy4vUmVwZWF0ZXIvcmVwZWF0ZXIvcmVwZWF0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFnc0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9UYWdzSW5wdXQvVGFnc0lucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRleHRBcmVhQ29tcG9uZW50IH0gZnJvbSAnLi9UZXh0QXJlYS9UZXh0QXJlYS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0Ym94Q29tcG9uZW50IH0gZnJvbSAnLi9UZXh0Qm94L1RleHRCb3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9nZ2xlc2xpZGVDb21wb25lbnQgfSBmcm9tICcuL1RvZ2dsZXNsaWRlL1RvZ2dsZXNsaWRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJCU0ZVdGlsaXRpZXNNb2R1bGUgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBTY3JpcHRMb2FkZXJNb2R1bGUgfSBmcm9tICduZ3gtc2NyaXB0LWxvYWRlcic7XHJcbmltcG9ydCB7IEdvb2dsZU1hcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9nb29nbGUtbWFwcyc7XHJcblxyXG5cclxuZXhwb3J0IGxldCBvcHRpb25zOiBQYXJ0aWFsPElDb25maWc+IHwgKCgpID0+IFBhcnRpYWw8SUNvbmZpZz4pO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIERhdGVJbnB1dENvbXBvbmVudCxcclxuICAgIEZpbGVVcGxvYWRDb21wb25lbnQsXHJcbiAgICBNdWx0aUxpbmd1YWxUZXh0Qm94Q29tcG9uZW50LFxyXG4gICAgVGV4dGJveENvbXBvbmVudCxcclxuICAgIFRleHRBcmVhQ29tcG9uZW50LFxyXG4gICAgTXVsdGlMaW5ndWFsVGV4dEFyZWFDb21wb25lbnQsXHJcbiAgICBDaGVja0JveENvbXBvbmVudCxcclxuICAgIERyb3Bkb3duTGlzdENvbXBvbmVudCxcclxuICAgIFBob25lQ29tcG9uZW50LFxyXG4gICAgVG9nZ2xlc2xpZGVDb21wb25lbnQsXHJcbiAgICBIdG1sRWRpdG9yQ29tcG9uZW50LFxyXG4gICAgTXVsdGlMaW5ndWFsSHRtbEVkaXRvckNvbXBvbmVudCxcclxuICAgIEltYWdlVXBsb2FkZXJDb21wb25lbnQsXHJcbiAgICBQcm9maWxlSW1hZ2VVcGxvYWRlckNvbXBvbmVudCxcclxuICAgIENhbGVuZGFyQ29tcG9uZW50LFxyXG4gICAgTWFwQXV0b0NvbXBsZXRlQ29tcG9uZW50LFxyXG4gICAgQXV0b2NvbXBsZXRlVGV4dEJveENvbXBvbmVudCxcclxuICAgIFRhZ3NJbnB1dENvbXBvbmVudCxcclxuICAgIFBhZ2luZ0NvbXBvbmVudCxcclxuICAgIEp3UGFnaW5hdGlvbkNvbXBvbmVudCxcclxuICAgIFJhZGlvQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgRm9ybUNvbXBvbmVudCxcclxuICAgIENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50LFxyXG4gICAgUmVwZWF0ZXJDb21wb25lbnQsXHJcbiAgICBSZXBlYXRlckZpZWxkQnVpbGRlckNvbXBvbmVudCxcclxuICAgIE5nVGVtcGxhdGVOYW1lRGlyZWN0aXZlLFxyXG4gICAgUmVwZWF0ZXJJdGVtRmllbGRDb21wb25lbnQsXHJcbiAgICBSZXBlYXRlclRhYmxlQ29tcG9uZW50LFxyXG4gICAgQkJTRkRhdGVUaW1lUGlwZSxcclxuICAgIEJCU0ZEYXRlUGlwZSxcclxuICAgIEJUYWdzSW5wdXRDb21wb25lbnQsXHJcbiAgICBSZWNhcHRjaGFDb21wb25lbnQsXHJcbiAgICBQYWdlSGVhZGVyQ29tcG9uZW50Q29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBJbmZpbml0ZVNjcm9sbE1vZHVsZSxcclxuICAgIE5nU2VsZWN0TW9kdWxlLFxyXG4gICAgRnVsbENhbGVuZGFyTW9kdWxlLFxyXG4gICAgQW5ndWxhckNyb3BwZXJqc01vZHVsZSxcclxuICAgIE5nYk1vZHVsZSxcclxuICAgIE5neERyb3B6b25lTW9kdWxlLFxyXG4gICAgRmlsZVVwbG9hZE1vZHVsZSxcclxuICAgIE5neE1hc2tEaXJlY3RpdmUsXHJcbiAgICBOZ3hNYXNrUGlwZSxcclxuICAgIE5neFN1bW1lcm5vdGVNb2R1bGUsXHJcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcclxuICAgIE5neEludGxUZWxJbnB1dE1vZHVsZSxcclxuICAgIE93bERhdGVUaW1lTW9kdWxlLFxyXG4gICAgT3dsTmF0aXZlRGF0ZVRpbWVNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBCbG9ja1VJTW9kdWxlLmZvclJvb3QoKSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBUb2FzdHJNb2R1bGUuZm9yUm9vdCgpLFxyXG4gICAgSHR0cENsaWVudE1vZHVsZSxcclxuICAgIE92ZXJsYXlNb2R1bGUsXHJcbiAgICBTdG9yZURldnRvb2xzTW9kdWxlLmluc3RydW1lbnQoeyBjb25uZWN0SW5ab25lOiB0cnVlIH0pLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBCc0RhdGVwaWNrZXJNb2R1bGUuZm9yUm9vdCgpLFxyXG4gICAgVHlwZWFoZWFkTW9kdWxlLmZvclJvb3QoKSxcclxuICAgIEFuZ3VsYXJFZGl0b3JNb2R1bGUsXHJcbiAgICBBdXRvY29tcGxldGVMaWJNb2R1bGUsXHJcbiAgICBCQlNGVXRpbGl0aWVzTW9kdWxlLFxyXG4gICAgSW5saW5lU1ZHTW9kdWxlLmZvclJvb3QoKSxcclxuICAgIFN3ZWV0QWxlcnQyTW9kdWxlLFxyXG4gICAgU2NyaXB0TG9hZGVyTW9kdWxlLFxyXG4gICAgR29vZ2xlTWFwc01vZHVsZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBFcnJvck1hc3NhZ2VWYWxpZGF0aW9uLFxyXG4gICAgQ29udHJvbFV0aWxpdHksXHJcbiAgICBPblBhZ2luZ0ZpbHRlcnNDaGFuZ2VTZXJ2aWNlLFxyXG4gICAgVHJhbnNsYXRlU2VydmljZSxcclxuICAgIEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICAgIE5nYk1vZGFsLFxyXG4gICAgTmdiQWN0aXZlTW9kYWwsXHJcbiAgICBEYXRlUGlwZSxcclxuICAgIEJCU0ZEYXRlVGltZVBpcGUsXHJcbiAgICBCQlNGRGF0ZVBpcGUsXHJcbiAgICBSZW5kZXJDb21wb25lbnRTZXJ2aWNlLFxyXG4gICAgeyBwcm92aWRlOiBPV0xfREFURV9USU1FX0xPQ0FMRSwgdXNlVmFsdWU6IENvbnRyb2xVdGlsaXR5LmdldExvY2FsKCkgfSxcclxuICAgIHByb3ZpZGVOZ3hNYXNrKClcclxuICBdLFxyXG4gIHNjaGVtYXM6IFtcclxuICAgIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5PX0VSUk9SU19TQ0hFTUFcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIERhdGVJbnB1dENvbXBvbmVudCxcclxuICAgIEZpbGVVcGxvYWRDb21wb25lbnQsXHJcbiAgICBNdWx0aUxpbmd1YWxUZXh0Qm94Q29tcG9uZW50LFxyXG4gICAgVGV4dGJveENvbXBvbmVudCxcclxuICAgIFRleHRBcmVhQ29tcG9uZW50LFxyXG4gICAgTXVsdGlMaW5ndWFsVGV4dEFyZWFDb21wb25lbnQsXHJcbiAgICBDaGVja0JveENvbXBvbmVudCxcclxuICAgIERyb3Bkb3duTGlzdENvbXBvbmVudCxcclxuICAgIFBob25lQ29tcG9uZW50LFxyXG4gICAgVG9nZ2xlc2xpZGVDb21wb25lbnQsXHJcbiAgICBIdG1sRWRpdG9yQ29tcG9uZW50LFxyXG4gICAgTXVsdGlMaW5ndWFsSHRtbEVkaXRvckNvbXBvbmVudCxcclxuICAgIEltYWdlVXBsb2FkZXJDb21wb25lbnQsXHJcbiAgICBQcm9maWxlSW1hZ2VVcGxvYWRlckNvbXBvbmVudCxcclxuICAgIENhbGVuZGFyQ29tcG9uZW50LFxyXG4gICAgTWFwQXV0b0NvbXBsZXRlQ29tcG9uZW50LFxyXG4gICAgQXV0b2NvbXBsZXRlVGV4dEJveENvbXBvbmVudCxcclxuICAgIFRhZ3NJbnB1dENvbXBvbmVudCxcclxuICAgIFBhZ2luZ0NvbXBvbmVudCxcclxuICAgIEp3UGFnaW5hdGlvbkNvbXBvbmVudCxcclxuICAgIFJhZGlvQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgRm9ybUNvbXBvbmVudCxcclxuICAgIFBhZ2luZ0NvbXBvbmVudCxcclxuICAgIENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50LFxyXG4gICAgUmVwZWF0ZXJDb21wb25lbnQsXHJcbiAgICBSZXBlYXRlckZpZWxkQnVpbGRlckNvbXBvbmVudCxcclxuICAgIE5nVGVtcGxhdGVOYW1lRGlyZWN0aXZlLFxyXG4gICAgUmVwZWF0ZXJJdGVtRmllbGRDb21wb25lbnQsXHJcbiAgICBSZXBlYXRlclRhYmxlQ29tcG9uZW50LFxyXG4gICAgQkJTRkRhdGVUaW1lUGlwZSxcclxuICAgIEJCU0ZEYXRlUGlwZSxcclxuICAgIFJlY2FwdGNoYUNvbXBvbmVudCxcclxuICAgIFBhZ2VIZWFkZXJDb21wb25lbnRDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCQlNGQ29udHJvbHNNb2R1bGUge1xyXG5cclxufVxyXG4iXX0=
348
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJzZi1jb250cm9scy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWNvbnRyb2xzL3NyYy9saWIvY29udHJvbHMvYmJzZi1jb250cm9scy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQVcsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxF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aUJBQWlCO3dCQUNqQiw2QkFBNkI7d0JBQzdCLHVCQUF1Qjt3QkFDdkIsMEJBQTBCO3dCQUMxQixzQkFBc0I7d0JBQ3RCLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLDRCQUE0Qjt3QkFDNUIsdUJBQXVCO3FCQUN4QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuZ3VsYXJDcm9wcGVyanNNb2R1bGUgfSBmcm9tICdhbmd1bGFyLWNyb3BwZXJqcyc7XHJcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpYk1vZHVsZSB9IGZyb20gJ2FuZ3VsYXItbmctYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgQmxvY2tVSU1vZHVsZSB9IGZyb20gJ25nLWJsb2NrLXVpJztcclxuaW1wb3J0IHsgSW5saW5lU1ZHTW9kdWxlIH0gZnJvbSAnbmctaW5saW5lLXN2Zy0yJztcclxuaW1wb3J0IHsgT1dMX0RBVEVfVElNRV9MT0NBTEUsIE93bERhdGVUaW1lTW9kdWxlLCBPd2xOYXRpdmVEYXRlVGltZU1vZHVsZSB9IGZyb20gJ0BkYW5pZWxtb25jYWRhL2FuZ3VsYXItZGF0ZXRpbWUtcGlja2VyJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZE1vZHVsZSB9IGZyb20gJ25nMi1maWxlLXVwbG9hZCc7XHJcbmltcG9ydCB7IEJzRGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IFR5cGVhaGVhZE1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvdHlwZWFoZWFkJztcclxuaW1wb3J0IHsgTmd4RHJvcHpvbmVNb2R1bGUgfSBmcm9tICduZ3gtZHJvcHpvbmUnO1xyXG5pbXBvcnQgeyBJbmZpbml0ZVNjcm9sbE1vZHVsZSB9IGZyb20gJ25neC1pbmZpbml0ZS1zY3JvbGwnO1xyXG5pbXBvcnQgeyBOZ3hJbnRsVGVsSW5wdXRNb2R1bGUgfSBmcm9tICduZ3gtaW50bC10ZWwtaW5wdXQnO1xyXG5pbXBvcnQgeyBJQ29uZmlnLCBOZ3hNYXNrRGlyZWN0aXZlLCBOZ3hNYXNrUGlwZSwgcHJvdmlkZU5neE1hc2sgfSBmcm9tICduZ3gtbWFzayc7XHJcbmltcG9ydCB7IE5neFN1bW1lcm5vdGVNb2R1bGUgfSBmcm9tICduZ3gtc3VtbWVybm90ZSc7XHJcbmltcG9ydCB7IFRvYXN0ck1vZHVsZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5cclxuaW1wb3J0IHsgT3ZlcmxheU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5nTW9kdWxlLCBOT19FUlJPUlNfU0NIRU1BIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cERpcmVjdGl2ZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRnVsbENhbGVuZGFyTW9kdWxlIH0gZnJvbSAnQGZ1bGxjYWxlbmRhci9hbmd1bGFyJztcclxuaW1wb3J0IHsgQW5ndWxhckVkaXRvck1vZHVsZSB9IGZyb20gJ0Brb2xrb3YvYW5ndWxhci1lZGl0b3InO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCwgTmdiTW9kYWwsIE5nYk1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgTmdTZWxlY3RNb2R1bGUgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XHJcbmltcG9ydCB7IFN0b3JlRGV2dG9vbHNNb2R1bGUgfSBmcm9tICdAbmdyeC9zdG9yZS1kZXZ0b29scyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgU3dlZXRBbGVydDJNb2R1bGUgfSBmcm9tICdAc3dlZXRhbGVydDIvbmd4LXN3ZWV0YWxlcnQyJztcclxuXHJcbmltcG9ydCB7IEJUYWdzSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9TaGFyZWQvQ29tcG9uZW50cy9uZy10YWctaW5wdXQnO1xyXG5pbXBvcnQgeyBOZ1RlbXBsYXRlTmFtZURpcmVjdGl2ZSB9IGZyb20gJy4uL1NoYXJlZC9EaXJlY3RpdmVzL3RlbXBsYXRlLW5hbWUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQkJTRkRhdGVUaW1lUGlwZSB9IGZyb20gJy4uL1NoYXJlZC9QaXBlcy9iYnNmLWRhdGUtdGltZS5waXBlJztcclxuaW1wb3J0IHsgQkJTRkRhdGVQaXBlIH0gZnJvbSAnLi4vU2hhcmVkL1BpcGVzL2Jic2YtZGF0ZS5waXBlJztcclxuaW1wb3J0IHsgQ29udHJvbFV0aWxpdHkgfSBmcm9tICcuLi9TaGFyZWQvc2VydmljZXMvQ29udHJvbFV0aWxpdHknO1xyXG5pbXBvcnQgeyBPblBhZ2luZ0ZpbHRlcnNDaGFuZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vU2hhcmVkL3NlcnZpY2VzL09uUGFnaW5nRmlsdGVyc0NoYW5nZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVuZGVyQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uL1NoYXJlZC9zZXJ2aWNlcy9yZW5kZXItY29tcG9uZW50LXNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEVycm9yTWFzc2FnZVZhbGlkYXRpb24gfSBmcm9tICcuLi9TaGFyZWQvc2VydmljZXMvdmFsaWRhdGlvbkVycm9yTWFzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0b2NvbXBsZXRlVGV4dEJveENvbXBvbmVudCB9IGZyb20gJy4vQXV0b2NvbXBsZXRlVGV4dEJveC9BdXRvY29tcGxldGVUZXh0Qm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi9DYWxlbmRhci9DYWxlbmRhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDaGVja0JveENvbXBvbmVudCB9IGZyb20gJy4vQ2hlY2tCb3gvQ2hlY2tCb3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL0NvbmZpcm1hdGlvbk1vZGFsL0NvbmZpcm1hdGlvbk1vZGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERhdGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vRGF0ZVRpbWVQaWNrZXIvRGF0ZVRpbWVQaWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHJvcGRvd25MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9Ecm9wZG93bkxpc3QvRHJvcGRvd25MaXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL0ZpbGVVcGxhb2QvRmlsZVVwbGFvZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9Gb3JtL0Zvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgSHRtbEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vSHRtbEVkaXRvci9IdG1sRWRpdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEltYWdlVXBsb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL0ltYWdlVXBsb2FkL0ltYWdlVXBsb2FkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hcEF1dG9Db21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4vTWFwQXV0b0NvbXBsZXRlL01hcEF1dG9Db21wbGV0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIE11bHRpTGluZ3VhbEh0bWxFZGl0b3JDb21wb25lbnRcclxufSBmcm9tICcuL011bHRpTGluZ3VhbEh0bWxFZGl0b3IvTXVsdGlMaW5ndWFsSHRtbEVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIE11bHRpTGluZ3VhbFRleHRBcmVhQ29tcG9uZW50XHJcbn0gZnJvbSAnLi9NdWx0aUxpbmd1YWxUZXh0QXJlYS9NdWx0aUxpbmd1YWxUZXh0QXJlYS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNdWx0aUxpbmd1YWxUZXh0Qm94Q29tcG9uZW50IH0gZnJvbSAnLi9NdWx0aUxpbmd1YWxUZXh0Qm94L011bHRpTGluZ3VhbFRleHRCb3guY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBQYWdlSGVhZGVyQ29tcG9uZW50Q29tcG9uZW50XHJcbn0gZnJvbSAnLi9wYWdlLWhlYWRlci1jb21wb25lbnQvcGFnZS1oZWFkZXItY29tcG9uZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEp3UGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vUGFnaW5nL0p3UGFnaW5hdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQYWdpbmdDb21wb25lbnQgfSBmcm9tICcuL1BhZ2luZy9QYWdpbmcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGhvbmVDb21wb25lbnQgfSBmcm9tICcuL1Bob25lL1Bob25lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgUHJvZmlsZUltYWdlVXBsb2FkZXJDb21wb25lbnRcclxufSBmcm9tICcuL1Byb2ZpbGVJbWFnZVVwbG9hZGVyL1Byb2ZpbGVJbWFnZVVwbG9hZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJhZGlvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9SYWRpb0J1dHRvbi9SYWRpb0J1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZWNhcHRjaGFDb21wb25lbnQgfSBmcm9tICcuL1JlY2FwdGNoYS9SZWNhcHRjaGEuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBSZXBlYXRlckZpZWxkQnVpbGRlckNvbXBvbmVudFxyXG59IGZyb20gJy4vUmVwZWF0ZXIvcmVwZWF0ZXItZmllbGQtYnVpbGRlci9yZXBlYXRlci1maWVsZC1idWlsZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgUmVwZWF0ZXJJdGVtRmllbGRDb21wb25lbnRcclxufSBmcm9tICcuL1JlcGVhdGVyL3JlcGVhdGVyLWl0ZW0tZmllbGQvcmVwZWF0ZXItaXRlbS1maWVsZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXBlYXRlclRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9SZXBlYXRlci9yZXBlYXRlci10YWJsZS9yZXBlYXRlci10YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXBlYXRlckNvbXBvbmVudCB9IGZyb20gJy4vUmVwZWF0ZXIvcmVwZWF0ZXIvcmVwZWF0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFnc0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9UYWdzSW5wdXQvVGFnc0lucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRleHRBcmVhQ29tcG9uZW50IH0gZnJvbSAnLi9UZXh0QXJlYS9UZXh0QXJlYS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0Ym94Q29tcG9uZW50IH0gZnJvbSAnLi9UZXh0Qm94L1RleHRCb3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9nZ2xlc2xpZGVDb21wb25lbnQgfSBmcm9tICcuL1RvZ2dsZXNsaWRlL1RvZ2dsZXNsaWRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJCU0ZVdGlsaXRpZXNNb2R1bGUgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBTY3JpcHRMb2FkZXJNb2R1bGUgfSBmcm9tICduZ3gtc2NyaXB0LWxvYWRlcic7XHJcbmltcG9ydCB7IEdvb2dsZU1hcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9nb29nbGUtbWFwcyc7XHJcbmltcG9ydCB7IE1hcmtkb3duRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9NYXJrZG93bkVkaXRvci9tYXJrZG93bi1lZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTE1hcmtkb3duRWRpdG9yTW9kdWxlIH0gZnJvbSAnbmd4LW1hcmtkb3duLWVkaXRvcic7XHJcblxyXG5cclxuZXhwb3J0IGxldCBvcHRpb25zOiBQYXJ0aWFsPElDb25maWc+IHwgKCgpID0+IFBhcnRpYWw8SUNvbmZpZz4pO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIERhdGVJbnB1dENvbXBvbmVudCxcclxuICAgIEZpbGVVcGxvYWRDb21wb25lbnQsXHJcbiAgICBNdWx0aUxpbmd1YWxUZXh0Qm94Q29tcG9uZW50LFxyXG4gICAgVGV4dGJveENvbXBvbmVudCxcclxuICAgIFRleHRBcmVhQ29tcG9uZW50LFxyXG4gICAgTXVsdGlMaW5ndWFsVGV4dEFyZWFDb21wb25lbnQsXHJcbiAgICBDaGVja0JveENvbXBvbmVudCxcclxuICAgIERyb3Bkb3duTGlzdENvbXBvbmVudCxcclxuICAgIFBob25lQ29tcG9uZW50LFxyXG4gICAgVG9nZ2xlc2xpZGVDb21wb25lbnQsXHJcbiAgICBIdG1sRWRpdG9yQ29tcG9uZW50LFxyXG4gICAgTXVsdGlMaW5ndWFsSHRtbEVkaXRvckNvbXBvbmVudCxcclxuICAgIEltYWdlVXBsb2FkZXJDb21wb25lbnQsXHJcbiAgICBQcm9maWxlSW1hZ2VVcGxvYWRlckNvbXBvbmVudCxcclxuICAgIENhbGVuZGFyQ29tcG9uZW50LFxyXG4gICAgTWFwQXV0b0NvbXBsZXRlQ29tcG9uZW50LFxyXG4gICAgQXV0b2NvbXBsZXRlVGV4dEJveENvbXBvbmVudCxcclxuICAgIFRhZ3NJbnB1dENvbXBvbmVudCxcclxuICAgIFBhZ2luZ0NvbXBvbmVudCxcclxuICAgIEp3UGFnaW5hdGlvbkNvbXBvbmVudCxcclxuICAgIFJhZGlvQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgRm9ybUNvbXBvbmVudCxcclxuICAgIENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50LFxyXG4gICAgUmVwZWF0ZXJDb21wb25lbnQsXHJcbiAgICBSZXBlYXRlckZpZWxkQnVpbGRlckNvbXBvbmVudCxcclxuICAgIE5nVGVtcGxhdGVOYW1lRGlyZWN0aXZlLFxyXG4gICAgUmVwZWF0ZXJJdGVtRmllbGRDb21wb25lbnQsXHJcbiAgICBSZXBlYXRlclRhYmxlQ29tcG9uZW50LFxyXG4gICAgQkJTRkRhdGVUaW1lUGlwZSxcclxuICAgIEJCU0ZEYXRlUGlwZSxcclxuICAgIEJUYWdzSW5wdXRDb21wb25lbnQsXHJcbiAgICBSZWNhcHRjaGFDb21wb25lbnQsXHJcbiAgICBQYWdlSGVhZGVyQ29tcG9uZW50Q29tcG9uZW50LFxyXG4gICAgTWFya2Rvd25FZGl0b3JDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEluZmluaXRlU2Nyb2xsTW9kdWxlLFxyXG4gICAgTmdTZWxlY3RNb2R1bGUsXHJcbiAgICBGdWxsQ2FsZW5kYXJNb2R1bGUsXHJcbiAgICBBbmd1bGFyQ3JvcHBlcmpzTW9kdWxlLFxyXG4gICAgTmdiTW9kdWxlLFxyXG4gICAgTmd4RHJvcHpvbmVNb2R1bGUsXHJcbiAgICBGaWxlVXBsb2FkTW9kdWxlLFxyXG4gICAgTmd4TWFza0RpcmVjdGl2ZSxcclxuICAgIE5neE1hc2tQaXBlLFxyXG4gICAgTmd4U3VtbWVybm90ZU1vZHVsZSxcclxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxyXG4gICAgTmd4SW50bFRlbElucHV0TW9kdWxlLFxyXG4gICAgT3dsRGF0ZVRpbWVNb2R1bGUsXHJcbiAgICBPd2xOYXRpdmVEYXRlVGltZU1vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEJsb2NrVUlNb2R1bGUuZm9yUm9vdCgpLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFJvdXRlck1vZHVsZSxcclxuICAgIFRvYXN0ck1vZHVsZS5mb3JSb290KCksXHJcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxyXG4gICAgT3ZlcmxheU1vZHVsZSxcclxuICAgIFN0b3JlRGV2dG9vbHNNb2R1bGUuaW5zdHJ1bWVudCh7IGNvbm5lY3RJblpvbmU6IHRydWUgfSksXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIEJzRGF0ZXBpY2tlck1vZHVsZS5mb3JSb290KCksXHJcbiAgICBUeXBlYWhlYWRNb2R1bGUuZm9yUm9vdCgpLFxyXG4gICAgQW5ndWxhckVkaXRvck1vZHVsZSxcclxuICAgIEF1dG9jb21wbGV0ZUxpYk1vZHVsZSxcclxuICAgIEJCU0ZVdGlsaXRpZXNNb2R1bGUsXHJcbiAgICBJbmxpbmVTVkdNb2R1bGUuZm9yUm9vdCgpLFxyXG4gICAgU3dlZXRBbGVydDJNb2R1bGUsXHJcbiAgICBTY3JpcHRMb2FkZXJNb2R1bGUsXHJcbiAgICBHb29nbGVNYXBzTW9kdWxlLFxyXG4gICAgTE1hcmtkb3duRWRpdG9yTW9kdWxlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIEVycm9yTWFzc2FnZVZhbGlkYXRpb24sXHJcbiAgICBDb250cm9sVXRpbGl0eSxcclxuICAgIE9uUGFnaW5nRmlsdGVyc0NoYW5nZVNlcnZpY2UsXHJcbiAgICBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgRm9ybUdyb3VwRGlyZWN0aXZlLFxyXG4gICAgTmdiTW9kYWwsXHJcbiAgICBOZ2JBY3RpdmVNb2RhbCxcclxuICAgIERhdGVQaXBlLFxyXG4gICAgQkJTRkRhdGVUaW1lUGlwZSxcclxuICAgIEJCU0ZEYXRlUGlwZSxcclxuICAgIFJlbmRlckNvbXBvbmVudFNlcnZpY2UsXHJcbiAgICB7IHByb3ZpZGU6IE9XTF9EQVRFX1RJTUVfTE9DQUxFLCB1c2VWYWx1ZTogQ29udHJvbFV0aWxpdHkuZ2V0TG9jYWwoKSB9LFxyXG4gICAgcHJvdmlkZU5neE1hc2soKVxyXG4gIF0sXHJcbiAgc2NoZW1hczogW1xyXG4gICAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgRGF0ZUlucHV0Q29tcG9uZW50LFxyXG4gICAgRmlsZVVwbG9hZENvbXBvbmVudCxcclxuICAgIE11bHRpTGluZ3VhbFRleHRCb3hDb21wb25lbnQsXHJcbiAgICBUZXh0Ym94Q29tcG9uZW50LFxyXG4gICAgVGV4dEFyZWFDb21wb25lbnQsXHJcbiAgICBNdWx0aUxpbmd1YWxUZXh0QXJlYUNvbXBvbmVudCxcclxuICAgIENoZWNrQm94Q29tcG9uZW50LFxyXG4gICAgRHJvcGRvd25MaXN0Q29tcG9uZW50LFxyXG4gICAgUGhvbmVDb21wb25lbnQsXHJcbiAgICBUb2dnbGVzbGlkZUNvbXBvbmVudCxcclxuICAgIEh0bWxFZGl0b3JDb21wb25lbnQsXHJcbiAgICBNdWx0aUxpbmd1YWxIdG1sRWRpdG9yQ29tcG9uZW50LFxyXG4gICAgSW1hZ2VVcGxvYWRlckNvbXBvbmVudCxcclxuICAgIFByb2ZpbGVJbWFnZVVwbG9hZGVyQ29tcG9uZW50LFxyXG4gICAgQ2FsZW5kYXJDb21wb25lbnQsXHJcbiAgICBNYXBBdXRvQ29tcGxldGVDb21wb25lbnQsXHJcbiAgICBBdXRvY29tcGxldGVUZXh0Qm94Q29tcG9uZW50LFxyXG4gICAgVGFnc0lucHV0Q29tcG9uZW50LFxyXG4gICAgUGFnaW5nQ29tcG9uZW50LFxyXG4gICAgSndQYWdpbmF0aW9uQ29tcG9uZW50LFxyXG4gICAgUmFkaW9CdXR0b25Db21wb25lbnQsXHJcbiAgICBGb3JtQ29tcG9uZW50LFxyXG4gICAgUGFnaW5nQ29tcG9uZW50LFxyXG4gICAgQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQsXHJcbiAgICBSZXBlYXRlckNvbXBvbmVudCxcclxuICAgIFJlcGVhdGVyRmllbGRCdWlsZGVyQ29tcG9uZW50LFxyXG4gICAgTmdUZW1wbGF0ZU5hbWVEaXJlY3RpdmUsXHJcbiAgICBSZXBlYXRlckl0ZW1GaWVsZENvbXBvbmVudCxcclxuICAgIFJlcGVhdGVyVGFibGVDb21wb25lbnQsXHJcbiAgICBCQlNGRGF0ZVRpbWVQaXBlLFxyXG4gICAgQkJTRkRhdGVQaXBlLFxyXG4gICAgUmVjYXB0Y2hhQ29tcG9uZW50LFxyXG4gICAgUGFnZUhlYWRlckNvbXBvbmVudENvbXBvbmVudCxcclxuICAgIE1hcmtkb3duRWRpdG9yQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQkJTRkNvbnRyb2xzTW9kdWxlIHtcclxuXHJcbn1cclxuIl19