coer-elements 0.0.29 → 0.0.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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=