monkey-style-guide-v2 0.0.21 → 0.0.22

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 (90) hide show
  1. package/assets/scss/directives/_index.scss +1 -0
  2. package/assets/scss/directives/_popover.scss +81 -0
  3. package/assets/scss/theme.scss +5 -0
  4. package/esm2022/lib/components/accordion/accordion.component.mjs +11 -20
  5. package/esm2022/lib/components/action-bar/action-bar.component.mjs +3 -3
  6. package/esm2022/lib/components/button/button.component.mjs +6 -2
  7. package/esm2022/lib/components/checkbox/checkbox.component.mjs +9 -13
  8. package/esm2022/lib/components/date-range/date-range.component.mjs +2 -2
  9. package/esm2022/lib/components/form-field/form-field-control.mjs +1 -1
  10. package/esm2022/lib/components/form-field/form-field.component.mjs +15 -18
  11. package/esm2022/lib/components/form-field/form-field.module.mjs +4 -2
  12. package/esm2022/lib/components/icon/icon.component.mjs +4 -4
  13. package/esm2022/lib/components/icon-button/icon-button.component.mjs +2 -2
  14. package/esm2022/lib/components/index.mjs +2 -1
  15. package/esm2022/lib/components/modal/components/confirmation.component.mjs +68 -0
  16. package/esm2022/lib/components/modal/components/default.mjs +1 -6
  17. package/esm2022/lib/components/modal/modal-config.mjs +2 -3
  18. package/esm2022/lib/components/modal/modal-ref.mjs +9 -2
  19. package/esm2022/lib/components/modal/modal.component.mjs +8 -6
  20. package/esm2022/lib/components/modal/modal.module.mjs +4 -1
  21. package/esm2022/lib/components/modal/modal.service.mjs +44 -31
  22. package/esm2022/lib/components/modal/utils.mjs +2 -1
  23. package/esm2022/lib/components/option/option.component.mjs +21 -5
  24. package/esm2022/lib/components/radio-button/index.mjs +7 -0
  25. package/esm2022/lib/components/radio-button/radio-button.component.mjs +190 -0
  26. package/esm2022/lib/components/security-level/security-level.component.mjs +3 -3
  27. package/esm2022/lib/components/select/select.component.mjs +5 -9
  28. package/esm2022/lib/components/status/status.component.mjs +3 -3
  29. package/esm2022/lib/components/table/components/pagination-size/pagination-size.mjs +2 -2
  30. package/esm2022/lib/components/toast/toast.component.mjs +3 -3
  31. package/esm2022/lib/components/tooltip/tooltip/tooltip.component.mjs +3 -3
  32. package/esm2022/lib/components/tooltip/tooltip.directive.mjs +12 -3
  33. package/esm2022/lib/directives/error.mjs +5 -5
  34. package/esm2022/lib/directives/helper.mjs +5 -5
  35. package/esm2022/lib/directives/index.mjs +2 -1
  36. package/esm2022/lib/directives/info.mjs +5 -5
  37. package/esm2022/lib/directives/label.mjs +5 -5
  38. package/esm2022/lib/directives/module.mjs +41 -35
  39. package/esm2022/lib/directives/popover.mjs +380 -0
  40. package/esm2022/lib/directives/prefix.mjs +5 -5
  41. package/esm2022/lib/directives/suffix.mjs +5 -5
  42. package/esm2022/lib/interfaces/index.mjs +2 -1
  43. package/esm2022/lib/interfaces/popover.mjs +2 -0
  44. package/esm2022/lib/services/dictionary.service.mjs +3 -3
  45. package/esm2022/lib/services/index.mjs +1 -2
  46. package/esm2022/lib/tokens/index.mjs +3 -2
  47. package/esm2022/utils/icon.mjs +277 -0
  48. package/esm2022/utils/index.mjs +2 -1
  49. package/fesm2022/monkey-style-guide-v2.mjs +1183 -312
  50. package/fesm2022/monkey-style-guide-v2.mjs.map +1 -1
  51. package/lib/components/accordion/accordion.component.d.ts +0 -3
  52. package/lib/components/button/button.component.d.ts +2 -0
  53. package/lib/components/checkbox/checkbox.component.d.ts +0 -3
  54. package/lib/components/form-field/form-field-control.d.ts +3 -3
  55. package/lib/components/form-field/form-field.component.d.ts +0 -5
  56. package/lib/components/form-field/form-field.module.d.ts +2 -1
  57. package/lib/components/icon/icon.component.d.ts +1 -1
  58. package/lib/components/index.d.ts +1 -0
  59. package/lib/components/modal/components/confirmation.component.d.ts +12 -0
  60. package/lib/components/modal/components/default.d.ts +0 -5
  61. package/lib/components/modal/modal-config.d.ts +10 -6
  62. package/lib/components/modal/modal-ref.d.ts +1 -0
  63. package/lib/components/modal/modal.module.d.ts +10 -9
  64. package/lib/components/modal/modal.service.d.ts +4 -4
  65. package/lib/components/modal/utils.d.ts +3 -1
  66. package/lib/components/option/option.component.d.ts +4 -1
  67. package/lib/components/radio-button/index.d.ts +6 -0
  68. package/lib/components/radio-button/radio-button.component.d.ts +54 -0
  69. package/lib/components/select/select.component.d.ts +0 -3
  70. package/lib/components/tooltip/tooltip.directive.d.ts +1 -0
  71. package/lib/directives/error.d.ts +3 -3
  72. package/lib/directives/helper.d.ts +3 -3
  73. package/lib/directives/index.d.ts +1 -0
  74. package/lib/directives/info.d.ts +3 -3
  75. package/lib/directives/label.d.ts +3 -3
  76. package/lib/directives/module.d.ts +2 -1
  77. package/lib/directives/popover.d.ts +65 -0
  78. package/lib/directives/prefix.d.ts +3 -3
  79. package/lib/directives/suffix.d.ts +3 -3
  80. package/lib/interfaces/index.d.ts +1 -0
  81. package/lib/interfaces/popover.d.ts +7 -0
  82. package/lib/services/index.d.ts +0 -1
  83. package/lib/tokens/index.d.ts +2 -1
  84. package/monkey-style-guide-v2-0.0.22.tgz +0 -0
  85. package/package.json +1 -1
  86. package/utils/icon.d.ts +8 -0
  87. package/utils/index.d.ts +1 -0
  88. package/esm2022/lib/services/icons.service.mjs +0 -56
  89. package/lib/services/icons.service.d.ts +0 -16
  90. package/monkey-style-guide-v2-0.0.21.tgz +0 -0
@@ -6,3 +6,4 @@
6
6
 
7
7
  @import 'styles';
8
8
  @import 'badge';
9
+ @import 'popover';
@@ -0,0 +1,81 @@
1
+ .mecx-popover-container {
2
+ display: flex;
3
+ flex-direction: column;
4
+ border-radius: 16px;
5
+ border: 2px solid var(--mecx-color-gray-200);
6
+ background: var(--mecx-color-white);
7
+ box-shadow:
8
+ 0px 8px 12px -4px var(--mecx-color-box-shadow),
9
+ 0px 8px 8px 0px var(--mecx-color-box-shadow);
10
+ margin-bottom: 4px;
11
+ }
12
+
13
+ .mecx-popover-header {
14
+ display: flex;
15
+ padding: 12px 16px 8px 24px;
16
+ align-items: center;
17
+ gap: 8px;
18
+ align-self: stretch;
19
+ color: var(--mecx-color-gray-900);
20
+ font-size: 18px;
21
+ font-style: normal;
22
+ font-weight: 600;
23
+ line-height: 24px;
24
+ letter-spacing: 0.18px;
25
+ border-bottom: 2px solid var(--mecx-color-gray-200);
26
+ position: relative;
27
+ min-height: 24px;
28
+
29
+ .mecx-popover-close {
30
+ display: flex;
31
+ align-items: center;
32
+ justify-content: center;
33
+ cursor: pointer;
34
+ position: absolute;
35
+ right: 12px;
36
+ top: 12px;
37
+
38
+ &:hover {
39
+ border-radius: 12px;
40
+ background: var(--mecx-color-gray-100);
41
+ }
42
+ }
43
+ }
44
+
45
+ .mecx-popover-header > :first-child {
46
+ margin-right: 24px;
47
+ max-width: 480px;
48
+ }
49
+
50
+ .mecx-popover-content {
51
+ flex: 1;
52
+
53
+ &.add-radius {
54
+ border-radius: 16px;
55
+ }
56
+
57
+ &:not(.add-radius) {
58
+ monkey-date-range {
59
+ .header {
60
+ border-radius: unset !important;
61
+ }
62
+ }
63
+ }
64
+ }
65
+
66
+ .mecx-popover-content > :first-child {
67
+ border: none !important;
68
+ }
69
+
70
+ .mecx-popover-actions {
71
+ display: flex;
72
+ padding: 14px 24px;
73
+ justify-content: flex-end;
74
+ align-items: center;
75
+ gap: 24px;
76
+ align-self: stretch;
77
+ border-top: 2px solid var(--mecx-color-gray-200);
78
+ background: var(--mecx-color-white);
79
+ border-bottom-left-radius: 16px;
80
+ border-bottom-right-radius: 16px;
81
+ }
@@ -9,3 +9,8 @@
9
9
  @import './input';
10
10
  @import './directives';
11
11
  @import './table';
12
+
13
+ :root {
14
+ --mecx-color-box-shadow: #00000029;
15
+ --mecx-color-info: #003687;
16
+ }
@@ -6,8 +6,7 @@
6
6
  import { animate, state, style, transition, trigger } from '@angular/animations';
7
7
  import { CommonModule } from '@angular/common';
8
8
  import { booleanAttribute, Component, inject, Input, TemplateRef } from '@angular/core';
9
- import { IdGenerator } from '../../../utils';
10
- import { MonkeyIconsService } from '../../services';
9
+ import { IdGenerator, UtilIconComponent } from '../../../utils';
11
10
  import * as i0 from "@angular/core";
12
11
  import * as i1 from "@angular/common";
13
12
  export class MonkeyAccordionComponent {
@@ -26,10 +25,8 @@ export class MonkeyAccordionComponent {
26
25
  this._id = value || this._uid;
27
26
  }
28
27
  constructor() {
29
- this._icons = inject(MonkeyIconsService);
30
28
  this.open = false;
31
29
  this.disabled = false;
32
- this.imgArrowDown = this._icons.arrowDown;
33
30
  this._uid = inject(IdGenerator).getId('monkey-accordion-');
34
31
  // eslint-disable-next-line no-self-assign
35
32
  this.id = this.id;
@@ -40,22 +37,19 @@ export class MonkeyAccordionComponent {
40
37
  this.open = !this.open;
41
38
  }
42
39
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MonkeyAccordionComponent, isStandalone: true, selector: "monkey-accordion", inputs: { open: ["open", "open", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], title: "title", id: "id" }, host: { attributes: { "data-testid": "monkey-accordion" }, properties: { "class.disabled": "disabled", "attr.id": "id", "id": "id" } }, ngImport: i0, template: "<div class=\"header\" (click)=\"onClick()\">\n <div class=\"title\">\n @if (titleRef) {\n <ng-container *ngTemplateOutlet=\"titleRef\" />\n } @else {\n {{ titleStr }}\n }\n </div>\n <div [innerHTML]=\"imgArrowDown\" class=\"icon\" [class.rotated]=\"open\"></div>\n</div>\n<div class=\"content-wrapper\">\n @if (open) {\n <div [@content]>\n <div class=\"content\">\n <ng-content />\n </div>\n </div>\n }\n</div>\n", styles: [":host{display:flex;flex-direction:column;border-radius:16px;border:2px solid var(--mecx-color-gray-400);background:var(--mecx-color-white);overflow:hidden}:host .header{display:flex;align-items:center;justify-content:space-between;padding:24px;gap:24px;cursor:pointer}:host .header .title{color:var(--mecx-color-gray-900);font-size:18px;font-style:normal;font-weight:400;line-height:24px;letter-spacing:.54px}:host .header .icon{transform:rotate(0);transition:transform .2s ease-in-out}:host .header .icon.rotated{transform:rotate(180deg)}:host.disabled .header{cursor:not-allowed;background:var(--mecx-color-gray-200)}:host .content-wrapper{border-top:1px solid var(--mecx-color-gray-200);overflow:hidden}:host .content-wrapper .content{padding:24px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MonkeyAccordionComponent, isStandalone: true, selector: "monkey-accordion", inputs: { open: ["open", "open", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], title: "title", id: "id" }, host: { attributes: { "data-testid": "monkey-accordion" }, properties: { "class.disabled": "disabled", "attr.id": "id", "id": "id" } }, ngImport: i0, template: "<div class=\"header\" (click)=\"onClick()\">\n <div class=\"title\">\n @if (titleRef) {\n <ng-container *ngTemplateOutlet=\"titleRef\" />\n } @else {\n {{ titleStr }}\n }\n </div>\n <util-icon class=\"icon\" name=\"arrowDown\" [class.rotated]=\"open\" />\n</div>\n<div class=\"content-wrapper\">\n @if (open) {\n <div [@content]>\n <div class=\"content\">\n <ng-content />\n </div>\n </div>\n }\n</div>\n", styles: [":host{display:flex;flex-direction:column;border-radius:16px;border:2px solid var(--mecx-color-gray-400);background:var(--mecx-color-white);overflow:hidden}:host .header{display:flex;align-items:center;justify-content:space-between;padding:24px;gap:24px;cursor:pointer}:host .header .title{color:var(--mecx-color-gray-900);font-size:18px;font-style:normal;font-weight:400;line-height:24px;letter-spacing:.54px}:host .header .icon{transform:rotate(0);transition:transform .2s ease-in-out}:host .header .icon.rotated{transform:rotate(180deg)}:host.disabled .header{cursor:not-allowed;background:var(--mecx-color-gray-200)}:host .content-wrapper{overflow:hidden}:host .content-wrapper .content{border-top:1px solid var(--mecx-color-gray-200);padding:24px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: UtilIconComponent, selector: "util-icon", inputs: ["name"] }], animations: [
44
41
  trigger('content', [
45
42
  state('void', style({
46
- height: '0px',
47
- overflow: 'hidden'
43
+ height: '0px'
48
44
  })),
49
45
  transition(':enter', [
50
46
  animate('300ms ease-in-out', style({
51
- height: '*',
52
- overflow: 'hidden'
47
+ height: '*'
53
48
  }))
54
49
  ]),
55
50
  transition(':leave', [
56
51
  animate('300ms ease-in-out', style({
57
- height: '0px',
58
- overflow: 'hidden'
52
+ height: '0px'
59
53
  }))
60
54
  ])
61
55
  ])
@@ -63,7 +57,7 @@ export class MonkeyAccordionComponent {
63
57
  }
64
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyAccordionComponent, decorators: [{
65
59
  type: Component,
66
- args: [{ selector: 'monkey-accordion', standalone: true, imports: [CommonModule], host: {
60
+ args: [{ selector: 'monkey-accordion', standalone: true, imports: [CommonModule, UtilIconComponent], host: {
67
61
  'data-testid': 'monkey-accordion',
68
62
  '[class.disabled]': 'disabled',
69
63
  '[attr.id]': 'id',
@@ -71,23 +65,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
71
65
  }, animations: [
72
66
  trigger('content', [
73
67
  state('void', style({
74
- height: '0px',
75
- overflow: 'hidden'
68
+ height: '0px'
76
69
  })),
77
70
  transition(':enter', [
78
71
  animate('300ms ease-in-out', style({
79
- height: '*',
80
- overflow: 'hidden'
72
+ height: '*'
81
73
  }))
82
74
  ]),
83
75
  transition(':leave', [
84
76
  animate('300ms ease-in-out', style({
85
- height: '0px',
86
- overflow: 'hidden'
77
+ height: '0px'
87
78
  }))
88
79
  ])
89
80
  ])
90
- ], template: "<div class=\"header\" (click)=\"onClick()\">\n <div class=\"title\">\n @if (titleRef) {\n <ng-container *ngTemplateOutlet=\"titleRef\" />\n } @else {\n {{ titleStr }}\n }\n </div>\n <div [innerHTML]=\"imgArrowDown\" class=\"icon\" [class.rotated]=\"open\"></div>\n</div>\n<div class=\"content-wrapper\">\n @if (open) {\n <div [@content]>\n <div class=\"content\">\n <ng-content />\n </div>\n </div>\n }\n</div>\n", styles: [":host{display:flex;flex-direction:column;border-radius:16px;border:2px solid var(--mecx-color-gray-400);background:var(--mecx-color-white);overflow:hidden}:host .header{display:flex;align-items:center;justify-content:space-between;padding:24px;gap:24px;cursor:pointer}:host .header .title{color:var(--mecx-color-gray-900);font-size:18px;font-style:normal;font-weight:400;line-height:24px;letter-spacing:.54px}:host .header .icon{transform:rotate(0);transition:transform .2s ease-in-out}:host .header .icon.rotated{transform:rotate(180deg)}:host.disabled .header{cursor:not-allowed;background:var(--mecx-color-gray-200)}:host .content-wrapper{border-top:1px solid var(--mecx-color-gray-200);overflow:hidden}:host .content-wrapper .content{padding:24px}\n"] }]
81
+ ], template: "<div class=\"header\" (click)=\"onClick()\">\n <div class=\"title\">\n @if (titleRef) {\n <ng-container *ngTemplateOutlet=\"titleRef\" />\n } @else {\n {{ titleStr }}\n }\n </div>\n <util-icon class=\"icon\" name=\"arrowDown\" [class.rotated]=\"open\" />\n</div>\n<div class=\"content-wrapper\">\n @if (open) {\n <div [@content]>\n <div class=\"content\">\n <ng-content />\n </div>\n </div>\n }\n</div>\n", styles: [":host{display:flex;flex-direction:column;border-radius:16px;border:2px solid var(--mecx-color-gray-400);background:var(--mecx-color-white);overflow:hidden}:host .header{display:flex;align-items:center;justify-content:space-between;padding:24px;gap:24px;cursor:pointer}:host .header .title{color:var(--mecx-color-gray-900);font-size:18px;font-style:normal;font-weight:400;line-height:24px;letter-spacing:.54px}:host .header .icon{transform:rotate(0);transition:transform .2s ease-in-out}:host .header .icon.rotated{transform:rotate(180deg)}:host.disabled .header{cursor:not-allowed;background:var(--mecx-color-gray-200)}:host .content-wrapper{overflow:hidden}:host .content-wrapper .content{border-top:1px solid var(--mecx-color-gray-200);padding:24px}\n"] }]
91
82
  }], ctorParameters: () => [], propDecorators: { open: [{
92
83
  type: Input,
93
84
  args: [{ transform: booleanAttribute }]
@@ -99,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
99
90
  }], id: [{
100
91
  type: Input
101
92
  }] } });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1zdHlsZS1ndWlkZS12Mi9zcmMvbGliL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NkJBSTZCO0FBQzdCLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUE0Q3BELE1BQU0sT0FBTyx3QkFBd0I7SUFPbkMsSUFBYSxLQUFLLENBQUMsSUFBK0I7UUFDaEQsSUFBSSxJQUFJLFlBQVksV0FBVyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDdkIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQVlELElBQ0ksRUFBRTtRQUNKLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBSSxFQUFFLENBQUMsS0FBYTtRQUNsQixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRDtRQWpDaUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRWIsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUViLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFjekQsaUJBQVksR0FBb0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFFNUMsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQWM5RCwwQ0FBMEM7UUFDMUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDekIsQ0FBQzsrR0ExQ1Usd0JBQXdCO21HQUF4Qix3QkFBd0IscUZBR2YsZ0JBQWdCLHNDQUVoQixnQkFBZ0IsK0xDM0R0Qyw2Y0FtQkEsMHlCREpZLFlBQVksd0xBU1Y7WUFDVixPQUFPLENBQUMsU0FBUyxFQUFFO2dCQUNqQixLQUFLLENBQ0gsTUFBTSxFQUNOLEtBQUssQ0FBQztvQkFDSixNQUFNLEVBQUUsS0FBSztvQkFDYixRQUFRLEVBQUUsUUFBUTtpQkFDbkIsQ0FBQyxDQUNIO2dCQUNELFVBQVUsQ0FBQyxRQUFRLEVBQUU7b0JBQ25CLE9BQU8sQ0FDTCxtQkFBbUIsRUFDbkIsS0FBSyxDQUFDO3dCQUNKLE1BQU0sRUFBRSxHQUFHO3dCQUNYLFFBQVEsRUFBRSxRQUFRO3FCQUNuQixDQUFDLENBQ0g7aUJBQ0YsQ0FBQztnQkFDRixVQUFVLENBQUMsUUFBUSxFQUFFO29CQUNuQixPQUFPLENBQ0wsbUJBQW1CLEVBQ25CLEtBQUssQ0FBQzt3QkFDSixNQUFNLEVBQUUsS0FBSzt3QkFDYixRQUFRLEVBQUUsUUFBUTtxQkFDbkIsQ0FBQyxDQUNIO2lCQUNGLENBQUM7YUFDSCxDQUFDO1NBQ0g7OzRGQUVVLHdCQUF3QjtrQkExQ3BDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxRQUdqQjt3QkFDSixhQUFhLEVBQUUsa0JBQWtCO3dCQUNqQyxrQkFBa0IsRUFBRSxVQUFVO3dCQUM5QixXQUFXLEVBQUUsSUFBSTt3QkFDakIsTUFBTSxFQUFFLElBQUk7cUJBQ2IsY0FDVzt3QkFDVixPQUFPLENBQUMsU0FBUyxFQUFFOzRCQUNqQixLQUFLLENBQ0gsTUFBTSxFQUNOLEtBQUssQ0FBQztnQ0FDSixNQUFNLEVBQUUsS0FBSztnQ0FDYixRQUFRLEVBQUUsUUFBUTs2QkFDbkIsQ0FBQyxDQUNIOzRCQUNELFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0NBQ25CLE9BQU8sQ0FDTCxtQkFBbUIsRUFDbkIsS0FBSyxDQUFDO29DQUNKLE1BQU0sRUFBRSxHQUFHO29DQUNYLFFBQVEsRUFBRSxRQUFRO2lDQUNuQixDQUFDLENBQ0g7NkJBQ0YsQ0FBQzs0QkFDRixVQUFVLENBQUMsUUFBUSxFQUFFO2dDQUNuQixPQUFPLENBQ0wsbUJBQW1CLEVBQ25CLEtBQUssQ0FBQztvQ0FDSixNQUFNLEVBQUUsS0FBSztvQ0FDYixRQUFRLEVBQUUsUUFBUTtpQ0FDbkIsQ0FBQyxDQUNIOzZCQUNGLENBQUM7eUJBQ0gsQ0FBQztxQkFDSDt3REFLdUMsSUFBSTtzQkFBM0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFRSxRQUFRO3NCQUEvQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUV6QixLQUFLO3NCQUFqQixLQUFLO2dCQW1CRixFQUFFO3NCQURMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb3B5cmlnaHQgTW9ua2V5IEV4Y2hhbmdlLiBBbGwgUmlnaHRzIFJlc2VydmVkXG4gKiBUaGlzIHN0eWxlIGd1aWRlIHdhcyBkZXZlbG9wZWQgYnkgTW9ua2V5IEV4Y2hhbmdlIFRlYW1cbiAqIE1JVCBMaWNlbmNlXG4gKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IElkR2VuZXJhdG9yIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgTW9ua2V5SWNvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb25rZXktYWNjb3JkaW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9hY2NvcmRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYWNjb3JkaW9uLmNvbXBvbmVudC5zY3NzJyxcbiAgaG9zdDoge1xuICAgICdkYXRhLXRlc3RpZCc6ICdtb25rZXktYWNjb3JkaW9uJyxcbiAgICAnW2NsYXNzLmRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgJ1thdHRyLmlkXSc6ICdpZCcsXG4gICAgJ1tpZF0nOiAnaWQnXG4gIH0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdjb250ZW50JywgW1xuICAgICAgc3RhdGUoXG4gICAgICAgICd2b2lkJyxcbiAgICAgICAgc3R5bGUoe1xuICAgICAgICAgIGhlaWdodDogJzBweCcsXG4gICAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nXG4gICAgICAgIH0pXG4gICAgICApLFxuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICczMDBtcyBlYXNlLWluLW91dCcsXG4gICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgaGVpZ2h0OiAnKicsXG4gICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbidcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAnMzAwbXMgZWFzZS1pbi1vdXQnLFxuICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgIGhlaWdodDogJzBweCcsXG4gICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbidcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICBdKVxuICAgIF0pXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTW9ua2V5QWNjb3JkaW9uQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfaWNvbnMgPSBpbmplY3QoTW9ua2V5SWNvbnNTZXJ2aWNlKTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgb3BlbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHNldCB0aXRsZShkYXRhOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgdGhpcy50aXRsZVJlZiA9IGRhdGE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGl0bGVTdHIgPSBkYXRhO1xuICAgIH1cbiAgfVxuXG4gIHRpdGxlU3RyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgdGl0bGVSZWY6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgaW1nQXJyb3dEb3duOiBTYWZlSHRtbCB8IG51bGwgPSB0aGlzLl9pY29ucy5hcnJvd0Rvd247XG5cbiAgcHJvdGVjdGVkIF91aWQgPSBpbmplY3QoSWRHZW5lcmF0b3IpLmdldElkKCdtb25rZXktYWNjb3JkaW9uLScpO1xuXG4gIHByb3RlY3RlZCBfaWQhOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2lkO1xuICB9XG5cbiAgc2V0IGlkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9pZCA9IHZhbHVlIHx8IHRoaXMuX3VpZDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWFzc2lnblxuICAgIHRoaXMuaWQgPSB0aGlzLmlkO1xuICB9XG5cbiAgb25DbGljaygpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJoZWFkZXJcIiAoY2xpY2spPVwib25DbGljaygpXCI+XG4gIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxuICAgIEBpZiAodGl0bGVSZWYpIHtcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aXRsZVJlZlwiIC8+XG4gICAgfSBAZWxzZSB7XG4gICAgICB7eyB0aXRsZVN0ciB9fVxuICAgIH1cbiAgPC9kaXY+XG4gIDxkaXYgW2lubmVySFRNTF09XCJpbWdBcnJvd0Rvd25cIiBjbGFzcz1cImljb25cIiBbY2xhc3Mucm90YXRlZF09XCJvcGVuXCI+PC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJjb250ZW50LXdyYXBwZXJcIj5cbiAgQGlmIChvcGVuKSB7XG4gICAgPGRpdiBbQGNvbnRlbnRdPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1zdHlsZS1ndWlkZS12Mi9zcmMvbGliL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NkJBSTZCO0FBQzdCLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUF5Q2hFLE1BQU0sT0FBTyx3QkFBd0I7SUFLbkMsSUFBYSxLQUFLLENBQUMsSUFBK0I7UUFDaEQsSUFBSSxJQUFJLFlBQVksV0FBVyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDdkIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQVVELElBQ0ksRUFBRTtRQUNKLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBSSxFQUFFLENBQUMsS0FBYTtRQUNsQixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRDtRQTdCd0MsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUViLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFjL0MsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQWM5RCwwQ0FBMEM7UUFDMUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDekIsQ0FBQzsrR0F0Q1Usd0JBQXdCO21HQUF4Qix3QkFBd0IscUZBQ2YsZ0JBQWdCLHNDQUVoQixnQkFBZ0IsK0xDcER0QyxxY0FtQkEsMHlCRE5ZLFlBQVksc01BQUUsaUJBQWlCLDBEQVM3QjtZQUNWLE9BQU8sQ0FBQyxTQUFTLEVBQUU7Z0JBQ2pCLEtBQUssQ0FDSCxNQUFNLEVBQ04sS0FBSyxDQUFDO29CQUNKLE1BQU0sRUFBRSxLQUFLO2lCQUNkLENBQUMsQ0FDSDtnQkFDRCxVQUFVLENBQUMsUUFBUSxFQUFFO29CQUNuQixPQUFPLENBQ0wsbUJBQW1CLEVBQ25CLEtBQUssQ0FBQzt3QkFDSixNQUFNLEVBQUUsR0FBRztxQkFDWixDQUFDLENBQ0g7aUJBQ0YsQ0FBQztnQkFDRixVQUFVLENBQUMsUUFBUSxFQUFFO29CQUNuQixPQUFPLENBQ0wsbUJBQW1CLEVBQ25CLEtBQUssQ0FBQzt3QkFDSixNQUFNLEVBQUUsS0FBSztxQkFDZCxDQUFDLENBQ0g7aUJBQ0YsQ0FBQzthQUNILENBQUM7U0FDSDs7NEZBRVUsd0JBQXdCO2tCQXZDcEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGlCQUFpQixDQUFDLFFBR3BDO3dCQUNKLGFBQWEsRUFBRSxrQkFBa0I7d0JBQ2pDLGtCQUFrQixFQUFFLFVBQVU7d0JBQzlCLFdBQVcsRUFBRSxJQUFJO3dCQUNqQixNQUFNLEVBQUUsSUFBSTtxQkFDYixjQUNXO3dCQUNWLE9BQU8sQ0FBQyxTQUFTLEVBQUU7NEJBQ2pCLEtBQUssQ0FDSCxNQUFNLEVBQ04sS0FBSyxDQUFDO2dDQUNKLE1BQU0sRUFBRSxLQUFLOzZCQUNkLENBQUMsQ0FDSDs0QkFDRCxVQUFVLENBQUMsUUFBUSxFQUFFO2dDQUNuQixPQUFPLENBQ0wsbUJBQW1CLEVBQ25CLEtBQUssQ0FBQztvQ0FDSixNQUFNLEVBQUUsR0FBRztpQ0FDWixDQUFDLENBQ0g7NkJBQ0YsQ0FBQzs0QkFDRixVQUFVLENBQUMsUUFBUSxFQUFFO2dDQUNuQixPQUFPLENBQ0wsbUJBQW1CLEVBQ25CLEtBQUssQ0FBQztvQ0FDSixNQUFNLEVBQUUsS0FBSztpQ0FDZCxDQUFDLENBQ0g7NkJBQ0YsQ0FBQzt5QkFDSCxDQUFDO3FCQUNIO3dEQUd1QyxJQUFJO3NCQUEzQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUVFLFFBQVE7c0JBQS9DLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRXpCLEtBQUs7c0JBQWpCLEtBQUs7Z0JBaUJGLEVBQUU7c0JBREwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiAqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvcHlyaWdodCBNb25rZXkgRXhjaGFuZ2UuIEFsbCBSaWdodHMgUmVzZXJ2ZWRcbiAqIFRoaXMgc3R5bGUgZ3VpZGUgd2FzIGRldmVsb3BlZCBieSBNb25rZXkgRXhjaGFuZ2UgVGVhbVxuICogTUlUIExpY2VuY2VcbiAqKioqKioqKioqKioqKioqKioqKioqKioqICovXG5pbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZEdlbmVyYXRvciwgVXRpbEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vbmtleS1hY2NvcmRpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBVdGlsSWNvbkNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9hY2NvcmRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYWNjb3JkaW9uLmNvbXBvbmVudC5zY3NzJyxcbiAgaG9zdDoge1xuICAgICdkYXRhLXRlc3RpZCc6ICdtb25rZXktYWNjb3JkaW9uJyxcbiAgICAnW2NsYXNzLmRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgJ1thdHRyLmlkXSc6ICdpZCcsXG4gICAgJ1tpZF0nOiAnaWQnXG4gIH0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdjb250ZW50JywgW1xuICAgICAgc3RhdGUoXG4gICAgICAgICd2b2lkJyxcbiAgICAgICAgc3R5bGUoe1xuICAgICAgICAgIGhlaWdodDogJzBweCdcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgJzMwMG1zIGVhc2UtaW4tb3V0JyxcbiAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICBoZWlnaHQ6ICcqJ1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIF0pLFxuICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICczMDBtcyBlYXNlLWluLW91dCcsXG4gICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgaGVpZ2h0OiAnMHB4J1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIF0pXG4gICAgXSlcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBNb25rZXlBY2NvcmRpb25Db21wb25lbnQge1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgb3BlbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHNldCB0aXRsZShkYXRhOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgdGhpcy50aXRsZVJlZiA9IGRhdGE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGl0bGVTdHIgPSBkYXRhO1xuICAgIH1cbiAgfVxuXG4gIHRpdGxlU3RyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgdGl0bGVSZWY6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIF91aWQgPSBpbmplY3QoSWRHZW5lcmF0b3IpLmdldElkKCdtb25rZXktYWNjb3JkaW9uLScpO1xuXG4gIHByb3RlY3RlZCBfaWQhOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2lkO1xuICB9XG5cbiAgc2V0IGlkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9pZCA9IHZhbHVlIHx8IHRoaXMuX3VpZDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWFzc2lnblxuICAgIHRoaXMuaWQgPSB0aGlzLmlkO1xuICB9XG5cbiAgb25DbGljaygpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJoZWFkZXJcIiAoY2xpY2spPVwib25DbGljaygpXCI+XG4gIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxuICAgIEBpZiAodGl0bGVSZWYpIHtcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aXRsZVJlZlwiIC8+XG4gICAgfSBAZWxzZSB7XG4gICAgICB7eyB0aXRsZVN0ciB9fVxuICAgIH1cbiAgPC9kaXY+XG4gIDx1dGlsLWljb24gY2xhc3M9XCJpY29uXCIgbmFtZT1cImFycm93RG93blwiIFtjbGFzcy5yb3RhdGVkXT1cIm9wZW5cIiAvPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiY29udGVudC13cmFwcGVyXCI+XG4gIEBpZiAob3Blbikge1xuICAgIDxkaXYgW0Bjb250ZW50XT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=
@@ -23,7 +23,7 @@ export class MonkeyActionBarComponent {
23
23
  </span>
24
24
 
25
25
  <ng-content></ng-content>
26
- }`, isInline: true, styles: ["monkey-action-bar{background-color:var(--mecx-color-white);border-radius:12px;position:fixed;bottom:60px;gap:24px;display:none;align-items:center;padding:4px 4px 4px 24px;border:2px solid var(--mecx-color-gray-200);box-shadow:0 8px 12px -4px #2f32373d,0 8px 8px #2f323705,0 16px 16px 8px #2f323729}monkey-action-bar.center{left:50%;transform:translate(-50%)}monkey-action-bar.right{right:60px}monkey-action-bar.left{left:60px}monkey-action-bar.open{display:flex}@media (851px < width < 1315px){monkey-action-bar{left:60px!important;transform:translate(0)!important}}@media (width < 852px){monkey-action-bar{flex-direction:column;padding:16px}monkey-action-bar>*:before{content:initial!important;padding:16px!important}}@media (width < 450px){monkey-action-bar{flex-direction:column;left:24px!important;right:24px!important;bottom:24px!important;transform:translate(0)!important}monkey-action-bar>*:before{content:initial!important;padding:16px!important}}monkey-action-bar>*:not(:first-child){flex-shrink:0;display:inline-flex}monkey-action-bar>*:not(:first-child):before{content:\"\";display:flex;box-sizing:border-box;width:1px;background-color:var(--mecx-color-gray-200);margin-right:24px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
26
+ }`, isInline: true, styles: ["monkey-action-bar{background-color:var(--mecx-color-white);border-radius:12px;position:fixed;bottom:60px;gap:24px;display:none;align-items:center;padding:4px 4px 4px 24px;border:2px solid var(--mecx-color-gray-200);box-shadow:0 8px 12px -4px var(--mecx-color-box-shadow),0 8px 8px 0 var(--mecx-color-box-shadow),0 16px 16px 8px var(--mecx-color-box-shadow);z-index:999}monkey-action-bar.center{left:50%;transform:translate(-50%)}monkey-action-bar.right{right:60px}monkey-action-bar.left{left:60px}monkey-action-bar.open{display:flex}@media (851px < width < 1315px){monkey-action-bar{left:60px!important;transform:translate(0)!important}}@media (width < 852px){monkey-action-bar{flex-direction:column;padding:16px}monkey-action-bar>*:before{content:initial!important;padding:16px!important}}@media (width < 450px){monkey-action-bar{flex-direction:column;left:24px!important;right:24px!important;bottom:24px!important;transform:translate(0)!important}monkey-action-bar>*:before{content:initial!important;padding:16px!important}}monkey-action-bar>*:not(:first-child){flex-shrink:0;display:inline-flex}monkey-action-bar>*:not(:first-child):before{content:\"\";display:flex;box-sizing:border-box;width:1px;background-color:var(--mecx-color-gray-200);margin-right:24px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
27
27
  }
28
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyActionBarComponent, decorators: [{
29
29
  type: Component,
@@ -38,9 +38,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
38
38
  '[attr.id]': 'id',
39
39
  '[id]': 'id',
40
40
  '[class.open]': 'open()'
41
- }, styles: ["monkey-action-bar{background-color:var(--mecx-color-white);border-radius:12px;position:fixed;bottom:60px;gap:24px;display:none;align-items:center;padding:4px 4px 4px 24px;border:2px solid var(--mecx-color-gray-200);box-shadow:0 8px 12px -4px #2f32373d,0 8px 8px #2f323705,0 16px 16px 8px #2f323729}monkey-action-bar.center{left:50%;transform:translate(-50%)}monkey-action-bar.right{right:60px}monkey-action-bar.left{left:60px}monkey-action-bar.open{display:flex}@media (851px < width < 1315px){monkey-action-bar{left:60px!important;transform:translate(0)!important}}@media (width < 852px){monkey-action-bar{flex-direction:column;padding:16px}monkey-action-bar>*:before{content:initial!important;padding:16px!important}}@media (width < 450px){monkey-action-bar{flex-direction:column;left:24px!important;right:24px!important;bottom:24px!important;transform:translate(0)!important}monkey-action-bar>*:before{content:initial!important;padding:16px!important}}monkey-action-bar>*:not(:first-child){flex-shrink:0;display:inline-flex}monkey-action-bar>*:not(:first-child):before{content:\"\";display:flex;box-sizing:border-box;width:1px;background-color:var(--mecx-color-gray-200);margin-right:24px}\n"] }]
41
+ }, styles: ["monkey-action-bar{background-color:var(--mecx-color-white);border-radius:12px;position:fixed;bottom:60px;gap:24px;display:none;align-items:center;padding:4px 4px 4px 24px;border:2px solid var(--mecx-color-gray-200);box-shadow:0 8px 12px -4px var(--mecx-color-box-shadow),0 8px 8px 0 var(--mecx-color-box-shadow),0 16px 16px 8px var(--mecx-color-box-shadow);z-index:999}monkey-action-bar.center{left:50%;transform:translate(-50%)}monkey-action-bar.right{right:60px}monkey-action-bar.left{left:60px}monkey-action-bar.open{display:flex}@media (851px < width < 1315px){monkey-action-bar{left:60px!important;transform:translate(0)!important}}@media (width < 852px){monkey-action-bar{flex-direction:column;padding:16px}monkey-action-bar>*:before{content:initial!important;padding:16px!important}}@media (width < 450px){monkey-action-bar{flex-direction:column;left:24px!important;right:24px!important;bottom:24px!important;transform:translate(0)!important}monkey-action-bar>*:before{content:initial!important;padding:16px!important}}monkey-action-bar>*:not(:first-child){flex-shrink:0;display:inline-flex}monkey-action-bar>*:not(:first-child):before{content:\"\";display:flex;box-sizing:border-box;width:1px;background-color:var(--mecx-color-gray-200);margin-right:24px}\n"] }]
42
42
  }], propDecorators: { classes: [{
43
43
  type: HostBinding,
44
44
  args: ['class']
45
45
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2FjdGlvbi1iYXIvYWN0aW9uLWJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NkJBSTZCO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQXNCakYsTUFBTSxPQUFPLHdCQUF3QjtJQXBCckM7UUEwQkUsVUFBSyxHQUFHLEtBQUssRUFBVSxDQUFDO1FBRXhCLGFBQVEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUUzQixTQUFJLEdBQUcsS0FBSyxFQUFXLENBQUM7S0FDekI7SUFWQyxJQUNJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QixDQUFDOytHQUpVLHdCQUF3QjttR0FBeEIsd0JBQXdCLG1tQkFkekI7Ozs7OztJQU1SLG12Q0FWUSxZQUFZOzs0RkFrQlgsd0JBQXdCO2tCQXBCcEMsU0FBUztvQ0FDTyxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsWUFBWSxDQUFDLFlBQ2IsbUJBQW1CLGNBQ2pCLElBQUksWUFFTjs7Ozs7O0lBTVIsUUFDSTt3QkFDSixhQUFhLEVBQUUsbUJBQW1CO3dCQUNsQyxXQUFXLEVBQUUsSUFBSTt3QkFDakIsTUFBTSxFQUFFLElBQUk7d0JBQ1osY0FBYyxFQUFFLFFBQVE7cUJBQ3pCOzhCQUlHLE9BQU87c0JBRFYsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiLyoqICoqKioqKioqKioqKioqKioqKioqKioqKlxuICogQ29weXJpZ2h0IE1vbmtleSBFeGNoYW5nZS4gQWxsIFJpZ2h0cyBSZXNlcnZlZFxuICogVGhpcyBzdHlsZSBndWlkZSB3YXMgZGV2ZWxvcGVkIGJ5IE1vbmtleSBFeGNoYW5nZSBUZWFtXG4gKiBNSVQgTGljZW5jZVxuICoqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBpbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBzZWxlY3RvcjogJ21vbmtleS1hY3Rpb24tYmFyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc3R5bGVVcmw6ICcuL2FjdGlvbi1iYXIuY29tcG9uZW50LnNjc3MnLFxuICB0ZW1wbGF0ZTogYEBpZiAob3BlbigpKSB7XG4gICAgPHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDEzcHhcIiBkYXRhLXRlc3RpZD1cImxhYmVsXCIgKm5nSWY9XCJsYWJlbCgpIGFzIGxiXCI+XG4gICAgICB7eyBsYiB9fVxuICAgIDwvc3Bhbj5cblxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgfWAsXG4gIGhvc3Q6IHtcbiAgICAnZGF0YS10ZXN0aWQnOiAnbW9ua2V5LWFjdGlvbi1iYXInLFxuICAgICdbYXR0ci5pZF0nOiAnaWQnLFxuICAgICdbaWRdJzogJ2lkJyxcbiAgICAnW2NsYXNzLm9wZW5dJzogJ29wZW4oKSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBNb25rZXlBY3Rpb25CYXJDb21wb25lbnQge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGNsYXNzZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMucG9zaXRpb24oKTtcbiAgfVxuXG4gIGxhYmVsID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIHBvc2l0aW9uID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIG9wZW4gPSBpbnB1dDxib29sZWFuPigpO1xufVxuIl19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2FjdGlvbi1iYXIvYWN0aW9uLWJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NkJBSTZCO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQXNCakYsTUFBTSxPQUFPLHdCQUF3QjtJQXBCckM7UUEwQkUsVUFBSyxHQUFHLEtBQUssRUFBVSxDQUFDO1FBRXhCLGFBQVEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUUzQixTQUFJLEdBQUcsS0FBSyxFQUFXLENBQUM7S0FDekI7SUFWQyxJQUNJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QixDQUFDOytHQUpVLHdCQUF3QjttR0FBeEIsd0JBQXdCLG1tQkFkekI7Ozs7OztJQU1SLDB6Q0FWUSxZQUFZOzs0RkFrQlgsd0JBQXdCO2tCQXBCcEMsU0FBUztvQ0FDTyxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsWUFBWSxDQUFDLFlBQ2IsbUJBQW1CLGNBQ2pCLElBQUksWUFFTjs7Ozs7O0lBTVIsUUFDSTt3QkFDSixhQUFhLEVBQUUsbUJBQW1CO3dCQUNsQyxXQUFXLEVBQUUsSUFBSTt3QkFDakIsTUFBTSxFQUFFLElBQUk7d0JBQ1osY0FBYyxFQUFFLFFBQVE7cUJBQ3pCOzhCQUlHLE9BQU87c0JBRFYsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiLyoqICoqKioqKioqKioqKioqKioqKioqKioqKlxuICogQ29weXJpZ2h0IE1vbmtleSBFeGNoYW5nZS4gQWxsIFJpZ2h0cyBSZXNlcnZlZFxuICogVGhpcyBzdHlsZSBndWlkZSB3YXMgZGV2ZWxvcGVkIGJ5IE1vbmtleSBFeGNoYW5nZSBUZWFtXG4gKiBNSVQgTGljZW5jZVxuICoqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBpbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBzZWxlY3RvcjogJ21vbmtleS1hY3Rpb24tYmFyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc3R5bGVVcmw6ICcuL2FjdGlvbi1iYXIuY29tcG9uZW50LnNjc3MnLFxuICB0ZW1wbGF0ZTogYEBpZiAob3BlbigpKSB7XG4gICAgPHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDEzcHhcIiBkYXRhLXRlc3RpZD1cImxhYmVsXCIgKm5nSWY9XCJsYWJlbCgpIGFzIGxiXCI+XG4gICAgICB7eyBsYiB9fVxuICAgIDwvc3Bhbj5cblxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgfWAsXG4gIGhvc3Q6IHtcbiAgICAnZGF0YS10ZXN0aWQnOiAnbW9ua2V5LWFjdGlvbi1iYXInLFxuICAgICdbYXR0ci5pZF0nOiAnaWQnLFxuICAgICdbaWRdJzogJ2lkJyxcbiAgICAnW2NsYXNzLm9wZW5dJzogJ29wZW4oKSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBNb25rZXlBY3Rpb25CYXJDb21wb25lbnQge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGNsYXNzZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMucG9zaXRpb24oKTtcbiAgfVxuXG4gIGxhYmVsID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIHBvc2l0aW9uID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIG9wZW4gPSBpbnB1dDxib29sZWFuPigpO1xufVxuIl19
@@ -4,7 +4,7 @@
4
4
  * MIT Licence
5
5
  ************************* */
6
6
  import { CommonModule } from '@angular/common';
7
- import { Component, HostListener, inject, Input, ViewEncapsulation } from '@angular/core';
7
+ import { Component, ElementRef, HostListener, inject, Input, ViewEncapsulation } from '@angular/core';
8
8
  import { IdGenerator } from '../../../utils/id-generator';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "@angular/common";
@@ -18,6 +18,7 @@ export class MonkeyButtonComponent {
18
18
  constructor() {
19
19
  this.size = 'md';
20
20
  this.type = 'primary';
21
+ this.elementRef = inject(ElementRef);
21
22
  this._uid = inject(IdGenerator).getId('monkey-button-');
22
23
  // eslint-disable-next-line no-self-assign
23
24
  this.id = this.id;
@@ -29,6 +30,9 @@ export class MonkeyButtonComponent {
29
30
  event.stopImmediatePropagation();
30
31
  }
31
32
  }
33
+ get element() {
34
+ return this.elementRef.nativeElement;
35
+ }
32
36
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33
37
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MonkeyButtonComponent, isStandalone: true, selector: "monkey-button", inputs: { disabled: "disabled", size: "size", type: "type", id: "id" }, host: { attributes: { "data-testid": "monkey-button" }, listeners: { "click": "onClick($event)" }, properties: { "attr.id": "id", "id": "id" } }, ngImport: i0, template: "<button class=\"mecx-button\" [ngClass]=\"type + ' ' + size\" [disabled]=\"disabled\">\n <div class=\"content\">\n <ng-content select=\"[first]\"></ng-content>\n <span><ng-content></ng-content></span>\n <ng-content select=\"[last]\"></ng-content>\n </div>\n</button>\n", styles: ["monkey-button{display:inline-block}monkey-button .mecx-button{width:100%;display:flex;align-items:center;justify-content:center;border-radius:8px;cursor:pointer;transition:background-color .15s ease-out,color .15s ease-out}monkey-button .mecx-button .content{display:flex;align-items:center;justify-content:center;gap:8px;padding:0 12px;flex-shrink:0;letter-spacing:.48px;font-weight:400;transition:transform .2s cubic-bezier(0,.5,.2,1)}monkey-button .mecx-button .content span{width:100%}monkey-button .mecx-button .content .mk-i{display:flex}monkey-button .mecx-button.secondary{border:2px solid var(--mecx-color-gray-400);background:unset}monkey-button .mecx-button.secondary:disabled{border-width:1px}monkey-button .mecx-button:disabled{background:var(--mecx-color-gray-100)!important;color:var(--mecx-color-gray-400)!important;cursor:not-allowed!important}monkey-button .mecx-button:disabled.secondary{background:unset!important;border:1px solid var(--mecx-color-gray-400)!important}monkey-button .mecx-button.primary{color:var(--mecx-color-theme-contrast-main);background:var(--mecx-color-theme-main)}monkey-button .mecx-button.primary:hover:not(:disabled){background:var(--mecx-color-theme-600)}monkey-button .mecx-button.secondary:hover:not(:disabled){color:var(--mecx-color-theme-main)}monkey-button .mecx-button.tertiary{background:unset}monkey-button .mecx-button.tertiary span{text-decoration:underline}monkey-button .mecx-button.tertiary:disabled{background:unset!important;border-width:1px}monkey-button .mecx-button.tertiary:hover:not(:disabled){color:var(--mecx-color-theme-main)}monkey-button .mecx-button.sm{height:32px}monkey-button .mecx-button.sm .mk-i{font-size:20px}monkey-button .mecx-button.md{height:40px}monkey-button .mecx-button.md .mk-i{font-size:22px}monkey-button .mecx-button.lg{height:48px;text-align:center;font-size:16px;font-style:normal;font-weight:400;line-height:24px;letter-spacing:.48px}monkey-button .mecx-button.lg .mk-i{font-size:24px}monkey-button .mecx-button.full-width{width:100%}monkey-button .mecx-button:focus{outline:2px solid var(--mecx-color-theme-main);outline-offset:1px}monkey-button .mecx-button:active:not(:disabled).primary{background:var(--mecx-color-theme-main);opacity:.8;outline:none}monkey-button .mecx-button:active:not(:disabled) .content{transform:scale(.8)}:host:has(.mecx-button:active) .mecx-button{outline:unset;outline-offset:unset}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], encapsulation: i0.ViewEncapsulation.None }); }
34
38
  }
@@ -51,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
51
55
  type: HostListener,
52
56
  args: ['click', ['$event']]
53
57
  }] } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1zdHlsZS1ndWlkZS12Mi9zcmMvbGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NkJBSTZCO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBaUIxRCxNQUFNLE9BQU8scUJBQXFCO0lBV2hDLElBQ0ksRUFBRTtRQUNKLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBSSxFQUFFLENBQUMsS0FBYTtRQUNsQixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRDtRQWpCUyxTQUFJLEdBQWUsSUFBSSxDQUFDO1FBRXhCLFNBQUksR0FBcUIsU0FBUyxDQUFDO1FBRWxDLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFjM0QsMENBQTBDO1FBQzFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBR0QsT0FBTyxDQUFDLEtBQW1CO1FBQ3pCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsS0FBSyxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7K0dBaENVLHFCQUFxQjttR0FBckIscUJBQXFCLG1TQ3hCbEMseVJBT0EsaTZFRE1ZLFlBQVk7OzRGQVdYLHFCQUFxQjtrQkFiakMsU0FBUztvQ0FDTyxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsWUFBWSxDQUFDLFlBQ2IsZUFBZSxjQUNiLElBQUksUUFHVjt3QkFDSixhQUFhLEVBQUUsZUFBZTt3QkFDOUIsV0FBVyxFQUFFLElBQUk7d0JBQ2pCLE1BQU0sRUFBRSxJQUFJO3FCQUNiO3dEQUdRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFPRixFQUFFO3NCQURMLEtBQUs7Z0JBZU4sT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiAqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvcHlyaWdodCBNb25rZXkgRXhjaGFuZ2UuIEFsbCBSaWdodHMgUmVzZXJ2ZWRcbiAqIFRoaXMgc3R5bGUgZ3VpZGUgd2FzIGRldmVsb3BlZCBieSBNb25rZXkgRXhjaGFuZ2UgVGVhbVxuICogTUlUIExpY2VuY2VcbiAqKioqKioqKioqKioqKioqKioqKioqKioqICovXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIGluamVjdCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZEdlbmVyYXRvciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2lkLWdlbmVyYXRvcic7XG5pbXBvcnQgeyBNb25rZXlCdXR0b25UeXBlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9idXR0b24nO1xuaW1wb3J0IHsgTW9ua2V5U2l6ZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc2l6ZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHNlbGVjdG9yOiAnbW9ua2V5LWJ1dHRvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHN0eWxlVXJsOiAnLi9idXR0b24uY29tcG9uZW50LnNjc3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgaG9zdDoge1xuICAgICdkYXRhLXRlc3RpZCc6ICdtb25rZXktYnV0dG9uJyxcbiAgICAnW2F0dHIuaWRdJzogJ2lkJyxcbiAgICAnW2lkXSc6ICdpZCdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBNb25rZXlCdXR0b25Db21wb25lbnQge1xuICBASW5wdXQoKSBkaXNhYmxlZCE6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgc2l6ZTogTW9ua2V5U2l6ZSA9ICdtZCc7XG5cbiAgQElucHV0KCkgdHlwZTogTW9ua2V5QnV0dG9uVHlwZSA9ICdwcmltYXJ5JztcblxuICBwcm90ZWN0ZWQgX3VpZCA9IGluamVjdChJZEdlbmVyYXRvcikuZ2V0SWQoJ21vbmtleS1idXR0b24tJyk7XG5cbiAgcHJvdGVjdGVkIF9pZCE6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5faWQ7XG4gIH1cblxuICBzZXQgaWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2lkID0gdmFsdWUgfHwgdGhpcy5fdWlkO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtYXNzaWduXG4gICAgdGhpcy5pZCA9IHRoaXMuaWQ7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIG9uQ2xpY2soZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxidXR0b24gY2xhc3M9XCJtZWN4LWJ1dHRvblwiIFtuZ0NsYXNzXT1cInR5cGUgKyAnICcgKyBzaXplXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZpcnN0XVwiPjwvbmctY29udGVudD5cbiAgICA8c3Bhbj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9zcGFuPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltsYXN0XVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2J1dHRvbj5cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1zdHlsZS1ndWlkZS12Mi9zcmMvbGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NkJBSTZCO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7QUFpQjFELE1BQU0sT0FBTyxxQkFBcUI7SUFhaEMsSUFDSSxFQUFFO1FBQ0osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLEVBQUUsQ0FBQyxLQUFhO1FBQ2xCLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVEO1FBbkJTLFNBQUksR0FBZSxJQUFJLENBQUM7UUFFeEIsU0FBSSxHQUFxQixTQUFTLENBQUM7UUFFM0IsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV2QyxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBYzNELDBDQUEwQztRQUMxQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUdELE9BQU8sQ0FBQyxLQUFtQjtRQUN6QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN2QyxDQUFDOytHQXRDVSxxQkFBcUI7bUdBQXJCLHFCQUFxQixtU0MvQmxDLHlSQU9BLGk2RURhWSxZQUFZOzs0RkFXWCxxQkFBcUI7a0JBYmpDLFNBQVM7b0NBQ08saUJBQWlCLENBQUMsSUFBSSxXQUM1QixDQUFDLFlBQVksQ0FBQyxZQUNiLGVBQWUsY0FDYixJQUFJLFFBR1Y7d0JBQ0osYUFBYSxFQUFFLGVBQWU7d0JBQzlCLFdBQVcsRUFBRSxJQUFJO3dCQUNqQixNQUFNLEVBQUUsSUFBSTtxQkFDYjt3REFHUSxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBU0YsRUFBRTtzQkFETCxLQUFLO2dCQWVOLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb3B5cmlnaHQgTW9ua2V5IEV4Y2hhbmdlLiBBbGwgUmlnaHRzIFJlc2VydmVkXG4gKiBUaGlzIHN0eWxlIGd1aWRlIHdhcyBkZXZlbG9wZWQgYnkgTW9ua2V5IEV4Y2hhbmdlIFRlYW1cbiAqIE1JVCBMaWNlbmNlXG4gKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElkR2VuZXJhdG9yIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaWQtZ2VuZXJhdG9yJztcbmltcG9ydCB7IE1vbmtleUJ1dHRvblR5cGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2J1dHRvbic7XG5pbXBvcnQgeyBNb25rZXlTaXplIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zaXplcyc7XG5cbkBDb21wb25lbnQoe1xuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgc2VsZWN0b3I6ICdtb25rZXktYnV0dG9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc3R5bGVVcmw6ICcuL2J1dHRvbi5jb21wb25lbnQuc2NzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7XG4gICAgJ2RhdGEtdGVzdGlkJzogJ21vbmtleS1idXR0b24nLFxuICAgICdbYXR0ci5pZF0nOiAnaWQnLFxuICAgICdbaWRdJzogJ2lkJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIE1vbmtleUJ1dHRvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGRpc2FibGVkITogYm9vbGVhbjtcblxuICBASW5wdXQoKSBzaXplOiBNb25rZXlTaXplID0gJ21kJztcblxuICBASW5wdXQoKSB0eXBlOiBNb25rZXlCdXR0b25UeXBlID0gJ3ByaW1hcnknO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICBwcm90ZWN0ZWQgX3VpZCA9IGluamVjdChJZEdlbmVyYXRvcikuZ2V0SWQoJ21vbmtleS1idXR0b24tJyk7XG5cbiAgcHJvdGVjdGVkIF9pZCE6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5faWQ7XG4gIH1cblxuICBzZXQgaWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2lkID0gdmFsdWUgfHwgdGhpcy5fdWlkO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtYXNzaWduXG4gICAgdGhpcy5pZCA9IHRoaXMuaWQ7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIG9uQ2xpY2soZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBnZXQgZWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICB9XG59XG4iLCI8YnV0dG9uIGNsYXNzPVwibWVjeC1idXR0b25cIiBbbmdDbGFzc109XCJ0eXBlICsgJyAnICsgc2l6ZVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmaXJzdF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPHNwYW4+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pjwvc3Bhbj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbGFzdF1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9idXR0b24+XG4iXX0=
@@ -7,9 +7,8 @@ import { animate, keyframes, style, transition, trigger } from '@angular/animati
7
7
  import { booleanAttribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, DestroyRef, EventEmitter, forwardRef, inject, Injector, Input, Output } from '@angular/core';
8
8
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
9
9
  import { FormControlDirective, FormControlName, FormGroupDirective, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, NgControl, NgModel, ReactiveFormsModule } from '@angular/forms';
10
- import { IdGenerator } from '../../../utils';
11
- import { MonkeyHelper, MonkeyInfo, MonkeyLabel } from '../../directives';
12
- import { MonkeyIconsService } from '../../services';
10
+ import { IdGenerator, UtilIconComponent } from '../../../utils';
11
+ import { MonkeyHelperDirective, MonkeyInfoDirective, MonkeyLabelDirective } from '../../directives';
13
12
  import * as i0 from "@angular/core";
14
13
  export class MonkeyCheckboxComponent {
15
14
  constructor() {
@@ -20,12 +19,9 @@ export class MonkeyCheckboxComponent {
20
19
  this.size = 'md';
21
20
  this.onChange = new EventEmitter();
22
21
  this._destroyRef = inject(DestroyRef);
23
- this.icons = inject(MonkeyIconsService);
24
22
  this.idGenerator = inject(IdGenerator);
25
23
  this.injector = inject(Injector);
26
24
  this.cdr = inject(ChangeDetectorRef);
27
- this.iconCheck = this.icons.check;
28
- this.iconIndeterminate = this.icons.minus;
29
25
  this.inputId = this.idGenerator.getId('input-checkbox-');
30
26
  this.value = false;
31
27
  this.isFocused = false;
@@ -127,7 +123,7 @@ export class MonkeyCheckboxComponent {
127
123
  useExisting: MonkeyCheckboxComponent,
128
124
  multi: true
129
125
  }
130
- ], queries: [{ propertyName: "infoChildren", predicate: MonkeyInfo, descendants: true }, { propertyName: "labelChildren", predicate: MonkeyLabel, descendants: true }, { propertyName: "helperChildren", predicate: MonkeyHelper, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (hasHeader) {\n <div class=\"header\">\n <ng-content select=\"monkey-label\" />\n <ng-content select=\"monkey-helper\" />\n </div>\n}\n<label [attr.for]=\"inputId\">\n <input\n type=\"checkbox\"\n [checked]=\"value\"\n [indeterminate]=\"indeterminate\"\n [disabled]=\"disabled\"\n (change)=\"onChangeEvent($event)\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n [id]=\"inputId\"\n [required]=\"required\"\n />\n <span class=\"checkbox\">\n @if (indeterminate) {\n <div class=\"icon\" @iconAnimation [innerHTML]=\"iconIndeterminate\"></div>\n } @else if (value) {\n <div class=\"icon\" @iconAnimation [innerHTML]=\"iconCheck\"></div>\n }\n </span>\n <span class=\"checkbox-label\">\n <ng-content></ng-content>\n </span>\n</label>\n@if (showFooter) {\n @switch (getFooterMessages()) {\n @case ('error') {\n <ng-content select=\"monkey-error\" />\n }\n @case ('info') {\n <ng-content select=\"monkey-info\" />\n }\n }\n}\n", styles: [":host{display:inline-flex;flex-direction:column;gap:6px}:host .header{display:flex;justify-content:space-between;gap:6px}:host label{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}:host .checkbox{display:block;width:24px;height:24px;border:2px solid var(--mecx-color-gray-400);background-color:#fff;border-radius:8px;position:relative;transition:background-color .2s ease;box-sizing:border-box}:host .checkbox .icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}:host .checkbox-label{color:var(--mecx-color-gray-900);font-size:14px;font-weight:400;line-height:24px}:host input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}:host.sm .checkbox{width:16px;height:16px;border-radius:4px}:host.sm .checkbox-label{line-height:16px}:host.lg .checkbox-label{font-size:16px}:host.mecx-checkbox-checked .checkbox,:host.mecx-checkbox-indeterminate .checkbox{border:none;background-color:var(--mecx-color-theme-main)}:host.mecx-checkbox-focused .checkbox{outline:2px solid var(--mecx-color-theme-main);outline-offset:1px}:host.mecx-disabled .checkbox-label{color:var(--mecx-color-gray-400)}:host.mecx-disabled .checkbox{background-color:var(--mecx-color-gray-50);border-color:var(--mecx-color-gray-200)}:host.mecx-checkbox-invalid:not(.mecx-checkbox-indeterminate) .checkbox{border:2px solid var(--mecx-color-error-700)}:host.mecx-checkbox-checked.mecx-disabled .checkbox,:host.mecx-checkbox-indeterminate.mecx-disabled .checkbox{background-color:var(--mecx-color-gray-400)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FormsModule }], animations: [
126
+ ], queries: [{ propertyName: "infoChildren", predicate: MonkeyInfoDirective, descendants: true }, { propertyName: "labelChildren", predicate: MonkeyLabelDirective, descendants: true }, { propertyName: "helperChildren", predicate: MonkeyHelperDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (hasHeader) {\n <div class=\"header\">\n <ng-content select=\"monkey-label\" />\n <ng-content select=\"monkey-helper\" />\n </div>\n}\n<label [attr.for]=\"inputId\">\n <input\n type=\"checkbox\"\n [checked]=\"value\"\n [indeterminate]=\"indeterminate\"\n [disabled]=\"disabled\"\n (change)=\"onChangeEvent($event)\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n [id]=\"inputId\"\n [required]=\"required\"\n />\n <span class=\"checkbox\">\n @if (indeterminate) {\n <util-icon class=\"icon\" name=\"minus\" />\n } @else if (value) {\n <util-icon class=\"icon\" name=\"check\" />\n }\n </span>\n <span class=\"checkbox-label\">\n <ng-content></ng-content>\n </span>\n</label>\n@if (showFooter) {\n @switch (getFooterMessages()) {\n @case ('error') {\n <ng-content select=\"monkey-error\" />\n }\n @case ('info') {\n <ng-content select=\"monkey-info\" />\n }\n }\n}\n", styles: [":host{display:inline-flex;flex-direction:column;gap:6px}:host .header{display:flex;justify-content:space-between;gap:6px}:host label{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}:host .checkbox{display:block;width:24px;height:24px;border:2px solid var(--mecx-color-gray-400);background-color:#fff;border-radius:8px;position:relative;transition:background-color .2s ease;box-sizing:border-box}:host .checkbox .icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}:host .checkbox-label{color:var(--mecx-color-gray-900);font-size:14px;font-weight:400;line-height:24px}:host input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}:host.sm .checkbox{width:16px;height:16px;border-radius:4px}:host.sm .checkbox-label{line-height:16px}:host.lg .checkbox-label{font-size:16px}:host.mecx-checkbox-checked .checkbox,:host.mecx-checkbox-indeterminate .checkbox{border:none;background-color:var(--mecx-color-theme-main)}:host.mecx-checkbox-focused .checkbox{outline:2px solid var(--mecx-color-theme-main);outline-offset:1px}:host.mecx-disabled .checkbox-label{color:var(--mecx-color-gray-400)}:host.mecx-disabled .checkbox{background-color:var(--mecx-color-gray-50);border-color:var(--mecx-color-gray-200)}:host.mecx-checkbox-invalid:not(.mecx-checkbox-indeterminate) .checkbox{border:2px solid var(--mecx-color-error-700)}:host.mecx-checkbox-checked.mecx-disabled .checkbox,:host.mecx-checkbox-indeterminate.mecx-disabled .checkbox{background-color:var(--mecx-color-gray-400)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: UtilIconComponent, selector: "util-icon", inputs: ["name"] }], animations: [
131
127
  trigger('iconAnimation', [
132
128
  transition(':enter', [
133
129
  animate('250ms ease-in-out', keyframes([
@@ -146,7 +142,7 @@ export class MonkeyCheckboxComponent {
146
142
  }
147
143
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyCheckboxComponent, decorators: [{
148
144
  type: Component,
149
- args: [{ selector: 'monkey-checkbox', standalone: true, imports: [ReactiveFormsModule, FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, animations: [
145
+ args: [{ selector: 'monkey-checkbox', standalone: true, imports: [ReactiveFormsModule, FormsModule, UtilIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, animations: [
150
146
  trigger('iconAnimation', [
151
147
  transition(':enter', [
152
148
  animate('250ms ease-in-out', keyframes([
@@ -187,16 +183,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
187
183
  '[class.sm]': 'size.includes("sm")',
188
184
  '[class.md]': 'size.includes("md")',
189
185
  '[class.lg]': 'size.includes("lg")'
190
- }, template: "@if (hasHeader) {\n <div class=\"header\">\n <ng-content select=\"monkey-label\" />\n <ng-content select=\"monkey-helper\" />\n </div>\n}\n<label [attr.for]=\"inputId\">\n <input\n type=\"checkbox\"\n [checked]=\"value\"\n [indeterminate]=\"indeterminate\"\n [disabled]=\"disabled\"\n (change)=\"onChangeEvent($event)\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n [id]=\"inputId\"\n [required]=\"required\"\n />\n <span class=\"checkbox\">\n @if (indeterminate) {\n <div class=\"icon\" @iconAnimation [innerHTML]=\"iconIndeterminate\"></div>\n } @else if (value) {\n <div class=\"icon\" @iconAnimation [innerHTML]=\"iconCheck\"></div>\n }\n </span>\n <span class=\"checkbox-label\">\n <ng-content></ng-content>\n </span>\n</label>\n@if (showFooter) {\n @switch (getFooterMessages()) {\n @case ('error') {\n <ng-content select=\"monkey-error\" />\n }\n @case ('info') {\n <ng-content select=\"monkey-info\" />\n }\n }\n}\n", styles: [":host{display:inline-flex;flex-direction:column;gap:6px}:host .header{display:flex;justify-content:space-between;gap:6px}:host label{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}:host .checkbox{display:block;width:24px;height:24px;border:2px solid var(--mecx-color-gray-400);background-color:#fff;border-radius:8px;position:relative;transition:background-color .2s ease;box-sizing:border-box}:host .checkbox .icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}:host .checkbox-label{color:var(--mecx-color-gray-900);font-size:14px;font-weight:400;line-height:24px}:host input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}:host.sm .checkbox{width:16px;height:16px;border-radius:4px}:host.sm .checkbox-label{line-height:16px}:host.lg .checkbox-label{font-size:16px}:host.mecx-checkbox-checked .checkbox,:host.mecx-checkbox-indeterminate .checkbox{border:none;background-color:var(--mecx-color-theme-main)}:host.mecx-checkbox-focused .checkbox{outline:2px solid var(--mecx-color-theme-main);outline-offset:1px}:host.mecx-disabled .checkbox-label{color:var(--mecx-color-gray-400)}:host.mecx-disabled .checkbox{background-color:var(--mecx-color-gray-50);border-color:var(--mecx-color-gray-200)}:host.mecx-checkbox-invalid:not(.mecx-checkbox-indeterminate) .checkbox{border:2px solid var(--mecx-color-error-700)}:host.mecx-checkbox-checked.mecx-disabled .checkbox,:host.mecx-checkbox-indeterminate.mecx-disabled .checkbox{background-color:var(--mecx-color-gray-400)}\n"] }]
186
+ }, template: "@if (hasHeader) {\n <div class=\"header\">\n <ng-content select=\"monkey-label\" />\n <ng-content select=\"monkey-helper\" />\n </div>\n}\n<label [attr.for]=\"inputId\">\n <input\n type=\"checkbox\"\n [checked]=\"value\"\n [indeterminate]=\"indeterminate\"\n [disabled]=\"disabled\"\n (change)=\"onChangeEvent($event)\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n [id]=\"inputId\"\n [required]=\"required\"\n />\n <span class=\"checkbox\">\n @if (indeterminate) {\n <util-icon class=\"icon\" name=\"minus\" />\n } @else if (value) {\n <util-icon class=\"icon\" name=\"check\" />\n }\n </span>\n <span class=\"checkbox-label\">\n <ng-content></ng-content>\n </span>\n</label>\n@if (showFooter) {\n @switch (getFooterMessages()) {\n @case ('error') {\n <ng-content select=\"monkey-error\" />\n }\n @case ('info') {\n <ng-content select=\"monkey-info\" />\n }\n }\n}\n", styles: [":host{display:inline-flex;flex-direction:column;gap:6px}:host .header{display:flex;justify-content:space-between;gap:6px}:host label{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}:host .checkbox{display:block;width:24px;height:24px;border:2px solid var(--mecx-color-gray-400);background-color:#fff;border-radius:8px;position:relative;transition:background-color .2s ease;box-sizing:border-box}:host .checkbox .icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}:host .checkbox-label{color:var(--mecx-color-gray-900);font-size:14px;font-weight:400;line-height:24px}:host input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}:host.sm .checkbox{width:16px;height:16px;border-radius:4px}:host.sm .checkbox-label{line-height:16px}:host.lg .checkbox-label{font-size:16px}:host.mecx-checkbox-checked .checkbox,:host.mecx-checkbox-indeterminate .checkbox{border:none;background-color:var(--mecx-color-theme-main)}:host.mecx-checkbox-focused .checkbox{outline:2px solid var(--mecx-color-theme-main);outline-offset:1px}:host.mecx-disabled .checkbox-label{color:var(--mecx-color-gray-400)}:host.mecx-disabled .checkbox{background-color:var(--mecx-color-gray-50);border-color:var(--mecx-color-gray-200)}:host.mecx-checkbox-invalid:not(.mecx-checkbox-indeterminate) .checkbox{border:2px solid var(--mecx-color-error-700)}:host.mecx-checkbox-checked.mecx-disabled .checkbox,:host.mecx-checkbox-indeterminate.mecx-disabled .checkbox{background-color:var(--mecx-color-gray-400)}\n"] }]
191
187
  }], propDecorators: { infoChildren: [{
192
188
  type: ContentChildren,
193
- args: [MonkeyInfo, { descendants: true }]
189
+ args: [MonkeyInfoDirective, { descendants: true }]
194
190
  }], labelChildren: [{
195
191
  type: ContentChildren,
196
- args: [MonkeyLabel, { descendants: true }]
192
+ args: [MonkeyLabelDirective, { descendants: true }]
197
193
  }], helperChildren: [{
198
194
  type: ContentChildren,
199
- args: [MonkeyHelper, { descendants: true }]
195
+ args: [MonkeyHelperDirective, { descendants: true }]
200
196
  }], disabled: [{
201
197
  type: Input,
202
198
  args: [{ transform: booleanAttribute }]
@@ -216,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
216
212
  }], value: [{
217
213
  type: Input
218
214
  }] } });
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LXN0eWxlLWd1aWRlLXYyL3NyYy9saWIvY29tcG9uZW50cy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OzZCQUk2QjtBQUM3QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JGLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUdMLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBR0wsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsV0FBVyxFQUNYLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsU0FBUyxFQUNULE9BQU8sRUFDUCxtQkFBbUIsRUFHcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBNERwRCxNQUFN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QyxXQUFXLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUkzQyxjQUFjO3NCQURyQixlQUFlO3VCQUFDLFlBQVksRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBR1osUUFBUTtzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFRSxhQUFhO3NCQUFwRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUVFLFFBQVE7c0JBQS9DLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRUUsVUFBVTtzQkFBakQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFN0IsSUFBSTtzQkFBWixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBb0JFLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiAqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvcHlyaWdodCBNb25rZXkgRXhjaGFuZ2UuIEFsbCBSaWdodHMgUmVzZXJ2ZWRcbiAqIFRoaXMgc3R5bGUgZ3VpZGUgd2FzIGRldmVsb3BlZCBieSBNb25rZXkgRXhjaGFuZ2UgVGVhbVxuICogTUlUIExpY2VuY2VcbiAqKioqKioqKioqKioqKioqKioqKioqKioqICovXG5pbXBvcnQgeyBhbmltYXRlLCBrZXlmcmFtZXMsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1xuICBib29sZWFuQXR0cmlidXRlLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBEZXN0cm95UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQ29udHJvbERpcmVjdGl2ZSxcbiAgRm9ybUNvbnRyb2xOYW1lLFxuICBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gIEZvcm1zTW9kdWxlLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgTmdDb250cm9sLFxuICBOZ01vZGVsLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3Jcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSWRHZW5lcmF0b3IgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBNb25rZXlIZWxwZXIsIE1vbmtleUluZm8sIE1vbmtleUxhYmVsIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBNb25rZXlJY29uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vbmtleS1jaGVja2JveCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignaWNvbkFuaW1hdGlvbicsIFtcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAnMjUwbXMgZWFzZS1pbi1vdXQnLFxuICAgICAgICAgIGtleWZyYW1lcyhbXG4gICAgICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3NjYWxlKDAuNyknIH0pLFxuICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICdzY2FsZSgxKScgfSlcbiAgICAgICAgICBdKVxuICAgICAgICApXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAnMjUwbXMgZWFzZS1pbi1vdXQnLFxuICAgICAgICAgIGtleWZyYW1lcyhbXG4gICAgICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3NjYWxlKDEpJyB9KSxcbiAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAnc2NhbGUoLjcpJyB9KVxuICAgICAgICAgIF0pXG4gICAgICAgIClcbiAgICAgIF0pXG4gICAgXSlcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuICAgICAgICByZXR1cm4gTW9ua2V5Q2hlY2tib3hDb21wb25lbnQ7XG4gICAgICB9KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgICB1c2VFeGlzdGluZzogTW9ua2V5Q2hlY2tib3hDb21wb25lbnQsXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgaG9zdDoge1xuICAgICdkYXRhLXRlc3RpZCc6ICdpbnB1dC1jaGVja2JveCcsXG4gICAgY2xhc3M6ICdtZWN4LWNoZWNrYm94JyxcbiAgICAnW2NsYXNzLm1lY3gtZGlzYWJsZWRdJzogJ2Rpc2FibGVkJyxcbiAgICAnW2NsYXNzLm1lY3gtY2hlY2tib3gtY2hlY2tlZF0nOiAndmFsdWUnLFxuICAgICdbY2xhc3MubWVjeC1jaGVja2JveC1mb2N1c2VkXSc6ICdpc0ZvY3VzZWQnLFxuICAgICdbY2xhc3MubWVjeC1jaGVja2JveC1pbmRldGVybWluYXRlXSc6ICdpbmRldGVybWluYXRlJyxcbiAgICAnW2NsYXNzLm1lY3gtY2hlY2tib3gtaW52YWxpZF0nOiAnc2hvd0ludmFsaWQnLFxuICAgICdbY2xhc3Muc21dJzogJ3NpemUuaW5jbHVkZXMoXCJzbVwiKScsXG4gICAgJ1tjbGFzcy5tZF0nOiAnc2l6ZS5pbmNsdWRlcyhcIm1kXCIpJyxcbiAgICAnW2NsYXNzLmxnXSc6ICdzaXplLmluY2x1ZGVzKFwibGdcIiknXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgTW9ua2V5Q2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzLCBPbkluaXQsIFZhbGlkYXRvciB7XG4gIEBDb250ZW50Q2hpbGRyZW4oTW9ua2V5SW5mbywgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBwcml2YXRlIGluZm9DaGlsZHJlbiE6IFF1ZXJ5TGlzdDxNb25rZXlJbmZvPjtcblxuICBAQ29udGVudENoaWxkcmVuKE1vbmtleUxhYmVsLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByaXZhdGUgbGFiZWxDaGlsZHJlbiE6IFF1ZXJ5TGlzdDxNb25rZXlMYWJlbD47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihNb25rZXlIZWxwZXIsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHJpdmF0ZSBoZWxwZXJDaGlsZHJlbiE6IFF1ZXJ5TGlzdDxNb25rZXlIZWxwZXI+O1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpbmRldGVybWluYXRlID0gZmFsc2U7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dGb290ZXIgPSB0cnVlO1xuXG4gIEBJbnB1dCgpIHNpemU6ICdzbScgfCAnbWQnIHwgJ2xnJyA9ICdtZCc7XG5cbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpY29ucyA9IGluamVjdChNb25rZXlJY29uc1NlcnZpY2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaWRHZW5lcmF0b3IgPSBpbmplY3QoSWRHZW5lcmF0b3IpO1xuXG4gIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIHByaXZhdGUgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+IHwgbnVsbCB8IHVuZGVmaW5lZDtcblxuICByZWFkb25seSBpY29uQ2hlY2sgPSB0aGlzLmljb25zLmNoZWNrO1xuXG4gIHJlYWRvbmx5IGljb25JbmRldGVybWluYXRlID0gdGhpcy5pY29ucy5taW51cztcblxuICByZWFkb25seSBpbnB1dElkID0gdGhpcy5pZEdlbmVyYXRvci5nZXRJZCgnaW5wdXQtY2hlY2tib3gtJyk7XG5cbiAgQElucHV0KCkgdmFsdWUgPSBmYWxzZTtcblxuICBpc0ZvY3VzZWQgPSBmYWxzZTtcblxuICBnZXQgc2hvd0ludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdG91Y2hlZCA9IHRoaXMuY29udHJvbD8udG91Y2hlZCB8fCBmYWxzZTtcbiAgICBjb25zdCBpbnZhbGlkID0gdGhpcy5jb250cm9sPy5pbnZhbGlkIHx8IGZhbHNlO1xuICAgIHJldHVybiAhdGhpcy5pc0ZvY3VzZWQgJiYgdG91Y2hlZCAmJiBpbnZhbGlkO1xuICB9XG5cbiAgZ2V0IGhhc0hlYWRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbENoaWxkcmVuLmxlbmd0aCA+IDAgfHwgdGhpcy5oZWxwZXJDaGlsZHJlbi5sZW5ndGggPiAwO1xuICB9XG5cbiAgZ2V0IGlzVG91Y2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sPy50b3VjaGVkID8/IGZhbHNlO1xuICB9XG5cbiAgZ2V0IGlzSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sPy5pbnZhbGlkID8/IGZhbHNlO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgbmdDb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsLCB7IHNlbGY6IHRydWUsIG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgaWYgKG5nQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sRGlyZWN0aXZlIHx8IG5nQ29udHJvbCBpbnN0YW5jZW9mIE5nTW9kZWwpIHtcbiAgICAgIHRoaXMuY29udHJvbCA9IG5nQ29udHJvbC5jb250cm9sO1xuICAgIH0gZWxzZSBpZiAobmdDb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2xOYW1lKSB7XG4gICAgICB0aGlzLmNvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChGb3JtR3JvdXBEaXJlY3RpdmUpLmdldENvbnRyb2wobmdDb250cm9sIGFzIEZvcm1Db250cm9sTmFtZSk7XG5cbiAgICAgIHRoaXMuY29udHJvbC5zdGF0dXNDaGFuZ2VzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIF9vbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG5cbiAgX29uVG91Y2hlZDogYW55ID0gKCkgPT4ge307XG5cbiAgX29uVmFsaWRhdG9yQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBhbnkpIHtcbiAgICBpZiAoY2hhbmdlcy5yZXF1aXJlZCkge1xuICAgICAgdGhpcy5fb25WYWxpZGF0b3JDaGFuZ2UoKTtcbiAgICB9XG4gIH1cblxuICBvbkJsdXIgPSAoKSA9PiB7XG4gICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgfTtcblxuICBvbkZvY3VzID0gKCkgPT4ge1xuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcbiAgfTtcblxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWlyZWQgJiYgY29udHJvbC52YWx1ZSAhPT0gdHJ1ZSA/IHsgcmVxdWlyZWQ6IHRydWUgfSA6IG51bGw7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblZhbGlkYXRvckNoYW5nZSA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvbkNoYW5nZUV2ZW50KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGNoZWNrYm94ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG5cbiAgICBpZiAodGhpcy5pbmRldGVybWluYXRlKSB7XG4gICAgICB0aGlzLmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLnZhbHVlID0gY2hlY2tib3guY2hlY2tlZDtcbiAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLm9uQ2hhbmdlLm5leHQodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gIH1cblxuICBnZXRGb290ZXJNZXNzYWdlcygpOiAnaW5mbycgfCAnZXJyb3InIHwgJycge1xuICAgIGNvbnN0IGhhc0luZm9DaGlsZHJlbiA9IHRoaXMuaW5mb0NoaWxkcmVuICYmIHRoaXMuaW5mb0NoaWxkcmVuLmxlbmd0aCA+IDA7XG5cbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5pc1RvdWNoZWQgJiYgdGhpcy5pc0ludmFsaWQpIHtcbiAgICAgIHJldHVybiAnZXJyb3InO1xuICAgIH1cblxuICAgIGlmIChoYXNJbmZvQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiAnaW5mbyc7XG4gICAgfVxuXG4gICAgcmV0dXJuICcnO1xuICB9XG59XG4iLCJAaWYgKGhhc0hlYWRlcikge1xuICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibW9ua2V5LWxhYmVsXCIgLz5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtb25rZXktaGVscGVyXCIgLz5cbiAgPC9kaXY+XG59XG48bGFiZWwgW2F0dHIuZm9yXT1cImlucHV0SWRcIj5cbiAgPGlucHV0XG4gICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICBbY2hlY2tlZF09XCJ2YWx1ZVwiXG4gICAgW2luZGV0ZXJtaW5hdGVdPVwiaW5kZXRlcm1pbmF0ZVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlRXZlbnQoJGV2ZW50KVwiXG4gICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAvPlxuICA8c3BhbiBjbGFzcz1cImNoZWNrYm94XCI+XG4gICAgQGlmIChpbmRldGVybWluYXRlKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiIEBpY29uQW5pbWF0aW9uIFtpbm5lckhUTUxdPVwiaWNvbkluZGV0ZXJtaW5hdGVcIj48L2Rpdj5cbiAgICB9IEBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgPGRpdiBjbGFzcz1cImljb25cIiBAaWNvbkFuaW1hdGlvbiBbaW5uZXJIVE1MXT1cImljb25DaGVja1wiPjwvZGl2PlxuICAgIH1cbiAgPC9zcGFuPlxuICA8c3BhbiBjbGFzcz1cImNoZWNrYm94LWxhYmVsXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L3NwYW4+XG48L2xhYmVsPlxuQGlmIChzaG93Rm9vdGVyKSB7XG4gIEBzd2l0Y2ggKGdldEZvb3Rlck1lc3NhZ2VzKCkpIHtcbiAgICBAY2FzZSAoJ2Vycm9yJykge1xuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibW9ua2V5LWVycm9yXCIgLz5cbiAgICB9XG4gICAgQGNhc2UgKCdpbmZvJykge1xuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibW9ua2V5LWluZm9cIiAvPlxuICAgIH1cbiAgfVxufVxuIl19
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LXN0eWxlLWd1aWRlLXYyL3NyYy9saWIvY29tcG9uZW50cy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OzZCQUk2QjtBQUM3QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JGLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUdMLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBR0wsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsV0FBVyxFQUNYLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsU0FBUyxFQUNULE9BQU8sRUFDUCxtQkFBbUIsRUFHcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBNERwRyxNQUFNLE9BQU8sdUJBQXVCO0lBMURwQztRQW9FMEMs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dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRUUsYUFBYTtzQkFBcEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFRSxRQUFRO3NCQUEvQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUVFLFVBQVU7c0JBQWpELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRTdCLElBQUk7c0JBQVosS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQWNFLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiAqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvcHlyaWdodCBNb25rZXkgRXhjaGFuZ2UuIEFsbCBSaWdodHMgUmVzZXJ2ZWRcbiAqIFRoaXMgc3R5bGUgZ3VpZGUgd2FzIGRldmVsb3BlZCBieSBNb25rZXkgRXhjaGFuZ2UgVGVhbVxuICogTUlUIExpY2VuY2VcbiAqKioqKioqKioqKioqKioqKioqKioqKioqICovXG5pbXBvcnQgeyBhbmltYXRlLCBrZXlmcmFtZXMsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1xuICBib29sZWFuQXR0cmlidXRlLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBEZXN0cm95UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQ29udHJvbERpcmVjdGl2ZSxcbiAgRm9ybUNvbnRyb2xOYW1lLFxuICBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gIEZvcm1zTW9kdWxlLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgTmdDb250cm9sLFxuICBOZ01vZGVsLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3Jcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSWRHZW5lcmF0b3IsIFV0aWxJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgTW9ua2V5SGVscGVyRGlyZWN0aXZlLCBNb25rZXlJbmZvRGlyZWN0aXZlLCBNb25rZXlMYWJlbERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb25rZXktY2hlY2tib3gnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGUsIFV0aWxJY29uQ29tcG9uZW50XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoZWNrYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdpY29uQW5pbWF0aW9uJywgW1xuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICcyNTBtcyBlYXNlLWluLW91dCcsXG4gICAgICAgICAga2V5ZnJhbWVzKFtcbiAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAnc2NhbGUoMC43KScgfSksXG4gICAgICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3NjYWxlKDEpJyB9KVxuICAgICAgICAgIF0pXG4gICAgICAgIClcbiAgICAgIF0pLFxuICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICcyNTBtcyBlYXNlLWluLW91dCcsXG4gICAgICAgICAga2V5ZnJhbWVzKFtcbiAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAnc2NhbGUoMSknIH0pLFxuICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICdzY2FsZSguNyknIH0pXG4gICAgICAgICAgXSlcbiAgICAgICAgKVxuICAgICAgXSlcbiAgICBdKVxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgICAgIHJldHVybiBNb25rZXlDaGVja2JveENvbXBvbmVudDtcbiAgICAgIH0pLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgICAgIHVzZUV4aXN0aW5nOiBNb25rZXlDaGVja2JveENvbXBvbmVudCxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBob3N0OiB7XG4gICAgJ2RhdGEtdGVzdGlkJzogJ2lucHV0LWNoZWNrYm94JyxcbiAgICBjbGFzczogJ21lY3gtY2hlY2tib3gnLFxuICAgICdbY2xhc3MubWVjeC1kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuICAgICdbY2xhc3MubWVjeC1jaGVja2JveC1jaGVja2VkXSc6ICd2YWx1ZScsXG4gICAgJ1tjbGFzcy5tZWN4LWNoZWNrYm94LWZvY3VzZWRdJzogJ2lzRm9jdXNlZCcsXG4gICAgJ1tjbGFzcy5tZWN4LWNoZWNrYm94LWluZGV0ZXJtaW5hdGVdJzogJ2luZGV0ZXJtaW5hdGUnLFxuICAgICdbY2xhc3MubWVjeC1jaGVja2JveC1pbnZhbGlkXSc6ICdzaG93SW52YWxpZCcsXG4gICAgJ1tjbGFzcy5zbV0nOiAnc2l6ZS5pbmNsdWRlcyhcInNtXCIpJyxcbiAgICAnW2NsYXNzLm1kXSc6ICdzaXplLmluY2x1ZGVzKFwibWRcIiknLFxuICAgICdbY2xhc3MubGddJzogJ3NpemUuaW5jbHVkZXMoXCJsZ1wiKSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBNb25rZXlDaGVja2JveENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkNoYW5nZXMsIE9uSW5pdCwgVmFsaWRhdG9yIHtcbiAgQENvbnRlbnRDaGlsZHJlbihNb25rZXlJbmZvRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByaXZhdGUgaW5mb0NoaWxkcmVuITogUXVlcnlMaXN0PE1vbmtleUluZm9EaXJlY3RpdmU+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTW9ua2V5TGFiZWxEaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHJpdmF0ZSBsYWJlbENoaWxkcmVuITogUXVlcnlMaXN0PE1vbmtleUxhYmVsRGlyZWN0aXZlPjtcblxuICBAQ29udGVudENoaWxkcmVuKE1vbmtleUhlbHBlckRpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBwcml2YXRlIGhlbHBlckNoaWxkcmVuITogUXVlcnlMaXN0PE1vbmtleUhlbHBlckRpcmVjdGl2ZT47XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcmVxdWlyZWQgPSBmYWxzZTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0Zvb3RlciA9IHRydWU7XG5cbiAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICdtZCcgfCAnbGcnID0gJ21kJztcblxuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHJpdmF0ZSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGlkR2VuZXJhdG9yID0gaW5qZWN0KElkR2VuZXJhdG9yKTtcblxuICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgY29udHJvbDogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PiB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbiAgcmVhZG9ubHkgaW5wdXRJZCA9IHRoaXMuaWRHZW5lcmF0b3IuZ2V0SWQoJ2lucHV0LWNoZWNrYm94LScpO1xuXG4gIEBJbnB1dCgpIHZhbHVlID0gZmFsc2U7XG5cbiAgaXNGb2N1c2VkID0gZmFsc2U7XG5cbiAgZ2V0IHNob3dJbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHRvdWNoZWQgPSB0aGlzLmNvbnRyb2w/LnRvdWNoZWQgfHwgZmFsc2U7XG4gICAgY29uc3QgaW52YWxpZCA9IHRoaXMuY29udHJvbD8uaW52YWxpZCB8fCBmYWxzZTtcbiAgICByZXR1cm4gIXRoaXMuaXNGb2N1c2VkICYmIHRvdWNoZWQgJiYgaW52YWxpZDtcbiAgfVxuXG4gIGdldCBoYXNIZWFkZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubGFiZWxDaGlsZHJlbi5sZW5ndGggPiAwIHx8IHRoaXMuaGVscGVyQ2hpbGRyZW4ubGVuZ3RoID4gMDtcbiAgfVxuXG4gIGdldCBpc1RvdWNoZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbD8udG91Y2hlZCA/PyBmYWxzZTtcbiAgfVxuXG4gIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbD8uaW52YWxpZCA/PyBmYWxzZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IG5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCwgeyBzZWxmOiB0cnVlLCBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIGlmIChuZ0NvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbERpcmVjdGl2ZSB8fCBuZ0NvbnRyb2wgaW5zdGFuY2VvZiBOZ01vZGVsKSB7XG4gICAgICB0aGlzLmNvbnRyb2wgPSBuZ0NvbnRyb2wuY29udHJvbDtcbiAgICB9IGVsc2UgaWYgKG5nQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sTmFtZSkge1xuICAgICAgdGhpcy5jb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoRm9ybUdyb3VwRGlyZWN0aXZlKS5nZXRDb250cm9sKG5nQ29udHJvbCBhcyBGb3JtQ29udHJvbE5hbWUpO1xuXG4gICAgICB0aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBfb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuXG4gIF9vblRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xuXG4gIF9vblZhbGlkYXRvckNoYW5nZTogYW55ID0gKCkgPT4ge307XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogYW55KSB7XG4gICAgaWYgKGNoYW5nZXMucmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuX29uVmFsaWRhdG9yQ2hhbmdlKCk7XG4gICAgfVxuICB9XG5cbiAgb25CbHVyID0gKCkgPT4ge1xuICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XG4gIH07XG5cbiAgb25Gb2N1cyA9ICgpID0+IHtcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gIH07XG5cbiAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnJlcXVpcmVkICYmIGNvbnRyb2wudmFsdWUgIT09IHRydWUgPyB7IHJlcXVpcmVkOiB0cnVlIH0gOiBudWxsO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25WYWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25DaGFuZ2VFdmVudChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjaGVja2JveCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuXG4gICAgaWYgKHRoaXMuaW5kZXRlcm1pbmF0ZSkge1xuICAgICAgdGhpcy5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy52YWx1ZSA9IGNoZWNrYm94LmNoZWNrZWQ7XG4gICAgdGhpcy5fb25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZS5uZXh0KHRoaXMudmFsdWUpO1xuICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICB9XG5cbiAgZ2V0Rm9vdGVyTWVzc2FnZXMoKTogJ2luZm8nIHwgJ2Vycm9yJyB8ICcnIHtcbiAgICBjb25zdCBoYXNJbmZvQ2hpbGRyZW4gPSB0aGlzLmluZm9DaGlsZHJlbiAmJiB0aGlzLmluZm9DaGlsZHJlbi5sZW5ndGggPiAwO1xuXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmIHRoaXMuaXNUb3VjaGVkICYmIHRoaXMuaXNJbnZhbGlkKSB7XG4gICAgICByZXR1cm4gJ2Vycm9yJztcbiAgICB9XG5cbiAgICBpZiAoaGFzSW5mb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2luZm8nO1xuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxufVxuIiwiQGlmIChoYXNIZWFkZXIpIHtcbiAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm1vbmtleS1sYWJlbFwiIC8+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibW9ua2V5LWhlbHBlclwiIC8+XG4gIDwvZGl2PlxufVxuPGxhYmVsIFthdHRyLmZvcl09XCJpbnB1dElkXCI+XG4gIDxpbnB1dFxuICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgW2NoZWNrZWRdPVwidmFsdWVcIlxuICAgIFtpbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGVcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgKGNoYW5nZSk9XCJvbkNoYW5nZUV2ZW50KCRldmVudClcIlxuICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgLz5cbiAgPHNwYW4gY2xhc3M9XCJjaGVja2JveFwiPlxuICAgIEBpZiAoaW5kZXRlcm1pbmF0ZSkge1xuICAgICAgPHV0aWwtaWNvbiBjbGFzcz1cImljb25cIiBuYW1lPVwibWludXNcIiAvPlxuICAgIH0gQGVsc2UgaWYgKHZhbHVlKSB7XG4gICAgICA8dXRpbC1pY29uIGNsYXNzPVwiaWNvblwiIG5hbWU9XCJjaGVja1wiIC8+XG4gICAgfVxuICA8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwiY2hlY2tib3gtbGFiZWxcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvc3Bhbj5cbjwvbGFiZWw+XG5AaWYgKHNob3dGb290ZXIpIHtcbiAgQHN3aXRjaCAoZ2V0Rm9vdGVyTWVzc2FnZXMoKSkge1xuICAgIEBjYXNlICgnZXJyb3InKSB7XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtb25rZXktZXJyb3JcIiAvPlxuICAgIH1cbiAgICBAY2FzZSAoJ2luZm8nKSB7XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtb25rZXktaW5mb1wiIC8+XG4gICAgfVxuICB9XG59XG4iXX0=