@openziti/ziti-console-lib 0.5.1 → 0.6.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.
Files changed (75) hide show
  1. package/assets/scripts/growler.js +4 -0
  2. package/assets/styles/forms.css +7 -7
  3. package/assets/styles/global.scss +61 -19
  4. package/assets/styles/header.css +1 -1
  5. package/assets/styles/ziti.css +40 -40
  6. package/esm2022/lib/features/card/card.component.mjs +2 -2
  7. package/esm2022/lib/features/data-table/cells/table-cell-menu/table-cell-menu.component.mjs +2 -2
  8. package/esm2022/lib/features/data-table/column-headers/table-column-default/table-column-default.component.mjs +2 -2
  9. package/esm2022/lib/features/data-table/column-headers/table-column-menu/table-column-menu.component.mjs +2 -2
  10. package/esm2022/lib/features/data-table/data-table.component.mjs +2 -2
  11. package/esm2022/lib/features/dynamic-widgets/object/object.component.mjs +2 -2
  12. package/esm2022/lib/features/dynamic-widgets/text-list/text-list-input.component.mjs +2 -2
  13. package/esm2022/lib/features/json-view/json-view.component.mjs +2 -2
  14. package/esm2022/lib/features/multi-action-button/multi-action-button.component.mjs +2 -2
  15. package/esm2022/lib/features/overrides/overrides.component.mjs +2 -2
  16. package/esm2022/lib/features/preview-list/preview-list.component.mjs +2 -2
  17. package/esm2022/lib/features/projectable-forms/edge-router/edge-router-form.component.mjs +2 -2
  18. package/esm2022/lib/features/projectable-forms/form-field-container/form-field-container.component.mjs +2 -2
  19. package/esm2022/lib/features/projectable-forms/form-header/form-header.component.mjs +2 -2
  20. package/esm2022/lib/features/projectable-forms/identity/identity-form.component.mjs +2 -2
  21. package/esm2022/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.mjs +280 -0
  22. package/esm2022/lib/features/projectable-forms/jwt-signer/jwt-signer-form.service.mjs +92 -0
  23. package/esm2022/lib/features/projectable-forms/service/service-form.component.mjs +2 -2
  24. package/esm2022/lib/features/projectable-forms/service/simple-service/simple-service.component.mjs +14 -11
  25. package/esm2022/lib/features/reset-enrollment/reset-enrollment.component.mjs +2 -2
  26. package/esm2022/lib/features/sidebars/side-navbar/side-navbar.component.mjs +2 -2
  27. package/esm2022/lib/features/tag-selector/tag-selector.component.mjs +2 -2
  28. package/esm2022/lib/features/visualizer/network-visualizer/network-visualizer.component.mjs +2 -2
  29. package/esm2022/lib/features/wrappers/zac-wrapper.component.mjs +3 -3
  30. package/esm2022/lib/models/jwt-signer.mjs +17 -0
  31. package/esm2022/lib/pages/edge-routers/edge-routers-page.component.mjs +2 -2
  32. package/esm2022/lib/pages/identities/identities-page.component.mjs +2 -2
  33. package/esm2022/lib/pages/jwt-signers/jwt-signers-page.component.mjs +96 -0
  34. package/esm2022/lib/pages/jwt-signers/jwt-signers-page.service.mjs +177 -0
  35. package/esm2022/lib/pages/services/services-page.component.mjs +2 -2
  36. package/esm2022/lib/services/login-service.class.mjs +1 -1
  37. package/esm2022/lib/services/node-data.service.mjs +6 -3
  38. package/esm2022/lib/services/noop-login.service.mjs +1 -4
  39. package/esm2022/lib/services/settings-service.class.mjs +1 -1
  40. package/esm2022/lib/services/settings.service.mjs +6 -1
  41. package/esm2022/lib/services/validation.service.mjs +14 -1
  42. package/esm2022/lib/services/ziti-data.service.mjs +4 -4
  43. package/esm2022/lib/ziti-console-lib.module.mjs +15 -5
  44. package/esm2022/public-api.mjs +5 -1
  45. package/fesm2022/openziti-ziti-console-lib.mjs +807 -180
  46. package/fesm2022/openziti-ziti-console-lib.mjs.map +1 -1
  47. package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.d.ts +60 -0
  48. package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.d.ts.map +1 -0
  49. package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.service.d.ts +21 -0
  50. package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.service.d.ts.map +1 -0
  51. package/lib/features/projectable-forms/service/simple-service/simple-service.component.d.ts.map +1 -1
  52. package/lib/models/jwt-signer.d.ts +14 -0
  53. package/lib/models/jwt-signer.d.ts.map +1 -0
  54. package/lib/pages/jwt-signers/jwt-signers-page.component.d.ts +29 -0
  55. package/lib/pages/jwt-signers/jwt-signers-page.component.d.ts.map +1 -0
  56. package/lib/pages/jwt-signers/jwt-signers-page.service.d.ts +31 -0
  57. package/lib/pages/jwt-signers/jwt-signers-page.service.d.ts.map +1 -0
  58. package/lib/services/login-service.class.d.ts +0 -1
  59. package/lib/services/login-service.class.d.ts.map +1 -1
  60. package/lib/services/node-data.service.d.ts.map +1 -1
  61. package/lib/services/noop-login.service.d.ts +0 -1
  62. package/lib/services/noop-login.service.d.ts.map +1 -1
  63. package/lib/services/settings-service.class.d.ts +1 -0
  64. package/lib/services/settings-service.class.d.ts.map +1 -1
  65. package/lib/services/settings.service.d.ts +1 -0
  66. package/lib/services/settings.service.d.ts.map +1 -1
  67. package/lib/services/validation.service.d.ts +1 -0
  68. package/lib/services/validation.service.d.ts.map +1 -1
  69. package/lib/services/ziti-data.service.d.ts +3 -3
  70. package/lib/services/ziti-data.service.d.ts.map +1 -1
  71. package/lib/ziti-console-lib.module.d.ts +19 -17
  72. package/lib/ziti-console-lib.module.d.ts.map +1 -1
  73. package/package.json +1 -1
  74. package/public-api.d.ts +4 -0
  75. package/public-api.d.ts.map +1 -1
@@ -15,6 +15,7 @@
15
15
  */
16
16
 
17
17
  var growler = {
18
+ disabled: false,
18
19
  isDebugging: true,
19
20
  showId: -1,
20
21
  data: [],
@@ -77,6 +78,9 @@ var growler = {
77
78
  }
78
79
  },
79
80
  show: function(type, title, subtitle, message) {
81
+ if (growler.disabled) {
82
+ return;
83
+ }
80
84
  if (growler.showId!=-1) clearTimeout(growler.showId);
81
85
  $("#Growler").removeClass("open");
82
86
  $("#Growler").removeClass("success");
@@ -26,8 +26,8 @@ input, select, textarea {
26
26
  width: 100%;
27
27
  border-color: var(--stroke);
28
28
  border-style: solid;
29
- border-width: 2px;
30
- border-radius: 7px;
29
+ border-width: var(--inputBorderWidth);
30
+ border-radius: var(--inputBorderRadius);
31
31
  padding-left: 7px;
32
32
  padding-right: 7px;
33
33
  outline: none;
@@ -94,7 +94,7 @@ input:disabled, select:disabled, textarea:disabled {
94
94
  }
95
95
 
96
96
  div.errors {
97
- border-width: 2px;
97
+ border-width: var(--inputBorderWidth);
98
98
  border-style: solid;
99
99
  border-color: var(--red);
100
100
  }
@@ -114,11 +114,11 @@ select {
114
114
  .check {
115
115
  width: 20px;
116
116
  height: 20px;
117
- border-radius: 7px;
117
+ border-radius: var(--inputBorderRadius);
118
118
  position: relative;
119
119
  margin-right: 10px;
120
120
  float: left;
121
- border-width: 2px;
121
+ border-width: var(--inputBorderWidth);
122
122
  border-style: solid;
123
123
  border-color: var(--primary);
124
124
  background-color: var(--navigation) !important;
@@ -135,7 +135,7 @@ select {
135
135
  .subform {
136
136
  background-color: var(--primary);
137
137
  padding: 20px;
138
- border-radius: 7px;
138
+ border-radius: var(--inputBorderRadius);
139
139
  display: grid;
140
140
  column-gap: 20px;
141
141
  padding-top: 10px;
@@ -335,7 +335,7 @@ label .note:hover {
335
335
  width: fit-content;
336
336
  text-transform: uppercase;
337
337
  text-align: center;
338
- border-radius: 7px;
338
+ border-radius: var(--inputBorderRadius);
339
339
  line-height: 25px;
340
340
  position: relative;
341
341
  border: 0;
@@ -1,6 +1,7 @@
1
1
  body {
2
2
  --highlighted: #f5a93d;
3
3
  --red: #ff104b;
4
+ --lightRed: #ffedf1;
4
5
  --green: #00db48;
5
6
  --white: #FFF;
6
7
  --menu: #434c5e;
@@ -53,10 +54,25 @@ body {
53
54
  overflow: hidden;
54
55
  }
55
56
 
57
+ textarea,
56
58
  select,
57
59
  input {
58
60
  &.error {
59
61
  border-color: var(--red);
62
+ background-color: var(--lightRed) !important;
63
+
64
+ &::placeholder {
65
+ color: var(--formBase);
66
+ }
67
+ }
68
+ }
69
+
70
+ .tagError {
71
+ border-color: var(--red);
72
+ background-color: var(--lightRed) !important;
73
+
74
+ &::placeholder {
75
+ color: var(--formBase) !important;
60
76
  }
61
77
  }
62
78
 
@@ -210,14 +226,6 @@ input {
210
226
  border-width: 1px;
211
227
  border-color: var(--stroke);
212
228
  }
213
- .form-field-label {
214
- color: var(--stroke);
215
- font-size: 18px;
216
- font-weight: 700;
217
- display: flex;
218
- flex: 1 0 auto;
219
- flex-wrap: nowrap;
220
- }
221
229
  .form-field-row {
222
230
  display: flex;
223
231
  flex-direction: row;
@@ -248,6 +256,13 @@ input {
248
256
  }
249
257
  }
250
258
 
259
+ .form-field-content {
260
+ textarea {
261
+ padding-top: initial;
262
+ margin-top: initial;
263
+ }
264
+ }
265
+
251
266
  .form-field-input {
252
267
  min-height: var(--defaultInputHeight);
253
268
  }
@@ -255,7 +270,7 @@ input {
255
270
  .form-field-input-group {
256
271
  padding: 15px;
257
272
  background-color: var(--formGroup);
258
- border-radius: 7px;
273
+ border-radius: var(--inputBorderRadius);
259
274
 
260
275
  &[hidden] {
261
276
  display: none !important;
@@ -266,12 +281,30 @@ input {
266
281
  padding: var(--paddingXL);
267
282
  padding-top: var(--paddingSmall);
268
283
  background-color: var(--formSubGroup);
269
- border-radius: 7px;
284
+ border-radius: var(--inputBorderRadius);
270
285
  &[hidden] {
271
286
  display: none !important;
272
287
  }
273
288
  }
274
289
 
290
+ .form-field-header {
291
+ display: flex;
292
+ flex-direction: row;
293
+ justify-content: space-between;
294
+ align-items: center;
295
+ height: 14px;
296
+ z-index: 10000;
297
+ }
298
+
299
+ .form-field-title-container {
300
+ display: flex;
301
+ flex-direction: row;
302
+ align-items: center;
303
+ justify-content: flex-start;
304
+ flex: 1 1 auto;
305
+ width: 100%;
306
+ }
307
+
275
308
  .form-field-title {
276
309
  display: flex;
277
310
  align-items: center;
@@ -282,6 +315,15 @@ input {
282
315
  height: 14px;
283
316
  }
284
317
 
318
+ .form-field-label {
319
+ color: var(--stroke);
320
+ font-size: 14px;
321
+ font-weight: 600;
322
+ display: flex;
323
+ flex: 1 0 auto;
324
+ flex-wrap: nowrap;
325
+ }
326
+
285
327
  .form-field-count {
286
328
  background-color: #4c5566;
287
329
  color: var(--white);
@@ -314,7 +356,7 @@ input {
314
356
  font-size: 14px;
315
357
  background: var(--primary);
316
358
  padding: 7px;
317
- border-radius: 7px;
359
+ border-radius: var(--inputBorderRadius);
318
360
  color: var(--white);
319
361
  cursor: pointer;
320
362
  box-shadow: 0 3px 9px 0 var(--primaryColorOpaque);
@@ -338,7 +380,7 @@ input {
338
380
  font-size: 14px;
339
381
  background: var(--primary);
340
382
  padding: 7px;
341
- border-radius: 7px;
383
+ border-radius: var(--inputBorderRadius);
342
384
  color: var(--white);
343
385
  cursor: pointer;
344
386
  box-shadow: 0 3px 9px 0 var(--primaryColorOpaque);
@@ -412,7 +454,7 @@ input {
412
454
  .form-field-label-container {
413
455
  display: flex;
414
456
  flex-direction: column;
415
- gap: 15px;
457
+ gap: var(--paddingSmall);
416
458
  width: 100%;
417
459
  }
418
460
 
@@ -521,7 +563,7 @@ lib-form-field-container {
521
563
  font-size: 14px;
522
564
  font-weight: 600;
523
565
  text-align: center;
524
- border-radius: 7px;
566
+ border-radius: var(--inputBorderRadius);
525
567
  cursor: pointer;
526
568
  transition: .5s;
527
569
  height: 50px;
@@ -614,14 +656,14 @@ lib-form-field-container {
614
656
 
615
657
  &:hover {
616
658
  background-color: #ffffff;
617
- border-radius: 7px;
659
+ border-radius: var(--inputBorderRadius);
618
660
  filter: brightness(90%);
619
661
  transition: 0.3s;
620
662
  }
621
663
 
622
664
  &:active {
623
665
  background-color: #ffffff;
624
- border-radius: 7px;
666
+ border-radius: var(--inputBorderRadius);
625
667
  filter: brightness(80%);
626
668
  transition: 0.3s;
627
669
  }
@@ -689,7 +731,7 @@ lib-form-field-container {
689
731
  background-color: var(--transparent);
690
732
  transition: var(--transition);
691
733
  line-height: 13px;
692
- border-radius: 7px;
734
+ border-radius: var(--inputBorderRadius);
693
735
  }
694
736
 
695
737
  .config-item {
@@ -861,7 +903,7 @@ lib-tag-selector {
861
903
  border-radius: 10px;
862
904
  border-color: var(--inputBorder);
863
905
  border-style: solid;
864
- border-width: 2px;
906
+ border-width: var(--inputBorderWidth);
865
907
  margin-left: 5px;
866
908
  margin-right: 5px;
867
909
  cursor: pointer;
@@ -985,7 +1027,7 @@ lib-tag-selector {
985
1027
  position: relative;
986
1028
  float: left;
987
1029
  line-height: 30px;
988
- border-radius: 7px;
1030
+ border-radius: var(--inputBorderRadius);
989
1031
  margin-left: 2px;
990
1032
  margin-bottom: 10px;
991
1033
  margin-top: 10px;
@@ -165,7 +165,7 @@ header #ProfileButton .icon {
165
165
 
166
166
  .menu {
167
167
  background-color: var(--menu);
168
- border-radius: 7px;
168
+ border-radius: var(--inputBorderRadius);
169
169
  box-shadow: 0 0 0 1px var(--shadow), 0 8px 16px var(--shadow);
170
170
  font-size: 14px;
171
171
  font-weight: 600;
@@ -70,8 +70,8 @@ body {
70
70
  min-height: 34px;
71
71
  border: 4px solid rgba(0, 0, 0, 0);
72
72
  background-clip: padding-box;
73
- -webkit-border-radius: 7px;
74
- border-radius: 7px;
73
+ -webkit-border-radius: var(--inputBorderRadius);
74
+ border-radius: var(--inputBorderRadius);
75
75
  background-color: var(--stroke);
76
76
  -webkit-box-shadow: inset -1px -1px 0px rgba(0, 0, 0, 0.05), inset 1px 1px 0px rgba(0, 0, 0, 0.05);
77
77
  box-shadow: inset -1px -1px 0px rgba(0, 0, 0, 0.05), inset 1px 1px 0px rgba(0, 0, 0, 0.05);
@@ -464,9 +464,9 @@ aside .icon {
464
464
  .blurb {
465
465
  padding: 10px;
466
466
  background-color: #ffcc33;
467
- border-radius: 7px;
467
+ border-radius: var(--inputBorderRadius);
468
468
  border-color: #cc3300;
469
- border-width: 2px;
469
+ border-width: var(--inputBorderWidth);
470
470
  border-style: solid;
471
471
  margin-top: 8px;
472
472
  }
@@ -695,7 +695,7 @@ aside .icon {
695
695
 
696
696
  .configureBox {
697
697
  background-color: var(--stroke);
698
- border-radius: 7px;
698
+ border-radius: var(--inputBorderRadius);
699
699
  padding: 20px;
700
700
  margin-bottom: 10px;
701
701
  position: relative;
@@ -708,7 +708,7 @@ aside .icon {
708
708
 
709
709
  .configBox {
710
710
  background-color: var(--stroke);
711
- border-radius: 7px;
711
+ border-radius: var(--inputBorderRadius);
712
712
  padding: 20px;
713
713
  margin-bottom: 10px;
714
714
  position: relative;
@@ -721,7 +721,7 @@ aside .icon {
721
721
  .lightBox {
722
722
  color: #FFF;
723
723
  background-color: var(--menu);
724
- border-radius: 7px;
724
+ border-radius: var(--inputBorderRadius);
725
725
  padding: 10px;
726
726
  margin-top: 10px;
727
727
  position: relative;
@@ -774,7 +774,7 @@ aside .icon {
774
774
  padding-top: 5px;
775
775
  font-size: 12px;
776
776
  padding-bottom: 5px;
777
- border-radius: 7px;
777
+ border-radius: var(--inputBorderRadius);
778
778
  color: var(--black);
779
779
  transition: var(--transition);
780
780
  z-index: 10;
@@ -1021,10 +1021,10 @@ aside .icon {
1021
1021
  }
1022
1022
 
1023
1023
  .selectable {
1024
- border-width: 2px;
1024
+ border-width: var(--inputBorderWidth);
1025
1025
  border-style: solid;
1026
1026
  border-color: var(--menu);
1027
- border-radius: 7px;
1027
+ border-radius: var(--inputBorderRadius);
1028
1028
  background-color: var(--menu);
1029
1029
  padding:0px;
1030
1030
  height: 130px;
@@ -1039,7 +1039,7 @@ aside .icon {
1039
1039
  height: 40px;
1040
1040
  line-height: 40px;
1041
1041
  padding-left: 5px;
1042
- border-radius: 7px;
1042
+ border-radius: var(--inputBorderRadius);
1043
1043
  margin-bottom: 10px;
1044
1044
  background-color: var(--stroke);
1045
1045
  cursor: pointer;
@@ -1072,7 +1072,7 @@ aside .icon {
1072
1072
  background-color: transparent;
1073
1073
  transition: var(--transition);
1074
1074
  line-height: 13px;
1075
- border-radius: 7px;
1075
+ border-radius: var(--inputBorderRadius);
1076
1076
  }
1077
1077
 
1078
1078
  .docs {
@@ -1240,10 +1240,10 @@ aside .icon {
1240
1240
  }
1241
1241
 
1242
1242
  .tagSelect {
1243
- border-width: 2px;
1243
+ border-width: var(--inputBorderWidth);
1244
1244
  border-style: solid;
1245
1245
  border-color: var(--menu);
1246
- border-radius: 7px;
1246
+ border-radius: var(--inputBorderRadius);
1247
1247
  background-color: var(--menu);
1248
1248
  padding: 0px;
1249
1249
  height: 130px;
@@ -1434,7 +1434,7 @@ aside .icon {
1434
1434
  position: absolute;
1435
1435
  width: 150px;
1436
1436
  background-color: var(--menu);
1437
- border-radius: 7px;
1437
+ border-radius: var(--inputBorderRadius);
1438
1438
  right: 0px;
1439
1439
  top: 20px;
1440
1440
  box-shadow: 0 0 0 1px var(--shadowColor), 0 8px 16px var(--shadowColor);
@@ -1492,7 +1492,7 @@ aside .icon {
1492
1492
  .cardStack {
1493
1493
  background-color: var(--primary);
1494
1494
  overflow: visable;
1495
- border-radius: 7px;
1495
+ border-radius: var(--inputBorderRadius);
1496
1496
  height: 120px;
1497
1497
  width: 100%;
1498
1498
  float: left;
@@ -1600,7 +1600,7 @@ aside .icon {
1600
1600
  gap: 30px;
1601
1601
  box-shadow: 0px 0px 19px -8px rgba(0, 0, 0, 0.2);
1602
1602
  padding: 10px;
1603
- border-radius: 7px;
1603
+ border-radius: var(--inputBorderRadius);
1604
1604
  cursor: pointer;
1605
1605
  transition: 0.3s;
1606
1606
  }
@@ -1635,7 +1635,7 @@ aside .icon {
1635
1635
  height: 150px;
1636
1636
  position: relative;
1637
1637
  background-color: var(--white);
1638
- border-radius: 7px;
1638
+ border-radius: var(--inputBorderRadius);
1639
1639
  box-sizing: var(--shadow);
1640
1640
  cursor: pointer;
1641
1641
  }
@@ -1688,8 +1688,8 @@ aside .icon {
1688
1688
  }
1689
1689
 
1690
1690
  .card {
1691
- border-radius: 7px;
1692
- border-width: 2px;
1691
+ border-radius: var(--inputBorderRadius);
1692
+ border-width: var(--inputBorderWidth);
1693
1693
  border-style: solid;
1694
1694
  border-color: var(--offWhite);
1695
1695
  background-color: var(--offWhite);
@@ -1787,7 +1787,7 @@ aside .icon {
1787
1787
  .idBox {
1788
1788
  width: 48%;
1789
1789
  margin: 6px;
1790
- border-radius: 7px;
1790
+ border-radius: var(--inputBorderRadius);
1791
1791
  background-color: var(--stroke);
1792
1792
  position: relative;
1793
1793
  display: inline-block;
@@ -1850,8 +1850,8 @@ aside .icon {
1850
1850
  opacity: 0.0;
1851
1851
  transition: var(--transition);
1852
1852
  background-color: #fCFCFC;
1853
- border-radius: 7px;
1854
- border-width: 2px;
1853
+ border-radius: var(--inputBorderRadius);
1854
+ border-width: var(--inputBorderWidth);
1855
1855
  border-color: var(--placeholder);
1856
1856
  overflow: hidden;
1857
1857
  }
@@ -1865,7 +1865,7 @@ aside .icon {
1865
1865
  position: relative;
1866
1866
  display: inline-block;
1867
1867
  cursor: pointer;
1868
- border-radius: 7px;
1868
+ border-radius: var(--inputBorderRadius);
1869
1869
  transition: var(--transition);
1870
1870
  }
1871
1871
 
@@ -2074,7 +2074,7 @@ path.green {
2074
2074
  position: absolute;
2075
2075
  float: left;
2076
2076
  line-height: 30px;
2077
- border-radius: 7px;
2077
+ border-radius: var(--inputBorderRadius);
2078
2078
  margin-left: 2px;
2079
2079
  margin-bottom: 10px;
2080
2080
  margin-top: 10px;
@@ -2088,7 +2088,7 @@ path.green {
2088
2088
  position: relative;
2089
2089
  float: left;
2090
2090
  line-height: 30px;
2091
- border-radius: 7px;
2091
+ border-radius: var(--inputBorderRadius);
2092
2092
  margin-left: 2px;
2093
2093
  margin-bottom: 10px;
2094
2094
  margin-top: 10px;
@@ -2133,7 +2133,7 @@ path.green {
2133
2133
  position: relative;
2134
2134
  float: left;
2135
2135
  line-height: 30px;
2136
- border-radius: 7px;
2136
+ border-radius: var(--inputBorderRadius);
2137
2137
  margin-left: 10px;
2138
2138
  margin-bottom: 10px;
2139
2139
  transition: var(--transition);
@@ -2158,15 +2158,15 @@ path.green {
2158
2158
  position: relative;
2159
2159
  float: left;
2160
2160
  line-height: 30px;
2161
- border-radius: 7px;
2161
+ border-radius: var(--inputBorderRadius);
2162
2162
  margin-left: 10px;
2163
2163
  margin-bottom: 10px;
2164
2164
  transition: var(--transition);
2165
2165
  }
2166
2166
 
2167
2167
  .searchSelector {
2168
- border-radius: 7px;
2169
- border-width: 2px;
2168
+ border-radius: var(--inputBorderRadius);
2169
+ border-width: var(--inputBorderWidth);
2170
2170
  border-color: var(--stroke);
2171
2171
  border-style: solid;
2172
2172
  width: 100%;
@@ -2200,8 +2200,8 @@ path.green {
2200
2200
  margin-top: -7px;
2201
2201
  margin-bottom: 10px;
2202
2202
  opacity: 1.0;
2203
- border-bottom-left-radius: 7px;
2204
- border-bottom-right-radius: 7px;
2203
+ border-bottom-left-radius: var(--inputBorderRadius);
2204
+ border-bottom-right-radius: var(--inputBorderRadius);
2205
2205
  background-color: rgba(0,0,0,0.6);
2206
2206
  padding-top: 25px;
2207
2207
  padding-left: 10px;
@@ -2581,7 +2581,7 @@ div:focus {
2581
2581
  .pod .button {
2582
2582
  margin-top: 10px;
2583
2583
  width: 100%;
2584
- border-radius: 7px;
2584
+ border-radius: var(--inputBorderRadius);
2585
2585
  line-height: 30px;
2586
2586
  }
2587
2587
 
@@ -2897,10 +2897,10 @@ svg {
2897
2897
  }
2898
2898
 
2899
2899
  .list {
2900
- border-width: 2px;
2900
+ border-width: var(--inputBorderWidth);
2901
2901
  border-style: solid;
2902
2902
  border-color: var(--menu);
2903
- border-radius: 7px;
2903
+ border-radius: var(--inputBorderRadius);
2904
2904
  background-color: var(--menu);
2905
2905
  padding: 0px;
2906
2906
  height: 260px;
@@ -2912,7 +2912,7 @@ svg {
2912
2912
  .list .listItem {
2913
2913
  position: relative;
2914
2914
  width: 100%;
2915
- border-radius: 7px;
2915
+ border-radius: var(--inputBorderRadius);
2916
2916
  height: 30px;
2917
2917
  background-color: var(--white);
2918
2918
  color: var(--black);
@@ -3147,7 +3147,7 @@ button[aria-label][data-balloon-pos] {
3147
3147
  opacity: 0;
3148
3148
  background-color: var(--black);
3149
3149
  color: var(--white);
3150
- border-radius: 7px;
3150
+ border-radius: var(--inputBorderRadius);
3151
3151
  padding: 20px;
3152
3152
  transition: var(--transition);
3153
3153
  margin-top: 15px;
@@ -3169,9 +3169,9 @@ button[aria-label][data-balloon-pos] {
3169
3169
 
3170
3170
  .modal .CodeMirror {
3171
3171
  height: 150px;
3172
- border-radius: 7px;
3173
- border-top-left-radius: 7px;
3174
- border-bottom-left-radius: 7px;
3172
+ border-radius: var(--inputBorderRadius);
3173
+ border-top-left-radius: var(--inputBorderRadius);
3174
+ border-bottom-left-radius: var(--inputBorderRadius);
3175
3175
  margin-top: 10px;
3176
3176
  }
3177
3177
 
@@ -13,12 +13,12 @@ class CardComponent {
13
13
  event.preventDefault();
14
14
  }
15
15
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CardComponent, selector: "lib-card", inputs: { imageUrl: "imageUrl", title: "title", content: "content", buttonText: "buttonText", id: "id", href: "href" }, ngImport: i0, template: "<a href=\"/{{href}}\" (click)=\"linkClicked($event)\">\n <div class=\"service-card-container\">\n <div class=\"buttonCard selectType\" [id]=\"id\">\n <div style=\"background-image: url({{imageUrl}})\" class=\"icon\"></div>\n <div class=\"title\">{{title}}</div>\n <div class=\"content\">\n {{ content }}\n </div>\n <div class=\"row center buttonArea\">\n <button class=\"save\">{{buttonText}}</button>\n </div>\n </div>\n </div>\n</a>", styles: [".buttonCard .title{top:230px}.buttonCard .content{font-size:14px;bottom:80px;display:flex;flex-direction:column;align-items:center;text-align:center}.red{color:var(--red);font-weight:650;background-color:unset}.disabled{background:var(--inputBorder);box-shadow:none;color:var(--icon)}.save{margin-top:3px;font-size:14px;font-family:Open Sans;font-weight:600;display:inline-block;min-width:150px;clear:both;overflow:hidden;height:45px;padding:13px;width:-moz-fit-content;width:fit-content;text-transform:uppercase;text-align:center;border-radius:7px;position:relative;border:0;background:var(--primaryColor);color:#fff;white-space:nowrap;transition:all .15s ease;cursor:pointer;box-shadow:0 3px 9px 0 var(--primaryColorOpaque)}.padTop{padding-top:12px}.linkButton{margin-top:unset}.subtext{color:var(--stroke)}.buttonCard{max-width:320px;width:320px;position:relative;float:none;cursor:pointer;padding-bottom:25px;margin:20px 20px 0;background-color:var(--navigation);box-shadow:0 12px 23px 0 var(--shadow);transition:box-shadow .3s;border-radius:7px;min-height:405px;display:flex;flex-direction:column;align-items:center;justify-content:center}.buttonCard.shadow{box-shadow:0 12px 23px 0 var(--shadow)}.buttonCard.shadow .icon{background-size:50%;background-position:center top}.buttonCard:hover{filter:brightness(99.5%);box-shadow:0 3px 3px 0 var(--shadow);transition:box-shadow .3s}.buttonCard:active{filter:brightness(99%);box-shadow:0 1px 1px 0 var(--shadow);transition:box-shadow .3s}.buttonCard .title{font-size:16px;color:var(--tableText);text-align:center;text-transform:uppercase;padding-top:0;font-weight:600;font-family:Open Sans;position:absolute;top:220px;width:100%}.buttonCard .buttonArea{position:absolute;bottom:25px;width:100%}.buttonCard .subButton{position:absolute;bottom:10px}.buttonCard .content{color:var(--text);font-size:13px;height:80px;margin-top:15px;margin-bottom:30px;padding-left:30px;padding-right:30px;padding-top:30px;bottom:70px;position:absolute;font-weight:400;font-family:Open Sans}.buttonCard .icon{position:absolute;top:30px;left:10px;right:10px;height:185px;background-position:center bottom;background-size:contain;z-index:unset;width:unset;min-width:unset;min-height:unset}.buttonCard .buttonArea{bottom:30px}\n"] }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CardComponent, selector: "lib-card", inputs: { imageUrl: "imageUrl", title: "title", content: "content", buttonText: "buttonText", id: "id", href: "href" }, ngImport: i0, template: "<a href=\"/{{href}}\" (click)=\"linkClicked($event)\">\n <div class=\"service-card-container\">\n <div class=\"buttonCard selectType\" [id]=\"id\">\n <div style=\"background-image: url({{imageUrl}})\" class=\"icon\"></div>\n <div class=\"title\">{{title}}</div>\n <div class=\"content\">\n {{ content }}\n </div>\n <div class=\"row center buttonArea\">\n <button class=\"save\">{{buttonText}}</button>\n </div>\n </div>\n </div>\n</a>", styles: [".buttonCard .title{top:230px}.buttonCard .content{font-size:14px;bottom:80px;display:flex;flex-direction:column;align-items:center;text-align:center}.red{color:var(--red);font-weight:650;background-color:unset}.disabled{background:var(--inputBorder);box-shadow:none;color:var(--icon)}.save{margin-top:3px;font-size:14px;font-family:Open Sans;font-weight:600;display:inline-block;min-width:150px;clear:both;overflow:hidden;height:45px;padding:13px;width:-moz-fit-content;width:fit-content;text-transform:uppercase;text-align:center;border-radius:var(--inputBorderRadius);position:relative;border:0;background:var(--primaryColor);color:#fff;white-space:nowrap;transition:all .15s ease;cursor:pointer;box-shadow:0 3px 9px 0 var(--primaryColorOpaque)}.padTop{padding-top:12px}.linkButton{margin-top:unset}.subtext{color:var(--stroke)}.buttonCard{max-width:320px;width:320px;position:relative;float:none;cursor:pointer;padding-bottom:25px;margin:20px 20px 0;background-color:var(--navigation);box-shadow:0 12px 23px 0 var(--shadow);transition:box-shadow .3s;border-radius:var(--inputBorderRadius);min-height:405px;display:flex;flex-direction:column;align-items:center;justify-content:center}.buttonCard.shadow{box-shadow:0 12px 23px 0 var(--shadow)}.buttonCard.shadow .icon{background-size:50%;background-position:center top}.buttonCard:hover{filter:brightness(99.5%);box-shadow:0 3px 3px 0 var(--shadow);transition:box-shadow .3s}.buttonCard:active{filter:brightness(99%);box-shadow:0 1px 1px 0 var(--shadow);transition:box-shadow .3s}.buttonCard .title{font-size:16px;color:var(--tableText);text-align:center;text-transform:uppercase;padding-top:0;font-weight:600;font-family:Open Sans;position:absolute;top:220px;width:100%}.buttonCard .buttonArea{position:absolute;bottom:25px;width:100%}.buttonCard .subButton{position:absolute;bottom:10px}.buttonCard .content{color:var(--text);font-size:13px;height:80px;margin-top:15px;margin-bottom:30px;padding-left:30px;padding-right:30px;padding-top:30px;bottom:70px;position:absolute;font-weight:400;font-family:Open Sans}.buttonCard .icon{position:absolute;top:30px;left:10px;right:10px;height:185px;background-position:center bottom;background-size:contain;z-index:unset;width:unset;min-width:unset;min-height:unset}.buttonCard .buttonArea{bottom:30px}\n"] }); }
17
17
  }
18
18
  export { CardComponent };
19
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CardComponent, decorators: [{
20
20
  type: Component,
21
- args: [{ selector: 'lib-card', template: "<a href=\"/{{href}}\" (click)=\"linkClicked($event)\">\n <div class=\"service-card-container\">\n <div class=\"buttonCard selectType\" [id]=\"id\">\n <div style=\"background-image: url({{imageUrl}})\" class=\"icon\"></div>\n <div class=\"title\">{{title}}</div>\n <div class=\"content\">\n {{ content }}\n </div>\n <div class=\"row center buttonArea\">\n <button class=\"save\">{{buttonText}}</button>\n </div>\n </div>\n </div>\n</a>", styles: [".buttonCard .title{top:230px}.buttonCard .content{font-size:14px;bottom:80px;display:flex;flex-direction:column;align-items:center;text-align:center}.red{color:var(--red);font-weight:650;background-color:unset}.disabled{background:var(--inputBorder);box-shadow:none;color:var(--icon)}.save{margin-top:3px;font-size:14px;font-family:Open Sans;font-weight:600;display:inline-block;min-width:150px;clear:both;overflow:hidden;height:45px;padding:13px;width:-moz-fit-content;width:fit-content;text-transform:uppercase;text-align:center;border-radius:7px;position:relative;border:0;background:var(--primaryColor);color:#fff;white-space:nowrap;transition:all .15s ease;cursor:pointer;box-shadow:0 3px 9px 0 var(--primaryColorOpaque)}.padTop{padding-top:12px}.linkButton{margin-top:unset}.subtext{color:var(--stroke)}.buttonCard{max-width:320px;width:320px;position:relative;float:none;cursor:pointer;padding-bottom:25px;margin:20px 20px 0;background-color:var(--navigation);box-shadow:0 12px 23px 0 var(--shadow);transition:box-shadow .3s;border-radius:7px;min-height:405px;display:flex;flex-direction:column;align-items:center;justify-content:center}.buttonCard.shadow{box-shadow:0 12px 23px 0 var(--shadow)}.buttonCard.shadow .icon{background-size:50%;background-position:center top}.buttonCard:hover{filter:brightness(99.5%);box-shadow:0 3px 3px 0 var(--shadow);transition:box-shadow .3s}.buttonCard:active{filter:brightness(99%);box-shadow:0 1px 1px 0 var(--shadow);transition:box-shadow .3s}.buttonCard .title{font-size:16px;color:var(--tableText);text-align:center;text-transform:uppercase;padding-top:0;font-weight:600;font-family:Open Sans;position:absolute;top:220px;width:100%}.buttonCard .buttonArea{position:absolute;bottom:25px;width:100%}.buttonCard .subButton{position:absolute;bottom:10px}.buttonCard .content{color:var(--text);font-size:13px;height:80px;margin-top:15px;margin-bottom:30px;padding-left:30px;padding-right:30px;padding-top:30px;bottom:70px;position:absolute;font-weight:400;font-family:Open Sans}.buttonCard .icon{position:absolute;top:30px;left:10px;right:10px;height:185px;background-position:center bottom;background-size:contain;z-index:unset;width:unset;min-width:unset;min-height:unset}.buttonCard .buttonArea{bottom:30px}\n"] }]
21
+ args: [{ selector: 'lib-card', template: "<a href=\"/{{href}}\" (click)=\"linkClicked($event)\">\n <div class=\"service-card-container\">\n <div class=\"buttonCard selectType\" [id]=\"id\">\n <div style=\"background-image: url({{imageUrl}})\" class=\"icon\"></div>\n <div class=\"title\">{{title}}</div>\n <div class=\"content\">\n {{ content }}\n </div>\n <div class=\"row center buttonArea\">\n <button class=\"save\">{{buttonText}}</button>\n </div>\n </div>\n </div>\n</a>", styles: [".buttonCard .title{top:230px}.buttonCard .content{font-size:14px;bottom:80px;display:flex;flex-direction:column;align-items:center;text-align:center}.red{color:var(--red);font-weight:650;background-color:unset}.disabled{background:var(--inputBorder);box-shadow:none;color:var(--icon)}.save{margin-top:3px;font-size:14px;font-family:Open Sans;font-weight:600;display:inline-block;min-width:150px;clear:both;overflow:hidden;height:45px;padding:13px;width:-moz-fit-content;width:fit-content;text-transform:uppercase;text-align:center;border-radius:var(--inputBorderRadius);position:relative;border:0;background:var(--primaryColor);color:#fff;white-space:nowrap;transition:all .15s ease;cursor:pointer;box-shadow:0 3px 9px 0 var(--primaryColorOpaque)}.padTop{padding-top:12px}.linkButton{margin-top:unset}.subtext{color:var(--stroke)}.buttonCard{max-width:320px;width:320px;position:relative;float:none;cursor:pointer;padding-bottom:25px;margin:20px 20px 0;background-color:var(--navigation);box-shadow:0 12px 23px 0 var(--shadow);transition:box-shadow .3s;border-radius:var(--inputBorderRadius);min-height:405px;display:flex;flex-direction:column;align-items:center;justify-content:center}.buttonCard.shadow{box-shadow:0 12px 23px 0 var(--shadow)}.buttonCard.shadow .icon{background-size:50%;background-position:center top}.buttonCard:hover{filter:brightness(99.5%);box-shadow:0 3px 3px 0 var(--shadow);transition:box-shadow .3s}.buttonCard:active{filter:brightness(99%);box-shadow:0 1px 1px 0 var(--shadow);transition:box-shadow .3s}.buttonCard .title{font-size:16px;color:var(--tableText);text-align:center;text-transform:uppercase;padding-top:0;font-weight:600;font-family:Open Sans;position:absolute;top:220px;width:100%}.buttonCard .buttonArea{position:absolute;bottom:25px;width:100%}.buttonCard .subButton{position:absolute;bottom:10px}.buttonCard .content{color:var(--text);font-size:13px;height:80px;margin-top:15px;margin-bottom:30px;padding-left:30px;padding-right:30px;padding-top:30px;bottom:70px;position:absolute;font-weight:400;font-family:Open Sans}.buttonCard .icon{position:absolute;top:30px;left:10px;right:10px;height:185px;background-position:center bottom;background-size:contain;z-index:unset;width:unset;min-width:unset;min-height:unset}.buttonCard .buttonArea{bottom:30px}\n"] }]
22
22
  }], propDecorators: { imageUrl: [{
23
23
  type: Input
24
24
  }], title: [{
@@ -37,11 +37,11 @@ class TableCellMenuComponent {
37
37
  this.cellParams.closeMenu(event);
38
38
  }
39
39
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableCellMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
40
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableCellMenuComponent, selector: "app-table-cell-menu", ngImport: i0, template: "<div (clickOutside)=\"closeActionMenu($event)\" class=\"cell-menu-container\">\n <div\n (click)=\"toggleMenu($event)\"\n *ngIf=\"enableCellMenu\"\n attr.name=\"RowDots_{{ item.name }}\"\n class=\"dots\"\n id=\"RowDots_{{ item.id }}\"\n >\n ...\n </div>\n</div>\n", styles: [".cell-menu-container{width:100%;height:100%;position:absolute}.cell-menu-container .dots{width:30px;right:10px;height:30px;position:absolute;top:10px;font-size:24px;text-align:center;cursor:pointer;background-color:transparent;transition:var(--transition);line-height:13px;border-radius:7px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }] }); }
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableCellMenuComponent, selector: "app-table-cell-menu", ngImport: i0, template: "<div (clickOutside)=\"closeActionMenu($event)\" class=\"cell-menu-container\">\n <div\n (click)=\"toggleMenu($event)\"\n *ngIf=\"enableCellMenu\"\n attr.name=\"RowDots_{{ item.name }}\"\n class=\"dots\"\n id=\"RowDots_{{ item.id }}\"\n >\n ...\n </div>\n</div>\n", styles: [".cell-menu-container{width:100%;height:100%;position:absolute}.cell-menu-container .dots{width:30px;right:10px;height:30px;position:absolute;top:10px;font-size:24px;text-align:center;cursor:pointer;background-color:transparent;transition:var(--transition);line-height:13px;border-radius:var(--inputBorderRadius)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }] }); }
41
41
  }
42
42
  export { TableCellMenuComponent };
43
43
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableCellMenuComponent, decorators: [{
44
44
  type: Component,
45
- args: [{ selector: 'app-table-cell-menu', template: "<div (clickOutside)=\"closeActionMenu($event)\" class=\"cell-menu-container\">\n <div\n (click)=\"toggleMenu($event)\"\n *ngIf=\"enableCellMenu\"\n attr.name=\"RowDots_{{ item.name }}\"\n class=\"dots\"\n id=\"RowDots_{{ item.id }}\"\n >\n ...\n </div>\n</div>\n", styles: [".cell-menu-container{width:100%;height:100%;position:absolute}.cell-menu-container .dots{width:30px;right:10px;height:30px;position:absolute;top:10px;font-size:24px;text-align:center;cursor:pointer;background-color:transparent;transition:var(--transition);line-height:13px;border-radius:7px}\n"] }]
45
+ args: [{ selector: 'app-table-cell-menu', template: "<div (clickOutside)=\"closeActionMenu($event)\" class=\"cell-menu-container\">\n <div\n (click)=\"toggleMenu($event)\"\n *ngIf=\"enableCellMenu\"\n attr.name=\"RowDots_{{ item.name }}\"\n class=\"dots\"\n id=\"RowDots_{{ item.id }}\"\n >\n ...\n </div>\n</div>\n", styles: [".cell-menu-container{width:100%;height:100%;position:absolute}.cell-menu-container .dots{width:30px;right:10px;height:30px;position:absolute;top:10px;font-size:24px;text-align:center;cursor:pointer;background-color:transparent;transition:var(--transition);line-height:13px;border-radius:var(--inputBorderRadius)}\n"] }]
46
46
  }] });
47
47
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2VsbC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9mZWF0dXJlcy9kYXRhLXRhYmxlL2NlbGxzL3RhYmxlLWNlbGwtbWVudS90YWJsZS1jZWxsLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL2RhdGEtdGFibGUvY2VsbHMvdGFibGUtY2VsbC1tZW51L3RhYmxlLWNlbGwtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3hDLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQzs7OztBQUV2QixNQUthLHNCQUFzQjtJQUxuQztRQU1FLFNBQUksR0FBUTtZQUNWLFFBQVEsRUFBRSxLQUFLO1lBQ2YsRUFBRSxFQUFFLEVBQUU7WUFDTixJQUFJLEVBQUUsRUFBRTtZQUNSLFVBQVUsRUFBRSxFQUFFO1NBQ2YsQ0FBQztRQUVGLFNBQUksR0FBRyxLQUFLLENBQUM7S0E4QmQ7SUE1QkMsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQztJQUVyRixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQStCO1FBQ3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELE9BQU8sQ0FBQyxVQUErQjtRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFLO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFO1lBQzdCLE9BQU87U0FDUjtRQUNELENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBSztRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDOytHQXJDVSxzQkFBc0I7bUdBQXRCLHNCQUFzQiwyRENWbkMsNlJBV0E7O1NERGEsc0JBQXNCOzRGQUF0QixzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQge0lDZWxsUmVuZGVyZXJQYXJhbXN9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10YWJsZS1jZWxsLW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY2VsbC1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtY2VsbC1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ2VsbE1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAge1xuICBpdGVtOiBhbnkgPSB7XG4gICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgIGlkOiAnJyxcbiAgICBuYW1lOiAnJyxcbiAgICBhY3Rpb25MaXN0OiBbXSxcbiAgfTtcbiAgY2VsbFBhcmFtcztcbiAgb3BlbiA9IGZhbHNlO1xuXG4gIGdldCBlbmFibGVDZWxsTWVudSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISghdGhpcy5pdGVtIHx8ICF0aGlzLml0ZW0uYWN0aW9uTGlzdCB8fCB0aGlzLml0ZW0uYWN0aW9uTGlzdC5sZW5ndGggPT09IDApO1xuXG4gIH1cblxuICBhZ0luaXQoY2VsbFBhcmFtczogSUNlbGxSZW5kZXJlclBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuY2VsbFBhcmFtcyA9IGNlbGxQYXJhbXM7XG4gICAgdGhpcy5pdGVtID0gXy5nZXQoY2VsbFBhcmFtcywgJ2RhdGEnKTtcbiAgfVxuXG4gIHJlZnJlc2goY2VsbFBhcmFtczogSUNlbGxSZW5kZXJlclBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIHRoaXMuY2VsbFBhcmFtcyA9IGNlbGxQYXJhbXM7XG4gICAgdGhpcy5pdGVtID0gXy5nZXQoY2VsbFBhcmFtcywgJ2RhdGEnKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHRvZ2dsZU1lbnUoZXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY2VsbFBhcmFtcy5vcGVuTWVudSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBfLmRlZmVyKCgpID0+IHtcbiAgICAgIHRoaXMuY2VsbFBhcmFtcy5vcGVuTWVudShldmVudCwgdGhpcy5pdGVtKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNsb3NlQWN0aW9uTWVudShldmVudCk6IHZvaWQge1xuICAgIHRoaXMuY2VsbFBhcmFtcy5jbG9zZU1lbnUoZXZlbnQpO1xuICB9XG59XG4iLCI8ZGl2IChjbGlja091dHNpZGUpPVwiY2xvc2VBY3Rpb25NZW51KCRldmVudClcIiBjbGFzcz1cImNlbGwtbWVudS1jb250YWluZXJcIj5cbiAgPGRpdlxuICAgIChjbGljayk9XCJ0b2dnbGVNZW51KCRldmVudClcIlxuICAgICpuZ0lmPVwiZW5hYmxlQ2VsbE1lbnVcIlxuICAgIGF0dHIubmFtZT1cIlJvd0RvdHNfe3sgaXRlbS5uYW1lIH19XCJcbiAgICBjbGFzcz1cImRvdHNcIlxuICAgIGlkPVwiUm93RG90c197eyBpdGVtLmlkIH19XCJcbiAgPlxuICAgIC4uLlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19