tin-spa 14.0.1 → 14.4.2

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 (166) hide show
  1. package/README.md +24 -24
  2. package/esm2020/lib/classes/Classes.mjs +32 -57
  3. package/esm2020/lib/classes/LibClasses.mjs +1 -2
  4. package/esm2020/lib/classes/TinCore.mjs +48 -206
  5. package/esm2020/lib/components/alert/alert.component.mjs +7 -21
  6. package/esm2020/lib/components/attach/attach.component.mjs +33 -49
  7. package/esm2020/lib/components/date/date.component.mjs +6 -8
  8. package/esm2020/lib/components/email/email.component.mjs +17 -19
  9. package/esm2020/lib/components/form/form.component.mjs +56 -144
  10. package/esm2020/lib/components/label/label.component.mjs +3 -9
  11. package/esm2020/lib/components/list-dialog/list-dialog.component.mjs +3 -3
  12. package/esm2020/lib/components/money/money.component.mjs +9 -26
  13. package/esm2020/lib/components/nav-menu/nav-menu.component.mjs +27 -31
  14. package/esm2020/lib/components/number/number.component.mjs +8 -23
  15. package/esm2020/lib/components/option/option.component.mjs +14 -36
  16. package/esm2020/lib/components/search/search.component.mjs +5 -10
  17. package/esm2020/lib/components/select/select.component.mjs +129 -56
  18. package/esm2020/lib/components/steps/steps.component.mjs +61 -83
  19. package/esm2020/lib/components/table/detailsDialog.component.mjs +41 -205
  20. package/esm2020/lib/components/table/table.component.mjs +111 -136
  21. package/esm2020/lib/components/table-action/table-action.component.mjs +8 -42
  22. package/esm2020/lib/components/table-header/table-header.component.mjs +10 -14
  23. package/esm2020/lib/components/table-internal/detailsDialog-internal.component.mjs +39 -205
  24. package/esm2020/lib/components/table-internal/table-internal.component.mjs +112 -138
  25. package/esm2020/lib/components/table-row/table-row.component.mjs +4 -23
  26. package/esm2020/lib/components/text/text.component.mjs +46 -110
  27. package/esm2020/lib/components/tiles/tiles.component.mjs +20 -32
  28. package/esm2020/lib/components/viewer/viewer.component.mjs +3 -7
  29. package/esm2020/lib/components/viewer/viewerDialog.component.mjs +13 -20
  30. package/esm2020/lib/modules/admin/admin-routing.module.mjs +1 -11
  31. package/esm2020/lib/pages/accounts/accountDialog.component.mjs +1 -1
  32. package/esm2020/lib/pages/bug/bug.component.mjs +3 -3
  33. package/esm2020/lib/pages/change-password/change-password.component.mjs +1 -1
  34. package/esm2020/lib/pages/create-account/create-account.component.mjs +1 -1
  35. package/esm2020/lib/pages/customers/customers.component.mjs +48 -9
  36. package/esm2020/lib/pages/departments/departments.component.mjs +4 -2
  37. package/esm2020/lib/pages/employees/employees.component.mjs +4 -3
  38. package/esm2020/lib/pages/grades/grades.component.mjs +3 -3
  39. package/esm2020/lib/pages/inventory/inventory.component.mjs +3 -3
  40. package/esm2020/lib/pages/inventory/quantityDialog.component.mjs +1 -1
  41. package/esm2020/lib/pages/invitations/invitations.component.mjs +14 -0
  42. package/esm2020/lib/pages/invitations-table/invitations-table.component.mjs +10 -11
  43. package/esm2020/lib/pages/login/login.component.mjs +14 -52
  44. package/esm2020/lib/pages/logs/logs.component.mjs +22 -27
  45. package/esm2020/lib/pages/membership/membership.component.mjs +19 -15
  46. package/esm2020/lib/pages/notifications/notifications.component.mjs +6 -82
  47. package/esm2020/lib/pages/plans/plans.component.mjs +19 -16
  48. package/esm2020/lib/pages/positions/positions.component.mjs +4 -4
  49. package/esm2020/lib/pages/profile/profile.component.mjs +3 -4
  50. package/esm2020/lib/pages/recover-account/recover-account.component.mjs +1 -1
  51. package/esm2020/lib/pages/roles/addRoleDialog.component.mjs +2 -2
  52. package/esm2020/lib/pages/roles/roles.component.mjs +17 -77
  53. package/esm2020/lib/pages/settings/settings.component.mjs +13 -5
  54. package/esm2020/lib/pages/signup/signup.component.mjs +1 -1
  55. package/esm2020/lib/pages/suppliers/suppliers.component.mjs +31 -3
  56. package/esm2020/lib/pages/tasks/tasks.component.mjs +9 -9
  57. package/esm2020/lib/pages/tenant-settings/inviteDialog.component.mjs +60 -0
  58. package/esm2020/lib/pages/tenant-settings/tenant-settings.component.mjs +72 -145
  59. package/esm2020/lib/pages/tenants/tenants.component.mjs +10 -10
  60. package/esm2020/lib/pages/transactions/transactDialog.component.mjs +1 -1
  61. package/esm2020/lib/pages/transactions/transactions.component.mjs +3 -3
  62. package/esm2020/lib/pages/users/users.component.mjs +92 -141
  63. package/esm2020/lib/pages/welcome/welcome.component.mjs +9 -9
  64. package/esm2020/lib/services/button.service.mjs +32 -92
  65. package/esm2020/lib/services/csv.service.mjs +1 -1
  66. package/esm2020/lib/services/datalib.service.mjs +78 -551
  67. package/esm2020/lib/services/dialog.service.mjs +7 -51
  68. package/esm2020/lib/services/table-config.service.mjs +7 -55
  69. package/esm2020/lib/tin-spa.module.mjs +11 -48
  70. package/esm2020/public-api.mjs +1 -10
  71. package/fesm2015/tin-spa.mjs +2605 -6538
  72. package/fesm2015/tin-spa.mjs.map +1 -1
  73. package/fesm2020/tin-spa.mjs +2501 -6482
  74. package/fesm2020/tin-spa.mjs.map +1 -1
  75. package/lib/classes/Classes.d.ts +129 -267
  76. package/lib/classes/LibClasses.d.ts +0 -1
  77. package/lib/classes/TinCore.d.ts +4 -13
  78. package/lib/components/alert/alert.component.d.ts +3 -4
  79. package/lib/components/attach/attach.component.d.ts +6 -13
  80. package/lib/components/date/date.component.d.ts +1 -1
  81. package/lib/components/email/email.component.d.ts +3 -4
  82. package/lib/components/form/form.component.d.ts +11 -20
  83. package/lib/components/label/label.component.d.ts +1 -3
  84. package/lib/components/money/money.component.d.ts +1 -8
  85. package/lib/components/nav-menu/nav-menu.component.d.ts +2 -6
  86. package/lib/components/number/number.component.d.ts +1 -7
  87. package/lib/components/option/option.component.d.ts +2 -10
  88. package/lib/components/search/search.component.d.ts +1 -3
  89. package/lib/components/select/select.component.d.ts +37 -16
  90. package/lib/components/steps/steps.component.d.ts +9 -18
  91. package/lib/components/table/detailsDialog.component.d.ts +7 -29
  92. package/lib/components/table/table.component.d.ts +9 -15
  93. package/lib/components/table-action/table-action.component.d.ts +1 -4
  94. package/lib/components/table-header/table-header.component.d.ts +1 -3
  95. package/lib/components/table-internal/detailsDialog-internal.component.d.ts +7 -29
  96. package/lib/components/table-internal/table-internal.component.d.ts +9 -15
  97. package/lib/components/table-row/table-row.component.d.ts +1 -4
  98. package/lib/components/text/text.component.d.ts +8 -21
  99. package/lib/components/tiles/tiles.component.d.ts +3 -4
  100. package/lib/components/viewer/viewerDialog.component.d.ts +1 -3
  101. package/lib/pages/customers/customers.component.d.ts +8 -2
  102. package/lib/pages/invitations/invitations.component.d.ts +8 -0
  103. package/lib/pages/invitations-table/invitations-table.component.d.ts +1 -1
  104. package/lib/pages/login/login.component.d.ts +1 -7
  105. package/lib/pages/logs/logs.component.d.ts +6 -2
  106. package/lib/pages/membership/membership.component.d.ts +6 -2
  107. package/lib/pages/notifications/notifications.component.d.ts +1 -9
  108. package/lib/pages/plans/plans.component.d.ts +6 -2
  109. package/lib/pages/roles/roles.component.d.ts +2 -14
  110. package/lib/pages/suppliers/suppliers.component.d.ts +4 -1
  111. package/lib/pages/tasks/tasks.component.d.ts +1 -1
  112. package/lib/pages/tenant-settings/inviteDialog.component.d.ts +28 -0
  113. package/lib/pages/tenant-settings/tenant-settings.component.d.ts +7 -12
  114. package/lib/pages/tenants/tenants.component.d.ts +2 -2
  115. package/lib/pages/users/users.component.d.ts +16 -8
  116. package/lib/services/button.service.d.ts +8 -11
  117. package/lib/services/datalib.service.d.ts +10 -57
  118. package/lib/services/dialog.service.d.ts +2 -3
  119. package/lib/services/table-config.service.d.ts +1 -9
  120. package/lib/tin-spa.module.d.ts +33 -52
  121. package/package.json +1 -1
  122. package/public-api.d.ts +0 -9
  123. package/esm2020/lib/components/capsules/capsules.component.mjs +0 -63
  124. package/esm2020/lib/components/cards/cards.component.mjs +0 -103
  125. package/esm2020/lib/components/html/html.component.mjs +0 -34
  126. package/esm2020/lib/components/multi-select/multi-select.component.mjs +0 -165
  127. package/esm2020/lib/components/multi-text/multi-text.component.mjs +0 -208
  128. package/esm2020/lib/components/notes/notes.component.mjs +0 -62
  129. package/esm2020/lib/components/page/page.component.mjs +0 -101
  130. package/esm2020/lib/components/select-bitwise/select-bitwise.component.mjs +0 -87
  131. package/esm2020/lib/components/select-common/select-common.component.mjs +0 -206
  132. package/esm2020/lib/components/select-internal/select-internal.component.mjs +0 -75
  133. package/esm2020/lib/components/select-lite/select-lite.component.mjs +0 -18
  134. package/esm2020/lib/components/statuses/statuses.component.mjs +0 -44
  135. package/esm2020/lib/components/suffix/suffix.component.mjs +0 -70
  136. package/esm2020/lib/components/table-lite/detailsDialog-lite.component.mjs +0 -404
  137. package/esm2020/lib/components/table-lite/table-lite.component.mjs +0 -441
  138. package/esm2020/lib/components/tabs/tabs.component.mjs +0 -74
  139. package/esm2020/lib/pages/app-models/app-models.component.mjs +0 -56
  140. package/esm2020/lib/pages/approvals/approvals.component.mjs +0 -19
  141. package/esm2020/lib/pages/approvals-config/approvals-config.component.mjs +0 -165
  142. package/esm2020/lib/pages/notifications-config/notifications-config.component.mjs +0 -113
  143. package/esm2020/lib/select-context.directive.mjs +0 -23
  144. package/esm2020/lib/services/notifications.service.mjs +0 -33
  145. package/lib/components/capsules/capsules.component.d.ts +0 -26
  146. package/lib/components/cards/cards.component.d.ts +0 -39
  147. package/lib/components/html/html.component.d.ts +0 -16
  148. package/lib/components/multi-select/multi-select.component.d.ts +0 -47
  149. package/lib/components/multi-text/multi-text.component.d.ts +0 -56
  150. package/lib/components/notes/notes.component.d.ts +0 -19
  151. package/lib/components/page/page.component.d.ts +0 -38
  152. package/lib/components/select-bitwise/select-bitwise.component.d.ts +0 -31
  153. package/lib/components/select-common/select-common.component.d.ts +0 -53
  154. package/lib/components/select-internal/select-internal.component.d.ts +0 -23
  155. package/lib/components/select-lite/select-lite.component.d.ts +0 -8
  156. package/lib/components/statuses/statuses.component.d.ts +0 -12
  157. package/lib/components/suffix/suffix.component.d.ts +0 -23
  158. package/lib/components/table-lite/detailsDialog-lite.component.d.ts +0 -86
  159. package/lib/components/table-lite/table-lite.component.d.ts +0 -91
  160. package/lib/components/tabs/tabs.component.d.ts +0 -32
  161. package/lib/pages/app-models/app-models.component.d.ts +0 -15
  162. package/lib/pages/approvals/approvals.component.d.ts +0 -10
  163. package/lib/pages/approvals-config/approvals-config.component.d.ts +0 -24
  164. package/lib/pages/notifications-config/notifications-config.component.d.ts +0 -17
  165. package/lib/select-context.directive.d.ts +0 -10
  166. package/lib/services/notifications.service.d.ts +0 -12
@@ -1,75 +1,148 @@
1
- import { Component, Input } from '@angular/core';
2
- import { SelectCommonComponent } from '../select-common/select-common.component';
3
- import { DetailsDialogInternal } from '../table-internal/detailsDialog-internal.component';
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
4
2
  import * as i0 from "@angular/core";
5
3
  import * as i1 from "../../services/message.service";
6
- import * as i2 from "../../services/datalib.service";
7
- import * as i3 from "../../services/dialog.service";
8
- import * as i4 from "../../services/button.service";
9
- import * as i5 from "@angular/common";
10
- import * as i6 from "@angular/material/button";
11
- import * as i7 from "@angular/material/icon";
12
- import * as i8 from "@angular/material/tooltip";
13
- import * as i9 from "../select-common/select-common.component";
14
- export class SelectComponent extends SelectCommonComponent {
15
- constructor(messageService, dataService, dialogService, buttonService) {
16
- super(messageService, dataService);
4
+ import * as i2 from "../../services/dialog.service";
5
+ import * as i3 from "@angular/common";
6
+ import * as i4 from "@angular/material/button";
7
+ import * as i5 from "@angular/material/icon";
8
+ import * as i6 from "@angular/material/form-field";
9
+ import * as i7 from "@angular/material/select";
10
+ import * as i8 from "@angular/material/core";
11
+ import * as i9 from "@angular/material/tooltip";
12
+ export class SelectComponent {
13
+ constructor(messageService, dialogService) {
17
14
  this.messageService = messageService;
18
- this.dataService = dataService;
19
15
  this.dialogService = dialogService;
20
- this.buttonService = buttonService;
16
+ this.isHovered = false;
17
+ this.width = "100%";
18
+ this.readonly = false;
19
+ this.required = true;
20
+ this.defaultFirstValue = false;
21
+ this.readonlyMode = "";
22
+ this.hint = "";
23
+ this.placeholder = "";
24
+ this.multiple = false;
25
+ this.display = "";
26
+ this.optionValue = "";
27
+ this.optionDisplay = "";
28
+ this.optionDisplayExtra = "";
29
+ this.nullable = false;
30
+ this.copyContent = false;
31
+ this.valueChange = new EventEmitter();
32
+ this.infoClick = new EventEmitter();
21
33
  }
22
34
  ngOnInit() {
23
- if (this.options == null || this.options == undefined || this.options.length == 0) {
24
- this.getData(this.loadAction);
35
+ // this.displayValue = this.options.filter((m) => m.optionValue == this.value)
36
+ // this.displayValue = this.value
37
+ if (this.placeholder == "") {
38
+ this.placeholder = "Select " + this.display;
39
+ }
40
+ if (this.defaultFirstValue && this.options && this.options.length > 0 && (this.value == null || this.value == undefined || (typeof (this.value) == 'string' && this.value == '') || (typeof (this.value) == 'number' && this.value == 0))) {
41
+ this.value = this.options[0][this.optionValue];
42
+ this.changed();
43
+ }
44
+ }
45
+ ngOnChanges() {
46
+ if (this.readonlyMode != "" && this.options.length > 0) {
47
+ this.displayValue = this.options.filter((m) => m[`${this.optionValue}`] == this.value)[0][`${this.optionDisplay}`];
48
+ }
49
+ //add a null option
50
+ if (this.nullable && this.options && this.options.length > 0 && this.options[0][this.optionValue] != null) {
51
+ this.options.unshift({ [this.optionValue]: null, [this.optionDisplay]: "None" });
25
52
  }
26
53
  }
27
- onHoverChange(isHovered) {
28
- this.isHovered = isHovered;
54
+ copyText(event) {
55
+ event.stopPropagation();
56
+ let row = this.options.find(x => x[this.optionValue] == this.value);
57
+ navigator.clipboard.writeText(row[this.optionDisplay]).then(() => {
58
+ this.messageService.toast('Copied');
59
+ });
29
60
  }
30
- canCreate() {
31
- if (!this.detailsConfig?.buttons)
32
- return false;
33
- const createButton = this.detailsConfig.buttons.find(b => b.name === 'create');
34
- const tmpTableConfig = { formConfig: this.detailsConfig.formConfig };
35
- return createButton && (!createButton.disabled || !createButton.disabled(this.value)) && this.buttonService.testVisible(createButton, null, tmpTableConfig);
61
+ changed() {
62
+ this.valueChange.emit(this.value);
36
63
  }
37
- canView() {
38
- if (!this.detailsConfig?.buttons)
39
- return false;
40
- let viewButton = this.detailsConfig.buttons.find(b => b.name === 'view');
41
- if (!viewButton) {
42
- // Add default view button if not exists
43
- viewButton = { name: 'view', dialog: true };
44
- this.detailsConfig.buttons.push(viewButton);
45
- }
46
- const tmpTableConfig = { formConfig: this.detailsConfig.formConfig };
47
- return this.value && viewButton && this.buttonService.testVisible(viewButton, null, tmpTableConfig);
64
+ onMouseEnter() {
65
+ this.isHovered = true;
48
66
  }
49
- onPeekClick(event, mode) {
67
+ onMouseLeave() {
68
+ this.isHovered = false;
69
+ }
70
+ onAddClick(event) {
50
71
  event.stopPropagation();
51
- if (this.detailsConfig) {
52
- const dynamicData = mode === 'create' ? {} : { [this.detailsConfig.heroField]: this.value };
53
- let button = this.detailsConfig.buttons.find(b => b.name === mode);
54
- button.detailsConfig = this.detailsConfig;
55
- this.dialogService.openConfiguredDetailsDialog(button, dynamicData, DetailsDialogInternal).subscribe(result => {
56
- // console.log(result);
57
- if (result.message === 'success') {
58
- this.refresh(event);
59
- }
60
- });
61
- }
62
- else {
63
- this.messageService.toast("Peek configuration error");
72
+ // if (this.peekConfig && this.peekConfig.create && this.value) {
73
+ // const dynamicData = { [this.peekConfig.detailsConfig.heroField]: this.value };
74
+ // this.dialogService.openConfiguredDetailsDialog( "create", dynamicData, this.peekConfig.detailsConfig, DetailsDialog ).subscribe(result => {
75
+ // console.log(result);
76
+ // });
77
+ // } else {
78
+ // this.messageService.toast("Configuration Error");
79
+ // }
80
+ }
81
+ onViewClick(event) {
82
+ event.stopPropagation();
83
+ // if (this.peekConfig && this.peekConfig.view && this.value) {
84
+ // const dynamicData = { [this.peekConfig.detailsConfig.heroField]: this.value };
85
+ // this.dialogService.openConfiguredDetailsDialog( "view", dynamicData, this.peekConfig.detailsConfig, DetailsDialogInternal ).subscribe(result => {
86
+ // console.log(result);
87
+ // });
88
+ // } else {
89
+ // this.messageService.toast("Configuration Error");
90
+ // }
91
+ }
92
+ onInfoClick(event) {
93
+ event.stopPropagation();
94
+ this.infoClick.emit();
95
+ if (this.infoMessage) {
96
+ this.messageService.info(this.infoMessage);
64
97
  }
65
98
  }
66
99
  }
67
- SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SelectComponent, deps: [{ token: i1.MessageService }, { token: i2.DataServiceLib }, { token: i3.DialogService }, { token: i4.ButtonService }], target: i0.ɵɵFactoryTarget.Component });
68
- SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SelectComponent, selector: "spa-select", inputs: { detailsConfig: "detailsConfig" }, usesInheritance: true, ngImport: i0, template: "<spa-select-common [width]=\"width\" [readonly]=\"readonly\" [required]=\"required\" [defaultFirstValue]=\"defaultFirstValue\"\r\n [readonlyMode]=\"readonlyMode\" [hint]=\"hint\" [placeholder]=\"placeholder\" [multiple]=\"multiple\"\r\n [display]=\"display\" [(value)]=\"value\" [options]=\"options\" [masterOptions]=\"masterOptions\" [masterField]=\"masterField\"\r\n [optionValue]=\"optionValue\" [optionDisplay]=\"optionDisplay\" [optionDisplayExtra]=\"optionDisplayExtra\"\r\n [nullable]=\"nullable\" [infoMessage]=\"infoMessage\" [copyContent]=\"copyContent\" [loadAction]=\"loadAction\" [loadIDField]=\"loadIDField\" [field]=\"field\" [data]=\"data\"\r\n (valueChange)=\"valueChange.emit($event)\"\r\n (hoverChange)=\"onHoverChange($event)\">\r\n <ng-container additionalButtons>\r\n <button mat-icon-button *ngIf=\"detailsConfig && canCreate() && isHovered\" (click)=\"onPeekClick($event, 'create')\" matTooltip=\"Add\" matTooltipPosition=\"above\">\r\n <mat-icon style=\"color: green;\">add</mat-icon>\r\n </button>\r\n <button mat-icon-button *ngIf=\"detailsConfig && canView() && isHovered && value\" (click)=\"onPeekClick($event, 'view')\" matTooltip=\"View\" matTooltipPosition=\"above\">\r\n <mat-icon color=\"primary\">launch</mat-icon>\r\n </button>\r\n\r\n </ng-container>\r\n</spa-select-common>\r\n", styles: [".suffix-icons{display:flex;align-items:center}.suffix-icons button{opacity:0;transition:opacity .3s ease}:host:hover .suffix-icons button{opacity:1}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i9.SelectCommonComponent, selector: "spa-select-common", inputs: ["width", "readonly", "required", "defaultFirstValue", "readonlyMode", "hint", "placeholder", "multiple", "display", "value", "options", "masterOptions", "masterField", "optionValue", "optionDisplay", "optionDisplayExtra", "nullable", "infoMessage", "copyContent", "loadAction", "loadIDField", "field", "data"], outputs: ["valueChange", "hoverChange"] }] });
100
+ SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SelectComponent, deps: [{ token: i1.MessageService }, { token: i2.DialogService }], target: i0.ɵɵFactoryTarget.Component });
101
+ SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SelectComponent, selector: "spa-select", inputs: { width: "width", readonly: "readonly", required: "required", defaultFirstValue: "defaultFirstValue", readonlyMode: "readonlyMode", hint: "hint", placeholder: "placeholder", multiple: "multiple", display: "display", value: "value", options: "options", masterOptions: "masterOptions", optionValue: "optionValue", optionDisplay: "optionDisplay", optionDisplayExtra: "optionDisplayExtra", nullable: "nullable", peekConfig: "peekConfig", infoMessage: "infoMessage", copyContent: "copyContent" }, outputs: { valueChange: "valueChange", infoClick: "infoClick" }, usesOnChanges: true, ngImport: i0, template: "\r\n<mat-form-field *ngIf=\"readonlyMode==''\" floatLabel=\"always\" [hintLabel]=\"hint\" [ngStyle]=\"{'width':width ?? '100%'}\" [hideRequiredMarker]=\"!required\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n\r\n <mat-label>{{display}}</mat-label>\r\n <mat-select [(value)]=\"value\" (selectionChange)=\"changed()\" [multiple]=\"multiple\" [disabled]=\"readonly\" [placeholder]=\"placeholder\" >\r\n <mat-option *ngFor=\"let row of options\" [value]=\"row[optionValue]\">\r\n {{row[optionDisplay]}} <label *ngIf=\"optionDisplayExtra!='' && row[optionDisplayExtra] && row[optionDisplayExtra] != ''\">({{row[optionDisplayExtra]}})</label>\r\n </mat-option>\r\n </mat-select>\r\n\r\n <div matSuffix class=\"suffix-icons\">\r\n <button mat-icon-button *ngIf=\"peekConfig && peekConfig.create && isHovered && value\" (click)=\"onAddClick($event)\" matTooltip=\"Add\" matTooltipPosition=\"above\" >\r\n <mat-icon style=\"color: green;\">add</mat-icon>\r\n </button>\r\n <button mat-icon-button *ngIf=\"peekConfig && peekConfig.view && isHovered && value\" (click)=\"onViewClick($event)\" matTooltip=\"View\" matTooltipPosition=\"above\" >\r\n <mat-icon color=\"primary\">launch</mat-icon>\r\n </button>\r\n <button mat-icon-button *ngIf=\"copyContent\" (click)=\"copyText($event)\" matTooltip=\"Copy Content\" matTooltipPosition=\"above\" style=\"opacity: 1;\">\r\n <mat-icon>content_copy</mat-icon>\r\n </button>\r\n <button mat-icon-button *ngIf=\"infoMessage\" (click)=\"onInfoClick($event)\" matTooltip=\"Info\" matTooltipPosition=\"above\" style=\"opacity: 1;\" >\r\n <mat-icon style=\"color: steelblue;\">info</mat-icon>\r\n </button>\r\n </div>\r\n\r\n</mat-form-field>\r\n", styles: [".suffix-icons{display:flex;align-items:center}.suffix-icons button{opacity:0;transition:opacity .3s ease}:host:hover .suffix-icons button{opacity:1}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
69
102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SelectComponent, decorators: [{
70
103
  type: Component,
71
- args: [{ selector: 'spa-select', template: "<spa-select-common [width]=\"width\" [readonly]=\"readonly\" [required]=\"required\" [defaultFirstValue]=\"defaultFirstValue\"\r\n [readonlyMode]=\"readonlyMode\" [hint]=\"hint\" [placeholder]=\"placeholder\" [multiple]=\"multiple\"\r\n [display]=\"display\" [(value)]=\"value\" [options]=\"options\" [masterOptions]=\"masterOptions\" [masterField]=\"masterField\"\r\n [optionValue]=\"optionValue\" [optionDisplay]=\"optionDisplay\" [optionDisplayExtra]=\"optionDisplayExtra\"\r\n [nullable]=\"nullable\" [infoMessage]=\"infoMessage\" [copyContent]=\"copyContent\" [loadAction]=\"loadAction\" [loadIDField]=\"loadIDField\" [field]=\"field\" [data]=\"data\"\r\n (valueChange)=\"valueChange.emit($event)\"\r\n (hoverChange)=\"onHoverChange($event)\">\r\n <ng-container additionalButtons>\r\n <button mat-icon-button *ngIf=\"detailsConfig && canCreate() && isHovered\" (click)=\"onPeekClick($event, 'create')\" matTooltip=\"Add\" matTooltipPosition=\"above\">\r\n <mat-icon style=\"color: green;\">add</mat-icon>\r\n </button>\r\n <button mat-icon-button *ngIf=\"detailsConfig && canView() && isHovered && value\" (click)=\"onPeekClick($event, 'view')\" matTooltip=\"View\" matTooltipPosition=\"above\">\r\n <mat-icon color=\"primary\">launch</mat-icon>\r\n </button>\r\n\r\n </ng-container>\r\n</spa-select-common>\r\n", styles: [".suffix-icons{display:flex;align-items:center}.suffix-icons button{opacity:0;transition:opacity .3s ease}:host:hover .suffix-icons button{opacity:1}\n"] }]
72
- }], ctorParameters: function () { return [{ type: i1.MessageService }, { type: i2.DataServiceLib }, { type: i3.DialogService }, { type: i4.ButtonService }]; }, propDecorators: { detailsConfig: [{
104
+ args: [{ selector: 'spa-select', template: "\r\n<mat-form-field *ngIf=\"readonlyMode==''\" floatLabel=\"always\" [hintLabel]=\"hint\" [ngStyle]=\"{'width':width ?? '100%'}\" [hideRequiredMarker]=\"!required\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n\r\n <mat-label>{{display}}</mat-label>\r\n <mat-select [(value)]=\"value\" (selectionChange)=\"changed()\" [multiple]=\"multiple\" [disabled]=\"readonly\" [placeholder]=\"placeholder\" >\r\n <mat-option *ngFor=\"let row of options\" [value]=\"row[optionValue]\">\r\n {{row[optionDisplay]}} <label *ngIf=\"optionDisplayExtra!='' && row[optionDisplayExtra] && row[optionDisplayExtra] != ''\">({{row[optionDisplayExtra]}})</label>\r\n </mat-option>\r\n </mat-select>\r\n\r\n <div matSuffix class=\"suffix-icons\">\r\n <button mat-icon-button *ngIf=\"peekConfig && peekConfig.create && isHovered && value\" (click)=\"onAddClick($event)\" matTooltip=\"Add\" matTooltipPosition=\"above\" >\r\n <mat-icon style=\"color: green;\">add</mat-icon>\r\n </button>\r\n <button mat-icon-button *ngIf=\"peekConfig && peekConfig.view && isHovered && value\" (click)=\"onViewClick($event)\" matTooltip=\"View\" matTooltipPosition=\"above\" >\r\n <mat-icon color=\"primary\">launch</mat-icon>\r\n </button>\r\n <button mat-icon-button *ngIf=\"copyContent\" (click)=\"copyText($event)\" matTooltip=\"Copy Content\" matTooltipPosition=\"above\" style=\"opacity: 1;\">\r\n <mat-icon>content_copy</mat-icon>\r\n </button>\r\n <button mat-icon-button *ngIf=\"infoMessage\" (click)=\"onInfoClick($event)\" matTooltip=\"Info\" matTooltipPosition=\"above\" style=\"opacity: 1;\" >\r\n <mat-icon style=\"color: steelblue;\">info</mat-icon>\r\n </button>\r\n </div>\r\n\r\n</mat-form-field>\r\n", styles: [".suffix-icons{display:flex;align-items:center}.suffix-icons button{opacity:0;transition:opacity .3s ease}:host:hover .suffix-icons button{opacity:1}\n"] }]
105
+ }], ctorParameters: function () { return [{ type: i1.MessageService }, { type: i2.DialogService }]; }, propDecorators: { width: [{
106
+ type: Input
107
+ }], readonly: [{
108
+ type: Input
109
+ }], required: [{
110
+ type: Input
111
+ }], defaultFirstValue: [{
112
+ type: Input
113
+ }], readonlyMode: [{
114
+ type: Input
115
+ }], hint: [{
116
+ type: Input
117
+ }], placeholder: [{
118
+ type: Input
119
+ }], multiple: [{
120
+ type: Input
121
+ }], display: [{
122
+ type: Input
123
+ }], value: [{
124
+ type: Input
125
+ }], options: [{
126
+ type: Input
127
+ }], masterOptions: [{
128
+ type: Input
129
+ }], optionValue: [{
130
+ type: Input
131
+ }], optionDisplay: [{
132
+ type: Input
133
+ }], optionDisplayExtra: [{
134
+ type: Input
135
+ }], nullable: [{
136
+ type: Input
137
+ }], peekConfig: [{
138
+ type: Input
139
+ }], infoMessage: [{
140
+ type: Input
141
+ }], copyContent: [{
73
142
  type: Input
143
+ }], valueChange: [{
144
+ type: Output
145
+ }], infoClick: [{
146
+ type: Output
74
147
  }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFnQixLQUFLLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBSS9FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7Ozs7Ozs7OztBQVMzRixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxxQkFBcUI7SUFFeEQsWUFDcUIsY0FBOEIsRUFBcUIsV0FBMkIsRUFDekYsYUFBNEIsRUFBVSxhQUE0QjtRQUcxRSxLQUFLLENBQUMsY0FBYyxFQUFDLFdBQVcsQ0FBQyxDQUFDO1FBSmYsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQXFCLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUN6RixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBSTVFLENBQUM7SUFFUSxRQUFRO1FBRWYsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDakYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDL0I7SUFFSCxDQUFDO0lBS0QsYUFBYSxDQUFDLFNBQWtCO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxD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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7ICBBY3Rpb24sIEFwaVJlc3BvbnNlLCBCdXR0b24sIERldGFpbHNEaWFsb2dDb25maWcsIFRhYmxlQ29uZmlnIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZWxlY3RDb21tb25Db21wb25lbnQgfSBmcm9tICcuLi9zZWxlY3QtY29tbW9uL3NlbGVjdC1jb21tb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGV0YWlsc0RpYWxvZ0ludGVybmFsIH0gZnJvbSAnLi4vdGFibGUtaW50ZXJuYWwvZGV0YWlsc0RpYWxvZy1pbnRlcm5hbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZUxpYiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGFsaWIuc2VydmljZSc7XHJcbmltcG9ydCB7IEJ1dHRvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9idXR0b24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbXBvbmVudCBleHRlbmRzIFNlbGVjdENvbW1vbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSwgcHJvdGVjdGVkIG92ZXJyaWRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZUxpYixcclxuICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSwgcHJpdmF0ZSBidXR0b25TZXJ2aWNlOiBCdXR0b25TZXJ2aWNlICxcclxuXHJcbiAgKSB7XHJcbiAgICBzdXBlcihtZXNzYWdlU2VydmljZSxkYXRhU2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zID09IG51bGwgfHwgdGhpcy5vcHRpb25zID09IHVuZGVmaW5lZCB8fCB0aGlzLm9wdGlvbnMubGVuZ3RoID09IDApIHtcclxuICAgICAgdGhpcy5nZXREYXRhKHRoaXMubG9hZEFjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgZGV0YWlsc0NvbmZpZzogRGV0YWlsc0RpYWxvZ0NvbmZpZztcclxuXHJcblxyXG4gIG9uSG92ZXJDaGFuZ2UoaXNIb3ZlcmVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzSG92ZXJlZCA9IGlzSG92ZXJlZDtcclxuICB9XHJcblxyXG4gIGNhbkNyZWF0ZSgpOiBib29sZWFuIHtcclxuICAgIGlmICghdGhpcy5kZXRhaWxzQ29uZmlnPy5idXR0b25zKSByZXR1cm4gZmFsc2U7XHJcbiAgICBjb25zdCBjcmVhdGVCdXR0b24gOiBCdXR0b24gPSB0aGlzLmRldGFpbHNDb25maWcuYnV0dG9ucy5maW5kKGIgPT4gYi5uYW1lID09PSAnY3JlYXRlJyk7XHJcbiAgICBjb25zdCB0bXBUYWJsZUNvbmZpZyA6IFRhYmxlQ29uZmlnID0ge2Zvcm1Db25maWc6IHRoaXMuZGV0YWlsc0NvbmZpZy5mb3JtQ29uZmlnfTtcclxuICAgIHJldHVybiBjcmVhdGVCdXR0b24gJiYgKCFjcmVhdGVCdXR0b24uZGlzYWJsZWQgfHwgIWNyZWF0ZUJ1dHRvbi5kaXNhYmxlZCh0aGlzLnZhbHVlKSkgJiYgdGhpcy5idXR0b25TZXJ2aWNlLnRlc3RWaXNpYmxlKGNyZWF0ZUJ1dHRvbiwgbnVsbCwgdG1wVGFibGVDb25maWcpICAgIDtcclxuICB9XHJcblxyXG4gIGNhblZpZXcoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuZGV0YWlsc0NvbmZpZz8uYnV0dG9ucykgcmV0dXJuIGZhbHNlO1xyXG4gICAgbGV0IHZpZXdCdXR0b24gOiBCdXR0b24gPSB0aGlzLmRldGFpbHNDb25maWcuYnV0dG9ucy5maW5kKGIgPT4gYi5uYW1lID09PSAndmlldycpO1xyXG4gICAgaWYgKCF2aWV3QnV0dG9uKSB7XHJcbiAgICAgIC8vIEFkZCBkZWZhdWx0IHZpZXcgYnV0dG9uIGlmIG5vdCBleGlzdHNcclxuICAgICAgdmlld0J1dHRvbiA9IHsgbmFtZTogJ3ZpZXcnLCBkaWFsb2c6IHRydWUgfTtcclxuICAgICAgdGhpcy5kZXRhaWxzQ29uZmlnLmJ1dHRvbnMucHVzaCh2aWV3QnV0dG9uKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHRtcFRhYmxlQ29uZmlnOiBUYWJsZUNvbmZpZyA9IHsgZm9ybUNvbmZpZzogdGhpcy5kZXRhaWxzQ29uZmlnLmZvcm1Db25maWcgfTtcclxuICAgIHJldHVybiB0aGlzLnZhbHVlICYmIHZpZXdCdXR0b24gJiYgdGhpcy5idXR0b25TZXJ2aWNlLnRlc3RWaXNpYmxlKHZpZXdCdXR0b24sIG51bGwsIHRtcFRhYmxlQ29uZmlnKTtcclxuICB9XHJcblxyXG4gIG9uUGVla0NsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCBtb2RlOiAnY3JlYXRlJyB8ICd2aWV3Jyk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuZGV0YWlsc0NvbmZpZykge1xyXG4gICAgICBjb25zdCBkeW5hbWljRGF0YSA9IG1vZGUgPT09ICdjcmVhdGUnID8ge30gOiB7IFt0aGlzLmRldGFpbHNDb25maWcuaGVyb0ZpZWxkXTogdGhpcy52YWx1ZSB9O1xyXG5cclxuICAgICAgbGV0IGJ1dHRvbiA9IHRoaXMuZGV0YWlsc0NvbmZpZy5idXR0b25zLmZpbmQoYiA9PiBiLm5hbWUgPT09IG1vZGUpO1xyXG4gICAgICBidXR0b24uZGV0YWlsc0NvbmZpZyA9IHRoaXMuZGV0YWlsc0NvbmZpZztcclxuXHJcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuQ29uZmlndXJlZERldGFpbHNEaWFsb2coIGJ1dHRvbiwgZHluYW1pY0RhdGEsIERldGFpbHNEaWFsb2dJbnRlcm5hbCApLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHJlc3VsdCk7XHJcblxyXG4gICAgICAgIGlmIChyZXN1bHQubWVzc2FnZSA9PT0gJ3N1Y2Nlc3MnKXtcclxuICAgICAgICAgIHRoaXMucmVmcmVzaChldmVudCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfSk7XHJcblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIlBlZWsgY29uZmlndXJhdGlvbiBlcnJvclwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuXHJcbn1cclxuXHJcbiIsIjxzcGEtc2VsZWN0LWNvbW1vbiBbd2lkdGhdPVwid2lkdGhcIiBbcmVhZG9ubHldPVwicmVhZG9ubHlcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbZGVmYXVsdEZpcnN0VmFsdWVdPVwiZGVmYXVsdEZpcnN0VmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5TW9kZV09XCJyZWFkb25seU1vZGVcIiBbaGludF09XCJoaW50XCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcclxuICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5XT1cImRpc3BsYXlcIiBbKHZhbHVlKV09XCJ2YWx1ZVwiIFtvcHRpb25zXT1cIm9wdGlvbnNcIiBbbWFzdGVyT3B0aW9uc109XCJtYXN0ZXJPcHRpb25zXCIgW21hc3RlckZpZWxkXT1cIm1hc3RlckZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgIFtvcHRpb25WYWx1ZV09XCJvcHRpb25WYWx1ZVwiIFtvcHRpb25EaXNwbGF5XT1cIm9wdGlvbkRpc3BsYXlcIiBbb3B0aW9uRGlzcGxheUV4dHJhXT1cIm9wdGlvbkRpc3BsYXlFeHRyYVwiXHJcbiAgICAgICAgICAgICAgICAgICBbbnVsbGFibGVdPVwibnVsbGFibGVcIiBbaW5mb01lc3NhZ2VdPVwiaW5mb01lc3NhZ2VcIiBbY29weUNvbnRlbnRdPVwiY29weUNvbnRlbnRcIiBbbG9hZEFjdGlvbl09XCJsb2FkQWN0aW9uXCIgW2xvYWRJREZpZWxkXT1cImxvYWRJREZpZWxkXCIgW2ZpZWxkXT1cImZpZWxkXCIgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgIChob3ZlckNoYW5nZSk9XCJvbkhvdmVyQ2hhbmdlKCRldmVudClcIj5cclxuICA8bmctY29udGFpbmVyIGFkZGl0aW9uYWxCdXR0b25zPlxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCJkZXRhaWxzQ29uZmlnICYmIGNhbkNyZWF0ZSgpICYmIGlzSG92ZXJlZFwiIChjbGljayk9XCJvblBlZWtDbGljaygkZXZlbnQsICdjcmVhdGUnKVwiIG1hdFRvb2x0aXA9XCJBZGRcIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiPlxyXG4gICAgICA8bWF0LWljb24gc3R5bGU9XCJjb2xvcjogZ3JlZW47XCI+YWRkPC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCJkZXRhaWxzQ29uZmlnICYmIGNhblZpZXcoKSAmJiBpc0hvdmVyZWQgJiYgdmFsdWVcIiAoY2xpY2spPVwib25QZWVrQ2xpY2soJGV2ZW50LCAndmlldycpXCIgbWF0VG9vbHRpcD1cIlZpZXdcIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiPlxyXG4gICAgICA8bWF0LWljb24gY29sb3I9XCJwcmltYXJ5XCI+bGF1bmNoPC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9zcGEtc2VsZWN0LWNvbW1vbj5cclxuIl19
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7OztBQVUvRSxNQUFNLE9BQU8sZUFBZTtJQUUxQixZQUFvQixjQUE4QixFQUFVLGFBQTRCO1FBQXBFLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBNkJ4RixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRVQsVUFBSyxHQUFHLE1BQU0sQ0FBQTtRQUNkLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLElBQUksQ0FBQztRQUNoQixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUliLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUN4QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBSWpCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRW5CLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqQyxjQUFTLEdBQUcsSUFBSSxZ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YTtzQkFBckIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7ICBQZWVrRGlhbG9nQ29uZmlnIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGlhbG9nLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcGEtc2VsZWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAvLyB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMub3B0aW9ucy5maWx0ZXIoKG0pID0+IG0ub3B0aW9uVmFsdWUgPT0gdGhpcy52YWx1ZSlcclxuICAgIC8vIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy52YWx1ZVxyXG4gICAgaWYgKHRoaXMucGxhY2Vob2xkZXIgPT0gXCJcIikge1xyXG4gICAgICB0aGlzLnBsYWNlaG9sZGVyID0gXCJTZWxlY3QgXCIgKyB0aGlzLmRpc3BsYXk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZGVmYXVsdEZpcnN0VmFsdWUgJiYgdGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5sZW5ndGggPiAwICYmICh0aGlzLnZhbHVlID09IG51bGwgfHwgdGhpcy52YWx1ZSA9PSB1bmRlZmluZWQgfHwgKHR5cGVvZiAodGhpcy52YWx1ZSkgPT0gJ3N0cmluZycgJiYgdGhpcy52YWx1ZSA9PSAnJykgfHwgKHR5cGVvZiAodGhpcy52YWx1ZSkgPT0gJ251bWJlcicgJiYgdGhpcy52YWx1ZSA9PSAwKSkpe1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5vcHRpb25zWzBdW3RoaXMub3B0aW9uVmFsdWVdXHJcbiAgICAgIHRoaXMuY2hhbmdlZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcblxyXG4gICAgaWYgKHRoaXMucmVhZG9ubHlNb2RlICE9IFwiXCIgJiYgdGhpcy5vcHRpb25zLmxlbmd0aCA+IDApe1xyXG4gICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMub3B0aW9ucy5maWx0ZXIoKG0pID0+IG1bYCR7dGhpcy5vcHRpb25WYWx1ZX1gXSA9PSB0aGlzLnZhbHVlKVswXVtgJHt0aGlzLm9wdGlvbkRpc3BsYXl9YF1cclxuICAgIH1cclxuXHJcbiAgICAvL2FkZCBhIG51bGwgb3B0aW9uXHJcbiAgICBpZiAodGhpcy5udWxsYWJsZSAmJiB0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmxlbmd0aCA+IDAgJiYgdGhpcy5vcHRpb25zWzBdW3RoaXMub3B0aW9uVmFsdWVdICE9IG51bGwpe1xyXG4gICAgICB0aGlzLm9wdGlvbnMudW5zaGlmdCh7IFt0aGlzLm9wdGlvblZhbHVlXTogbnVsbCwgW3RoaXMub3B0aW9uRGlzcGxheV06IFwiTm9uZVwiIH0pXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZGlzcGxheVZhbHVlO1xyXG4gIGlzSG92ZXJlZCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSB3aWR0aCA9IFwiMTAwJVwiXHJcbiAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcclxuICBASW5wdXQoKSByZXF1aXJlZCA9IHRydWU7XHJcbiAgQElucHV0KCkgZGVmYXVsdEZpcnN0VmFsdWUgPSBmYWxzZTtcclxuICBASW5wdXQoKSByZWFkb25seU1vZGUgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIGhpbnQgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gXCJcIjtcclxuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBkaXNwbGF5ID0gXCJcIjtcclxuICBASW5wdXQoKSB2YWx1ZSA7XHJcbiAgQElucHV0KCkgb3B0aW9uczogYW55O1xyXG4gIEBJbnB1dCgpIG1hc3Rlck9wdGlvbnM6IGFueTtcclxuICBASW5wdXQoKSBvcHRpb25WYWx1ZSA9IFwiXCI7XHJcbiAgQElucHV0KCkgb3B0aW9uRGlzcGxheSA9IFwiXCI7XHJcbiAgQElucHV0KCkgb3B0aW9uRGlzcGxheUV4dHJhID0gXCJcIjtcclxuICBASW5wdXQoKSBudWxsYWJsZSA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwZWVrQ29uZmlnOiBQZWVrRGlhbG9nQ29uZmlnO1xyXG4gIEBJbnB1dCgpIGluZm9NZXNzYWdlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY29weUNvbnRlbnQgPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBpbmZvQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIGNvcHlUZXh0KGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGxldCByb3cgPSB0aGlzLm9wdGlvbnMuZmluZCh4ID0+IHhbdGhpcy5vcHRpb25WYWx1ZV0gPT0gdGhpcy52YWx1ZSk7XHJcblxyXG4gICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQocm93W3RoaXMub3B0aW9uRGlzcGxheV0pLnRoZW4oKCkgPT4ge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KCdDb3BpZWQnKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlZCgpe1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgb25Nb3VzZUVudGVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0hvdmVyZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb25Nb3VzZUxlYXZlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0hvdmVyZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uQWRkQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIC8vIGlmICh0aGlzLnBlZWtDb25maWcgJiYgdGhpcy5wZWVrQ29uZmlnLmNyZWF0ZSAmJiB0aGlzLnZhbHVlKSB7XHJcblxyXG4gICAgLy8gICBjb25zdCBkeW5hbWljRGF0YSA9IHsgW3RoaXMucGVla0NvbmZpZy5kZXRhaWxzQ29uZmlnLmhlcm9GaWVsZF06IHRoaXMudmFsdWUgfTtcclxuXHJcbiAgICAvLyAgIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuQ29uZmlndXJlZERldGFpbHNEaWFsb2coIFwiY3JlYXRlXCIsIGR5bmFtaWNEYXRhLCB0aGlzLnBlZWtDb25maWcuZGV0YWlsc0NvbmZpZywgRGV0YWlsc0RpYWxvZyApLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XHJcbiAgICAvLyAgIH0pO1xyXG4gICAgLy8gfSBlbHNlIHtcclxuICAgIC8vICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIkNvbmZpZ3VyYXRpb24gRXJyb3JcIik7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBvblZpZXdDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgLy8gaWYgKHRoaXMucGVla0NvbmZpZyAmJiB0aGlzLnBlZWtDb25maWcudmlldyAmJiB0aGlzLnZhbHVlKSB7XHJcblxyXG4gICAgLy8gICBjb25zdCBkeW5hbWljRGF0YSA9IHsgW3RoaXMucGVla0NvbmZpZy5kZXRhaWxzQ29uZmlnLmhlcm9GaWVsZF06IHRoaXMudmFsdWUgfTtcclxuXHJcbiAgICAvLyAgIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuQ29uZmlndXJlZERldGFpbHNEaWFsb2coIFwidmlld1wiLCBkeW5hbWljRGF0YSwgdGhpcy5wZWVrQ29uZmlnLmRldGFpbHNDb25maWcsIERldGFpbHNEaWFsb2dJbnRlcm5hbCApLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XHJcbiAgICAvLyAgIH0pO1xyXG4gICAgLy8gfSBlbHNlIHtcclxuICAgIC8vICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIkNvbmZpZ3VyYXRpb24gRXJyb3JcIik7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBvbkluZm9DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmluZm9DbGljay5lbWl0KCk7XHJcblxyXG4gICAgaWYgKHRoaXMuaW5mb01lc3NhZ2UpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5pbmZvKHRoaXMuaW5mb01lc3NhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcbiIsIlxyXG48bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJyZWFkb25seU1vZGU9PScnXCIgIGZsb2F0TGFiZWw9XCJhbHdheXNcIiBbaGludExhYmVsXT1cImhpbnRcIiBbbmdTdHlsZV09XCJ7J3dpZHRoJzp3aWR0aCA/PyAnMTAwJSd9XCIgW2hpZGVSZXF1aXJlZE1hcmtlcl09XCIhcmVxdWlyZWRcIiAobW91c2VlbnRlcik9XCJvbk1vdXNlRW50ZXIoKVwiIChtb3VzZWxlYXZlKT1cIm9uTW91c2VMZWF2ZSgpXCI+XHJcblxyXG4gIDxtYXQtbGFiZWw+e3tkaXNwbGF5fX08L21hdC1sYWJlbD5cclxuICA8bWF0LXNlbGVjdCBbKHZhbHVlKV09XCJ2YWx1ZVwiIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlZCgpXCIgW211bHRpcGxlXT1cIm11bHRpcGxlXCIgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgID5cclxuICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCByb3cgb2Ygb3B0aW9uc1wiIFt2YWx1ZV09XCJyb3dbb3B0aW9uVmFsdWVdXCI+XHJcbiAgICAgIHt7cm93W29wdGlvbkRpc3BsYXldfX0gPGxhYmVsICpuZ0lmPVwib3B0aW9uRGlzcGxheUV4dHJhIT0nJyAmJiByb3dbb3B0aW9uRGlzcGxheUV4dHJhXSAmJiByb3dbb3B0aW9uRGlzcGxheUV4dHJhXSAhPSAnJ1wiPih7e3Jvd1tvcHRpb25EaXNwbGF5RXh0cmFdfX0pPC9sYWJlbD5cclxuICAgIDwvbWF0LW9wdGlvbj5cclxuICA8L21hdC1zZWxlY3Q+XHJcblxyXG4gIDxkaXYgbWF0U3VmZml4IGNsYXNzPVwic3VmZml4LWljb25zXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAqbmdJZj1cInBlZWtDb25maWcgJiYgcGVla0NvbmZpZy5jcmVhdGUgJiYgaXNIb3ZlcmVkICYmIHZhbHVlXCIgKGNsaWNrKT1cIm9uQWRkQ2xpY2soJGV2ZW50KVwiIG1hdFRvb2x0aXA9XCJBZGRcIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiID5cclxuICAgICAgPG1hdC1pY29uIHN0eWxlPVwiY29sb3I6IGdyZWVuO1wiPmFkZDwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uICpuZ0lmPVwicGVla0NvbmZpZyAmJiBwZWVrQ29uZmlnLnZpZXcgJiYgaXNIb3ZlcmVkICYmIHZhbHVlXCIgKGNsaWNrKT1cIm9uVmlld0NsaWNrKCRldmVudClcIiBtYXRUb29sdGlwPVwiVmlld1wiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCIgPlxyXG4gICAgICA8bWF0LWljb24gY29sb3I9XCJwcmltYXJ5XCI+bGF1bmNoPC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCJjb3B5Q29udGVudFwiIChjbGljayk9XCJjb3B5VGV4dCgkZXZlbnQpXCIgbWF0VG9vbHRpcD1cIkNvcHkgQ29udGVudFwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCIgc3R5bGU9XCJvcGFjaXR5OiAxO1wiPlxyXG4gICAgICA8bWF0LWljb24+Y29udGVudF9jb3B5PC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCJpbmZvTWVzc2FnZVwiIChjbGljayk9XCJvbkluZm9DbGljaygkZXZlbnQpXCIgbWF0VG9vbHRpcD1cIkluZm9cIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiIHN0eWxlPVwib3BhY2l0eTogMTtcIiA+XHJcbiAgICAgIDxtYXQtaWNvbiBzdHlsZT1cImNvbG9yOiBzdGVlbGJsdWU7XCI+aW5mbzwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuXHJcbjwvbWF0LWZvcm0tZmllbGQ+XHJcbiJdfQ==
@@ -1,112 +1,90 @@
1
1
  import { Component, Input, ViewChild } from '@angular/core';
2
2
  import { STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/cdk/layout";
5
- import * as i2 from "../../services/datalib.service";
6
- import * as i3 from "@angular/common";
7
- import * as i4 from "@angular/material/stepper";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/material/stepper";
8
6
  export class StepsComponent {
9
- constructor(breakpointObserver, dataService) {
10
- this.breakpointObserver = breakpointObserver;
11
- this.dataService = dataService;
7
+ constructor() {
12
8
  this.value = "";
13
- this.selectedIndex = 0;
14
- this.smallScreen = false;
15
- this.steps = [];
16
9
  }
17
10
  ngOnInit() {
18
- this.loadSteps();
19
- this.observeScreenSize();
20
11
  }
21
- ngOnChanges() {
22
- // this.pushSteps();
23
- this.updateSelectedStep();
12
+ ngAfterViewInit() {
24
13
  }
25
- observeScreenSize() {
26
- this.breakpointObserver.observe(["(max-width: 600px)"]).subscribe((result) => {
27
- this.smallScreen = result.matches;
28
- });
14
+ ngOnChanges() {
15
+ this.pushSteps();
29
16
  }
30
- loadSteps() {
31
- // If loadAction is provided, fetch steps from backend
32
- if (this.config?.loadAction) {
33
- this.dataService.CallApi(this.config.loadAction).subscribe((response) => {
34
- if (response.success) {
35
- this.steps = response.data;
36
- this.updateSelectedStep();
37
- }
38
- });
17
+ setStepper() {
18
+ if (this.value == "")
19
+ return;
20
+ this.stepper.selectedIndex = 0;
21
+ switch (this.value) {
22
+ case "Draft":
23
+ this.stepper.selectedIndex = 0;
24
+ break;
25
+ case "Head Approval":
26
+ this.pushStepper(1);
27
+ break;
28
+ case "CE Approval":
29
+ this.pushStepper(2);
30
+ break;
31
+ case "Booking":
32
+ this.pushStepper(3);
33
+ break;
34
+ case "BTA Approval":
35
+ this.pushStepper(4);
36
+ break;
37
+ case "Travel":
38
+ this.pushStepper(5);
39
+ break;
40
+ case "BTR Approval":
41
+ this.pushStepper(6);
42
+ break;
43
+ case "Travel Closure":
44
+ this.pushStepper(7);
45
+ break;
39
46
  }
40
- else {
41
- // Use static steps if provided
42
- this.steps = this.config?.steps ?? [];
43
- this.updateSelectedStep();
47
+ }
48
+ pushStepper(count) {
49
+ for (let index = 0; index < count + 1; index++) {
50
+ // const element = array[index];
51
+ this.stepper.selectedIndex = index;
44
52
  }
45
53
  }
46
- updateSelectedStep() {
47
- if (!this.steps?.length)
54
+ pushSteps() {
55
+ if (this.steps.length == 0)
48
56
  return;
49
- // Get visible steps only
50
- const visibleSteps = this.getVisibleSteps();
51
- if (!visibleSteps.length)
57
+ if (this.value == "")
52
58
  return;
53
- // Get value from data object if valueField is specified
54
- const currentValue = this.config?.valueField ?
55
- this.data[this.config.valueField] : this.value;
56
- // Find matching step index among visible steps
57
- const index = visibleSteps.findIndex(step => step.value === currentValue);
58
- this.selectedIndex = index >= 0 ? index : 0;
59
- // Update stepper if already initialized
60
- // if (this.stepper) {
61
- // this.stepper.selectedIndex = this.selectedIndex;
62
- // }
63
- // Update stepper if already initialized
64
- if (this.stepper) {
65
- // Loop through all previous steps to select them
66
- let currentStep = 0;
67
- const selectStepsInterval = setInterval(() => {
68
- if (currentStep <= this.selectedIndex) {
69
- this.stepper.selectedIndex = currentStep;
70
- currentStep++;
71
- }
72
- else {
73
- clearInterval(selectStepsInterval);
74
- }
75
- }, 100); // 300ms delay between each step selection
59
+ this.stepper.selectedIndex = 0;
60
+ let i = 0;
61
+ for (let step of this.steps) {
62
+ if (step.name != this.value) {
63
+ this.stepper.selectedIndex = i;
64
+ i++;
65
+ }
66
+ else {
67
+ this.stepper.selectedIndex = i;
68
+ break;
69
+ }
76
70
  }
77
71
  }
78
- get shouldShowLabels() {
79
- const visibleSteps = this.getVisibleSteps();
80
- return !(visibleSteps.length > 5 && this.smallScreen);
81
- }
82
- // New method to filter hidden steps
83
- getVisibleSteps() {
84
- if (!this.steps?.length)
85
- return [];
86
- return this.steps.filter(step => {
87
- if (!step.hiddenCondition)
88
- return true;
89
- return !step.hiddenCondition(this.data || {});
90
- });
91
- }
92
72
  }
93
- StepsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: StepsComponent, deps: [{ token: i1.BreakpointObserver }, { token: i2.DataServiceLib }], target: i0.ɵɵFactoryTarget.Component });
94
- StepsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: StepsComponent, selector: "spa-steps", inputs: { value: "value", config: "config", data: "data" }, providers: [{
73
+ StepsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: StepsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
74
+ StepsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: StepsComponent, selector: "spa-steps", inputs: { value: "value", steps: "steps" }, providers: [{
95
75
  provide: STEPPER_GLOBAL_OPTIONS, useValue: { displayDefaultIndicatorType: false }
96
- }], viewQueries: [{ propertyName: "stepper", first: true, predicate: ["stepper"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "\r\n<mat-horizontal-stepper class=\"transparent\" [labelPosition]=\"shouldShowLabels ? 'bottom' : 'end'\" #stepper [selectedIndex]=\"selectedIndex\">\r\n\r\n <mat-step *ngFor=\"let step of getVisibleSteps()\"\r\n [editable]=\"false\" [label]=\"shouldShowLabels ? step.name : ''\" [state]=\"step.icon ?? 'number'\">\r\n </mat-step>\r\n\r\n</mat-horizontal-stepper>\r\n", styles: [".transparent{background-color:#0000}:host ::ng-deep .mat-step-header{padding:5px!important}:host ::ng-deep .mat-stepper-horizontal-line{min-width:5px!important}:host ::ng-deep .mat-horizontal-content-container{padding:0!important}:host ::ng-deep .mat-horizontal-stepper-header{pointer-events:none!important}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "component", type: i4.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }] });
76
+ }], viewQueries: [{ propertyName: "stepper", first: true, predicate: ["stepper"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "\r\n\r\n\r\n<!-- <mat-horizontal-stepper class=\"test\" labelPosition=\"bottom\" #stepper>\r\n <mat-step [editable]=\"false\" label=\"Draft\"> </mat-step>\r\n <mat-step [editable]=\"false\" label=\"Head Approval\" > </mat-step>\r\n <mat-step [editable]=\"false\" label=\"CE Approval\"> </mat-step>\r\n <mat-step [editable]=\"false\" label=\"Booking\" state=\"booking\"> </mat-step>\r\n <mat-step [editable]=\"false\" label=\"BTA Approval\"> </mat-step>\r\n <mat-step [editable]=\"false\" label=\"Travel\"> </mat-step>\r\n <mat-step [editable]=\"false\" label=\"BTR Approval\"> </mat-step>\r\n <mat-step [editable]=\"false\" label=\"Closure\"> </mat-step>\r\n <ng-template matStepperIcon=\"booking\"> <mat-icon>forum</mat-icon> </ng-template>\r\n</mat-horizontal-stepper> -->\r\n\r\n<mat-horizontal-stepper class=\"transparent\" labelPosition=\"bottom\" #stepper>\r\n\r\n <mat-step *ngFor=\"let row of steps\"\r\n [editable]=\"false\" [label]=\"row.name\">\r\n </mat-step>\r\n\r\n <!-- <ng-template *ngFor=\"let row of steps\"\r\n [matStepperIcon]=\"row.name\"> <mat-icon>{{row.icon}}</mat-icon>\r\n </ng-template> -->\r\n\r\n <!-- <ng-template matStepperIcon=\"booking\">\r\n <mat-icon>call_end</mat-icon>\r\n </ng-template> -->\r\n\r\n <!-- <ng-template ngFor let-xb [ngForOf]=\"steps\" matStepperIcon=\"Booking\"> <mat-icon>forum</mat-icon>\r\n\r\n </ng-template> -->\r\n\r\n</mat-horizontal-stepper>\r\n", styles: [".transparent{background-color:#0000}:host ::ng-deep .mat-step-header{padding:5px!important}:host ::ng-deep .mat-stepper-horizontal-line{min-width:5px!important}:host ::ng-deep .mat-horizontal-content-container{padding:0!important}:host ::ng-deep .mat-horizontal-stepper-header{pointer-events:none!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "component", type: i2.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }] });
97
77
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: StepsComponent, decorators: [{
98
78
  type: Component,
99
79
  args: [{ selector: 'spa-steps', providers: [{
100
80
  provide: STEPPER_GLOBAL_OPTIONS, useValue: { displayDefaultIndicatorType: false }
101
- }], template: "\r\n<mat-horizontal-stepper class=\"transparent\" [labelPosition]=\"shouldShowLabels ? 'bottom' : 'end'\" #stepper [selectedIndex]=\"selectedIndex\">\r\n\r\n <mat-step *ngFor=\"let step of getVisibleSteps()\"\r\n [editable]=\"false\" [label]=\"shouldShowLabels ? step.name : ''\" [state]=\"step.icon ?? 'number'\">\r\n </mat-step>\r\n\r\n</mat-horizontal-stepper>\r\n", styles: [".transparent{background-color:#0000}:host ::ng-deep .mat-step-header{padding:5px!important}:host ::ng-deep .mat-stepper-horizontal-line{min-width:5px!important}:host ::ng-deep .mat-horizontal-content-container{padding:0!important}:host ::ng-deep .mat-horizontal-stepper-header{pointer-events:none!important}\n"] }]
102
- }], ctorParameters: function () { return [{ type: i1.BreakpointObserver }, { type: i2.DataServiceLib }]; }, propDecorators: { stepper: [{
81
+ }], template: "\r\n\r\n\r\n<!-- <mat-horizontal-stepper class=\"test\" labelPosition=\"bottom\" #stepper>\r\n <mat-step [editable]=\"false\" label=\"Draft\"> </mat-step>\r\n <mat-step [editable]=\"false\" label=\"Head Approval\" > </mat-step>\r\n <mat-step [editable]=\"false\" label=\"CE Approval\"> </mat-step>\r\n <mat-step [editable]=\"false\" label=\"Booking\" state=\"booking\"> </mat-step>\r\n <mat-step [editable]=\"false\" label=\"BTA Approval\"> </mat-step>\r\n <mat-step [editable]=\"false\" label=\"Travel\"> </mat-step>\r\n <mat-step [editable]=\"false\" label=\"BTR Approval\"> </mat-step>\r\n <mat-step [editable]=\"false\" label=\"Closure\"> </mat-step>\r\n <ng-template matStepperIcon=\"booking\"> <mat-icon>forum</mat-icon> </ng-template>\r\n</mat-horizontal-stepper> -->\r\n\r\n<mat-horizontal-stepper class=\"transparent\" labelPosition=\"bottom\" #stepper>\r\n\r\n <mat-step *ngFor=\"let row of steps\"\r\n [editable]=\"false\" [label]=\"row.name\">\r\n </mat-step>\r\n\r\n <!-- <ng-template *ngFor=\"let row of steps\"\r\n [matStepperIcon]=\"row.name\"> <mat-icon>{{row.icon}}</mat-icon>\r\n </ng-template> -->\r\n\r\n <!-- <ng-template matStepperIcon=\"booking\">\r\n <mat-icon>call_end</mat-icon>\r\n </ng-template> -->\r\n\r\n <!-- <ng-template ngFor let-xb [ngForOf]=\"steps\" matStepperIcon=\"Booking\"> <mat-icon>forum</mat-icon>\r\n\r\n </ng-template> -->\r\n\r\n</mat-horizontal-stepper>\r\n", styles: [".transparent{background-color:#0000}:host ::ng-deep .mat-step-header{padding:5px!important}:host ::ng-deep .mat-stepper-horizontal-line{min-width:5px!important}:host ::ng-deep .mat-horizontal-content-container{padding:0!important}:host ::ng-deep .mat-horizontal-stepper-header{pointer-events:none!important}\n"] }]
82
+ }], ctorParameters: function () { return []; }, propDecorators: { stepper: [{
103
83
  type: ViewChild,
104
84
  args: ['stepper']
105
85
  }], value: [{
106
86
  type: Input
107
- }], config: [{
108
- type: Input
109
- }], data: [{
87
+ }], steps: [{
110
88
  type: Input
111
89
  }] } });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvc3RlcHMvc3RlcHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvc3RlcHMvc3RlcHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBYTlELE1BQU0sT0FBTyxjQUFjO0lBRXpCLFlBQW9CLGtCQUFzQyxFQUFVLFdBQTJCO1FBQTNFLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFxQnRGLFVBQUssR0FBRyxFQUFFLENBQUM7UUFLcEIsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFDbEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsVUFBSyxHQUFXLEVBQUUsQ0FBQztJQTVCaUYsQ0FBQztJQUVyRyxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRWpCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFHRCxXQUFXO1FBQ1Qsb0JBQW9CO1FBQ3BCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUF1QixFQUFFLEVBQUU7WUFDNUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFD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Q0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzJHQWhHVSxjQUFjOytGQUFkLGNBQWMsZ0dBSmQsQ0FBQztZQUNWLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsRUFBRSwyQkFBMkIsRUFBRSxLQUFLLEVBQUU7U0FDbEYsQ0FBQyxtSkNiSix1WEFRQTsyRkRPYSxjQUFjO2tCQVIxQixTQUFTOytCQUNFLFdBQVcsYUFHVixDQUFDOzRCQUNWLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsRUFBRSwyQkFBMkIsRUFBRSxLQUFLLEVBQUU7eUJBQ2xGLENBQUM7c0lBd0JvQixPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ1gsS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRTdGVwcGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc3RlcHBlcic7XHJcbmltcG9ydCB7IFNURVBQRVJfR0xPQkFMX09QVElPTlMgfSBmcm9tICdAYW5ndWxhci9jZGsvc3RlcHBlcic7XHJcbmltcG9ydCB7IEFwaVJlc3BvbnNlLCBTdGVwLCBTdGVwQ29uZmlnIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50U3RhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2VMaWIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhbGliLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcGEtc3RlcHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGVwcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc3RlcHMuY29tcG9uZW50LmNzcyddLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgIHByb3ZpZGU6IFNURVBQRVJfR0xPQkFMX09QVElPTlMsIHVzZVZhbHVlOiB7IGRpc3BsYXlEZWZhdWx0SW5kaWNhdG9yVHlwZTogZmFsc2UgfVxyXG4gIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdGVwc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXIsIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlTGliICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkU3RlcHMoKTtcclxuXHJcbiAgICB0aGlzLm9ic2VydmVTY3JlZW5TaXplKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICAvLyB0aGlzLnB1c2hTdGVwcygpO1xyXG4gICAgdGhpcy51cGRhdGVTZWxlY3RlZFN0ZXAoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb2JzZXJ2ZVNjcmVlblNpemUoKSB7XHJcbiAgICB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKFtcIihtYXgtd2lkdGg6IDYwMHB4KVwiXSkuc3Vic2NyaWJlKChyZXN1bHQ6IEJyZWFrcG9pbnRTdGF0ZSkgPT4ge1xyXG4gICAgICB0aGlzLnNtYWxsU2NyZWVuID0gcmVzdWx0Lm1hdGNoZXM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3N0ZXBwZXInKSBzdGVwcGVyOiBNYXRTdGVwcGVyO1xyXG4gIEBJbnB1dCgpIHZhbHVlID0gXCJcIjtcclxuICBASW5wdXQoKSBjb25maWc6IFN0ZXBDb25maWc7XHJcbiAgQElucHV0KCkgZGF0YTtcclxuXHJcblxyXG4gIHNlbGVjdGVkSW5kZXggPSAwO1xyXG4gIHNtYWxsU2NyZWVuID0gZmFsc2U7XHJcbiAgc3RlcHM6IFN0ZXBbXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIGxvYWRTdGVwcygpIHtcclxuICAgIC8vIElmIGxvYWRBY3Rpb24gaXMgcHJvdmlkZWQsIGZldGNoIHN0ZXBzIGZyb20gYmFja2VuZFxyXG4gICAgaWYgKHRoaXMuY29uZmlnPy5sb2FkQWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2FsbEFwaSh0aGlzLmNvbmZpZy5sb2FkQWN0aW9uKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBBcGlSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgICB0aGlzLnN0ZXBzID0gcmVzcG9uc2UuZGF0YTtcclxuICAgICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRTdGVwKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIFVzZSBzdGF0aWMgc3RlcHMgaWYgcHJvdmlkZWRcclxuICAgICAgdGhpcy5zdGVwcyA9IHRoaXMuY29uZmlnPy5zdGVwcyA/PyBbXTtcclxuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZFN0ZXAoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlU2VsZWN0ZWRTdGVwKCkge1xyXG4gICAgaWYgKCF0aGlzLnN0ZXBzPy5sZW5ndGgpIHJldHVybjtcclxuXHJcbiAgICAvLyBHZXQgdmlzaWJsZSBzdGVwcyBvbmx5XHJcbiAgICBjb25zdCB2aXNpYmxlU3RlcHMgPSB0aGlzLmdldFZpc2libGVTdGVwcygpO1xyXG4gICAgaWYgKCF2aXNpYmxlU3RlcHMubGVuZ3RoKSByZXR1cm47XHJcblxyXG4gICAgLy8gR2V0IHZhbHVlIGZyb20gZGF0YSBvYmplY3QgaWYgdmFsdWVGaWVsZCBpcyBzcGVjaWZpZWRcclxuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMuY29uZmlnPy52YWx1ZUZpZWxkID9cclxuICAgICAgdGhpcy5kYXRhW3RoaXMuY29uZmlnLnZhbHVlRmllbGRdIDogdGhpcy52YWx1ZTtcclxuXHJcbiAgICAvLyBGaW5kIG1hdGNoaW5nIHN0ZXAgaW5kZXggYW1vbmcgdmlzaWJsZSBzdGVwc1xyXG4gICAgY29uc3QgaW5kZXggPSB2aXNpYmxlU3RlcHMuZmluZEluZGV4KHN0ZXAgPT4gc3RlcC52YWx1ZSA9PT0gY3VycmVudFZhbHVlKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IGluZGV4ID49IDAgPyBpbmRleCA6IDA7XHJcblxyXG4gICAgLy8gVXBkYXRlIHN0ZXBwZXIgaWYgYWxyZWFkeSBpbml0aWFsaXplZFxyXG4gICAgLy8gaWYgKHRoaXMuc3RlcHBlcikge1xyXG4gICAgLy8gICB0aGlzLnN0ZXBwZXIuc2VsZWN0ZWRJbmRleCA9IHRoaXMuc2VsZWN0ZWRJbmRleDtcclxuXHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gVXBkYXRlIHN0ZXBwZXIgaWYgYWxyZWFkeSBpbml0aWFsaXplZFxyXG4gICAgaWYgKHRoaXMuc3RlcHBlcikge1xyXG4gICAgICAvLyBMb29wIHRocm91Z2ggYWxsIHByZXZpb3VzIHN0ZXBzIHRvIHNlbGVjdCB0aGVtXHJcbiAgICAgIGxldCBjdXJyZW50U3RlcCA9IDA7XHJcbiAgICAgIGNvbnN0IHNlbGVjdFN0ZXBzSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKGN1cnJlbnRTdGVwIDw9IHRoaXMuc2VsZWN0ZWRJbmRleCkge1xyXG4gICAgICAgICAgdGhpcy5zdGVwcGVyLnNlbGVjdGVkSW5kZXggPSBjdXJyZW50U3RlcDtcclxuICAgICAgICAgIGN1cnJlbnRTdGVwKys7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNsZWFySW50ZXJ2YWwoc2VsZWN0U3RlcHNJbnRlcnZhbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCAxMDApOyAvLyAzMDBtcyBkZWxheSBiZXR3ZWVuIGVhY2ggc3RlcCBzZWxlY3Rpb25cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBzaG91bGRTaG93TGFiZWxzKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgdmlzaWJsZVN0ZXBzID0gdGhpcy5nZXRWaXNpYmxlU3RlcHMoKTtcclxuICAgIHJldHVybiAhKHZpc2libGVTdGVwcy5sZW5ndGggPiA1ICYmIHRoaXMuc21hbGxTY3JlZW4pO1xyXG4gIH1cclxuXHJcbiAgLy8gTmV3IG1ldGhvZCB0byBmaWx0ZXIgaGlkZGVuIHN0ZXBzXHJcbiAgZ2V0VmlzaWJsZVN0ZXBzKCk6IFN0ZXBbXSB7XHJcbiAgICBpZiAoIXRoaXMuc3RlcHM/Lmxlbmd0aCkgcmV0dXJuIFtdO1xyXG4gICAgcmV0dXJuIHRoaXMuc3RlcHMuZmlsdGVyKHN0ZXAgPT4ge1xyXG4gICAgICBpZiAoIXN0ZXAuaGlkZGVuQ29uZGl0aW9uKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgcmV0dXJuICFzdGVwLmhpZGRlbkNvbmRpdGlvbih0aGlzLmRhdGEgfHwge30pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIiwiXHJcbjxtYXQtaG9yaXpvbnRhbC1zdGVwcGVyIGNsYXNzPVwidHJhbnNwYXJlbnRcIiBbbGFiZWxQb3NpdGlvbl09XCJzaG91bGRTaG93TGFiZWxzID8gJ2JvdHRvbScgOiAnZW5kJ1wiICNzdGVwcGVyIFtzZWxlY3RlZEluZGV4XT1cInNlbGVjdGVkSW5kZXhcIj5cclxuXHJcbiAgPG1hdC1zdGVwICpuZ0Zvcj1cImxldCBzdGVwIG9mIGdldFZpc2libGVTdGVwcygpXCJcclxuICAgIFtlZGl0YWJsZV09XCJmYWxzZVwiICBbbGFiZWxdPVwic2hvdWxkU2hvd0xhYmVscyA/IHN0ZXAubmFtZSA6ICcnXCIgW3N0YXRlXT1cInN0ZXAuaWNvbiA/PyAnbnVtYmVyJ1wiPlxyXG4gIDwvbWF0LXN0ZXA+XHJcblxyXG48L21hdC1ob3Jpem9udGFsLXN0ZXBwZXI+XHJcbiJdfQ==
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvc3RlcHMvc3RlcHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvc3RlcHMvc3RlcHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQVc5RCxNQUFNLE9BQU8sY0FBYztJQUV6QjtRQWVTLFVBQUssR0FBRyxFQUFFLENBQUM7SUFmSixDQUFDO0lBRWpCLFFBQVE7SUFFUixDQUFDO0lBRUQsZUFBZTtJQUVmLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFNRCxVQUFVO1FBRVIsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFBRSxPQUFPO1FBRzdCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUUvQixRQUFRLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFJbEIsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztnQkFDL0IsTUFBTTtZQUVSLEtBQUssZUFBZTtnQkFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDbkIsTUFBTTtZQUVSLEtBQUssYUFBYTtnQkFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDbkIsTUFBTTtZQUVSLEtBQUssU0FBUztnQkFDWixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUNuQixNQUFNO1lBRVIsS0FBSyxjQUFjO2dCQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUNuQixNQUFNO1lBRVIsS0FBSyxRQUFRO2dCQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ25CLE1BQU07WUFFUixLQUFLLGNBQWM7Z0JBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ25CLE1BQU07WUFFUixLQUFLLGdCQUFnQjtnQkFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDbkIsTUFBTTtTQUVUO0lBRUgsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBRXZCLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzlDLGdDQUFnQztZQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7U0FDcEM7SUFFSCxDQUFDO0lBRUQsU0FBUztRQUVQLElBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztZQUFFLE9BQU87UUFDbEMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFBRSxPQUFPO1FBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUcvQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFVixLQUFLLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFFM0IsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBRTNCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztnQkFDL0IsQ0FBQyxFQUFFLENBQUM7YUFFTDtpQkFBTTtnQkFFTCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7Z0JBQy9CLE1BQU07YUFFUDtTQUNGO0lBRUgsQ0FBQzs7MkdBcEdVLGNBQWM7K0ZBQWQsY0FBYyxnRkFKZCxDQUFDO1lBQ1YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxFQUFFLDJCQUEyQixFQUFFLEtBQUssRUFBRTtTQUNsRixDQUFDLG1KQ1hKLDg1Q0FrQ0E7MkZEckJhLGNBQWM7a0JBUjFCLFNBQVM7K0JBQ0UsV0FBVyxhQUdWLENBQUM7NEJBQ1YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxFQUFFLDJCQUEyQixFQUFFLEtBQUssRUFBRTt5QkFDbEYsQ0FBQzswRUFrQm9CLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFDWCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0U3RlcHBlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3N0ZXBwZXInO1xyXG5pbXBvcnQgeyBTVEVQUEVSX0dMT0JBTF9PUFRJT05TIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3N0ZXBwZXInO1xyXG5pbXBvcnQgeyBTdGVwIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3BhLXN0ZXBzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3RlcHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3N0ZXBzLmNvbXBvbmVudC5jc3MnXSxcclxuICBwcm92aWRlcnM6IFt7XHJcbiAgICBwcm92aWRlOiBTVEVQUEVSX0dMT0JBTF9PUFRJT05TLCB1c2VWYWx1ZTogeyBkaXNwbGF5RGVmYXVsdEluZGljYXRvclR5cGU6IGZhbHNlIH1cclxuICB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RlcHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLnB1c2hTdGVwcygpO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZCgnc3RlcHBlcicpIHN0ZXBwZXI6IE1hdFN0ZXBwZXI7XHJcbiAgQElucHV0KCkgdmFsdWUgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHN0ZXBzOiBTdGVwW107XHJcblxyXG4gIHNldFN0ZXBwZXIoKSB7XHJcblxyXG4gICAgaWYgKHRoaXMudmFsdWUgPT0gXCJcIikgcmV0dXJuO1xyXG5cclxuXHJcbiAgICB0aGlzLnN0ZXBwZXIuc2VsZWN0ZWRJbmRleCA9IDA7XHJcblxyXG4gICAgc3dpdGNoICh0aGlzLnZhbHVlKSB7XHJcblxyXG5cclxuXHJcbiAgICAgIGNhc2UgXCJEcmFmdFwiOlxyXG4gICAgICAgIHRoaXMuc3RlcHBlci5zZWxlY3RlZEluZGV4ID0gMDtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgXCJIZWFkIEFwcHJvdmFsXCI6XHJcbiAgICAgICAgdGhpcy5wdXNoU3RlcHBlcigxKVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBcIkNFIEFwcHJvdmFsXCI6XHJcbiAgICAgICAgdGhpcy5wdXNoU3RlcHBlcigyKVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBcIkJvb2tpbmdcIjpcclxuICAgICAgICB0aGlzLnB1c2hTdGVwcGVyKDMpXHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFwiQlRBIEFwcHJvdmFsXCI6XHJcbiAgICAgICAgdGhpcy5wdXNoU3RlcHBlcig0KVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBcIlRyYXZlbFwiOlxyXG4gICAgICAgIHRoaXMucHVzaFN0ZXBwZXIoNSlcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgXCJCVFIgQXBwcm92YWxcIjpcclxuICAgICAgICB0aGlzLnB1c2hTdGVwcGVyKDYpXHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFwiVHJhdmVsIENsb3N1cmVcIjpcclxuICAgICAgICB0aGlzLnB1c2hTdGVwcGVyKDcpXHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHB1c2hTdGVwcGVyKGNvdW50OiBudW1iZXIpIHtcclxuXHJcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgY291bnQgKyAxOyBpbmRleCsrKSB7XHJcbiAgICAgIC8vIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XHJcbiAgICAgIHRoaXMuc3RlcHBlci5zZWxlY3RlZEluZGV4ID0gaW5kZXg7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHVzaFN0ZXBzKCl7XHJcblxyXG4gICAgaWYodGhpcy5zdGVwcy5sZW5ndGggPT0gMCkgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMudmFsdWUgPT0gXCJcIikgcmV0dXJuO1xyXG4gICAgdGhpcy5zdGVwcGVyLnNlbGVjdGVkSW5kZXggPSAwO1xyXG5cclxuXHJcbiAgICBsZXQgaSA9IDA7XHJcblxyXG4gICAgZm9yIChsZXQgc3RlcCBvZiB0aGlzLnN0ZXBzKSB7XHJcblxyXG4gICAgICBpZiAoc3RlcC5uYW1lICE9IHRoaXMudmFsdWUpIHtcclxuXHJcbiAgICAgICAgdGhpcy5zdGVwcGVyLnNlbGVjdGVkSW5kZXggPSBpO1xyXG4gICAgICAgIGkrKztcclxuXHJcbiAgICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAgIHRoaXMuc3RlcHBlci5zZWxlY3RlZEluZGV4ID0gaTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxufVxyXG4iLCJcclxuXHJcblxyXG48IS0tIDxtYXQtaG9yaXpvbnRhbC1zdGVwcGVyIGNsYXNzPVwidGVzdFwiIGxhYmVsUG9zaXRpb249XCJib3R0b21cIiAgI3N0ZXBwZXI+XHJcbiAgPG1hdC1zdGVwIFtlZGl0YWJsZV09XCJmYWxzZVwiIGxhYmVsPVwiRHJhZnRcIj4gPC9tYXQtc3RlcD5cclxuICA8bWF0LXN0ZXAgW2VkaXRhYmxlXT1cImZhbHNlXCIgbGFiZWw9XCJIZWFkIEFwcHJvdmFsXCIgPiA8L21hdC1zdGVwPlxyXG4gIDxtYXQtc3RlcCBbZWRpdGFibGVdPVwiZmFsc2VcIiBsYWJlbD1cIkNFIEFwcHJvdmFsXCI+IDwvbWF0LXN0ZXA+XHJcbiAgPG1hdC1zdGVwIFtlZGl0YWJsZV09XCJmYWxzZVwiIGxhYmVsPVwiQm9va2luZ1wiIHN0YXRlPVwiYm9va2luZ1wiPiA8L21hdC1zdGVwPlxyXG4gIDxtYXQtc3RlcCBbZWRpdGFibGVdPVwiZmFsc2VcIiBsYWJlbD1cIkJUQSBBcHByb3ZhbFwiPiA8L21hdC1zdGVwPlxyXG4gIDxtYXQtc3RlcCBbZWRpdGFibGVdPVwiZmFsc2VcIiBsYWJlbD1cIlRyYXZlbFwiPiA8L21hdC1zdGVwPlxyXG4gIDxtYXQtc3RlcCBbZWRpdGFibGVdPVwiZmFsc2VcIiBsYWJlbD1cIkJUUiBBcHByb3ZhbFwiPiA8L21hdC1zdGVwPlxyXG4gIDxtYXQtc3RlcCBbZWRpdGFibGVdPVwiZmFsc2VcIiBsYWJlbD1cIkNsb3N1cmVcIj4gPC9tYXQtc3RlcD5cclxuICA8bmctdGVtcGxhdGUgbWF0U3RlcHBlckljb249XCJib29raW5nXCI+IDxtYXQtaWNvbj5mb3J1bTwvbWF0LWljb24+IDwvbmctdGVtcGxhdGU+XHJcbjwvbWF0LWhvcml6b250YWwtc3RlcHBlcj4gLS0+XHJcblxyXG48bWF0LWhvcml6b250YWwtc3RlcHBlciBjbGFzcz1cInRyYW5zcGFyZW50XCIgbGFiZWxQb3NpdGlvbj1cImJvdHRvbVwiICAgI3N0ZXBwZXI+XHJcblxyXG4gIDxtYXQtc3RlcCAqbmdGb3I9XCJsZXQgcm93IG9mIHN0ZXBzXCJcclxuICAgIFtlZGl0YWJsZV09XCJmYWxzZVwiICBbbGFiZWxdPVwicm93Lm5hbWVcIj5cclxuICA8L21hdC1zdGVwPlxyXG5cclxuICA8IS0tIDxuZy10ZW1wbGF0ZSAqbmdGb3I9XCJsZXQgcm93IG9mIHN0ZXBzXCJcclxuICAgIFttYXRTdGVwcGVySWNvbl09XCJyb3cubmFtZVwiPiA8bWF0LWljb24+e3tyb3cuaWNvbn19PC9tYXQtaWNvbj5cclxuICA8L25nLXRlbXBsYXRlPiAtLT5cclxuXHJcbiAgPCEtLSA8bmctdGVtcGxhdGUgbWF0U3RlcHBlckljb249XCJib29raW5nXCI+XHJcbiAgICA8bWF0LWljb24+Y2FsbF9lbmQ8L21hdC1pY29uPlxyXG4gIDwvbmctdGVtcGxhdGU+IC0tPlxyXG5cclxuICA8IS0tIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQteGIgW25nRm9yT2ZdPVwic3RlcHNcIiBtYXRTdGVwcGVySWNvbj1cIkJvb2tpbmdcIj4gPG1hdC1pY29uPmZvcnVtPC9tYXQtaWNvbj5cclxuXHJcbiAgPC9uZy10ZW1wbGF0ZT4gLS0+XHJcblxyXG48L21hdC1ob3Jpem9udGFsLXN0ZXBwZXI+XHJcbiJdfQ==