coer-elements 0.0.29 → 0.0.31

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. package/components/lib/coer-accordion/coer-accordion.component.d.ts +18 -0
  2. package/components/lib/coer-button/coer-button.component.d.ts +1 -1
  3. package/components/lib/coer-form/coer-form.component.d.ts +3 -1
  4. package/components/lib/coer-numberbox/coer-numberbox.component.d.ts +1 -1
  5. package/components/lib/coer-textarea/coer-textarea.component.d.ts +1 -1
  6. package/components/lib/coer-textbox/coer-textbox.component.d.ts +1 -1
  7. package/components/lib/components.module.d.ts +34 -33
  8. package/components/public-api.d.ts +1 -1
  9. package/esm2022/components/lib/coer-accordion/coer-accordion.component.mjs +53 -0
  10. package/esm2022/components/lib/coer-button/coer-button.component.mjs +11 -5
  11. package/esm2022/components/lib/coer-checkbox/coer-checkbox.component.mjs +2 -2
  12. package/esm2022/components/lib/coer-filebox/coer-filebox.component.mjs +3 -3
  13. package/esm2022/components/lib/coer-form/coer-form.component.mjs +9 -3
  14. package/esm2022/components/lib/coer-grid/coer-grid.component.mjs +3 -3
  15. package/esm2022/components/lib/coer-modal/coer-modal.component.mjs +1 -1
  16. package/esm2022/components/lib/coer-numberbox/coer-numberbox.component.mjs +2 -2
  17. package/esm2022/components/lib/coer-page-title/coer-page-title.component.mjs +2 -2
  18. package/esm2022/components/lib/coer-selectbox/coer-selectbox.component.mjs +2 -2
  19. package/esm2022/components/lib/coer-switch/coer-switch.component.mjs +2 -2
  20. package/esm2022/components/lib/coer-tab/coer-tab.component.mjs +2 -2
  21. package/esm2022/components/lib/coer-textarea/coer-textarea.component.mjs +2 -2
  22. package/esm2022/components/lib/coer-textbox/coer-textbox.component.mjs +2 -2
  23. package/esm2022/components/lib/components.module.mjs +8 -3
  24. package/esm2022/components/public-api.mjs +2 -2
  25. package/esm2022/tools/lib/coer-alert/coer-alert.component.mjs +8 -7
  26. package/esm2022/tools/lib/coer-grid.templates.mjs +34 -0
  27. package/esm2022/tools/lib/colors.class.mjs +68 -0
  28. package/esm2022/tools/lib/page.class.mjs +7 -1
  29. package/esm2022/tools/lib/service.class.mjs +2 -2
  30. package/esm2022/tools/public-api.mjs +3 -1
  31. package/fesm2022/coer-elements-components.mjs +104 -69
  32. package/fesm2022/coer-elements-components.mjs.map +1 -1
  33. package/fesm2022/coer-elements-tools.mjs +115 -8
  34. package/fesm2022/coer-elements-tools.mjs.map +1 -1
  35. package/package.json +1 -1
  36. package/styles/angular-material.scss +1 -0
  37. package/styles/bootstrap.scss +2 -7
  38. package/styles/coer-elements.css +314 -6
  39. package/styles/colors.scss +2 -0
  40. package/styles/containers.scss +2 -0
  41. package/{components/lib/coer-grid → tools/lib}/coer-grid.templates.d.ts +2 -0
  42. package/tools/lib/colors.class.d.ts +21 -0
  43. package/tools/lib/page.class.d.ts +4 -0
  44. package/tools/public-api.d.ts +2 -0
  45. package/esm2022/components/lib/coer-grid/coer-grid.templates.mjs +0 -30
@@ -22,6 +22,26 @@ input[type=file] {
22
22
  }
23
23
 
24
24
  /********** COER styles **********/
25
+ mat-expansion-panel.coer-accordion {
26
+ overflow: visible !important;
27
+ }
28
+ mat-expansion-panel.coer-accordion mat-expansion-panel-header {
29
+ height: 35px !important;
30
+ background-color: whitesmoke !important;
31
+ padding-left: 12px !important;
32
+ }
33
+ mat-expansion-panel.coer-accordion mat-expansion-panel-header span {
34
+ font-size: 16px !important;
35
+ }
36
+ mat-expansion-panel.coer-accordion mat-expansion-panel-header mat-panel-title {
37
+ display: flex;
38
+ align-items: center;
39
+ gap: 5px;
40
+ }
41
+ mat-expansion-panel.coer-accordion div.mat-expansion-panel-body {
42
+ padding: 0px !important;
43
+ }
44
+
25
45
  mat-drawer-container {
26
46
  height: calc(100vh - 45px) !important;
27
47
  }
@@ -194,6 +214,7 @@ mat-nav-list.coer-menu-option mat-list-item:hover {
194
214
  --white: #f5f5f5;
195
215
  --black: #252525;
196
216
  --orange: #fd6031;
217
+ --purple: #a615bc;
197
218
  }
198
219
 
199
220
  .text-blue {
@@ -381,6 +402,7 @@ div.coer-button {
381
402
  }
382
403
  div.coer-button a {
383
404
  display: inline-block !important;
405
+ height: fit-content !important;
384
406
  }
385
407
  div.coer-button a.animate__disabled {
386
408
  animation-duration: 0s !important;
@@ -549,6 +571,7 @@ div.coer-text-box * {
549
571
  --white: #f5f5f5;
550
572
  --black: #252525;
551
573
  --orange: #fd6031;
574
+ --purple: #a615bc;
552
575
  }
553
576
  div.coer-text-box .text-blue {
554
577
  color: #0d6efd !important;
@@ -801,6 +824,7 @@ div.coer-textarea * {
801
824
  --white: #f5f5f5;
802
825
  --black: #252525;
803
826
  --orange: #fd6031;
827
+ --purple: #a615bc;
804
828
  }
805
829
  div.coer-textarea .text-blue {
806
830
  color: #0d6efd !important;
@@ -1035,6 +1059,7 @@ div.coer-select-box * {
1035
1059
  --white: #f5f5f5;
1036
1060
  --black: #252525;
1037
1061
  --orange: #fd6031;
1062
+ --purple: #a615bc;
1038
1063
  }
1039
1064
  div.coer-select-box .text-blue {
1040
1065
  color: #0d6efd !important;
@@ -1331,6 +1356,7 @@ div.coer-number-box * {
1331
1356
  --white: #f5f5f5;
1332
1357
  --black: #252525;
1333
1358
  --orange: #fd6031;
1359
+ --purple: #a615bc;
1334
1360
  }
1335
1361
  div.coer-number-box .text-blue {
1336
1362
  color: #0d6efd !important;
@@ -1591,6 +1617,7 @@ div.coer-switch * {
1591
1617
  --white: #f5f5f5;
1592
1618
  --black: #252525;
1593
1619
  --orange: #fd6031;
1620
+ --purple: #a615bc;
1594
1621
  }
1595
1622
  div.coer-switch .text-blue {
1596
1623
  color: #0d6efd !important;
@@ -1769,6 +1796,7 @@ div.coer-checkbox * {
1769
1796
  --white: #f5f5f5;
1770
1797
  --black: #252525;
1771
1798
  --orange: #fd6031;
1799
+ --purple: #a615bc;
1772
1800
  }
1773
1801
  div.coer-checkbox .text-blue {
1774
1802
  color: #0d6efd !important;
@@ -1972,6 +2000,7 @@ div.coer-tab * {
1972
2000
  --white: #f5f5f5;
1973
2001
  --black: #252525;
1974
2002
  --orange: #fd6031;
2003
+ --purple: #a615bc;
1975
2004
  }
1976
2005
  div.coer-tab .text-blue {
1977
2006
  color: #0d6efd !important;
@@ -2148,12 +2177,6 @@ div.coer-tab mat-tab-group div.mat-mdc-tab-body-wrapper mat-tab-body div.mat-mdc
2148
2177
  word-break: break-word;
2149
2178
  }
2150
2179
 
2151
- .invisible {
2152
- visibility: hidden !important;
2153
- width: 0px !important;
2154
- height: 0px !important;
2155
- }
2156
-
2157
2180
  header.coer-page-title {
2158
2181
  margin: 15px 30px 0px 30px;
2159
2182
  }
@@ -2166,6 +2189,7 @@ header.coer-page-title * {
2166
2189
  --white: #f5f5f5;
2167
2190
  --black: #252525;
2168
2191
  --orange: #fd6031;
2192
+ --purple: #a615bc;
2169
2193
  }
2170
2194
  header.coer-page-title .text-blue {
2171
2195
  color: #0d6efd !important;
@@ -2355,6 +2379,7 @@ div.coer-grid * {
2355
2379
  --white: #f5f5f5;
2356
2380
  --black: #252525;
2357
2381
  --orange: #fd6031;
2382
+ --purple: #a615bc;
2358
2383
  }
2359
2384
  div.coer-grid .text-blue {
2360
2385
  color: #0d6efd !important;
@@ -2722,6 +2747,282 @@ div.modal-content {
2722
2747
  --white: #f5f5f5;
2723
2748
  --black: #252525;
2724
2749
  --orange: #fd6031;
2750
+ --purple: #a615bc;
2751
+ }
2752
+
2753
+ .text-blue {
2754
+ color: #0d6efd !important;
2755
+ }
2756
+
2757
+ .text-blue-bold {
2758
+ color: #0d6efd !important;
2759
+ font-weight: bold !important;
2760
+ }
2761
+
2762
+ .background-blue {
2763
+ background-color: #0d6efd !important;
2764
+ }
2765
+
2766
+ .background-border-blue {
2767
+ background-color: #0d6efd !important;
2768
+ border-color: #0d6efd !important;
2769
+ }
2770
+
2771
+ .border-blue {
2772
+ border-color: #0d6efd !important;
2773
+ }
2774
+
2775
+ .text-gray {
2776
+ color: #6c757d !important;
2777
+ }
2778
+
2779
+ .text-gray-bold {
2780
+ color: #6c757d !important;
2781
+ font-weight: bold !important;
2782
+ }
2783
+
2784
+ .background-gray {
2785
+ background-color: #6c757d !important;
2786
+ }
2787
+
2788
+ .background-border-gray {
2789
+ background-color: #6c757d !important;
2790
+ border-color: #6c757d !important;
2791
+ }
2792
+
2793
+ .border-gray {
2794
+ border-color: #6c757d !important;
2795
+ }
2796
+
2797
+ .text-green {
2798
+ color: #198754 !important;
2799
+ }
2800
+
2801
+ .text-green-bold {
2802
+ color: #198754 !important;
2803
+ font-weight: bold !important;
2804
+ }
2805
+
2806
+ .background-green {
2807
+ background-color: #198754 !important;
2808
+ }
2809
+
2810
+ .background-border-green {
2811
+ background-color: #198754 !important;
2812
+ border-color: #198754 !important;
2813
+ }
2814
+
2815
+ .border-green {
2816
+ border-color: #198754 !important;
2817
+ }
2818
+
2819
+ .text-yellow {
2820
+ color: #ffc107 !important;
2821
+ }
2822
+
2823
+ .text-yellow-bold {
2824
+ color: #ffc107 !important;
2825
+ font-weight: bold !important;
2826
+ }
2827
+
2828
+ .background-yellow {
2829
+ background-color: #ffc107 !important;
2830
+ }
2831
+
2832
+ .background-border-yellow {
2833
+ background-color: #ffc107 !important;
2834
+ border-color: #ffc107 !important;
2835
+ }
2836
+
2837
+ .border-yellow {
2838
+ border-color: #ffc107 !important;
2839
+ }
2840
+
2841
+ .text-red {
2842
+ color: #dc3545 !important;
2843
+ }
2844
+
2845
+ .text-red-bold {
2846
+ color: #dc3545 !important;
2847
+ font-weight: bold !important;
2848
+ }
2849
+
2850
+ .background-red {
2851
+ background-color: #dc3545 !important;
2852
+ }
2853
+
2854
+ .background-border-red {
2855
+ background-color: #dc3545 !important;
2856
+ border-color: #dc3545 !important;
2857
+ }
2858
+
2859
+ .border-red {
2860
+ border-color: #dc3545 !important;
2861
+ }
2862
+
2863
+ .text-white {
2864
+ color: #f5f5f5 !important;
2865
+ }
2866
+
2867
+ .text-white-bold {
2868
+ color: #f5f5f5 !important;
2869
+ font-weight: bold !important;
2870
+ }
2871
+
2872
+ .background-white {
2873
+ background-color: #f5f5f5 !important;
2874
+ }
2875
+
2876
+ .background-border-white {
2877
+ background-color: #f5f5f5 !important;
2878
+ border-color: #f5f5f5 !important;
2879
+ }
2880
+
2881
+ .border-white {
2882
+ border-color: #f5f5f5 !important;
2883
+ }
2884
+
2885
+ .text-black {
2886
+ color: #252525 !important;
2887
+ }
2888
+
2889
+ .text-black-bold {
2890
+ color: #252525 !important;
2891
+ font-weight: bold !important;
2892
+ }
2893
+
2894
+ .background-black {
2895
+ background-color: #252525 !important;
2896
+ }
2897
+
2898
+ .background-border-black {
2899
+ background-color: #252525 !important;
2900
+ border-color: #252525 !important;
2901
+ }
2902
+
2903
+ .border-black {
2904
+ border-color: #252525 !important;
2905
+ }
2906
+
2907
+ .text-orange {
2908
+ color: #fd6031 !important;
2909
+ }
2910
+
2911
+ .text-orange-bold {
2912
+ color: #fd6031 !important;
2913
+ font-weight: bold !important;
2914
+ }
2915
+
2916
+ .background-orange {
2917
+ background-color: #fd6031 !important;
2918
+ }
2919
+
2920
+ .background-border-orange {
2921
+ background-color: #fd6031 !important;
2922
+ border-color: #fd6031 !important;
2923
+ }
2924
+
2925
+ .border-orange {
2926
+ border-color: #fd6031 !important;
2927
+ }
2928
+
2929
+ aside.toast-container {
2930
+ position: fixed;
2931
+ bottom: 0px;
2932
+ right: 0px;
2933
+ padding: 15px !important;
2934
+ z-index: 2000 !important;
2935
+ }
2936
+ aside.toast-container i, aside.toast-container svg {
2937
+ display: flex;
2938
+ align-items: center;
2939
+ }
2940
+ aside.toast-container strong {
2941
+ margin: 0px auto 0px 5px;
2942
+ }
2943
+ aside.toast-container div.toast,
2944
+ aside.toast-container div.toast-header {
2945
+ border-top-left-radius: 10px;
2946
+ border-top-right-radius: 10px;
2947
+ color: #f5f5f5;
2948
+ }
2949
+ aside.toast-container div.toast,
2950
+ aside.toast-container div.toast-body {
2951
+ border-bottom-left-radius: 10px;
2952
+ border-bottom-right-radius: 10px;
2953
+ color: #f5f5f5;
2954
+ }
2955
+ aside.toast-container div.toast-body {
2956
+ min-height: 36px;
2957
+ }
2958
+ aside.toast-container pre {
2959
+ font-family: Roboto, RobotoFallback, "Noto Kufi Arabic", Helvetica, Arial, sans-serif;
2960
+ white-space: pre-wrap;
2961
+ font-size: medium;
2962
+ }
2963
+ aside.toast-container button {
2964
+ margin: 0px 2px !important;
2965
+ width: 10px !important;
2966
+ height: 10px !important;
2967
+ box-shadow: none !important;
2968
+ outline: none !important;
2969
+ border: none !important;
2970
+ }
2971
+ aside.toast-container div#alert-success div.toast-header,
2972
+ aside.toast-container div#alert-success div.toast-body {
2973
+ background-color: #198754;
2974
+ }
2975
+ aside.toast-container div#alert-info div.toast-header,
2976
+ aside.toast-container div#alert-info div.toast-body {
2977
+ background-color: #0d6efd;
2978
+ }
2979
+ aside.toast-container div#alert-error div.toast-header,
2980
+ aside.toast-container div#alert-error div.toast-body {
2981
+ background-color: #dc3545;
2982
+ }
2983
+ aside.toast-container div#alert-warning div.toast-header,
2984
+ aside.toast-container div#alert-warning div.toast-body {
2985
+ background-color: #ffc107;
2986
+ border-color: #252525;
2987
+ color: #252525;
2988
+ }
2989
+ aside.toast-container div#alert-success:hover,
2990
+ aside.toast-container div#alert-info:hover,
2991
+ aside.toast-container div#alert-error:hover,
2992
+ aside.toast-container div#alert-warning:hover {
2993
+ transform: scale(1.01);
2994
+ box-shadow: 2px 2px 10px lightslategray;
2995
+ cursor: default;
2996
+ }
2997
+
2998
+ button.sweet-alert-button {
2999
+ width: 100px !important;
3000
+ height: 40px !important;
3001
+ display: flex !important;
3002
+ align-items: center !important;
3003
+ justify-content: center !important;
3004
+ margin: 0px 5px !important;
3005
+ outline: none !important;
3006
+ border: none !important;
3007
+ box-shadow: none !important;
3008
+ }
3009
+
3010
+ aside.toast-container > * {
3011
+ border: none !important;
3012
+ z-index: 2000 !important;
3013
+ margin: 15px 0px 0px 0px !important;
3014
+ }
3015
+
3016
+ * {
3017
+ --blue: #0d6efd;
3018
+ --gray: #6c757d;
3019
+ --green: #198754;
3020
+ --yellow: #ffc107;
3021
+ --red: #dc3545;
3022
+ --white: #f5f5f5;
3023
+ --black: #252525;
3024
+ --orange: #fd6031;
3025
+ --purple: #a615bc;
2725
3026
  }
2726
3027
 
2727
3028
  .text-blue {
@@ -2918,6 +3219,8 @@ div.modal-content {
2918
3219
  animation-duration: 1.5s;
2919
3220
  animation-iteration-count: 1;
2920
3221
  animation-fill-mode: both;
3222
+ position: relative;
3223
+ z-index: 1;
2921
3224
  }
2922
3225
 
2923
3226
  .coer-container-tab {
@@ -2930,6 +3233,8 @@ div.modal-content {
2930
3233
  animation-duration: 1.5s;
2931
3234
  animation-iteration-count: 1;
2932
3235
  animation-fill-mode: both;
3236
+ position: relative;
3237
+ z-index: 1;
2933
3238
  padding: 0px;
2934
3239
  }
2935
3240
  .coer-container-tab .row {
@@ -2946,6 +3251,8 @@ div.modal-content {
2946
3251
  animation-duration: 1.5s;
2947
3252
  animation-iteration-count: 1;
2948
3253
  animation-fill-mode: both;
3254
+ position: relative;
3255
+ z-index: 1;
2949
3256
  padding-bottom: 5px;
2950
3257
  }
2951
3258
 
@@ -2970,6 +3277,7 @@ div.modal-content {
2970
3277
  --white: #f5f5f5;
2971
3278
  --black: #252525;
2972
3279
  --orange: #fd6031;
3280
+ --purple: #a615bc;
2973
3281
  }
2974
3282
 
2975
3283
  .text-blue {
@@ -7,6 +7,7 @@
7
7
  --white: #f5f5f5;
8
8
  --black: #252525;
9
9
  --orange: #fd6031;
10
+ --purple: #a615bc;
10
11
  }
11
12
 
12
13
  $blue: #0d6efd;
@@ -17,6 +18,7 @@ $red: #dc3545;
17
18
  $white: #f5f5f5;
18
19
  $black: #252525;
19
20
  $orange: #fd6031;
21
+ $purple: #a615bc;
20
22
 
21
23
  //Blue
22
24
  .text-blue {
@@ -13,6 +13,8 @@
13
13
  animation-duration: 1.5s;
14
14
  animation-iteration-count: 1;
15
15
  animation-fill-mode: both;
16
+ position: relative;
17
+ z-index: 1;
16
18
  }
17
19
 
18
20
  .coer-container {
@@ -6,4 +6,6 @@ export declare const GridTemplates: {
6
6
  coerSwitchTemplate: (item: IGridItem<any>) => IGridCoerSwitch;
7
7
  /** Template for text property */
8
8
  coerTextboxTemplate: (item: IGridItem<any>) => IGridCoerTextBox;
9
+ /** Template for text property */
10
+ coerIconTemplate: (icon: string, color?: string) => string;
9
11
  };
@@ -0,0 +1,21 @@
1
+ export declare class Colors {
2
+ static readonly blue = "#0d6efd";
3
+ static readonly gray = "#6c757d";
4
+ static readonly green = "#198754";
5
+ static readonly yellow = "#ffc107";
6
+ static readonly red = "#dc3545";
7
+ static readonly white = "#f5f5f5";
8
+ static readonly black = "#252525";
9
+ static readonly orange = "#fd6031";
10
+ static readonly purple = "#a615bc";
11
+ /** Returns the color palette in hexadecimal */
12
+ private static readonly colorsHex;
13
+ /** Returns the color palette in RGB */
14
+ private static readonly ColorsRGB;
15
+ /** Returns a random color in hexadecimal */
16
+ static GetRandomColorHex: () => string;
17
+ /** Returns the number of colors requested */
18
+ static GetColorHexList(quantity: number): string[];
19
+ /** Returns the number of colors requested with opacity */
20
+ static GetColorRGBList(quantity: number): string[];
21
+ }
@@ -55,6 +55,10 @@ export declare class Page implements AfterViewInit, OnDestroy {
55
55
  protected ReloadPage(): void;
56
56
  /** */
57
57
  protected Log(value: any, log?: string | null): void;
58
+ protected isActiveTemplate: (item: import("coer-elements/interfaces").IGridItem<any>) => string;
59
+ protected coerSwitchTemplate: (item: import("coer-elements/interfaces").IGridItem<any>) => import("coer-elements/interfaces").IGridCoerSwitch;
60
+ protected coerTextboxTemplate: (item: import("coer-elements/interfaces").IGridItem<any>) => import("coer-elements/interfaces").IGridCoerTextBox;
61
+ protected coerIconTemplate: (icon: string, color?: string) => string;
58
62
  static ɵfac: i0.ɵɵFactoryDeclaration<Page, never>;
59
63
  static ɵcmp: i0.ɵɵComponentDeclaration<Page, "ng-component", never, {}, {}, never, never, false, never>;
60
64
  }
@@ -1,5 +1,7 @@
1
1
  export * from './lib/coer-alert/coer-alert.component';
2
2
  export * from './lib/breadcrumbs.class';
3
+ export * from './lib/coer-grid.templates';
4
+ export * from './lib/colors.class';
3
5
  export * from './lib/control-value.class';
4
6
  export * from './lib/date-time.class';
5
7
  export * from './lib/files.class';
@@ -1,30 +0,0 @@
1
- export const GridTemplates = {
2
- /** Template for boolean property */
3
- isActiveTemplate: (item) => {
4
- if (item.value) {
5
- return `
6
- <span class='text-green-bold'>
7
- <i class="fa-solid fa-circle-check"></i> Active
8
- </span>
9
- `;
10
- }
11
- else {
12
- return `
13
- <span class='text-gray-bold'>
14
- <i class="fa-solid fa-circle-minus"></i> Disabled
15
- </span>
16
- `;
17
- }
18
- },
19
- /** Template for boolean property */
20
- coerSwitchTemplate: (item) => ({
21
- isInput: true,
22
- tooltip: `${item.value ? 'Active' : 'Disabled'}`
23
- }),
24
- /** Template for text property */
25
- coerTextboxTemplate: (item) => ({
26
- isInput: true,
27
- isInvalid: item.value.length <= 0
28
- })
29
- };
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1ncmlkLnRlbXBsYXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvY29tcG9uZW50cy9saWIvY29lci1ncmlkL2NvZXItZ3JpZC50ZW1wbGF0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBRXpCLG9DQUFvQztJQUNwQyxnQkFBZ0IsRUFBRSxDQUFDLElBQW9CLEVBQVUsRUFBRTtRQUMvQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNiLE9BQU87Ozs7YUFJTixDQUFDO1FBQ04sQ0FBQzthQUVJLENBQUM7WUFDRixPQUFPOzs7O2FBSU4sQ0FBQztRQUNOLENBQUM7SUFDTCxDQUFDO0lBRUQsb0NBQW9DO0lBQ3BDLGtCQUFrQixFQUFFLENBQUMsSUFBb0IsRUFBbUIsRUFBRSxDQUFDLENBQUM7UUFDNUQsT0FBTyxFQUFFLElBQUk7UUFDYixPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVcsRUFBRTtLQUNwRCxDQUFDO0lBR0YsaUNBQWlDO0lBQ2pDLG1CQUFtQixFQUFFLENBQUMsSUFBb0IsRUFBb0IsRUFBRSxDQUFDLENBQUM7UUFDOUQsT0FBTyxFQUFFLElBQUk7UUFDYixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztLQUNwQyxDQUFDO0NBQ0wsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElHcmlkQ29lclN3aXRjaCwgSUdyaWRDb2VyVGV4dEJveCwgSUdyaWRJdGVtIH0gZnJvbSBcImNvZXItZWxlbWVudHMvaW50ZXJmYWNlc1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdyaWRUZW1wbGF0ZXMgPSB7XHJcblxyXG4gICAgLyoqIFRlbXBsYXRlIGZvciBib29sZWFuIHByb3BlcnR5ICovXHJcbiAgICBpc0FjdGl2ZVRlbXBsYXRlOiAoaXRlbTogSUdyaWRJdGVtPGFueT4pOiBzdHJpbmcgPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ndGV4dC1ncmVlbi1ib2xkJz5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWNpcmNsZS1jaGVja1wiPjwvaT4gQWN0aXZlXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIGA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGBcclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSd0ZXh0LWdyYXktYm9sZCc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1jaXJjbGUtbWludXNcIj48L2k+IERpc2FibGVkXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIGA7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvKiogVGVtcGxhdGUgZm9yIGJvb2xlYW4gcHJvcGVydHkgKi9cclxuICAgIGNvZXJTd2l0Y2hUZW1wbGF0ZTogKGl0ZW06IElHcmlkSXRlbTxhbnk+KTogSUdyaWRDb2VyU3dpdGNoID0+ICh7XHJcbiAgICAgICAgaXNJbnB1dDogdHJ1ZSxcclxuICAgICAgICB0b29sdGlwOiBgJHtpdGVtLnZhbHVlID8gJ0FjdGl2ZScgOiAnRGlzYWJsZWQnIH1gXHJcbiAgICB9KSxcclxuXHJcblxyXG4gICAgLyoqIFRlbXBsYXRlIGZvciB0ZXh0IHByb3BlcnR5ICovXHJcbiAgICBjb2VyVGV4dGJveFRlbXBsYXRlOiAoaXRlbTogSUdyaWRJdGVtPGFueT4pOiBJR3JpZENvZXJUZXh0Qm94ID0+ICh7XHJcbiAgICAgICAgaXNJbnB1dDogdHJ1ZSxcclxuICAgICAgICBpc0ludmFsaWQ6IGl0ZW0udmFsdWUubGVuZ3RoIDw9IDBcclxuICAgIH0pXHJcbn0iXX0=