@matechat/ng 0.0.1-alpha.0 → 0.0.1-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.
- package/Bubble/bubble.component.d.ts +5 -3
- package/Input/input.component.d.ts +10 -1
- package/MarkdownCard/code-block.component.d.ts +46 -0
- package/MarkdownCard/index.d.ts +3 -0
- package/MarkdownCard/markdown-card.component.d.ts +198 -0
- package/MarkdownCard/markdown-card.module.d.ts +13 -0
- package/README.md +117 -13
- package/components-common/Base/foundation.d.ts +2 -0
- package/components-common/MarkdownCard/codeblock-foundation.d.ts +20 -0
- package/components-common/MarkdownCard/common/MDCardService.d.ts +14 -0
- package/components-common/MarkdownCard/common/MermaidService.d.ts +23 -0
- package/components-common/MarkdownCard/common/mdCard.types.d.ts +56 -0
- package/components-common/MarkdownCard/common/parser.d.ts +150 -0
- package/components-common/MarkdownCard/foundation.d.ts +38 -0
- package/esm2022/Base/base.component.mjs +2 -1
- package/esm2022/Bubble/bubble.component.mjs +15 -8
- package/esm2022/Input/input.component.mjs +107 -3
- package/esm2022/Locale/locale.service.mjs +5 -5
- package/esm2022/MarkdownCard/code-block.component.mjs +150 -0
- package/esm2022/MarkdownCard/index.mjs +4 -0
- package/esm2022/MarkdownCard/markdown-card.component.mjs +406 -0
- package/esm2022/MarkdownCard/markdown-card.module.mjs +44 -0
- package/esm2022/components-common/Base/foundation.mjs +4 -1
- package/esm2022/components-common/Input/foundation.mjs +1 -2
- package/esm2022/components-common/MarkdownCard/codeblock-foundation.mjs +132 -0
- package/esm2022/components-common/MarkdownCard/common/MDCardService.mjs +69 -0
- package/esm2022/components-common/MarkdownCard/common/MermaidService.mjs +222 -0
- package/esm2022/components-common/MarkdownCard/common/mdCard.types.mjs +6 -0
- package/esm2022/components-common/MarkdownCard/common/parser.mjs +194 -0
- package/esm2022/components-common/MarkdownCard/foundation.mjs +84 -0
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/matechat-ng.mjs +1460 -16
- package/fesm2022/matechat-ng.mjs.map +1 -1
- package/package.json +8 -5
- package/public-api.d.ts +1 -0
- package/fesm2022/matechat-ng-en-us-DsYnUbZd.mjs +0 -28
- package/fesm2022/matechat-ng-en-us-DsYnUbZd.mjs.map +0 -1
- package/fesm2022/matechat-ng-zh-cn--_YVZHnW.mjs +0 -28
- package/fesm2022/matechat-ng-zh-cn--_YVZHnW.mjs.map +0 -1
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import type { Token } from "markdown-it";
|
|
2
|
+
import type { ASTNode } from './mdCard.types';
|
|
3
|
+
export declare const isSelfClosingTag: (token: Token) => boolean;
|
|
4
|
+
export declare const isClosingTag: (openToken: Token, closeToken: Token) => boolean;
|
|
5
|
+
export declare const genTreeNode: (node: Token | null) => ASTNode;
|
|
6
|
+
export declare const matchHtmlToken: (token: Token, stack: Token[]) => void;
|
|
7
|
+
export declare const isValidTagName: (tagName: string | undefined) => boolean;
|
|
8
|
+
export declare const tokensToAst: (tokens: Token[]) => ASTNode[];
|
|
9
|
+
declare const _default: {
|
|
10
|
+
isSelfClosingTag: (token: {
|
|
11
|
+
type: string;
|
|
12
|
+
tag: string;
|
|
13
|
+
attrs: [string, string][] | null;
|
|
14
|
+
map: [number, number] | null;
|
|
15
|
+
nesting: Token.Nesting;
|
|
16
|
+
level: number;
|
|
17
|
+
children: any[] | null;
|
|
18
|
+
content: string;
|
|
19
|
+
markup: string;
|
|
20
|
+
info: string;
|
|
21
|
+
meta: any;
|
|
22
|
+
block: boolean;
|
|
23
|
+
hidden: boolean;
|
|
24
|
+
attrIndex(name: string): number;
|
|
25
|
+
attrPush(attrData: [string, string]): void;
|
|
26
|
+
attrSet(name: string, value: string): void;
|
|
27
|
+
attrGet(name: string): string | null;
|
|
28
|
+
attrJoin(name: string, value: string): void;
|
|
29
|
+
}) => boolean;
|
|
30
|
+
isClosingTag: (openToken: {
|
|
31
|
+
type: string;
|
|
32
|
+
tag: string;
|
|
33
|
+
attrs: [string, string][] | null;
|
|
34
|
+
map: [number, number] | null;
|
|
35
|
+
nesting: Token.Nesting;
|
|
36
|
+
level: number;
|
|
37
|
+
children: any[] | null;
|
|
38
|
+
content: string;
|
|
39
|
+
markup: string;
|
|
40
|
+
info: string;
|
|
41
|
+
meta: any;
|
|
42
|
+
block: boolean;
|
|
43
|
+
hidden: boolean;
|
|
44
|
+
attrIndex(name: string): number;
|
|
45
|
+
attrPush(attrData: [string, string]): void;
|
|
46
|
+
attrSet(name: string, value: string): void;
|
|
47
|
+
attrGet(name: string): string | null;
|
|
48
|
+
attrJoin(name: string, value: string): void;
|
|
49
|
+
}, closeToken: {
|
|
50
|
+
type: string;
|
|
51
|
+
tag: string;
|
|
52
|
+
attrs: [string, string][] | null;
|
|
53
|
+
map: [number, number] | null;
|
|
54
|
+
nesting: Token.Nesting;
|
|
55
|
+
level: number;
|
|
56
|
+
children: any[] | null;
|
|
57
|
+
content: string;
|
|
58
|
+
markup: string;
|
|
59
|
+
info: string;
|
|
60
|
+
meta: any;
|
|
61
|
+
block: boolean;
|
|
62
|
+
hidden: boolean;
|
|
63
|
+
attrIndex(name: string): number;
|
|
64
|
+
attrPush(attrData: [string, string]): void;
|
|
65
|
+
attrSet(name: string, value: string): void;
|
|
66
|
+
attrGet(name: string): string | null;
|
|
67
|
+
attrJoin(name: string, value: string): void;
|
|
68
|
+
}) => boolean;
|
|
69
|
+
tokensToAst: (tokens: {
|
|
70
|
+
type: string;
|
|
71
|
+
tag: string;
|
|
72
|
+
attrs: [string, string][] | null;
|
|
73
|
+
map: [number, number] | null;
|
|
74
|
+
nesting: Token.Nesting;
|
|
75
|
+
level: number;
|
|
76
|
+
children: any[] | null;
|
|
77
|
+
content: string;
|
|
78
|
+
markup: string;
|
|
79
|
+
info: string;
|
|
80
|
+
meta: any;
|
|
81
|
+
block: boolean;
|
|
82
|
+
hidden: boolean;
|
|
83
|
+
attrIndex(name: string): number;
|
|
84
|
+
attrPush(attrData: [string, string]): void;
|
|
85
|
+
attrSet(name: string, value: string): void;
|
|
86
|
+
attrGet(name: string): string | null;
|
|
87
|
+
attrJoin(name: string, value: string): void;
|
|
88
|
+
}[]) => ASTNode[];
|
|
89
|
+
genTreeNode: (node: {
|
|
90
|
+
type: string;
|
|
91
|
+
tag: string;
|
|
92
|
+
attrs: [string, string][] | null;
|
|
93
|
+
map: [number, number] | null;
|
|
94
|
+
nesting: Token.Nesting;
|
|
95
|
+
level: number;
|
|
96
|
+
children: any[] | null;
|
|
97
|
+
content: string;
|
|
98
|
+
markup: string;
|
|
99
|
+
info: string;
|
|
100
|
+
meta: any;
|
|
101
|
+
block: boolean;
|
|
102
|
+
hidden: boolean;
|
|
103
|
+
attrIndex(name: string): number;
|
|
104
|
+
attrPush(attrData: [string, string]): void;
|
|
105
|
+
attrSet(name: string, value: string): void;
|
|
106
|
+
attrGet(name: string): string | null;
|
|
107
|
+
attrJoin(name: string, value: string): void;
|
|
108
|
+
} | null) => ASTNode;
|
|
109
|
+
matchHtmlToken: (token: {
|
|
110
|
+
type: string;
|
|
111
|
+
tag: string;
|
|
112
|
+
attrs: [string, string][] | null;
|
|
113
|
+
map: [number, number] | null;
|
|
114
|
+
nesting: Token.Nesting;
|
|
115
|
+
level: number;
|
|
116
|
+
children: any[] | null;
|
|
117
|
+
content: string;
|
|
118
|
+
markup: string;
|
|
119
|
+
info: string;
|
|
120
|
+
meta: any;
|
|
121
|
+
block: boolean;
|
|
122
|
+
hidden: boolean;
|
|
123
|
+
attrIndex(name: string): number;
|
|
124
|
+
attrPush(attrData: [string, string]): void;
|
|
125
|
+
attrSet(name: string, value: string): void;
|
|
126
|
+
attrGet(name: string): string | null;
|
|
127
|
+
attrJoin(name: string, value: string): void;
|
|
128
|
+
}, stack: {
|
|
129
|
+
type: string;
|
|
130
|
+
tag: string;
|
|
131
|
+
attrs: [string, string][] | null;
|
|
132
|
+
map: [number, number] | null;
|
|
133
|
+
nesting: Token.Nesting;
|
|
134
|
+
level: number;
|
|
135
|
+
children: any[] | null;
|
|
136
|
+
content: string;
|
|
137
|
+
markup: string;
|
|
138
|
+
info: string;
|
|
139
|
+
meta: any;
|
|
140
|
+
block: boolean;
|
|
141
|
+
hidden: boolean;
|
|
142
|
+
attrIndex(name: string): number;
|
|
143
|
+
attrPush(attrData: [string, string]): void;
|
|
144
|
+
attrSet(name: string, value: string): void;
|
|
145
|
+
attrGet(name: string): string | null;
|
|
146
|
+
attrJoin(name: string, value: string): void;
|
|
147
|
+
}[]) => void;
|
|
148
|
+
isValidTagName: (tagName: string | undefined) => boolean;
|
|
149
|
+
};
|
|
150
|
+
export default _default;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import BaseFoundation, { DefaultAdapter } from '../Base/foundation';
|
|
2
|
+
import type { Token } from 'markdown-it';
|
|
3
|
+
import type { ASTNode } from './common/mdCard.types';
|
|
4
|
+
export interface MarkdownCardAdapter extends DefaultAdapter {
|
|
5
|
+
locale(key: string, params?: Record<string, string>): string;
|
|
6
|
+
typingStart: () => void;
|
|
7
|
+
typingEnd: () => void;
|
|
8
|
+
typingEvent: () => void;
|
|
9
|
+
parseContent: (content: string) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare class MarkdownCardFoundation extends BaseFoundation<MarkdownCardAdapter> {
|
|
12
|
+
constructor(adapter: MarkdownCardAdapter);
|
|
13
|
+
isToken: (node: ASTNode | Token) => node is {
|
|
14
|
+
type: string;
|
|
15
|
+
tag: string;
|
|
16
|
+
attrs: [string, string][] | null;
|
|
17
|
+
map: [number, number] | null;
|
|
18
|
+
nesting: Token.Nesting;
|
|
19
|
+
level: number;
|
|
20
|
+
children: any[] | null;
|
|
21
|
+
content: string;
|
|
22
|
+
markup: string;
|
|
23
|
+
info: string;
|
|
24
|
+
meta: any;
|
|
25
|
+
block: boolean;
|
|
26
|
+
hidden: boolean;
|
|
27
|
+
attrIndex(name: string): number;
|
|
28
|
+
attrPush(attrData: [string, string]): void;
|
|
29
|
+
attrSet(name: string, value: string): void;
|
|
30
|
+
attrGet(name: string): string | null;
|
|
31
|
+
attrJoin(name: string, value: string): void;
|
|
32
|
+
};
|
|
33
|
+
typewriterEnd: () => void;
|
|
34
|
+
getThinkContent: (content: string, thinkOptions: any) => string;
|
|
35
|
+
parseTypingContent: (content: string) => string;
|
|
36
|
+
parseContent: () => void;
|
|
37
|
+
typewriterStart: () => void;
|
|
38
|
+
}
|
|
@@ -30,6 +30,7 @@ export default class BaseComponent {
|
|
|
30
30
|
getCache: (key) => key && this.cache[key],
|
|
31
31
|
getCaches: () => this.cache,
|
|
32
32
|
setCache: (key, value) => key && (this.cache[key] = value),
|
|
33
|
+
nextTick: (cb) => setTimeout(cb, 0),
|
|
33
34
|
};
|
|
34
35
|
}
|
|
35
36
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: BaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -43,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
|
|
|
43
44
|
template: '',
|
|
44
45
|
}]
|
|
45
46
|
}], ctorParameters: () => [] });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLW5nL3NyYy9CYXNlL2Jhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTzFDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sYUFBYTtJQUdoQztRQUNFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVU7WUFDYixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxLQUFLLFVBQVU7WUFDN0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTztZQUNMLE9BQU8sRUFBRSxDQUFDLEdBQVcsRUFBRSxFQUFFO2dCQUN2QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQixDQUFDO1lBQ0QsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDYixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFDRCxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUU7Z0JBQ3ZCLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUM7b0JBQ3pCLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUMxQixDQUFDO29CQUNELEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDYixDQUFDO1lBQ0gsQ0FBQztZQUNELFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUM1QixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtZQUNyQixRQUFRLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUN6QyxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDM0IsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDMUQsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUNwQyxDQUFDO0lBQ0osQ0FBQzs4R0FwQ2tCLGFBQWE7a0dBQWIsYUFBYSwrRUFGdEIsRUFBRTs7MkZBRU8sYUFBYTtrQkFMakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLEVBQUU7aUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWZhdWx0QWRhcHRlciB9IGZyb20gJy4uL2NvbXBvbmVudHMtY29tbW9uL0Jhc2UvZm91bmRhdGlvbic7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWF0ZS1iYXNlLWNvbXBvbmVudCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlOiAnJyxcbn0pXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCYXNlQ29tcG9uZW50IHtcbiAgZm91bmRhdGlvbjogYW55O1xuICBjYWNoZTogYW55O1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmZvdW5kYXRpb24gPSBudWxsO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5mb3VuZGF0aW9uICYmXG4gICAgICB0eXBlb2YgdGhpcy5mb3VuZGF0aW9uLmRlc3Ryb3kgPT09ICdmdW5jdGlvbicgJiZcbiAgICAgIHRoaXMuZm91bmRhdGlvbi5kZXN0cm95KCk7XG4gIH1cblxuICBnZXQgYWRhcHRlcigpOiBEZWZhdWx0QWRhcHRlciB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldFByb3A6IChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICByZXR1cm4gdGhpc1trZXldO1xuICAgICAgfSxcbiAgICAgIGdldFByb3BzOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIHNldFN0YXRlOiAoc3RhdGVzLCBjYikgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBzdGF0ZXMpIHtcbiAgICAgICAgICBpZiAoc3RhdGVzLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IHN0YXRlc1trZXldO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYiAmJiBjYigpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZ2V0U3RhdGU6IChrZXkpID0+IHRoaXNba2V5XSxcbiAgICAgIGdldFN0YXRlczogKCkgPT4gdGhpcyxcbiAgICAgIGdldENhY2hlOiAoa2V5KSA9PiBrZXkgJiYgdGhpcy5jYWNoZVtrZXldLFxuICAgICAgZ2V0Q2FjaGVzOiAoKSA9PiB0aGlzLmNhY2hlLFxuICAgICAgc2V0Q2FjaGU6IChrZXksIHZhbHVlKSA9PiBrZXkgJiYgKHRoaXMuY2FjaGVba2V5XSA9IHZhbHVlKSxcbiAgICAgIG5leHRUaWNrOiAoY2IpID0+IHNldFRpbWVvdXQoY2IsIDApLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, Input, ContentChild } from '@angular/core';
|
|
1
|
+
import { Component, Input, ContentChild, ContentChildren } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { BubbleLoadingComponent } from './bubble-loading/bubble-loading.component';
|
|
4
4
|
import { AvatarComponent } from './avatar/avatar.component';
|
|
@@ -8,6 +8,10 @@ import { TranslatePipe } from '../Locale/translate.pipe';
|
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "@angular/common";
|
|
10
10
|
export class BubbleComponent extends BaseComponent {
|
|
11
|
+
// 计算是否有内容投影
|
|
12
|
+
get ngContentProjected() {
|
|
13
|
+
return this.contentChildren && this.contentChildren.length > 0;
|
|
14
|
+
}
|
|
11
15
|
constructor() {
|
|
12
16
|
super();
|
|
13
17
|
// 组件属性
|
|
@@ -17,9 +21,9 @@ export class BubbleComponent extends BaseComponent {
|
|
|
17
21
|
this.avatarPosition = 'side';
|
|
18
22
|
this.variant = 'filled';
|
|
19
23
|
// 内容投影模板引用
|
|
24
|
+
this.avatarTemplate = null;
|
|
20
25
|
this.topTemplate = null;
|
|
21
26
|
this.loadingTplTemplate = null;
|
|
22
|
-
this.defaultTemplate = null;
|
|
23
27
|
this.bottomTemplate = null;
|
|
24
28
|
}
|
|
25
29
|
ngOnInit() {
|
|
@@ -49,11 +53,11 @@ export class BubbleComponent extends BaseComponent {
|
|
|
49
53
|
}
|
|
50
54
|
;
|
|
51
55
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: BubbleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
52
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: BubbleComponent, isStandalone: true, selector: "mc-bubble", inputs: { content: "content", loading: "loading", align: "align", avatarPosition: "avatarPosition", variant: "variant", avatarConfig: "avatarConfig" }, queries: [{ propertyName: "
|
|
56
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: BubbleComponent, isStandalone: true, selector: "mc-bubble", inputs: { content: "content", loading: "loading", align: "align", avatarPosition: "avatarPosition", variant: "variant", avatarConfig: "avatarConfig" }, queries: [{ propertyName: "avatarTemplate", first: true, predicate: ["avatar"], descendants: true }, { propertyName: "topTemplate", first: true, predicate: ["top"], descendants: true }, { propertyName: "loadingTplTemplate", first: true, predicate: ["loadingTpl"], descendants: true }, { propertyName: "bottomTemplate", first: true, predicate: ["bottom"], descendants: true }, { propertyName: "contentChildren", predicate: ["ng-content"] }], usesInheritance: true, ngImport: i0, template: "<div class=\"mc-bubble\" [ngClass]=\"bubbleClasses\" role=\"group\" [attr.aria-label]=\"'Bubble.ariaLabel' | translate\">\n <!-- \u81EA\u5B9A\u4E49\u5934\u50CF\u533A\u57DF -->\n <div *ngIf=\"avatarTemplate\" class=\"mc-bubble-avatar\" role=\"img\">\n <ng-container *ngTemplateOutlet=\"avatarTemplate\"></ng-container>\n <ng-content select=\"[avatar]\"></ng-content>\n </div>\n \n <!-- \u9ED8\u8BA4\u5934\u50CF\u914D\u7F6E -->\n <div *ngIf=\"!avatarTemplate && avatarConfig\"\n class=\"mc-bubble-avatar\" role=\"img\"\n [ngClass]=\"{ 'empty-avatar': isEmptyAvatar }\"\n >\n <mc-avatar\n *ngIf=\"!isEmptyAvatar\"\n [imgSrc]=\"avatarConfig?.imgSrc || ''\"\n [name]=\"avatarConfig?.name || ''\"\n [width]=\"avatarConfig?.width || 36\"\n [height]=\"avatarConfig?.height || 36\"\n [gender]=\"avatarConfig?.gender || ''\"\n />\n <div *ngIf=\"isEmptyAvatar\" class=\"mc-bubble-avatar-wrapper\" [attr.aria-label]=\"'Bubble.emptyAvatar' | translate\"\n [style.width.px]=\"avatarConfig?.width || 36\"\n [style.height.px]=\"avatarConfig?.height || 36\"></div>\n <span *ngIf=\"avatarPosition === 'top'\" class=\"mc-bubble-avatar-name\" [attr.aria-label]=\"'Bubble.userName' | translate:{ name: avatarConfig?.displayName || '' } \">{{\n avatarConfig?.displayName\n }}</span>\n </div>\n <div\n class=\"mc-bubble-content-container\" aria-live=\"polite\"\n [ngClass]=\"{ 'with-avatar': avatarTemplate || avatarConfig }\"\n >\n <!-- \u9876\u90E8\u5185\u5BB9\u6295\u5F71 -->\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngTemplateOutlet=\"topTemplate\"></ng-container>\n <ng-content select=\"[top]\"></ng-content>\n </ng-container>\n \n <!-- \u52A0\u8F7D\u72B6\u6001 -->\n <div *ngIf=\"loading\" class=\"loading-container\" role=\"status\" aria-busy=\"true\">\n <ng-container *ngIf=\"loadingTplTemplate; else defaultLoadingTemplate\">\n <ng-container *ngTemplateOutlet=\"loadingTplTemplate\"></ng-container>\n <ng-content select=\"[loadingTpl]\"></ng-content>\n </ng-container>\n <ng-template #defaultLoadingTemplate>\n <mc-bubble-loading></mc-bubble-loading>\n </ng-template>\n </div>\n \n <!-- \u4E3B\u8981\u5185\u5BB9 -->\n <div\n *ngIf=\"!loading\"\n class=\"mc-bubble-content\"\n [ngClass]=\"[variant]\"\n role=\"region\"\n >\n <ng-content></ng-content>\n <ng-container *ngIf=\"content && !ngContentProjected\">\n <span [attr.aria-label]=\"'Bubble.content' | translate\">{{ content }}</span>\n </ng-container>\n </div>\n \n <!-- \u5E95\u90E8\u5185\u5BB9\u6295\u5F71 -->\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngTemplateOutlet=\"bottomTemplate\"></ng-container>\n <ng-content select=\"[bottom]\"></ng-content>\n </ng-container>\n </div>\n</div>\n", styles: [".mc-bubble{display:flex;gap:4px;font-size:var(--devui-font-size, 14px)}.mc-bubble .mc-bubble-content{word-wrap:break-word}.mc-bubble .mc-bubble-content.filled,.mc-bubble .mc-bubble-content.bordered{padding:12px 16px;border-radius:12px}.mc-bubble .mc-bubble-content.filled{background-color:var(--devui-global-bg, #f6f6f8)}.mc-bubble .mc-bubble-content.bordered{border:1px solid var(--devui-dividing-line, #f2f2f3)}.mc-bubble .mc-bubble-avatar{flex-shrink:0;display:flex;gap:4px}.mc-bubble .mc-bubble-avatar .mc-bubble-avatar-name{font-size:14px}.mc-bubble .mc-bubble-avatar.empty-avatar{visibility:hidden}.mc-bubble.mc-bubble-avatar-top .mc-bubble-avatar{align-items:center}.mc-bubble .mc-bubble-content-container{max-width:100%}.mc-bubble.mc-bubble-avatar-top{flex-direction:column}.mc-bubble.mc-bubble-avatar-top .mc-bubble-content-container{align-items:flex-start;flex-direction:column}.mc-bubble.mc-bubble-loading.mc-bubble-avatar-side{align-items:center}.mc-bubble.mc-bubble-avatar-side.mc-bubble-right{flex-direction:row-reverse;justify-content:end}.mc-bubble.mc-bubble-avatar-top .mc-bubble-avatar,.mc-bubble.mc-bubble-avatar-top .mc-bubble-content-container{display:flex}.mc-bubble.mc-bubble-avatar-top.mc-bubble-right .mc-bubble-avatar,.mc-bubble.mc-bubble-avatar-top.mc-bubble-right .mc-bubble-content-container{align-items:flex-end}.mc-bubble.mc-bubble-avatar-top.mc-bubble-right .mc-bubble-avatar{flex-direction:row-reverse}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: BubbleLoadingComponent, selector: "mc-bubble-loading" }, { kind: "component", type: AvatarComponent, selector: "mc-avatar", inputs: ["imgSrc", "name", "width", "height", "isRound", "gender"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
53
57
|
}
|
|
54
58
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: BubbleComponent, decorators: [{
|
|
55
59
|
type: Component,
|
|
56
|
-
args: [{ selector: 'mc-bubble', standalone: true, imports: [CommonModule, BubbleLoadingComponent, AvatarComponent, TranslatePipe], template: "<div class=\"mc-bubble\" [ngClass]=\"bubbleClasses\" role=\"group\" [attr.aria-label]=\"'Bubble.ariaLabel' | translate\">\n <div\n *ngIf=\"avatarConfig\"\n class=\"mc-bubble-avatar\" role=\"img\"\n [ngClass]=\"{ 'empty-avatar': isEmptyAvatar }\"\n >\n <mc-avatar\n *ngIf=\"!isEmptyAvatar\"\n [imgSrc]=\"avatarConfig?.imgSrc || ''\"\n [name]=\"avatarConfig?.name || ''\"\n [width]=\"avatarConfig?.width || 36\"\n [height]=\"avatarConfig?.height || 36\"\n [gender]=\"avatarConfig?.gender || ''\"\n />\n <div *ngIf=\"isEmptyAvatar\" class=\"mc-bubble-avatar-wrapper\" [attr.aria-label]=\"'Bubble.emptyAvatar' | translate\"\n [style.width.px]=\"avatarConfig?.width || 36\"\n [style.height.px]=\"avatarConfig?.height || 36\"></div>\n <span *ngIf=\"avatarPosition === 'top'\" class=\"mc-bubble-avatar-name\" [attr.aria-label]=\"'Bubble.userName' | translate:{ name: avatarConfig?.displayName || '' } \">{{\n avatarConfig?.displayName\n }}</span>\n </div>\n <div\n class=\"mc-bubble-content-container\" aria-live=\"polite\"\n [ngClass]=\"{ 'with-avatar': avatarConfig }\"\n >\n <!-- \u9876\u90E8\u5185\u5BB9\u6295\u5F71 -->\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngTemplateOutlet=\"topTemplate\"></ng-container>\n <ng-content select=\"[top]\"></ng-content>\n </ng-container>\n \n <!-- \u52A0\u8F7D\u72B6\u6001 -->\n <div *ngIf=\"loading\" class=\"loading-container\" role=\"status\" aria-busy=\"true\">\n <ng-container *ngIf=\"loadingTplTemplate; else defaultLoadingTemplate\">\n <ng-container *ngTemplateOutlet=\"loadingTplTemplate\"></ng-container>\n <ng-content select=\"[loadingTpl]\"></ng-content>\n </ng-container>\n <ng-template #defaultLoadingTemplate>\n <mc-bubble-loading></mc-bubble-loading>\n </ng-template>\n </div>\n \n <!-- \u4E3B\u8981\u5185\u5BB9 -->\n <div\n *ngIf=\"
|
|
60
|
+
args: [{ selector: 'mc-bubble', standalone: true, imports: [CommonModule, BubbleLoadingComponent, AvatarComponent, TranslatePipe], template: "<div class=\"mc-bubble\" [ngClass]=\"bubbleClasses\" role=\"group\" [attr.aria-label]=\"'Bubble.ariaLabel' | translate\">\n <!-- \u81EA\u5B9A\u4E49\u5934\u50CF\u533A\u57DF -->\n <div *ngIf=\"avatarTemplate\" class=\"mc-bubble-avatar\" role=\"img\">\n <ng-container *ngTemplateOutlet=\"avatarTemplate\"></ng-container>\n <ng-content select=\"[avatar]\"></ng-content>\n </div>\n \n <!-- \u9ED8\u8BA4\u5934\u50CF\u914D\u7F6E -->\n <div *ngIf=\"!avatarTemplate && avatarConfig\"\n class=\"mc-bubble-avatar\" role=\"img\"\n [ngClass]=\"{ 'empty-avatar': isEmptyAvatar }\"\n >\n <mc-avatar\n *ngIf=\"!isEmptyAvatar\"\n [imgSrc]=\"avatarConfig?.imgSrc || ''\"\n [name]=\"avatarConfig?.name || ''\"\n [width]=\"avatarConfig?.width || 36\"\n [height]=\"avatarConfig?.height || 36\"\n [gender]=\"avatarConfig?.gender || ''\"\n />\n <div *ngIf=\"isEmptyAvatar\" class=\"mc-bubble-avatar-wrapper\" [attr.aria-label]=\"'Bubble.emptyAvatar' | translate\"\n [style.width.px]=\"avatarConfig?.width || 36\"\n [style.height.px]=\"avatarConfig?.height || 36\"></div>\n <span *ngIf=\"avatarPosition === 'top'\" class=\"mc-bubble-avatar-name\" [attr.aria-label]=\"'Bubble.userName' | translate:{ name: avatarConfig?.displayName || '' } \">{{\n avatarConfig?.displayName\n }}</span>\n </div>\n <div\n class=\"mc-bubble-content-container\" aria-live=\"polite\"\n [ngClass]=\"{ 'with-avatar': avatarTemplate || avatarConfig }\"\n >\n <!-- \u9876\u90E8\u5185\u5BB9\u6295\u5F71 -->\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngTemplateOutlet=\"topTemplate\"></ng-container>\n <ng-content select=\"[top]\"></ng-content>\n </ng-container>\n \n <!-- \u52A0\u8F7D\u72B6\u6001 -->\n <div *ngIf=\"loading\" class=\"loading-container\" role=\"status\" aria-busy=\"true\">\n <ng-container *ngIf=\"loadingTplTemplate; else defaultLoadingTemplate\">\n <ng-container *ngTemplateOutlet=\"loadingTplTemplate\"></ng-container>\n <ng-content select=\"[loadingTpl]\"></ng-content>\n </ng-container>\n <ng-template #defaultLoadingTemplate>\n <mc-bubble-loading></mc-bubble-loading>\n </ng-template>\n </div>\n \n <!-- \u4E3B\u8981\u5185\u5BB9 -->\n <div\n *ngIf=\"!loading\"\n class=\"mc-bubble-content\"\n [ngClass]=\"[variant]\"\n role=\"region\"\n >\n <ng-content></ng-content>\n <ng-container *ngIf=\"content && !ngContentProjected\">\n <span [attr.aria-label]=\"'Bubble.content' | translate\">{{ content }}</span>\n </ng-container>\n </div>\n \n <!-- \u5E95\u90E8\u5185\u5BB9\u6295\u5F71 -->\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngTemplateOutlet=\"bottomTemplate\"></ng-container>\n <ng-content select=\"[bottom]\"></ng-content>\n </ng-container>\n </div>\n</div>\n", styles: [".mc-bubble{display:flex;gap:4px;font-size:var(--devui-font-size, 14px)}.mc-bubble .mc-bubble-content{word-wrap:break-word}.mc-bubble .mc-bubble-content.filled,.mc-bubble .mc-bubble-content.bordered{padding:12px 16px;border-radius:12px}.mc-bubble .mc-bubble-content.filled{background-color:var(--devui-global-bg, #f6f6f8)}.mc-bubble .mc-bubble-content.bordered{border:1px solid var(--devui-dividing-line, #f2f2f3)}.mc-bubble .mc-bubble-avatar{flex-shrink:0;display:flex;gap:4px}.mc-bubble .mc-bubble-avatar .mc-bubble-avatar-name{font-size:14px}.mc-bubble .mc-bubble-avatar.empty-avatar{visibility:hidden}.mc-bubble.mc-bubble-avatar-top .mc-bubble-avatar{align-items:center}.mc-bubble .mc-bubble-content-container{max-width:100%}.mc-bubble.mc-bubble-avatar-top{flex-direction:column}.mc-bubble.mc-bubble-avatar-top .mc-bubble-content-container{align-items:flex-start;flex-direction:column}.mc-bubble.mc-bubble-loading.mc-bubble-avatar-side{align-items:center}.mc-bubble.mc-bubble-avatar-side.mc-bubble-right{flex-direction:row-reverse;justify-content:end}.mc-bubble.mc-bubble-avatar-top .mc-bubble-avatar,.mc-bubble.mc-bubble-avatar-top .mc-bubble-content-container{display:flex}.mc-bubble.mc-bubble-avatar-top.mc-bubble-right .mc-bubble-avatar,.mc-bubble.mc-bubble-avatar-top.mc-bubble-right .mc-bubble-content-container{align-items:flex-end}.mc-bubble.mc-bubble-avatar-top.mc-bubble-right .mc-bubble-avatar{flex-direction:row-reverse}\n"] }]
|
|
57
61
|
}], ctorParameters: () => [], propDecorators: { content: [{
|
|
58
62
|
type: Input
|
|
59
63
|
}], loading: [{
|
|
@@ -66,17 +70,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
|
|
|
66
70
|
type: Input
|
|
67
71
|
}], avatarConfig: [{
|
|
68
72
|
type: Input
|
|
73
|
+
}], avatarTemplate: [{
|
|
74
|
+
type: ContentChild,
|
|
75
|
+
args: ['avatar']
|
|
69
76
|
}], topTemplate: [{
|
|
70
77
|
type: ContentChild,
|
|
71
78
|
args: ['top']
|
|
72
79
|
}], loadingTplTemplate: [{
|
|
73
80
|
type: ContentChild,
|
|
74
81
|
args: ['loadingTpl']
|
|
75
|
-
}], defaultTemplate: [{
|
|
76
|
-
type: ContentChild,
|
|
77
|
-
args: ['defaultTemplate']
|
|
78
82
|
}], bottomTemplate: [{
|
|
79
83
|
type: ContentChild,
|
|
80
84
|
args: ['bottom']
|
|
85
|
+
}], contentChildren: [{
|
|
86
|
+
type: ContentChildren,
|
|
87
|
+
args: ['ng-content']
|
|
81
88
|
}] } });
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnViYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMtbmcvc3JjL0J1YmJsZS9idWJibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy1uZy9zcmMvQnViYmxlL2J1YmJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBWSxZQUFZLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUc1RCxPQUFPLEVBQWlCLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDekYsT0FBTyxhQUFhLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFTekQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsYUFBYTtJQWVoRDtRQUFnQixLQUFLLEVBQUUsQ0FBQztRQWR4QixPQUFPO1FBQ0UsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLFVBQUssR0FBZ0IsTUFBTSxDQUFDO1FBQzVCLG1CQUFjLEdBQW1CLE1BQU0sQ0FBQztRQUN4QyxZQUFPLEdBQWtCLFFBQVEsQ0FBQztRQUczQyxXQUFXO1FBQ1UsZ0JBQVcsR0FBNEIsSUFBSSxDQUFDO1FBQ3JDLHVCQUFrQixHQUE0QixJQUFJLENBQUM7UUFDOUMsb0JBQWUsR0FBNEIsSUFBSSxDQUFDO1FBQ3pELG1CQUFjLEdBQTRCLElBQUksQ0FBQztJQUU5QyxDQUFDO0lBRTFCLFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELElBQWEsT0FBTztRQUNsQixPQUFPO1lBQ0wsR0FBRyxLQUFLLENBQUMsT0FBTztZQUNoQixRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ3JCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztnQkFDckIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7Z0JBQ25DLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztnQkFDckIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2FBQ2hDLENBQUM7U0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVELE9BQU87SUFDUCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBQUEsQ0FBQztJQUVGLElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUFBLENBQUM7OEdBM0NTLGVBQWU7a0dBQWYsZUFBZSx1bkJDakI1QiwrcUZBaUVBLHM5Q0RwRFksWUFBWSx3WUFBRSxzQkFBc0IsOERBQUUsZUFBZSxxSEFBRSxhQUFhOzsyRkFJbkUsZUFBZTtrQkFQM0IsU0FBUzsrQkFDRSxXQUFXLGNBQ1QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLHNCQUFzQixFQUFFLGVBQWUsRUFBRSxhQUFhLENBQUM7d0RBTXRFLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR2UsV0FBVztzQkFBL0IsWUFBWTt1QkFBQyxLQUFLO2dCQUNTLGtCQUFrQjtzQkFBN0MsWUFBWTt1QkFBQyxZQUFZO2dCQUNPLGVBQWU7c0JBQS9DLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUNQLGNBQWM7c0JBQXJDLFlBQVk7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIGNvbXB1dGVkLCBDb250ZW50Q2hpbGQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQnViYmxlTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJy4vYnViYmxlLWxvYWRpbmcvYnViYmxlLWxvYWRpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IEF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4vYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgREVGQVVMVF9BVkFUQVJfV0lEVEgsIERFRkFVTFRfQVZBVEFSX0hFSUdIVCwgQVZBVEFSX05BTUUsIEFWQVRBUl9JTUcgfSBmcm9tICcuLi9jb21wb25lbnRzLWNvbW1vbi9CdWJibGUvY29tbW9uL2J1YmJsZS1jb25zdGFudHMnO1xuaW1wb3J0IHsgQnViYmxlQWxpZ24sIEJ1YmJsZVZhcmlhbnQsIEF2YXRhclBvc2l0aW9uLCBCdWJibGVBdmF0YXIgfSBmcm9tICcuLi9jb21wb25lbnRzLWNvbW1vbi8vQnViYmxlL2NvbW1vbi9idWJibGUtdHlwZXMnO1xuaW1wb3J0IHsgQnViYmxlQWRhcHRlciwgQnViYmxlRm91bmRhdGlvbiB9IGZyb20gJy4uL2NvbXBvbmVudHMtY29tbW9uL0J1YmJsZS9mb3VuZGF0aW9uJztcbmltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gJy4uL0Jhc2UvYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uL0xvY2FsZS90cmFuc2xhdGUucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21jLWJ1YmJsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEJ1YmJsZUxvYWRpbmdDb21wb25lbnQsIEF2YXRhckNvbXBvbmVudCwgVHJhbnNsYXRlUGlwZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9idWJibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9idWJibGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCdWJibGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgLy8g57uE5Lu25bGe5oCnXG4gIEBJbnB1dCgpIGNvbnRlbnQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFsaWduOiBCdWJibGVBbGlnbiA9ICdsZWZ0JztcbiAgQElucHV0KCkgYXZhdGFyUG9zaXRpb246IEF2YXRhclBvc2l0aW9uID0gJ3NpZGUnO1xuICBASW5wdXQoKSB2YXJpYW50OiBCdWJibGVWYXJpYW50ID0gJ2ZpbGxlZCc7XG4gIEBJbnB1dCgpIGF2YXRhckNvbmZpZz86IEJ1YmJsZUF2YXRhcjtcblxuICAvLyDlhoXlrrnmipXlvbHmqKHmnb/lvJXnlKhcbiAgQENvbnRlbnRDaGlsZCgndG9wJykgdG9wVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcbiAgQENvbnRlbnRDaGlsZCgnbG9hZGluZ1RwbCcpIGxvYWRpbmdUcGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuICBAQ29udGVudENoaWxkKCdkZWZhdWx0VGVtcGxhdGUnKSBkZWZhdWx0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcbiAgQENvbnRlbnRDaGlsZCgnYm90dG9tJykgYm90dG9tVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZm91bmRhdGlvbiA9IG5ldyBCdWJibGVGb3VuZGF0aW9uKHRoaXMuYWRhcHRlcik7XG4gICAgdGhpcy5mb3VuZGF0aW9uLmluaXQoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldCBhZGFwdGVyKCk6IEJ1YmJsZUFkYXB0ZXIge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdXBlci5hZGFwdGVyLFxuICAgICAgZ2V0UHJvcHM6ICgpID0+ICh7XG4gICAgICAgIGNvbnRlbnQ6IHRoaXMuY29udGVudCxcbiAgICAgICAgbG9hZGluZzogdGhpcy5sb2FkaW5nLFxuICAgICAgICBhbGlnbjogdGhpcy5hbGlnbixcbiAgICAgICAgYXZhdGFyUG9zaXRpb246IHRoaXMuYXZhdGFyUG9zaXRpb24sXG4gICAgICAgIHZhcmlhbnQ6IHRoaXMudmFyaWFudCxcbiAgICAgICAgYXZhdGFyQ29uZmlnOiB0aGlzLmF2YXRhckNvbmZpZyxcbiAgICAgIH0pLFxuICAgIH1cbiAgfVxuXG4gIC8vIOiuoeeul+WxnuaAp1xuICBnZXQgYnViYmxlQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZvdW5kYXRpb24uZ2V0QnViYmxlQ2xhc3NlcygpO1xuICB9O1xuXG4gIGdldCBpc0VtcHR5QXZhdGFyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZvdW5kYXRpb24uZ2V0SXNFbXB0eUF2YXRhcih0aGlzLmF2YXRhckNvbmZpZyk7XG4gIH07XG59XG4iLCI8ZGl2IGNsYXNzPVwibWMtYnViYmxlXCIgW25nQ2xhc3NdPVwiYnViYmxlQ2xhc3Nlc1wiIHJvbGU9XCJncm91cFwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0J1YmJsZS5hcmlhTGFiZWwnIHwgdHJhbnNsYXRlXCI+XG4gIDxkaXZcbiAgICAqbmdJZj1cImF2YXRhckNvbmZpZ1wiXG4gICAgY2xhc3M9XCJtYy1idWJibGUtYXZhdGFyXCIgcm9sZT1cImltZ1wiXG4gICAgW25nQ2xhc3NdPVwieyAnZW1wdHktYXZhdGFyJzogaXNFbXB0eUF2YXRhciB9XCJcbiAgPlxuICAgIDxtYy1hdmF0YXJcbiAgICAgICpuZ0lmPVwiIWlzRW1wdHlBdmF0YXJcIlxuICAgICAgW2ltZ1NyY109XCJhdmF0YXJDb25maWc/LmltZ1NyYyB8fCAnJ1wiXG4gICAgICBbbmFtZV09XCJhdmF0YXJDb25maWc/Lm5hbWUgfHwgJydcIlxuICAgICAgW3dpZHRoXT1cImF2YXRhckNvbmZpZz8ud2lkdGggfHwgMzZcIlxuICAgICAgW2hlaWdodF09XCJhdmF0YXJDb25maWc/LmhlaWdodCB8fCAzNlwiXG4gICAgICBbZ2VuZGVyXT1cImF2YXRhckNvbmZpZz8uZ2VuZGVyIHx8ICcnXCJcbiAgICAvPlxuICAgIDxkaXYgKm5nSWY9XCJpc0VtcHR5QXZhdGFyXCIgICAgY2xhc3M9XCJtYy1idWJibGUtYXZhdGFyLXdyYXBwZXJcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidCdWJibGUuZW1wdHlBdmF0YXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJhdmF0YXJDb25maWc/LndpZHRoIHx8IDM2XCJcbiAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiYXZhdGFyQ29uZmlnPy5oZWlnaHQgfHwgMzZcIj48L2Rpdj5cbiAgICA8c3BhbiAqbmdJZj1cImF2YXRhclBvc2l0aW9uID09PSAndG9wJ1wiIGNsYXNzPVwibWMtYnViYmxlLWF2YXRhci1uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInQnViYmxlLnVzZXJOYW1lJyB8IHRyYW5zbGF0ZTp7IG5hbWU6IGF2YXRhckNvbmZpZz8uZGlzcGxheU5hbWUgfHwgJycgfSBcIj57e1xuICAgICAgYXZhdGFyQ29uZmlnPy5kaXNwbGF5TmFtZVxuICAgIH19PC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwibWMtYnViYmxlLWNvbnRlbnQtY29udGFpbmVyXCIgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICBbbmdDbGFzc109XCJ7ICd3aXRoLWF2YXRhcic6IGF2YXRhckNvbmZpZyB9XCJcbiAgPlxuICAgIDwhLS0g6aG26YOo5YaF5a655oqV5b2xIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZ1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRvcFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdG9wXVwiPjwvbmctY29udGVudD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICBcbiAgICA8IS0tIOWKoOi9veeKtuaAgSAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwibG9hZGluZy1jb250YWluZXJcIiByb2xlPVwic3RhdHVzXCIgYXJpYS1idXN5PVwidHJ1ZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdUcGxUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0TG9hZGluZ1RlbXBsYXRlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nVHBsVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2xvYWRpbmdUcGxdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRMb2FkaW5nVGVtcGxhdGU+XG4gICAgICAgIDxtYy1idWJibGUtbG9hZGluZz48L21jLWJ1YmJsZS1sb2FkaW5nPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8IS0tIOS4u+imgeWGheWuuSAtLT5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIihkZWZhdWx0VGVtcGxhdGUgfHwgY29udGVudCkgJiYgIWxvYWRpbmdcIlxuICAgICAgY2xhc3M9XCJtYy1idWJibGUtY29udGVudFwiXG4gICAgICBbbmdDbGFzc109XCJbdmFyaWFudF1cIlxuICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRlZmF1bHRUZW1wbGF0ZTsgZWxzZSBjb250ZW50VGVtcGxhdGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRlZmF1bHRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjY29udGVudFRlbXBsYXRlPlxuICAgICAgICA8c3BhbiBbYXR0ci5hcmlhLWxhYmVsXT1cIidCdWJibGUuY29udGVudCcgfCB0cmFuc2xhdGVcIj57eyBjb250ZW50IH19PC9zcGFuPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8IS0tIOW6lemDqOWGheWuueaKleW9sSAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRpbmdcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJib3R0b21UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2JvdHRvbV1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnViYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMtbmcvc3JjL0J1YmJsZS9idWJibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy1uZy9zcmMvQnViYmxlL2J1YmJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBWSxZQUFZLEVBQWUsZUFBZSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHNUQsT0FBTyxFQUFpQixnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3pGLE9BQU8sYUFBYSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBU3pELE1BQU0sT0FBTyxlQUFnQixTQUFRLGFBQWE7SUFrQmhELFlBQVk7SUFDWixJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDtRQUFnQixLQUFLLEVBQUUsQ0FBQztRQXRCeEIsT0FBTztRQUNFLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixVQUFLLEdBQWdCLE1BQU0sQ0FBQztRQUM1QixtQkFBYyxHQUFtQixNQUFNLENBQUM7UUFDeEMsWUFBTyxHQUFrQixRQUFRLENBQUM7UUFHM0MsV0FBVztRQUNhLG1CQUFjLEdBQTRCLElBQUksQ0FBQztRQUNsRCxnQkFBVyxHQUE0QixJQUFJLENBQUM7UUFDckMsdUJBQWtCLEdBQTRCLElBQUksQ0FBQztRQUN2RCxtQkFBYyxHQUE0QixJQUFJLENBQUM7SUFVOUMsQ0FBQztJQUUxQixRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFhLE9BQU87UUFDbEIsT0FBTztZQUNMLEdBQUcsS0FBSyxDQUFDLE9BQU87WUFDaEIsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNyQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ3JCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUNuQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ3JCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTthQUNoQyxDQUFDO1NBQ0gsQ0FBQTtJQUNILENBQUM7SUFFRCxPQUFPO0lBQ1AsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUFBLENBQUM7SUFFRixJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFBQSxDQUFDOzhHQW5EUyxlQUFlO2tHQUFmLGVBQWUsNnFCQ2pCNUIsdzFGQW9FQSxzOUNEdkRZLFlBQVksd1lBQUUsc0JBQXNCLDhEQUFFLGVBQWUscUhBQUUsYUFBYTs7MkZBSW5FLGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0UsV0FBVyxjQUNULElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxzQkFBc0IsRUFBRSxlQUFlLEVBQUUsYUFBYSxDQUFDO3dEQU10RSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUdrQixjQUFjO3NCQUFyQyxZQUFZO3VCQUFDLFFBQVE7Z0JBQ0QsV0FBVztzQkFBL0IsWUFBWTt1QkFBQyxLQUFLO2dCQUNTLGtCQUFrQjtzQkFBN0MsWUFBWTt1QkFBQyxZQUFZO2dCQUNGLGNBQWM7c0JBQXJDLFlBQVk7dUJBQUMsUUFBUTtnQkFHUyxlQUFlO3NCQUE3QyxlQUFlO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBjb21wdXRlZCwgQ29udGVudENoaWxkLCBUZW1wbGF0ZVJlZiwgQ29udGVudENoaWxkcmVuLCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCdWJibGVMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9idWJibGUtbG9hZGluZy9idWJibGUtbG9hZGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBERUZBVUxUX0FWQVRBUl9XSURUSCwgREVGQVVMVF9BVkFUQVJfSEVJR0hULCBBVkFUQVJfTkFNRSwgQVZBVEFSX0lNRyB9IGZyb20gJy4uL2NvbXBvbmVudHMtY29tbW9uL0J1YmJsZS9jb21tb24vYnViYmxlLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBCdWJibGVBbGlnbiwgQnViYmxlVmFyaWFudCwgQXZhdGFyUG9zaXRpb24sIEJ1YmJsZUF2YXRhciB9IGZyb20gJy4uL2NvbXBvbmVudHMtY29tbW9uLy9CdWJibGUvY29tbW9uL2J1YmJsZS10eXBlcyc7XG5pbXBvcnQgeyBCdWJibGVBZGFwdGVyLCBCdWJibGVGb3VuZGF0aW9uIH0gZnJvbSAnLi4vY29tcG9uZW50cy1jb21tb24vQnViYmxlL2ZvdW5kYXRpb24nO1xuaW1wb3J0IEJhc2VDb21wb25lbnQgZnJvbSAnLi4vQmFzZS9iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vTG9jYWxlL3RyYW5zbGF0ZS5waXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWMtYnViYmxlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQnViYmxlTG9hZGluZ0NvbXBvbmVudCwgQXZhdGFyQ29tcG9uZW50LCBUcmFuc2xhdGVQaXBlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2J1YmJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2J1YmJsZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJ1YmJsZUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAvLyDnu4Tku7blsZ7mgKdcbiAgQElucHV0KCkgY29udGVudDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgYWxpZ246IEJ1YmJsZUFsaWduID0gJ2xlZnQnO1xuICBASW5wdXQoKSBhdmF0YXJQb3NpdGlvbjogQXZhdGFyUG9zaXRpb24gPSAnc2lkZSc7XG4gIEBJbnB1dCgpIHZhcmlhbnQ6IEJ1YmJsZVZhcmlhbnQgPSAnZmlsbGVkJztcbiAgQElucHV0KCkgYXZhdGFyQ29uZmlnPzogQnViYmxlQXZhdGFyO1xuXG4gIC8vIOWGheWuueaKleW9seaooeadv+W8leeUqFxuICBAQ29udGVudENoaWxkKCdhdmF0YXInKSBhdmF0YXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuICBAQ29udGVudENoaWxkKCd0b3AnKSB0b3BUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuICBAQ29udGVudENoaWxkKCdsb2FkaW5nVHBsJykgbG9hZGluZ1RwbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG4gIEBDb250ZW50Q2hpbGQoJ2JvdHRvbScpIGJvdHRvbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG4gIFxuICAvLyDmo4DmtYvmmK/lkKbmnInlhoXlrrnmipXlvbFcbiAgQENvbnRlbnRDaGlsZHJlbignbmctY29udGVudCcpIGNvbnRlbnRDaGlsZHJlbjogUXVlcnlMaXN0PGFueT47XG4gIFxuICAvLyDorqHnrpfmmK/lkKbmnInlhoXlrrnmipXlvbFcbiAgZ2V0IG5nQ29udGVudFByb2plY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50Q2hpbGRyZW4gJiYgdGhpcy5jb250ZW50Q2hpbGRyZW4ubGVuZ3RoID4gMDtcbiAgfVxuICBcbiAgY29uc3RydWN0b3IoKSB7IHN1cGVyKCk7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZvdW5kYXRpb24gPSBuZXcgQnViYmxlRm91bmRhdGlvbih0aGlzLmFkYXB0ZXIpO1xuICAgIHRoaXMuZm91bmRhdGlvbi5pbml0KCk7XG4gIH1cblxuICBvdmVycmlkZSBnZXQgYWRhcHRlcigpOiBCdWJibGVBZGFwdGVyIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3VwZXIuYWRhcHRlcixcbiAgICAgIGdldFByb3BzOiAoKSA9PiAoe1xuICAgICAgICBjb250ZW50OiB0aGlzLmNvbnRlbnQsXG4gICAgICAgIGxvYWRpbmc6IHRoaXMubG9hZGluZyxcbiAgICAgICAgYWxpZ246IHRoaXMuYWxpZ24sXG4gICAgICAgIGF2YXRhclBvc2l0aW9uOiB0aGlzLmF2YXRhclBvc2l0aW9uLFxuICAgICAgICB2YXJpYW50OiB0aGlzLnZhcmlhbnQsXG4gICAgICAgIGF2YXRhckNvbmZpZzogdGhpcy5hdmF0YXJDb25maWcsXG4gICAgICB9KSxcbiAgICB9XG4gIH1cblxuICAvLyDorqHnrpflsZ7mgKdcbiAgZ2V0IGJ1YmJsZUNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5mb3VuZGF0aW9uLmdldEJ1YmJsZUNsYXNzZXMoKTtcbiAgfTtcblxuICBnZXQgaXNFbXB0eUF2YXRhcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mb3VuZGF0aW9uLmdldElzRW1wdHlBdmF0YXIodGhpcy5hdmF0YXJDb25maWcpO1xuICB9O1xufVxuIiwiPGRpdiBjbGFzcz1cIm1jLWJ1YmJsZVwiIFtuZ0NsYXNzXT1cImJ1YmJsZUNsYXNzZXNcIiByb2xlPVwiZ3JvdXBcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidCdWJibGUuYXJpYUxhYmVsJyB8IHRyYW5zbGF0ZVwiPlxuICA8IS0tIOiHquWumuS5ieWktOWDj+WMuuWfnyAtLT5cbiAgPGRpdiAqbmdJZj1cImF2YXRhclRlbXBsYXRlXCIgY2xhc3M9XCJtYy1idWJibGUtYXZhdGFyXCIgcm9sZT1cImltZ1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhdmF0YXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlthdmF0YXJdXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgXG4gIDwhLS0g6buY6K6k5aS05YOP6YWN572uIC0tPlxuICA8ZGl2ICpuZ0lmPVwiIWF2YXRhclRlbXBsYXRlICYmIGF2YXRhckNvbmZpZ1wiXG4gICAgY2xhc3M9XCJtYy1idWJibGUtYXZhdGFyXCIgcm9sZT1cImltZ1wiXG4gICAgW25nQ2xhc3NdPVwieyAnZW1wdHktYXZhdGFyJzogaXNFbXB0eUF2YXRhciB9XCJcbiAgPlxuICAgIDxtYy1hdmF0YXJcbiAgICAgICpuZ0lmPVwiIWlzRW1wdHlBdmF0YXJcIlxuICAgICAgW2ltZ1NyY109XCJhdmF0YXJDb25maWc/LmltZ1NyYyB8fCAnJ1wiXG4gICAgICBbbmFtZV09XCJhdmF0YXJDb25maWc/Lm5hbWUgfHwgJydcIlxuICAgICAgW3dpZHRoXT1cImF2YXRhckNvbmZpZz8ud2lkdGggfHwgMzZcIlxuICAgICAgW2hlaWdodF09XCJhdmF0YXJDb25maWc/LmhlaWdodCB8fCAzNlwiXG4gICAgICBbZ2VuZGVyXT1cImF2YXRhckNvbmZpZz8uZ2VuZGVyIHx8ICcnXCJcbiAgICAvPlxuICAgIDxkaXYgKm5nSWY9XCJpc0VtcHR5QXZhdGFyXCIgICAgY2xhc3M9XCJtYy1idWJibGUtYXZhdGFyLXdyYXBwZXJcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidCdWJibGUuZW1wdHlBdmF0YXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJhdmF0YXJDb25maWc/LndpZHRoIHx8IDM2XCJcbiAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiYXZhdGFyQ29uZmlnPy5oZWlnaHQgfHwgMzZcIj48L2Rpdj5cbiAgICA8c3BhbiAqbmdJZj1cImF2YXRhclBvc2l0aW9uID09PSAndG9wJ1wiIGNsYXNzPVwibWMtYnViYmxlLWF2YXRhci1uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInQnViYmxlLnVzZXJOYW1lJyB8IHRyYW5zbGF0ZTp7IG5hbWU6IGF2YXRhckNvbmZpZz8uZGlzcGxheU5hbWUgfHwgJycgfSBcIj57e1xuICAgICAgYXZhdGFyQ29uZmlnPy5kaXNwbGF5TmFtZVxuICAgIH19PC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwibWMtYnViYmxlLWNvbnRlbnQtY29udGFpbmVyXCIgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICBbbmdDbGFzc109XCJ7ICd3aXRoLWF2YXRhcic6IGF2YXRhclRlbXBsYXRlIHx8IGF2YXRhckNvbmZpZyB9XCJcbiAgPlxuICAgIDwhLS0g6aG26YOo5YaF5a655oqV5b2xIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZ1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRvcFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdG9wXVwiPjwvbmctY29udGVudD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICBcbiAgICA8IS0tIOWKoOi9veeKtuaAgSAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwibG9hZGluZy1jb250YWluZXJcIiByb2xlPVwic3RhdHVzXCIgYXJpYS1idXN5PVwidHJ1ZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdUcGxUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0TG9hZGluZ1RlbXBsYXRlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nVHBsVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2xvYWRpbmdUcGxdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRMb2FkaW5nVGVtcGxhdGU+XG4gICAgICAgIDxtYy1idWJibGUtbG9hZGluZz48L21jLWJ1YmJsZS1sb2FkaW5nPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8IS0tIOS4u+imgeWGheWuuSAtLT5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIiFsb2FkaW5nXCJcbiAgICAgIGNsYXNzPVwibWMtYnViYmxlLWNvbnRlbnRcIlxuICAgICAgW25nQ2xhc3NdPVwiW3ZhcmlhbnRdXCJcbiAgICAgIHJvbGU9XCJyZWdpb25cIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50ICYmICFuZ0NvbnRlbnRQcm9qZWN0ZWRcIj5cbiAgICAgICAgPHNwYW4gW2F0dHIuYXJpYS1sYWJlbF09XCInQnViYmxlLmNvbnRlbnQnIHwgdHJhbnNsYXRlXCI+e3sgY29udGVudCB9fTwvc3Bhbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIFxuICAgIDwhLS0g5bqV6YOo5YaF5a655oqV5b2xIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZ1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJvdHRvbVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYm90dG9tXVwiPjwvbmctY29udGVudD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|