@fluentui/web-components 3.0.0-alpha.5 → 3.0.0-alpha.7
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/CHANGELOG.json +43 -1
- package/CHANGELOG.md +22 -2
- package/dist/dts/avatar/avatar.d.ts +97 -0
- package/dist/dts/avatar/avatar.definition.d.ts +9 -0
- package/dist/dts/avatar/avatar.options.d.ts +142 -0
- package/dist/dts/avatar/avatar.styles.d.ts +4 -0
- package/dist/dts/avatar/avatar.template.d.ts +8 -0
- package/dist/dts/avatar/define.d.ts +1 -0
- package/dist/dts/avatar/index.d.ts +5 -0
- package/dist/dts/divider/define.d.ts +1 -0
- package/dist/dts/divider/divider.d.ts +31 -0
- package/dist/dts/divider/divider.definition.d.ts +9 -0
- package/dist/dts/divider/divider.options.d.ts +40 -0
- package/dist/dts/divider/divider.styles.d.ts +4 -0
- package/dist/dts/divider/divider.template.d.ts +7 -0
- package/dist/dts/divider/index.d.ts +5 -0
- package/dist/dts/image/define.d.ts +1 -0
- package/dist/dts/image/image.d.ts +48 -0
- package/dist/dts/image/image.definition.d.ts +9 -0
- package/dist/dts/image/image.options.d.ts +27 -0
- package/dist/dts/image/image.styles.d.ts +5 -0
- package/dist/dts/image/image.template.d.ts +7 -0
- package/dist/dts/image/index.d.ts +5 -0
- package/dist/dts/index.d.ts +4 -0
- package/dist/dts/switch/define.d.ts +1 -0
- package/dist/dts/switch/index.d.ts +5 -0
- package/dist/dts/switch/switch.d.ts +13 -0
- package/dist/dts/switch/switch.definition.d.ts +9 -0
- package/dist/dts/switch/switch.options.d.ts +15 -0
- package/dist/dts/switch/switch.styles.d.ts +1 -0
- package/dist/dts/switch/switch.template.d.ts +3 -0
- package/dist/dts/utils/get-initials.d.ts +18 -0
- package/dist/esm/avatar/avatar.definition.js +17 -0
- package/dist/esm/avatar/avatar.definition.js.map +1 -0
- package/dist/esm/avatar/avatar.js +92 -0
- package/dist/esm/avatar/avatar.js.map +1 -0
- package/dist/esm/avatar/avatar.options.js +87 -0
- package/dist/esm/avatar/avatar.options.js.map +1 -0
- package/dist/esm/avatar/avatar.styles.js +476 -0
- package/dist/esm/avatar/avatar.styles.js.map +1 -0
- package/dist/esm/avatar/avatar.template.js +28 -0
- package/dist/esm/avatar/avatar.template.js.map +1 -0
- package/dist/esm/avatar/define.js +4 -0
- package/dist/esm/avatar/define.js.map +1 -0
- package/dist/esm/avatar/index.js +6 -0
- package/dist/esm/avatar/index.js.map +1 -0
- package/dist/esm/divider/define.js +4 -0
- package/dist/esm/divider/define.js.map +1 -0
- package/dist/esm/divider/divider.definition.js +17 -0
- package/dist/esm/divider/divider.definition.js.map +1 -0
- package/dist/esm/divider/divider.js +21 -0
- package/dist/esm/divider/divider.js.map +1 -0
- package/dist/esm/divider/divider.options.js +31 -0
- package/dist/esm/divider/divider.options.js.map +1 -0
- package/dist/esm/divider/divider.styles.js +111 -0
- package/dist/esm/divider/divider.styles.js.map +1 -0
- package/dist/esm/divider/divider.template.js +7 -0
- package/dist/esm/divider/divider.template.js.map +1 -0
- package/dist/esm/divider/index.js +6 -0
- package/dist/esm/divider/index.js.map +1 -0
- package/dist/esm/image/define.js +4 -0
- package/dist/esm/image/define.js.map +1 -0
- package/dist/esm/image/image.definition.js +17 -0
- package/dist/esm/image/image.definition.js.map +1 -0
- package/dist/esm/image/image.js +24 -0
- package/dist/esm/image/image.js.map +1 -0
- package/dist/esm/image/image.options.js +21 -0
- package/dist/esm/image/image.options.js.map +1 -0
- package/dist/esm/image/image.styles.js +52 -0
- package/dist/esm/image/image.styles.js.map +1 -0
- package/dist/esm/image/image.template.js +7 -0
- package/dist/esm/image/image.template.js.map +1 -0
- package/dist/esm/image/index.js +6 -0
- package/dist/esm/image/index.js.map +1 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/switch/define.js +4 -0
- package/dist/esm/switch/define.js.map +1 -0
- package/dist/esm/switch/index.js +6 -0
- package/dist/esm/switch/index.js.map +1 -0
- package/dist/esm/switch/switch.definition.js +17 -0
- package/dist/esm/switch/switch.definition.js.map +1 -0
- package/dist/esm/switch/switch.js +9 -0
- package/dist/esm/switch/switch.js.map +1 -0
- package/dist/esm/switch/switch.options.js +10 -0
- package/dist/esm/switch/switch.options.js.map +1 -0
- package/dist/esm/switch/switch.styles.js +114 -0
- package/dist/esm/switch/switch.styles.js.map +1 -0
- package/dist/esm/switch/switch.template.js +5 -0
- package/dist/esm/switch/switch.template.js.map +1 -0
- package/dist/esm/utils/get-initials.js +83 -0
- package/dist/esm/utils/get-initials.js.map +1 -0
- package/dist/fluent-web-components.api.json +3517 -1757
- package/dist/web-components.d.ts +496 -0
- package/dist/web-components.js +1095 -29
- package/dist/web-components.min.js +123 -115
- package/docs/api-report.md +262 -0
- package/package.json +17 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get (up to 2 characters) initials based on display name of the persona.
|
|
3
|
+
*
|
|
4
|
+
* @param displayName - The full name of the person or entity
|
|
5
|
+
* @param isRtl - Whether the display is in RTL
|
|
6
|
+
* @param options - Extra options to control the behavior of getInitials
|
|
7
|
+
*
|
|
8
|
+
* @returns The 1 or 2 character initials based on the name. Or an empty string if no initials
|
|
9
|
+
* could be derived from the name.
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare function getInitials(displayName: string | undefined | null, isRtl: boolean, options?: {
|
|
14
|
+
/** Should initials be generated from phone numbers (default false) */
|
|
15
|
+
allowPhoneInitials?: boolean;
|
|
16
|
+
/** Returns only the first initial */
|
|
17
|
+
firstInitialOnly?: boolean;
|
|
18
|
+
}): string;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { FluentDesignSystem } from '../fluent-design-system.js';
|
|
2
|
+
import { Avatar } from './avatar.js';
|
|
3
|
+
import { styles } from './avatar.styles.js';
|
|
4
|
+
import { template } from './avatar.template.js';
|
|
5
|
+
/**
|
|
6
|
+
* The Fluent Avatar Element.
|
|
7
|
+
*
|
|
8
|
+
* @public
|
|
9
|
+
* @remarks
|
|
10
|
+
* HTML Element: \<fluent-badge\>
|
|
11
|
+
*/
|
|
12
|
+
export const definition = Avatar.compose({
|
|
13
|
+
name: `${FluentDesignSystem.prefix}-avatar`,
|
|
14
|
+
template,
|
|
15
|
+
styles,
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=avatar.definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.definition.js","sourceRoot":"","sources":["../../../src/avatar/avatar.definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC;IACvC,IAAI,EAAE,GAAG,kBAAkB,CAAC,MAAM,SAAS;IAC3C,QAAQ;IACR,MAAM;CACP,CAAC,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { attr, FASTElement, nullableNumberConverter } from '@microsoft/fast-element';
|
|
3
|
+
import { getInitials } from '../utils/get-initials.js';
|
|
4
|
+
import { AvatarColor, AvatarNamedColor, } from './avatar.options.js';
|
|
5
|
+
/**
|
|
6
|
+
* The base class used for constructing a fluent-avatar custom element
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export class Avatar extends FASTElement {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
/**
|
|
13
|
+
* The color when displaying either an icon or initials.
|
|
14
|
+
* * neutral (default): gray
|
|
15
|
+
* * brand: color from the brand palette
|
|
16
|
+
* * colorful: picks a color from a set of pre-defined colors, based on a hash of the name (or colorId if provided)
|
|
17
|
+
* * [AvatarNamedColor]: a specific color from the theme
|
|
18
|
+
*
|
|
19
|
+
* @public
|
|
20
|
+
* @remarks
|
|
21
|
+
* HTML Attribute: color
|
|
22
|
+
*/
|
|
23
|
+
this.color = 'neutral';
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Sets the data-color attribute used for the visual presentation
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
generateColor() {
|
|
30
|
+
var _a, _b;
|
|
31
|
+
if (!this.color) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
return this.color === AvatarColor.colorful
|
|
35
|
+
? Avatar.colors[getHashCode((_b = (_a = this.colorId) !== null && _a !== void 0 ? _a : this.name) !== null && _b !== void 0 ? _b : '') % Avatar.colors.length]
|
|
36
|
+
: this.color;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Generates and sets the initials for the template
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
generateInitials() {
|
|
43
|
+
var _a, _b;
|
|
44
|
+
if (!this.name && !this.initials) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
// size can be undefined since we default it in CSS only
|
|
48
|
+
const size = (_a = this.size) !== null && _a !== void 0 ? _a : 32;
|
|
49
|
+
return ((_b = this.initials) !== null && _b !== void 0 ? _b : getInitials(this.name, window.getComputedStyle(this).direction === 'rtl', {
|
|
50
|
+
firstInitialOnly: size <= 16,
|
|
51
|
+
}));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* An array of the available Avatar named colors
|
|
56
|
+
*/
|
|
57
|
+
Avatar.colors = Object.values(AvatarNamedColor);
|
|
58
|
+
__decorate([
|
|
59
|
+
attr
|
|
60
|
+
], Avatar.prototype, "name", void 0);
|
|
61
|
+
__decorate([
|
|
62
|
+
attr
|
|
63
|
+
], Avatar.prototype, "initials", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
attr({ converter: nullableNumberConverter })
|
|
66
|
+
], Avatar.prototype, "size", void 0);
|
|
67
|
+
__decorate([
|
|
68
|
+
attr
|
|
69
|
+
], Avatar.prototype, "shape", void 0);
|
|
70
|
+
__decorate([
|
|
71
|
+
attr
|
|
72
|
+
], Avatar.prototype, "active", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
attr
|
|
75
|
+
], Avatar.prototype, "appearance", void 0);
|
|
76
|
+
__decorate([
|
|
77
|
+
attr
|
|
78
|
+
], Avatar.prototype, "color", void 0);
|
|
79
|
+
__decorate([
|
|
80
|
+
attr({ attribute: 'color-id' })
|
|
81
|
+
], Avatar.prototype, "colorId", void 0);
|
|
82
|
+
// copied from React avatar
|
|
83
|
+
const getHashCode = (str) => {
|
|
84
|
+
let hashCode = 0;
|
|
85
|
+
for (let len = str.length - 1; len >= 0; len--) {
|
|
86
|
+
const ch = str.charCodeAt(len);
|
|
87
|
+
const shift = len % 8;
|
|
88
|
+
hashCode ^= (ch << shift) + (ch >> (8 - shift)); // eslint-disable-line no-bitwise
|
|
89
|
+
}
|
|
90
|
+
return hashCode;
|
|
91
|
+
};
|
|
92
|
+
//# sourceMappingURL=avatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../../src/avatar/avatar.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAGL,WAAW,EACX,gBAAgB,GAGjB,MAAM,qBAAqB,CAAC;AAE7B;;;GAGG;AACH,MAAM,OAAO,MAAO,SAAQ,WAAW;IAAvC;;QAuEE;;;;;;;;;;WAUG;QAEI,UAAK,GAAiB,SAAS,CAAC;IA+CzC,CAAC;IAtCC;;;OAGG;IACI,aAAa;;QAClB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,OAAO;SACR;QAED,OAAO,IAAI,CAAC,KAAK,KAAK,WAAW,CAAC,QAAQ;YACxC,CAAC,CAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAA,MAAA,IAAI,CAAC,OAAO,mCAAI,IAAI,CAAC,IAAI,mCAAI,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAiB;YACrG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,gBAAgB;;QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChC,OAAO;SACR;QAED,wDAAwD;QACxD,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,IAAI,mCAAI,EAAE,CAAC;QAE7B,OAAO,CACL,MAAA,IAAI,CAAC,QAAQ,mCACb,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAE,IAA+B,CAAC,CAAC,SAAS,KAAK,KAAK,EAAE;YACpG,gBAAgB,EAAE,IAAI,IAAI,EAAE;SAC7B,CAAC,CACH,CAAC;IACJ,CAAC;;AAED;;GAEG;AACW,aAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAxHvD;IADC,IAAI;oCAC4B;AAUjC;IADC,IAAI;wCACgC;AAiBrC;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAAC;oCACR;AAUrC;IADC,IAAI;qCACkC;AAavC;IADC,IAAI;sCACoC;AAUzC;IADC,IAAI;0CAC4C;AAcjD;IADC,IAAI;qCACkC;AAOvC;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;uCACc;AA0ChD,2BAA2B;AAC3B,MAAM,WAAW,GAAG,CAAC,GAAW,EAAU,EAAE;IAC1C,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,IAAI,GAAG,GAAW,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE;QACtD,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;QACtB,QAAQ,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,iCAAiC;KACnF;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Avatar "active" state
|
|
3
|
+
*/
|
|
4
|
+
export const AvatarActive = {
|
|
5
|
+
active: 'active',
|
|
6
|
+
inactive: 'inactive',
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* The Avatar Shape
|
|
10
|
+
*/
|
|
11
|
+
export const AvatarShape = {
|
|
12
|
+
circular: 'circular',
|
|
13
|
+
square: 'square',
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* The Avatar Appearance when "active"
|
|
17
|
+
*/
|
|
18
|
+
export const AvatarAppearance = {
|
|
19
|
+
ring: 'ring',
|
|
20
|
+
shadow: 'shadow',
|
|
21
|
+
ringShadow: 'ring-shadow',
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* A specific named color for the Avatar
|
|
25
|
+
*/
|
|
26
|
+
export const AvatarNamedColor = {
|
|
27
|
+
darkRed: 'dark-red',
|
|
28
|
+
cranberry: 'cranberry',
|
|
29
|
+
red: 'red',
|
|
30
|
+
pumpkin: 'pumpkin',
|
|
31
|
+
peach: 'peach',
|
|
32
|
+
marigold: 'marigold',
|
|
33
|
+
gold: 'gold',
|
|
34
|
+
brass: 'brass',
|
|
35
|
+
brown: 'brown',
|
|
36
|
+
forest: 'forest',
|
|
37
|
+
seafoam: 'seafoam',
|
|
38
|
+
darkGreen: 'dark-green',
|
|
39
|
+
lightTeal: 'light-teal',
|
|
40
|
+
teal: 'teal',
|
|
41
|
+
steel: 'steel',
|
|
42
|
+
blue: 'blue',
|
|
43
|
+
royalBlue: 'royal-blue',
|
|
44
|
+
cornflower: 'cornflower',
|
|
45
|
+
navy: 'navy',
|
|
46
|
+
lavender: 'lavender',
|
|
47
|
+
purple: 'purple',
|
|
48
|
+
grape: 'grape',
|
|
49
|
+
lilac: 'lilac',
|
|
50
|
+
pink: 'pink',
|
|
51
|
+
magenta: 'magenta',
|
|
52
|
+
plum: 'plum',
|
|
53
|
+
beige: 'beige',
|
|
54
|
+
mink: 'mink',
|
|
55
|
+
platinum: 'platinum',
|
|
56
|
+
anchor: 'anchor',
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Supported Avatar colors
|
|
60
|
+
*/
|
|
61
|
+
export const AvatarColor = {
|
|
62
|
+
neutral: 'neutral',
|
|
63
|
+
brand: 'brand',
|
|
64
|
+
colorful: 'colorful',
|
|
65
|
+
...AvatarNamedColor,
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* The Avatar Sizes
|
|
69
|
+
* @public
|
|
70
|
+
*/
|
|
71
|
+
export const AvatarSize = {
|
|
72
|
+
_16: 16,
|
|
73
|
+
_20: 20,
|
|
74
|
+
_24: 24,
|
|
75
|
+
_28: 28,
|
|
76
|
+
_32: 32,
|
|
77
|
+
_36: 36,
|
|
78
|
+
_40: 40,
|
|
79
|
+
_48: 48,
|
|
80
|
+
_56: 56,
|
|
81
|
+
_64: 64,
|
|
82
|
+
_72: 72,
|
|
83
|
+
_96: 96,
|
|
84
|
+
_120: 120,
|
|
85
|
+
_128: 128,
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=avatar.options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.options.js","sourceRoot":"","sources":["../../../src/avatar/avatar.options.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;CACZ,CAAC;AAOX;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;CACR,CAAC;AAOX;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,aAAa;CACjB,CAAC;AAOX;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,OAAO,EAAE,UAAU;IACnB,SAAS,EAAE,WAAW;IACtB,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;IACvB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,YAAY;IACvB,UAAU,EAAE,YAAY;IACxB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;CACR,CAAC;AAQX;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,GAAG,gBAAgB;CACX,CAAC;AAOX;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;CACD,CAAC"}
|