@matechat/ng 20.0.1-alpha.0 → 20.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 +206 -41
  2. package/fesm2022/matechat-ng.mjs +71 -70
  3. package/fesm2022/matechat-ng.mjs.map +1 -1
  4. package/index.d.ts +612 -3
  5. package/package.json +14 -3
  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 -32
  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 -49
  24. package/MarkdownCard/index.d.ts +0 -3
  25. package/MarkdownCard/markdown-card.component.d.ts +0 -200
  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 -21
  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 -46
  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 -175
  60. package/esm2022/MarkdownCard/index.mjs +0 -4
  61. package/esm2022/MarkdownCard/markdown-card.component.mjs +0 -436
  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,15 +0,0 @@
1
- import BaseFoundation, { DefaultAdapter } from '../Base/foundation';
2
- export interface InputButtonAdapter extends DefaultAdapter {
3
- locale(key: string, params?: Record<string, string>): string;
4
- emitChange(): void;
5
- }
6
- export declare class InputButtonFoundation extends BaseFoundation<InputButtonAdapter> {
7
- constructor(adapter: InputButtonAdapter);
8
- showClickWave(nativeElement: HTMLElement, event: MouseEvent): void;
9
- getButtonClasses(): {
10
- 'mc-button': boolean;
11
- 'mc-button-loading': any;
12
- mousedown: any;
13
- 'mc-button-simple': boolean;
14
- };
15
- }
@@ -1,16 +0,0 @@
1
- export declare enum DisplayType {
2
- Simple = "simple",
3
- Full = "full"
4
- }
5
- export declare enum InputVariant {
6
- Bordered = "bordered",
7
- BorderLess = "borderless"
8
- }
9
- export declare enum SendBtnVariant {
10
- Simple = "simple",
11
- Full = "full"
12
- }
13
- export declare enum SubmitShortKey {
14
- Enter = "enter",
15
- ShiftEnter = "shiftEnter"
16
- }
@@ -1,20 +0,0 @@
1
- import BaseFoundation, { DefaultAdapter } from '../Base/foundation';
2
- export interface InputAdapter extends DefaultAdapter {
3
- locale(key: string, params?: Record<string, string>): string;
4
- emitChange(): void;
5
- submit(inputValue: string): void;
6
- }
7
- export declare class InputFoundation extends BaseFoundation<InputAdapter> {
8
- constructor(adapter: InputAdapter);
9
- getInputClasses(): {
10
- 'mc-input': boolean;
11
- 'mc-input-disabled': any;
12
- 'mc-input-simple': boolean;
13
- 'mc-input-borderless': boolean;
14
- };
15
- getPlaceholderText(): any;
16
- clearInput(): void;
17
- emitChange(): void;
18
- submit(inputValue: string): void;
19
- onKeydown(event: KeyboardEvent): void;
20
- }
@@ -1,26 +0,0 @@
1
- declare const _default: {
2
- Input: {
3
- send: string;
4
- pauseAnswer: string;
5
- pleaseEnter: string;
6
- pleaseEnterPlaceholder: string;
7
- ariaLabel: string;
8
- };
9
- Md: {
10
- toggle: string;
11
- copy: string;
12
- diagram: string;
13
- code: string;
14
- zoomIn: string;
15
- zoomOut: string;
16
- downLoad: string;
17
- };
18
- Bubble: {
19
- ariaLabel: string;
20
- emptyAvatar: string;
21
- userName: string;
22
- content: string;
23
- avatar: string;
24
- };
25
- };
26
- export default _default;
@@ -1,26 +0,0 @@
1
- declare const _default: {
2
- Input: {
3
- send: string;
4
- pauseAnswer: string;
5
- pleaseEnter: string;
6
- pleaseEnterPlaceholder: string;
7
- ariaLabel: string;
8
- };
9
- Md: {
10
- toggle: string;
11
- copy: string;
12
- diagram: string;
13
- code: string;
14
- zoomIn: string;
15
- zoomOut: string;
16
- downLoad: string;
17
- };
18
- Bubble: {
19
- ariaLabel: string;
20
- emptyAvatar: string;
21
- userName: string;
22
- content: string;
23
- avatar: string;
24
- };
25
- };
26
- export default _default;
@@ -1,21 +0,0 @@
1
- import BaseFoundation, { DefaultAdapter } from '../Base/foundation';
2
- import { MermaidService } from './common/MermaidService';
3
- import { MDCardService } from './common/MDCardService';
4
- export interface CodeBlockAdapter extends DefaultAdapter {
5
- getContainer(): HTMLElement | null;
6
- highlightCodeChange(code: string, language: string): void;
7
- }
8
- export declare class CodeBlockFoundation extends BaseFoundation<CodeBlockAdapter> {
9
- mermaidService?: MermaidService;
10
- mdCardService: MDCardService;
11
- constructor(adapter: CodeBlockAdapter);
12
- toggleExpand: () => void;
13
- zoomOut: () => void;
14
- zoomIn: () => void;
15
- checkIsMermaid: () => any;
16
- download: () => void;
17
- handleCopySuccess: () => void;
18
- copyCodeInternal(): void;
19
- updateHighlightedCode: () => void;
20
- renderMermaid: () => Promise<void>;
21
- }
@@ -1,14 +0,0 @@
1
- import { type IWhiteList } from 'xss';
2
- import type { CustomXssRule, MdPlugin } from './mdCard.types.ts';
3
- export declare class MDCardService {
4
- private xssWhiteList;
5
- private cssWhiteList;
6
- constructor();
7
- private setDefaultXss;
8
- private onIgnoreTagAttr;
9
- getXssWhiteList(): IWhiteList;
10
- setXssWhiteList(list: IWhiteList): void;
11
- setCustomXssRules(rules: CustomXssRule[]): void;
12
- setMdPlugins(plugins: MdPlugin[], mdt: any): void;
13
- filterHtml(html: string): string;
14
- }
@@ -1,23 +0,0 @@
1
- import type { MermaidConfig } from './mdCard.types';
2
- export declare class MermaidService {
3
- private config;
4
- private mermaidInstance;
5
- private isLoading;
6
- private lastValidResult;
7
- private viewStateMap;
8
- private containerHeight;
9
- constructor(config?: MermaidConfig);
10
- private loadMermaid;
11
- renderToContainer(container: HTMLElement, code: string, theme?: 'light' | 'dark'): Promise<void>;
12
- private initViewState;
13
- private applyTransform;
14
- zoomIn(container: HTMLElement): void;
15
- zoomOut(container: HTMLElement): void;
16
- reset(container: HTMLElement): void;
17
- download(container: HTMLElement, filename?: string): Promise<void>;
18
- private onSvgMouseDown;
19
- private onSvgMouseMove;
20
- private onSvgMouseUp;
21
- renderMermaid(code: string, theme?: 'light' | 'dark'): Promise<string>;
22
- setConfig(config?: MermaidConfig): void;
23
- }
@@ -1,56 +0,0 @@
1
- import type { Options, PluginSimple, PluginWithOptions, PluginWithParams } from 'markdown-it';
2
- import type { Token } from 'markdown-it';
3
- export interface MermaidConfig {
4
- theme?: string;
5
- }
6
- export interface CustomXssRule {
7
- key: string;
8
- value: string[] | null;
9
- }
10
- export interface CodBlockData {
11
- code: string;
12
- language: string;
13
- }
14
- export type CodeBlockSlot = {
15
- actions?: () => void;
16
- header?: () => void;
17
- content?: () => void;
18
- };
19
- export type Theme = 'light' | 'dark';
20
- export type TypingStyle = 'normal' | 'cursor' | 'color' | 'gradient';
21
- export type IntervalType = number | [number, number];
22
- export declare const defaultTypingConfig: {
23
- step: number;
24
- interval: number;
25
- style: TypingStyle;
26
- };
27
- export interface MdPlugin {
28
- plugin: PluginSimple | PluginWithOptions | PluginWithParams;
29
- opts?: unknown;
30
- }
31
- export interface MarkdownCardProps {
32
- content?: string;
33
- typing?: boolean;
34
- enableThink?: boolean;
35
- typingOptions?: {
36
- step?: number;
37
- interval?: number | [number, number];
38
- style?: TypingStyle;
39
- };
40
- thinkOptions?: {
41
- customClass?: string;
42
- };
43
- mdOptions?: Options;
44
- mdPlugins?: Array<MdPlugin>;
45
- customXssRules?: Array<CustomXssRule>;
46
- theme?: Theme;
47
- enableMermaid?: boolean;
48
- mermaidConfig?: MermaidConfig;
49
- }
50
- export interface ASTNode {
51
- nodeType: string;
52
- openNode: Token | null;
53
- closeNode: Token | null;
54
- children: (ASTNode | Token)[];
55
- vNodeKey: string;
56
- }
@@ -1,150 +0,0 @@
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;
@@ -1,38 +0,0 @@
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
- }
@@ -1,46 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export default class BaseComponent {
4
- constructor() {
5
- }
6
- ngOnDestroy() {
7
- this.foundation &&
8
- typeof this.foundation.destroy === 'function' &&
9
- this.foundation.destroy();
10
- }
11
- get adapter() {
12
- return {
13
- getProp: (key) => {
14
- return this[key];
15
- },
16
- getProps: () => {
17
- return this;
18
- },
19
- setState: (states, cb) => {
20
- for (const key in states) {
21
- if (states.hasOwnProperty(key)) {
22
- this[key] = states[key];
23
- }
24
- cb && cb();
25
- }
26
- },
27
- getState: (key) => this[key],
28
- getStates: () => this,
29
- getCache: (key) => key && this.cache[key],
30
- getCaches: () => this.cache,
31
- setCache: (key, value) => key && (this.cache[key] = value),
32
- nextTick: (cb) => setTimeout(cb, 0),
33
- };
34
- }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: BaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
36
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: BaseComponent, isStandalone: true, selector: "mate-base-component", ngImport: i0, template: '', isInline: true }); }
37
- }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: BaseComponent, decorators: [{
39
- type: Component,
40
- args: [{
41
- selector: 'mate-base-component',
42
- standalone: true,
43
- template: '',
44
- }]
45
- }], ctorParameters: () => [] });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLW5nL3NyYy9CYXNlL2Jhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTzFDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sYUFBYTtJQUdoQztJQUNBLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVU7WUFDYixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxLQUFLLFVBQVU7WUFDN0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTztZQUNMLE9BQU8sRUFBRSxDQUFDLEdBQVcsRUFBRSxFQUFFO2dCQUN2QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQixDQUFDO1lBQ0QsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDYixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFDRCxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUU7Z0JBQ3ZCLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUM7b0JBQ3pCLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUMxQixDQUFDO29CQUNELEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDYixDQUFDO1lBQ0gsQ0FBQztZQUNELFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUM1QixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtZQUNyQixRQUFRLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUN6QyxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDM0IsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDMUQsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUNwQyxDQUFDO0lBQ0osQ0FBQzs4R0FuQ2tCLGFBQWE7a0dBQWIsYUFBYSwrRUFGdEIsRUFBRTs7MkZBRU8sYUFBYTtrQkFMakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLEVBQUU7aUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmFzZUZvdW5kYXRpb24sIHsgRGVmYXVsdEFkYXB0ZXIgfSBmcm9tICcuLi9jb21wb25lbnRzLWNvbW1vbi9CYXNlL2ZvdW5kYXRpb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hdGUtYmFzZS1jb21wb25lbnQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZTogJycsXG59KVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmFzZUNvbXBvbmVudDxUIGV4dGVuZHMgQmFzZUZvdW5kYXRpb248RGVmYXVsdEFkYXB0ZXI+PiB7XG4gIGZvdW5kYXRpb246IFQ7XG4gIGNhY2hlOiBhbnk7XG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5mb3VuZGF0aW9uICYmXG4gICAgICB0eXBlb2YgdGhpcy5mb3VuZGF0aW9uLmRlc3Ryb3kgPT09ICdmdW5jdGlvbicgJiZcbiAgICAgIHRoaXMuZm91bmRhdGlvbi5kZXN0cm95KCk7XG4gIH1cblxuICBnZXQgYWRhcHRlcigpOiBEZWZhdWx0QWRhcHRlciB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldFByb3A6IChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICByZXR1cm4gdGhpc1trZXldO1xuICAgICAgfSxcbiAgICAgIGdldFByb3BzOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIHNldFN0YXRlOiAoc3RhdGVzLCBjYikgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBzdGF0ZXMpIHtcbiAgICAgICAgICBpZiAoc3RhdGVzLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IHN0YXRlc1trZXldO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYiAmJiBjYigpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZ2V0U3RhdGU6IChrZXkpID0+IHRoaXNba2V5XSxcbiAgICAgIGdldFN0YXRlczogKCkgPT4gdGhpcyxcbiAgICAgIGdldENhY2hlOiAoa2V5KSA9PiBrZXkgJiYgdGhpcy5jYWNoZVtrZXldLFxuICAgICAgZ2V0Q2FjaGVzOiAoKSA9PiB0aGlzLmNhY2hlLFxuICAgICAgc2V0Q2FjaGU6IChrZXksIHZhbHVlKSA9PiBrZXkgJiYgKHRoaXMuY2FjaGVba2V5XSA9IHZhbHVlKSxcbiAgICAgIG5leHRUaWNrOiAoY2IpID0+IHNldFRpbWVvdXQoY2IsIDApLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -1,121 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { AvatarBodyIconComponent } from '../avatar-body-icon/avatar-body-icon.component';
4
- import { AvatarNoBodyIconComponent } from '../avatar-no-body-icon/avatar-no-body-icon.component';
5
- import { TranslatePipe } from '../../Locale/translate.pipe';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- export class AvatarComponent {
9
- constructor() {
10
- this.imgSrc = '';
11
- this.name = '';
12
- this.width = 36;
13
- this.height = 36;
14
- this.isRound = true;
15
- this.gender = '';
16
- this.isErrorImg = false;
17
- this.isNobody = true;
18
- this.code = 1;
19
- this.fontSize = 12;
20
- this.nameDisplay = '';
21
- }
22
- ngOnInit() {
23
- this.calcValues(this.name);
24
- }
25
- ngOnChanges(changes) {
26
- if (changes['name'] || changes['width'] || changes['height'] || changes['gender']) {
27
- this.calcValues(this.name);
28
- }
29
- }
30
- onErrorImg() {
31
- this.isErrorImg = true;
32
- }
33
- getBackgroundColor(char) {
34
- if (this.gender) {
35
- if (this.gender.toLowerCase() === 'male') {
36
- this.code = 1;
37
- }
38
- else if (this.gender.toLowerCase() === 'female') {
39
- this.code = 0;
40
- }
41
- return;
42
- }
43
- const unicode = char.charCodeAt(0);
44
- this.code = unicode % 2;
45
- }
46
- setDisplayName(nameValue, widthValue) {
47
- if (!nameValue) {
48
- this.nameDisplay = '';
49
- return;
50
- }
51
- if (nameValue.length < 2) {
52
- this.nameDisplay = nameValue;
53
- }
54
- else {
55
- // 以中文开头显示最后两个字符
56
- if (/^[\u4e00-\u9fa5]/.test(nameValue)) {
57
- this.nameDisplay = nameValue.substr(nameValue.length - 2, 2);
58
- // 英文开头
59
- }
60
- else if (/^[A-Za-z]/.test(nameValue)) {
61
- // 含有两个及以上,包含空格,下划线,中划线分隔符的英文名取前两个字母的首字母
62
- if (/[_ -]/.test(nameValue)) {
63
- const parts = nameValue.split(/_|-|\s+/);
64
- if (parts.length >= 2) {
65
- this.nameDisplay = parts[0].substr(0, 1).toUpperCase() + parts[1].substr(0, 1).toUpperCase();
66
- }
67
- else {
68
- this.nameDisplay = nameValue.substr(0, 2).toUpperCase();
69
- }
70
- }
71
- else {
72
- // 一个英文名的情况显示前两个字母
73
- this.nameDisplay = nameValue.substr(0, 2).toUpperCase();
74
- }
75
- }
76
- else {
77
- // 非中英文开头默认取前两个字符
78
- this.nameDisplay = nameValue.substr(0, 2);
79
- }
80
- }
81
- if (widthValue < 30) {
82
- this.nameDisplay = nameValue.substr(0, 1).toUpperCase();
83
- }
84
- this.getBackgroundColor(nameValue.substr(0, 1));
85
- }
86
- calcValues(nameInput) {
87
- const userName = nameInput;
88
- const minNum = Math.min(this.width, this.height);
89
- if (userName) {
90
- this.isNobody = false;
91
- this.setDisplayName(userName, minNum);
92
- }
93
- else if (userName === '') {
94
- this.isNobody = false;
95
- this.nameDisplay = '';
96
- }
97
- else {
98
- this.isNobody = true;
99
- }
100
- this.fontSize = minNum / 4 + 3;
101
- }
102
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: AvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
103
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: AvatarComponent, isStandalone: true, selector: "mc-avatar", inputs: { imgSrc: "imgSrc", name: "name", width: "width", height: "height", isRound: "isRound", gender: "gender" }, usesOnChanges: true, ngImport: i0, template: "<span class=\"mc-bubble-avatar-wrapper\">\n <img\n *ngIf=\"imgSrc && !isErrorImg\"\n [src]=\"imgSrc\"\n [attr.alt]=\"'Bubble.avatar' | translate:{ name: name }\"\n (error)=\"onErrorImg()\"\n [ngStyle]=\"{\n height: height + 'px',\n width: width + 'px',\n borderRadius: isRound ? '100%' : '0'\n }\"\n />\n <span\n *ngIf=\"!imgSrc && !isNobody && nameDisplay?.length !== 0\"\n [ngClass]=\"['mc-bubble-avatar-style', 'mc-bubble-avatar-background-' + code]\"\n [ngStyle]=\"{\n height: height + 'px',\n width: width + 'px',\n lineHeight: height + 'px',\n fontSize: fontSize + 'px',\n borderRadius: isRound ? '100%' : '0'\n }\"\n >\n {{ nameDisplay }}\n </span>\n <span\n *ngIf=\"!imgSrc && !isNobody && nameDisplay?.length === 0\"\n class=\"mc-bubble-avatar-style\"\n [ngStyle]=\"{ borderRadius: isRound ? '100%' : '0' }\"\n >\n <mc-avatar-body-icon [width]=\"width\" [height]=\"height\" />\n </span>\n <span\n *ngIf=\"(!imgSrc && isNobody) || (imgSrc && isErrorImg)\"\n class=\"mc-bubble-avatar-style\"\n [ngStyle]=\"{ borderRadius: isRound ? '100%' : '0' }\"\n >\n <mc-avatar-no-body-icon [width]=\"width\" [height]=\"height\" />\n </span>\n</span>", styles: [".mc-bubble-avatar-wrapper{display:inline-block}.mc-bubble-avatar-wrapper .mc-bubble-avatar-style{display:inline-block;text-align:center;color:var(--devui-light-text, #ffffff)}.mc-bubble-avatar-wrapper .mc-bubble-avatar-background-0{background-color:#ff8b87}.mc-bubble-avatar-wrapper .mc-bubble-avatar-background-1{background-color:#7693f5}\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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: AvatarBodyIconComponent, selector: "mc-avatar-body-icon", inputs: ["width", "height"] }, { kind: "component", type: AvatarNoBodyIconComponent, selector: "mc-avatar-no-body-icon", inputs: ["width", "height"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
104
- }
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: AvatarComponent, decorators: [{
106
- type: Component,
107
- args: [{ selector: 'mc-avatar', standalone: true, imports: [CommonModule, AvatarBodyIconComponent, AvatarNoBodyIconComponent, TranslatePipe], template: "<span class=\"mc-bubble-avatar-wrapper\">\n <img\n *ngIf=\"imgSrc && !isErrorImg\"\n [src]=\"imgSrc\"\n [attr.alt]=\"'Bubble.avatar' | translate:{ name: name }\"\n (error)=\"onErrorImg()\"\n [ngStyle]=\"{\n height: height + 'px',\n width: width + 'px',\n borderRadius: isRound ? '100%' : '0'\n }\"\n />\n <span\n *ngIf=\"!imgSrc && !isNobody && nameDisplay?.length !== 0\"\n [ngClass]=\"['mc-bubble-avatar-style', 'mc-bubble-avatar-background-' + code]\"\n [ngStyle]=\"{\n height: height + 'px',\n width: width + 'px',\n lineHeight: height + 'px',\n fontSize: fontSize + 'px',\n borderRadius: isRound ? '100%' : '0'\n }\"\n >\n {{ nameDisplay }}\n </span>\n <span\n *ngIf=\"!imgSrc && !isNobody && nameDisplay?.length === 0\"\n class=\"mc-bubble-avatar-style\"\n [ngStyle]=\"{ borderRadius: isRound ? '100%' : '0' }\"\n >\n <mc-avatar-body-icon [width]=\"width\" [height]=\"height\" />\n </span>\n <span\n *ngIf=\"(!imgSrc && isNobody) || (imgSrc && isErrorImg)\"\n class=\"mc-bubble-avatar-style\"\n [ngStyle]=\"{ borderRadius: isRound ? '100%' : '0' }\"\n >\n <mc-avatar-no-body-icon [width]=\"width\" [height]=\"height\" />\n </span>\n</span>", styles: [".mc-bubble-avatar-wrapper{display:inline-block}.mc-bubble-avatar-wrapper .mc-bubble-avatar-style{display:inline-block;text-align:center;color:var(--devui-light-text, #ffffff)}.mc-bubble-avatar-wrapper .mc-bubble-avatar-background-0{background-color:#ff8b87}.mc-bubble-avatar-wrapper .mc-bubble-avatar-background-1{background-color:#7693f5}\n"] }]
108
- }], propDecorators: { imgSrc: [{
109
- type: Input
110
- }], name: [{
111
- type: Input
112
- }], width: [{
113
- type: Input
114
- }], height: [{
115
- type: Input
116
- }], isRound: [{
117
- type: Input
118
- }], gender: [{
119
- type: Input
120
- }] } });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMtbmcvc3JjL0J1YmJsZS9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMtbmcvc3JjL0J1YmJsZS9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDakcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7QUFTNUQsTUFBTSxPQUFPLGVBQWU7SUFQNUI7UUFRVyxXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDbEIsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFDeEIsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQUU3QixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIsU0FBSSxHQUFXLENBQUMsQ0FBQztRQUNqQixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO0tBZ0YxQjtJQTlFQyxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJ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QkFBdUIsRUFBRSx5QkFBeUIsRUFBRSxhQUFhLENBQUM7OEJBS2pGLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBdmF0YXJCb2R5SWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2F2YXRhci1ib2R5LWljb24vYXZhdGFyLWJvZHktaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXZhdGFyTm9Cb2R5SWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2F2YXRhci1uby1ib2R5LWljb24vYXZhdGFyLW5vLWJvZHktaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL0xvY2FsZS90cmFuc2xhdGUucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21jLWF2YXRhcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEF2YXRhckJvZHlJY29uQ29tcG9uZW50LCBBdmF0YXJOb0JvZHlJY29uQ29tcG9uZW50LCBUcmFuc2xhdGVQaXBlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2F2YXRhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F2YXRhci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEF2YXRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgaW1nU3JjOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHdpZHRoOiBudW1iZXIgPSAzNjtcbiAgQElucHV0KCkgaGVpZ2h0OiBudW1iZXIgPSAzNjtcbiAgQElucHV0KCkgaXNSb3VuZDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGdlbmRlcjogc3RyaW5nID0gJyc7XG5cbiAgaXNFcnJvckltZzogYm9vbGVhbiA9IGZhbHNlO1xuICBpc05vYm9keTogYm9vbGVhbiA9IHRydWU7XG4gIGNvZGU6IG51bWJlciA9IDE7XG4gIGZvbnRTaXplOiBudW1iZXIgPSAxMjtcbiAgbmFtZURpc3BsYXk6IHN0cmluZyA9ICcnO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2FsY1ZhbHVlcyh0aGlzLm5hbWUpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWyduYW1lJ10gfHwgY2hhbmdlc1snd2lkdGgnXSB8fCBjaGFuZ2VzWydoZWlnaHQnXSB8fCBjaGFuZ2VzWydnZW5kZXInXSkge1xuICAgICAgdGhpcy5jYWxjVmFsdWVzKHRoaXMubmFtZSk7XG4gICAgfVxuICB9XG5cbiAgb25FcnJvckltZygpOiB2b2lkIHtcbiAgICB0aGlzLmlzRXJyb3JJbWcgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRCYWNrZ3JvdW5kQ29sb3IoY2hhcjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZ2VuZGVyKSB7XG4gICAgICBpZiAodGhpcy5nZW5kZXIudG9Mb3dlckNhc2UoKSA9PT0gJ21hbGUnKSB7XG4gICAgICAgIHRoaXMuY29kZSA9IDE7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZ2VuZGVyLnRvTG93ZXJDYXNlKCkgPT09ICdmZW1hbGUnKSB7XG4gICAgICAgIHRoaXMuY29kZSA9IDA7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHVuaWNvZGUgPSBjaGFyLmNoYXJDb2RlQXQoMCk7XG4gICAgdGhpcy5jb2RlID0gdW5pY29kZSAlIDI7XG4gIH1cblxuICBwcml2YXRlIHNldERpc3BsYXlOYW1lKG5hbWVWYWx1ZTogc3RyaW5nLCB3aWR0aFZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIW5hbWVWYWx1ZSkge1xuICAgICAgdGhpcy5uYW1lRGlzcGxheSA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChuYW1lVmFsdWUubGVuZ3RoIDwgMikge1xuICAgICAgdGhpcy5uYW1lRGlzcGxheSA9IG5hbWVWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8g5Lul5Lit5paH5byA5aS05pi+56S65pyA5ZCO5Lik5Liq5a2X56ymXG4gICAgICBpZiAoL15bXFx1NGUwMC1cXHU5ZmE1XS8udGVzdChuYW1lVmFsdWUpKSB7XG4gICAgICAgIHRoaXMubmFtZURpc3BsYXkgPSBuYW1lVmFsdWUuc3Vic3RyKG5hbWVWYWx1ZS5sZW5ndGggLSAyLCAyKTtcbiAgICAgICAgLy8g6Iux5paH5byA5aS0XG4gICAgICB9IGVsc2UgaWYgKC9eW0EtWmEtel0vLnRlc3QobmFtZVZhbHVlKSkge1xuICAgICAgICAvLyDlkKvmnInkuKTkuKrlj4rku6XkuIrvvIzljIXlkKvnqbrmoLzvvIzkuIvliJLnur/vvIzkuK3liJLnur/liIbpmpTnrKbnmoToi7HmloflkI3lj5bliY3kuKTkuKrlrZfmr43nmoTpppblrZfmr41cbiAgICAgICAgaWYgKC9bXyAtXS8udGVzdChuYW1lVmFsdWUpKSB7XG4gICAgICAgICAgY29uc3QgcGFydHMgPSBuYW1lVmFsdWUuc3BsaXQoL198LXxcXHMrLyk7XG4gICAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCA+PSAyKSB7XG4gICAgICAgICAgICB0aGlzLm5hbWVEaXNwbGF5ID0gcGFydHNbMF0uc3Vic3RyKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyBwYXJ0c1sxXS5zdWJzdHIoMCwgMSkudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5uYW1lRGlzcGxheSA9IG5hbWVWYWx1ZS5zdWJzdHIoMCwgMikudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8g5LiA5Liq6Iux5paH5ZCN55qE5oOF5Ya15pi+56S65YmN5Lik5Liq5a2X5q+NXG4gICAgICAgICAgdGhpcy5uYW1lRGlzcGxheSA9IG5hbWVWYWx1ZS5zdWJzdHIoMCwgMikudG9VcHBlckNhc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8g6Z2e5Lit6Iux5paH5byA5aS06buY6K6k5Y+W5YmN5Lik5Liq5a2X56ymXG4gICAgICAgIHRoaXMubmFtZURpc3BsYXkgPSBuYW1lVmFsdWUuc3Vic3RyKDAsIDIpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAod2lkdGhWYWx1ZSA8IDMwKSB7XG4gICAgICB0aGlzLm5hbWVEaXNwbGF5ID0gbmFtZVZhbHVlLnN1YnN0cigwLCAxKS50b1VwcGVyQ2FzZSgpO1xuICAgIH1cbiAgICB0aGlzLmdldEJhY2tncm91bmRDb2xvcihuYW1lVmFsdWUuc3Vic3RyKDAsIDEpKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY1ZhbHVlcyhuYW1lSW5wdXQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHVzZXJOYW1lID0gbmFtZUlucHV0O1xuICAgIGNvbnN0IG1pbk51bSA9IE1hdGgubWluKHRoaXMud2lkdGgsIHRoaXMuaGVpZ2h0KTtcbiAgICBpZiAodXNlck5hbWUpIHtcbiAgICAgIHRoaXMuaXNOb2JvZHkgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2V0RGlzcGxheU5hbWUodXNlck5hbWUsIG1pbk51bSk7XG4gICAgfSBlbHNlIGlmICh1c2VyTmFtZSA9PT0gJycpIHtcbiAgICAgIHRoaXMuaXNOb2JvZHkgPSBmYWxzZTtcbiAgICAgIHRoaXMubmFtZURpc3BsYXkgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc05vYm9keSA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMuZm9udFNpemUgPSBtaW5OdW0gLyA0ICsgMztcbiAgfVxufSIsIjxzcGFuIGNsYXNzPVwibWMtYnViYmxlLWF2YXRhci13cmFwcGVyXCI+XG4gIDxpbWdcbiAgICAqbmdJZj1cImltZ1NyYyAmJiAhaXNFcnJvckltZ1wiXG4gICAgW3NyY109XCJpbWdTcmNcIlxuICAgIFthdHRyLmFsdF09XCInQnViYmxlLmF2YXRhcicgfCB0cmFuc2xhdGU6eyBuYW1lOiBuYW1lIH1cIlxuICAgIChlcnJvcik9XCJvbkVycm9ySW1nKClcIlxuICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgIGhlaWdodDogaGVpZ2h0ICsgJ3B4JyxcbiAgICAgIHdpZHRoOiB3aWR0aCArICdweCcsXG4gICAgICBib3JkZXJSYWRpdXM6IGlzUm91bmQgPyAnMTAwJScgOiAnMCdcbiAgICB9XCJcbiAgLz5cbiAgPHNwYW5cbiAgICAqbmdJZj1cIiFpbWdTcmMgJiYgIWlzTm9ib2R5ICYmIG5hbWVEaXNwbGF5Py5sZW5ndGggIT09IDBcIlxuICAgIFtuZ0NsYXNzXT1cIlsnbWMtYnViYmxlLWF2YXRhci1zdHlsZScsICdtYy1idWJibGUtYXZhdGFyLWJhY2tncm91bmQtJyArIGNvZGVdXCJcbiAgICBbbmdTdHlsZV09XCJ7XG4gICAgICBoZWlnaHQ6IGhlaWdodCArICdweCcsXG4gICAgICB3aWR0aDogd2lkdGggKyAncHgnLFxuICAgICAgbGluZUhlaWdodDogaGVpZ2h0ICsgJ3B4JyxcbiAgICAgIGZvbnRTaXplOiBmb250U2l6ZSArICdweCcsXG4gICAgICBib3JkZXJSYWRpdXM6IGlzUm91bmQgPyAnMTAwJScgOiAnMCdcbiAgICB9XCJcbiAgPlxuICAgIHt7IG5hbWVEaXNwbGF5IH19XG4gIDwvc3Bhbj5cbiAgPHNwYW5cbiAgICAqbmdJZj1cIiFpbWdTcmMgJiYgIWlzTm9ib2R5ICYmIG5hbWVEaXNwbGF5Py5sZW5ndGggPT09IDBcIlxuICAgIGNsYXNzPVwibWMtYnViYmxlLWF2YXRhci1zdHlsZVwiXG4gICAgW25nU3R5bGVdPVwieyBib3JkZXJSYWRpdXM6IGlzUm91bmQgPyAnMTAwJScgOiAnMCcgfVwiXG4gID5cbiAgICA8bWMtYXZhdGFyLWJvZHktaWNvbiBbd2lkdGhdPVwid2lkdGhcIiBbaGVpZ2h0XT1cImhlaWdodFwiIC8+XG4gIDwvc3Bhbj5cbiAgPHNwYW5cbiAgICAqbmdJZj1cIighaW1nU3JjICYmIGlzTm9ib2R5KSB8fCAoaW1nU3JjICYmIGlzRXJyb3JJbWcpXCJcbiAgICBjbGFzcz1cIm1jLWJ1YmJsZS1hdmF0YXItc3R5bGVcIlxuICAgIFtuZ1N0eWxlXT1cInsgYm9yZGVyUmFkaXVzOiBpc1JvdW5kID8gJzEwMCUnIDogJzAnIH1cIlxuICA+XG4gICAgPG1jLWF2YXRhci1uby1ib2R5LWljb24gW3dpZHRoXT1cIndpZHRoXCIgW2hlaWdodF09XCJoZWlnaHRcIiAvPlxuICA8L3NwYW4+XG48L3NwYW4+Il19
@@ -1,19 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class AvatarBodyIconComponent {
4
- constructor() {
5
- this.width = 16;
6
- this.height = 16;
7
- }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: AvatarBodyIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: AvatarBodyIconComponent, isStandalone: true, selector: "mc-avatar-body-icon", inputs: { width: "width", height: "height" }, ngImport: i0, template: "<svg\n [style.width.px]=\"width\"\n [style.height.px]=\"height\"\n style=\"vertical-align: middle;\"\n viewBox=\"0 0 30 30\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <circle id=\"Oval\" fill=\"#CACFD8\" cx=\"15\" cy=\"15\" r=\"15\"></circle>\n <path\n d=\"M14.9997866,16 C12.5145053,16 10.4997866,13.9852814 10.4997866, 11.5 C10.4997866,9.01471863 12.5145053,7 14.9997866,7 C17.485068, 7 19.4997866,9.01471863 19.4997866,11.5 C19.4997866,13.9852814 17.485068, 16 14.9997866,16 Z M23,23 L7,22.998553 C7,19.0122153 10.8892296, 16.5 14.9997866,16.5 C19.1103437,16.5 23,20 23,23 Z\"\n fill=\"#FFFFFF\"\n ></path>\n </g>\n</svg>", styles: [""] }); }
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: AvatarBodyIconComponent, decorators: [{
12
- type: Component,
13
- args: [{ selector: 'mc-avatar-body-icon', standalone: true, template: "<svg\n [style.width.px]=\"width\"\n [style.height.px]=\"height\"\n style=\"vertical-align: middle;\"\n viewBox=\"0 0 30 30\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <circle id=\"Oval\" fill=\"#CACFD8\" cx=\"15\" cy=\"15\" r=\"15\"></circle>\n <path\n d=\"M14.9997866,16 C12.5145053,16 10.4997866,13.9852814 10.4997866, 11.5 C10.4997866,9.01471863 12.5145053,7 14.9997866,7 C17.485068, 7 19.4997866,9.01471863 19.4997866,11.5 C19.4997866,13.9852814 17.485068, 16 14.9997866,16 Z M23,23 L7,22.998553 C7,19.0122153 10.8892296, 16.5 14.9997866,16.5 C19.1103437,16.5 23,20 23,23 Z\"\n fill=\"#FFFFFF\"\n ></path>\n </g>\n</svg>" }]
14
- }], propDecorators: { width: [{
15
- type: Input
16
- }], height: [{
17
- type: Input
18
- }] } });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWJvZHktaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLW5nL3NyYy9CdWJibGUvYXZhdGFyLWJvZHktaWNvbi9hdmF0YXItYm9keS1pY29uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMtbmcvc3JjL0J1YmJsZS9hdmF0YXItYm9keS1pY29uL2F2YXRhci1ib2R5LWljb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUWpELE1BQU0sT0FBTyx1QkFBdUI7SUFOcEM7UUFPVyxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLFdBQU0sR0FBVyxFQUFFLENBQUM7S0FDOUI7OEdBSFksdUJBQXVCO2tHQUF2Qix1QkFBdUIsNkhDUnBDLDh1QkFlTTs7MkZEUE8sdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJOzhCQUtQLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21jLWF2YXRhci1ib2R5LWljb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vYXZhdGFyLWJvZHktaWNvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F2YXRhci1ib2R5LWljb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBdmF0YXJCb2R5SWNvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHdpZHRoOiBudW1iZXIgPSAxNjtcbiAgQElucHV0KCkgaGVpZ2h0OiBudW1iZXIgPSAxNjtcbn0iLCI8c3ZnXG4gIFtzdHlsZS53aWR0aC5weF09XCJ3aWR0aFwiXG4gIFtzdHlsZS5oZWlnaHQucHhdPVwiaGVpZ2h0XCJcbiAgc3R5bGU9XCJ2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1wiXG4gIHZpZXdCb3g9XCIwIDAgMzAgMzBcIlxuICB2ZXJzaW9uPVwiMS4xXCJcbiAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4+XG4gIDxnIHN0cm9rZT1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIxXCIgZmlsbD1cIm5vbmVcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCI+XG4gICAgPGNpcmNsZSBpZD1cIk92YWxcIiBmaWxsPVwiI0NBQ0ZEOFwiIGN4PVwiMTVcIiBjeT1cIjE1XCIgcj1cIjE1XCI+PC9jaXJjbGU+XG4gICAgPHBhdGhcbiAgICAgIGQ9XCJNMTQuOTk5Nzg2NiwxNiBDMTIuNTE0NTA1MywxNiAxMC40OTk3ODY2LDEzLjk4NTI4MTQgMTAuNDk5Nzg2NiwgMTEuNSBDMTAuNDk5Nzg2Niw5LjAxNDcxODYzIDEyLjUxNDUwNTMsNyAxNC45OTk3ODY2LDcgQzE3LjQ4NTA2OCwgNyAxOS40OTk3ODY2LDkuMDE0NzE4NjMgMTkuNDk5Nzg2NiwxMS41IEMxOS40OTk3ODY2LDEzLjk4NTI4MTQgMTcuNDg1MDY4LCAxNiAxNC45OTk3ODY2LDE2IFogTTIzLDIzIEw3LDIyLjk5ODU1MyBDNywxOS4wMTIyMTUzIDEwLjg4OTIyOTYsIDE2LjUgMTQuOTk5Nzg2NiwxNi41IEMxOS4xMTAzNDM3LDE2LjUgMjMsMjAgMjMsMjMgWlwiXG4gICAgICBmaWxsPVwiI0ZGRkZGRlwiXG4gICAgPjwvcGF0aD5cbiAgPC9nPlxuPC9zdmc+Il19