@testgorilla/tgo-ui 1.1.1 → 1.2.1

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 (155) hide show
  1. package/components/alert-banner/alert-banner.component.d.ts +1 -1
  2. package/components/avatar/avatar.component.d.ts +1 -1
  3. package/components/banner-action/banner-action.component.d.ts +1 -1
  4. package/components/button/button.component.d.ts +1 -1
  5. package/components/card/card.component.d.ts +1 -1
  6. package/components/checkbox/checkbox.component.d.ts +1 -1
  7. package/components/create-account/create-account.component.d.ts +1 -1
  8. package/components/create-password/create-password.component.d.ts +1 -1
  9. package/components/datepicker/datepicker.component.d.ts +1 -1
  10. package/components/dialog/dialog.component.d.ts +1 -1
  11. package/components/dropdown/dropdown.component.d.ts +1 -1
  12. package/components/elevation-shadow/elevation-shadow.component.d.ts +1 -1
  13. package/components/field/field.component.d.ts +1 -1
  14. package/components/file-upload/file-upload.component.d.ts +1 -1
  15. package/components/forgot-password/forgot-password.component.d.ts +1 -1
  16. package/components/icon/icon.component.d.ts +1 -1
  17. package/components/icon-label/icon-label.component.d.ts +1 -1
  18. package/components/label/label.component.d.ts +1 -1
  19. package/components/login/login.component.d.ts +1 -1
  20. package/components/logo/logo.component.d.ts +1 -1
  21. package/components/navbar/navbar.component.d.ts +1 -1
  22. package/components/navigation/navigation.component.d.ts +1 -1
  23. package/components/paginator/paginator.component.d.ts +1 -1
  24. package/components/progress-bar/progress-bar.component.d.ts +1 -1
  25. package/components/radio-button/radio-button.component.d.ts +1 -1
  26. package/components/rating/rating.component.d.ts +1 -1
  27. package/components/snackbar/snackbar.component.d.ts +1 -1
  28. package/components/table/directives/dynamic-component.directive.d.ts +1 -1
  29. package/components/table/table.component.d.ts +1 -1
  30. package/components/tag/tag.component.d.ts +1 -1
  31. package/components/toggle/toggle.component.d.ts +1 -1
  32. package/components/tooltip/tooltip.component.d.ts +1 -1
  33. package/directives/digits-only.directive.d.ts +1 -1
  34. package/esm2022/components/alert-banner/alert-banner.component.mjs +98 -0
  35. package/{esm2020 → esm2022}/components/alert-banner/alert-banner.component.module.mjs +5 -5
  36. package/{esm2020 → esm2022}/components/avatar/avatar.component.mjs +4 -4
  37. package/{esm2020 → esm2022}/components/avatar/avatar.component.module.mjs +5 -5
  38. package/{esm2020 → esm2022}/components/banner-action/banner-action.component.mjs +4 -4
  39. package/{esm2020 → esm2022}/components/banner-action/banner-action.component.module.mjs +5 -5
  40. package/{esm2020 → esm2022}/components/button/button.component.mjs +4 -4
  41. package/{esm2020 → esm2022}/components/button/button.component.module.mjs +5 -5
  42. package/{esm2020 → esm2022}/components/card/card.component.mjs +4 -4
  43. package/{esm2020 → esm2022}/components/card/card.component.module.mjs +5 -5
  44. package/esm2022/components/checkbox/checkbox.component.mjs +151 -0
  45. package/{esm2020 → esm2022}/components/checkbox/checkbox.component.module.mjs +5 -5
  46. package/{esm2020 → esm2022}/components/confirm-dialog/confirm-dialog.component.mjs +4 -4
  47. package/{esm2020 → esm2022}/components/confirm-dialog/confirm-dialog.component.module.mjs +8 -8
  48. package/{esm2020 → esm2022}/components/create-account/create-account.component.mjs +4 -4
  49. package/{esm2020 → esm2022}/components/create-account/create-account.component.module.mjs +19 -19
  50. package/{esm2020 → esm2022}/components/create-password/create-password.component.mjs +4 -4
  51. package/{esm2020 → esm2022}/components/create-password/create-password.component.module.mjs +17 -17
  52. package/esm2022/components/datepicker/datepicker.component.mjs +179 -0
  53. package/{esm2020 → esm2022}/components/datepicker/datepicker.component.module.mjs +19 -19
  54. package/{esm2020 → esm2022}/components/dialog/dialog.component.mjs +4 -4
  55. package/{esm2020 → esm2022}/components/dialog/dialog.component.module.mjs +5 -5
  56. package/{esm2020 → esm2022}/components/dialog/dialog.service.mjs +4 -4
  57. package/esm2022/components/dropdown/dropdown.component.mjs +158 -0
  58. package/{esm2020 → esm2022}/components/dropdown/dropdown.component.module.mjs +19 -19
  59. package/{esm2020 → esm2022}/components/elevation-shadow/elevation-shadow.component.mjs +4 -4
  60. package/{esm2020 → esm2022}/components/elevation-shadow/elevation-shadow.component.module.mjs +5 -5
  61. package/esm2022/components/field/field.component.mjs +212 -0
  62. package/{esm2020 → esm2022}/components/field/field.component.module.mjs +17 -17
  63. package/esm2022/components/file-upload/file-upload.component.mjs +191 -0
  64. package/{esm2020 → esm2022}/components/file-upload/file-upload.component.module.mjs +5 -5
  65. package/{esm2020 → esm2022}/components/forgot-password/forgot-password.component.mjs +4 -4
  66. package/{esm2020 → esm2022}/components/forgot-password/forgot-password.component.module.mjs +17 -17
  67. package/{esm2020 → esm2022}/components/icon/icon.component.mjs +4 -4
  68. package/{esm2020 → esm2022}/components/icon/icon.component.module.mjs +5 -5
  69. package/{esm2020 → esm2022}/components/icon-label/icon-label.component.mjs +4 -4
  70. package/{esm2020 → esm2022}/components/icon-label/icon-label.component.module.mjs +5 -5
  71. package/{esm2020 → esm2022}/components/label/label.component.mjs +4 -4
  72. package/{esm2020 → esm2022}/components/label/label.component.module.mjs +5 -5
  73. package/{esm2020 → esm2022}/components/login/login.component.mjs +4 -4
  74. package/{esm2020 → esm2022}/components/login/login.component.module.mjs +17 -17
  75. package/{esm2020 → esm2022}/components/logo/logo.component.mjs +4 -4
  76. package/{esm2020 → esm2022}/components/logo/logo.component.module.mjs +5 -5
  77. package/{esm2020 → esm2022}/components/navbar/navbar.component.mjs +4 -4
  78. package/{esm2020 → esm2022}/components/navbar/navbar.component.module.mjs +19 -19
  79. package/{esm2020 → esm2022}/components/navigation/navigation.component.mjs +4 -4
  80. package/{esm2020 → esm2022}/components/navigation/navigation.component.module.mjs +5 -5
  81. package/{esm2020 → esm2022}/components/paginator/paginator.component.mjs +4 -4
  82. package/{esm2020 → esm2022}/components/paginator/paginator.component.module.mjs +5 -5
  83. package/{esm2020 → esm2022}/components/progress-bar/progress-bar.component.mjs +4 -4
  84. package/{esm2020 → esm2022}/components/progress-bar/progress-bar.component.module.mjs +5 -5
  85. package/{esm2020 → esm2022}/components/radio-button/radio-button.component.mjs +4 -4
  86. package/{esm2020 → esm2022}/components/radio-button/radio-button.component.module.mjs +5 -5
  87. package/{esm2020 → esm2022}/components/rating/rating.component.mjs +4 -4
  88. package/{esm2020 → esm2022}/components/rating/rating.component.module.mjs +5 -5
  89. package/esm2022/components/snackbar/snackbar.component.mjs +148 -0
  90. package/esm2022/components/snackbar/snackbar.component.module.mjs +44 -0
  91. package/{esm2020 → esm2022}/components/snackbar/snackbar.service.mjs +4 -4
  92. package/{esm2020 → esm2022}/components/spinner/spinner.component.mjs +4 -4
  93. package/{esm2020 → esm2022}/components/spinner/spinner.module.mjs +5 -5
  94. package/{esm2020 → esm2022}/components/table/directives/dynamic-component.directive.mjs +4 -4
  95. package/{esm2020 → esm2022}/components/table/pipes/data-property-getter.mjs +4 -4
  96. package/esm2022/components/table/table.component.mjs +158 -0
  97. package/{esm2020 → esm2022}/components/table/table.component.module.mjs +5 -5
  98. package/{esm2020 → esm2022}/components/tag/tag.component.mjs +4 -4
  99. package/{esm2020 → esm2022}/components/tag/tag.component.module.mjs +5 -5
  100. package/esm2022/components/toggle/toggle.component.mjs +78 -0
  101. package/{esm2020 → esm2022}/components/toggle/toggle.component.module.mjs +5 -5
  102. package/{esm2020 → esm2022}/components/tooltip/tooltip.component.mjs +4 -4
  103. package/{esm2020 → esm2022}/components/tooltip/tooltip.component.module.mjs +5 -5
  104. package/{esm2020 → esm2022}/directives/digits-only.directive.mjs +4 -4
  105. package/{esm2020 → esm2022}/directives/drag-drop.directive.mjs +4 -4
  106. package/{esm2020 → esm2022}/pipes/name-initials.pipe.mjs +4 -4
  107. package/esm2022/utils/localization/language.service.mjs +78 -0
  108. package/{fesm2020 → fesm2022}/testgorilla-tgo-ui.mjs +459 -459
  109. package/{fesm2015 → fesm2022}/testgorilla-tgo-ui.mjs.map +1 -1
  110. package/package.json +16 -22
  111. package/esm2020/components/alert-banner/alert-banner.component.mjs +0 -98
  112. package/esm2020/components/checkbox/checkbox.component.mjs +0 -151
  113. package/esm2020/components/datepicker/datepicker.component.mjs +0 -179
  114. package/esm2020/components/dropdown/dropdown.component.mjs +0 -158
  115. package/esm2020/components/field/field.component.mjs +0 -212
  116. package/esm2020/components/file-upload/file-upload.component.mjs +0 -191
  117. package/esm2020/components/snackbar/snackbar.component.mjs +0 -148
  118. package/esm2020/components/snackbar/snackbar.component.module.mjs +0 -44
  119. package/esm2020/components/table/table.component.mjs +0 -158
  120. package/esm2020/components/toggle/toggle.component.mjs +0 -78
  121. package/esm2020/utils/localization/language.service.mjs +0 -78
  122. package/fesm2015/testgorilla-tgo-ui.mjs +0 -4290
  123. package/fesm2020/testgorilla-tgo-ui.mjs.map +0 -1
  124. /package/{esm2020 → esm2022}/components/alert-banner/alert-banner.model.mjs +0 -0
  125. /package/{esm2020 → esm2022}/components/avatar/avatar.model.mjs +0 -0
  126. /package/{esm2020 → esm2022}/components/button/button.model.mjs +0 -0
  127. /package/{esm2020 → esm2022}/components/confirm-dialog/confirm-dialog.constants.mjs +0 -0
  128. /package/{esm2020 → esm2022}/components/confirm-dialog/confirm-dialog.model.mjs +0 -0
  129. /package/{esm2020 → esm2022}/components/create-account/create-account.constant.mjs +0 -0
  130. /package/{esm2020 → esm2022}/components/create-account/create-account.model.mjs +0 -0
  131. /package/{esm2020 → esm2022}/components/create-password/create-password.constant.mjs +0 -0
  132. /package/{esm2020 → esm2022}/components/create-password/create-password.model.mjs +0 -0
  133. /package/{esm2020 → esm2022}/components/dropdown/dropdown.model.mjs +0 -0
  134. /package/{esm2020 → esm2022}/components/elevation-shadow/elevation-shadow.constant.mjs +0 -0
  135. /package/{esm2020 → esm2022}/components/field/field.model.mjs +0 -0
  136. /package/{esm2020 → esm2022}/components/forgot-password/forgot-password.constant.mjs +0 -0
  137. /package/{esm2020 → esm2022}/components/forgot-password/forgot-password.model.mjs +0 -0
  138. /package/{esm2020 → esm2022}/components/icon/icon.config.mjs +0 -0
  139. /package/{esm2020 → esm2022}/components/icon/icon.model.mjs +0 -0
  140. /package/{esm2020 → esm2022}/components/label/label.model.mjs +0 -0
  141. /package/{esm2020 → esm2022}/components/login/login.constant.mjs +0 -0
  142. /package/{esm2020 → esm2022}/components/login/login.model.mjs +0 -0
  143. /package/{esm2020 → esm2022}/components/logo/logo.model.mjs +0 -0
  144. /package/{esm2020 → esm2022}/components/navbar/navbar.model.mjs +0 -0
  145. /package/{esm2020 → esm2022}/components/radio-button/radio-button.model.mjs +0 -0
  146. /package/{esm2020 → esm2022}/components/snackbar/snackbar.model.mjs +0 -0
  147. /package/{esm2020 → esm2022}/components/table/table.model.mjs +0 -0
  148. /package/{esm2020 → esm2022}/components/tag/tag.model.mjs +0 -0
  149. /package/{esm2020 → esm2022}/components/toggle/toggle.model.mjs +0 -0
  150. /package/{esm2020 → esm2022}/components/tooltip/tooltip.model.mjs +0 -0
  151. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  152. /package/{esm2020 → esm2022}/testgorilla-tgo-ui.mjs +0 -0
  153. /package/{esm2020 → esm2022}/utils/alert-bar.model.mjs +0 -0
  154. /package/{esm2020 → esm2022}/utils/alert-bars.utils.mjs +0 -0
  155. /package/{esm2020 → esm2022}/utils/validators.utils.mjs +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@testgorilla/tgo-ui",
3
- "version": "1.1.1",
3
+ "version": "1.2.1",
4
4
  "lint-staged": {
5
5
  "src/**/*.ts": [
6
6
  "eslint --fix",
@@ -16,28 +16,24 @@
16
16
  "tslib": "~2.4.0"
17
17
  },
18
18
  "peerDependencies": {
19
- "@angular-material-extensions/password-strength": "~12.1.0",
20
- "@angular/animations": "~15.2.9",
21
- "@angular/cdk": "~15.2.9",
22
- "@angular/common": "~15.2.9",
23
- "@angular/compiler": "~15.2.9",
24
- "@angular/core": "~15.2.9",
25
- "@angular/forms": "~15.2.9",
26
- "@angular/material": "~15.2.9",
27
- "@angular/platform-browser": "~15.2.9",
28
- "@angular/platform-browser-dynamic": "~15.2.9",
29
- "@angular/router": "~15.2.9",
19
+ "@angular-material-extensions/password-strength": "^16.0.0",
20
+ "@angular/animations": "~16.2.12",
21
+ "@angular/cdk": "~16.2.12",
22
+ "@angular/common": "~16.2.12",
23
+ "@angular/compiler": "~16.2.12",
24
+ "@angular/core": "~16.2.12",
25
+ "@angular/forms": "~16.2.12",
26
+ "@angular/material": "~16.2.12",
27
+ "@angular/platform-browser": "~16.2.12",
28
+ "@angular/platform-browser-dynamic": "~16.2.12",
29
+ "@angular/router": "~16.2.12",
30
30
  "@ngneat/transloco": "^4.3.0",
31
31
  "@ngneat/transloco-messageformat": "^4.0.0",
32
32
  "@ngneat/until-destroy": "^10.0.0",
33
33
  "rxjs": "~7.5.5",
34
34
  "zone.js": "^0.13.1"
35
35
  },
36
- "module": "fesm2015/testgorilla-tgo-ui.mjs",
37
- "es2020": "fesm2020/testgorilla-tgo-ui.mjs",
38
- "esm2020": "esm2020/testgorilla-tgo-ui.mjs",
39
- "fesm2020": "fesm2020/testgorilla-tgo-ui.mjs",
40
- "fesm2015": "fesm2015/testgorilla-tgo-ui.mjs",
36
+ "module": "fesm2022/testgorilla-tgo-ui.mjs",
41
37
  "typings": "index.d.ts",
42
38
  "exports": {
43
39
  "./package.json": {
@@ -45,11 +41,9 @@
45
41
  },
46
42
  ".": {
47
43
  "types": "./index.d.ts",
48
- "esm2020": "./esm2020/testgorilla-tgo-ui.mjs",
49
- "es2020": "./fesm2020/testgorilla-tgo-ui.mjs",
50
- "es2015": "./fesm2015/testgorilla-tgo-ui.mjs",
51
- "node": "./fesm2015/testgorilla-tgo-ui.mjs",
52
- "default": "./fesm2020/testgorilla-tgo-ui.mjs"
44
+ "esm2022": "./esm2022/testgorilla-tgo-ui.mjs",
45
+ "esm": "./esm2022/testgorilla-tgo-ui.mjs",
46
+ "default": "./fesm2022/testgorilla-tgo-ui.mjs"
53
47
  }
54
48
  },
55
49
  "sideEffects": false
@@ -1,98 +0,0 @@
1
- import { animate, style, transition, trigger } from '@angular/animations';
2
- import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
3
- import { alertBarsUtil } from '../../utils/alert-bars.utils';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "../button/button.component";
7
- import * as i3 from "../icon/icon.component";
8
- export class AlertBannerComponent {
9
- constructor() {
10
- /**
11
- * Alert Banner type
12
- *
13
- * @type {AlertBarType}
14
- * @memberof AlertBannerComponent
15
- */
16
- this.alertType = 'success';
17
- /**
18
- * Alert banner message
19
- *
20
- * @memberof AlertBannerComponent
21
- */
22
- this.message = '';
23
- /**
24
- * Include dismmiss button
25
- *
26
- * @memberof AlertBannerComponent
27
- */
28
- this.includeDismissButton = true;
29
- /**
30
- * Static or fixed position
31
- *
32
- * @memberof AlertBannerComponent
33
- */
34
- this.fixed = false;
35
- /**
36
- * Full width for alert banner
37
- *
38
- * @memberof AlertBannerComponent
39
- */
40
- this.fullWidth = true;
41
- /**
42
- * Link text that will appended at the end of message
43
- *
44
- * @memberof AlertBannerComponent
45
- */
46
- this.linkText = '';
47
- /**
48
- * Link target
49
- *
50
- * @type {@type {LinkTargetType}}
51
- * @memberof AlertBannerComponent
52
- */
53
- this.linkTarget = '_blank';
54
- this.visible = true;
55
- }
56
- ngOnInit() {
57
- this.iconName = alertBarsUtil.setIcon(this.alertType);
58
- this.position = alertBarsUtil.setPosition(this.fixed);
59
- this.cssClass = alertBarsUtil.setCssClass(this.fullWidth, this.alertType, this.position);
60
- }
61
- //Hide snackbar when dismiss button is clicked
62
- dismissClick() {
63
- this.visible = false;
64
- }
65
- }
66
- AlertBannerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AlertBannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
67
- AlertBannerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AlertBannerComponent, selector: "ui-alert-banner", inputs: { alertType: "alertType", message: "message", includeDismissButton: "includeDismissButton", fixed: "fixed", fullWidth: "fullWidth", linkText: "linkText", linkUrl: "linkUrl", linkTarget: "linkTarget" }, ngImport: i0, template: "<div [ngClass]=\"cssClass\" [@openClose] *ngIf=\"visible\" class=\"alert-container\">\n <div class=\"alert-text\">\n <ui-icon [name]=\"iconName\" size=\"24\"></ui-icon>\n {{ message }}\n <a *ngIf=\"!!linkText\" [target]=\"linkTarget\" [href]=\"linkUrl\">{{ linkText }}</a>\n </div>\n <ui-button\n *ngIf=\"includeDismissButton\"\n type=\"text\"\n [justIcon]=\"true\"\n class=\"close\"\n iconName=\"Close\"\n (buttonClickEvent)=\"dismissClick()\"\n ></ui-button>\n</div>\n", styles: [":host{display:flex;width:100%;justify-content:center}:host .snackbar-container{max-width:600px}:host .alert-container,:host .snackbar-container{margin:0 auto;display:flex;padding:0 14px;border-radius:4px;align-items:center;justify-content:space-between;opacity:1;min-height:48px}:host .alert-container.fixed,:host .snackbar-container.fixed{position:fixed}:host .alert-container.static,:host .snackbar-container.static{position:relative}:host .alert-container ui-icon,:host .snackbar-container ui-icon{margin-right:14px}:host .alert-container ui-button,:host .snackbar-container ui-button{margin-left:14px}:host .alert-container ::ng-deep button.mat-mdc-unelevated-button.big,:host .snackbar-container ::ng-deep button.mat-mdc-unelevated-button.big{padding:0;min-width:auto}:host .alert-container .alert-text,:host .alert-container .snackbar-text,:host .snackbar-container .alert-text,:host .snackbar-container .snackbar-text{display:flex;align-items:center;color:#000}:host .alert-container .alert-text a,:host .alert-container .snackbar-text a,:host .snackbar-container .alert-text a,:host .snackbar-container .snackbar-text a{color:#000;text-decoration:underline;font-weight:700}:host .alert-container .alert-text a:hover,:host .alert-container .alert-text a:visited,:host .alert-container .alert-text a:focus,:host .alert-container .snackbar-text a:hover,:host .alert-container .snackbar-text a:visited,:host .alert-container .snackbar-text a:focus,:host .snackbar-container .alert-text a:hover,:host .snackbar-container .alert-text a:visited,:host .snackbar-container .alert-text a:focus,:host .snackbar-container .snackbar-text a:hover,:host .snackbar-container .snackbar-text a:visited,:host .snackbar-container .snackbar-text a:focus{text-decoration:none}:host .alert-container.success,:host .snackbar-container.success{background-color:#cbd6cb}:host .alert-container.info,:host .snackbar-container.info{background-color:#c8d7de}:host .alert-container.warning,:host .snackbar-container.warning{background-color:#f0d6bb}:host .alert-container.error,:host .snackbar-container.error{background-color:#e3c3c6}@media (max-width: 600px){:host .alert-container,:host .snackbar-container{padding:8px 14px}}:host .alert-container.fixed{top:0;z-index:98}:host .alert-container.full-width{width:100%;min-width:100%}:host .alert-container a{margin-left:7px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ButtonComponent, selector: "ui-button", inputs: ["size", "type", "label", "iconPosition", "justIcon", "iconName", "disabled", "loading", "fullWidth", "url", "urlTarget", "value"], outputs: ["buttonClickEvent", "buttonHoverEvent"] }, { kind: "component", type: i3.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color"] }], animations: [
68
- trigger('openClose', [
69
- transition(':enter', [animate('0.2s ease-out', style({ opacity: 1 }))]),
70
- transition(':leave', [animate('0.2s ease-in', style({ opacity: 0 }))]),
71
- ]),
72
- ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AlertBannerComponent, decorators: [{
74
- type: Component,
75
- args: [{ selector: 'ui-alert-banner', animations: [
76
- trigger('openClose', [
77
- transition(':enter', [animate('0.2s ease-out', style({ opacity: 1 }))]),
78
- transition(':leave', [animate('0.2s ease-in', style({ opacity: 0 }))]),
79
- ]),
80
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"cssClass\" [@openClose] *ngIf=\"visible\" class=\"alert-container\">\n <div class=\"alert-text\">\n <ui-icon [name]=\"iconName\" size=\"24\"></ui-icon>\n {{ message }}\n <a *ngIf=\"!!linkText\" [target]=\"linkTarget\" [href]=\"linkUrl\">{{ linkText }}</a>\n </div>\n <ui-button\n *ngIf=\"includeDismissButton\"\n type=\"text\"\n [justIcon]=\"true\"\n class=\"close\"\n iconName=\"Close\"\n (buttonClickEvent)=\"dismissClick()\"\n ></ui-button>\n</div>\n", styles: [":host{display:flex;width:100%;justify-content:center}:host .snackbar-container{max-width:600px}:host .alert-container,:host .snackbar-container{margin:0 auto;display:flex;padding:0 14px;border-radius:4px;align-items:center;justify-content:space-between;opacity:1;min-height:48px}:host .alert-container.fixed,:host .snackbar-container.fixed{position:fixed}:host .alert-container.static,:host .snackbar-container.static{position:relative}:host .alert-container ui-icon,:host .snackbar-container ui-icon{margin-right:14px}:host .alert-container ui-button,:host .snackbar-container ui-button{margin-left:14px}:host .alert-container ::ng-deep button.mat-mdc-unelevated-button.big,:host .snackbar-container ::ng-deep button.mat-mdc-unelevated-button.big{padding:0;min-width:auto}:host .alert-container .alert-text,:host .alert-container .snackbar-text,:host .snackbar-container .alert-text,:host .snackbar-container .snackbar-text{display:flex;align-items:center;color:#000}:host .alert-container .alert-text a,:host .alert-container .snackbar-text a,:host .snackbar-container .alert-text a,:host .snackbar-container .snackbar-text a{color:#000;text-decoration:underline;font-weight:700}:host .alert-container .alert-text a:hover,:host .alert-container .alert-text a:visited,:host .alert-container .alert-text a:focus,:host .alert-container .snackbar-text a:hover,:host .alert-container .snackbar-text a:visited,:host .alert-container .snackbar-text a:focus,:host .snackbar-container .alert-text a:hover,:host .snackbar-container .alert-text a:visited,:host .snackbar-container .alert-text a:focus,:host .snackbar-container .snackbar-text a:hover,:host .snackbar-container .snackbar-text a:visited,:host .snackbar-container .snackbar-text a:focus{text-decoration:none}:host .alert-container.success,:host .snackbar-container.success{background-color:#cbd6cb}:host .alert-container.info,:host .snackbar-container.info{background-color:#c8d7de}:host .alert-container.warning,:host .snackbar-container.warning{background-color:#f0d6bb}:host .alert-container.error,:host .snackbar-container.error{background-color:#e3c3c6}@media (max-width: 600px){:host .alert-container,:host .snackbar-container{padding:8px 14px}}:host .alert-container.fixed{top:0;z-index:98}:host .alert-container.full-width{width:100%;min-width:100%}:host .alert-container a{margin-left:7px}\n"] }]
81
- }], ctorParameters: function () { return []; }, propDecorators: { alertType: [{
82
- type: Input
83
- }], message: [{
84
- type: Input
85
- }], includeDismissButton: [{
86
- type: Input
87
- }], fixed: [{
88
- type: Input
89
- }], fullWidth: [{
90
- type: Input
91
- }], linkText: [{
92
- type: Input
93
- }], linkUrl: [{
94
- type: Input
95
- }], linkTarget: [{
96
- type: Input
97
- }] } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtYmFubmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2FsZXJ0LWJhbm5lci9hbGVydC1iYW5uZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYWxlcnQtYmFubmVyL2FsZXJ0LWJhbm5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7OztBQWU3RCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CO1FBRUE7Ozs7O1dBS0c7UUFDTSxjQUFTLEdBQWlCLFNBQVMsQ0FBQztRQUU3Qzs7OztXQUlHO1FBQ00sWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUV0Qjs7OztXQUlHO1FBQ00seUJBQW9CLEdBQUcsSUFBSSxDQUFDO1FBRXJDOzs7O1dBSUc7UUFDTSxVQUFLLEdBQUcsS0FBSyxDQUFDO1FBRXZCOzs7O1dBSUc7UUFDTSxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRTFCOzs7O1dBSUc7UUFDTSxhQUFRLEdBQUksRUFBRSxDQUFDO1FBU3hCOzs7OztXQUtHO1FBQ00sZUFBVSxHQUFvQixRQUFRLENBQUM7UUFHaEQsWUFBTyxHQUFHLElBQUksQ0FBQztJQTdEQSxDQUFDO0lBaUVoQixRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCw4Q0FBOEM7SUFDOUMsWUFBWTtRQUNWLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7O2lIQTNFVSxvQkFBb0I7cUdBQXBCLG9CQUFvQix5UUNuQmpDLHVmQWVBLDA1RkRKYztRQUNWLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDbkIsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2RSxDQUFDO0tBQ0g7MkZBR1Usb0JBQW9CO2tCQVpoQyxTQUFTOytCQUNFLGlCQUFpQixjQUdmO3dCQUNWLE9BQU8sQ0FBQyxXQUFXLEVBQUU7NEJBQ25CLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDdkUsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO3lCQUN2RSxDQUFDO3FCQUNILG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNOzBFQVd0QyxTQUFTO3NCQUFqQixLQUFLO2dCQU9HLE9BQU87c0JBQWYsS0FBSztnQkFPRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBT0csS0FBSztzQkFBYixLQUFLO2dCQU9HLFNBQVM7c0JBQWpCLEtBQUs7Z0JBT0csUUFBUTtzQkFBaEIsS0FBSztnQkFPRyxPQUFPO3NCQUFmLEtBQUs7Z0JBUUcsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJY29uTmFtZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvaWNvbi9pY29uLm1vZGVsJztcbmltcG9ydCB7IEFsZXJ0QmFyVHlwZSB9IGZyb20gJy4uLy4uL3V0aWxzL2FsZXJ0LWJhci5tb2RlbCc7XG5pbXBvcnQgeyBhbGVydEJhcnNVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbHMvYWxlcnQtYmFycy51dGlscyc7XG5pbXBvcnQgeyBMaW5rVGFyZ2V0VHlwZSB9IGZyb20gJy4vYWxlcnQtYmFubmVyLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktYWxlcnQtYmFubmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FsZXJ0LWJhbm5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FsZXJ0LWJhbm5lci5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignb3BlbkNsb3NlJywgW1xuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW2FuaW1hdGUoJzAuMnMgZWFzZS1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpXSksXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbYW5pbWF0ZSgnMC4ycyBlYXNlLWluJywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKV0pLFxuICAgIF0pLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQWxlcnRCYW5uZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgLyoqXG4gICAqIEFsZXJ0IEJhbm5lciB0eXBlXG4gICAqXG4gICAqIEB0eXBlIHtBbGVydEJhclR5cGV9XG4gICAqIEBtZW1iZXJvZiBBbGVydEJhbm5lckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgYWxlcnRUeXBlOiBBbGVydEJhclR5cGUgPSAnc3VjY2Vzcyc7XG5cbiAgLyoqXG4gICAqIEFsZXJ0IGJhbm5lciBtZXNzYWdlXG4gICAqXG4gICAqIEBtZW1iZXJvZiBBbGVydEJhbm5lckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgbWVzc2FnZSA9ICcnO1xuXG4gIC8qKlxuICAgKiBJbmNsdWRlIGRpc21taXNzIGJ1dHRvblxuICAgKlxuICAgKiBAbWVtYmVyb2YgQWxlcnRCYW5uZXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGluY2x1ZGVEaXNtaXNzQnV0dG9uID0gdHJ1ZTtcblxuICAvKipcbiAgICogU3RhdGljIG9yIGZpeGVkIHBvc2l0aW9uXG4gICAqXG4gICAqIEBtZW1iZXJvZiBBbGVydEJhbm5lckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgZml4ZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogRnVsbCB3aWR0aCBmb3IgYWxlcnQgYmFubmVyXG4gICAqXG4gICAqIEBtZW1iZXJvZiBBbGVydEJhbm5lckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgZnVsbFdpZHRoID0gdHJ1ZTtcblxuICAvKipcbiAgICogTGluayB0ZXh0IHRoYXQgd2lsbCBhcHBlbmRlZCBhdCB0aGUgZW5kIG9mIG1lc3NhZ2VcbiAgICpcbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBsaW5rVGV4dD8gPSAnJztcblxuICAvKipcbiAgICogTGluayB1cmxcbiAgICpcbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBsaW5rVXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMaW5rIHRhcmdldFxuICAgKlxuICAgKiBAdHlwZSB7QHR5cGUge0xpbmtUYXJnZXRUeXBlfX1cbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBsaW5rVGFyZ2V0PzogTGlua1RhcmdldFR5cGUgPSAnX2JsYW5rJztcblxuICBpY29uTmFtZTogSWNvbk5hbWU7XG4gIHZpc2libGUgPSB0cnVlO1xuICBwb3NpdGlvbjogc3RyaW5nO1xuICBjc3NDbGFzczogc3RyaW5nO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaWNvbk5hbWUgPSBhbGVydEJhcnNVdGlsLnNldEljb24odGhpcy5hbGVydFR5cGUpO1xuICAgIHRoaXMucG9zaXRpb24gPSBhbGVydEJhcnNVdGlsLnNldFBvc2l0aW9uKHRoaXMuZml4ZWQpO1xuICAgIHRoaXMuY3NzQ2xhc3MgPSBhbGVydEJhcnNVdGlsLnNldENzc0NsYXNzKHRoaXMuZnVsbFdpZHRoLCB0aGlzLmFsZXJ0VHlwZSwgdGhpcy5wb3NpdGlvbik7XG4gIH1cblxuICAvL0hpZGUgc25hY2tiYXIgd2hlbiBkaXNtaXNzIGJ1dHRvbiBpcyBjbGlja2VkXG4gIGRpc21pc3NDbGljaygpIHtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgfVxufVxuIiwiPGRpdiBbbmdDbGFzc109XCJjc3NDbGFzc1wiIFtAb3BlbkNsb3NlXSAqbmdJZj1cInZpc2libGVcIiBjbGFzcz1cImFsZXJ0LWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwiYWxlcnQtdGV4dFwiPlxuICAgIDx1aS1pY29uIFtuYW1lXT1cImljb25OYW1lXCIgc2l6ZT1cIjI0XCI+PC91aS1pY29uPlxuICAgIHt7IG1lc3NhZ2UgfX1cbiAgICA8YSAqbmdJZj1cIiEhbGlua1RleHRcIiBbdGFyZ2V0XT1cImxpbmtUYXJnZXRcIiBbaHJlZl09XCJsaW5rVXJsXCI+e3sgbGlua1RleHQgfX08L2E+XG4gIDwvZGl2PlxuICA8dWktYnV0dG9uXG4gICAgKm5nSWY9XCJpbmNsdWRlRGlzbWlzc0J1dHRvblwiXG4gICAgdHlwZT1cInRleHRcIlxuICAgIFtqdXN0SWNvbl09XCJ0cnVlXCJcbiAgICBjbGFzcz1cImNsb3NlXCJcbiAgICBpY29uTmFtZT1cIkNsb3NlXCJcbiAgICAoYnV0dG9uQ2xpY2tFdmVudCk9XCJkaXNtaXNzQ2xpY2soKVwiXG4gID48L3VpLWJ1dHRvbj5cbjwvZGl2PlxuIl19
@@ -1,151 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output, forwardRef } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "@angular/material/checkbox";
6
- export class CheckboxComponent {
7
- constructor() {
8
- /**
9
- * Determines whether the checkbox is disabled.
10
- * Default: false.
11
- *
12
- * @type {boolean}
13
- * @memberof CheckboxComponent
14
- */
15
- this.disabled = false;
16
- /**
17
- * Determines whether the checkbox is checked.
18
- * Default: false.
19
- *
20
- * @type {boolean}
21
- * @memberof CheckboxComponent
22
- */
23
- this.checked = false;
24
- /**
25
- * Determines whether the checkbox is indeterminate.
26
- * It can be used to represent a checkbox with three states, e.g. a checkbox that represents a nested list of checkable items.
27
- * Default: false.
28
- *
29
- * @type {boolean}
30
- * @memberof CheckboxComponent
31
- */
32
- this.indeterminate = false;
33
- /**
34
- * Determines whether the checkbox color.
35
- * Default: Test Gorilla primary color.
36
- *
37
- * @type {string}
38
- * @memberof CheckboxComponent
39
- */
40
- this.color = '#46A997';
41
- /**
42
- * Name value will be applied to the input element if present.
43
- *
44
- * @type {string}
45
- * @memberof CheckboxComponent
46
- */
47
- this.name = '';
48
- /**
49
- * Text content will be applied to the input element if present.
50
- *
51
- * @type {string}
52
- * @memberof CheckboxComponent
53
- */
54
- this.label = '';
55
- /**
56
- * Determines whether the checkbox is a multiple choice cell.
57
- * Default: false
58
- *
59
- * @type {boolean}
60
- * @memberof CheckboxComponent
61
- */
62
- this.multiple = false;
63
- /**
64
- * Event emitted when the checkbox's checked value changes.
65
- *
66
- * @type {boolean}
67
- * @memberof CheckboxComponent
68
- */
69
- this.changed = new EventEmitter();
70
- /**
71
- * @ignore
72
- */
73
- this.onChange = (_) => { };
74
- /**
75
- * @ignore
76
- */
77
- this.onTouch = () => { };
78
- }
79
- emitChange(event) {
80
- this.changed.emit(event.checked);
81
- }
82
- ngOnInit() {
83
- this.classMultiple = this.setClass();
84
- }
85
- toggleChecked(event) {
86
- this.changed.emit(event.checked);
87
- this.checked = event.checked;
88
- this.onTouch();
89
- this.onChange(this.checked);
90
- if (!this.disabled) {
91
- this.indeterminate = false;
92
- this.classMultiple = this.setClass();
93
- }
94
- }
95
- setClass() {
96
- if (this.multiple) {
97
- return this.checked || this.indeterminate ? 'multiple-checked' : 'multiple-unchecked';
98
- }
99
- return '';
100
- }
101
- writeValue(value) {
102
- this.checked = value;
103
- }
104
- registerOnChange(fn) {
105
- this.onChange = fn;
106
- }
107
- registerOnTouched(fn) {
108
- this.onTouch = fn;
109
- }
110
- setDisabledState(isDisabled) {
111
- this.disabled = isDisabled;
112
- }
113
- }
114
- CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
115
- CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CheckboxComponent, selector: "ui-checkbox", inputs: { disabled: "disabled", checked: "checked", indeterminate: "indeterminate", color: "color", name: "name", label: "label", multiple: "multiple" }, outputs: { changed: "changed" }, host: { properties: { "style.--color": "this.color" } }, providers: [
116
- {
117
- provide: NG_VALUE_ACCESSOR,
118
- useExisting: forwardRef(() => CheckboxComponent),
119
- multi: true,
120
- },
121
- ], ngImport: i0, template: "<div [ngClass]=\"classMultiple\">\n <mat-checkbox\n [indeterminate]=\"indeterminate\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n (change)=\"toggleChecked($event)\"\n [aria-label]=\"label\"\n class=\"checkbox\"\n >\n {{ label }}\n </mat-checkbox>\n</div>", styles: [".mat-mdc-checkbox.checkbox.mat-accent ::ng-deep .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{background-color:var(--color)!important;border-color:var(--color)!important}::ng-deep .mat-mdc-checkbox.checkbox.mat-accent.mat-mdc-checkbox-checked .mdc-checkbox__background{background-color:var(--color)!important;border-color:var(--color)!important}.mat-mdc-checkbox.checkbox.mat-accent ::ng-deep .mdc-checkbox__ripple{background-color:var(--color)}::ng-deep .mat-mdc-checkbox.checkbox.mat-accent.mdc-checkbox__native-control:indeterminate~.mat-mdc-checkbox-disabled .mdc-checkbox__background{background-color:#888}::ng-deep .mat-mdc-checkbox.checkbox.mat-accent.mat-mdc-checkbox-checked.mat-mdc-checkbox-disabled .mdc-checkbox__background{background-color:#888}.multiple-checked{border:1px solid #46A997;display:flex;flex-direction:row;align-items:center;gap:16px;background:#46A997;border-radius:8px}.multiple-checked ::ng-deep .mat-mdc-checkbox{width:100%;height:100%}.multiple-checked ::ng-deep .mdc-form-field{padding:8px;width:100%;height:100%;align-items:center}.multiple-checked .mat-mdc-checkbox.checkbox.mat-accent ::ng-deep .mdc-checkbox__background{border:1px solid #ffffff!important;border-color:#fff!important}.multiple-checked ::ng-deep label{color:#fff}.multiple-unchecked{border:1px solid #E0E0E0;display:flex;flex-direction:row;align-items:center;gap:16px;background:#ffffff;border-radius:8px}.multiple-unchecked ::ng-deep .mat-mdc-checkbox{width:100%;height:100%}.multiple-unchecked ::ng-deep .mdc-form-field{padding:8px;width:100%;height:100%;align-items:center}.multiple-unchecked:hover{background:#F6F6F6;border:1px solid #E0E0E0}.multiple-unchecked ::ng-deep .mdc-checkbox__background{border:1px solid #000000}.multiple-unchecked ::ng-deep .mdc-checkbox__native-control:not([disabled]):focus~.mdc-checkbox__ripple{opacity:0!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CheckboxComponent, decorators: [{
123
- type: Component,
124
- args: [{ selector: 'ui-checkbox', providers: [
125
- {
126
- provide: NG_VALUE_ACCESSOR,
127
- useExisting: forwardRef(() => CheckboxComponent),
128
- multi: true,
129
- },
130
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"classMultiple\">\n <mat-checkbox\n [indeterminate]=\"indeterminate\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n (change)=\"toggleChecked($event)\"\n [aria-label]=\"label\"\n class=\"checkbox\"\n >\n {{ label }}\n </mat-checkbox>\n</div>", styles: [".mat-mdc-checkbox.checkbox.mat-accent ::ng-deep .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{background-color:var(--color)!important;border-color:var(--color)!important}::ng-deep .mat-mdc-checkbox.checkbox.mat-accent.mat-mdc-checkbox-checked .mdc-checkbox__background{background-color:var(--color)!important;border-color:var(--color)!important}.mat-mdc-checkbox.checkbox.mat-accent ::ng-deep .mdc-checkbox__ripple{background-color:var(--color)}::ng-deep .mat-mdc-checkbox.checkbox.mat-accent.mdc-checkbox__native-control:indeterminate~.mat-mdc-checkbox-disabled .mdc-checkbox__background{background-color:#888}::ng-deep .mat-mdc-checkbox.checkbox.mat-accent.mat-mdc-checkbox-checked.mat-mdc-checkbox-disabled .mdc-checkbox__background{background-color:#888}.multiple-checked{border:1px solid #46A997;display:flex;flex-direction:row;align-items:center;gap:16px;background:#46A997;border-radius:8px}.multiple-checked ::ng-deep .mat-mdc-checkbox{width:100%;height:100%}.multiple-checked ::ng-deep .mdc-form-field{padding:8px;width:100%;height:100%;align-items:center}.multiple-checked .mat-mdc-checkbox.checkbox.mat-accent ::ng-deep .mdc-checkbox__background{border:1px solid #ffffff!important;border-color:#fff!important}.multiple-checked ::ng-deep label{color:#fff}.multiple-unchecked{border:1px solid #E0E0E0;display:flex;flex-direction:row;align-items:center;gap:16px;background:#ffffff;border-radius:8px}.multiple-unchecked ::ng-deep .mat-mdc-checkbox{width:100%;height:100%}.multiple-unchecked ::ng-deep .mdc-form-field{padding:8px;width:100%;height:100%;align-items:center}.multiple-unchecked:hover{background:#F6F6F6;border:1px solid #E0E0E0}.multiple-unchecked ::ng-deep .mdc-checkbox__background{border:1px solid #000000}.multiple-unchecked ::ng-deep .mdc-checkbox__native-control:not([disabled]):focus~.mdc-checkbox__ripple{opacity:0!important}\n"] }]
131
- }], propDecorators: { disabled: [{
132
- type: Input
133
- }], checked: [{
134
- type: Input
135
- }], indeterminate: [{
136
- type: Input
137
- }], color: [{
138
- type: HostBinding,
139
- args: ['style.--color']
140
- }, {
141
- type: Input
142
- }], name: [{
143
- type: Input
144
- }], label: [{
145
- type: Input
146
- }], multiple: [{
147
- type: Input
148
- }], changed: [{
149
- type: Output
150
- }] } });
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWlCLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoSixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFnQnpFLE1BQU0sT0FBTyxpQkFBaUI7SUFiOUI7UUFjRTs7Ozs7O1dBTUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRTFCOzs7Ozs7V0FNRztRQUNNLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFekI7Ozs7Ozs7V0FPRztRQUNNLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRS9COzs7Ozs7V0FNRztRQUVNLFVBQUssR0FBRyxTQUFTLENBQUM7UUFFM0I7Ozs7O1dBS0c7UUFDTSxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBRW5COzs7OztXQUtHO1FBQ00sVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUVwQjs7Ozs7O1dBTUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRTFCOzs7OztXQUtHO1FBQ08sWUFBTyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFaEQ7O1dBRUc7UUFDSCxhQUFRLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUUxQjs7V0FFRztRQUNILFlBQU8sR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7S0E2Q3BCO0lBekNDLFVBQVUsQ0FBQyxLQUF3QjtRQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQXdCO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDdEM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO1NBQ3ZGO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7OzhHQTVIVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwwUkFUakI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztZQUNoRCxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsMEJDZEgscVRBWU07MkZES08saUJBQWlCO2tCQWI3QixTQUFTOytCQUNFLGFBQWEsYUFHWjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQzs0QkFDaEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07OEJBVXRDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBU0csT0FBTztzQkFBZixLQUFLO2dCQVVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBVUcsS0FBSztzQkFEYixXQUFXO3VCQUFDLGVBQWU7O3NCQUMzQixLQUFLO2dCQVFHLElBQUk7c0JBQVosS0FBSztnQkFRRyxLQUFLO3NCQUFiLEtBQUs7Z0JBU0csUUFBUTtzQkFBaEIsS0FBSztnQkFRSSxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRDaGVja2JveENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktY2hlY2tib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENoZWNrYm94Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDaGVja2JveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjaGVja2JveCBpcyBkaXNhYmxlZC5cbiAgICogRGVmYXVsdDogZmFsc2UuXG4gICAqXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgQ2hlY2tib3hDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciB0aGUgY2hlY2tib3ggaXMgY2hlY2tlZC5cbiAgICogRGVmYXVsdDogZmFsc2UuXG4gICAqXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgQ2hlY2tib3hDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGNoZWNrZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjaGVja2JveCBpcyBpbmRldGVybWluYXRlLlxuICAgKiBJdCBjYW4gYmUgdXNlZCB0byByZXByZXNlbnQgYSBjaGVja2JveCB3aXRoIHRocmVlIHN0YXRlcywgZS5nLiBhIGNoZWNrYm94IHRoYXQgcmVwcmVzZW50cyBhIG5lc3RlZCBsaXN0IG9mIGNoZWNrYWJsZSBpdGVtcy5cbiAgICogRGVmYXVsdDogZmFsc2UuXG4gICAqXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgQ2hlY2tib3hDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjaGVja2JveCBjb2xvci5cbiAgICogRGVmYXVsdDogVGVzdCBHb3JpbGxhIHByaW1hcnkgY29sb3IuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBDaGVja2JveENvbXBvbmVudFxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLWNvbG9yJylcbiAgQElucHV0KCkgY29sb3IgPSAnIzQ2QTk5Nyc7XG5cbiAgLyoqXG4gICAqIE5hbWUgdmFsdWUgd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBpbnB1dCBlbGVtZW50IGlmIHByZXNlbnQuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBDaGVja2JveENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgbmFtZSA9ICcnO1xuXG4gIC8qKlxuICAgKiBUZXh0IGNvbnRlbnQgd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBpbnB1dCBlbGVtZW50IGlmIHByZXNlbnQuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBDaGVja2JveENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgbGFiZWwgPSAnJztcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjaGVja2JveCBpcyBhIG11bHRpcGxlIGNob2ljZSBjZWxsLlxuICAgKiBEZWZhdWx0OiBmYWxzZVxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIENoZWNrYm94Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGNoZWNrYm94J3MgY2hlY2tlZCB2YWx1ZSBjaGFuZ2VzLlxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIENoZWNrYm94Q29tcG9uZW50XG4gICAqL1xuICBAT3V0cHV0KCkgY2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgb25Ub3VjaCA9ICgpID0+IHt9O1xuXG4gIGNsYXNzTXVsdGlwbGU6IHN0cmluZztcblxuICBlbWl0Q2hhbmdlKGV2ZW50OiBNYXRDaGVja2JveENoYW5nZSk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlZC5lbWl0KGV2ZW50LmNoZWNrZWQpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jbGFzc011bHRpcGxlID0gdGhpcy5zZXRDbGFzcygpO1xuICB9XG5cbiAgdG9nZ2xlQ2hlY2tlZChldmVudDogTWF0Q2hlY2tib3hDaGFuZ2UpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZWQuZW1pdChldmVudC5jaGVja2VkKTtcbiAgICB0aGlzLmNoZWNrZWQgPSBldmVudC5jaGVja2VkO1xuICAgIHRoaXMub25Ub3VjaCgpO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy5jaGVja2VkKTtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAgICAgdGhpcy5jbGFzc011bHRpcGxlID0gdGhpcy5zZXRDbGFzcygpO1xuICAgIH1cbiAgfVxuXG4gIHNldENsYXNzKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmNoZWNrZWQgfHwgdGhpcy5pbmRldGVybWluYXRlID8gJ211bHRpcGxlLWNoZWNrZWQnIDogJ211bHRpcGxlLXVuY2hlY2tlZCc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrZWQgPSB2YWx1ZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cImNsYXNzTXVsdGlwbGVcIj5cbiAgPG1hdC1jaGVja2JveFxuICAgIFtpbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGVcIlxuICAgIFtjaGVja2VkXT1cImNoZWNrZWRcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW25hbWVdPVwibmFtZVwiXG4gICAgKGNoYW5nZSk9XCJ0b2dnbGVDaGVja2VkKCRldmVudClcIlxuICAgIFthcmlhLWxhYmVsXT1cImxhYmVsXCJcbiAgICBjbGFzcz1cImNoZWNrYm94XCJcbiAgPlxuICAgIHt7IGxhYmVsIH19XG4gIDwvbWF0LWNoZWNrYm94PlxuPC9kaXY+Il19
@@ -1,179 +0,0 @@
1
- /* eslint-disable no-underscore-dangle */
2
- import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, HostBinding, Input, Output, ViewEncapsulation, } from '@angular/core';
3
- import { FormControl, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "@angular/material/form-field";
7
- import * as i3 from "@angular/material/input";
8
- import * as i4 from "../icon/icon.component";
9
- import * as i5 from "@angular/forms";
10
- import * as i6 from "@angular/material/datepicker";
11
- export class DatepickerComponent {
12
- constructor() {
13
- this.class = 'ui-datepicker';
14
- /**
15
- * Form field label
16
- *
17
- * @type {string}
18
- * @memberof DatepickerComponent
19
- */
20
- this.label = '';
21
- /**
22
- * Input placeholder
23
- *
24
- * @type {string}
25
- * @memberof DatepickerComponent
26
- */
27
- this.placeholder = '';
28
- /**
29
- * Input id
30
- *
31
- * @type {string}
32
- * @memberof DatepickerComponent
33
- */
34
- this.id = '';
35
- /**
36
- * Input is update only on blur
37
- *
38
- * @type {Boolean}
39
- * @memberof DatepickerComponent
40
- */
41
- this.updateOnBlur = false;
42
- /**
43
- * @ignore
44
- */
45
- this.onChange = (_) => { };
46
- /**
47
- * @ignore
48
- */
49
- this.onTouch = () => { };
50
- /**
51
- * Event emitted when the value is change - when used outside of form
52
- *
53
- * @type {Date}
54
- * @memberof DatepickerComponent
55
- */
56
- this.changed = new EventEmitter();
57
- this.range = new FormGroup({
58
- start: new FormControl(null),
59
- end: new FormControl(null),
60
- });
61
- }
62
- /**
63
- * Input field errors
64
- *
65
- * @type {string}
66
- * @memberof DatepickerComponent
67
- */
68
- set errors(errors) {
69
- this._errors = errors;
70
- this.errorsLength = this.setErrorsLength();
71
- }
72
- get hint() {
73
- if (this.hintMessage === undefined) {
74
- return this.isRange ? 'MM/DD/YYYY - MM/DD/YYYY' : 'MM/DD/YYYY';
75
- }
76
- return this.hintMessage;
77
- }
78
- ngOnChanges() {
79
- if (this.isRange) {
80
- this.setRange();
81
- }
82
- }
83
- // Set errors length for validation
84
- // Consider only those errors which which are not empty
85
- setErrorsLength() {
86
- if (!!this._errors) {
87
- return this._errors.filter(err => !!err).length > 0 ? true : false;
88
- }
89
- return false;
90
- }
91
- onValueChange(value) {
92
- this.writeValue(value);
93
- this.errorsLength = this.setErrorsLength();
94
- if (!this.updateOnBlur) {
95
- this.onTouch();
96
- }
97
- this.onChange(value);
98
- this.changed.emit(value);
99
- }
100
- writeValue(value) {
101
- this.value = value;
102
- if (this.isRange) {
103
- this.setRange();
104
- }
105
- }
106
- registerOnChange(fn) {
107
- this.onChange = fn;
108
- }
109
- registerOnTouched(fn) {
110
- this.onTouch = fn;
111
- }
112
- setDisabledState(isDisabled) {
113
- this.disabled = isDisabled;
114
- }
115
- dateRangeChange(start, end) {
116
- if (start && end) {
117
- this.onValueChange(this.getRange(start, end));
118
- }
119
- }
120
- setRange() {
121
- if (typeof this.value === 'string') {
122
- const [start, end] = this.value?.split('-');
123
- if (start) {
124
- this.range.controls.start.setValue(new Date(start));
125
- }
126
- if (end) {
127
- this.range.controls.end.setValue(new Date(end));
128
- }
129
- }
130
- }
131
- getRange(start, end) {
132
- return `${start}-${end}`;
133
- }
134
- }
135
- DatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
136
- DatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DatepickerComponent, selector: "ui-datepicker", inputs: { label: "label", fieldName: "fieldName", placeholder: "placeholder", id: "id", value: "value", errors: "errors", isRange: "isRange", disabled: "disabled", required: "required", hintMessage: "hintMessage", updateOnBlur: "updateOnBlur" }, outputs: { changed: "changed" }, host: { properties: { "class": "this.class" } }, providers: [
137
- {
138
- provide: NG_VALUE_ACCESSOR,
139
- useExisting: forwardRef(() => DatepickerComponent),
140
- multi: true,
141
- },
142
- ], usesOnChanges: true, ngImport: i0, template: "<mat-form-field #uiDatepicker appearance=\"outline\" [color]=\"errorsLength ? 'warn' : 'accent'\">\n <mat-label *ngIf=\"label\">{{ label }}<span *ngIf=\"required\"> *</span></mat-label>\n <ng-container *ngIf=\"!isRange\">\n <input *ngIf=\"!isRange\" matInput\n [matDatepicker]=\"picker\"\n matInput\n (blur)=\"onTouch()\"\n (dateChange)=\"onValueChange($event.value)\"\n [id]=\"id!\"\n [placeholder]=\"placeholder!\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [name]=\"fieldName!\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\">\n <ui-icon matDatepickerToggleIcon name=\"Calendar\" size=\"24\" color=\"inherit\"></ui-icon>\n </mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n </ng-container>\n <ng-container *ngIf=\"isRange\">\n <mat-date-range-input *ngIf=\"isRange\" [formGroup]=\"range\" [rangePicker]=\"rangePicker\" >\n <input matStartDate #dateRangeStart formControlName=\"start\" placeholder=\"Start date\" >\n <input matEndDate #dateRangeEnd formControlName=\"end\" placeholder=\"End date\" (dateChange)=\"dateRangeChange(dateRangeStart.value, dateRangeEnd.value)\">\n </mat-date-range-input>\n <mat-datepicker-toggle matIconSuffix [for]=\"rangePicker\">\n <ui-icon matDatepickerToggleIcon name=\"Calendar\" size=\"24\" color=\"inherit\"></ui-icon>\n </mat-datepicker-toggle>\n <mat-date-range-picker #rangePicker></mat-date-range-picker>\n </ng-container>\n <mat-hint class=\"info\" *ngIf=\"hint && !_errors\">{{ hint }}</mat-hint>\n <mat-hint class=\"error\" *ngIf=\"errorsLength\">\n <div class=\"errors\" *ngFor=\"let error of _errors\"><ui-icon name=\"Error\"></ui-icon>{{ error }}</div>\n </mat-hint>\n</mat-form-field>\n", styles: [".ui-datepicker .mat-mdc-form-field{margin-top:0;min-width:296px}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper{height:48px}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:22px}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mdc-notched-outline{color:#888}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mdc-notched-outline .mdc-floating-label--float-above{transform:translateY(-30px) scale(.75)}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-form-field-infix{min-height:48px;max-height:48px;padding:4px 0;line-height:22px;display:inline-flex;align-items:center}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-form-field-subscript-wrapper{padding:0 0 12px;margin-top:4px;font-size:12px;line-height:16px;position:relative}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-form-field-subscript-wrapper .mat-form-field-hint-spacer{display:none}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-form-field-hint.info{color:#888;width:100%}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-form-field-bottom-align:before{height:0}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-form-field-hint-wrapper{padding:0}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-form-field-hint.error,.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-form-field-hint.error svg{color:#cb7b7a}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-form-field-hint.error{display:flex}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-form-field-hint.error ui-icon{margin-right:9px}.ui-datepicker .mat-mdc-form-field.mat-warn.mat-form-field-appearance-outline:not(.mdc-text-field--disabled) .mat-mdc-form-field-flex:hover .mdc-notched-outline .mdc-notched-outline__leading,.ui-datepicker .mat-mdc-form-field.mat-warn.mat-form-field-appearance-outline:not(.mdc-text-field--disabled) .mat-mdc-form-field-flex:hover .mdc-notched-outline .mdc-notched-outline__trailing,.ui-datepicker .mat-mdc-form-field.mat-warn.mat-form-field-appearance-outline:not(.mdc-text-field--disabled) .mat-mdc-form-field-flex:hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:#cb7b7a}.ui-datepicker .mat-mdc-form-field.mat-warn.mat-form-field-appearance-outline .mdc-notched-outline .mdc-notched-outline__leading,.ui-datepicker .mat-mdc-form-field.mat-warn.mat-form-field-appearance-outline .mdc-notched-outline .mdc-notched-outline__trailing,.ui-datepicker .mat-mdc-form-field.mat-warn.mat-form-field-appearance-outline .mdc-notched-outline .mdc-notched-outline__notch{border-color:#cb7b7a}.ui-datepicker .mat-mdc-form-field.mat-warn.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix .mat-form-field-label mat-label{color:#cb7b7a}.ui-datepicker .mat-mdc-form-field .mat-mdc-form-field-hint.error{display:flex;flex-flow:column;row-gap:4px}.ui-datepicker .mat-mdc-form-field .mat-mdc-form-field-hint.error .errors{display:flex}.ui-datepicker .mat-mdc-form-field.mat-accent.mat-form-field-appearance-outline:not(.mat-form-field-disabled) .mat-mdc-form-field-flex:hover .mdc-notched-outline{color:#276678}.ui-datepicker .mat-mdc-form-field.mat-accent.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix .mat-form-field-label mat-label{color:#276678}.ui-datepicker .mat-mdc-form-field.mat-form-field-disabled.mat-form-field-appearance-outline .mdc-notched-outline{color:#e0e0e0}.mat-datepicker-content .mat-mdc-button.mat-unthemed .mdc-button__label>span{font-weight:600}.mat-datepicker-content.mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#e9f0f1}.mat-datepicker-content.mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background-color:#e9f0f1}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i6.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "component", type: i6.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i6.MatStartDate, selector: "input[matStartDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i6.MatEndDate, selector: "input[matEndDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i6.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DatepickerComponent, decorators: [{
144
- type: Component,
145
- args: [{ selector: 'ui-datepicker', encapsulation: ViewEncapsulation.None, providers: [
146
- {
147
- provide: NG_VALUE_ACCESSOR,
148
- useExisting: forwardRef(() => DatepickerComponent),
149
- multi: true,
150
- },
151
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field #uiDatepicker appearance=\"outline\" [color]=\"errorsLength ? 'warn' : 'accent'\">\n <mat-label *ngIf=\"label\">{{ label }}<span *ngIf=\"required\"> *</span></mat-label>\n <ng-container *ngIf=\"!isRange\">\n <input *ngIf=\"!isRange\" matInput\n [matDatepicker]=\"picker\"\n matInput\n (blur)=\"onTouch()\"\n (dateChange)=\"onValueChange($event.value)\"\n [id]=\"id!\"\n [placeholder]=\"placeholder!\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [name]=\"fieldName!\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\">\n <ui-icon matDatepickerToggleIcon name=\"Calendar\" size=\"24\" color=\"inherit\"></ui-icon>\n </mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n </ng-container>\n <ng-container *ngIf=\"isRange\">\n <mat-date-range-input *ngIf=\"isRange\" [formGroup]=\"range\" [rangePicker]=\"rangePicker\" >\n <input matStartDate #dateRangeStart formControlName=\"start\" placeholder=\"Start date\" >\n <input matEndDate #dateRangeEnd formControlName=\"end\" placeholder=\"End date\" (dateChange)=\"dateRangeChange(dateRangeStart.value, dateRangeEnd.value)\">\n </mat-date-range-input>\n <mat-datepicker-toggle matIconSuffix [for]=\"rangePicker\">\n <ui-icon matDatepickerToggleIcon name=\"Calendar\" size=\"24\" color=\"inherit\"></ui-icon>\n </mat-datepicker-toggle>\n <mat-date-range-picker #rangePicker></mat-date-range-picker>\n </ng-container>\n <mat-hint class=\"info\" *ngIf=\"hint && !_errors\">{{ hint }}</mat-hint>\n <mat-hint class=\"error\" *ngIf=\"errorsLength\">\n <div class=\"errors\" *ngFor=\"let error of _errors\"><ui-icon name=\"Error\"></ui-icon>{{ error }}</div>\n </mat-hint>\n</mat-form-field>\n", styles: [".ui-datepicker .mat-mdc-form-field{margin-top:0;min-width:296px}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper{height:48px}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:22px}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mdc-notched-outline{color:#888}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mdc-notched-outline .mdc-floating-label--float-above{transform:translateY(-30px) scale(.75)}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-form-field-infix{min-height:48px;max-height:48px;padding:4px 0;line-height:22px;display:inline-flex;align-items:center}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-form-field-subscript-wrapper{padding:0 0 12px;margin-top:4px;font-size:12px;line-height:16px;position:relative}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-form-field-subscript-wrapper .mat-form-field-hint-spacer{display:none}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-form-field-hint.info{color:#888;width:100%}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-form-field-bottom-align:before{height:0}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-form-field-hint-wrapper{padding:0}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-form-field-hint.error,.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-form-field-hint.error svg{color:#cb7b7a}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-form-field-hint.error{display:flex}.ui-datepicker .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-form-field-hint.error ui-icon{margin-right:9px}.ui-datepicker .mat-mdc-form-field.mat-warn.mat-form-field-appearance-outline:not(.mdc-text-field--disabled) .mat-mdc-form-field-flex:hover .mdc-notched-outline .mdc-notched-outline__leading,.ui-datepicker .mat-mdc-form-field.mat-warn.mat-form-field-appearance-outline:not(.mdc-text-field--disabled) .mat-mdc-form-field-flex:hover .mdc-notched-outline .mdc-notched-outline__trailing,.ui-datepicker .mat-mdc-form-field.mat-warn.mat-form-field-appearance-outline:not(.mdc-text-field--disabled) .mat-mdc-form-field-flex:hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:#cb7b7a}.ui-datepicker .mat-mdc-form-field.mat-warn.mat-form-field-appearance-outline .mdc-notched-outline .mdc-notched-outline__leading,.ui-datepicker .mat-mdc-form-field.mat-warn.mat-form-field-appearance-outline .mdc-notched-outline .mdc-notched-outline__trailing,.ui-datepicker .mat-mdc-form-field.mat-warn.mat-form-field-appearance-outline .mdc-notched-outline .mdc-notched-outline__notch{border-color:#cb7b7a}.ui-datepicker .mat-mdc-form-field.mat-warn.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix .mat-form-field-label mat-label{color:#cb7b7a}.ui-datepicker .mat-mdc-form-field .mat-mdc-form-field-hint.error{display:flex;flex-flow:column;row-gap:4px}.ui-datepicker .mat-mdc-form-field .mat-mdc-form-field-hint.error .errors{display:flex}.ui-datepicker .mat-mdc-form-field.mat-accent.mat-form-field-appearance-outline:not(.mat-form-field-disabled) .mat-mdc-form-field-flex:hover .mdc-notched-outline{color:#276678}.ui-datepicker .mat-mdc-form-field.mat-accent.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix .mat-form-field-label mat-label{color:#276678}.ui-datepicker .mat-mdc-form-field.mat-form-field-disabled.mat-form-field-appearance-outline .mdc-notched-outline{color:#e0e0e0}.mat-datepicker-content .mat-mdc-button.mat-unthemed .mdc-button__label>span{font-weight:600}.mat-datepicker-content.mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#e9f0f1}.mat-datepicker-content.mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background-color:#e9f0f1}\n"] }]
152
- }], propDecorators: { class: [{
153
- type: HostBinding
154
- }], label: [{
155
- type: Input
156
- }], fieldName: [{
157
- type: Input
158
- }], placeholder: [{
159
- type: Input
160
- }], id: [{
161
- type: Input
162
- }], value: [{
163
- type: Input
164
- }], errors: [{
165
- type: Input
166
- }], isRange: [{
167
- type: Input
168
- }], disabled: [{
169
- type: Input
170
- }], required: [{
171
- type: Input
172
- }], hintMessage: [{
173
- type: Input
174
- }], updateOnBlur: [{
175
- type: Input
176
- }], changed: [{
177
- type: Output
178
- }] } });
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlDQUF5QztBQUN6QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBRUwsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFnQmpHLE1BQU0sT0FBTyxtQkFBbUI7SUFkaEM7UUFlaUIsVUFBSyxHQUFHLGVBQWUsQ0FBQztRQUV2Qzs7Ozs7V0FLRztRQUNNLFVBQUssR0FBSSxFQUFFLENBQUM7UUFVckI7Ozs7O1dBS0c7UUFDTSxnQkFBVyxHQUFJLEVBQUUsQ0FBQztRQUUzQjs7Ozs7V0FLRztRQUNNLE9BQUUsR0FBSSxFQUFFLENBQUM7UUFzRGxCOzs7OztXQUtHO1FBQ00saUJBQVksR0FBRyxLQUFLLENBQUM7UUFFOUI7O1dBRUc7UUFDSCxhQUFRLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUUxQjs7V0FFRztRQUNILFlBQU8sR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFbkI7Ozs7O1dBS0c7UUFDTyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFFdEQsVUFBSyxHQUFHLElBQUksU0FBUyxDQUFDO1lBQ3BCLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBYyxJQUFJLENBQUM7WUFDekMsR0FBRyxFQUFFLElBQUksV0FBVyxDQUFjLElBQUksQ0FBQztTQUN4QyxDQUFDLENBQUM7S0E2RUo7SUFySkM7Ozs7O09BS0c7SUFDSCxJQUFhLE1BQU0sQ0FBQyxNQUFnQjtRQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBbUVELElBQUksSUFBSTtRQUNOLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUU7WUFDbEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO1NBQ2hFO1FBRUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFRCxtQ0FBbUM7SUFDbkMsdURBQXVEO0lBQ3ZELGVBQWU7UUFDYixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7U0FDcEU7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBb0I7UUFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN0QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDaEI7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBcUI7UUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWEsRUFBRSxHQUFXO1FBQ3hDLElBQUksS0FBSyxJQUFJLEdBQUcsRUFBRTtZQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDL0M7SUFDSCxDQUFDO0lBRU8sUUFBUTtRQUNkLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUNsQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVDLElBQUksS0FBSyxFQUFFO2dCQUNULElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNyRDtZQUNELElBQUksR0FBRyxFQUFFO2dCQUNQLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUNqRDtTQUNGO0lBQ0gsQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUFhLEVBQUUsR0FBVztRQUN6QyxPQUFPLEdBQUcsS0FBSyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7O2dIQWhNVSxtQkFBbUI7b0dBQW5CLG1CQUFtQixnWEFUbkI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztZQUNsRCxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsK0NDekJILHd2REFrQ0E7MkZETmEsbUJBQW1CO2tCQWQvQixTQUFTOytCQUNFLGVBQWUsaUJBR1YsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQzs0QkFDbEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07OEJBR2hDLEtBQUs7c0JBQW5CLFdBQVc7Z0JBUUgsS0FBSztzQkFBYixLQUFLO2dCQVFHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBUUcsV0FBVztzQkFBbkIsS0FBSztnQkFRRyxFQUFFO3NCQUFWLEtBQUs7Z0JBUUcsS0FBSztzQkFBYixLQUFLO2dCQVNPLE1BQU07c0JBQWxCLEtBQUs7Z0JBV0csT0FBTztzQkFBZixLQUFLO2dCQVFHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBUUcsUUFBUTtzQkFBaEIsS0FBSztnQkFRRyxXQUFXO3NCQUFuQixLQUFLO2dCQVFHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBa0JJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby11bmRlcnNjb3JlLWRhbmdsZSAqL1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3VpLWRhdGVwaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlcGlja2VyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBIb3N0QmluZGluZygpIGNsYXNzID0gJ3VpLWRhdGVwaWNrZXInO1xuXG4gIC8qKlxuICAgKiBGb3JtIGZpZWxkIGxhYmVsXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBEYXRlcGlja2VyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBsYWJlbD8gPSAnJztcblxuICAvKipcbiAgICogSW5wdXQgbmFtZSBhdHRyaWJ1dGVcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIERhdGVwaWNrZXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGZpZWxkTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSW5wdXQgcGxhY2Vob2xkZXJcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIERhdGVwaWNrZXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyPyA9ICcnO1xuXG4gIC8qKlxuICAgKiBJbnB1dCBpZFxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAbWVtYmVyb2YgRGF0ZXBpY2tlckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgaWQ/ID0gJyc7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhbHVlXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBEYXRlcGlja2VyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSB2YWx1ZT86IHN0cmluZyB8IERhdGU7XG5cbiAgX2Vycm9yczogc3RyaW5nW107XG4gIC8qKlxuICAgKiBJbnB1dCBmaWVsZCBlcnJvcnNcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIERhdGVwaWNrZXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIHNldCBlcnJvcnMoZXJyb3JzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuX2Vycm9ycyA9IGVycm9ycztcbiAgICB0aGlzLmVycm9yc0xlbmd0aCA9IHRoaXMuc2V0RXJyb3JzTGVuZ3RoKCk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBpbnB1dCBpcyBkYXRlIHJhbmdlXG4gICAqXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgRGF0ZXBpY2tlckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgaXNSYW5nZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBpbnB1dCBpcyBkaXNhYmxlZFxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIERhdGVwaWNrZXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbnB1dCBpcyByZXF1aXJlZCBvciBub3RcbiAgICpcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBtZW1iZXJvZiBEYXRlcGlja2VyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogSGludCB0ZXh0XG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBEYXRlcGlja2VyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBoaW50TWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbnB1dCBpcyB1cGRhdGUgb25seSBvbiBibHVyXG4gICAqXG4gICAqIEB0eXBlIHtCb29sZWFufVxuICAgKiBAbWVtYmVyb2YgRGF0ZXBpY2tlckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgdXBkYXRlT25CbHVyID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIG9uQ2hhbmdlID0gKF86IGFueSkgPT4ge307XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIG9uVG91Y2ggPSAoKSA9PiB7fTtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSB2YWx1ZSBpcyBjaGFuZ2UgLSB3aGVuIHVzZWQgb3V0c2lkZSBvZiBmb3JtXG4gICAqXG4gICAqIEB0eXBlIHtEYXRlfVxuICAgKiBAbWVtYmVyb2YgRGF0ZXBpY2tlckNvbXBvbmVudFxuICAgKi9cbiAgQE91dHB1dCgpIGNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGUgfCBzdHJpbmc+KCk7XG5cbiAgcmFuZ2UgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICBzdGFydDogbmV3IEZvcm1Db250cm9sPERhdGUgfCBudWxsPihudWxsKSxcbiAgICBlbmQ6IG5ldyBGb3JtQ29udHJvbDxEYXRlIHwgbnVsbD4obnVsbCksXG4gIH0pO1xuXG4gIGVycm9yc0xlbmd0aDogYm9vbGVhbjtcblxuICBnZXQgaGludCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmhpbnRNZXNzYWdlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLmlzUmFuZ2UgPyAnTU0vREQvWVlZWSAtIE1NL0REL1lZWVknIDogJ01NL0REL1lZWVknO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhpbnRNZXNzYWdlO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNSYW5nZSkge1xuICAgICAgdGhpcy5zZXRSYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBlcnJvcnMgbGVuZ3RoIGZvciB2YWxpZGF0aW9uXG4gIC8vIENvbnNpZGVyIG9ubHkgdGhvc2UgZXJyb3JzIHdoaWNoIHdoaWNoIGFyZSBub3QgZW1wdHlcbiAgc2V0RXJyb3JzTGVuZ3RoKCk6IGJvb2xlYW4ge1xuICAgIGlmICghIXRoaXMuX2Vycm9ycykge1xuICAgICAgcmV0dXJuIHRoaXMuX2Vycm9ycy5maWx0ZXIoZXJyID0+ICEhZXJyKS5sZW5ndGggPiAwID8gdHJ1ZSA6IGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBEYXRlIHwgc3RyaW5nKSB7XG4gICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLmVycm9yc0xlbmd0aCA9IHRoaXMuc2V0RXJyb3JzTGVuZ3RoKCk7XG4gICAgaWYgKCF0aGlzLnVwZGF0ZU9uQmx1cikge1xuICAgICAgdGhpcy5vblRvdWNoKCk7XG4gICAgfVxuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIHRoaXMuY2hhbmdlZC5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU/OiBEYXRlIHwgc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLmlzUmFuZ2UpIHtcbiAgICAgIHRoaXMuc2V0UmFuZ2UoKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIGRhdGVSYW5nZUNoYW5nZShzdGFydDogc3RyaW5nLCBlbmQ6IHN0cmluZykge1xuICAgIGlmIChzdGFydCAmJiBlbmQpIHtcbiAgICAgIHRoaXMub25WYWx1ZUNoYW5nZSh0aGlzLmdldFJhbmdlKHN0YXJ0LCBlbmQpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFJhbmdlKCkge1xuICAgIGlmICh0eXBlb2YgdGhpcy52YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IHRoaXMudmFsdWU/LnNwbGl0KCctJyk7XG4gICAgICBpZiAoc3RhcnQpIHtcbiAgICAgICAgdGhpcy5yYW5nZS5jb250cm9scy5zdGFydC5zZXRWYWx1ZShuZXcgRGF0ZShzdGFydCkpO1xuICAgICAgfVxuICAgICAgaWYgKGVuZCkge1xuICAgICAgICB0aGlzLnJhbmdlLmNvbnRyb2xzLmVuZC5zZXRWYWx1ZShuZXcgRGF0ZShlbmQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFJhbmdlKHN0YXJ0OiBzdHJpbmcsIGVuZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7c3RhcnR9LSR7ZW5kfWA7XG4gIH1cbn1cbiIsIjxtYXQtZm9ybS1maWVsZCAjdWlEYXRlcGlja2VyIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgW2NvbG9yXT1cImVycm9yc0xlbmd0aCA/ICd3YXJuJyA6ICdhY2NlbnQnXCI+XG4gIDxtYXQtbGFiZWwgKm5nSWY9XCJsYWJlbFwiPnt7IGxhYmVsIH19PHNwYW4gKm5nSWY9XCJyZXF1aXJlZFwiPiAqPC9zcGFuPjwvbWF0LWxhYmVsPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzUmFuZ2VcIj5cbiAgICA8aW5wdXQgKm5nSWY9XCIhaXNSYW5nZVwiIG1hdElucHV0XG4gICAgICBbbWF0RGF0ZXBpY2tlcl09XCJwaWNrZXJcIlxuICAgICAgbWF0SW5wdXRcbiAgICAgIChibHVyKT1cIm9uVG91Y2goKVwiXG4gICAgICAoZGF0ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudC52YWx1ZSlcIlxuICAgICAgW2lkXT1cImlkIVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIhXCJcbiAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW25hbWVdPVwiZmllbGROYW1lIVwiXG4gICAgLz5cbiAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdEljb25TdWZmaXggW2Zvcl09XCJwaWNrZXJcIj5cbiAgICAgIDx1aS1pY29uIG1hdERhdGVwaWNrZXJUb2dnbGVJY29uIG5hbWU9XCJDYWxlbmRhclwiIHNpemU9XCIyNFwiIGNvbG9yPVwiaW5oZXJpdFwiPjwvdWktaWNvbj5cbiAgICA8L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlcj48L21hdC1kYXRlcGlja2VyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUmFuZ2VcIj5cbiAgICA8bWF0LWRhdGUtcmFuZ2UtaW5wdXQgKm5nSWY9XCJpc1JhbmdlXCIgW2Zvcm1Hcm91cF09XCJyYW5nZVwiIFtyYW5nZVBpY2tlcl09XCJyYW5nZVBpY2tlclwiID5cbiAgICAgIDxpbnB1dCBtYXRTdGFydERhdGUgI2RhdGVSYW5nZVN0YXJ0IGZvcm1Db250cm9sTmFtZT1cInN0YXJ0XCIgcGxhY2Vob2xkZXI9XCJTdGFydCBkYXRlXCIgPlxuICAgICAgPGlucHV0IG1hdEVuZERhdGUgICNkYXRlUmFuZ2VFbmQgZm9ybUNvbnRyb2xOYW1lPVwiZW5kXCIgcGxhY2Vob2xkZXI9XCJFbmQgZGF0ZVwiIChkYXRlQ2hhbmdlKT1cImRhdGVSYW5nZUNoYW5nZShkYXRlUmFuZ2VTdGFydC52YWx1ZSwgZGF0ZVJhbmdlRW5kLnZhbHVlKVwiPlxuICAgIDwvbWF0LWRhdGUtcmFuZ2UtaW5wdXQ+XG4gICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRJY29uU3VmZml4IFtmb3JdPVwicmFuZ2VQaWNrZXJcIj5cbiAgICAgIDx1aS1pY29uIG1hdERhdGVwaWNrZXJUb2dnbGVJY29uIG5hbWU9XCJDYWxlbmRhclwiIHNpemU9XCIyNFwiIGNvbG9yPVwiaW5oZXJpdFwiPjwvdWktaWNvbj5cbiAgICA8L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICA8bWF0LWRhdGUtcmFuZ2UtcGlja2VyICNyYW5nZVBpY2tlcj48L21hdC1kYXRlLXJhbmdlLXBpY2tlcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxtYXQtaGludCBjbGFzcz1cImluZm9cIiAqbmdJZj1cImhpbnQgJiYgIV9lcnJvcnNcIj57eyBoaW50IH19PC9tYXQtaGludD5cbiAgPG1hdC1oaW50IGNsYXNzPVwiZXJyb3JcIiAqbmdJZj1cImVycm9yc0xlbmd0aFwiPlxuICAgIDxkaXYgY2xhc3M9XCJlcnJvcnNcIiAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgX2Vycm9yc1wiPjx1aS1pY29uIG5hbWU9XCJFcnJvclwiPjwvdWktaWNvbj57eyBlcnJvciB9fTwvZGl2PlxuICA8L21hdC1oaW50PlxuPC9tYXQtZm9ybS1maWVsZD5cbiJdfQ==