tin-spa 14.4.2 → 14.13.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 (162) hide show
  1. package/README.md +24 -24
  2. package/esm2020/lib/classes/Classes.mjs +57 -32
  3. package/esm2020/lib/classes/LibClasses.mjs +2 -1
  4. package/esm2020/lib/classes/TinCore.mjs +194 -44
  5. package/esm2020/lib/components/alert/alert.component.mjs +12 -6
  6. package/esm2020/lib/components/attach/attach.component.mjs +49 -33
  7. package/esm2020/lib/components/capsules/capsules.component.mjs +63 -0
  8. package/esm2020/lib/components/cards/cards.component.mjs +103 -0
  9. package/esm2020/lib/components/date/date.component.mjs +4 -4
  10. package/esm2020/lib/components/email/email.component.mjs +19 -17
  11. package/esm2020/lib/components/form/form.component.mjs +142 -57
  12. package/esm2020/lib/components/html/html.component.mjs +34 -0
  13. package/esm2020/lib/components/label/label.component.mjs +9 -3
  14. package/esm2020/lib/components/list-dialog/list-dialog.component.mjs +3 -3
  15. package/esm2020/lib/components/money/money.component.mjs +26 -9
  16. package/esm2020/lib/components/multi-select/multi-select.component.mjs +165 -0
  17. package/esm2020/lib/components/multi-text/multi-text.component.mjs +208 -0
  18. package/esm2020/lib/components/nav-menu/nav-menu.component.mjs +31 -27
  19. package/esm2020/lib/components/notes/notes.component.mjs +62 -0
  20. package/esm2020/lib/components/number/number.component.mjs +23 -8
  21. package/esm2020/lib/components/option/option.component.mjs +36 -14
  22. package/esm2020/lib/components/page/page.component.mjs +101 -0
  23. package/esm2020/lib/components/search/search.component.mjs +10 -5
  24. package/esm2020/lib/components/select/select.component.mjs +56 -129
  25. package/esm2020/lib/components/select-bitwise/select-bitwise.component.mjs +87 -0
  26. package/esm2020/lib/components/select-common/select-common.component.mjs +208 -0
  27. package/esm2020/lib/components/select-internal/select-internal.component.mjs +75 -0
  28. package/esm2020/lib/components/select-lite/select-lite.component.mjs +18 -0
  29. package/esm2020/lib/components/steps/steps.component.mjs +83 -61
  30. package/esm2020/lib/components/suffix/suffix.component.mjs +70 -0
  31. package/esm2020/lib/components/table/detailsDialog.component.mjs +169 -37
  32. package/esm2020/lib/components/table/table.component.mjs +136 -111
  33. package/esm2020/lib/components/table-action/table-action.component.mjs +42 -8
  34. package/esm2020/lib/components/table-header/table-header.component.mjs +12 -8
  35. package/esm2020/lib/components/table-internal/detailsDialog-internal.component.mjs +169 -35
  36. package/esm2020/lib/components/table-internal/table-internal.component.mjs +138 -112
  37. package/esm2020/lib/components/table-lite/detailsDialog-lite.component.mjs +371 -0
  38. package/esm2020/lib/components/table-lite/table-lite.component.mjs +441 -0
  39. package/esm2020/lib/components/table-row/table-row.component.mjs +23 -4
  40. package/esm2020/lib/components/tabs/tabs.component.mjs +83 -0
  41. package/esm2020/lib/components/text/text.component.mjs +85 -40
  42. package/esm2020/lib/components/tiles/tiles.component.mjs +32 -20
  43. package/esm2020/lib/components/viewer/viewer.component.mjs +7 -3
  44. package/esm2020/lib/components/viewer/viewerDialog.component.mjs +20 -13
  45. package/esm2020/lib/modules/admin/admin-routing.module.mjs +11 -1
  46. package/esm2020/lib/pages/accounts/accountDialog.component.mjs +1 -1
  47. package/esm2020/lib/pages/app-models/app-models.component.mjs +56 -0
  48. package/esm2020/lib/pages/approvals/approvals.component.mjs +19 -0
  49. package/esm2020/lib/pages/approvals-config/approvals-config.component.mjs +165 -0
  50. package/esm2020/lib/pages/bug/bug.component.mjs +3 -3
  51. package/esm2020/lib/pages/change-password/change-password.component.mjs +1 -1
  52. package/esm2020/lib/pages/create-account/create-account.component.mjs +1 -1
  53. package/esm2020/lib/pages/customers/customers.component.mjs +9 -48
  54. package/esm2020/lib/pages/departments/departments.component.mjs +2 -4
  55. package/esm2020/lib/pages/employees/employees.component.mjs +3 -4
  56. package/esm2020/lib/pages/grades/grades.component.mjs +3 -3
  57. package/esm2020/lib/pages/inventory/inventory.component.mjs +3 -3
  58. package/esm2020/lib/pages/inventory/quantityDialog.component.mjs +1 -1
  59. package/esm2020/lib/pages/invitations-table/invitations-table.component.mjs +11 -10
  60. package/esm2020/lib/pages/login/login.component.mjs +52 -14
  61. package/esm2020/lib/pages/logs/logs.component.mjs +27 -22
  62. package/esm2020/lib/pages/membership/membership.component.mjs +15 -19
  63. package/esm2020/lib/pages/notifications/notifications.component.mjs +82 -6
  64. package/esm2020/lib/pages/notifications-config/notifications-config.component.mjs +113 -0
  65. package/esm2020/lib/pages/plans/plans.component.mjs +16 -19
  66. package/esm2020/lib/pages/positions/positions.component.mjs +4 -4
  67. package/esm2020/lib/pages/profile/profile.component.mjs +4 -3
  68. package/esm2020/lib/pages/recover-account/recover-account.component.mjs +1 -1
  69. package/esm2020/lib/pages/roles/addRoleDialog.component.mjs +2 -2
  70. package/esm2020/lib/pages/roles/roles.component.mjs +77 -17
  71. package/esm2020/lib/pages/settings/settings.component.mjs +5 -13
  72. package/esm2020/lib/pages/signup/signup.component.mjs +1 -1
  73. package/esm2020/lib/pages/suppliers/suppliers.component.mjs +3 -31
  74. package/esm2020/lib/pages/tasks/tasks.component.mjs +9 -9
  75. package/esm2020/lib/pages/tenant-settings/tenant-settings.component.mjs +145 -72
  76. package/esm2020/lib/pages/tenants/tenants.component.mjs +10 -10
  77. package/esm2020/lib/pages/transactions/transactDialog.component.mjs +1 -1
  78. package/esm2020/lib/pages/transactions/transactions.component.mjs +3 -3
  79. package/esm2020/lib/pages/users/users.component.mjs +115 -92
  80. package/esm2020/lib/pages/welcome/welcome.component.mjs +9 -9
  81. package/esm2020/lib/select-context.directive.mjs +23 -0
  82. package/esm2020/lib/services/button.service.mjs +90 -30
  83. package/esm2020/lib/services/csv.service.mjs +1 -1
  84. package/esm2020/lib/services/datalib.service.mjs +504 -76
  85. package/esm2020/lib/services/dialog.service.mjs +24 -7
  86. package/esm2020/lib/services/notifications.service.mjs +33 -0
  87. package/esm2020/lib/services/table-config.service.mjs +55 -7
  88. package/esm2020/lib/tin-spa.module.mjs +47 -11
  89. package/esm2020/public-api.mjs +9 -1
  90. package/fesm2015/tin-spa.mjs +6333 -2671
  91. package/fesm2015/tin-spa.mjs.map +1 -1
  92. package/fesm2020/tin-spa.mjs +6492 -2770
  93. package/fesm2020/tin-spa.mjs.map +1 -1
  94. package/lib/classes/Classes.d.ts +233 -127
  95. package/lib/classes/LibClasses.d.ts +1 -0
  96. package/lib/classes/TinCore.d.ts +11 -3
  97. package/lib/components/attach/attach.component.d.ts +13 -6
  98. package/lib/components/capsules/capsules.component.d.ts +26 -0
  99. package/lib/components/cards/cards.component.d.ts +39 -0
  100. package/lib/components/email/email.component.d.ts +4 -3
  101. package/lib/components/form/form.component.d.ts +20 -11
  102. package/lib/components/html/html.component.d.ts +16 -0
  103. package/lib/components/label/label.component.d.ts +3 -1
  104. package/lib/components/money/money.component.d.ts +8 -1
  105. package/lib/components/multi-select/multi-select.component.d.ts +47 -0
  106. package/lib/components/multi-text/multi-text.component.d.ts +56 -0
  107. package/lib/components/nav-menu/nav-menu.component.d.ts +6 -2
  108. package/lib/components/notes/notes.component.d.ts +19 -0
  109. package/lib/components/number/number.component.d.ts +7 -1
  110. package/lib/components/option/option.component.d.ts +10 -2
  111. package/lib/components/page/page.component.d.ts +38 -0
  112. package/lib/components/search/search.component.d.ts +3 -1
  113. package/lib/components/select/select.component.d.ts +16 -37
  114. package/lib/components/select-bitwise/select-bitwise.component.d.ts +31 -0
  115. package/lib/components/select-common/select-common.component.d.ts +53 -0
  116. package/lib/components/select-internal/select-internal.component.d.ts +23 -0
  117. package/lib/components/select-lite/select-lite.component.d.ts +8 -0
  118. package/lib/components/steps/steps.component.d.ts +18 -9
  119. package/lib/components/suffix/suffix.component.d.ts +23 -0
  120. package/lib/components/table/detailsDialog.component.d.ts +24 -7
  121. package/lib/components/table/table.component.d.ts +15 -9
  122. package/lib/components/table-action/table-action.component.d.ts +4 -1
  123. package/lib/components/table-header/table-header.component.d.ts +3 -1
  124. package/lib/components/table-internal/detailsDialog-internal.component.d.ts +24 -7
  125. package/lib/components/table-internal/table-internal.component.d.ts +15 -9
  126. package/lib/components/table-lite/detailsDialog-lite.component.d.ts +81 -0
  127. package/lib/components/table-lite/table-lite.component.d.ts +91 -0
  128. package/lib/components/table-row/table-row.component.d.ts +4 -1
  129. package/lib/components/tabs/tabs.component.d.ts +32 -0
  130. package/lib/components/text/text.component.d.ts +16 -7
  131. package/lib/components/tiles/tiles.component.d.ts +4 -3
  132. package/lib/components/viewer/viewerDialog.component.d.ts +3 -1
  133. package/lib/pages/app-models/app-models.component.d.ts +15 -0
  134. package/lib/pages/approvals/approvals.component.d.ts +10 -0
  135. package/lib/pages/approvals-config/approvals-config.component.d.ts +24 -0
  136. package/lib/pages/customers/customers.component.d.ts +2 -8
  137. package/lib/pages/invitations-table/invitations-table.component.d.ts +1 -1
  138. package/lib/pages/login/login.component.d.ts +7 -1
  139. package/lib/pages/logs/logs.component.d.ts +2 -6
  140. package/lib/pages/membership/membership.component.d.ts +2 -6
  141. package/lib/pages/notifications/notifications.component.d.ts +9 -1
  142. package/lib/pages/notifications-config/notifications-config.component.d.ts +17 -0
  143. package/lib/pages/plans/plans.component.d.ts +2 -6
  144. package/lib/pages/roles/roles.component.d.ts +14 -2
  145. package/lib/pages/suppliers/suppliers.component.d.ts +1 -4
  146. package/lib/pages/tasks/tasks.component.d.ts +1 -1
  147. package/lib/pages/tenant-settings/tenant-settings.component.d.ts +12 -7
  148. package/lib/pages/tenants/tenants.component.d.ts +2 -2
  149. package/lib/pages/users/users.component.d.ts +8 -16
  150. package/lib/select-context.directive.d.ts +10 -0
  151. package/lib/services/button.service.d.ts +10 -7
  152. package/lib/services/datalib.service.d.ts +54 -10
  153. package/lib/services/dialog.service.d.ts +2 -2
  154. package/lib/services/notifications.service.d.ts +12 -0
  155. package/lib/services/table-config.service.d.ts +9 -1
  156. package/lib/tin-spa.module.d.ts +51 -33
  157. package/package.json +1 -1
  158. package/public-api.d.ts +8 -0
  159. package/esm2020/lib/pages/invitations/invitations.component.mjs +0 -14
  160. package/esm2020/lib/pages/tenant-settings/inviteDialog.component.mjs +0 -60
  161. package/lib/pages/invitations/invitations.component.d.ts +0 -8
  162. package/lib/pages/tenant-settings/inviteDialog.component.d.ts +0 -28
@@ -0,0 +1,70 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../services/message.service";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/material/button";
6
+ import * as i4 from "@angular/material/icon";
7
+ import * as i5 from "@angular/material/tooltip";
8
+ export class SuffixComponent {
9
+ constructor(messageService) {
10
+ this.messageService = messageService;
11
+ this.copyContent = false;
12
+ this.isHovered = false;
13
+ this.clearContent = false;
14
+ this.infoClick = new EventEmitter();
15
+ this.copyClick = new EventEmitter();
16
+ this.clearClick = new EventEmitter();
17
+ this.valueChange = new EventEmitter();
18
+ }
19
+ ngOnInit() {
20
+ }
21
+ onInfoClick(event) {
22
+ event.stopPropagation();
23
+ if (this.infoMessage) {
24
+ this.messageService.info(this.infoMessage);
25
+ }
26
+ this.infoClick.emit();
27
+ }
28
+ onCopyClick(event) {
29
+ event.stopPropagation();
30
+ if (this.value) {
31
+ navigator.clipboard.writeText(this.value).then(() => {
32
+ this.messageService.toast('Copied');
33
+ });
34
+ }
35
+ this.copyClick.emit(this.value);
36
+ }
37
+ onClearClick(event) {
38
+ event.stopPropagation();
39
+ this.value = '';
40
+ this.valueChange.emit(this.value);
41
+ this.clearClick.emit();
42
+ }
43
+ }
44
+ SuffixComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SuffixComponent, deps: [{ token: i1.MessageService }], target: i0.ɵɵFactoryTarget.Component });
45
+ SuffixComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SuffixComponent, selector: "spa-suffix", inputs: { label: "label", infoMessage: "infoMessage", copyContent: "copyContent", isHovered: "isHovered", clearContent: "clearContent", value: "value" }, outputs: { infoClick: "infoClick", copyClick: "copyClick", clearClick: "clearClick", valueChange: "valueChange" }, ngImport: i0, template: "<label *ngIf=\"label\">&nbsp; {{label}}</label>\r\n<button mat-icon-button *ngIf=\"copyContent && isHovered\" (click)=\"onCopyClick($event)\" matTooltip=\"Copy Content\" matTooltipPosition=\"above\" style=\"opacity: 1;\">\r\n <mat-icon class=\"smallIcon\">content_copy</mat-icon>\r\n</button>\r\n<button mat-icon-button *ngIf=\"clearContent && isHovered\" (click)=\"onClearClick($event)\" matTooltip=\"Clear Content\" matTooltipPosition=\"above\" style=\"opacity: 1;\">\r\n <mat-icon class=\"smallIcon\">close</mat-icon>\r\n</button>\r\n<button mat-icon-button *ngIf=\"infoMessage\" (click)=\"onInfoClick($event)\" [matTooltip]=\"infoMessage\" matTooltipPosition=\"above\" style=\"opacity: 1;\">\r\n <mat-icon class=\"smallIcon\" style=\"color: steelblue;\">info</mat-icon>\r\n</button>\r\n", styles: [".smallIcon{font-size:14px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.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: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SuffixComponent, decorators: [{
47
+ type: Component,
48
+ args: [{ selector: 'spa-suffix', template: "<label *ngIf=\"label\">&nbsp; {{label}}</label>\r\n<button mat-icon-button *ngIf=\"copyContent && isHovered\" (click)=\"onCopyClick($event)\" matTooltip=\"Copy Content\" matTooltipPosition=\"above\" style=\"opacity: 1;\">\r\n <mat-icon class=\"smallIcon\">content_copy</mat-icon>\r\n</button>\r\n<button mat-icon-button *ngIf=\"clearContent && isHovered\" (click)=\"onClearClick($event)\" matTooltip=\"Clear Content\" matTooltipPosition=\"above\" style=\"opacity: 1;\">\r\n <mat-icon class=\"smallIcon\">close</mat-icon>\r\n</button>\r\n<button mat-icon-button *ngIf=\"infoMessage\" (click)=\"onInfoClick($event)\" [matTooltip]=\"infoMessage\" matTooltipPosition=\"above\" style=\"opacity: 1;\">\r\n <mat-icon class=\"smallIcon\" style=\"color: steelblue;\">info</mat-icon>\r\n</button>\r\n", styles: [".smallIcon{font-size:14px}\n"] }]
49
+ }], ctorParameters: function () { return [{ type: i1.MessageService }]; }, propDecorators: { label: [{
50
+ type: Input
51
+ }], infoMessage: [{
52
+ type: Input
53
+ }], copyContent: [{
54
+ type: Input
55
+ }], isHovered: [{
56
+ type: Input
57
+ }], clearContent: [{
58
+ type: Input
59
+ }], value: [{
60
+ type: Input
61
+ }], infoClick: [{
62
+ type: Output
63
+ }], copyClick: [{
64
+ type: Output
65
+ }], clearClick: [{
66
+ type: Output
67
+ }], valueChange: [{
68
+ type: Output
69
+ }] } });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VmZml4LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jb21wb25lbnRzL3N1ZmZpeC9zdWZmaXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvc3VmZml4L3N1ZmZpeC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBUS9FLE1BQU0sT0FBTyxlQUFlO0lBRTFCLFlBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQU96QyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUU3QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRzdCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3JDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3ZDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3RDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQWhCVyxDQUFDO0lBRXZELFFBQVE7SUFDUixDQUFDO0lBZUQsV0FBVyxDQUFDLEtBQWlCO1FBQzNCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWlCO1FBQzNCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDbEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdEMsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWlCO1FBQzVCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDOzs0R0EzQ1UsZUFBZTtnR0FBZixlQUFlLCtUQ1I1QiwyeEJBVUE7MkZERmEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxZQUFZO3FHQVdiLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lc3NhZ2Uuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS1zdWZmaXgnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdWZmaXguY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3N1ZmZpeC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFN1ZmZpeENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGluZm9NZXNzYWdlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY29weUNvbnRlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgaXNIb3ZlcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgY2xlYXJDb250ZW50OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdmFsdWU7XHJcblxyXG4gIEBPdXRwdXQoKSBpbmZvQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIGNvcHlDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBjbGVhckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgb25JbmZvQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgaWYgKHRoaXMuaW5mb01lc3NhZ2UpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5pbmZvKHRoaXMuaW5mb01lc3NhZ2UpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbmZvQ2xpY2suZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25Db3B5Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgaWYgKHRoaXMudmFsdWUpIHtcclxuICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGhpcy52YWx1ZSkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdCgnQ29waWVkJyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb3B5Q2xpY2suZW1pdCh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIG9uQ2xlYXJDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLnZhbHVlID0gJyc7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLmNsZWFyQ2xpY2suZW1pdCgpO1xyXG4gIH1cclxufVxyXG4iLCI8bGFiZWwgKm5nSWY9XCJsYWJlbFwiPiZuYnNwOyB7e2xhYmVsfX08L2xhYmVsPlxyXG48YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAqbmdJZj1cImNvcHlDb250ZW50ICYmIGlzSG92ZXJlZFwiIChjbGljayk9XCJvbkNvcHlDbGljaygkZXZlbnQpXCIgbWF0VG9vbHRpcD1cIkNvcHkgQ29udGVudFwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCIgc3R5bGU9XCJvcGFjaXR5OiAxO1wiPlxyXG4gIDxtYXQtaWNvbiBjbGFzcz1cInNtYWxsSWNvblwiPmNvbnRlbnRfY29weTwvbWF0LWljb24+XHJcbjwvYnV0dG9uPlxyXG48YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAqbmdJZj1cImNsZWFyQ29udGVudCAmJiBpc0hvdmVyZWRcIiAoY2xpY2spPVwib25DbGVhckNsaWNrKCRldmVudClcIiBtYXRUb29sdGlwPVwiQ2xlYXIgQ29udGVudFwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCIgc3R5bGU9XCJvcGFjaXR5OiAxO1wiPlxyXG4gIDxtYXQtaWNvbiBjbGFzcz1cInNtYWxsSWNvblwiPmNsb3NlPC9tYXQtaWNvbj5cclxuPC9idXR0b24+XHJcbjxidXR0b24gbWF0LWljb24tYnV0dG9uICpuZ0lmPVwiaW5mb01lc3NhZ2VcIiAoY2xpY2spPVwib25JbmZvQ2xpY2soJGV2ZW50KVwiIFttYXRUb29sdGlwXT1cImluZm9NZXNzYWdlXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIiBzdHlsZT1cIm9wYWNpdHk6IDE7XCI+XHJcbiAgPG1hdC1pY29uIGNsYXNzPVwic21hbGxJY29uXCIgc3R5bGU9XCJjb2xvcjogc3RlZWxibHVlO1wiPmluZm88L21hdC1pY29uPlxyXG48L2J1dHRvbj5cclxuIl19