igniteui-angular-extras 18.2.4 → 19.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -0
- package/fesm2022/igniteui-angular-extras.mjs +1233 -1319
- package/fesm2022/igniteui-angular-extras.mjs.map +1 -1
- package/lib/context-menu/chart-dialog/chart-dialog.component.d.ts +1 -1
- package/lib/context-menu/context-menu.component.d.ts +1 -1
- package/lib/context-menu/igx-context-menu.directive.d.ts +1 -1
- package/lib/directives/chart-integration/chart-integration.directive.d.ts +1 -1
- package/lib/directives/conditional-formatting/conditional-formatting.directive.d.ts +1 -1
- package/lib/page-header/page-header.component.d.ts +1 -1
- package/lib/pipes/svg.pipe.d.ts +1 -1
- package/package.json +6 -8
- package/public-api.d.ts +4 -1
- package/esm2022/igniteui-angular-extras.mjs +0 -5
- package/esm2022/images/charts.mjs +0 -408
- package/esm2022/images/conditions.mjs +0 -95
- package/esm2022/lib/context-menu/chart-dialog/chart-dialog.component.mjs +0 -70
- package/esm2022/lib/context-menu/context-menu.component.mjs +0 -176
- package/esm2022/lib/context-menu/igx-context-menu.directive.mjs +0 -154
- package/esm2022/lib/directives/chart-integration/chart-integration.directive.mjs +0 -312
- package/esm2022/lib/directives/chart-integration/chart-types.mjs +0 -28
- package/esm2022/lib/directives/chart-integration/initializers.mjs +0 -103
- package/esm2022/lib/directives/conditional-formatting/conditional-formatting.directive.mjs +0 -307
- package/esm2022/lib/igniteui-angular-extras.module.mjs +0 -116
- package/esm2022/lib/page-header/page-header.component.mjs +0 -14
- package/esm2022/lib/pipes/svg.pipe.mjs +0 -20
- package/esm2022/public-api.mjs +0 -22
- package/lib/igniteui-angular-extras.module.d.ts +0 -16
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
// tslint:disable: max-line-length
|
|
2
|
-
export const Clear = `
|
|
3
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
4
|
-
<defs>
|
|
5
|
-
<style>.cls-Clear-1{fill-rule:evenodd;}.cls-Clear-2{fill:none;}</style>
|
|
6
|
-
</defs>
|
|
7
|
-
<g id="Layer_2" data-name="Layer 2">
|
|
8
|
-
<g id="Layer_1-2" data-name="Layer 1">
|
|
9
|
-
<g id="Conditional-formating">
|
|
10
|
-
<g id="Artboard">
|
|
11
|
-
<g id="refresh-24px">
|
|
12
|
-
<path id="Path" class="cls-Clear-1" d="M17.65,6.35A8,8,0,1,0,19.73,14H17.65A6,6,0,1,1,12,6a5.91,5.91,0,0,1,4.22,1.78L13,11h7V4Z"/>
|
|
13
|
-
<polygon class="cls-Clear-2" points="0 0 24 0 24 24 0 24 0 0"/>
|
|
14
|
-
</g>
|
|
15
|
-
</g>
|
|
16
|
-
</g>
|
|
17
|
-
</g>
|
|
18
|
-
</g>
|
|
19
|
-
</svg>
|
|
20
|
-
`;
|
|
21
|
-
export const ColorScale = `
|
|
22
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
23
|
-
<path d="M13 13.65h5a5.63 5.63 0 00-.09-1H13zM13 10.65h4.19a6.29 6.29 0 00-.74-1H13zM13 19.58a5.87 5.87 0 002.34-.93H13zM13 6.18v1.48h1.48l-1-1-.48-.48zM13 15.65v1h4.2a5.68 5.68 0 00.46-1zM11 6.18L7.76 9.43A6 6 0 0011 19.58z" fill="none"/>
|
|
24
|
-
<path d="M16.45 9.65H13v1h4.19a6.29 6.29 0 00-.74-1zM13.48 6.66L13 6.18v1.48h1.48l-1-1zM6 13.66a6 6 0 005 5.92V6.18L7.76 9.42A6 6 0 006 13.66zM13 19.58a5.87 5.87 0 002.34-.93H13zM13 16.65h4.2a5.68 5.68 0 00.46-1H13zM13 12.65v1h5a5.63 5.63 0 00-.09-1z" fill="none"/>
|
|
25
|
-
<path d="M19.93 12.66a7.84 7.84 0 00-.51-2 8.48 8.48 0 00-.5-1A7.8 7.8 0 0017.66 8l-.35-.36-.31-.26-.73-.73-2-2-.85-.84L12 2.34 6.34 8A8 8 0 0011 21.58h.21a7 7 0 00.79 0 7.14 7.14 0 00.8 0h.2a7.94 7.94 0 006.93-8.92zM11 19.58A6 6 0 017.76 9.42L11 6.18zm2-12.93v-.47l.48.47 1 1H13zm0 3h3.45a6.29 6.29 0 01.74 1H13zm0 9.93v-.93h2.34a5.87 5.87 0 01-2.34.93zm4.2-2.93H13v-1h4.66a5.68 5.68 0 01-.46 1zm-4.2-3v-1h4.91a5.63 5.63 0 01.09 1z"/>
|
|
26
|
-
<path d="M0 0h24v24H0z" fill="none"/>
|
|
27
|
-
</svg>
|
|
28
|
-
|
|
29
|
-
`;
|
|
30
|
-
export const DataBars = `
|
|
31
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
32
|
-
<path d="M3 7h12v2H3zM3 15h12v2H3zM3 19h18v2H3zM3 11h18v2H3zM3 3h18v2H3z"/>
|
|
33
|
-
<path d="M0 0h24v24H0z" fill="none"/>
|
|
34
|
-
</svg>
|
|
35
|
-
|
|
36
|
-
`;
|
|
37
|
-
export const DuplicateValues = `
|
|
38
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
39
|
-
<path d="M4.94 10.56a1 1 0 00-.38.79.79.79 0 00.25.63 1.06 1.06 0 00.74.24 1.9 1.9 0 001.06-.3 1.48 1.48 0 00.63-.67v-1H6a1.58 1.58 0 00-1.06.31zM16.94 14.69a1 1 0 00-.38.79.82.82 0 00.25.63 1.11 1.11 0 00.74.23 2 2 0 001.06-.29 1.5 1.5 0 00.63-.68v-1H18a1.54 1.54 0 00-1.06.32z" fill="none"/>
|
|
40
|
-
<path d="M4.94 10.56a1 1 0 00-.38.79.79.79 0 00.25.63 1.06 1.06 0 00.74.24 1.9 1.9 0 001.06-.3 1.48 1.48 0 00.63-.67v-1H6a1.58 1.58 0 00-1.06.31zM16.94 14.69a1 1 0 00-.38.79.82.82 0 00.25.63 1.11 1.11 0 00.74.23 2 2 0 001.06-.29 1.5 1.5 0 00.63-.68v-1H18a1.54 1.54 0 00-1.06.32z" fill="none"/>
|
|
41
|
-
<path d="M20.76 15.87v-3.06a2.17 2.17 0 00-.76-1.76 3 3 0 00-1.94-.61 3.06 3.06 0 00-2 .63 1.7 1.7 0 00-.73 1.45h1.49a.83.83 0 01.31-.66 1.29 1.29 0 01.84-.25 1.26 1.26 0 01.91.3 1.09 1.09 0 01.32.85v.6H18a3.81 3.81 0 00-2.22.56 1.78 1.78 0 00-.78 1.59 2 2 0 00.58 1.49 2.31 2.31 0 001.65.55 2.12 2.12 0 001.16-.33 2.79 2.79 0 00.83-.81 4.33 4.33 0 00.08.5c0 .16.08.33.13.51H21a4.29 4.29 0 01-.18-.77 5.46 5.46 0 01-.06-.78zm-1.52-.5a1.5 1.5 0 01-.63.68 2 2 0 01-1.06.29 1.11 1.11 0 01-.74-.23.82.82 0 01-.25-.63 1 1 0 01.38-.79 1.54 1.54 0 011.06-.34h1.24zM8.76 11.75V8.69A2.16 2.16 0 008 6.93a2.93 2.93 0 00-1.94-.61 3.06 3.06 0 00-2 .63 1.69 1.69 0 00-.73 1.44h1.5a.83.83 0 01.31-.65A1.3 1.3 0 016 7.52a1.23 1.23 0 01.91.31 1.07 1.07 0 01.32.84v.61H6a3.74 3.74 0 00-2.22.56A1.78 1.78 0 003 11.39a2 2 0 00.58 1.52 2.27 2.27 0 001.65.56 2.12 2.12 0 001.16-.33 2.79 2.79 0 00.83-.81 4.17 4.17 0 00.08.49 4.77 4.77 0 00.13.51H9a4 4 0 01-.18-.76 5.55 5.55 0 01-.06-.82zm-1.52-.5a1.48 1.48 0 01-.63.67 1.9 1.9 0 01-1.06.3 1.06 1.06 0 01-.74-.22.79.79 0 01-.25-.63 1 1 0 01.38-.79A1.58 1.58 0 016 10.23h1.24zM7 19h2v2H7zM7 15h2v2H7zM3 15h2v2H3zM15 7h2v2h-2zM15 3h2v2h-2zM3 19h2v2H3zM19 19h2v2h-2zM19 7h2v2h-2zM15 19h2v2h-2zM19 3h2v2h-2zM11 11h2v2h-2zM11 19h2v2h-2zM11 15h2v2h-2zM11 7h2v2h-2zM11 3h2v2h-2zM7 3h2v2H7zM3 3h2v2H3z"/>
|
|
42
|
-
<path d="M0 0h24v24H0z" fill="none"/>
|
|
43
|
-
</svg>
|
|
44
|
-
|
|
45
|
-
`;
|
|
46
|
-
export const Empty = `
|
|
47
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
48
|
-
<path d="M0 0h24v24H0z" fill="none"/>
|
|
49
|
-
<path d="M5 17h2v2H5zM13 17h2v2h-2zM5 13h2v2H5zM17 17h2v2h-2zM13 5h2v2h-2zM9 17h2v2H9zM17 9h2v2h-2zM17 13h2v2h-2zM17 5h2v2h-2zM5 9h2v2H5zM5 5h2v2H5zM9 5h2v2H9z"/>
|
|
50
|
-
<path d="M0 0h24v24H0z" fill="none"/>
|
|
51
|
-
</svg>
|
|
52
|
-
|
|
53
|
-
`;
|
|
54
|
-
export const Equal = `
|
|
55
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
56
|
-
<path d="M5 13.5h14v2H5zM5 8.5h14v2H5z"/>
|
|
57
|
-
</svg>
|
|
58
|
-
|
|
59
|
-
`;
|
|
60
|
-
export const GreaterThan = `
|
|
61
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
62
|
-
<path d="M6 7.11L15.09 12 6 16.89V19l12-6.46v-1.08L6 5v2.11z"/>
|
|
63
|
-
</svg>
|
|
64
|
-
|
|
65
|
-
`;
|
|
66
|
-
export const TextContains = `
|
|
67
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
68
|
-
<path d="M10.79 12.77a1.16 1.16 0 00-.44.9.92.92 0 00.3.72 1.18 1.18 0 00.84.27 2.27 2.27 0 001.21-.34 1.61 1.61 0 00.71-.77v-1.17H12a1.76 1.76 0 00-1.21.39z" fill="none"/>
|
|
69
|
-
<path d="M5 19h14V5H5zm8-9.36a1.45 1.45 0 00-1-.35 1.5 1.5 0 00-1 .29.93.93 0 00-.35.75H9a1.93 1.93 0 01.83-1.65 3.54 3.54 0 012.3-.72 3.34 3.34 0 012.22.7 2.44 2.44 0 01.84 2v3.5a5.57 5.57 0 00.07.93 4.51 4.51 0 00.21.88h-1.83c-.06-.2-.12-.39-.16-.58a3.72 3.72 0 01-.08-.57 3.05 3.05 0 01-1 .93 2.39 2.39 0 01-1.32.37 2.63 2.63 0 01-1.89-.63 2.29 2.29 0 01-.66-1.74 2.07 2.07 0 01.9-1.78A4.39 4.39 0 0112 11.3h1.38v-.69a1.3 1.3 0 00-.38-.97z" fill="none"/>
|
|
70
|
-
<path d="M3 3v18h18V3zm16 16H5V5h14z"/>
|
|
71
|
-
<path d="M12 11.3a4.39 4.39 0 00-2.54.63 2.07 2.07 0 00-.9 1.78 2.29 2.29 0 00.66 1.74 2.63 2.63 0 001.89.63 2.39 2.39 0 001.32-.37 3.05 3.05 0 001-.93 3.72 3.72 0 00.08.57c0 .19.1.38.16.58h1.79a4.51 4.51 0 01-.21-.88 5.57 5.57 0 01-.07-.93v-3.5a2.44 2.44 0 00-.84-2 3.34 3.34 0 00-2.22-.7 3.54 3.54 0 00-2.3.72A1.93 1.93 0 009 10.29h1.71a.93.93 0 01.29-.71 1.5 1.5 0 011-.29 1.45 1.45 0 011 .35 1.3 1.3 0 01.37 1v.69zm1.4 1.08v1.17a1.61 1.61 0 01-.71.77 2.27 2.27 0 01-1.21.34 1.18 1.18 0 01-.84-.27.92.92 0 01-.3-.72 1.16 1.16 0 01.44-.9 1.76 1.76 0 011.22-.39z"/>
|
|
72
|
-
<path d="M0 0h24v24H0z" fill="none"/>
|
|
73
|
-
</svg>
|
|
74
|
-
|
|
75
|
-
`;
|
|
76
|
-
export const Top10 = `
|
|
77
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
78
|
-
<path d="M17.34 7.14a.5.5 0 00-.13.33v.33a.48.48 0 00.13.33.41.41 0 00.31.14.37.37 0 00.42-.37v-.41a.49.49 0 00-.07-.34.45.45 0 00-.62 0zM10.84 8a.54.54 0 00.51-.3 2.05 2.05 0 00.17-.92V5.3a2 2 0 00-.17-.94.6.6 0 00-1 0 2.13 2.13 0 00-.17.88V6.7a2.14 2.14 0 00.17 1 .55.55 0 00.49.3zM14.88 5c.28 0 .42-.18.42-.53v-.26a.53.53 0 00-.11-.34.4.4 0 00-.32-.14.42.42 0 00-.31.13.52.52 0 00-.12.36v.29a.49.49 0 00.12.34.39.39 0 00.32.15z" fill="none"/>
|
|
79
|
-
<path d="M9 18h2v3h2v-3h2l-3-3-3 3zM4 11h16v2H4zM6.38 8.92h1.36V3.08h-.12l-2.57.89V5l1.33-.39v4.31zM10.84 9a1.85 1.85 0 001.5-.64 2.82 2.82 0 00.53-1.82V5.47a2.76 2.76 0 00-.54-1.82 1.83 1.83 0 00-1.5-.65 1.83 1.83 0 00-1.5.65 2.78 2.78 0 00-.53 1.82v1.07a2.79 2.79 0 00.53 1.81 1.86 1.86 0 001.51.65zm-.69-3.79a2.13 2.13 0 01.17-.88.6.6 0 011 0 2 2 0 01.17.94v1.47a2.05 2.05 0 01-.17.92.59.59 0 01-1 0 2.14 2.14 0 01-.17-1zM14.88 5.71a1.31 1.31 0 00.94-.33 1.11 1.11 0 00.35-.86v-.29a1.19 1.19 0 00-.35-.9 1.32 1.32 0 00-1-.33 1.34 1.34 0 00-.95.33 1.17 1.17 0 00-.35.88v.28a1.16 1.16 0 00.36.9 1.4 1.4 0 001 .32zm-.44-1.49a.52.52 0 01.12-.36.42.42 0 01.31-.13.4.4 0 01.32.14.53.53 0 01.11.34v.24c0 .35-.14.53-.42.53a.39.39 0 01-.32-.13.49.49 0 01-.12-.34zM15.13 8.48l2.85-4.56-.62-.32-2.85 4.57.62.31zM16.7 6.62a1.1 1.1 0 00-.35.87v.29a1.12 1.12 0 00.35.89 1.36 1.36 0 00.95.33 1.32 1.32 0 001-.33A1.15 1.15 0 0019 7.8v-.28a1.17 1.17 0 00-.36-.91 1.54 1.54 0 00-1.89 0zm1.38.87v.41a.37.37 0 01-.42.37.41.41 0 01-.31-.14.48.48 0 01-.13-.33v-.33a.5.5 0 01.13-.33.45.45 0 01.62 0 .49.49 0 01.11.35z"/>
|
|
80
|
-
<path d="M0 0h24v24H0z" fill="none"/>
|
|
81
|
-
</svg>
|
|
82
|
-
|
|
83
|
-
`;
|
|
84
|
-
export const UniqueValues = `
|
|
85
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
86
|
-
<path d="M0 0h24v24H0z" fill="none"/>
|
|
87
|
-
<path d="M8.94 10.56a1 1 0 00-.38.79.79.79 0 00.25.63 1.06 1.06 0 00.74.24 1.9 1.9 0 001.06-.3 1.48 1.48 0 00.63-.67v-1H10a1.58 1.58 0 00-1.06.31z" fill="none"/>
|
|
88
|
-
<path d="M8.94 10.56a1 1 0 00-.38.79.79.79 0 00.25.63 1.06 1.06 0 00.74.24 1.9 1.9 0 001.06-.3 1.48 1.48 0 00.63-.67v-1H10a1.58 1.58 0 00-1.06.31z" fill="none"/>
|
|
89
|
-
<path d="M12.76 11.75V8.69A2.16 2.16 0 0012 6.93a2.93 2.93 0 00-1.94-.61 3.06 3.06 0 00-2 .63 1.69 1.69 0 00-.73 1.44h1.5a.83.83 0 01.31-.65 1.3 1.3 0 01.86-.22 1.23 1.23 0 01.91.31 1.07 1.07 0 01.32.84v.61H10a3.74 3.74 0 00-2.22.56A1.78 1.78 0 007 11.39a2 2 0 00.58 1.52 2.27 2.27 0 001.65.56 2.12 2.12 0 001.16-.33 2.79 2.79 0 00.83-.81 4.17 4.17 0 00.08.49 4.77 4.77 0 00.13.51H13a4 4 0 01-.18-.76 5.55 5.55 0 01-.06-.82zm-1.52-.5a1.48 1.48 0 01-.63.67 1.9 1.9 0 01-1.06.3 1.06 1.06 0 01-.74-.22.79.79 0 01-.25-.63 1 1 0 01.38-.79 1.58 1.58 0 011.06-.35h1.24zM7 19h2v2H7zM7 15h2v2H7zM3 15h2v2H3zM15 7h2v2h-2zM15 3h2v2h-2zM3 19h2v2H3zM19 19h2v2h-2zM19 7h2v2h-2zM15 19h2v2h-2zM19 3h2v2h-2zM15 11h2v2h-2zM19 11h2v2h-2zM15 15h2v2h-2zM19 15h2v2h-2zM11 19h2v2h-2zM11 15h2v2h-2zM11 3h2v2h-2zM7 3h2v2H7zM3 3h2v2H3zM3 7h2v2H3zM3 11h2v2H3z"/>
|
|
90
|
-
<path d="M0 0h24v24H0z" fill="none"/>
|
|
91
|
-
<path d="M0 0h24v24H0z" fill="none"/>
|
|
92
|
-
</svg>
|
|
93
|
-
|
|
94
|
-
`;
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXItZXh0cmFzL3NyYy9pbWFnZXMvY29uZGl0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrQ0FBa0M7QUFDbEMsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FrQnBCLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7Ozs7Ozs7O0NBUXpCLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUc7Ozs7OztDQU12QixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHOzs7Ozs7OztDQVE5QixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHOzs7Ozs7O0NBT3BCLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7Ozs7O0NBS3BCLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7Ozs7O0NBSzFCLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUc7Ozs7Ozs7OztDQVMzQixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHOzs7Ozs7O0NBT3BCLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUc7Ozs7Ozs7Ozs7Q0FVM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlOiBtYXgtbGluZS1sZW5ndGhcclxuZXhwb3J0IGNvbnN0IENsZWFyID0gYFxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxyXG4gICAgPGRlZnM+XHJcbiAgICAgICAgPHN0eWxlPi5jbHMtQ2xlYXItMXtmaWxsLXJ1bGU6ZXZlbm9kZDt9LmNscy1DbGVhci0ye2ZpbGw6bm9uZTt9PC9zdHlsZT5cclxuICAgIDwvZGVmcz5cclxuICAgIDxnIGlkPVwiTGF5ZXJfMlwiIGRhdGEtbmFtZT1cIkxheWVyIDJcIj5cclxuICAgICAgICA8ZyBpZD1cIkxheWVyXzEtMlwiIGRhdGEtbmFtZT1cIkxheWVyIDFcIj5cclxuICAgICAgICAgICAgPGcgaWQ9XCJDb25kaXRpb25hbC1mb3JtYXRpbmdcIj5cclxuICAgICAgICAgICAgICAgIDxnIGlkPVwiQXJ0Ym9hcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZyBpZD1cInJlZnJlc2gtMjRweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlBhdGhcIiBjbGFzcz1cImNscy1DbGVhci0xXCIgZD1cIk0xNy42NSw2LjM1QTgsOCwwLDEsMCwxOS43MywxNEgxNy42NUE2LDYsMCwxLDEsMTIsNmE1LjkxLDUuOTEsMCwwLDEsNC4yMiwxLjc4TDEzLDExaDdWNFpcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPVwiY2xzLUNsZWFyLTJcIiBwb2ludHM9XCIwIDAgMjQgMCAyNCAyNCAwIDI0IDAgMFwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgIDwvZz5cclxuICAgICAgICA8L2c+XHJcbiAgICA8L2c+XHJcbjwvc3ZnPlxyXG5gO1xyXG5leHBvcnQgY29uc3QgQ29sb3JTY2FsZSA9IGBcclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cclxuICAgIDxwYXRoIGQ9XCJNMTMgMTMuNjVoNWE1LjYzIDUuNjMgMCAwMC0uMDktMUgxM3pNMTMgMTAuNjVoNC4xOWE2LjI5IDYuMjkgMCAwMC0uNzQtMUgxM3pNMTMgMTkuNThhNS44NyA1Ljg3IDAgMDAyLjM0LS45M0gxM3pNMTMgNi4xOHYxLjQ4aDEuNDhsLTEtMS0uNDgtLjQ4ek0xMyAxNS42NXYxaDQuMmE1LjY4IDUuNjggMCAwMC40Ni0xek0xMSA2LjE4TDcuNzYgOS40M0E2IDYgMCAwMDExIDE5LjU4elwiIGZpbGw9XCJub25lXCIvPlxyXG4gICAgPHBhdGggZD1cIk0xNi40NSA5LjY1SDEzdjFoNC4xOWE2LjI5IDYuMjkgMCAwMC0uNzQtMXpNMTMuNDggNi42NkwxMyA2LjE4djEuNDhoMS40OGwtMS0xek02IDEzLjY2YTYgNiAwIDAwNSA1LjkyVjYuMThMNy43NiA5LjQyQTYgNiAwIDAwNiAxMy42NnpNMTMgMTkuNThhNS44NyA1Ljg3IDAgMDAyLjM0LS45M0gxM3pNMTMgMTYuNjVoNC4yYTUuNjggNS42OCAwIDAwLjQ2LTFIMTN6TTEzIDEyLjY1djFoNWE1LjYzIDUuNjMgMCAwMC0uMDktMXpcIiBmaWxsPVwibm9uZVwiLz5cclxuICAgIDxwYXRoIGQ9XCJNMTkuOTMgMTIuNjZhNy44NCA3Ljg0IDAgMDAtLjUxLTIgOC40OCA4LjQ4IDAgMDAtLjUtMUE3LjggNy44IDAgMDAxNy42NiA4bC0uMzUtLjM2LS4zMS0uMjYtLjczLS43My0yLTItLjg1LS44NEwxMiAyLjM0IDYuMzQgOEE4IDggMCAwMDExIDIxLjU4aC4yMWE3IDcgMCAwMC43OSAwIDcuMTQgNy4xNCAwIDAwLjggMGguMmE3Ljk0IDcuOTQgMCAwMDYuOTMtOC45MnpNMTEgMTkuNThBNiA2IDAgMDE3Ljc2IDkuNDJMMTEgNi4xOHptMi0xMi45M3YtLjQ3bC40OC40NyAxIDFIMTN6bTAgM2gzLjQ1YTYuMjkgNi4yOSAwIDAxLjc0IDFIMTN6bTAgOS45M3YtLjkzaDIuMzRhNS44NyA1Ljg3IDAgMDEtMi4zNC45M3ptNC4yLTIuOTNIMTN2LTFoNC42NmE1LjY4IDUuNjggMCAwMS0uNDYgMXptLTQuMi0zdi0xaDQuOTFhNS42MyA1LjYzIDAgMDEuMDkgMXpcIi8+XHJcbiAgICA8cGF0aCBkPVwiTTAgMGgyNHYyNEgwelwiIGZpbGw9XCJub25lXCIvPlxyXG48L3N2Zz5cclxuXHJcbmA7XHJcbmV4cG9ydCBjb25zdCBEYXRhQmFycyA9IGBcclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cclxuICAgIDxwYXRoIGQ9XCJNMyA3aDEydjJIM3pNMyAxNWgxMnYySDN6TTMgMTloMTh2Mkgzek0zIDExaDE4djJIM3pNMyAzaDE4djJIM3pcIi8+XHJcbiAgICA8cGF0aCBkPVwiTTAgMGgyNHYyNEgwelwiIGZpbGw9XCJub25lXCIvPlxyXG48L3N2Zz5cclxuXHJcbmA7XHJcbmV4cG9ydCBjb25zdCBEdXBsaWNhdGVWYWx1ZXMgPSBgXHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XHJcbiAgICA8cGF0aCBkPVwiTTQuOTQgMTAuNTZhMSAxIDAgMDAtLjM4Ljc5Ljc5Ljc5IDAgMDAuMjUuNjMgMS4wNiAxLjA2IDAgMDAuNzQuMjQgMS45IDEuOSAwIDAwMS4wNi0uMyAxLjQ4IDEuNDggMCAwMC42My0uNjd2LTFINmExLjU4IDEuNTggMCAwMC0xLjA2LjMxek0xNi45NCAxNC42OWExIDEgMCAwMC0uMzguNzkuODIuODIgMCAwMC4yNS42MyAxLjExIDEuMTEgMCAwMC43NC4yMyAyIDIgMCAwMDEuMDYtLjI5IDEuNSAxLjUgMCAwMC42My0uNjh2LTFIMThhMS41NCAxLjU0IDAgMDAtMS4wNi4zMnpcIiBmaWxsPVwibm9uZVwiLz5cclxuICAgIDxwYXRoIGQ9XCJNNC45NCAxMC41NmExIDEgMCAwMC0uMzguNzkuNzkuNzkgMCAwMC4yNS42MyAxLjA2IDEuMDYgMCAwMC43NC4yNCAxLjkgMS45IDAgMDAxLjA2LS4zIDEuNDggMS40OCAwIDAwLjYzLS42N3YtMUg2YTEuNTggMS41OCAwIDAwLTEuMDYuMzF6TTE2Ljk0IDE0LjY5YTEgMSAwIDAwLS4zOC43OS44Mi44MiAwIDAwLjI1LjYzIDEuMTEgMS4xMSAwIDAwLjc0LjIzIDIgMiAwIDAwMS4wNi0uMjkgMS41IDEuNSAwIDAwLjYzLS42OHYtMUgxOGExLjU0IDEuNTQgMCAwMC0xLjA2LjMyelwiIGZpbGw9XCJub25lXCIvPlxyXG4gICAgPHBhdGggZD1cIk0yMC43NiAxNS44N3YtMy4wNmEyLjE3IDIuMTcgMCAwMC0uNzYtMS43NiAzIDMgMCAwMC0xLjk0LS42MSAzLjA2IDMuMDYgMCAwMC0yIC42MyAxLjcgMS43IDAgMDAtLjczIDEuNDVoMS40OWEuODMuODMgMCAwMS4zMS0uNjYgMS4yOSAxLjI5IDAgMDEuODQtLjI1IDEuMjYgMS4yNiAwIDAxLjkxLjMgMS4wOSAxLjA5IDAgMDEuMzIuODV2LjZIMThhMy44MSAzLjgxIDAgMDAtMi4yMi41NiAxLjc4IDEuNzggMCAwMC0uNzggMS41OSAyIDIgMCAwMC41OCAxLjQ5IDIuMzEgMi4zMSAwIDAwMS42NS41NSAyLjEyIDIuMTIgMCAwMDEuMTYtLjMzIDIuNzkgMi43OSAwIDAwLjgzLS44MSA0LjMzIDQuMzMgMCAwMC4wOC41YzAgLjE2LjA4LjMzLjEzLjUxSDIxYTQuMjkgNC4yOSAwIDAxLS4xOC0uNzcgNS40NiA1LjQ2IDAgMDEtLjA2LS43OHptLTEuNTItLjVhMS41IDEuNSAwIDAxLS42My42OCAyIDIgMCAwMS0xLjA2LjI5IDEuMTEgMS4xMSAwIDAxLS43NC0uMjMuODIuODIgMCAwMS0uMjUtLjYzIDEgMSAwIDAxLjM4LS43OSAxLjU0IDEuNTQgMCAwMTEuMDYtLjM0aDEuMjR6TTguNzYgMTEuNzVWOC42OUEyLjE2IDIuMTYgMCAwMDggNi45M2EyLjkzIDIuOTMgMCAwMC0xLjk0LS42MSAzLjA2IDMuMDYgMCAwMC0yIC42MyAxLjY5IDEuNjkgMCAwMC0uNzMgMS40NGgxLjVhLjgzLjgzIDAgMDEuMzEtLjY1QTEuMyAxLjMgMCAwMTYgNy41MmExLjIzIDEuMjMgMCAwMS45MS4zMSAxLjA3IDEuMDcgMCAwMS4zMi44NHYuNjFINmEzLjc0IDMuNzQgMCAwMC0yLjIyLjU2QTEuNzggMS43OCAwIDAwMyAxMS4zOWEyIDIgMCAwMC41OCAxLjUyIDIuMjcgMi4yNyAwIDAwMS42NS41NiAyLjEyIDIuMTIgMCAwMDEuMTYtLjMzIDIuNzkgMi43OSAwIDAwLjgzLS44MSA0LjE3IDQuMTcgMCAwMC4wOC40OSA0Ljc3IDQuNzcgMCAwMC4xMy41MUg5YTQgNCAwIDAxLS4xOC0uNzYgNS41NSA1LjU1IDAgMDEtLjA2LS44MnptLTEuNTItLjVhMS40OCAxLjQ4IDAgMDEtLjYzLjY3IDEuOSAxLjkgMCAwMS0xLjA2LjMgMS4wNiAxLjA2IDAgMDEtLjc0LS4yMi43OS43OSAwIDAxLS4yNS0uNjMgMSAxIDAgMDEuMzgtLjc5QTEuNTggMS41OCAwIDAxNiAxMC4yM2gxLjI0ek03IDE5aDJ2Mkg3ek03IDE1aDJ2Mkg3ek0zIDE1aDJ2Mkgzek0xNSA3aDJ2MmgtMnpNMTUgM2gydjJoLTJ6TTMgMTloMnYySDN6TTE5IDE5aDJ2MmgtMnpNMTkgN2gydjJoLTJ6TTE1IDE5aDJ2MmgtMnpNMTkgM2gydjJoLTJ6TTExIDExaDJ2MmgtMnpNMTEgMTloMnYyaC0yek0xMSAxNWgydjJoLTJ6TTExIDdoMnYyaC0yek0xMSAzaDJ2MmgtMnpNNyAzaDJ2Mkg3ek0zIDNoMnYySDN6XCIvPlxyXG4gICAgPHBhdGggZD1cIk0wIDBoMjR2MjRIMHpcIiBmaWxsPVwibm9uZVwiLz5cclxuPC9zdmc+XHJcblxyXG5gO1xyXG5leHBvcnQgY29uc3QgRW1wdHkgPSBgXHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XHJcbiAgICA8cGF0aCBkPVwiTTAgMGgyNHYyNEgwelwiIGZpbGw9XCJub25lXCIvPlxyXG4gICAgPHBhdGggZD1cIk01IDE3aDJ2Mkg1ek0xMyAxN2gydjJoLTJ6TTUgMTNoMnYySDV6TTE3IDE3aDJ2MmgtMnpNMTMgNWgydjJoLTJ6TTkgMTdoMnYySDl6TTE3IDloMnYyaC0yek0xNyAxM2gydjJoLTJ6TTE3IDVoMnYyaC0yek01IDloMnYySDV6TTUgNWgydjJINXpNOSA1aDJ2Mkg5elwiLz5cclxuICAgIDxwYXRoIGQ9XCJNMCAwaDI0djI0SDB6XCIgZmlsbD1cIm5vbmVcIi8+XHJcbjwvc3ZnPlxyXG5cclxuYDtcclxuZXhwb3J0IGNvbnN0IEVxdWFsID0gYFxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxyXG4gICAgPHBhdGggZD1cIk01IDEzLjVoMTR2Mkg1ek01IDguNWgxNHYySDV6XCIvPlxyXG48L3N2Zz5cclxuXHJcbmA7XHJcbmV4cG9ydCBjb25zdCBHcmVhdGVyVGhhbiA9IGBcclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cclxuICAgIDxwYXRoIGQ9XCJNNiA3LjExTDE1LjA5IDEyIDYgMTYuODlWMTlsMTItNi40NnYtMS4wOEw2IDV2Mi4xMXpcIi8+XHJcbjwvc3ZnPlxyXG5cclxuYDtcclxuZXhwb3J0IGNvbnN0IFRleHRDb250YWlucyA9IGBcclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cclxuICAgIDxwYXRoIGQ9XCJNMTAuNzkgMTIuNzdhMS4xNiAxLjE2IDAgMDAtLjQ0LjkuOTIuOTIgMCAwMC4zLjcyIDEuMTggMS4xOCAwIDAwLjg0LjI3IDIuMjcgMi4yNyAwIDAwMS4yMS0uMzQgMS42MSAxLjYxIDAgMDAuNzEtLjc3di0xLjE3SDEyYTEuNzYgMS43NiAwIDAwLTEuMjEuMzl6XCIgZmlsbD1cIm5vbmVcIi8+XHJcbiAgICA8cGF0aCBkPVwiTTUgMTloMTRWNUg1em04LTkuMzZhMS40NSAxLjQ1IDAgMDAtMS0uMzUgMS41IDEuNSAwIDAwLTEgLjI5LjkzLjkzIDAgMDAtLjM1Ljc1SDlhMS45MyAxLjkzIDAgMDEuODMtMS42NSAzLjU0IDMuNTQgMCAwMTIuMy0uNzIgMy4zNCAzLjM0IDAgMDEyLjIyLjcgMi40NCAyLjQ0IDAgMDEuODQgMnYzLjVhNS41NyA1LjU3IDAgMDAuMDcuOTMgNC41MSA0LjUxIDAgMDAuMjEuODhoLTEuODNjLS4wNi0uMi0uMTItLjM5LS4xNi0uNThhMy43MiAzLjcyIDAgMDEtLjA4LS41NyAzLjA1IDMuMDUgMCAwMS0xIC45MyAyLjM5IDIuMzkgMCAwMS0xLjMyLjM3IDIuNjMgMi42MyAwIDAxLTEuODktLjYzIDIuMjkgMi4yOSAwIDAxLS42Ni0xLjc0IDIuMDcgMi4wNyAwIDAxLjktMS43OEE0LjM5IDQuMzkgMCAwMTEyIDExLjNoMS4zOHYtLjY5YTEuMyAxLjMgMCAwMC0uMzgtLjk3elwiIGZpbGw9XCJub25lXCIvPlxyXG4gICAgPHBhdGggZD1cIk0zIDN2MThoMThWM3ptMTYgMTZINVY1aDE0elwiLz5cclxuICAgIDxwYXRoIGQ9XCJNMTIgMTEuM2E0LjM5IDQuMzkgMCAwMC0yLjU0LjYzIDIuMDcgMi4wNyAwIDAwLS45IDEuNzggMi4yOSAyLjI5IDAgMDAuNjYgMS43NCAyLjYzIDIuNjMgMCAwMDEuODkuNjMgMi4zOSAyLjM5IDAgMDAxLjMyLS4zNyAzLjA1IDMuMDUgMCAwMDEtLjkzIDMuNzIgMy43MiAwIDAwLjA4LjU3YzAgLjE5LjEuMzguMTYuNThoMS43OWE0LjUxIDQuNTEgMCAwMS0uMjEtLjg4IDUuNTcgNS41NyAwIDAxLS4wNy0uOTN2LTMuNWEyLjQ0IDIuNDQgMCAwMC0uODQtMiAzLjM0IDMuMzQgMCAwMC0yLjIyLS43IDMuNTQgMy41NCAwIDAwLTIuMy43MkExLjkzIDEuOTMgMCAwMDkgMTAuMjloMS43MWEuOTMuOTMgMCAwMS4yOS0uNzEgMS41IDEuNSAwIDAxMS0uMjkgMS40NSAxLjQ1IDAgMDExIC4zNSAxLjMgMS4zIDAgMDEuMzcgMXYuNjl6bTEuNCAxLjA4djEuMTdhMS42MSAxLjYxIDAgMDEtLjcxLjc3IDIuMjcgMi4yNyAwIDAxLTEuMjEuMzQgMS4xOCAxLjE4IDAgMDEtLjg0LS4yNy45Mi45MiAwIDAxLS4zLS43MiAxLjE2IDEuMTYgMCAwMS40NC0uOSAxLjc2IDEuNzYgMCAwMTEuMjItLjM5elwiLz5cclxuICAgIDxwYXRoIGQ9XCJNMCAwaDI0djI0SDB6XCIgZmlsbD1cIm5vbmVcIi8+XHJcbjwvc3ZnPlxyXG5cclxuYDtcclxuZXhwb3J0IGNvbnN0IFRvcDEwID0gYFxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxyXG4gICAgPHBhdGggZD1cIk0xNy4zNCA3LjE0YS41LjUgMCAwMC0uMTMuMzN2LjMzYS40OC40OCAwIDAwLjEzLjMzLjQxLjQxIDAgMDAuMzEuMTQuMzcuMzcgMCAwMC40Mi0uMzd2LS40MWEuNDkuNDkgMCAwMC0uMDctLjM0LjQ1LjQ1IDAgMDAtLjYyIDB6TTEwLjg0IDhhLjU0LjU0IDAgMDAuNTEtLjMgMi4wNSAyLjA1IDAgMDAuMTctLjkyVjUuM2EyIDIgMCAwMC0uMTctLjk0LjYuNiAwIDAwLTEgMCAyLjEzIDIuMTMgMCAwMC0uMTcuODhWNi43YTIuMTQgMi4xNCAwIDAwLjE3IDEgLjU1LjU1IDAgMDAuNDkuM3pNMTQuODggNWMuMjggMCAuNDItLjE4LjQyLS41M3YtLjI2YS41My41MyAwIDAwLS4xMS0uMzQuNC40IDAgMDAtLjMyLS4xNC40Mi40MiAwIDAwLS4zMS4xMy41Mi41MiAwIDAwLS4xMi4zNnYuMjlhLjQ5LjQ5IDAgMDAuMTIuMzQuMzkuMzkgMCAwMC4zMi4xNXpcIiBmaWxsPVwibm9uZVwiLz5cclxuICAgIDxwYXRoIGQ9XCJNOSAxOGgydjNoMnYtM2gybC0zLTMtMyAzek00IDExaDE2djJINHpNNi4zOCA4LjkyaDEuMzZWMy4wOGgtLjEybC0yLjU3Ljg5VjVsMS4zMy0uMzl2NC4zMXpNMTAuODQgOWExLjg1IDEuODUgMCAwMDEuNS0uNjQgMi44MiAyLjgyIDAgMDAuNTMtMS44MlY1LjQ3YTIuNzYgMi43NiAwIDAwLS41NC0xLjgyIDEuODMgMS44MyAwIDAwLTEuNS0uNjUgMS44MyAxLjgzIDAgMDAtMS41LjY1IDIuNzggMi43OCAwIDAwLS41MyAxLjgydjEuMDdhMi43OSAyLjc5IDAgMDAuNTMgMS44MSAxLjg2IDEuODYgMCAwMDEuNTEuNjV6bS0uNjktMy43OWEyLjEzIDIuMTMgMCAwMS4xNy0uODguNi42IDAgMDExIDAgMiAyIDAgMDEuMTcuOTR2MS40N2EyLjA1IDIuMDUgMCAwMS0uMTcuOTIuNTkuNTkgMCAwMS0xIDAgMi4xNCAyLjE0IDAgMDEtLjE3LTF6TTE0Ljg4IDUuNzFhMS4zMSAxLjMxIDAgMDAuOTQtLjMzIDEuMTEgMS4xMSAwIDAwLjM1LS44NnYtLjI5YTEuMTkgMS4xOSAwIDAwLS4zNS0uOSAxLjMyIDEuMzIgMCAwMC0xLS4zMyAxLjM0IDEuMzQgMCAwMC0uOTUuMzMgMS4xNyAxLjE3IDAgMDAtLjM1Ljg4di4yOGExLjE2IDEuMTYgMCAwMC4zNi45IDEuNCAxLjQgMCAwMDEgLjMyem0tLjQ0LTEuNDlhLjUyLjUyIDAgMDEuMTItLjM2LjQyLjQyIDAgMDEuMzEtLjEzLjQuNCAwIDAxLjMyLjE0LjUzLjUzIDAgMDEuMTEuMzR2LjI0YzAgLjM1LS4xNC41My0uNDIuNTNhLjM5LjM5IDAgMDEtLjMyLS4xMy40OS40OSAwIDAxLS4xMi0uMzR6TTE1LjEzIDguNDhsMi44NS00LjU2LS42Mi0uMzItMi44NSA0LjU3LjYyLjMxek0xNi43IDYuNjJhMS4xIDEuMSAwIDAwLS4zNS44N3YuMjlhMS4xMiAxLjEyIDAgMDAuMzUuODkgMS4zNiAxLjM2IDAgMDAuOTUuMzMgMS4zMiAxLjMyIDAgMDAxLS4zM0ExLjE1IDEuMTUgMCAwMDE5IDcuOHYtLjI4YTEuMTcgMS4xNyAwIDAwLS4zNi0uOTEgMS41NCAxLjU0IDAgMDAtMS44OSAwem0xLjM4Ljg3di40MWEuMzcuMzcgMCAwMS0uNDIuMzcuNDEuNDEgMCAwMS0uMzEtLjE0LjQ4LjQ4IDAgMDEtLjEzLS4zM3YtLjMzYS41LjUgMCAwMS4xMy0uMzMuNDUuNDUgMCAwMS42MiAwIC40OS40OSAwIDAxLjExLjM1elwiLz5cclxuICAgIDxwYXRoIGQ9XCJNMCAwaDI0djI0SDB6XCIgZmlsbD1cIm5vbmVcIi8+XHJcbjwvc3ZnPlxyXG5cclxuYDtcclxuZXhwb3J0IGNvbnN0IFVuaXF1ZVZhbHVlcyA9IGBcclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cclxuICAgIDxwYXRoIGQ9XCJNMCAwaDI0djI0SDB6XCIgZmlsbD1cIm5vbmVcIi8+XHJcbiAgICA8cGF0aCBkPVwiTTguOTQgMTAuNTZhMSAxIDAgMDAtLjM4Ljc5Ljc5Ljc5IDAgMDAuMjUuNjMgMS4wNiAxLjA2IDAgMDAuNzQuMjQgMS45IDEuOSAwIDAwMS4wNi0uMyAxLjQ4IDEuNDggMCAwMC42My0uNjd2LTFIMTBhMS41OCAxLjU4IDAgMDAtMS4wNi4zMXpcIiBmaWxsPVwibm9uZVwiLz5cclxuICAgIDxwYXRoIGQ9XCJNOC45NCAxMC41NmExIDEgMCAwMC0uMzguNzkuNzkuNzkgMCAwMC4yNS42MyAxLjA2IDEuMDYgMCAwMC43NC4yNCAxLjkgMS45IDAgMDAxLjA2LS4zIDEuNDggMS40OCAwIDAwLjYzLS42N3YtMUgxMGExLjU4IDEuNTggMCAwMC0xLjA2LjMxelwiIGZpbGw9XCJub25lXCIvPlxyXG4gICAgPHBhdGggZD1cIk0xMi43NiAxMS43NVY4LjY5QTIuMTYgMi4xNiAwIDAwMTIgNi45M2EyLjkzIDIuOTMgMCAwMC0xLjk0LS42MSAzLjA2IDMuMDYgMCAwMC0yIC42MyAxLjY5IDEuNjkgMCAwMC0uNzMgMS40NGgxLjVhLjgzLjgzIDAgMDEuMzEtLjY1IDEuMyAxLjMgMCAwMS44Ni0uMjIgMS4yMyAxLjIzIDAgMDEuOTEuMzEgMS4wNyAxLjA3IDAgMDEuMzIuODR2LjYxSDEwYTMuNzQgMy43NCAwIDAwLTIuMjIuNTZBMS43OCAxLjc4IDAgMDA3IDExLjM5YTIgMiAwIDAwLjU4IDEuNTIgMi4yNyAyLjI3IDAgMDAxLjY1LjU2IDIuMTIgMi4xMiAwIDAwMS4xNi0uMzMgMi43OSAyLjc5IDAgMDAuODMtLjgxIDQuMTcgNC4xNyAwIDAwLjA4LjQ5IDQuNzcgNC43NyAwIDAwLjEzLjUxSDEzYTQgNCAwIDAxLS4xOC0uNzYgNS41NSA1LjU1IDAgMDEtLjA2LS44MnptLTEuNTItLjVhMS40OCAxLjQ4IDAgMDEtLjYzLjY3IDEuOSAxLjkgMCAwMS0xLjA2LjMgMS4wNiAxLjA2IDAgMDEtLjc0LS4yMi43OS43OSAwIDAxLS4yNS0uNjMgMSAxIDAgMDEuMzgtLjc5IDEuNTggMS41OCAwIDAxMS4wNi0uMzVoMS4yNHpNNyAxOWgydjJIN3pNNyAxNWgydjJIN3pNMyAxNWgydjJIM3pNMTUgN2gydjJoLTJ6TTE1IDNoMnYyaC0yek0zIDE5aDJ2Mkgzek0xOSAxOWgydjJoLTJ6TTE5IDdoMnYyaC0yek0xNSAxOWgydjJoLTJ6TTE5IDNoMnYyaC0yek0xNSAxMWgydjJoLTJ6TTE5IDExaDJ2MmgtMnpNMTUgMTVoMnYyaC0yek0xOSAxNWgydjJoLTJ6TTExIDE5aDJ2MmgtMnpNMTEgMTVoMnYyaC0yek0xMSAzaDJ2MmgtMnpNNyAzaDJ2Mkg3ek0zIDNoMnYySDN6TTMgN2gydjJIM3pNMyAxMWgydjJIM3pcIi8+XHJcbiAgICA8cGF0aCBkPVwiTTAgMGgyNHYyNEgwelwiIGZpbGw9XCJub25lXCIvPlxyXG4gICAgPHBhdGggZD1cIk0wIDBoMjR2MjRIMHpcIiBmaWxsPVwibm9uZVwiLz5cclxuPC9zdmc+XHJcblxyXG5gO1xyXG4iXX0=
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, HostBinding, Output, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import * as charts from '../../../images/charts';
|
|
3
|
-
import { Subject } from 'rxjs';
|
|
4
|
-
import { ResizeObserver } from '@juggle/resize-observer';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "igniteui-angular";
|
|
7
|
-
import * as i2 from "@angular/common";
|
|
8
|
-
import * as i3 from "../../pipes/svg.pipe";
|
|
9
|
-
export class IgxChartMenuComponent {
|
|
10
|
-
get width() {
|
|
11
|
-
return this.fullScreen ? this._width : 0.7 * this._width;
|
|
12
|
-
}
|
|
13
|
-
set width(value) {
|
|
14
|
-
this._width = value;
|
|
15
|
-
}
|
|
16
|
-
get height() {
|
|
17
|
-
return this.fullScreen ? this._height : 0.7 * this._height;
|
|
18
|
-
}
|
|
19
|
-
set height(value) {
|
|
20
|
-
this._height = value;
|
|
21
|
-
}
|
|
22
|
-
constructor(element) {
|
|
23
|
-
this.element = element;
|
|
24
|
-
this.onClose = new EventEmitter();
|
|
25
|
-
this.chartDialogResizeNotify = new Subject();
|
|
26
|
-
this.allCharts = [];
|
|
27
|
-
this.fullScreen = false;
|
|
28
|
-
this.isConfigAreaExpanded = false;
|
|
29
|
-
this.mainChartTypes = ['Column', 'Area', 'Bar', 'Line', 'Scatter', 'Pie'];
|
|
30
|
-
this.images = charts;
|
|
31
|
-
}
|
|
32
|
-
ngAfterViewInit() {
|
|
33
|
-
this.contentObserver = new ResizeObserver((args) => this.chartDialogResizeNotify.next(args));
|
|
34
|
-
this.contentObserver.observe(this.element.nativeElement);
|
|
35
|
-
this.createChart(this.currentChartType);
|
|
36
|
-
}
|
|
37
|
-
toggleFullScreen() {
|
|
38
|
-
this.fullScreen = !this.fullScreen;
|
|
39
|
-
}
|
|
40
|
-
hasAvailableChart(chartType) {
|
|
41
|
-
return this.allCharts.some(c => c.includes(chartType));
|
|
42
|
-
}
|
|
43
|
-
createChart(chartType) {
|
|
44
|
-
this.currentChartType = chartType;
|
|
45
|
-
this.title = chartType.split(/(?=[A-Z])/).toString().replace(',', ' ');
|
|
46
|
-
try {
|
|
47
|
-
this.chartArea.clear();
|
|
48
|
-
}
|
|
49
|
-
catch (e) { }
|
|
50
|
-
this.chartDirective.chartFactory(chartType, this.chartArea);
|
|
51
|
-
}
|
|
52
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: IgxChartMenuComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
53
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: IgxChartMenuComponent, selector: "igx-chart-menu", outputs: { onClose: "onClose" }, host: { properties: { "style.width.px": "this.width", "style.height.px": "this.height" } }, viewQueries: [{ propertyName: "chartArea", first: true, predicate: ["chartArea"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div class=\"header\">\r\n <span class=\"header-text\">\r\n {{ title }} Chart\r\n </span>\r\n <span class=\"action-buttons-wrapper\">\r\n <button igxIconButton=\"flat\" (click)=\"toggleFullScreen()\">\r\n <igx-icon class=\"material\">fullscreen{{fullScreen ? '_exit' : ''}}</igx-icon>\r\n </button>\r\n <button igxIconButton=\"flat\" (click)=\"onClose.emit()\">\r\n <igx-icon class=\"material\">close</igx-icon>\r\n </button>\r\n </span>\r\n</div>\r\n<div class=\"selection-area ig-scrollbar\">\r\n <igc-trial-watermark></igc-trial-watermark>\r\n <div class=\"chart-area\" [ngClass]=\"{'expanded': isConfigAreaExpanded}\">\r\n <ng-template #chartArea ></ng-template>\r\n </div>\r\n <div>\r\n <button igxIconButton=\"flat\" igxRipple (click)=\"isConfigAreaExpanded = !isConfigAreaExpanded\">\r\n <igx-icon family=\"material\">chevron_{{ isConfigAreaExpanded ? 'left': 'right'}}</igx-icon>\r\n </button>\r\n </div>\r\n <div #configArea [ngClass]=\"{'chart-config-area': true, 'opened': !isConfigAreaExpanded, 'closed': isConfigAreaExpanded }\">\r\n <div class=\"config-area-header\">\r\n <span>Chart Types</span>\r\n </div>\r\n <igx-divider class=\"divider\"></igx-divider>\r\n <div class=\"wrapper\" *ngFor=\"let chartType of mainChartTypes\">\r\n <ng-container *ngIf=\"hasAvailableChart(chartType)\">\r\n <div>{{chartType | titlecase}} Chart</div>\r\n <div class=\"types-section\">\r\n <ng-container *ngFor=\"let chart of allCharts\">\r\n <span *ngIf=\"chart.startsWith(chartType)\" class=\"types-section-btn\" title=\"{{chart}}\"\r\n [ngClass]=\"{'selected': chart === currentChartType}\" (click)=\"createChart(chart)\">\r\n <div [innerHTML]=\"images[chart] | svg\">\r\n </div>\r\n </span>\r\n </ng-container>\r\n </div>\r\n <igx-divider></igx-divider>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".ig-chart-legend-items-list{height:20%;display:inline-flex;flex-wrap:wrap;margin-bottom:1rem}igx-chart-menu{display:flex;flex-flow:column;overflow:hidden;background-color:#fff;transition:width .2s ease-in-out,height .3s ease-in-out}.header{height:10%;background-color:#e0e0e0;display:flex;font-size:1.8rem}.header .action-buttons-wrapper{margin-left:auto;margin-right:10px;align-self:center}.header .header-text{margin-right:auto;align-self:center;margin-left:3rem}.selection-area{width:100%;height:90%;display:inline-flex;flex-flow:row}.selection-area,.selection-area .ig-scrollbar{--sb-size: var(--ig-scrollbar-sb-size, 1rem);--sb-thumb-min-height: var(--ig-scrollbar-sb-thumb-min-height, 2rem);--sb-thumb-bg-color: var(--ig-scrollbar-sb-thumb-bg-color, hsl(from var(--ig-gray-400) h s l/1));--sb-thumb-bg-color-hover: var(--ig-scrollbar-sb-thumb-bg-color-hover, hsl(from var(--ig-gray-400) h s l/1));--sb-thumb-border-color: var(--ig-scrollbar-sb-thumb-border-color, transparent);--sb-thumb-border-size: var(--ig-scrollbar-sb-thumb-border-size, 0);--sb-thumb-border-radius: var(--ig-scrollbar-sb-thumb-border-radius, 0);--sb-track-bg-color: var(--ig-scrollbar-sb-track-bg-color, hsl(from var(--ig-gray-100) h s l/1));--sb-track-bg-color-hover: var(--ig-scrollbar-sb-track-bg-color-hover, hsl(from var(--ig-gray-100) h s l/1));--sb-track-border-color: var(--ig-scrollbar-sb-track-border-color, transparent);--sb-track-border-size: var(--ig-scrollbar-sb-track-border-size, 0);--sb-corner-bg: var(--ig-scrollbar-sb-corner-bg, hsl(from var(--ig-gray-100) h s l/1));--sb-corner-border-color: var(--ig-scrollbar-sb-corner-border-color, transparent);--sb-corner-border-size: var(--ig-scrollbar-sb-corner-border-size, 0);--theme: var(--ig-scrollbar-theme, material)}@-moz-document url-prefix(){}.selection-area .chart-area{margin-top:1rem;overflow-y:hidden;overflow-x:hidden;width:100%}.selection-area .chart-config-area{transition:all;transition-duration:.3s;transition-timing-function:ease-in-out}.selection-area .chart-config-area.opened{width:25%;overflow-y:auto;overflow-x:hidden}.selection-area .chart-config-area.closed{width:0;transform:translate(100%)}.selection-area .chart-config-area .config-area-header{margin-bottom:3px;font-size:1rem;font-weight:700;text-align:center}.selection-area .chart-config-area .types-section-btn{width:40%;margin-right:5px;cursor:pointer}.selection-area .chart-config-area .types-section-btn.selected{opacity:.5}.selection-area .wrapper{padding:3px}.selection-area .wrapper .types-section{display:flex;flex-wrap:wrap}.selection-area .wrapper .igx-divider{margin:5px!important;background:#000!important}\n"], dependencies: [{ kind: "directive", type: i1.IgxIconButtonDirective, selector: "[igxIconButton]", inputs: ["igxIconButton"] }, { kind: "directive", type: i1.IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { kind: "directive", type: i1.IgxDividerDirective, selector: "igx-divider", inputs: ["id", "role", "type", "middle", "vertical", "inset"] }, { kind: "component", type: i1.IgxIconComponent, selector: "igx-icon", inputs: ["family", "name", "active"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i3.SvgPipe, name: "svg" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
54
|
-
}
|
|
55
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: IgxChartMenuComponent, decorators: [{
|
|
56
|
-
type: Component,
|
|
57
|
-
args: [{ selector: 'igx-chart-menu', encapsulation: ViewEncapsulation.None, template: "<div class=\"header\">\r\n <span class=\"header-text\">\r\n {{ title }} Chart\r\n </span>\r\n <span class=\"action-buttons-wrapper\">\r\n <button igxIconButton=\"flat\" (click)=\"toggleFullScreen()\">\r\n <igx-icon class=\"material\">fullscreen{{fullScreen ? '_exit' : ''}}</igx-icon>\r\n </button>\r\n <button igxIconButton=\"flat\" (click)=\"onClose.emit()\">\r\n <igx-icon class=\"material\">close</igx-icon>\r\n </button>\r\n </span>\r\n</div>\r\n<div class=\"selection-area ig-scrollbar\">\r\n <igc-trial-watermark></igc-trial-watermark>\r\n <div class=\"chart-area\" [ngClass]=\"{'expanded': isConfigAreaExpanded}\">\r\n <ng-template #chartArea ></ng-template>\r\n </div>\r\n <div>\r\n <button igxIconButton=\"flat\" igxRipple (click)=\"isConfigAreaExpanded = !isConfigAreaExpanded\">\r\n <igx-icon family=\"material\">chevron_{{ isConfigAreaExpanded ? 'left': 'right'}}</igx-icon>\r\n </button>\r\n </div>\r\n <div #configArea [ngClass]=\"{'chart-config-area': true, 'opened': !isConfigAreaExpanded, 'closed': isConfigAreaExpanded }\">\r\n <div class=\"config-area-header\">\r\n <span>Chart Types</span>\r\n </div>\r\n <igx-divider class=\"divider\"></igx-divider>\r\n <div class=\"wrapper\" *ngFor=\"let chartType of mainChartTypes\">\r\n <ng-container *ngIf=\"hasAvailableChart(chartType)\">\r\n <div>{{chartType | titlecase}} Chart</div>\r\n <div class=\"types-section\">\r\n <ng-container *ngFor=\"let chart of allCharts\">\r\n <span *ngIf=\"chart.startsWith(chartType)\" class=\"types-section-btn\" title=\"{{chart}}\"\r\n [ngClass]=\"{'selected': chart === currentChartType}\" (click)=\"createChart(chart)\">\r\n <div [innerHTML]=\"images[chart] | svg\">\r\n </div>\r\n </span>\r\n </ng-container>\r\n </div>\r\n <igx-divider></igx-divider>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".ig-chart-legend-items-list{height:20%;display:inline-flex;flex-wrap:wrap;margin-bottom:1rem}igx-chart-menu{display:flex;flex-flow:column;overflow:hidden;background-color:#fff;transition:width .2s ease-in-out,height .3s ease-in-out}.header{height:10%;background-color:#e0e0e0;display:flex;font-size:1.8rem}.header .action-buttons-wrapper{margin-left:auto;margin-right:10px;align-self:center}.header .header-text{margin-right:auto;align-self:center;margin-left:3rem}.selection-area{width:100%;height:90%;display:inline-flex;flex-flow:row}.selection-area,.selection-area .ig-scrollbar{--sb-size: var(--ig-scrollbar-sb-size, 1rem);--sb-thumb-min-height: var(--ig-scrollbar-sb-thumb-min-height, 2rem);--sb-thumb-bg-color: var(--ig-scrollbar-sb-thumb-bg-color, hsl(from var(--ig-gray-400) h s l/1));--sb-thumb-bg-color-hover: var(--ig-scrollbar-sb-thumb-bg-color-hover, hsl(from var(--ig-gray-400) h s l/1));--sb-thumb-border-color: var(--ig-scrollbar-sb-thumb-border-color, transparent);--sb-thumb-border-size: var(--ig-scrollbar-sb-thumb-border-size, 0);--sb-thumb-border-radius: var(--ig-scrollbar-sb-thumb-border-radius, 0);--sb-track-bg-color: var(--ig-scrollbar-sb-track-bg-color, hsl(from var(--ig-gray-100) h s l/1));--sb-track-bg-color-hover: var(--ig-scrollbar-sb-track-bg-color-hover, hsl(from var(--ig-gray-100) h s l/1));--sb-track-border-color: var(--ig-scrollbar-sb-track-border-color, transparent);--sb-track-border-size: var(--ig-scrollbar-sb-track-border-size, 0);--sb-corner-bg: var(--ig-scrollbar-sb-corner-bg, hsl(from var(--ig-gray-100) h s l/1));--sb-corner-border-color: var(--ig-scrollbar-sb-corner-border-color, transparent);--sb-corner-border-size: var(--ig-scrollbar-sb-corner-border-size, 0);--theme: var(--ig-scrollbar-theme, material)}@-moz-document url-prefix(){}.selection-area .chart-area{margin-top:1rem;overflow-y:hidden;overflow-x:hidden;width:100%}.selection-area .chart-config-area{transition:all;transition-duration:.3s;transition-timing-function:ease-in-out}.selection-area .chart-config-area.opened{width:25%;overflow-y:auto;overflow-x:hidden}.selection-area .chart-config-area.closed{width:0;transform:translate(100%)}.selection-area .chart-config-area .config-area-header{margin-bottom:3px;font-size:1rem;font-weight:700;text-align:center}.selection-area .chart-config-area .types-section-btn{width:40%;margin-right:5px;cursor:pointer}.selection-area .chart-config-area .types-section-btn.selected{opacity:.5}.selection-area .wrapper{padding:3px}.selection-area .wrapper .types-section{display:flex;flex-wrap:wrap}.selection-area .wrapper .igx-divider{margin:5px!important;background:#000!important}\n"] }]
|
|
58
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { chartArea: [{
|
|
59
|
-
type: ViewChild,
|
|
60
|
-
args: ['chartArea', { read: ViewContainerRef }]
|
|
61
|
-
}], onClose: [{
|
|
62
|
-
type: Output
|
|
63
|
-
}], width: [{
|
|
64
|
-
type: HostBinding,
|
|
65
|
-
args: ['style.width.px']
|
|
66
|
-
}], height: [{
|
|
67
|
-
type: HostBinding,
|
|
68
|
-
args: ['style.height.px']
|
|
69
|
-
}] } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXItZXh0cmFzL3NyYy9saWIvY29udGV4dC1tZW51L2NoYXJ0LWRpYWxvZy9jaGFydC1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci1leHRyYXMvc3JjL2xpYi9jb250ZXh0LW1lbnUvY2hhcnQtZGlhbG9nL2NoYXJ0LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ1ksU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQ25ELE1BQU0sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQ3pELE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxNQUFNLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7O0FBUXpELE1BQU0sT0FBTyxxQkFBcUI7SUFPOUIsSUFDVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUM3RCxDQUFDO0lBQ0QsSUFBVyxLQUFLLENBQUMsS0FBSztRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFDVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUMvRCxDQUFDO0lBQ0QsSUFBVyxNQUFNLENBQUMsS0FBSztRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBZUQsWUFBb0IsT0FBd0I7UUFBeEIsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUEvQnJDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBa0JsQyw0QkFBdUIsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBTXhDLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QixtQkFBYyxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUt4RSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN6QixDQUFDO0lBRU0sZUFBZTtRQUVsQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksY0FBYyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV6RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxnQkFBZ0I7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDdkMsQ0FBQztJQUVNLGlCQUFpQixDQUFDLFNBQVM7UUFDOUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU0sV0FBVyxDQUFDLFNBQVM7UUFDeEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUM7WUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzNCLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEUsQ0FBQzsrR0EvRFEscUJBQXFCO21HQUFyQixxQkFBcUIsc1FBRUUsZ0JBQWdCLDZCQ2hCcEQsb3FFQTZDQTs7NEZEL0JhLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDSSxnQkFBZ0IsaUJBR1gsaUJBQWlCLENBQUMsSUFBSTsrRUFJc0IsU0FBUztzQkFBbkUsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRzNDLE9BQU87c0JBRGIsTUFBTTtnQkFJSSxLQUFLO3NCQURmLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQVNsQixNQUFNO3NCQURoQixXQUFXO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsXHJcbiAgICBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiwgVmlld0VuY2Fwc3VsYXRpb24sIEVsZW1lbnRSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgY2hhcnRzIGZyb20gJy4uLy4uLy4uL2ltYWdlcy9jaGFydHMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFJlc2l6ZU9ic2VydmVyIH0gZnJvbSAnQGp1Z2dsZS9yZXNpemUtb2JzZXJ2ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2lneC1jaGFydC1tZW51JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jaGFydC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY2hhcnQtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJZ3hDaGFydE1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdjaGFydEFyZWEnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgcHVibGljIGNoYXJ0QXJlYTogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBvbkNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS53aWR0aC5weCcpXHJcbiAgICBwdWJsaWMgZ2V0IHdpZHRoKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZ1bGxTY3JlZW4gPyB0aGlzLl93aWR0aCA6IDAuNyAqIHRoaXMuX3dpZHRoO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCB3aWR0aCh2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuX3dpZHRoID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQucHgnKVxyXG4gICAgcHVibGljIGdldCBoZWlnaHQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZnVsbFNjcmVlbiA/IHRoaXMuX2hlaWdodCA6IDAuNyAqIHRoaXMuX2hlaWdodDtcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgaGVpZ2h0KHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5faGVpZ2h0ID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNoYXJ0RGlhbG9nUmVzaXplTm90aWZ5ID0gbmV3IFN1YmplY3QoKTtcclxuICAgIHByaXZhdGUgY29udGVudE9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcclxuICAgIHB1YmxpYyBpbWFnZXM7XHJcbiAgICBwdWJsaWMgY2hhcnREaXJlY3RpdmU7XHJcbiAgICBwdWJsaWMgY3VycmVudENoYXJ0VHlwZTtcclxuICAgIHB1YmxpYyB0aXRsZTtcclxuICAgIHB1YmxpYyBhbGxDaGFydHMgPSBbXTtcclxuICAgIHB1YmxpYyBmdWxsU2NyZWVuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaXNDb25maWdBcmVhRXhwYW5kZWQgPSBmYWxzZTtcclxuICAgIHB1YmxpYyBtYWluQ2hhcnRUeXBlcyA9IFsnQ29sdW1uJywgJ0FyZWEnLCAnQmFyJywgJ0xpbmUnLCAnU2NhdHRlcicsICdQaWUnXTtcclxuICAgIHByaXZhdGUgX3dpZHRoO1xyXG4gICAgcHJpdmF0ZSBfaGVpZ2h0O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZjxhbnk+KSB7XHJcbiAgICAgICAgdGhpcy5pbWFnZXMgPSBjaGFydHM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuXHJcbiAgICAgICAgdGhpcy5jb250ZW50T2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGFyZ3MpID0+IHRoaXMuY2hhcnREaWFsb2dSZXNpemVOb3RpZnkubmV4dChhcmdzKSk7XHJcbiAgICAgICAgdGhpcy5jb250ZW50T2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XHJcblxyXG4gICAgICAgIHRoaXMuY3JlYXRlQ2hhcnQodGhpcy5jdXJyZW50Q2hhcnRUeXBlKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdG9nZ2xlRnVsbFNjcmVlbigpIHtcclxuICAgICAgICB0aGlzLmZ1bGxTY3JlZW4gPSAhdGhpcy5mdWxsU2NyZWVuO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYXNBdmFpbGFibGVDaGFydChjaGFydFR5cGUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hbGxDaGFydHMuc29tZShjID0+IGMuaW5jbHVkZXMoY2hhcnRUeXBlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNyZWF0ZUNoYXJ0KGNoYXJ0VHlwZSkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudENoYXJ0VHlwZSA9IGNoYXJ0VHlwZTtcclxuICAgICAgICB0aGlzLnRpdGxlID0gY2hhcnRUeXBlLnNwbGl0KC8oPz1bQS1aXSkvKS50b1N0cmluZygpLnJlcGxhY2UoJywnLCAnICcpO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhcnRBcmVhLmNsZWFyKCk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkgeyB9XHJcbiAgICAgICAgdGhpcy5jaGFydERpcmVjdGl2ZS5jaGFydEZhY3RvcnkoY2hhcnRUeXBlLCB0aGlzLmNoYXJ0QXJlYSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJoZWFkZXItdGV4dFwiPlxyXG4gICAgICAgIHt7IHRpdGxlIH19IENoYXJ0XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8c3BhbiBjbGFzcz1cImFjdGlvbi1idXR0b25zLXdyYXBwZXJcIj5cclxuICAgICAgICA8YnV0dG9uIGlneEljb25CdXR0b249XCJmbGF0XCIgKGNsaWNrKT1cInRvZ2dsZUZ1bGxTY3JlZW4oKVwiPlxyXG4gICAgICAgICAgICA8aWd4LWljb24gY2xhc3M9XCJtYXRlcmlhbFwiPmZ1bGxzY3JlZW57e2Z1bGxTY3JlZW4gPyAnX2V4aXQnIDogJyd9fTwvaWd4LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBpZ3hJY29uQnV0dG9uPVwiZmxhdFwiIChjbGljayk9XCJvbkNsb3NlLmVtaXQoKVwiPlxyXG4gICAgICAgICAgICA8aWd4LWljb24gY2xhc3M9XCJtYXRlcmlhbFwiPmNsb3NlPC9pZ3gtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgIDwvc3Bhbj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJzZWxlY3Rpb24tYXJlYSBpZy1zY3JvbGxiYXJcIj5cclxuICAgIDxpZ2MtdHJpYWwtd2F0ZXJtYXJrPjwvaWdjLXRyaWFsLXdhdGVybWFyaz5cclxuICAgIDxkaXYgY2xhc3M9XCJjaGFydC1hcmVhXCIgW25nQ2xhc3NdPVwieydleHBhbmRlZCc6IGlzQ29uZmlnQXJlYUV4cGFuZGVkfVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY2hhcnRBcmVhID48L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2PlxyXG4gICAgICAgIDxidXR0b24gaWd4SWNvbkJ1dHRvbj1cImZsYXRcIiBpZ3hSaXBwbGUgKGNsaWNrKT1cImlzQ29uZmlnQXJlYUV4cGFuZGVkID0gIWlzQ29uZmlnQXJlYUV4cGFuZGVkXCI+XHJcbiAgICAgICAgICAgIDxpZ3gtaWNvbiBmYW1pbHk9XCJtYXRlcmlhbFwiPmNoZXZyb25fe3sgaXNDb25maWdBcmVhRXhwYW5kZWQgPyAnbGVmdCc6ICdyaWdodCd9fTwvaWd4LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgI2NvbmZpZ0FyZWEgW25nQ2xhc3NdPVwieydjaGFydC1jb25maWctYXJlYSc6IHRydWUsICdvcGVuZWQnOiAhaXNDb25maWdBcmVhRXhwYW5kZWQsICdjbG9zZWQnOiBpc0NvbmZpZ0FyZWFFeHBhbmRlZCB9XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZy1hcmVhLWhlYWRlclwiPlxyXG4gICAgICAgICAgICA8c3Bhbj5DaGFydCBUeXBlczwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8aWd4LWRpdmlkZXIgY2xhc3M9XCJkaXZpZGVyXCI+PC9pZ3gtZGl2aWRlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiICpuZ0Zvcj1cImxldCBjaGFydFR5cGUgb2YgbWFpbkNoYXJ0VHlwZXNcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0F2YWlsYWJsZUNoYXJ0KGNoYXJ0VHlwZSlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXY+e3tjaGFydFR5cGUgfCB0aXRsZWNhc2V9fSBDaGFydDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR5cGVzLXNlY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjaGFydCBvZiBhbGxDaGFydHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNoYXJ0LnN0YXJ0c1dpdGgoY2hhcnRUeXBlKVwiICBjbGFzcz1cInR5cGVzLXNlY3Rpb24tYnRuXCIgdGl0bGU9XCJ7e2NoYXJ0fX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydzZWxlY3RlZCc6IGNoYXJ0ID09PSBjdXJyZW50Q2hhcnRUeXBlfVwiIChjbGljayk9XCJjcmVhdGVDaGFydChjaGFydClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAgW2lubmVySFRNTF09XCJpbWFnZXNbY2hhcnRdIHwgc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGlneC1kaXZpZGVyPjwvaWd4LWRpdmlkZXI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
import { Component, ViewChild, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import { AutoPositionStrategy, HorizontalAlignment, IgxToggleDirective, VerticalAlignment, IgxTabsComponent, CloseScrollStrategy } from 'igniteui-angular';
|
|
3
|
-
import { Subject } from 'rxjs';
|
|
4
|
-
import { takeUntil } from 'rxjs/operators';
|
|
5
|
-
import { IgxChartMenuComponent } from './chart-dialog/chart-dialog.component';
|
|
6
|
-
import * as charts from '../../images/charts';
|
|
7
|
-
import * as conditions from '../../images/conditions';
|
|
8
|
-
import { CHART_TYPE } from '../directives/chart-integration/chart-types';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "igniteui-angular";
|
|
11
|
-
import * as i2 from "@angular/common";
|
|
12
|
-
import * as i3 from "../pipes/svg.pipe";
|
|
13
|
-
export class IgxContextMenuComponent {
|
|
14
|
-
constructor(overlayService) {
|
|
15
|
-
this.overlayService = overlayService;
|
|
16
|
-
this.chartTypes = [];
|
|
17
|
-
this.textFormatters = [];
|
|
18
|
-
this.destroy$ = new Subject();
|
|
19
|
-
this._chartDialogOS = { closeOnOutsideClick: false };
|
|
20
|
-
this._tabsMenuOverlaySettings = {
|
|
21
|
-
closeOnOutsideClick: false,
|
|
22
|
-
modal: false,
|
|
23
|
-
outlet: null,
|
|
24
|
-
scrollStrategy: new CloseScrollStrategy(),
|
|
25
|
-
positionStrategy: new AutoPositionStrategy({
|
|
26
|
-
horizontalDirection: HorizontalAlignment.Center,
|
|
27
|
-
horizontalStartPoint: HorizontalAlignment.Center,
|
|
28
|
-
verticalStartPoint: VerticalAlignment.Bottom,
|
|
29
|
-
verticalDirection: VerticalAlignment.Bottom,
|
|
30
|
-
openAnimation: null,
|
|
31
|
-
closeAnimation: null
|
|
32
|
-
})
|
|
33
|
-
};
|
|
34
|
-
this._chartPreviewDialogOverlaySettings = {
|
|
35
|
-
closeOnOutsideClick: false,
|
|
36
|
-
modal: false,
|
|
37
|
-
outlet: null,
|
|
38
|
-
scrollStrategy: new CloseScrollStrategy(),
|
|
39
|
-
positionStrategy: new AutoPositionStrategy({
|
|
40
|
-
horizontalDirection: HorizontalAlignment.Center,
|
|
41
|
-
horizontalStartPoint: HorizontalAlignment.Center,
|
|
42
|
-
verticalStartPoint: VerticalAlignment.Top,
|
|
43
|
-
verticalDirection: VerticalAlignment.Top,
|
|
44
|
-
openAnimation: null,
|
|
45
|
-
closeAnimation: null
|
|
46
|
-
})
|
|
47
|
-
};
|
|
48
|
-
this.chartImages = charts;
|
|
49
|
-
this.conditionImages = conditions;
|
|
50
|
-
}
|
|
51
|
-
ngAfterViewInit() {
|
|
52
|
-
this.chartTypes = this.contextDirective.charts;
|
|
53
|
-
this.textFormatters = this.contextDirective.formatters;
|
|
54
|
-
if (this.contextDirective.chartsDirective) {
|
|
55
|
-
this.contextDirective.chartsDirective.onChartTypesDetermined.pipe(takeUntil(this.destroy$))
|
|
56
|
-
.subscribe((args) => this.chartTypes = args.chartsForCreation);
|
|
57
|
-
}
|
|
58
|
-
if (this.contextDirective.textFormatter) {
|
|
59
|
-
this.contextDirective.textFormatter.onFormattersReady.pipe(takeUntil(this.destroy$))
|
|
60
|
-
.subscribe(names => this.textFormatters = names);
|
|
61
|
-
}
|
|
62
|
-
this.contextDirective.onButtonClose.pipe(takeUntil(this.destroy$))
|
|
63
|
-
.subscribe(() => { if (this.tabsMenu && !this.tabsMenu.collapsed) {
|
|
64
|
-
this.tabsMenu.close();
|
|
65
|
-
} });
|
|
66
|
-
this.contextDirective.gridResizeNotify.pipe(takeUntil(this.destroy$))
|
|
67
|
-
.subscribe(() => {
|
|
68
|
-
if (!this.tabsMenu.collapsed) {
|
|
69
|
-
this.tabsMenu.close();
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
this.tabsMenu.opening.pipe(takeUntil(this.destroy$))
|
|
73
|
-
.subscribe(() => {
|
|
74
|
-
if (this.tabs.selectedItem.disabled) {
|
|
75
|
-
debugger;
|
|
76
|
-
// const i = this.tabs.items.find(tab => !tab.disabled)?.index || 0;
|
|
77
|
-
// this.tabs.selectTab(this.tabs.tabs.toArray()[i], true);
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
this.overlayService.opening.pipe(takeUntil(this.destroy$))
|
|
81
|
-
.subscribe((args) => {
|
|
82
|
-
if (args.componentRef) {
|
|
83
|
-
const instance = args.componentRef.instance;
|
|
84
|
-
instance.width = this.contextDirective.grid.nativeElement.clientWidth;
|
|
85
|
-
instance.height = this.contextDirective.grid.nativeElement.clientHeight;
|
|
86
|
-
instance.currentChartType = this.currentChartType;
|
|
87
|
-
instance.allCharts = this.chartTypes;
|
|
88
|
-
instance.chartDirective = this.contextDirective.chartsDirective;
|
|
89
|
-
instance.onClose?.subscribe(() => {
|
|
90
|
-
this.closeDialog();
|
|
91
|
-
});
|
|
92
|
-
instance.chartDialogResizeNotify?.subscribe(resizedContentArgs => {
|
|
93
|
-
// This is a temporary fix, which should be removed right after
|
|
94
|
-
// the overlay service is capable of notifying the overlay content elements
|
|
95
|
-
// that their children has been resized.
|
|
96
|
-
if (this.overlayService._overlayElement.children[1]) {
|
|
97
|
-
// tslint:disable-next-line: max-line-length
|
|
98
|
-
this.overlayService._overlayElement.children[1].children[0].style.width = resizedContentArgs[0].contentRect.width + 'px';
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
this.overlayService.closing.pipe(takeUntil(this.destroy$))
|
|
104
|
-
.subscribe((args) => {
|
|
105
|
-
if (args.componentRef && args.componentRef.instance instanceof IgxChartMenuComponent) {
|
|
106
|
-
if (this._dialogId) {
|
|
107
|
-
this.tabsMenu.open(this._tabsMenuOverlaySettings);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
ngOnDestroy() {
|
|
113
|
-
this.destroy$.next(true);
|
|
114
|
-
this.destroy$.complete();
|
|
115
|
-
}
|
|
116
|
-
toggleTabMenu() {
|
|
117
|
-
this.currentChartType = this.currentChartType ? this.currentChartType : CHART_TYPE.COLUMN_GROUPED;
|
|
118
|
-
this._tabsMenuOverlaySettings.target = this.button.nativeElement;
|
|
119
|
-
this.tabsMenu.collapsed ? this.tabsMenu.open(this._tabsMenuOverlaySettings) : this.tabsMenu.close();
|
|
120
|
-
}
|
|
121
|
-
formatCells(condition) {
|
|
122
|
-
this.currentFormatter = condition;
|
|
123
|
-
this.contextDirective.textFormatter.formatCells(condition);
|
|
124
|
-
}
|
|
125
|
-
clearFormat() {
|
|
126
|
-
this.contextDirective.textFormatter.clearFormatting();
|
|
127
|
-
this.currentFormatter = undefined;
|
|
128
|
-
}
|
|
129
|
-
previewChart(currentChartType) {
|
|
130
|
-
this.currentChartType = currentChartType;
|
|
131
|
-
this.chartPreview.clear();
|
|
132
|
-
this.contextDirective.chartsDirective.chartFactory(currentChartType, this.chartPreview);
|
|
133
|
-
this._chartPreviewDialogOverlaySettings.target = this.tabsMenu.element;
|
|
134
|
-
this.chartPreviewDialog.open(this._chartPreviewDialogOverlaySettings);
|
|
135
|
-
}
|
|
136
|
-
hidePreview() {
|
|
137
|
-
this.chartPreviewDialog.close();
|
|
138
|
-
}
|
|
139
|
-
openDialog(type) {
|
|
140
|
-
this.currentChartType = type ? type : this.currentChartType ? this.currentChartType : CHART_TYPE.COLUMN_GROUPED;
|
|
141
|
-
this._dialogId = this._dialogId ? this._dialogId :
|
|
142
|
-
this.overlayService.attach(IgxChartMenuComponent, this._chartDialogOS);
|
|
143
|
-
this.tabsMenu.close();
|
|
144
|
-
this.overlayService.show(this._dialogId);
|
|
145
|
-
}
|
|
146
|
-
closeDialog() {
|
|
147
|
-
const info = this.overlayService.getOverlayById(this._dialogId);
|
|
148
|
-
if (info) {
|
|
149
|
-
this.overlayService.hide(this._dialogId);
|
|
150
|
-
this.overlayService.detach(this._dialogId);
|
|
151
|
-
this._dialogId = undefined;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: IgxContextMenuComponent, deps: [{ token: i1.IgxOverlayService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
155
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: IgxContextMenuComponent, selector: "igx-context-menu", viewQueries: [{ propertyName: "button", first: true, predicate: ["analyticsBtn"], descendants: true }, { propertyName: "tabsMenu", first: true, predicate: ["tabsMenu"], descendants: true, read: IgxToggleDirective }, { propertyName: "chartPreview", first: true, predicate: ["chartPreview"], descendants: true, read: ViewContainerRef }, { propertyName: "chartPreviewDialog", first: true, predicate: ["chartPreviewDialog"], descendants: true, read: IgxToggleDirective }, { propertyName: "tabs", first: true, predicate: IgxTabsComponent, descendants: true }], ngImport: i0, template: "<span #analyticsBtn class=\"analytics-btn\">\r\n <button #btn igxIconButton=\"flat\" (click)=\"toggleTabMenu()\">\r\n <igx-icon #icon class=\"icon\" family=\"material\">insert_chart_outlined</igx-icon>\r\n </button>\r\n</span>\r\n<div #tabsMenu igxToggle class=\"toggle-content ig-scrollbar\">\r\n <!--NOTE: This component has been updated by Infragistics migration: v12.0.0\r\nPlease check your template whether all bindings/event handlers are correct.-->\r\n <igx-tabs tabsType=\"fixed\" [selectedIndex]=\"!this.textFormatters.length && chartTypes.length ? 1 : 0\">\r\n <igx-tab-item [disabled]=\"!textFormatters.length\">\r\n <igx-tab-header>\r\n <span igxTabHeaderLabel>Conditional Formatting</span>\r\n </igx-tab-header>\r\n <igx-tab-content>\r\n <igc-trial-watermark></igc-trial-watermark>\r\n <div class=\"tabs\">\r\n <span class=\"tab-option\">\r\n <span *ngFor=\"let condition of textFormatters\" class=\"action btn condition\"\r\n [ngClass]=\"{'selected--condition': condition === currentFormatter}\"\r\n (click)=\"formatCells(condition)\">\r\n <div class=\"imgSize\" [innerHTML]=\"conditionImages[condition.replace(' ', '')] | svg\">\r\n </div>\r\n <span class=\"name\">{{condition.replace('10', '10%')}}</span>\r\n </span>\r\n </span>\r\n <span class=\"clear action\"\r\n [ngClass]=\"{'disableButton': contextDirective.textFormatter ? !contextDirective.textFormatter.formatter : true }\"\r\n (click)=\"clearFormat()\">\r\n <div class=\"imgSize\" [innerHTML]=\"conditionImages['Clear'] | svg\">\r\n </div>\r\n <span class=\"btn name\">Clear All</span>\r\n </span>\r\n </div>\r\n </igx-tab-content>\r\n </igx-tab-item>\r\n <igx-tab-item [disabled]=\"!chartTypes.length\">\r\n <igx-tab-header>\r\n <span igxTabHeaderLabel>Create Chart</span>\r\n </igx-tab-header>\r\n <igx-tab-content>\r\n <igc-trial-watermark></igc-trial-watermark>\r\n <div class=\"tabs\">\r\n <span class=\"tab-option\">\r\n <span *ngFor=\"let chart of chartTypes | slice:0:4\" class=\"action btn chart\"\r\n [ngClass]=\"{'selected': chart === currentChartType}\" (mouseenter)=\"previewChart(chart)\"\r\n (mouseleave)=\"hidePreview()\" (click)=\"openDialog(chart)\">\r\n <span [innerHTML]=\"chartImages[chart] | svg\" class=\"imgSize\">\r\n </span>\r\n <span class=\"name\">{{chart}}</span>\r\n </span>\r\n </span>\r\n <span class=\"more-action chart\" [ngClass]=\"{'disableButton': !chartTypes.length}\"\r\n (click)=\"openDialog()\">\r\n <button class=\"more-btn more-icon\" igxIconButton=\"flat\" [style.--background]=\"'#EBEBEB'\"\r\n [style.--foreground]=\"'black'\">\r\n <igx-icon class=\"icon\" family=\"material\">more_horiz</igx-icon>\r\n </button>\r\n <span class=\"name btn\">More...</span>\r\n </span>\r\n </div>\r\n </igx-tab-content>\r\n </igx-tab-item>\r\n </igx-tabs>\r\n</div>\r\n<div igxToggle #chartPreviewDialog class=\"chart-preview\">\r\n <div class=\"chart-preview-title\">\r\n <h5>Preview Chart</h5>\r\n </div>\r\n <div class=\"chart-preview-area\">\r\n <ng-template #chartPreview></ng-template>\r\n </div>\r\n</div>", styles: [".analytics-btn,.analytics-btn [igxButton=flat],.analytics-btn .igx-button--flat{--shadow-color: var(--igx-button-shadow-color, transparent);--border-color: var(--igx-button-border-color, transparent);--hover-border-color: var(--igx-button-hover-border-color, transparent);--focus-border-color: var(--igx-button-focus-border-color, transparent);--focus-visible-border-color: var(--igx-button-focus-visible-border-color, transparent);--active-border-color: var(--igx-button-active-border-color, transparent);--disabled-border-color: var(--igx-button-disabled-border-color, transparent);--disabled-background: var(--igx-button-disabled-background, transparent);--disabled-foreground: var(--igx-button-disabled-foreground, hsl(from var(--ig-gray-500) h s l/1));--disabled-icon-color: var(--igx-button-disabled-icon-color, hsl(from var(--ig-gray-500) h s l/1));--size: var(--igx-button-size, max(var(--is-large, 1) * max(2.25rem, -1 * 2.25rem), var(--is-medium, 1) * max(1.875rem, -1 * 1.875rem), var(--is-small, 1) * max(1.5rem, -1 * 1.5rem)));--default-size: var(--igx-button-default-size, 3);--resting-elevation: var(--igx-button-resting-elevation, var(--ig-elevation-0));--hover-elevation: var(--igx-button-hover-elevation, var(--ig-elevation-0));--focus-elevation: var(--igx-button-focus-elevation, var(--ig-elevation-0));--active-elevation: var(--igx-button-active-elevation, var(--ig-elevation-0));--background: var(--igx-button-background, #335e3b);--focus-foreground: var(--igx-button-focus-foreground, white);--border-radius: var(--igx-button-border-radius, 0);--foreground: var(--igx-button-foreground, #fff);--icon-color: var(--igx-button-icon-color, #fff);--icon-color-hover: var(--igx-button-icon-color-hover, black);--hover-background: var(--igx-button-hover-background, #459a55);--hover-foreground: var(--igx-button-hover-foreground, black);--focus-background: var(--igx-button-focus-background, #396a42);--focus-visible-background: var(--igx-button-focus-visible-background, #396a42);--focus-hover-background: var(--igx-button-focus-hover-background, #396a42);--focus-hover-foreground: var(--igx-button-focus-hover-foreground, white);--focus-visible-foreground: var(--igx-button-focus-visible-foreground, white);--active-background: var(--igx-button-active-background, hsl(from var(--ig-secondary-500) h s l/.16));--active-foreground: var(--igx-button-active-foreground, hsl(from var(--ig-secondary-500) h s l/1));--resting-shadow: var(--igx-button-resting-shadow, var(--ig-elevation-0));--hover-shadow: var(--igx-button-hover-shadow, var(--ig-elevation-0));--focus-shadow: var(--igx-button-focus-shadow, var(--ig-elevation-0));--active-shadow: var(--igx-button-active-shadow, var(--ig-elevation-0));--theme: var(--igx-button-theme, material)}.analytics-btn,.analytics-btn [igxButton=outlined],.analytics-btn .igx-button--outlined{--shadow-color: var(--igx-button-shadow-color, transparent);--border-color: var(--igx-button-border-color, hsl(from var(--ig-secondary-500) h s l/1));--hover-border-color: var(--igx-button-hover-border-color, hsl(from var(--ig-secondary-500) h s l/1));--focus-border-color: var(--igx-button-focus-border-color, hsl(from var(--ig-secondary-500) h s l/1));--focus-visible-border-color: var(--igx-button-focus-visible-border-color, hsl(from var(--ig-secondary-500) h s l/1));--active-border-color: var(--igx-button-active-border-color, hsl(from var(--ig-secondary-500) h s l/1));--disabled-border-color: var(--igx-button-disabled-border-color, hsl(from var(--ig-gray-300) h s l/1));--disabled-background: var(--igx-button-disabled-background, transparent);--disabled-foreground: var(--igx-button-disabled-foreground, hsl(from var(--ig-gray-500) h s l/1));--disabled-icon-color: var(--igx-button-disabled-icon-color, hsl(from var(--ig-gray-500) h s l/1));--size: var(--igx-button-size, max(var(--is-large, 1) * max(2.25rem, -1 * 2.25rem), var(--is-medium, 1) * max(1.875rem, -1 * 1.875rem), var(--is-small, 1) * max(1.5rem, -1 * 1.5rem)));--default-size: var(--igx-button-default-size, 3);--resting-elevation: var(--igx-button-resting-elevation, var(--ig-elevation-0));--hover-elevation: var(--igx-button-hover-elevation, var(--ig-elevation-0));--focus-elevation: var(--igx-button-focus-elevation, var(--ig-elevation-0));--active-elevation: var(--igx-button-active-elevation, var(--ig-elevation-0));--background: var(--igx-button-background, #335e3b);--focus-foreground: var(--igx-button-focus-foreground, white);--border-radius: var(--igx-button-border-radius, 0);--foreground: var(--igx-button-foreground, #fff);--icon-color: var(--igx-button-icon-color, #fff);--icon-color-hover: var(--igx-button-icon-color-hover, black);--hover-background: var(--igx-button-hover-background, #459a55);--hover-foreground: var(--igx-button-hover-foreground, black);--focus-background: var(--igx-button-focus-background, #396a42);--focus-visible-background: var(--igx-button-focus-visible-background, #396a42);--focus-hover-background: var(--igx-button-focus-hover-background, #396a42);--focus-hover-foreground: var(--igx-button-focus-hover-foreground, white);--focus-visible-foreground: var(--igx-button-focus-visible-foreground, white);--active-background: var(--igx-button-active-background, hsl(from var(--ig-secondary-500) h s l/.16));--active-foreground: var(--igx-button-active-foreground, hsl(from var(--ig-secondary-500) h s l/1));--resting-shadow: var(--igx-button-resting-shadow, var(--ig-elevation-0));--hover-shadow: var(--igx-button-hover-shadow, var(--ig-elevation-0));--focus-shadow: var(--igx-button-focus-shadow, var(--ig-elevation-0));--active-shadow: var(--igx-button-active-shadow, var(--ig-elevation-0));--theme: var(--igx-button-theme, material)}.analytics-btn,.analytics-btn [igxButton=contained],.analytics-btn .igx-button--contained{--shadow-color: var(--igx-button-shadow-color, transparent);--border-color: var(--igx-button-border-color, transparent);--hover-border-color: var(--igx-button-hover-border-color, transparent);--focus-border-color: var(--igx-button-focus-border-color, transparent);--focus-visible-border-color: var(--igx-button-focus-visible-border-color, transparent);--active-border-color: var(--igx-button-active-border-color, transparent);--disabled-border-color: var(--igx-button-disabled-border-color, transparent);--disabled-background: var(--igx-button-disabled-background, hsl(from var(--ig-gray-100) h s l/1));--disabled-foreground: var(--igx-button-disabled-foreground, hsl(from var(--ig-gray-500) h s l/1));--disabled-icon-color: var(--igx-button-disabled-icon-color, hsl(from var(--ig-gray-500) h s l/1));--size: var(--igx-button-size, max(var(--is-large, 1) * max(2.25rem, -1 * 2.25rem), var(--is-medium, 1) * max(1.875rem, -1 * 1.875rem), var(--is-small, 1) * max(1.5rem, -1 * 1.5rem)));--default-size: var(--igx-button-default-size, 3);--resting-elevation: var(--igx-button-resting-elevation, var(--ig-elevation-2));--hover-elevation: var(--igx-button-hover-elevation, var(--ig-elevation-4));--focus-elevation: var(--igx-button-focus-elevation, var(--ig-elevation-8));--active-elevation: var(--igx-button-active-elevation, var(--ig-elevation-8));--background: var(--igx-button-background, #335e3b);--active-background: var(--igx-button-active-background, hsl(from var(--ig-secondary-300) h s l/1));--border-radius: var(--igx-button-border-radius, 0);--foreground: var(--igx-button-foreground, #fff);--icon-color: var(--igx-button-icon-color, #fff);--icon-color-hover: var(--igx-button-icon-color-hover, black);--hover-background: var(--igx-button-hover-background, #459a55);--hover-foreground: var(--igx-button-hover-foreground, black);--focus-background: var(--igx-button-focus-background, #396a42);--focus-foreground: var(--igx-button-focus-foreground, white);--focus-hover-background: var(--igx-button-focus-hover-background, #396a42);--focus-hover-foreground: var(--igx-button-focus-hover-foreground, white);--focus-visible-background: var(--igx-button-focus-visible-background, #396a42);--focus-visible-foreground: var(--igx-button-focus-visible-foreground, white);--active-foreground: var(--igx-button-active-foreground, color-mix(in oklch, var(--ig-secondary-300-contrast) 100%, transparent));--resting-shadow: var(--igx-button-resting-shadow, var(--ig-elevation-2));--hover-shadow: var(--igx-button-hover-shadow, var(--ig-elevation-4));--focus-shadow: var(--igx-button-focus-shadow, var(--ig-elevation-8));--active-shadow: var(--igx-button-active-shadow, var(--ig-elevation-8));--theme: var(--igx-button-theme, material)}.analytics-btn,.analytics-btn [igxButton=fab],.analytics-btn .igx-button--fab{--shadow-color: var(--igx-button-shadow-color, transparent);--border-color: var(--igx-button-border-color, transparent);--hover-border-color: var(--igx-button-hover-border-color, transparent);--focus-border-color: var(--igx-button-focus-border-color, transparent);--focus-visible-border-color: var(--igx-button-focus-visible-border-color, transparent);--active-border-color: var(--igx-button-active-border-color, transparent);--disabled-border-color: var(--igx-button-disabled-border-color, transparent);--disabled-background: var(--igx-button-disabled-background, hsl(from var(--ig-gray-100) h s l/1));--disabled-foreground: var(--igx-button-disabled-foreground, hsl(from var(--ig-gray-500) h s l/1));--disabled-icon-color: var(--igx-button-disabled-icon-color, hsl(from var(--ig-gray-500) h s l/1));--size: var(--igx-button-size, max(var(--is-large, 1) * max(3rem, -1 * 3rem), var(--is-medium, 1) * max(2.5rem, -1 * 2.5rem), var(--is-small, 1) * max(2rem, -1 * 2rem)));--default-size: var(--igx-button-default-size, 3);--resting-elevation: var(--igx-button-resting-elevation, var(--ig-elevation-6));--hover-elevation: var(--igx-button-hover-elevation, var(--ig-elevation-12));--focus-elevation: var(--igx-button-focus-elevation, var(--ig-elevation-12));--active-elevation: var(--igx-button-active-elevation, var(--ig-elevation-12));--background: var(--igx-button-background, #335e3b);--active-background: var(--igx-button-active-background, hsl(from var(--ig-secondary-300) h s l/1));--border-radius: var(--igx-button-border-radius, 0);--foreground: var(--igx-button-foreground, #fff);--icon-color: var(--igx-button-icon-color, #fff);--icon-color-hover: var(--igx-button-icon-color-hover, black);--hover-background: var(--igx-button-hover-background, #459a55);--hover-foreground: var(--igx-button-hover-foreground, black);--focus-background: var(--igx-button-focus-background, #396a42);--focus-foreground: var(--igx-button-focus-foreground, white);--focus-hover-background: var(--igx-button-focus-hover-background, #396a42);--focus-hover-foreground: var(--igx-button-focus-hover-foreground, white);--focus-visible-background: var(--igx-button-focus-visible-background, #396a42);--focus-visible-foreground: var(--igx-button-focus-visible-foreground, white);--active-foreground: var(--igx-button-active-foreground, color-mix(in oklch, var(--ig-secondary-300-contrast) 100%, transparent));--resting-shadow: var(--igx-button-resting-shadow, var(--ig-elevation-6));--hover-shadow: var(--igx-button-hover-shadow, var(--ig-elevation-12));--focus-shadow: var(--igx-button-focus-shadow, var(--ig-elevation-12));--active-shadow: var(--igx-button-active-shadow, var(--ig-elevation-12));--theme: var(--igx-button-theme, material)}.disableButton{opacity:.4;pointer-events:none}.clear,.more-action{display:flex;flex-flow:column;justify-content:center;border-left:1px solid #bdbdbd}.clear .btn,.clear .more-btn,.more-action .btn,.more-action .more-btn{width:68px;margin:0 0 7px;padding:0}.clear .more-btn,.more-action .more-btn{width:36px;height:36px;align-self:center;border-radius:20px}.clear .name,.more-action .name{font-size:.9rem;font-weight:400;text-align:center}.icon{pointer-events:none}.btn{display:inline-flex;flex-flow:column;align-items:center}.btn.condition{padding-right:16px}.btn.chart{padding-right:24px}.btn img,.btn span{pointer-events:none}.chart-preview{width:350px;height:300px;background-color:#fff;overflow:hidden}.chart-preview .chart-preview-title{margin:1rem;justify-content:center}.chart-preview .chart-preview-area{height:270px}::ng-deep .toggle-content{width:354px;max-width:358px;height:148px;background-color:#fff}::ng-deep .toggle-content,::ng-deep .toggle-content .ig-scrollbar{--sb-size: var(--ig-scrollbar-sb-size, 1rem);--sb-thumb-min-height: var(--ig-scrollbar-sb-thumb-min-height, 2rem);--sb-thumb-bg-color: var(--ig-scrollbar-sb-thumb-bg-color, hsl(from var(--ig-gray-400) h s l/1));--sb-thumb-bg-color-hover: var(--ig-scrollbar-sb-thumb-bg-color-hover, hsl(from var(--ig-gray-400) h s l/1));--sb-thumb-border-color: var(--ig-scrollbar-sb-thumb-border-color, transparent);--sb-thumb-border-size: var(--ig-scrollbar-sb-thumb-border-size, 0);--sb-thumb-border-radius: var(--ig-scrollbar-sb-thumb-border-radius, 0);--sb-track-bg-color: var(--ig-scrollbar-sb-track-bg-color, hsl(from var(--ig-gray-100) h s l/1));--sb-track-bg-color-hover: var(--ig-scrollbar-sb-track-bg-color-hover, hsl(from var(--ig-gray-100) h s l/1));--sb-track-border-color: var(--ig-scrollbar-sb-track-border-color, transparent);--sb-track-border-size: var(--ig-scrollbar-sb-track-border-size, 0);--sb-corner-bg: var(--ig-scrollbar-sb-corner-bg, hsl(from var(--ig-gray-100) h s l/1));--sb-corner-border-color: var(--ig-scrollbar-sb-corner-border-color, transparent);--sb-corner-border-size: var(--ig-scrollbar-sb-corner-border-size, 0);--theme: var(--ig-scrollbar-theme, material)}@-moz-document url-prefix(){}::ng-deep .toggle-content .tabs{display:flex!important;border:.2px solid;border-color:#d3d3d3}::ng-deep .toggle-content .tab-option{padding:.9rem;height:100px;width:358px;display:inline-flex;overflow-x:auto;overflow-y:hidden;white-space:nowrap;align-content:center}::ng-deep .toggle-content .tab-option .chartImgButton{width:48px;height:48px}::ng-deep .toggle-content .tab-option .imgSize,::ng-deep .toggle-content .clear.action .imgSize{width:36px;height:36px;align-self:center}::ng-deep .toggle-content .action{cursor:pointer;opacity:1}::ng-deep .toggle-content .action.selected{opacity:.62}::ng-deep .toggle-content .action.selected--condition{pointer-events:none;opacity:.62}\n"], dependencies: [{ kind: "directive", type: i1.IgxIconButtonDirective, selector: "[igxIconButton]", inputs: ["igxIconButton"] }, { kind: "component", type: i1.IgxTabsComponent, selector: "igx-tabs", inputs: ["tabAlignment", "activation"] }, { kind: "component", type: i1.IgxTabItemComponent, selector: "igx-tab-item" }, { kind: "component", type: i1.IgxTabHeaderComponent, selector: "igx-tab-header" }, { kind: "component", type: i1.IgxTabContentComponent, selector: "igx-tab-content" }, { kind: "directive", type: i1.IgxTabHeaderLabelDirective, selector: "igx-tab-header-label,[igxTabHeaderLabel]" }, { kind: "directive", type: i1.IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { kind: "component", type: i1.IgxIconComponent, selector: "igx-icon", inputs: ["family", "name", "active"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i2.SlicePipe, name: "slice" }, { kind: "pipe", type: i3.SvgPipe, name: "svg" }] }); }
|
|
156
|
-
}
|
|
157
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: IgxContextMenuComponent, decorators: [{
|
|
158
|
-
type: Component,
|
|
159
|
-
args: [{ selector: 'igx-context-menu', template: "<span #analyticsBtn class=\"analytics-btn\">\r\n <button #btn igxIconButton=\"flat\" (click)=\"toggleTabMenu()\">\r\n <igx-icon #icon class=\"icon\" family=\"material\">insert_chart_outlined</igx-icon>\r\n </button>\r\n</span>\r\n<div #tabsMenu igxToggle class=\"toggle-content ig-scrollbar\">\r\n <!--NOTE: This component has been updated by Infragistics migration: v12.0.0\r\nPlease check your template whether all bindings/event handlers are correct.-->\r\n <igx-tabs tabsType=\"fixed\" [selectedIndex]=\"!this.textFormatters.length && chartTypes.length ? 1 : 0\">\r\n <igx-tab-item [disabled]=\"!textFormatters.length\">\r\n <igx-tab-header>\r\n <span igxTabHeaderLabel>Conditional Formatting</span>\r\n </igx-tab-header>\r\n <igx-tab-content>\r\n <igc-trial-watermark></igc-trial-watermark>\r\n <div class=\"tabs\">\r\n <span class=\"tab-option\">\r\n <span *ngFor=\"let condition of textFormatters\" class=\"action btn condition\"\r\n [ngClass]=\"{'selected--condition': condition === currentFormatter}\"\r\n (click)=\"formatCells(condition)\">\r\n <div class=\"imgSize\" [innerHTML]=\"conditionImages[condition.replace(' ', '')] | svg\">\r\n </div>\r\n <span class=\"name\">{{condition.replace('10', '10%')}}</span>\r\n </span>\r\n </span>\r\n <span class=\"clear action\"\r\n [ngClass]=\"{'disableButton': contextDirective.textFormatter ? !contextDirective.textFormatter.formatter : true }\"\r\n (click)=\"clearFormat()\">\r\n <div class=\"imgSize\" [innerHTML]=\"conditionImages['Clear'] | svg\">\r\n </div>\r\n <span class=\"btn name\">Clear All</span>\r\n </span>\r\n </div>\r\n </igx-tab-content>\r\n </igx-tab-item>\r\n <igx-tab-item [disabled]=\"!chartTypes.length\">\r\n <igx-tab-header>\r\n <span igxTabHeaderLabel>Create Chart</span>\r\n </igx-tab-header>\r\n <igx-tab-content>\r\n <igc-trial-watermark></igc-trial-watermark>\r\n <div class=\"tabs\">\r\n <span class=\"tab-option\">\r\n <span *ngFor=\"let chart of chartTypes | slice:0:4\" class=\"action btn chart\"\r\n [ngClass]=\"{'selected': chart === currentChartType}\" (mouseenter)=\"previewChart(chart)\"\r\n (mouseleave)=\"hidePreview()\" (click)=\"openDialog(chart)\">\r\n <span [innerHTML]=\"chartImages[chart] | svg\" class=\"imgSize\">\r\n </span>\r\n <span class=\"name\">{{chart}}</span>\r\n </span>\r\n </span>\r\n <span class=\"more-action chart\" [ngClass]=\"{'disableButton': !chartTypes.length}\"\r\n (click)=\"openDialog()\">\r\n <button class=\"more-btn more-icon\" igxIconButton=\"flat\" [style.--background]=\"'#EBEBEB'\"\r\n [style.--foreground]=\"'black'\">\r\n <igx-icon class=\"icon\" family=\"material\">more_horiz</igx-icon>\r\n </button>\r\n <span class=\"name btn\">More...</span>\r\n </span>\r\n </div>\r\n </igx-tab-content>\r\n </igx-tab-item>\r\n </igx-tabs>\r\n</div>\r\n<div igxToggle #chartPreviewDialog class=\"chart-preview\">\r\n <div class=\"chart-preview-title\">\r\n <h5>Preview Chart</h5>\r\n </div>\r\n <div class=\"chart-preview-area\">\r\n <ng-template #chartPreview></ng-template>\r\n </div>\r\n</div>", styles: [".analytics-btn,.analytics-btn [igxButton=flat],.analytics-btn .igx-button--flat{--shadow-color: var(--igx-button-shadow-color, transparent);--border-color: var(--igx-button-border-color, transparent);--hover-border-color: var(--igx-button-hover-border-color, transparent);--focus-border-color: var(--igx-button-focus-border-color, transparent);--focus-visible-border-color: var(--igx-button-focus-visible-border-color, transparent);--active-border-color: var(--igx-button-active-border-color, transparent);--disabled-border-color: var(--igx-button-disabled-border-color, transparent);--disabled-background: var(--igx-button-disabled-background, transparent);--disabled-foreground: var(--igx-button-disabled-foreground, hsl(from var(--ig-gray-500) h s l/1));--disabled-icon-color: var(--igx-button-disabled-icon-color, hsl(from var(--ig-gray-500) h s l/1));--size: var(--igx-button-size, max(var(--is-large, 1) * max(2.25rem, -1 * 2.25rem), var(--is-medium, 1) * max(1.875rem, -1 * 1.875rem), var(--is-small, 1) * max(1.5rem, -1 * 1.5rem)));--default-size: var(--igx-button-default-size, 3);--resting-elevation: var(--igx-button-resting-elevation, var(--ig-elevation-0));--hover-elevation: var(--igx-button-hover-elevation, var(--ig-elevation-0));--focus-elevation: var(--igx-button-focus-elevation, var(--ig-elevation-0));--active-elevation: var(--igx-button-active-elevation, var(--ig-elevation-0));--background: var(--igx-button-background, #335e3b);--focus-foreground: var(--igx-button-focus-foreground, white);--border-radius: var(--igx-button-border-radius, 0);--foreground: var(--igx-button-foreground, #fff);--icon-color: var(--igx-button-icon-color, #fff);--icon-color-hover: var(--igx-button-icon-color-hover, black);--hover-background: var(--igx-button-hover-background, #459a55);--hover-foreground: var(--igx-button-hover-foreground, black);--focus-background: var(--igx-button-focus-background, #396a42);--focus-visible-background: var(--igx-button-focus-visible-background, #396a42);--focus-hover-background: var(--igx-button-focus-hover-background, #396a42);--focus-hover-foreground: var(--igx-button-focus-hover-foreground, white);--focus-visible-foreground: var(--igx-button-focus-visible-foreground, white);--active-background: var(--igx-button-active-background, hsl(from var(--ig-secondary-500) h s l/.16));--active-foreground: var(--igx-button-active-foreground, hsl(from var(--ig-secondary-500) h s l/1));--resting-shadow: var(--igx-button-resting-shadow, var(--ig-elevation-0));--hover-shadow: var(--igx-button-hover-shadow, var(--ig-elevation-0));--focus-shadow: var(--igx-button-focus-shadow, var(--ig-elevation-0));--active-shadow: var(--igx-button-active-shadow, var(--ig-elevation-0));--theme: var(--igx-button-theme, material)}.analytics-btn,.analytics-btn [igxButton=outlined],.analytics-btn .igx-button--outlined{--shadow-color: var(--igx-button-shadow-color, transparent);--border-color: var(--igx-button-border-color, hsl(from var(--ig-secondary-500) h s l/1));--hover-border-color: var(--igx-button-hover-border-color, hsl(from var(--ig-secondary-500) h s l/1));--focus-border-color: var(--igx-button-focus-border-color, hsl(from var(--ig-secondary-500) h s l/1));--focus-visible-border-color: var(--igx-button-focus-visible-border-color, hsl(from var(--ig-secondary-500) h s l/1));--active-border-color: var(--igx-button-active-border-color, hsl(from var(--ig-secondary-500) h s l/1));--disabled-border-color: var(--igx-button-disabled-border-color, hsl(from var(--ig-gray-300) h s l/1));--disabled-background: var(--igx-button-disabled-background, transparent);--disabled-foreground: var(--igx-button-disabled-foreground, hsl(from var(--ig-gray-500) h s l/1));--disabled-icon-color: var(--igx-button-disabled-icon-color, hsl(from var(--ig-gray-500) h s l/1));--size: var(--igx-button-size, max(var(--is-large, 1) * max(2.25rem, -1 * 2.25rem), var(--is-medium, 1) * max(1.875rem, -1 * 1.875rem), var(--is-small, 1) * max(1.5rem, -1 * 1.5rem)));--default-size: var(--igx-button-default-size, 3);--resting-elevation: var(--igx-button-resting-elevation, var(--ig-elevation-0));--hover-elevation: var(--igx-button-hover-elevation, var(--ig-elevation-0));--focus-elevation: var(--igx-button-focus-elevation, var(--ig-elevation-0));--active-elevation: var(--igx-button-active-elevation, var(--ig-elevation-0));--background: var(--igx-button-background, #335e3b);--focus-foreground: var(--igx-button-focus-foreground, white);--border-radius: var(--igx-button-border-radius, 0);--foreground: var(--igx-button-foreground, #fff);--icon-color: var(--igx-button-icon-color, #fff);--icon-color-hover: var(--igx-button-icon-color-hover, black);--hover-background: var(--igx-button-hover-background, #459a55);--hover-foreground: var(--igx-button-hover-foreground, black);--focus-background: var(--igx-button-focus-background, #396a42);--focus-visible-background: var(--igx-button-focus-visible-background, #396a42);--focus-hover-background: var(--igx-button-focus-hover-background, #396a42);--focus-hover-foreground: var(--igx-button-focus-hover-foreground, white);--focus-visible-foreground: var(--igx-button-focus-visible-foreground, white);--active-background: var(--igx-button-active-background, hsl(from var(--ig-secondary-500) h s l/.16));--active-foreground: var(--igx-button-active-foreground, hsl(from var(--ig-secondary-500) h s l/1));--resting-shadow: var(--igx-button-resting-shadow, var(--ig-elevation-0));--hover-shadow: var(--igx-button-hover-shadow, var(--ig-elevation-0));--focus-shadow: var(--igx-button-focus-shadow, var(--ig-elevation-0));--active-shadow: var(--igx-button-active-shadow, var(--ig-elevation-0));--theme: var(--igx-button-theme, material)}.analytics-btn,.analytics-btn [igxButton=contained],.analytics-btn .igx-button--contained{--shadow-color: var(--igx-button-shadow-color, transparent);--border-color: var(--igx-button-border-color, transparent);--hover-border-color: var(--igx-button-hover-border-color, transparent);--focus-border-color: var(--igx-button-focus-border-color, transparent);--focus-visible-border-color: var(--igx-button-focus-visible-border-color, transparent);--active-border-color: var(--igx-button-active-border-color, transparent);--disabled-border-color: var(--igx-button-disabled-border-color, transparent);--disabled-background: var(--igx-button-disabled-background, hsl(from var(--ig-gray-100) h s l/1));--disabled-foreground: var(--igx-button-disabled-foreground, hsl(from var(--ig-gray-500) h s l/1));--disabled-icon-color: var(--igx-button-disabled-icon-color, hsl(from var(--ig-gray-500) h s l/1));--size: var(--igx-button-size, max(var(--is-large, 1) * max(2.25rem, -1 * 2.25rem), var(--is-medium, 1) * max(1.875rem, -1 * 1.875rem), var(--is-small, 1) * max(1.5rem, -1 * 1.5rem)));--default-size: var(--igx-button-default-size, 3);--resting-elevation: var(--igx-button-resting-elevation, var(--ig-elevation-2));--hover-elevation: var(--igx-button-hover-elevation, var(--ig-elevation-4));--focus-elevation: var(--igx-button-focus-elevation, var(--ig-elevation-8));--active-elevation: var(--igx-button-active-elevation, var(--ig-elevation-8));--background: var(--igx-button-background, #335e3b);--active-background: var(--igx-button-active-background, hsl(from var(--ig-secondary-300) h s l/1));--border-radius: var(--igx-button-border-radius, 0);--foreground: var(--igx-button-foreground, #fff);--icon-color: var(--igx-button-icon-color, #fff);--icon-color-hover: var(--igx-button-icon-color-hover, black);--hover-background: var(--igx-button-hover-background, #459a55);--hover-foreground: var(--igx-button-hover-foreground, black);--focus-background: var(--igx-button-focus-background, #396a42);--focus-foreground: var(--igx-button-focus-foreground, white);--focus-hover-background: var(--igx-button-focus-hover-background, #396a42);--focus-hover-foreground: var(--igx-button-focus-hover-foreground, white);--focus-visible-background: var(--igx-button-focus-visible-background, #396a42);--focus-visible-foreground: var(--igx-button-focus-visible-foreground, white);--active-foreground: var(--igx-button-active-foreground, color-mix(in oklch, var(--ig-secondary-300-contrast) 100%, transparent));--resting-shadow: var(--igx-button-resting-shadow, var(--ig-elevation-2));--hover-shadow: var(--igx-button-hover-shadow, var(--ig-elevation-4));--focus-shadow: var(--igx-button-focus-shadow, var(--ig-elevation-8));--active-shadow: var(--igx-button-active-shadow, var(--ig-elevation-8));--theme: var(--igx-button-theme, material)}.analytics-btn,.analytics-btn [igxButton=fab],.analytics-btn .igx-button--fab{--shadow-color: var(--igx-button-shadow-color, transparent);--border-color: var(--igx-button-border-color, transparent);--hover-border-color: var(--igx-button-hover-border-color, transparent);--focus-border-color: var(--igx-button-focus-border-color, transparent);--focus-visible-border-color: var(--igx-button-focus-visible-border-color, transparent);--active-border-color: var(--igx-button-active-border-color, transparent);--disabled-border-color: var(--igx-button-disabled-border-color, transparent);--disabled-background: var(--igx-button-disabled-background, hsl(from var(--ig-gray-100) h s l/1));--disabled-foreground: var(--igx-button-disabled-foreground, hsl(from var(--ig-gray-500) h s l/1));--disabled-icon-color: var(--igx-button-disabled-icon-color, hsl(from var(--ig-gray-500) h s l/1));--size: var(--igx-button-size, max(var(--is-large, 1) * max(3rem, -1 * 3rem), var(--is-medium, 1) * max(2.5rem, -1 * 2.5rem), var(--is-small, 1) * max(2rem, -1 * 2rem)));--default-size: var(--igx-button-default-size, 3);--resting-elevation: var(--igx-button-resting-elevation, var(--ig-elevation-6));--hover-elevation: var(--igx-button-hover-elevation, var(--ig-elevation-12));--focus-elevation: var(--igx-button-focus-elevation, var(--ig-elevation-12));--active-elevation: var(--igx-button-active-elevation, var(--ig-elevation-12));--background: var(--igx-button-background, #335e3b);--active-background: var(--igx-button-active-background, hsl(from var(--ig-secondary-300) h s l/1));--border-radius: var(--igx-button-border-radius, 0);--foreground: var(--igx-button-foreground, #fff);--icon-color: var(--igx-button-icon-color, #fff);--icon-color-hover: var(--igx-button-icon-color-hover, black);--hover-background: var(--igx-button-hover-background, #459a55);--hover-foreground: var(--igx-button-hover-foreground, black);--focus-background: var(--igx-button-focus-background, #396a42);--focus-foreground: var(--igx-button-focus-foreground, white);--focus-hover-background: var(--igx-button-focus-hover-background, #396a42);--focus-hover-foreground: var(--igx-button-focus-hover-foreground, white);--focus-visible-background: var(--igx-button-focus-visible-background, #396a42);--focus-visible-foreground: var(--igx-button-focus-visible-foreground, white);--active-foreground: var(--igx-button-active-foreground, color-mix(in oklch, var(--ig-secondary-300-contrast) 100%, transparent));--resting-shadow: var(--igx-button-resting-shadow, var(--ig-elevation-6));--hover-shadow: var(--igx-button-hover-shadow, var(--ig-elevation-12));--focus-shadow: var(--igx-button-focus-shadow, var(--ig-elevation-12));--active-shadow: var(--igx-button-active-shadow, var(--ig-elevation-12));--theme: var(--igx-button-theme, material)}.disableButton{opacity:.4;pointer-events:none}.clear,.more-action{display:flex;flex-flow:column;justify-content:center;border-left:1px solid #bdbdbd}.clear .btn,.clear .more-btn,.more-action .btn,.more-action .more-btn{width:68px;margin:0 0 7px;padding:0}.clear .more-btn,.more-action .more-btn{width:36px;height:36px;align-self:center;border-radius:20px}.clear .name,.more-action .name{font-size:.9rem;font-weight:400;text-align:center}.icon{pointer-events:none}.btn{display:inline-flex;flex-flow:column;align-items:center}.btn.condition{padding-right:16px}.btn.chart{padding-right:24px}.btn img,.btn span{pointer-events:none}.chart-preview{width:350px;height:300px;background-color:#fff;overflow:hidden}.chart-preview .chart-preview-title{margin:1rem;justify-content:center}.chart-preview .chart-preview-area{height:270px}::ng-deep .toggle-content{width:354px;max-width:358px;height:148px;background-color:#fff}::ng-deep .toggle-content,::ng-deep .toggle-content .ig-scrollbar{--sb-size: var(--ig-scrollbar-sb-size, 1rem);--sb-thumb-min-height: var(--ig-scrollbar-sb-thumb-min-height, 2rem);--sb-thumb-bg-color: var(--ig-scrollbar-sb-thumb-bg-color, hsl(from var(--ig-gray-400) h s l/1));--sb-thumb-bg-color-hover: var(--ig-scrollbar-sb-thumb-bg-color-hover, hsl(from var(--ig-gray-400) h s l/1));--sb-thumb-border-color: var(--ig-scrollbar-sb-thumb-border-color, transparent);--sb-thumb-border-size: var(--ig-scrollbar-sb-thumb-border-size, 0);--sb-thumb-border-radius: var(--ig-scrollbar-sb-thumb-border-radius, 0);--sb-track-bg-color: var(--ig-scrollbar-sb-track-bg-color, hsl(from var(--ig-gray-100) h s l/1));--sb-track-bg-color-hover: var(--ig-scrollbar-sb-track-bg-color-hover, hsl(from var(--ig-gray-100) h s l/1));--sb-track-border-color: var(--ig-scrollbar-sb-track-border-color, transparent);--sb-track-border-size: var(--ig-scrollbar-sb-track-border-size, 0);--sb-corner-bg: var(--ig-scrollbar-sb-corner-bg, hsl(from var(--ig-gray-100) h s l/1));--sb-corner-border-color: var(--ig-scrollbar-sb-corner-border-color, transparent);--sb-corner-border-size: var(--ig-scrollbar-sb-corner-border-size, 0);--theme: var(--ig-scrollbar-theme, material)}@-moz-document url-prefix(){}::ng-deep .toggle-content .tabs{display:flex!important;border:.2px solid;border-color:#d3d3d3}::ng-deep .toggle-content .tab-option{padding:.9rem;height:100px;width:358px;display:inline-flex;overflow-x:auto;overflow-y:hidden;white-space:nowrap;align-content:center}::ng-deep .toggle-content .tab-option .chartImgButton{width:48px;height:48px}::ng-deep .toggle-content .tab-option .imgSize,::ng-deep .toggle-content .clear.action .imgSize{width:36px;height:36px;align-self:center}::ng-deep .toggle-content .action{cursor:pointer;opacity:1}::ng-deep .toggle-content .action.selected{opacity:.62}::ng-deep .toggle-content .action.selected--condition{pointer-events:none;opacity:.62}\n"] }]
|
|
160
|
-
}], ctorParameters: () => [{ type: i1.IgxOverlayService }], propDecorators: { button: [{
|
|
161
|
-
type: ViewChild,
|
|
162
|
-
args: ['analyticsBtn']
|
|
163
|
-
}], tabsMenu: [{
|
|
164
|
-
type: ViewChild,
|
|
165
|
-
args: ['tabsMenu', { read: IgxToggleDirective }]
|
|
166
|
-
}], chartPreview: [{
|
|
167
|
-
type: ViewChild,
|
|
168
|
-
args: ['chartPreview', { read: ViewContainerRef }]
|
|
169
|
-
}], chartPreviewDialog: [{
|
|
170
|
-
type: ViewChild,
|
|
171
|
-
args: ['chartPreviewDialog', { read: IgxToggleDirective }]
|
|
172
|
-
}], tabs: [{
|
|
173
|
-
type: ViewChild,
|
|
174
|
-
args: [IgxTabsComponent]
|
|
175
|
-
}] } });
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXItZXh0cmFzL3NyYy9saWIvY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyLWV4dHJhcy9zcmMvbGliL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsU0FBUyxFQUFFLGdCQUFnQixFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBMEIsb0JBQW9CLEVBQUUsbUJBQW1CLEVBRW5ELGtCQUFrQixFQUE4QixpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBbUIsbUJBQW1CLEVBQW9CLE1BQU0sa0JBQWtCLENBQUM7QUFDN0wsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxLQUFLLE1BQU0sTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssVUFBVSxNQUFNLHlCQUF5QixDQUFDO0FBRXRELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7QUFPekUsTUFBTSxPQUFPLHVCQUF1QjtJQStDaEMsWUFBb0IsY0FBaUM7UUFBakMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBdEM5QyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBR25CLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1FBRTlCLG1CQUFjLEdBQUcsRUFB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QUFnQixtSEFDVixrQkFBa0Isb0RBQ2hELGdCQUFnQixnREN2Qi9CLCsrSEF1RU07OzRGRHRETyx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0ksa0JBQWtCO3NGQU1NLE1BQU07c0JBQXZDLFNBQVM7dUJBQUMsY0FBYztnQkFDbUMsUUFBUTtzQkFBbkUsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7Z0JBQ1csWUFBWTtzQkFBekUsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ2lCLGtCQUFrQjtzQkFBdkYsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRTtnQkFDekIsSUFBSTtzQkFBdkMsU0FBUzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic29sdXRlU2Nyb2xsU3RyYXRlZ3ksIEF1dG9Qb3NpdGlvblN0cmF0ZWd5LCBIb3Jpem9udGFsQWxpZ25tZW50LFxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcclxuICAgIElneE92ZXJsYXlTZXJ2aWNlLCBJZ3hUb2dnbGVEaXJlY3RpdmUsIE92ZXJsYXlDYW5jZWxhYmxlRXZlbnRBcmdzLCBWZXJ0aWNhbEFsaWdubWVudCwgSWd4VGFic0NvbXBvbmVudCwgT3ZlcmxheVNldHRpbmdzLCBDbG9zZVNjcm9sbFN0cmF0ZWd5LCBPdmVybGF5RXZlbnRBcmdzIH0gZnJvbSAnaWduaXRldWktYW5ndWxhcic7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBJZ3hDaGFydE1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NoYXJ0LWRpYWxvZy9jaGFydC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0ICogYXMgY2hhcnRzIGZyb20gJy4uLy4uL2ltYWdlcy9jaGFydHMnO1xyXG5pbXBvcnQgKiBhcyBjb25kaXRpb25zIGZyb20gJy4uLy4uL2ltYWdlcy9jb25kaXRpb25zJztcclxuaW1wb3J0IHsgSWd4Q29udGV4dE1lbnVEaXJlY3RpdmUgfSBmcm9tICcuL2lneC1jb250ZXh0LW1lbnUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ0hBUlRfVFlQRSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvY2hhcnQtaW50ZWdyYXRpb24vY2hhcnQtdHlwZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2lneC1jb250ZXh0LW1lbnUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbnRleHQtbWVudS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSWd4Q29udGV4dE1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2FuYWx5dGljc0J0bicpIHB1YmxpYyBidXR0b246IEVsZW1lbnRSZWY7XHJcbiAgICBAVmlld0NoaWxkKCd0YWJzTWVudScsIHsgcmVhZDogSWd4VG9nZ2xlRGlyZWN0aXZlIH0pIHB1YmxpYyB0YWJzTWVudTogSWd4VG9nZ2xlRGlyZWN0aXZlO1xyXG4gICAgQFZpZXdDaGlsZCgnY2hhcnRQcmV2aWV3JywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIHB1YmxpYyBjaGFydFByZXZpZXc6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgICBAVmlld0NoaWxkKCdjaGFydFByZXZpZXdEaWFsb2cnLCB7IHJlYWQ6IElneFRvZ2dsZURpcmVjdGl2ZSB9KSBwdWJsaWMgY2hhcnRQcmV2aWV3RGlhbG9nOiBJZ3hUb2dnbGVEaXJlY3RpdmU7XHJcbiAgICBAVmlld0NoaWxkKElneFRhYnNDb21wb25lbnQpIHB1YmxpYyB0YWJzOiBJZ3hUYWJzQ29tcG9uZW50O1xyXG5cclxuICAgIHB1YmxpYyBjb250ZXh0RGlyZWN0aXZlOiBJZ3hDb250ZXh0TWVudURpcmVjdGl2ZTtcclxuICAgIHB1YmxpYyBjaGFydFR5cGVzID0gW107XHJcbiAgICBwdWJsaWMgdGV4dEZvcm1hdHRlcnMgPSBbXTtcclxuICAgIHB1YmxpYyBjdXJyZW50Q2hhcnRUeXBlO1xyXG4gICAgcHVibGljIGN1cnJlbnRGb3JtYXR0ZXI7XHJcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gICAgcHJpdmF0ZSBfZGlhbG9nSWQ7XHJcbiAgICBwcml2YXRlIF9jaGFydERpYWxvZ09TID0geyBjbG9zZU9uT3V0c2lkZUNsaWNrOiBmYWxzZSB9O1xyXG5cclxuICAgIHByaXZhdGUgX3RhYnNNZW51T3ZlcmxheVNldHRpbmdzOiBPdmVybGF5U2V0dGluZ3MgPSB7XHJcbiAgICAgICAgY2xvc2VPbk91dHNpZGVDbGljazogZmFsc2UsXHJcbiAgICAgICAgbW9kYWw6IGZhbHNlLFxyXG4gICAgICAgIG91dGxldDogbnVsbCxcclxuICAgICAgICBzY3JvbGxTdHJhdGVneTogbmV3IENsb3NlU2Nyb2xsU3RyYXRlZ3koKSxcclxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiBuZXcgQXV0b1Bvc2l0aW9uU3RyYXRlZ3koe1xyXG4gICAgICAgICAgICBob3Jpem9udGFsRGlyZWN0aW9uOiBIb3Jpem9udGFsQWxpZ25tZW50LkNlbnRlcixcclxuICAgICAgICAgICAgaG9yaXpvbnRhbFN0YXJ0UG9pbnQ6IEhvcml6b250YWxBbGlnbm1lbnQuQ2VudGVyLFxyXG4gICAgICAgICAgICB2ZXJ0aWNhbFN0YXJ0UG9pbnQ6IFZlcnRpY2FsQWxpZ25tZW50LkJvdHRvbSxcclxuICAgICAgICAgICAgdmVydGljYWxEaXJlY3Rpb246IFZlcnRpY2FsQWxpZ25tZW50LkJvdHRvbSxcclxuICAgICAgICAgICAgb3BlbkFuaW1hdGlvbjogbnVsbCxcclxuICAgICAgICAgICAgY2xvc2VBbmltYXRpb246IG51bGxcclxuICAgICAgICB9KVxyXG4gICAgfTtcclxuICAgIHByaXZhdGUgX2NoYXJ0UHJldmlld0RpYWxvZ092ZXJsYXlTZXR0aW5nczogT3ZlcmxheVNldHRpbmdzID0ge1xyXG4gICAgICAgIGNsb3NlT25PdXRzaWRlQ2xpY2s6IGZhbHNlLFxyXG4gICAgICAgIG1vZGFsOiBmYWxzZSxcclxuICAgICAgICBvdXRsZXQ6IG51bGwsXHJcbiAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IG5ldyBDbG9zZVNjcm9sbFN0cmF0ZWd5KCksXHJcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneTogbmV3IEF1dG9Qb3NpdGlvblN0cmF0ZWd5KHtcclxuICAgICAgICAgICAgaG9yaXpvbnRhbERpcmVjdGlvbjogSG9yaXpvbnRhbEFsaWdubWVudC5DZW50ZXIsXHJcbiAgICAgICAgICAgIGhvcml6b250YWxTdGFydFBvaW50OiBIb3Jpem9udGFsQWxpZ25tZW50LkNlbnRlcixcclxuICAgICAgICAgICAgdmVydGljYWxTdGFydFBvaW50OiBWZXJ0aWNhbEFsaWdubWVudC5Ub3AsXHJcbiAgICAgICAgICAgIHZlcnRpY2FsRGlyZWN0aW9uOiBWZXJ0aWNhbEFsaWdubWVudC5Ub3AsXHJcbiAgICAgICAgICAgIG9wZW5BbmltYXRpb246IG51bGwsXHJcbiAgICAgICAgICAgIGNsb3NlQW5pbWF0aW9uOiBudWxsXHJcbiAgICAgICAgfSlcclxuICAgIH07XHJcbiAgICBwdWJsaWMgY2hhcnRJbWFnZXM7XHJcbiAgICBwdWJsaWMgY29uZGl0aW9uSW1hZ2VzO1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBvdmVybGF5U2VydmljZTogSWd4T3ZlcmxheVNlcnZpY2UpIHtcclxuICAgICAgICB0aGlzLmNoYXJ0SW1hZ2VzID0gY2hhcnRzO1xyXG4gICAgICAgIHRoaXMuY29uZGl0aW9uSW1hZ2VzID0gY29uZGl0aW9ucztcclxuICAgICB9XHJcblxyXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICB0aGlzLmNoYXJ0VHlwZXMgPSB0aGlzLmNvbnRleHREaXJlY3RpdmUuY2hhcnRzO1xyXG4gICAgICAgIHRoaXMudGV4dEZvcm1hdHRlcnMgPSB0aGlzLmNvbnRleHREaXJlY3RpdmUuZm9ybWF0dGVycztcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dERpcmVjdGl2ZS5jaGFydHNEaXJlY3RpdmUpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250ZXh0RGlyZWN0aXZlLmNoYXJ0c0RpcmVjdGl2ZS5vbkNoYXJ0VHlwZXNEZXRlcm1pbmVkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoYXJncykgPT4gdGhpcy5jaGFydFR5cGVzID0gYXJncy5jaGFydHNGb3JDcmVhdGlvbik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5jb250ZXh0RGlyZWN0aXZlLnRleHRGb3JtYXR0ZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250ZXh0RGlyZWN0aXZlLnRleHRGb3JtYXR0ZXIub25Gb3JtYXR0ZXJzUmVhZHkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKG5hbWVzID0+IHRoaXMudGV4dEZvcm1hdHRlcnMgPSBuYW1lcyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNvbnRleHREaXJlY3RpdmUub25CdXR0b25DbG9zZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7IGlmICh0aGlzLnRhYnNNZW51ICYmICF0aGlzLnRhYnNNZW51LmNvbGxhcHNlZCkgeyB0aGlzLnRhYnNNZW51LmNsb3NlKCk7IH0gfSk7XHJcblxyXG4gICAgICAgIHRoaXMuY29udGV4dERpcmVjdGl2ZS5ncmlkUmVzaXplTm90aWZ5LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMudGFic01lbnUuY29sbGFwc2VkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFic01lbnUuY2xvc2UoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMudGFic01lbnUub3BlbmluZy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgaWYgKHRoaXMudGFicy5zZWxlY3RlZEl0ZW0uZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICAgZGVidWdnZXI7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zdCBpID0gdGhpcy50YWJzLml0ZW1zLmZpbmQodGFiID0+ICF0YWIuZGlzYWJsZWQpPy5pbmRleCB8fCAwO1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy50YWJzLnNlbGVjdFRhYih0aGlzLnRhYnMudGFicy50b0FycmF5KClbaV0sIHRydWUpO1xyXG4gICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5vdmVybGF5U2VydmljZS5vcGVuaW5nLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChhcmdzOiBPdmVybGF5Q2FuY2VsYWJsZUV2ZW50QXJncykgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGFyZ3MuY29tcG9uZW50UmVmKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5zdGFuY2UgPSAoYXJncy5jb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgSWd4Q2hhcnRNZW51Q29tcG9uZW50KTtcclxuICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS53aWR0aCA9IHRoaXMuY29udGV4dERpcmVjdGl2ZS5ncmlkLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XHJcbiAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UuaGVpZ2h0ID0gdGhpcy5jb250ZXh0RGlyZWN0aXZlLmdyaWQubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UuY3VycmVudENoYXJ0VHlwZSA9IHRoaXMuY3VycmVudENoYXJ0VHlwZTtcclxuICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS5hbGxDaGFydHMgPSB0aGlzLmNoYXJ0VHlwZXM7XHJcbiAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UuY2hhcnREaXJlY3RpdmUgPSB0aGlzLmNvbnRleHREaXJlY3RpdmUuY2hhcnRzRGlyZWN0aXZlO1xyXG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLm9uQ2xvc2U/LnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VEaWFsb2coKVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLmNoYXJ0RGlhbG9nUmVzaXplTm90aWZ5Py5zdWJzY3JpYmUocmVzaXplZENvbnRlbnRBcmdzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBhIHRlbXBvcmFyeSBmaXgsIHdoaWNoIHNob3VsZCBiZSByZW1vdmVkIHJpZ2h0IGFmdGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBvdmVybGF5IHNlcnZpY2UgaXMgY2FwYWJsZSBvZiBub3RpZnlpbmcgdGhlIG92ZXJsYXkgY29udGVudCBlbGVtZW50c1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IHRoZWlyIGNoaWxkcmVuIGhhcyBiZWVuIHJlc2l6ZWQuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHRoaXMub3ZlcmxheVNlcnZpY2UgYXMgYW55KS5fb3ZlcmxheUVsZW1lbnQuY2hpbGRyZW5bMV0pe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLm92ZXJsYXlTZXJ2aWNlIGFzIGFueSkuX292ZXJsYXlFbGVtZW50LmNoaWxkcmVuWzFdLmNoaWxkcmVuWzBdLnN0eWxlLndpZHRoID0gcmVzaXplZENvbnRlbnRBcmdzWzBdLmNvbnRlbnRSZWN0LndpZHRoICsgJ3B4JztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLmNsb3NpbmcucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoYXJnczogT3ZlcmxheUV2ZW50QXJncykgPT4ge1xyXG4gICAgICAgICAgICBpZiAoYXJncy5jb21wb25lbnRSZWYgJiYgYXJncy5jb21wb25lbnRSZWYuaW5zdGFuY2UgaW5zdGFuY2VvZiBJZ3hDaGFydE1lbnVDb21wb25lbnQpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9kaWFsb2dJZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFic01lbnUub3Blbih0aGlzLl90YWJzTWVudU92ZXJsYXlTZXR0aW5ncylcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b2dnbGVUYWJNZW51KCkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudENoYXJ0VHlwZSA9IHRoaXMuY3VycmVudENoYXJ0VHlwZSA/IHRoaXMuY3VycmVudENoYXJ0VHlwZSA6IENIQVJUX1RZUEUuQ09MVU1OX0dST1VQRUQ7XHJcbiAgICAgICAgdGhpcy5fdGFic01lbnVPdmVybGF5U2V0dGluZ3MudGFyZ2V0ID0gdGhpcy5idXR0b24ubmF0aXZlRWxlbWVudDtcclxuICAgICAgICB0aGlzLnRhYnNNZW51LmNvbGxhcHNlZCA/IHRoaXMudGFic01lbnUub3Blbih0aGlzLl90YWJzTWVudU92ZXJsYXlTZXR0aW5ncykgOiB0aGlzLnRhYnNNZW51LmNsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZvcm1hdENlbGxzKGNvbmRpdGlvbikge1xyXG4gICAgICAgIHRoaXMuY3VycmVudEZvcm1hdHRlciA9IGNvbmRpdGlvbjtcclxuICAgICAgICB0aGlzLmNvbnRleHREaXJlY3RpdmUudGV4dEZvcm1hdHRlci5mb3JtYXRDZWxscyhjb25kaXRpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjbGVhckZvcm1hdCgpIHtcclxuICAgICAgICB0aGlzLmNvbnRleHREaXJlY3RpdmUudGV4dEZvcm1hdHRlci5jbGVhckZvcm1hdHRpbmcoKTtcclxuICAgICAgICB0aGlzLmN1cnJlbnRGb3JtYXR0ZXIgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHByZXZpZXdDaGFydChjdXJyZW50Q2hhcnRUeXBlKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50Q2hhcnRUeXBlID0gY3VycmVudENoYXJ0VHlwZTtcclxuICAgICAgICB0aGlzLmNoYXJ0UHJldmlldy5jbGVhcigpO1xyXG4gICAgICAgIHRoaXMuY29udGV4dERpcmVjdGl2ZS5jaGFydHNEaXJlY3RpdmUuY2hhcnRGYWN0b3J5KGN1cnJlbnRDaGFydFR5cGUsIHRoaXMuY2hhcnRQcmV2aWV3KTtcclxuICAgICAgICB0aGlzLl9jaGFydFByZXZpZXdEaWFsb2dPdmVybGF5U2V0dGluZ3MudGFyZ2V0ID0gdGhpcy50YWJzTWVudS5lbGVtZW50O1xyXG4gICAgICAgIHRoaXMuY2hhcnRQcmV2aWV3RGlhbG9nLm9wZW4odGhpcy5fY2hhcnRQcmV2aWV3RGlhbG9nT3ZlcmxheVNldHRpbmdzKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGlkZVByZXZpZXcoKSB7XHJcbiAgICAgICAgdGhpcy5jaGFydFByZXZpZXdEaWFsb2cuY2xvc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb3BlbkRpYWxvZyh0eXBlPzogQ0hBUlRfVFlQRSkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudENoYXJ0VHlwZSA9IHR5cGUgPyB0eXBlIDogdGhpcy5jdXJyZW50Q2hhcnRUeXBlID8gdGhpcy5jdXJyZW50Q2hhcnRUeXBlIDogQ0hBUlRfVFlQRS5DT0xVTU5fR1JPVVBFRDtcclxuICAgICAgICB0aGlzLl9kaWFsb2dJZCA9IHRoaXMuX2RpYWxvZ0lkID8gdGhpcy5fZGlhbG9nSWQgOlxyXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLmF0dGFjaChJZ3hDaGFydE1lbnVDb21wb25lbnQsIHRoaXMuX2NoYXJ0RGlhbG9nT1MpO1xyXG4gICAgICAgIHRoaXMudGFic01lbnUuY2xvc2UoKTtcclxuICAgICAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLnNob3codGhpcy5fZGlhbG9nSWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjbG9zZURpYWxvZygpIHtcclxuICAgICAgICBjb25zdCBpbmZvID0gdGhpcy5vdmVybGF5U2VydmljZS5nZXRPdmVybGF5QnlJZCh0aGlzLl9kaWFsb2dJZCk7XHJcbiAgICAgICAgaWYgKGluZm8pIHtcclxuICAgICAgICAgICAgdGhpcy5vdmVybGF5U2VydmljZS5oaWRlKHRoaXMuX2RpYWxvZ0lkKTtcclxuICAgICAgICAgICAgdGhpcy5vdmVybGF5U2VydmljZS5kZXRhY2godGhpcy5fZGlhbG9nSWQpO1xyXG4gICAgICAgICAgICB0aGlzLl9kaWFsb2dJZCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiPHNwYW4gI2FuYWx5dGljc0J0biBjbGFzcz1cImFuYWx5dGljcy1idG5cIj5cclxuICAgIDxidXR0b24gI2J0biBpZ3hJY29uQnV0dG9uPVwiZmxhdFwiIChjbGljayk9XCJ0b2dnbGVUYWJNZW51KClcIj5cclxuICAgICAgICA8aWd4LWljb24gI2ljb24gY2xhc3M9XCJpY29uXCIgZmFtaWx5PVwibWF0ZXJpYWxcIj5pbnNlcnRfY2hhcnRfb3V0bGluZWQ8L2lneC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbjwvc3Bhbj5cclxuPGRpdiAjdGFic01lbnUgaWd4VG9nZ2xlIGNsYXNzPVwidG9nZ2xlLWNvbnRlbnQgaWctc2Nyb2xsYmFyXCI+XHJcbiAgICA8IS0tTk9URTogVGhpcyBjb21wb25lbnQgaGFzIGJlZW4gdXBkYXRlZCBieSBJbmZyYWdpc3RpY3MgbWlncmF0aW9uOiB2MTIuMC4wXHJcblBsZWFzZSBjaGVjayB5b3VyIHRlbXBsYXRlIHdoZXRoZXIgYWxsIGJpbmRpbmdzL2V2ZW50IGhhbmRsZXJzIGFyZSBjb3JyZWN0Li0tPlxyXG4gICAgPGlneC10YWJzIHRhYnNUeXBlPVwiZml4ZWRcIiBbc2VsZWN0ZWRJbmRleF09XCIhdGhpcy50ZXh0Rm9ybWF0dGVycy5sZW5ndGggJiYgY2hhcnRUeXBlcy5sZW5ndGggPyAxIDogMFwiPlxyXG4gICAgICAgIDxpZ3gtdGFiLWl0ZW0gW2Rpc2FibGVkXT1cIiF0ZXh0Rm9ybWF0dGVycy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgPGlneC10YWItaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gaWd4VGFiSGVhZGVyTGFiZWw+Q29uZGl0aW9uYWwgRm9ybWF0dGluZzwvc3Bhbj5cclxuICAgICAgICAgICAgPC9pZ3gtdGFiLWhlYWRlcj5cclxuICAgICAgICAgICAgPGlneC10YWItY29udGVudD5cclxuICAgICAgICAgICAgICAgIDxpZ2MtdHJpYWwtd2F0ZXJtYXJrPjwvaWdjLXRyaWFsLXdhdGVybWFyaz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWItb3B0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBjb25kaXRpb24gb2YgdGV4dEZvcm1hdHRlcnNcIiBjbGFzcz1cImFjdGlvbiBidG4gY29uZGl0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWQtLWNvbmRpdGlvbic6IGNvbmRpdGlvbiA9PT0gY3VycmVudEZvcm1hdHRlcn1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImZvcm1hdENlbGxzKGNvbmRpdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWdTaXplXCIgW2lubmVySFRNTF09XCJjb25kaXRpb25JbWFnZXNbY29uZGl0aW9uLnJlcGxhY2UoJyAnLCAnJyldIHwgc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmFtZVwiPnt7Y29uZGl0aW9uLnJlcGxhY2UoJzEwJywgJzEwJScpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjbGVhciBhY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Rpc2FibGVCdXR0b24nOiBjb250ZXh0RGlyZWN0aXZlLnRleHRGb3JtYXR0ZXIgPyAhY29udGV4dERpcmVjdGl2ZS50ZXh0Rm9ybWF0dGVyLmZvcm1hdHRlciA6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGVhckZvcm1hdCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWdTaXplXCIgW2lubmVySFRNTF09XCJjb25kaXRpb25JbWFnZXNbJ0NsZWFyJ10gfCBzdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnRuIG5hbWVcIj5DbGVhciBBbGw8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvaWd4LXRhYi1jb250ZW50PlxyXG4gICAgICAgIDwvaWd4LXRhYi1pdGVtPlxyXG4gICAgICAgIDxpZ3gtdGFiLWl0ZW0gW2Rpc2FibGVkXT1cIiFjaGFydFR5cGVzLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICA8aWd4LXRhYi1oZWFkZXI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBpZ3hUYWJIZWFkZXJMYWJlbD5DcmVhdGUgQ2hhcnQ8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvaWd4LXRhYi1oZWFkZXI+XHJcbiAgICAgICAgICAgIDxpZ3gtdGFiLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8aWdjLXRyaWFsLXdhdGVybWFyaz48L2lnYy10cmlhbC13YXRlcm1hcms+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFic1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFiLW9wdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgY2hhcnQgb2YgY2hhcnRUeXBlcyB8IHNsaWNlOjA6NFwiIGNsYXNzPVwiYWN0aW9uIGJ0biBjaGFydFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3NlbGVjdGVkJzogY2hhcnQgPT09IGN1cnJlbnRDaGFydFR5cGV9XCIgKG1vdXNlZW50ZXIpPVwicHJldmlld0NoYXJ0KGNoYXJ0KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJoaWRlUHJldmlldygpXCIgKGNsaWNrKT1cIm9wZW5EaWFsb2coY2hhcnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImNoYXJ0SW1hZ2VzW2NoYXJ0XSB8IHN2Z1wiIGNsYXNzPVwiaW1nU2l6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuYW1lXCI+e3tjaGFydH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibW9yZS1hY3Rpb24gY2hhcnRcIiBbbmdDbGFzc109XCJ7J2Rpc2FibGVCdXR0b24nOiAhY2hhcnRUeXBlcy5sZW5ndGh9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5EaWFsb2coKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibW9yZS1idG4gbW9yZS1pY29uXCIgaWd4SWNvbkJ1dHRvbj1cImZsYXRcIiBbc3R5bGUuLS1iYWNrZ3JvdW5kXT1cIicjRUJFQkVCJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuLS1mb3JlZ3JvdW5kXT1cIidibGFjaydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpZ3gtaWNvbiBjbGFzcz1cImljb25cIiBmYW1pbHk9XCJtYXRlcmlhbFwiPm1vcmVfaG9yaXo8L2lneC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuYW1lIGJ0blwiPk1vcmUuLi48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvaWd4LXRhYi1jb250ZW50PlxyXG4gICAgICAgIDwvaWd4LXRhYi1pdGVtPlxyXG4gICAgPC9pZ3gtdGFicz5cclxuPC9kaXY+XHJcbjxkaXYgaWd4VG9nZ2xlICNjaGFydFByZXZpZXdEaWFsb2cgY2xhc3M9XCJjaGFydC1wcmV2aWV3XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2hhcnQtcHJldmlldy10aXRsZVwiPlxyXG4gICAgICAgIDxoNT5QcmV2aWV3IENoYXJ0PC9oNT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNoYXJ0LXByZXZpZXctYXJlYVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY2hhcnRQcmV2aWV3PjwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|