@matechat/ng 0.0.1-alpha.1 → 17.1.0-alpha.1

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.
Files changed (80) hide show
  1. package/README.md +207 -44
  2. package/fesm2022/matechat-ng.mjs +244 -153
  3. package/fesm2022/matechat-ng.mjs.map +1 -1
  4. package/index.d.ts +621 -3
  5. package/package.json +18 -5
  6. package/Base/base.component.d.ts +0 -11
  7. package/Bubble/avatar/avatar.component.d.ts +0 -23
  8. package/Bubble/avatar-body-icon/avatar-body-icon.component.d.ts +0 -7
  9. package/Bubble/avatar-no-body-icon/avatar-no-body-icon.component.d.ts +0 -7
  10. package/Bubble/bubble-loading/bubble-loading.component.d.ts +0 -5
  11. package/Bubble/bubble.component.d.ts +0 -26
  12. package/Bubble/bubble.module.d.ts +0 -10
  13. package/Bubble/index.d.ts +0 -6
  14. package/Input/button/button.component.d.ts +0 -31
  15. package/Input/index.d.ts +0 -2
  16. package/Input/input.component.d.ts +0 -65
  17. package/Input/input.module.d.ts +0 -11
  18. package/Input/send-icon/send-icon.component.d.ts +0 -5
  19. package/Locale/index.d.ts +0 -5
  20. package/Locale/locale.module.d.ts +0 -17
  21. package/Locale/locale.service.d.ts +0 -50
  22. package/Locale/translate.pipe.d.ts +0 -23
  23. package/MarkdownCard/code-block.component.d.ts +0 -46
  24. package/MarkdownCard/index.d.ts +0 -3
  25. package/MarkdownCard/markdown-card.component.d.ts +0 -198
  26. package/MarkdownCard/markdown-card.module.d.ts +0 -13
  27. package/components-common/Base/foundation.d.ts +0 -45
  28. package/components-common/Bubble/common/bubble-constants.d.ts +0 -4
  29. package/components-common/Bubble/common/bubble-types.d.ts +0 -12
  30. package/components-common/Bubble/foundation.d.ts +0 -9
  31. package/components-common/Input/button-foundation.d.ts +0 -15
  32. package/components-common/Input/common/types.d.ts +0 -16
  33. package/components-common/Input/foundation.d.ts +0 -20
  34. package/components-common/Locale/lang/en-us.d.ts +0 -26
  35. package/components-common/Locale/lang/zh-cn.d.ts +0 -26
  36. package/components-common/MarkdownCard/codeblock-foundation.d.ts +0 -20
  37. package/components-common/MarkdownCard/common/MDCardService.d.ts +0 -14
  38. package/components-common/MarkdownCard/common/MermaidService.d.ts +0 -23
  39. package/components-common/MarkdownCard/common/mdCard.types.d.ts +0 -56
  40. package/components-common/MarkdownCard/common/parser.d.ts +0 -150
  41. package/components-common/MarkdownCard/foundation.d.ts +0 -38
  42. package/esm2022/Base/base.component.mjs +0 -47
  43. package/esm2022/Bubble/avatar/avatar.component.mjs +0 -121
  44. package/esm2022/Bubble/avatar-body-icon/avatar-body-icon.component.mjs +0 -19
  45. package/esm2022/Bubble/avatar-no-body-icon/avatar-no-body-icon.component.mjs +0 -19
  46. package/esm2022/Bubble/bubble-loading/bubble-loading.component.mjs +0 -11
  47. package/esm2022/Bubble/bubble.component.mjs +0 -89
  48. package/esm2022/Bubble/bubble.module.mjs +0 -36
  49. package/esm2022/Bubble/index.mjs +0 -7
  50. package/esm2022/Input/button/button.component.mjs +0 -83
  51. package/esm2022/Input/index.mjs +0 -3
  52. package/esm2022/Input/input.component.mjs +0 -285
  53. package/esm2022/Input/input.module.mjs +0 -34
  54. package/esm2022/Input/send-icon/send-icon.component.mjs +0 -11
  55. package/esm2022/Locale/index.mjs +0 -6
  56. package/esm2022/Locale/locale.module.mjs +0 -39
  57. package/esm2022/Locale/locale.service.mjs +0 -140
  58. package/esm2022/Locale/translate.pipe.mjs +0 -38
  59. package/esm2022/MarkdownCard/code-block.component.mjs +0 -150
  60. package/esm2022/MarkdownCard/index.mjs +0 -4
  61. package/esm2022/MarkdownCard/markdown-card.component.mjs +0 -406
  62. package/esm2022/MarkdownCard/markdown-card.module.mjs +0 -44
  63. package/esm2022/components-common/Base/foundation.mjs +0 -66
  64. package/esm2022/components-common/Bubble/common/bubble-constants.mjs +0 -5
  65. package/esm2022/components-common/Bubble/common/bubble-types.mjs +0 -2
  66. package/esm2022/components-common/Bubble/foundation.mjs +0 -30
  67. package/esm2022/components-common/Input/button-foundation.mjs +0 -33
  68. package/esm2022/components-common/Input/common/types.mjs +0 -21
  69. package/esm2022/components-common/Input/foundation.mjs +0 -71
  70. package/esm2022/components-common/Locale/lang/en-us.mjs +0 -26
  71. package/esm2022/components-common/Locale/lang/zh-cn.mjs +0 -26
  72. package/esm2022/components-common/MarkdownCard/codeblock-foundation.mjs +0 -132
  73. package/esm2022/components-common/MarkdownCard/common/MDCardService.mjs +0 -69
  74. package/esm2022/components-common/MarkdownCard/common/MermaidService.mjs +0 -222
  75. package/esm2022/components-common/MarkdownCard/common/mdCard.types.mjs +0 -6
  76. package/esm2022/components-common/MarkdownCard/common/parser.mjs +0 -194
  77. package/esm2022/components-common/MarkdownCard/foundation.mjs +0 -84
  78. package/esm2022/matechat-ng.mjs +0 -5
  79. package/esm2022/public-api.mjs +0 -8
  80. package/public-api.d.ts +0 -4
@@ -1,406 +0,0 @@
1
- import { DiffDOM } from 'diff-dom';
2
- import { Component, Input, ViewChild, Output, EventEmitter, ViewContainerRef, } from '@angular/core';
3
- import markdownit from 'markdown-it';
4
- import { MDCardService } from '../components-common/MarkdownCard/common/MDCardService';
5
- import { CodeBlockComponent } from './code-block.component';
6
- import BaseComponent from '../Base/base.component';
7
- import { MarkdownCardFoundation, } from '../components-common/MarkdownCard/foundation';
8
- import MdParserUtils from '../components-common/MarkdownCard/common/parser';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/common";
11
- export class MarkdownCardComponent extends BaseComponent {
12
- constructor(resolver, renderer, cdr) {
13
- super();
14
- this.resolver = resolver;
15
- this.renderer = renderer;
16
- this.cdr = cdr;
17
- this.content = '';
18
- this.typing = false;
19
- this.enableThink = false;
20
- this.typingOptions = {};
21
- this.thinkOptions = {};
22
- this.mdOptions = {};
23
- this.mdPlugins = [];
24
- this.customXssRules = [];
25
- this.theme = 'light';
26
- this.enableMermaid = false;
27
- this.mermaidConfig = {};
28
- this.actionsTemplate = null;
29
- this.headerTemplate = null;
30
- this.contentTemplate = null;
31
- // 组件缓存映射表,用于存储已创建的CodeBlockComponent实例
32
- this.codeBlockComponentsCache = new Map();
33
- this.afterMdtInit = new EventEmitter();
34
- this.typingStart = new EventEmitter();
35
- this.typingEvent = new EventEmitter();
36
- this.typingEnd = new EventEmitter();
37
- this.typingIndex = 0;
38
- this.isTyping = false;
39
- this.timer = null;
40
- this.parser = MdParserUtils;
41
- this.mdt = markdownit({
42
- breaks: true,
43
- linkify: true,
44
- html: true,
45
- highlight: (str, lang) => {
46
- // 与Vue组件保持一致的高亮处理
47
- return '';
48
- },
49
- ...this.mdOptions,
50
- });
51
- this.mdCardService = new MDCardService();
52
- this.foundation = new MarkdownCardFoundation(this.adapter);
53
- // 初始化 diffDom 实例
54
- this.diffDom = new DiffDOM({
55
- // 配置filterOuterDiff钩子,识别code-block-wrapper元素并直接替换
56
- filterOuterDiff: (t1, t2, diffs) => {
57
- // 检查是否是class为code-block-wrapper的div元素
58
- const isTargetElement = t2.nodeName === 'DIV' &&
59
- t2.attributes && t2.attributes.class && t2.attributes.class.includes('code-block-wrapper');
60
- if (isTargetElement) {
61
- t1.innerDone = true;
62
- }
63
- }
64
- });
65
- }
66
- ngOnInit() {
67
- this.mdCardService.setMdPlugins(this.mdPlugins || [], this.mdt);
68
- this.parseContent();
69
- this.afterMdtInit.emit(this.mdt);
70
- }
71
- get adapter() {
72
- return {
73
- ...super.adapter,
74
- locale: (key, params) => this.adapter.locale(key, params),
75
- typingStart: () => this.typingStart.emit(),
76
- typingEnd: () => this.typingEnd.emit(),
77
- typingEvent: () => this.typingEvent.emit(),
78
- parseContent: (content) => {
79
- // 解析 Markdown 内容
80
- const tokens = this.mdt.parse(content, {});
81
- const ast = this.parser.tokensToAst(tokens);
82
- const vnodes = this.astToVnodes(ast);
83
- this.renderContent(vnodes);
84
- },
85
- };
86
- }
87
- ngOnChanges(changes) {
88
- if (changes['content']) {
89
- if (!this.typing) {
90
- this.typingIndex = this.content?.length || 0;
91
- this.parseContent();
92
- return;
93
- }
94
- if (this.content.indexOf(changes['content']?.previousValue) === -1) {
95
- this.typingIndex = 0;
96
- }
97
- // 使用setTimeout模拟Vue的nextTick行为
98
- setTimeout(() => this.typewriterStart());
99
- }
100
- if (changes['enableThink'] || changes['thinkOptions'] || changes['theme']) {
101
- this.parseContent();
102
- }
103
- if (changes['customXssRules']) {
104
- this.mdCardService.setCustomXssRules(this.customXssRules || []);
105
- this.parseContent();
106
- }
107
- if (changes['mdPlugins']) {
108
- this.mdCardService.setMdPlugins(this.mdPlugins || [], this.mdt);
109
- this.parseContent();
110
- }
111
- }
112
- parseContent() {
113
- this.foundation.parseContent(this.content || '');
114
- }
115
- renderContent(vnodes) {
116
- if (!this.markdownContainer ||
117
- !this.markdownContainer.element ||
118
- !this.markdownContainer.element.nativeElement) {
119
- return;
120
- }
121
- const container = this.markdownContainer.element.nativeElement;
122
- // 创建新内容容器
123
- const newContent = document.createElement('div');
124
- vnodes.forEach((node) => {
125
- if (node &&
126
- (node.nodeType ||
127
- typeof node === 'string' ||
128
- node instanceof HTMLElement)) {
129
- newContent.appendChild(node);
130
- }
131
- });
132
- // 不适用diff-dom,直接替换内容
133
- let noDIff = false;
134
- if (noDIff) {
135
- while (container.firstChild) {
136
- container.removeChild(container.firstChild);
137
- }
138
- container.appendChild(newContent);
139
- return;
140
- }
141
- let oldNode = container;
142
- let newNode = newContent;
143
- const patches = this.diffDom.diff(oldNode, newNode);
144
- //code-block-wrapper
145
- this.diffDom.apply(container, patches);
146
- // 从vNodes中找到所有class为code-block-wrapper的div元素
147
- const codeBlockWrappers = vnodes.filter((node) => {
148
- return node.nodeName === 'DIV' && node.className?.includes('code-block-wrapper');
149
- });
150
- // 将codeBlockWrappers中的每个div元素替换container中的对应key属性的元素
151
- codeBlockWrappers.forEach((newCodeBlock) => {
152
- if (newCodeBlock && newCodeBlock.attributes && newCodeBlock.attributes.key) {
153
- const key = newCodeBlock.attributes.key.value;
154
- // 查找container中对应key的元素
155
- const existingElement = container.querySelector(`[key="${key}"]`);
156
- if (existingElement && newCodeBlock instanceof HTMLElement) {
157
- // 替换元素
158
- if (newCodeBlock !== existingElement) {
159
- existingElement.parentNode?.replaceChild(newCodeBlock, existingElement);
160
- }
161
- }
162
- }
163
- });
164
- }
165
- astToVnodes(nodes) {
166
- return nodes.map((node) => this.processASTNode(node));
167
- }
168
- processASTNode(node) {
169
- if (node.nodeType === 'html_inline' || node.nodeType === 'html_block') {
170
- return this.processHTMLNode(node);
171
- }
172
- if (node.nodeType === 'inline') {
173
- return this.processInlineToken(node);
174
- }
175
- if (this.foundation.isToken(node)) {
176
- return this.processToken(node);
177
- }
178
- return this.processASTNodeInternal(node);
179
- }
180
- processHTMLNode(node) {
181
- if (!node.openNode?.content)
182
- return;
183
- const container = this.renderer.createElement(node.nodeType === 'html_block' ? 'div' : 'span');
184
- this.renderer.setProperty(container, 'innerHTML', node.openNode.content);
185
- // 处理子节点
186
- if (node.children && node.children.length > 0) {
187
- node.children.forEach((child) => {
188
- const childVnode = this.processASTNode(child);
189
- if (childVnode) {
190
- this.renderer.appendChild(container.firstChild || container, childVnode);
191
- }
192
- });
193
- }
194
- return container;
195
- }
196
- processInlineToken(node) {
197
- const div = this.renderer.createElement('div');
198
- let html = '';
199
- try {
200
- if (!node.openNode) {
201
- return null;
202
- }
203
- html = this.mdt.renderer.render([node.openNode], this.mdt.options, {});
204
- }
205
- catch (error) {
206
- console.error('Error rendering inline token:', node);
207
- return null;
208
- }
209
- // 将HTML字符串转换为DOM节点
210
- this.renderer.setProperty(div, 'innerHTML', html);
211
- // 如果只有一个子节点,直接返回子节点而不是包含div
212
- if (div.firstChild && div.childNodes.length === 1) {
213
- return div.firstChild;
214
- }
215
- return div;
216
- }
217
- processFenceNode(token) {
218
- const language = token.info?.replace(/<span\b[^>]*>/i, '').replace('</span>', '') || '';
219
- const code = token.content || '';
220
- return this.createCodeBlock(language, code, token.tokenIndex || 0);
221
- }
222
- processASTNodeInternal(node) {
223
- let tagName = 'div';
224
- if (node.openNode?.tag && this.parser.isValidTagName(node.openNode?.tag)) {
225
- tagName = node.openNode?.tag;
226
- }
227
- const element = this.renderer.createElement(tagName);
228
- // 设置属性
229
- if (node.openNode.attrs) {
230
- node.openNode.attrs.forEach(([key, value]) => {
231
- this.renderer.setAttribute(element, key, value);
232
- });
233
- }
234
- // 特殊处理fence类型的token
235
- if (node.openNode.type === 'fence') {
236
- return this.processFenceNode(node.openNode);
237
- }
238
- // 处理所有带tag的AST节点
239
- if (node.openNode?.tag) {
240
- let tagName = this.parser.isValidTagName(node.openNode?.tag)
241
- ? node.openNode?.tag
242
- : 'div';
243
- const element = this.renderer.createElement(tagName);
244
- // 递归处理所有子节点并添加到当前元素
245
- node.children.forEach((child) => {
246
- const childNode = this.processASTNode(child);
247
- if (childNode) {
248
- this.renderer.appendChild(element, childNode);
249
- }
250
- });
251
- return element;
252
- }
253
- node.children.forEach((child) => {
254
- const childNode = this.processASTNode(child);
255
- if (childNode) {
256
- this.renderer.appendChild(element, childNode);
257
- }
258
- });
259
- return element;
260
- }
261
- processToken(token) {
262
- if (token.type === 'text') {
263
- return this.renderer.createText(token.content || '');
264
- }
265
- if (token.type === 'inline') {
266
- return this.processInlineToken(token);
267
- }
268
- if (token.type === 'fence') {
269
- return this.processFenceNode(token);
270
- }
271
- if (token.type === 'softbreak') {
272
- if (this.mdt.options.breaks) {
273
- return this.renderer.createElement('br');
274
- }
275
- else {
276
- return this.renderer.createText('\n');
277
- }
278
- }
279
- if (token.type === 'html_block' || token.type === 'html_inline') {
280
- const htmlContainer = this.renderer.createElement(token.type === 'html_block' ? 'div' : 'span');
281
- this.renderer.setProperty(htmlContainer, 'innerHTML', token.content || '');
282
- return htmlContainer;
283
- }
284
- if (token.tag) {
285
- const tagName = this.parser.isValidTagName(token.tag) ? token.tag : 'div';
286
- const element = this.renderer.createElement(tagName);
287
- if (token.attrs) {
288
- token.attrs.forEach(([key, value]) => {
289
- this.renderer.setAttribute(element, key, value);
290
- });
291
- }
292
- // 设置内容
293
- if (token.content) {
294
- const textNode = this.renderer.createText(token.content);
295
- this.renderer.appendChild(element, textNode);
296
- }
297
- return element;
298
- }
299
- return this.renderer.createText(token.content || '');
300
- }
301
- createCodeBlock(language, code, blockIndex) {
302
- const key = `code-block-${blockIndex}`;
303
- // 检查缓存中是否已存在相同blockIndex的组件
304
- if (this.codeBlockComponentsCache.has(key)) {
305
- const cachedItem = this.codeBlockComponentsCache.get(key);
306
- if (cachedItem) {
307
- // 更新现有组件的属性
308
- const componentRef = cachedItem.componentRef;
309
- componentRef.setInput('language', language);
310
- componentRef.setInput('code', code);
311
- componentRef.setInput('theme', this.theme);
312
- // 触发变更检测
313
- componentRef.changeDetectorRef.detectChanges();
314
- // 返回缓存的容器,无需重新创建
315
- return cachedItem.container;
316
- }
317
- }
318
- // 缓存中不存在,创建新组件
319
- const codeBlockContainer = this.renderer.createElement('div');
320
- this.renderer.setAttribute(codeBlockContainer, 'key', key);
321
- const componentRef = this.markdownContainer.createComponent(CodeBlockComponent, {
322
- projectableNodes: [],
323
- injector: this.markdownContainer.injector,
324
- });
325
- // 设置组件属性
326
- componentRef.instance.language = language;
327
- componentRef.instance.code = code;
328
- componentRef.instance.blockIndex = blockIndex;
329
- componentRef.instance.theme = this.theme;
330
- componentRef.instance.enableMermaid = this.enableMermaid;
331
- componentRef.instance.mermaidConfig = this.mermaidConfig || {};
332
- componentRef.instance.actionsTemplate = this.actionsTemplate;
333
- componentRef.instance.headerTemplate = this.headerTemplate;
334
- componentRef.instance.contentTemplate = this.contentTemplate;
335
- // 触发变更检测
336
- componentRef.changeDetectorRef.detectChanges();
337
- // 将组件的DOM元素附加到容器中
338
- this.renderer.appendChild(codeBlockContainer, componentRef.location.nativeElement);
339
- // 添加样式类
340
- this.renderer.addClass(codeBlockContainer, 'code-block-wrapper');
341
- // 缓存组件实例和容器
342
- this.codeBlockComponentsCache.set(key, {
343
- componentRef: componentRef,
344
- container: codeBlockContainer
345
- });
346
- // 返回创建的DOM容器
347
- return codeBlockContainer;
348
- }
349
- typewriterStart() {
350
- this.foundation.typewriterStart();
351
- }
352
- // 在组件销毁时清理缓存,避免内存泄漏
353
- ngOnDestroy() {
354
- // 销毁所有缓存的组件实例
355
- this.codeBlockComponentsCache.forEach((cachedItem) => {
356
- cachedItem.componentRef.destroy();
357
- });
358
- this.codeBlockComponentsCache.clear();
359
- }
360
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MarkdownCardComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
361
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: MarkdownCardComponent, selector: "mc-markdown-card", inputs: { content: "content", typing: "typing", enableThink: "enableThink", typingOptions: "typingOptions", thinkOptions: "thinkOptions", mdOptions: "mdOptions", mdPlugins: "mdPlugins", customXssRules: "customXssRules", theme: "theme", enableMermaid: "enableMermaid", mermaidConfig: "mermaidConfig", actionsTemplate: "actionsTemplate", headerTemplate: "headerTemplate", contentTemplate: "contentTemplate" }, outputs: { afterMdtInit: "afterMdtInit", typingStart: "typingStart", typingEvent: "typingEvent", typingEnd: "typingEnd" }, viewQueries: [{ propertyName: "markdownContainer", first: true, predicate: ["markdownContainer"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"mc-markdown-render\" [ngClass]=\"theme === 'dark' ? 'mc-markdown-render-dark' : 'mc-markdown-render-light'\">\n <div #markdownContainer></div>\n</div>\n<ng-content></ng-content>", styles: [".mc-markdown-render ::ng-deep ul,.mc-markdown-render ::ng-deep ol{list-style:none;margin:0;padding:0}.mc-markdown-render ::ng-deep ul{list-style-type:disc;padding-left:16px}.mc-markdown-render ::ng-deep ol{list-style-type:decimal;padding-inline-start:1.75em}.mc-markdown-render ::ng-deep p{line-height:28px;margin:0;padding:0;overflow-wrap:break-word}.mc-markdown-render ::ng-deep h1{font-size:32px;line-height:40px;overflow-wrap:break-word}.mc-markdown-render ::ng-deep h3{line-height:28px;font-size:20px;overflow-wrap:break-word}.mc-markdown-render ::ng-deep table{margin-bottom:10px;border-collapse:collapse;display:table}.mc-markdown-render ::ng-deep td,.mc-markdown-render ::ng-deep th{padding:5px 10px;border:1px solid var(--devui-dividing-line, #f2f2f3);background-color:var(--devui-base-bg, #ffffff)}.mc-markdown-render ::ng-deep caption{border:1px dashed var(--devui-line, #d7d8da);border-bottom:0;padding:3px;text-align:center}.mc-markdown-render ::ng-deep th{border-top:1px solid var(--devui-dividing-line, #f2f2f3);background-color:var(--devui-global-bg, #f6f6f8)}.mc-markdown-render ::ng-deep td p{margin:0;padding:0}.mc-markdown-render ::ng-deep .h1,.mc-markdown-render ::ng-deep .h2,.mc-markdown-render ::ng-deep .h3,.mc-markdown-render ::ng-deep .h4,.mc-markdown-render ::ng-deep .h5,.mc-markdown-render ::ng-deep .h6,.mc-markdown-render ::ng-deep h1,.mc-markdown-render ::ng-deep h2,.mc-markdown-render ::ng-deep h3,.mc-markdown-render ::ng-deep h4,.mc-markdown-render ::ng-deep h5,.mc-markdown-render ::ng-deep h6{line-height:1.1}.mc-markdown-render ::ng-deep blockquote{padding:0 8px;margin:0;color:var(--devui-text-weak, #575d6c);border-left:5px solid var(--devui-dividing-line, #f2f2f3)}.mc-markdown-render ::ng-deep a{color:var(--devui-link, #526ecc);text-decoration:underline;cursor:pointer}.mc-markdown-render ::ng-deep a:hover{color:var(--devui-link-active, #526ecc)}.mc-markdown-render ::ng-deep img{max-width:100%}.mc-markdown-render{font-size:var(--devui-font-size, 14px);overflow-x:auto}.mc-markdown-render.mc-markdown-render-dark{color:#ced1db}.mc-markdown-render.mc-markdown-render-light{color:#252b3a}::ng-deep .mc-think-block{color:var(--devui-aide-text, #71757f);border-left:1px solid var(--devui-line, #d7d8da);padding-left:8px;margin-bottom:1rem}::ng-deep .mc-typewriter-color{background-image:-webkit-linear-gradient(left,#191919,#5588f0,#e171ee,#f2c55c);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}::ng-deep .mc-typewriter-gradient{background:linear-gradient(to right,var(--devui-text, #252b3a),var(--devui-base-bg, #ffffff));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}::ng-deep .mc-typewriter-cursor{font-weight:900;animation:typewriter .8s linear 0s infinite}@keyframes typewriter{0%{opacity:1}50%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
362
- }
363
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MarkdownCardComponent, decorators: [{
364
- type: Component,
365
- args: [{ selector: 'mc-markdown-card', template: "<div class=\"mc-markdown-render\" [ngClass]=\"theme === 'dark' ? 'mc-markdown-render-dark' : 'mc-markdown-render-light'\">\n <div #markdownContainer></div>\n</div>\n<ng-content></ng-content>", styles: [".mc-markdown-render ::ng-deep ul,.mc-markdown-render ::ng-deep ol{list-style:none;margin:0;padding:0}.mc-markdown-render ::ng-deep ul{list-style-type:disc;padding-left:16px}.mc-markdown-render ::ng-deep ol{list-style-type:decimal;padding-inline-start:1.75em}.mc-markdown-render ::ng-deep p{line-height:28px;margin:0;padding:0;overflow-wrap:break-word}.mc-markdown-render ::ng-deep h1{font-size:32px;line-height:40px;overflow-wrap:break-word}.mc-markdown-render ::ng-deep h3{line-height:28px;font-size:20px;overflow-wrap:break-word}.mc-markdown-render ::ng-deep table{margin-bottom:10px;border-collapse:collapse;display:table}.mc-markdown-render ::ng-deep td,.mc-markdown-render ::ng-deep th{padding:5px 10px;border:1px solid var(--devui-dividing-line, #f2f2f3);background-color:var(--devui-base-bg, #ffffff)}.mc-markdown-render ::ng-deep caption{border:1px dashed var(--devui-line, #d7d8da);border-bottom:0;padding:3px;text-align:center}.mc-markdown-render ::ng-deep th{border-top:1px solid var(--devui-dividing-line, #f2f2f3);background-color:var(--devui-global-bg, #f6f6f8)}.mc-markdown-render ::ng-deep td p{margin:0;padding:0}.mc-markdown-render ::ng-deep .h1,.mc-markdown-render ::ng-deep .h2,.mc-markdown-render ::ng-deep .h3,.mc-markdown-render ::ng-deep .h4,.mc-markdown-render ::ng-deep .h5,.mc-markdown-render ::ng-deep .h6,.mc-markdown-render ::ng-deep h1,.mc-markdown-render ::ng-deep h2,.mc-markdown-render ::ng-deep h3,.mc-markdown-render ::ng-deep h4,.mc-markdown-render ::ng-deep h5,.mc-markdown-render ::ng-deep h6{line-height:1.1}.mc-markdown-render ::ng-deep blockquote{padding:0 8px;margin:0;color:var(--devui-text-weak, #575d6c);border-left:5px solid var(--devui-dividing-line, #f2f2f3)}.mc-markdown-render ::ng-deep a{color:var(--devui-link, #526ecc);text-decoration:underline;cursor:pointer}.mc-markdown-render ::ng-deep a:hover{color:var(--devui-link-active, #526ecc)}.mc-markdown-render ::ng-deep img{max-width:100%}.mc-markdown-render{font-size:var(--devui-font-size, 14px);overflow-x:auto}.mc-markdown-render.mc-markdown-render-dark{color:#ced1db}.mc-markdown-render.mc-markdown-render-light{color:#252b3a}::ng-deep .mc-think-block{color:var(--devui-aide-text, #71757f);border-left:1px solid var(--devui-line, #d7d8da);padding-left:8px;margin-bottom:1rem}::ng-deep .mc-typewriter-color{background-image:-webkit-linear-gradient(left,#191919,#5588f0,#e171ee,#f2c55c);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}::ng-deep .mc-typewriter-gradient{background:linear-gradient(to right,var(--devui-text, #252b3a),var(--devui-base-bg, #ffffff));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}::ng-deep .mc-typewriter-cursor{font-weight:900;animation:typewriter .8s linear 0s infinite}@keyframes typewriter{0%{opacity:1}50%{opacity:0}to{opacity:1}}\n"] }]
366
- }], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }], propDecorators: { content: [{
367
- type: Input
368
- }], typing: [{
369
- type: Input
370
- }], enableThink: [{
371
- type: Input
372
- }], typingOptions: [{
373
- type: Input
374
- }], thinkOptions: [{
375
- type: Input
376
- }], mdOptions: [{
377
- type: Input
378
- }], mdPlugins: [{
379
- type: Input
380
- }], customXssRules: [{
381
- type: Input
382
- }], theme: [{
383
- type: Input
384
- }], enableMermaid: [{
385
- type: Input
386
- }], mermaidConfig: [{
387
- type: Input
388
- }], actionsTemplate: [{
389
- type: Input
390
- }], headerTemplate: [{
391
- type: Input
392
- }], contentTemplate: [{
393
- type: Input
394
- }], afterMdtInit: [{
395
- type: Output
396
- }], typingStart: [{
397
- type: Output
398
- }], typingEvent: [{
399
- type: Output
400
- }], typingEnd: [{
401
- type: Output
402
- }], markdownContainer: [{
403
- type: ViewChild,
404
- args: ['markdownContainer', { read: ViewContainerRef, static: true }]
405
- }] } });
406
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLW5nL3NyYy9NYXJrZG93bkNhcmQvbWFya2Rvd24tY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLW5nL3NyYy9NYXJrZG93bkNhcmQvbWFya2Rvd24tY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQU1MLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUVaLGdCQUFnQixHQUdqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLFVBQVUsTUFBTSxhQUFhLENBQUM7QUFFckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBRXZGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSzVELE9BQU8sYUFBYSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFFTCxzQkFBc0IsR0FDdkIsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RCxPQUFPLGFBQWEsTUFBTSxpREFBaUQsQ0FBQzs7O0FBTzVFLE1BQU0sT0FBTyxxQkFDWCxTQUFRLGFBQWE7SUFxQ3JCLFlBQ1UsUUFBa0MsRUFDbEMsUUFBbUIsRUFDcEIsR0FBc0I7UUFFN0IsS0FBSyxFQUFFLENBQUM7UUFKQSxhQUFRLEdBQVIsUUFBUSxDQUEwQjtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ3BCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBcEN0QixZQUFPLEdBQVcsRUFBRSxDQUFDO1FBQ3JCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDeEIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0Isa0JBQWEsR0FB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QUFLO3NCQUFiLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUtJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBR1AsaUJBQWlCO3NCQURoQixTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWZmRE9NIH0gZnJvbSAnZGlmZi1kb20nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgbWFya2Rvd25pdCBmcm9tICdtYXJrZG93bi1pdCc7XG5pbXBvcnQgdHlwZSB7IFRva2VuIH0gZnJvbSAnbWFya2Rvd24taXQnO1xuaW1wb3J0IHsgTURDYXJkU2VydmljZSB9IGZyb20gJy4uL2NvbXBvbmVudHMtY29tbW9uL01hcmtkb3duQ2FyZC9jb21tb24vTURDYXJkU2VydmljZSc7XG5pbXBvcnQgdHlwZSB7IEFTVE5vZGUgfSBmcm9tICcuLi9jb21wb25lbnRzLWNvbW1vbi9NYXJrZG93bkNhcmQvY29tbW9uL21kQ2FyZC50eXBlcyc7XG5pbXBvcnQgeyBDb2RlQmxvY2tDb21wb25lbnQgfSBmcm9tICcuL2NvZGUtYmxvY2suY29tcG9uZW50JztcbmltcG9ydCB7XG4gIE1hcmtkb3duQ2FyZFByb3BzLFxuICBkZWZhdWx0VHlwaW5nQ29uZmlnLFxufSBmcm9tICcuLi9jb21wb25lbnRzLWNvbW1vbi9NYXJrZG93bkNhcmQvY29tbW9uL21kQ2FyZC50eXBlcyc7XG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tICcuLi9CYXNlL2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIE1hcmtkb3duQ2FyZEFkYXB0ZXIsXG4gIE1hcmtkb3duQ2FyZEZvdW5kYXRpb24sXG59IGZyb20gJy4uL2NvbXBvbmVudHMtY29tbW9uL01hcmtkb3duQ2FyZC9mb3VuZGF0aW9uJztcbmltcG9ydCBNZFBhcnNlclV0aWxzIGZyb20gJy4uL2NvbXBvbmVudHMtY29tbW9uL01hcmtkb3duQ2FyZC9jb21tb24vcGFyc2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWMtbWFya2Rvd24tY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXJrZG93bi1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFya2Rvd24tY2FyZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBNYXJrZG93bkNhcmRDb21wb25lbnRcbiAgZXh0ZW5kcyBCYXNlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveVxue1xuICBwcml2YXRlIGRpZmZEb206IERpZmZET007XG4gIEBJbnB1dCgpIGNvbnRlbnQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB0eXBpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZW5hYmxlVGhpbms6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgdHlwaW5nT3B0aW9uczogTWFya2Rvd25DYXJkUHJvcHNbJ3R5cGluZ09wdGlvbnMnXSB8IGFueSA9IHt9O1xuICBASW5wdXQoKSB0aGlua09wdGlvbnM6IE1hcmtkb3duQ2FyZFByb3BzWyd0aGlua09wdGlvbnMnXSA9IHt9O1xuICBASW5wdXQoKSBtZE9wdGlvbnM6IE1hcmtkb3duQ2FyZFByb3BzWydtZE9wdGlvbnMnXSA9IHt9O1xuICBASW5wdXQoKSBtZFBsdWdpbnM6IE1hcmtkb3duQ2FyZFByb3BzWydtZFBsdWdpbnMnXSA9IFtdO1xuICBASW5wdXQoKSBjdXN0b21Yc3NSdWxlczogTWFya2Rvd25DYXJkUHJvcHNbJ2N1c3RvbVhzc1J1bGVzJ10gPSBbXTtcbiAgQElucHV0KCkgdGhlbWU6ICdsaWdodCcgfCAnZGFyaycgfCBhbnkgPSAnbGlnaHQnO1xuICBASW5wdXQoKSBlbmFibGVNZXJtYWlkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1lcm1haWRDb25maWc6IE1hcmtkb3duQ2FyZFByb3BzWydtZXJtYWlkQ29uZmlnJ10gPSB7fTtcbiAgQElucHV0KCkgYWN0aW9uc1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGNvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuICBcbiAgLy8g57uE5Lu257yT5a2Y5pig5bCE6KGo77yM55So5LqO5a2Y5YKo5bey5Yib5bu655qEQ29kZUJsb2NrQ29tcG9uZW505a6e5L6LXG4gIHByaXZhdGUgY29kZUJsb2NrQ29tcG9uZW50c0NhY2hlOiBNYXA8c3RyaW5nLCB7Y29tcG9uZW50UmVmOiBhbnksIGNvbnRhaW5lcjogSFRNTEVsZW1lbnR9PiA9IG5ldyBNYXAoKTtcblxuICBAT3V0cHV0KCkgYWZ0ZXJNZHRJbml0ID0gbmV3IEV2ZW50RW1pdHRlcjxtYXJrZG93bml0PigpO1xuICBAT3V0cHV0KCkgdHlwaW5nU3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSB0eXBpbmdFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHR5cGluZ0VuZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkKCdtYXJrZG93bkNvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIG1hcmtkb3duQ29udGFpbmVyITogVmlld0NvbnRhaW5lclJlZjtcblxuICBwcml2YXRlIG1kdDogbWFya2Rvd25pdDtcbiAgdHlwaW5nSW5kZXg6IG51bWJlciA9IDA7XG4gIGlzVHlwaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIHRpbWVyOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgcGFyc2VyID0gTWRQYXJzZXJVdGlscztcbiAgbWRDYXJkU2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5tZHQgPSBtYXJrZG93bml0KHtcbiAgICAgIGJyZWFrczogdHJ1ZSxcbiAgICAgIGxpbmtpZnk6IHRydWUsXG4gICAgICBodG1sOiB0cnVlLFxuICAgICAgaGlnaGxpZ2h0OiAoc3RyLCBsYW5nKSA9PiB7XG4gICAgICAgIC8vIOS4jlZ1Zee7hOS7tuS/neaMgeS4gOiHtOeahOmrmOS6ruWkhOeQhlxuICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9LFxuICAgICAgLi4udGhpcy5tZE9wdGlvbnMsXG4gICAgfSk7XG4gICAgdGhpcy5tZENhcmRTZXJ2aWNlID0gbmV3IE1EQ2FyZFNlcnZpY2UoKTtcbiAgICB0aGlzLmZvdW5kYXRpb24gPSBuZXcgTWFya2Rvd25DYXJkRm91bmRhdGlvbih0aGlzLmFkYXB0ZXIpO1xuXG4gICAgLy8g5Yid5aeL5YyWIGRpZmZEb20g5a6e5L6LXG4gICAgdGhpcy5kaWZmRG9tID0gbmV3IERpZmZET00oe1xuICAgICAgLy8g6YWN572uZmlsdGVyT3V0ZXJEaWZm6ZKp5a2Q77yM6K+G5YirY29kZS1ibG9jay13cmFwcGVy5YWD57Sg5bm255u05o6l5pu/5o2iXG4gICAgICBmaWx0ZXJPdXRlckRpZmY6ICh0MSwgdDIsIGRpZmZzKSA9PiB7XG4gICAgICAgIC8vIOajgOafpeaYr+WQpuaYr2NsYXNz5Li6Y29kZS1ibG9jay13cmFwcGVy55qEZGl25YWD57SgXG4gICAgICAgIGNvbnN0IGlzVGFyZ2V0RWxlbWVudCA9IFxuICAgICAgICAgIHQyLm5vZGVOYW1lID09PSAnRElWJyAmJlxuICAgICAgICAgIHQyLmF0dHJpYnV0ZXMgJiYgdDIuYXR0cmlidXRlcy5jbGFzcyAmJiB0Mi5hdHRyaWJ1dGVzLmNsYXNzLmluY2x1ZGVzKCdjb2RlLWJsb2NrLXdyYXBwZXInKTtcblxuICAgICAgICBpZiAoaXNUYXJnZXRFbGVtZW50KSB7XG4gICAgICAgICAgdDEuaW5uZXJEb25lID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5tZENhcmRTZXJ2aWNlLnNldE1kUGx1Z2lucyh0aGlzLm1kUGx1Z2lucyB8fCBbXSwgdGhpcy5tZHQpO1xuICAgIHRoaXMucGFyc2VDb250ZW50KCk7XG4gICAgdGhpcy5hZnRlck1kdEluaXQuZW1pdCh0aGlzLm1kdCk7XG4gIH1cblxuICBvdmVycmlkZSBnZXQgYWRhcHRlcigpOiBNYXJrZG93bkNhcmRBZGFwdGVyIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3VwZXIuYWRhcHRlcixcbiAgICAgIGxvY2FsZTogKGtleTogc3RyaW5nLCBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSA9PlxuICAgICAgICB0aGlzLmFkYXB0ZXIubG9jYWxlKGtleSwgcGFyYW1zKSxcbiAgICAgIHR5cGluZ1N0YXJ0OiAoKSA9PiB0aGlzLnR5cGluZ1N0YXJ0LmVtaXQoKSxcbiAgICAgIHR5cGluZ0VuZDogKCkgPT4gdGhpcy50eXBpbmdFbmQuZW1pdCgpLFxuICAgICAgdHlwaW5nRXZlbnQ6ICgpID0+IHRoaXMudHlwaW5nRXZlbnQuZW1pdCgpLFxuICAgICAgcGFyc2VDb250ZW50OiAoY29udGVudDogc3RyaW5nKSA9PiB7XG4gICAgICAgIC8vIOino+aekCBNYXJrZG93biDlhoXlrrlcbiAgICAgICAgY29uc3QgdG9rZW5zOiBhbnkgPSB0aGlzLm1kdC5wYXJzZShjb250ZW50LCB7fSk7XG4gICAgICAgIGNvbnN0IGFzdCA9IHRoaXMucGFyc2VyLnRva2Vuc1RvQXN0KHRva2Vucyk7XG4gICAgICAgIGNvbnN0IHZub2RlcyA9IHRoaXMuYXN0VG9Wbm9kZXMoYXN0KTtcbiAgICAgICAgdGhpcy5yZW5kZXJDb250ZW50KHZub2Rlcyk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2NvbnRlbnQnXSkge1xuICAgICAgaWYgKCF0aGlzLnR5cGluZykge1xuICAgICAgICB0aGlzLnR5cGluZ0luZGV4ID0gdGhpcy5jb250ZW50Py5sZW5ndGggfHwgMDtcbiAgICAgICAgdGhpcy5wYXJzZUNvbnRlbnQoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuY29udGVudC5pbmRleE9mKGNoYW5nZXNbJ2NvbnRlbnQnXT8ucHJldmlvdXNWYWx1ZSkgPT09IC0xKSB7XG4gICAgICAgIHRoaXMudHlwaW5nSW5kZXggPSAwO1xuICAgICAgfVxuICAgICAgLy8g5L2/55Soc2V0VGltZW91dOaooeaLn1Z1ZeeahG5leHRUaWNr6KGM5Li6XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudHlwZXdyaXRlclN0YXJ0KCkpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzWydlbmFibGVUaGluayddIHx8IGNoYW5nZXNbJ3RoaW5rT3B0aW9ucyddIHx8IGNoYW5nZXNbJ3RoZW1lJ10pIHtcbiAgICAgIHRoaXMucGFyc2VDb250ZW50KCk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXNbJ2N1c3RvbVhzc1J1bGVzJ10pIHtcbiAgICAgIHRoaXMubWRDYXJkU2VydmljZS5zZXRDdXN0b21Yc3NSdWxlcyh0aGlzLmN1c3RvbVhzc1J1bGVzIHx8IFtdKTtcbiAgICAgIHRoaXMucGFyc2VDb250ZW50KCk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXNbJ21kUGx1Z2lucyddKSB7XG4gICAgICB0aGlzLm1kQ2FyZFNlcnZpY2Uuc2V0TWRQbHVnaW5zKHRoaXMubWRQbHVnaW5zIHx8IFtdLCB0aGlzLm1kdCk7XG4gICAgICB0aGlzLnBhcnNlQ29udGVudCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VDb250ZW50KCkge1xuICAgIHRoaXMuZm91bmRhdGlvbi5wYXJzZUNvbnRlbnQodGhpcy5jb250ZW50IHx8ICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQ29udGVudCh2bm9kZXMpIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5tYXJrZG93bkNvbnRhaW5lciB8fFxuICAgICAgIXRoaXMubWFya2Rvd25Db250YWluZXIuZWxlbWVudCB8fFxuICAgICAgIXRoaXMubWFya2Rvd25Db250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50XG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5tYXJrZG93bkNvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAvLyDliJvlu7rmlrDlhoXlrrnlrrnlmahcbiAgICBjb25zdCBuZXdDb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdm5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgbm9kZSAmJlxuICAgICAgICAobm9kZS5ub2RlVHlwZSB8fFxuICAgICAgICAgIHR5cGVvZiBub2RlID09PSAnc3RyaW5nJyB8fFxuICAgICAgICAgIG5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudClcbiAgICAgICkge1xuICAgICAgICBuZXdDb250ZW50LmFwcGVuZENoaWxkKG5vZGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8g5LiN6YCC55SoZGlmZi1kb23vvIznm7TmjqXmm7/mjaLlhoXlrrlcbiAgICBsZXQgbm9ESWZmID0gZmFsc2U7XG4gICAgaWYgKG5vRElmZikge1xuICAgICAgd2hpbGUgKGNvbnRhaW5lci5maXJzdENoaWxkKSB7XG4gICAgICAgIGNvbnRhaW5lci5yZW1vdmVDaGlsZChjb250YWluZXIuZmlyc3RDaGlsZCk7XG4gICAgICB9XG4gICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQobmV3Q29udGVudCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IG9sZE5vZGUgPSBjb250YWluZXI7XG4gICAgbGV0IG5ld05vZGUgPSBuZXdDb250ZW50O1xuICAgIGNvbnN0IHBhdGNoZXMgPSB0aGlzLmRpZmZEb20uZGlmZihvbGROb2RlLCBuZXdOb2RlKTtcbiAgICAvL2NvZGUtYmxvY2std3JhcHBlclxuICAgIHRoaXMuZGlmZkRvbS5hcHBseShjb250YWluZXIsIHBhdGNoZXMpO1xuICAgIC8vIOS7jnZOb2Rlc+S4reaJvuWIsOaJgOaciWNsYXNz5Li6Y29kZS1ibG9jay13cmFwcGVy55qEZGl25YWD57SgXG4gICAgY29uc3QgY29kZUJsb2NrV3JhcHBlcnMgPSB2bm9kZXMuZmlsdGVyKChub2RlKSA9PiB7XG4gICAgICByZXR1cm4gbm9kZS5ub2RlTmFtZSA9PT0gJ0RJVicgJiYgbm9kZS5jbGFzc05hbWU/LmluY2x1ZGVzKCdjb2RlLWJsb2NrLXdyYXBwZXInKTtcbiAgICB9KTtcbiAgICAvLyDlsIZjb2RlQmxvY2tXcmFwcGVyc+S4reeahOavj+S4qmRpduWFg+e0oOabv+aNomNvbnRhaW5lcuS4reeahOWvueW6lGtleeWxnuaAp+eahOWFg+e0oFxuICAgIGNvZGVCbG9ja1dyYXBwZXJzLmZvckVhY2goKG5ld0NvZGVCbG9jaykgPT4ge1xuICAgICAgaWYgKG5ld0NvZGVCbG9jayAmJiBuZXdDb2RlQmxvY2suYXR0cmlidXRlcyAmJiBuZXdDb2RlQmxvY2suYXR0cmlidXRlcy5rZXkpIHtcbiAgICAgICAgY29uc3Qga2V5ID0gbmV3Q29kZUJsb2NrLmF0dHJpYnV0ZXMua2V5LnZhbHVlO1xuICAgICAgICAvLyDmn6Xmib5jb250YWluZXLkuK3lr7nlupRrZXnnmoTlhYPntKBcbiAgICAgICAgY29uc3QgZXhpc3RpbmdFbGVtZW50ID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoYFtrZXk9XCIke2tleX1cIl1gKTtcbiAgICAgICAgXG4gICAgICAgIGlmIChleGlzdGluZ0VsZW1lbnQgJiYgbmV3Q29kZUJsb2NrIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAvLyDmm7/mjaLlhYPntKBcbiAgICAgICAgICBpZiAobmV3Q29kZUJsb2NrICE9PSBleGlzdGluZ0VsZW1lbnQpIHtcbiAgICAgICAgICAgICAgZXhpc3RpbmdFbGVtZW50LnBhcmVudE5vZGU/LnJlcGxhY2VDaGlsZChuZXdDb2RlQmxvY2ssIGV4aXN0aW5nRWxlbWVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzdFRvVm5vZGVzKG5vZGVzOiBBU1ROb2RlW10pIHtcbiAgICByZXR1cm4gbm9kZXMubWFwKChub2RlKSA9PiB0aGlzLnByb2Nlc3NBU1ROb2RlKG5vZGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc0FTVE5vZGUobm9kZTogQVNUTm9kZSB8IFRva2VuIHwgYW55KSB7XG4gICAgaWYgKG5vZGUubm9kZVR5cGUgPT09ICdodG1sX2lubGluZScgfHwgbm9kZS5ub2RlVHlwZSA9PT0gJ2h0bWxfYmxvY2snKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9jZXNzSFRNTE5vZGUobm9kZSk7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUubm9kZVR5cGUgPT09ICdpbmxpbmUnKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9jZXNzSW5saW5lVG9rZW4obm9kZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmZvdW5kYXRpb24uaXNUb2tlbihub2RlKSkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1Rva2VuKG5vZGUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnByb2Nlc3NBU1ROb2RlSW50ZXJuYWwobm9kZSk7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NIVE1MTm9kZShub2RlOiBBU1ROb2RlKTogdm9pZCB7XG4gICAgaWYgKCFub2RlLm9wZW5Ob2RlPy5jb250ZW50KSByZXR1cm47XG5cbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoXG4gICAgICBub2RlLm5vZGVUeXBlID09PSAnaHRtbF9ibG9jaycgPyAnZGl2JyA6ICdzcGFuJ1xuICAgICk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShjb250YWluZXIsICdpbm5lckhUTUwnLCBub2RlLm9wZW5Ob2RlLmNvbnRlbnQpO1xuXG4gICAgLy8g5aSE55CG5a2Q6IqC54K5XG4gICAgaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICBub2RlLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoaWxkVm5vZGUgPSB0aGlzLnByb2Nlc3NBU1ROb2RlKGNoaWxkIGFzIGFueSk7XG4gICAgICAgIGlmIChjaGlsZFZub2RlKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChjb250YWluZXIuZmlyc3RDaGlsZCB8fCBjb250YWluZXIsIGNoaWxkVm5vZGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRhaW5lcjtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc0lubGluZVRva2VuKG5vZGU6IEFTVE5vZGUgfCBhbnkpIHtcbiAgICBjb25zdCBkaXYgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGxldCBodG1sID0gJyc7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghbm9kZS5vcGVuTm9kZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGh0bWwgPSB0aGlzLm1kdC5yZW5kZXJlci5yZW5kZXIoW25vZGUub3Blbk5vZGVdLCB0aGlzLm1kdC5vcHRpb25zLCB7fSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHJlbmRlcmluZyBpbmxpbmUgdG9rZW46Jywgbm9kZSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyDlsIZIVE1M5a2X56ym5Liy6L2s5o2i5Li6RE9N6IqC54K5XG4gICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShkaXYsICdpbm5lckhUTUwnLCBodG1sKTtcblxuICAgIC8vIOWmguaenOWPquacieS4gOS4quWtkOiKgueCue+8jOebtOaOpei/lOWbnuWtkOiKgueCueiAjOS4jeaYr+WMheWQq2RpdlxuICAgIGlmIChkaXYuZmlyc3RDaGlsZCAmJiBkaXYuY2hpbGROb2Rlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiBkaXYuZmlyc3RDaGlsZDtcbiAgICB9XG5cbiAgICByZXR1cm4gZGl2O1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzRmVuY2VOb2RlKHRva2VuOiBUb2tlbikge1xuICAgIGNvbnN0IGxhbmd1YWdlID1cbiAgICAgIHRva2VuLmluZm8/LnJlcGxhY2UoLzxzcGFuXFxiW14+XSo+L2ksICcnKS5yZXBsYWNlKCc8L3NwYW4+JywgJycpIHx8ICcnO1xuICAgIGNvbnN0IGNvZGUgPSB0b2tlbi5jb250ZW50IHx8ICcnO1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZUNvZGVCbG9jayhsYW5ndWFnZSwgY29kZSwgKHRva2VuIGFzIGFueSkudG9rZW5JbmRleCB8fCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc0FTVE5vZGVJbnRlcm5hbChub2RlOiBBU1ROb2RlIHwgYW55KSB7XG4gICAgbGV0IHRhZ05hbWUgPSAnZGl2JztcbiAgICBpZiAobm9kZS5vcGVuTm9kZT8udGFnICYmIHRoaXMucGFyc2VyLmlzVmFsaWRUYWdOYW1lKG5vZGUub3Blbk5vZGU/LnRhZykpIHtcbiAgICAgIHRhZ05hbWUgPSBub2RlLm9wZW5Ob2RlPy50YWc7XG4gICAgfVxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQodGFnTmFtZSk7XG5cbiAgICAvLyDorr7nva7lsZ7mgKdcbiAgICBpZiAobm9kZS5vcGVuTm9kZS5hdHRycykge1xuICAgICAgbm9kZS5vcGVuTm9kZS5hdHRycy5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWxlbWVudCwga2V5LCB2YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyDnibnmrorlpITnkIZmZW5jZeexu+Wei+eahHRva2VuXG4gICAgaWYgKG5vZGUub3Blbk5vZGUudHlwZSA9PT0gJ2ZlbmNlJykge1xuICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0ZlbmNlTm9kZShub2RlLm9wZW5Ob2RlIGFzIHVua25vd24gYXMgVG9rZW4pO1xuICAgIH1cblxuICAgIC8vIOWkhOeQhuaJgOacieW4pnRhZ+eahEFTVOiKgueCuVxuICAgIGlmIChub2RlLm9wZW5Ob2RlPy50YWcpIHtcbiAgICAgIGxldCB0YWdOYW1lID0gdGhpcy5wYXJzZXIuaXNWYWxpZFRhZ05hbWUobm9kZS5vcGVuTm9kZT8udGFnKVxuICAgICAgICA/IG5vZGUub3Blbk5vZGU/LnRhZ1xuICAgICAgICA6ICdkaXYnO1xuICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCh0YWdOYW1lKTtcblxuICAgICAgLy8g6YCS5b2S5aSE55CG5omA5pyJ5a2Q6IqC54K55bm25re75Yqg5Yiw5b2T5YmN5YWD57SgXG4gICAgICBub2RlLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoaWxkTm9kZSA9IHRoaXMucHJvY2Vzc0FTVE5vZGUoY2hpbGQpO1xuICAgICAgICBpZiAoY2hpbGROb2RlKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChlbGVtZW50LCBjaGlsZE5vZGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH1cblxuICAgIG5vZGUuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgIGNvbnN0IGNoaWxkTm9kZSA9IHRoaXMucHJvY2Vzc0FTVE5vZGUoY2hpbGQpO1xuICAgICAgaWYgKGNoaWxkTm9kZSkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGVsZW1lbnQsIGNoaWxkTm9kZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NUb2tlbih0b2tlbjogVG9rZW4pIHtcbiAgICBpZiAodG9rZW4udHlwZSA9PT0gJ3RleHQnKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJlci5jcmVhdGVUZXh0KHRva2VuLmNvbnRlbnQgfHwgJycpO1xuICAgIH1cblxuICAgIGlmICh0b2tlbi50eXBlID09PSAnaW5saW5lJykge1xuICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0lubGluZVRva2VuKHRva2VuKTtcbiAgICB9XG5cbiAgICBpZiAodG9rZW4udHlwZSA9PT0gJ2ZlbmNlJykge1xuICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0ZlbmNlTm9kZSh0b2tlbik7XG4gICAgfVxuXG4gICAgaWYgKHRva2VuLnR5cGUgPT09ICdzb2Z0YnJlYWsnKSB7XG4gICAgICBpZiAodGhpcy5tZHQub3B0aW9ucy5icmVha3MpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnYnInKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQoJ1xcbicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0b2tlbi50eXBlID09PSAnaHRtbF9ibG9jaycgfHwgdG9rZW4udHlwZSA9PT0gJ2h0bWxfaW5saW5lJykge1xuICAgICAgY29uc3QgaHRtbENvbnRhaW5lciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudChcbiAgICAgICAgdG9rZW4udHlwZSA9PT0gJ2h0bWxfYmxvY2snID8gJ2RpdicgOiAnc3BhbidcbiAgICAgICk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KFxuICAgICAgICBodG1sQ29udGFpbmVyLFxuICAgICAgICAnaW5uZXJIVE1MJyxcbiAgICAgICAgdG9rZW4uY29udGVudCB8fCAnJ1xuICAgICAgKTtcbiAgICAgIHJldHVybiBodG1sQ29udGFpbmVyO1xuICAgIH1cblxuICAgIGlmICh0b2tlbi50YWcpIHtcbiAgICAgIGNvbnN0IHRhZ05hbWUgPSB0aGlzLnBhcnNlci5pc1ZhbGlkVGFnTmFtZSh0b2tlbi50YWcpID8gdG9rZW4udGFnIDogJ2Rpdic7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KHRhZ05hbWUpO1xuXG4gICAgICBpZiAodG9rZW4uYXR0cnMpIHtcbiAgICAgICAgdG9rZW4uYXR0cnMuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWxlbWVudCwga2V5LCB2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICAvLyDorr7nva7lhoXlrrlcbiAgICAgIGlmICh0b2tlbi5jb250ZW50KSB7XG4gICAgICAgIGNvbnN0IHRleHROb2RlID0gdGhpcy5yZW5kZXJlci5jcmVhdGVUZXh0KHRva2VuLmNvbnRlbnQpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGVsZW1lbnQsIHRleHROb2RlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQodG9rZW4uY29udGVudCB8fCAnJyk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNvZGVCbG9jayhsYW5ndWFnZTogc3RyaW5nLCBjb2RlOiBzdHJpbmcsIGJsb2NrSW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IGtleSA9IGBjb2RlLWJsb2NrLSR7YmxvY2tJbmRleH1gO1xuICAgIFxuICAgIC8vIOajgOafpee8k+WtmOS4reaYr+WQpuW3suWtmOWcqOebuOWQjGJsb2NrSW5kZXjnmoTnu4Tku7ZcbiAgICBpZiAodGhpcy5jb2RlQmxvY2tDb21wb25lbnRzQ2FjaGUuaGFzKGtleSkpIHtcbiAgICAgIGNvbnN0IGNhY2hlZEl0ZW0gPSB0aGlzLmNvZGVCbG9ja0NvbXBvbmVudHNDYWNoZS5nZXQoa2V5KTtcbiAgICAgIGlmIChjYWNoZWRJdGVtKSB7XG4gICAgICAgIC8vIOabtOaWsOeOsOaciee7hOS7tueahOWxnuaAp1xuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSBjYWNoZWRJdGVtLmNvbXBvbmVudFJlZjtcbiAgICAgICAgY29tcG9uZW50UmVmLnNldElucHV0KCdsYW5ndWFnZScsIGxhbmd1YWdlKTtcbiAgICAgICAgY29tcG9uZW50UmVmLnNldElucHV0KCdjb2RlJywgY29kZSk7XG4gICAgICAgIGNvbXBvbmVudFJlZi5zZXRJbnB1dCgndGhlbWUnLCB0aGlzLnRoZW1lKTtcbiAgICAgICAgXG4gICAgICAgIC8vIOinpuWPkeWPmOabtOajgOa1i1xuICAgICAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAvLyDov5Tlm57nvJPlrZjnmoTlrrnlmajvvIzml6DpnIDph43mlrDliJvlu7pcbiAgICAgICAgcmV0dXJuIGNhY2hlZEl0ZW0uY29udGFpbmVyO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvLyDnvJPlrZjkuK3kuI3lrZjlnKjvvIzliJvlu7rmlrDnu4Tku7ZcbiAgICBjb25zdCBjb2RlQmxvY2tDb250YWluZXIgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGNvZGVCbG9ja0NvbnRhaW5lciwgJ2tleScsIGtleSk7XG4gICAgXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5tYXJrZG93bkNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoQ29kZUJsb2NrQ29tcG9uZW50LCB7XG4gICAgICBwcm9qZWN0YWJsZU5vZGVzOiBbXSxcbiAgICAgIGluamVjdG9yOiB0aGlzLm1hcmtkb3duQ29udGFpbmVyLmluamVjdG9yLFxuICAgIH0pO1xuICAgIFxuICAgIC8vIOiuvue9rue7hOS7tuWxnuaAp1xuICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5sYW5ndWFnZSA9IGxhbmd1YWdlO1xuICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5jb2RlID0gY29kZTtcbiAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuYmxvY2tJbmRleCA9IGJsb2NrSW5kZXg7XG4gICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnRoZW1lID0gdGhpcy50aGVtZTtcbiAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZW5hYmxlTWVybWFpZCA9IHRoaXMuZW5hYmxlTWVybWFpZDtcbiAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UubWVybWFpZENvbmZpZyA9IHRoaXMubWVybWFpZENvbmZpZyB8fCB7fTtcbiAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuYWN0aW9uc1RlbXBsYXRlID0gdGhpcy5hY3Rpb25zVGVtcGxhdGU7XG4gICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmhlYWRlclRlbXBsYXRlID0gdGhpcy5oZWFkZXJUZW1wbGF0ZTtcbiAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY29udGVudFRlbXBsYXRlID0gdGhpcy5jb250ZW50VGVtcGxhdGU7XG4gICAgXG4gICAgLy8g6Kem5Y+R5Y+Y5pu05qOA5rWLXG4gICAgY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICBcbiAgICAvLyDlsIbnu4Tku7bnmoRET03lhYPntKDpmYTliqDliLDlrrnlmajkuK1cbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGNvZGVCbG9ja0NvbnRhaW5lciwgY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgIFxuICAgIC8vIOa3u+WKoOagt+W8j+exu1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoY29kZUJsb2NrQ29udGFpbmVyLCAnY29kZS1ibG9jay13cmFwcGVyJyk7XG4gICAgXG4gICAgLy8g57yT5a2Y57uE5Lu25a6e5L6L5ZKM5a655ZmoXG4gICAgdGhpcy5jb2RlQmxvY2tDb21wb25lbnRzQ2FjaGUuc2V0KGtleSwge1xuICAgICAgY29tcG9uZW50UmVmOiBjb21wb25lbnRSZWYsXG4gICAgICBjb250YWluZXI6IGNvZGVCbG9ja0NvbnRhaW5lclxuICAgIH0pO1xuICAgIFxuICAgIC8vIOi/lOWbnuWIm+W7uueahERPTeWuueWZqFxuICAgIHJldHVybiBjb2RlQmxvY2tDb250YWluZXI7XG4gIH1cblxuICBwcml2YXRlIHR5cGV3cml0ZXJTdGFydCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvdW5kYXRpb24udHlwZXdyaXRlclN0YXJ0KCk7XG4gIH1cbiAgXG4gIC8vIOWcqOe7hOS7tumUgOavgeaXtua4heeQhue8k+WtmO+8jOmBv+WFjeWGheWtmOazhOa8j1xuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAvLyDplIDmr4HmiYDmnInnvJPlrZjnmoTnu4Tku7blrp7kvotcbiAgICB0aGlzLmNvZGVCbG9ja0NvbXBvbmVudHNDYWNoZS5mb3JFYWNoKChjYWNoZWRJdGVtKSA9PiB7XG4gICAgICBjYWNoZWRJdGVtLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgfSk7XG4gICAgdGhpcy5jb2RlQmxvY2tDb21wb25lbnRzQ2FjaGUuY2xlYXIoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1jLW1hcmtkb3duLXJlbmRlclwiIFtuZ0NsYXNzXT1cInRoZW1lID09PSAnZGFyaycgPyAnbWMtbWFya2Rvd24tcmVuZGVyLWRhcmsnIDogJ21jLW1hcmtkb3duLXJlbmRlci1saWdodCdcIj5cbiAgPGRpdiAjbWFya2Rvd25Db250YWluZXI+PC9kaXY+XG48L2Rpdj5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD4iXX0=
@@ -1,44 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { TranslatePipe } from '../Locale';
4
- import { MarkdownCardComponent } from './markdown-card.component';
5
- import { CodeBlockComponent } from './code-block.component';
6
- import { LocaleModule } from '../Locale';
7
- import * as i0 from "@angular/core";
8
- export class MarkdownCardModule {
9
- static forRoot() {
10
- return {
11
- ngModule: MarkdownCardModule,
12
- providers: []
13
- };
14
- }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MarkdownCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
16
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.0", ngImport: i0, type: MarkdownCardModule, declarations: [MarkdownCardComponent,
17
- CodeBlockComponent], imports: [CommonModule,
18
- TranslatePipe,
19
- LocaleModule], exports: [MarkdownCardComponent,
20
- CodeBlockComponent] }); }
21
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MarkdownCardModule, imports: [CommonModule,
22
- LocaleModule] }); }
23
- }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MarkdownCardModule, decorators: [{
25
- type: NgModule,
26
- args: [{
27
- declarations: [
28
- MarkdownCardComponent,
29
- CodeBlockComponent
30
- ],
31
- imports: [
32
- CommonModule,
33
- TranslatePipe,
34
- LocaleModule,
35
- ],
36
- exports: [
37
- MarkdownCardComponent,
38
- CodeBlockComponent
39
- ],
40
- providers: [],
41
- bootstrap: []
42
- }]
43
- }] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tY2FyZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLW5nL3NyYy9NYXJrZG93bkNhcmQvbWFya2Rvd24tY2FyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFtQnpDLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLGtCQUFrQjtZQUM1QixTQUFTLEVBQUUsRUFDVjtTQUNGLENBQUM7SUFDSixDQUFDOzhHQVBVLGtCQUFrQjsrR0FBbEIsa0JBQWtCLGlCQWhCM0IscUJBQXFCO1lBQ3JCLGtCQUFrQixhQUdsQixZQUFZO1lBQ1osYUFBYTtZQUNiLFlBQVksYUFHWixxQkFBcUI7WUFDckIsa0JBQWtCOytHQU1ULGtCQUFrQixZQVozQixZQUFZO1lBRVosWUFBWTs7MkZBVUgsa0JBQWtCO2tCQWxCOUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1oscUJBQXFCO3dCQUNyQixrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AscUJBQXFCO3dCQUNyQixrQkFBa0I7cUJBQ25CO29CQUNELFNBQVMsRUFBRSxFQUNWO29CQUNELFNBQVMsRUFBRSxFQUFFO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vTG9jYWxlJztcbmltcG9ydCB7IE1hcmtkb3duQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vbWFya2Rvd24tY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29kZUJsb2NrQ29tcG9uZW50IH0gZnJvbSAnLi9jb2RlLWJsb2NrLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2NhbGVNb2R1bGUgfSBmcm9tICcuLi9Mb2NhbGUnO1xuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTWFya2Rvd25DYXJkQ29tcG9uZW50LFxuICAgIENvZGVCbG9ja0NvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgTG9jYWxlTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTWFya2Rvd25DYXJkQ29tcG9uZW50LFxuICAgIENvZGVCbG9ja0NvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgXSxcbiAgYm9vdHN0cmFwOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBNYXJrZG93bkNhcmRNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE1hcmtkb3duQ2FyZE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTWFya2Rvd25DYXJkTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICBdXG4gICAgfTtcbiAgfVxufSJdfQ==
@@ -1,66 +0,0 @@
1
- const noop = () => { };
2
- class BaseFoundation {
3
- static get cssClasses() {
4
- return {};
5
- }
6
- static get strings() {
7
- return {};
8
- }
9
- static get numbers() {
10
- return {};
11
- }
12
- static get defaultAdapter() {
13
- return {
14
- getProp: noop,
15
- getProps: noop,
16
- getState: noop,
17
- getStates: noop,
18
- setState: noop,
19
- getContext: noop,
20
- getContexts: noop,
21
- getCache: noop,
22
- setCache: noop,
23
- getCaches: noop,
24
- stopPropagation: noop,
25
- };
26
- }
27
- constructor(adapter) {
28
- this._adapter = { ...BaseFoundation.defaultAdapter, ...adapter };
29
- }
30
- getProp(key) {
31
- return this._adapter.getProp(key);
32
- }
33
- getProps() {
34
- return this._adapter.getProps();
35
- }
36
- getState(key) {
37
- return this._adapter.getState(key);
38
- }
39
- getStates() {
40
- return this._adapter.getStates();
41
- }
42
- setState(states, cb) {
43
- return this._adapter.setState({ ...states }, cb);
44
- }
45
- /* istanbul ignore next */
46
- getCaches() {
47
- return this._adapter.getCaches();
48
- }
49
- getCache(key) {
50
- return this._adapter.getCache(key);
51
- }
52
- setCache(key, value) {
53
- return key && this._adapter.setCache(key, value);
54
- }
55
- nextTick(cb) {
56
- return this._adapter.nextTick(cb);
57
- }
58
- _isInProps(key) {
59
- const props = this.getProps();
60
- return key in props;
61
- }
62
- init(lifecycle) { }
63
- destroy() { }
64
- }
65
- export default BaseFoundation;
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm91bmRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMtbmcvc3JjL2NvbXBvbmVudHMtY29tbW9uL0Jhc2UvZm91bmRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7QUFldEIsTUFBTSxjQUFjO0lBQ2xCLE1BQU0sS0FBSyxVQUFVO1FBQ25CLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sS0FBSyxPQUFPO1FBQ2hCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sS0FBSyxPQUFPO1FBQ2hCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sS0FBSyxjQUFjO1FBQ3ZCLE9BQU87WUFDTCxPQUFPLEVBQUUsSUFBSTtZQUNiLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLElBQUk7WUFDZCxTQUFTLEVBQUUsSUFBSTtZQUNmLFFBQVEsRUFBRSxJQUFJO1lBQ2QsVUFBVSxFQUFFLElBQUk7WUFDaEIsV0FBVyxFQUFFLElBQUk7WUFDakIsUUFBUSxFQUFFLElBQUk7WUFDZCxRQUFRLEVBQUUsSUFBSTtZQUNkLFNBQVMsRUFBRSxJQUFJO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQztJQUNKLENBQUM7SUFJRCxZQUFZLE9BQVU7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLEdBQUcsY0FBYyxDQUFDLGNBQWMsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO0lBQ25FLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBVztRQUNqQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBUyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVyxFQUFFLEVBQTJCO1FBQy9DLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQVcsRUFBRSxLQUFVO1FBQzlCLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsUUFBUSxDQUFDLEVBQTBCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QixPQUFPLEdBQUcsSUFBSyxLQUFhLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksQ0FBQyxTQUFlLElBQUcsQ0FBQztJQUV4QixPQUFPLEtBQUksQ0FBQztDQUNiO0FBQ0QsZUFBZSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBub29wID0gKCkgPT4ge307XG5leHBvcnQgdHlwZSBub29wRnVuY3Rpb24gPSAoLi4uYXJnczogYW55KSA9PiBhbnk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdEFkYXB0ZXIge1xuICBnZXRQcm9wKGtleTogc3RyaW5nKTogYW55O1xuICBnZXRQcm9wcygpOiBhbnk7XG4gIGdldFN0YXRlKGtleTogc3RyaW5nKTogYW55O1xuICBnZXRTdGF0ZXMoKTogYW55O1xuICBzZXRTdGF0ZShzOiBhbnksIGNhbGxiYWNrPzogYW55KTogdm9pZDtcbiAgZ2V0Q2FjaGUoYzogc3RyaW5nKTogYW55O1xuICBnZXRDYWNoZXMoKTogYW55O1xuICBzZXRDYWNoZShrZXk6IGFueSwgdmFsdWU6IGFueSk6IHZvaWQ7XG4gIG5leHRUaWNrKGNiOiAoLi4uYXJnczogYW55KSA9PiB2b2lkKTogdm9pZDtcbn1cblxuY2xhc3MgQmFzZUZvdW5kYXRpb248VCBleHRlbmRzIERlZmF1bHRBZGFwdGVyPiB7XG4gIHN0YXRpYyBnZXQgY3NzQ2xhc3NlcygpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0cmluZ3MoKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgc3RhdGljIGdldCBudW1iZXJzKCkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHN0YXRpYyBnZXQgZGVmYXVsdEFkYXB0ZXIoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldFByb3A6IG5vb3AsXG4gICAgICBnZXRQcm9wczogbm9vcCxcbiAgICAgIGdldFN0YXRlOiBub29wLFxuICAgICAgZ2V0U3RhdGVzOiBub29wLFxuICAgICAgc2V0U3RhdGU6IG5vb3AsXG4gICAgICBnZXRDb250ZXh0OiBub29wLFxuICAgICAgZ2V0Q29udGV4dHM6IG5vb3AsXG4gICAgICBnZXRDYWNoZTogbm9vcCxcbiAgICAgIHNldENhY2hlOiBub29wLFxuICAgICAgZ2V0Q2FjaGVzOiBub29wLFxuICAgICAgc3RvcFByb3BhZ2F0aW9uOiBub29wLFxuICAgIH07XG4gIH1cblxuICBfYWRhcHRlciE6IFQ7XG5cbiAgY29uc3RydWN0b3IoYWRhcHRlcjogVCkge1xuICAgIHRoaXMuX2FkYXB0ZXIgPSB7IC4uLkJhc2VGb3VuZGF0aW9uLmRlZmF1bHRBZGFwdGVyLCAuLi5hZGFwdGVyIH07XG4gIH1cblxuICBnZXRQcm9wKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXIuZ2V0UHJvcChrZXkpO1xuICB9XG5cbiAgZ2V0UHJvcHMoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlci5nZXRQcm9wcygpIGFzIGFueTtcbiAgfVxuXG4gIGdldFN0YXRlKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXIuZ2V0U3RhdGUoa2V5KTtcbiAgfVxuXG4gIGdldFN0YXRlcygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyLmdldFN0YXRlcygpO1xuICB9XG5cbiAgc2V0U3RhdGUoc3RhdGVzOiBhbnksIGNiPzogKC4uLmFyZ3M6IGFueSkgPT4gdm9pZCkge1xuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyLnNldFN0YXRlKHsgLi4uc3RhdGVzIH0sIGNiKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGdldENhY2hlcygpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlci5nZXRDYWNoZXMoKTtcbiAgfVxuXG4gIGdldENhY2hlKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXIuZ2V0Q2FjaGUoa2V5KTtcbiAgfVxuXG4gIHNldENhY2hlKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgcmV0dXJuIGtleSAmJiB0aGlzLl9hZGFwdGVyLnNldENhY2hlKGtleSwgdmFsdWUpO1xuICB9XG5cbiAgbmV4dFRpY2soY2I6ICguLi5hcmdzOiBhbnkpID0+IHZvaWQpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlci5uZXh0VGljayhjYik7XG4gIH1cblxuICBfaXNJblByb3BzKGtleTogc3RyaW5nKSB7XG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLmdldFByb3BzKCk7XG4gICAgcmV0dXJuIGtleSBpbiAocHJvcHMgYXMgYW55KTtcbiAgfVxuXG4gIGluaXQobGlmZWN5Y2xlPzogYW55KSB7fVxuXG4gIGRlc3Ryb3koKSB7fVxufVxuZXhwb3J0IGRlZmF1bHQgQmFzZUZvdW5kYXRpb247XG4iXX0=
@@ -1,5 +0,0 @@
1
- export const DEFAULT_AVATAR_WIDTH = 36;
2
- export const DEFAULT_AVATAR_HEIGHT = 36;
3
- export const AVATAR_NAME = 'name';
4
- export const AVATAR_IMG = 'imgSrc';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnViYmxlLWNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMtbmcvc3JjL2NvbXBvbmVudHMtY29tbW9uL0J1YmJsZS9jb21tb24vYnViYmxlLWNvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsRUFBRSxDQUFDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFDbEMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBERUZBVUxUX0FWQVRBUl9XSURUSCA9IDM2O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQVZBVEFSX0hFSUdIVCA9IDM2O1xuZXhwb3J0IGNvbnN0IEFWQVRBUl9OQU1FID0gJ25hbWUnO1xuZXhwb3J0IGNvbnN0IEFWQVRBUl9JTUcgPSAnaW1nU3JjJztcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnViYmxlLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy1uZy9zcmMvY29tcG9uZW50cy1jb21tb24vQnViYmxlL2NvbW1vbi9idWJibGUtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IHR5cGUgQnViYmxlVmFyaWFudCA9ICdmaWxsZWQnIHwgJ25vbmUnIHwgJ2JvcmRlcmVkJztcblxuZXhwb3J0IHR5cGUgQXZhdGFyUG9zaXRpb24gPSAndG9wJyB8ICdzaWRlJztcblxuZXhwb3J0IHR5cGUgQnViYmxlQWxpZ24gPSAnbGVmdCcgfCAncmlnaHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1YmJsZUF2YXRhciB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGdlbmRlcj86IHN0cmluZztcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGhlaWdodD86IG51bWJlcjtcbiAgaXNSb3VuZD86IGJvb2xlYW47XG4gIGltZ1NyYz86IHN0cmluZztcbiAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG59XG5cbiJdfQ==