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
@@ -9,14 +9,14 @@ export class TenantsComponent {
9
9
  this.dataService = dataService;
10
10
  this.messageService = messageService;
11
11
  this.authService = authService;
12
- this.tenantFormConfig = {
12
+ this.formConfig = {
13
13
  fields: [
14
14
  { name: 'name', type: 'text', required: true, min: 2 },
15
15
  { name: 'planID', alias: 'Plan', type: 'number', required: true },
16
16
  ],
17
17
  reset: true,
18
18
  };
19
- this.tenantsTableConfig = {
19
+ this.config = {
20
20
  showFilter: true,
21
21
  minColumns: ['name'],
22
22
  flatButtons: true,
@@ -26,22 +26,22 @@ export class TenantsComponent {
26
26
  { name: 'planName', alias: 'Plan', type: 'text' },
27
27
  ],
28
28
  buttons: [
29
- { name: 'create', display: 'Create', dialog: true, action: { url: 'tenants?action=create', method: 'post' } },
29
+ { name: 'create', display: 'Create', dialog: true, action: { url: 'tenant/tenants?action=create', method: 'post' } },
30
30
  { name: 'view', dialog: true },
31
- { name: 'edit', dialog: true, action: { url: 'tenants?action=edit', method: 'post' } },
32
- { name: 'delete', dialog: true, action: { url: 'tenants?action=delete', method: 'post' } },
31
+ { name: 'edit', dialog: true, action: { url: 'tenant/tenants?action=edit', method: 'post' } },
32
+ { name: 'delete', dialog: true, action: { url: 'tenant/tenants?action=delete', method: 'post' } },
33
33
  ],
34
- loadAction: { url: 'tenants/all_tenants/x' },
35
- formConfig: this.tenantFormConfig
34
+ loadAction: { url: 'tenant/all_tenants/x' },
35
+ formConfig: this.formConfig
36
36
  };
37
37
  }
38
38
  ngOnInit() {
39
39
  }
40
40
  }
41
41
  TenantsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TenantsComponent, deps: [{ token: i1.DataServiceLib }, { token: i2.MessageService }, { token: i3.AuthService }], target: i0.ɵɵFactoryTarget.Component });
42
- TenantsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TenantsComponent, selector: "spa-tenants", ngImport: i0, template: "<h4>Tenants</h4>\r\n<hr>\r\n\r\n\r\n<div class=\" mt-3\" style=\" font-size: 14px;\">\r\n <spa-table [config]=\"tenantsTableConfig\" ></spa-table>\r\n</div>\r\n", styles: [".title{margin-top:1em;font-size:larger;font-weight:300}\n"], dependencies: [{ kind: "component", type: i4.TableComponent, selector: "spa-table", inputs: ["data", "tileData", "config", "reload", "activeTab", "inTab"], outputs: ["dataLoad", "actionSuccess", "refreshClick", "searchClick", "createClick", "actionClick", "inputChange", "actionResponse"] }] });
42
+ TenantsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TenantsComponent, selector: "spa-tenants", ngImport: i0, template: "<h4>Tenants</h4>\n<hr>\n\n\n<div class=\" mt-3\" style=\" font-size: 14px;\">\n <spa-table [config]=\"config\" ></spa-table>\n</div>\n", styles: [".title{margin-top:1em;font-size:larger;font-weight:300}\n"], dependencies: [{ kind: "component", type: i4.TableComponent, selector: "spa-table", inputs: ["hideTitle", "data", "config", "reload"], outputs: ["dataLoad", "refreshClick", "searchClick", "createClick", "actionClick", "inputChange"] }] });
43
43
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TenantsComponent, decorators: [{
44
44
  type: Component,
45
- args: [{ selector: 'spa-tenants', template: "<h4>Tenants</h4>\r\n<hr>\r\n\r\n\r\n<div class=\" mt-3\" style=\" font-size: 14px;\">\r\n <spa-table [config]=\"tenantsTableConfig\" ></spa-table>\r\n</div>\r\n", styles: [".title{margin-top:1em;font-size:larger;font-weight:300}\n"] }]
45
+ args: [{ selector: 'spa-tenants', template: "<h4>Tenants</h4>\n<hr>\n\n\n<div class=\" mt-3\" style=\" font-size: 14px;\">\n <spa-table [config]=\"config\" ></spa-table>\n</div>\n", styles: [".title{margin-top:1em;font-size:larger;font-weight:300}\n"] }]
46
46
  }], ctorParameters: function () { return [{ type: i1.DataServiceLib }, { type: i2.MessageService }, { type: i3.AuthService }]; } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvcGFnZXMvdGVuYW50cy90ZW5hbnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9wYWdlcy90ZW5hbnRzL3RlbmFudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBV2xELE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsWUFBb0IsV0FBMkIsRUFBVSxjQUE4QixFQUFTLFdBQXdCO1FBQXBHLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFTLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBT3hILHFCQUFnQixHQUFlO1lBRTdCLE1BQU0sRUFBRTtnQkFDTixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RELEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTthQUNsRTtZQUVELEtBQUssRUFBRSxJQUFJO1NBRVosQ0FBQTtRQUVELHVCQUFrQixHQUFnQjtZQUNoQyxVQUFVLEVBQUUsSUFBSTtZQUNoQixVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDcEIsV0FBVyxFQUFFLElBQUk7WUFFakIsT0FBTyxFQUFFO2dCQUNQLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7Z0JBQ2pELEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO2dCQUM5QixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFHLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO2FBRW5EO1lBRUQsT0FBTyxFQUFFO2dCQUNQLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBQztnQkFDNUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQzlCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQ3RGLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUU7YUFDM0Y7WUFFRCxVQUFVLEVBQUUsRUFBRSxHQUFHLEVBQUUsdUJBQXVCLEVBQUU7WUFFNUMsVUFBVSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7U0FFbEMsQ0FBQTtJQXpDMkgsQ0FBQztJQUU3SCxRQUFRO0lBQ1IsQ0FBQzs7NkdBTFUsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsbURDWDdCLG1LQU9BOzJGRElhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2VMaWIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhbGliLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtQ29uZmlnLCBUYWJsZUNvbmZpZywgQXBpUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9jbGFzc2VzL0NsYXNzZXMnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3BhLXRlbmFudHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZW5hbnRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90ZW5hbnRzLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVuYW50c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlTGliLCBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSwgcHVibGljIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcblxyXG5cclxuICB0ZW5hbnRGb3JtQ29uZmlnOiBGb3JtQ29uZmlnID0ge1xyXG5cclxuICAgIGZpZWxkczogW1xyXG4gICAgICB7IG5hbWU6ICduYW1lJywgdHlwZTogJ3RleHQnLCByZXF1aXJlZDogdHJ1ZSwgbWluOiAyIH0sXHJcbiAgICAgIHsgbmFtZTogJ3BsYW5JRCcsIGFsaWFzIDonUGxhbicsIHR5cGU6ICdudW1iZXInLCByZXF1aXJlZDogdHJ1ZSB9LFxyXG4gICAgXSxcclxuXHJcbiAgICByZXNldDogdHJ1ZSxcclxuXHJcbiAgfVxyXG5cclxuICB0ZW5hbnRzVGFibGVDb25maWc6IFRhYmxlQ29uZmlnID0ge1xyXG4gICAgc2hvd0ZpbHRlcjogdHJ1ZSxcclxuICAgIG1pbkNvbHVtbnM6IFsnbmFtZSddLFxyXG4gICAgZmxhdEJ1dHRvbnM6IHRydWUsXHJcblxyXG4gICAgY29sdW1uczogW1xyXG4gICAgICB7IG5hbWU6ICd0ZW5hbnRJRCcsIHR5cGU6ICdudW1iZXInLCBhbGlhczogJ0lEJyB9LFxyXG4gICAgICB7IG5hbWU6ICduYW1lJywgdHlwZTogJ3RleHQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ3BsYW5OYW1lJywgYWxpYXMgOiAnUGxhbicsIHR5cGU6ICd0ZXh0JyB9LFxyXG5cclxuICAgIF0sXHJcblxyXG4gICAgYnV0dG9uczogW1xyXG4gICAgICB7IG5hbWU6ICdjcmVhdGUnLCBkaXNwbGF5OiAnQ3JlYXRlJywgZGlhbG9nOiB0cnVlLCBhY3Rpb246IHsgdXJsOiAndGVuYW50cz9hY3Rpb249Y3JlYXRlJywgbWV0aG9kOiAncG9zdCcgfX0sXHJcbiAgICAgIHsgbmFtZTogJ3ZpZXcnLCBkaWFsb2c6IHRydWUgfSxcclxuICAgICAgeyBuYW1lOiAnZWRpdCcsIGRpYWxvZzogdHJ1ZSwgYWN0aW9uOiB7IHVybDogJ3RlbmFudHM/YWN0aW9uPWVkaXQnLCBtZXRob2Q6ICdwb3N0JyB9IH0sXHJcbiAgICAgIHsgbmFtZTogJ2RlbGV0ZScsIGRpYWxvZzogdHJ1ZSwgYWN0aW9uOiB7IHVybDogJ3RlbmFudHM/YWN0aW9uPWRlbGV0ZScsIG1ldGhvZDogJ3Bvc3QnIH0gfSxcclxuICAgIF0sXHJcblxyXG4gICAgbG9hZEFjdGlvbjogeyB1cmw6ICd0ZW5hbnRzL2FsbF90ZW5hbnRzL3gnIH0sXHJcblxyXG4gICAgZm9ybUNvbmZpZzogdGhpcy50ZW5hbnRGb3JtQ29uZmlnXHJcblxyXG4gIH1cclxufVxyXG4iLCI8aDQ+VGVuYW50czwvaDQ+XHJcbjxocj5cclxuXHJcblxyXG48ZGl2IGNsYXNzPVwiIG10LTNcIiBzdHlsZT1cIiBmb250LXNpemU6IDE0cHg7XCI+XHJcbiAgPHNwYS10YWJsZSBbY29uZmlnXT1cInRlbmFudHNUYWJsZUNvbmZpZ1wiID48L3NwYS10YWJsZT5cclxuPC9kaXY+XHJcbiJdfQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvcGFnZXMvdGVuYW50cy90ZW5hbnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9wYWdlcy90ZW5hbnRzL3RlbmFudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBV2xELE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsWUFBb0IsV0FBMkIsRUFBVSxjQUE4QixFQUFTLFdBQXdCO1FBQXBHLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFTLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBT3hILGVBQVUsR0FBZTtZQUV2QixNQUFNLEVBQUU7Z0JBQ04sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUN0RCxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7YUFDbEU7WUFFRCxLQUFLLEVBQUUsSUFBSTtTQUVaLENBQUE7UUFFRCxXQUFNLEdBQWdCO1lBQ3BCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUNwQixXQUFXLEVBQUUsSUFBSTtZQUVqQixPQUFPLEVBQUU7Z0JBQ1AsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtnQkFDakQsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7Z0JBQzlCLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUcsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7YUFFbkQ7WUFFRCxPQUFPLEVBQUU7Z0JBQ1AsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFDO2dCQUNuSCxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDOUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDN0YsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRTthQUNsRztZQUVELFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxzQkFBc0IsRUFBRTtZQUUzQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FFNUIsQ0FBQTtJQXpDMkgsQ0FBQztJQUU3SCxRQUFRO0lBQ1IsQ0FBQzs7NkdBTFUsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsbURDWDdCLHlJQU9BOzJGRElhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2VMaWIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhbGliLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtQ29uZmlnLCBUYWJsZUNvbmZpZywgQXBpUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9jbGFzc2VzL0NsYXNzZXMnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3BhLXRlbmFudHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZW5hbnRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90ZW5hbnRzLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVuYW50c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlTGliLCBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSwgcHVibGljIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBmb3JtQ29uZmlnOiBGb3JtQ29uZmlnID0ge1xyXG5cclxuICAgIGZpZWxkczogW1xyXG4gICAgICB7IG5hbWU6ICduYW1lJywgdHlwZTogJ3RleHQnLCByZXF1aXJlZDogdHJ1ZSwgbWluOiAyIH0sXHJcbiAgICAgIHsgbmFtZTogJ3BsYW5JRCcsIGFsaWFzIDonUGxhbicsIHR5cGU6ICdudW1iZXInLCByZXF1aXJlZDogdHJ1ZSB9LFxyXG4gICAgXSxcclxuXHJcbiAgICByZXNldDogdHJ1ZSxcclxuXHJcbiAgfVxyXG5cclxuICBjb25maWc6IFRhYmxlQ29uZmlnID0ge1xyXG4gICAgc2hvd0ZpbHRlcjogdHJ1ZSxcclxuICAgIG1pbkNvbHVtbnM6IFsnbmFtZSddLFxyXG4gICAgZmxhdEJ1dHRvbnM6IHRydWUsXHJcblxyXG4gICAgY29sdW1uczogW1xyXG4gICAgICB7IG5hbWU6ICd0ZW5hbnRJRCcsIHR5cGU6ICdudW1iZXInLCBhbGlhczogJ0lEJyB9LFxyXG4gICAgICB7IG5hbWU6ICduYW1lJywgdHlwZTogJ3RleHQnIH0sXHJcbiAgICAgIHsgbmFtZTogJ3BsYW5OYW1lJywgYWxpYXMgOiAnUGxhbicsIHR5cGU6ICd0ZXh0JyB9LFxyXG5cclxuICAgIF0sXHJcblxyXG4gICAgYnV0dG9uczogW1xyXG4gICAgICB7IG5hbWU6ICdjcmVhdGUnLCBkaXNwbGF5OiAnQ3JlYXRlJywgZGlhbG9nOiB0cnVlLCBhY3Rpb246IHsgdXJsOiAndGVuYW50L3RlbmFudHM/YWN0aW9uPWNyZWF0ZScsIG1ldGhvZDogJ3Bvc3QnIH19LFxyXG4gICAgICB7IG5hbWU6ICd2aWV3JywgZGlhbG9nOiB0cnVlIH0sXHJcbiAgICAgIHsgbmFtZTogJ2VkaXQnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICd0ZW5hbnQvdGVuYW50cz9hY3Rpb249ZWRpdCcsIG1ldGhvZDogJ3Bvc3QnIH0gfSxcclxuICAgICAgeyBuYW1lOiAnZGVsZXRlJywgZGlhbG9nOiB0cnVlLCBhY3Rpb246IHsgdXJsOiAndGVuYW50L3RlbmFudHM/YWN0aW9uPWRlbGV0ZScsIG1ldGhvZDogJ3Bvc3QnIH0gfSxcclxuICAgIF0sXHJcblxyXG4gICAgbG9hZEFjdGlvbjogeyB1cmw6ICd0ZW5hbnQvYWxsX3RlbmFudHMveCcgfSxcclxuXHJcbiAgICBmb3JtQ29uZmlnOiB0aGlzLmZvcm1Db25maWdcclxuXHJcbiAgfVxyXG59XHJcbiIsIjxoND5UZW5hbnRzPC9oND5cbjxocj5cblxuXG48ZGl2IGNsYXNzPVwiIG10LTNcIiBzdHlsZT1cIiBmb250LXNpemU6IDE0cHg7XCI+XG4gIDxzcGEtdGFibGUgW2NvbmZpZ109XCJjb25maWdcIiA+PC9zcGEtdGFibGU+XG48L2Rpdj5cbiJdfQ==
@@ -68,7 +68,7 @@ export class transactDialog {
68
68
  }
69
69
  }
70
70
  transactDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: transactDialog, deps: [{ token: i1.LoaderService }, { token: i2.MessageService }, { token: i3.DataServiceLib }, { token: i4.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
71
- transactDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: transactDialog, selector: "app-quanityDiag", ngImport: i0, template: "\r\n<h2 mat-dialog-title>{{action | titlecase}}</h2>\r\n\r\n\r\n<mat-dialog-content class=\"mat-typography\">\r\n\r\n <div class=\"tin-input\" style=\"font-size:14px\">\r\n\r\n <spa-select *ngIf=\"action == 'transfer'\" [(value)]=\"txn.destinationID\" display=\"Transfer to\" [options]=\"accounts\" optionDisplay=\"name\" optionValue=\"accountID\"></spa-select>\r\n\r\n <spa-date display=\"Date\" [(value)]=\"txn.date\"></spa-date>\r\n <spa-money display=\"Amount\" [(value)]=\"txn.amount\"></spa-money>\r\n <spa-text display=\"Narration\" [(value)]=\"txn.narration\"></spa-text>\r\n <spa-select display=\"Category\" [(value)]=\"txn.categoryID\" [options]=\"categories\" optionDisplay=\"name\" optionValue=\"listItemID\" [defaultFirstValue]=\"true\"></spa-select>\r\n\r\n\r\n\r\n </div>\r\n\r\n</mat-dialog-content>\r\n\r\n\r\n<mat-dialog-actions>\r\n<button mat-button [disabled]=\"isProcessing\" (click)=\"submit()\" cdkFocusInitial>Submit</button>\r\n<button mat-button [disabled]=\"isProcessing\" cdkFocusInitial mat-dialog-close>Cancel</button>\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n", styles: [".info{color:#4682b4;margin-top:5px;margin-right:5px;font-size:18px}.sign{margin-top:5px;font-size:18px}.actionbuttons{gap:1px}button{padding-left:7px}.mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\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: "directive", type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i7.TextComponent, selector: "spa-text", inputs: ["appearance", "readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "copyContent", "clearContent", "options", "optionDisplay", "optionValue", "loadAction", "required", "min", "max", "regex", "suffix", "infoMessage"], outputs: ["valueChange", "leave", "enterPress"] }, { kind: "component", type: i8.DateComponent, selector: "spa-date", inputs: ["required", "min", "max", "readonly", "hint", "value", "display", "placeholder", "width", "infoMessage"], outputs: ["valueChange", "infoClick"] }, { kind: "component", type: i9.SelectComponent, selector: "spa-select", inputs: ["detailsConfig"] }, { kind: "component", type: i10.MoneyComponent, selector: "spa-money", inputs: ["readonly", "hint", "display", "placeholder", "value", "width", "currency", "required", "min", "max", "infoMessage", "copyContent", "clearContent", "suffix"], outputs: ["valueChange", "leave", "enterPress", "infoClick"] }, { kind: "pipe", type: i5.TitleCasePipe, name: "titlecase" }] });
71
+ transactDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: transactDialog, selector: "app-quanityDiag", ngImport: i0, template: "\r\n<h2 mat-dialog-title>{{action | titlecase}}</h2>\r\n\r\n\r\n<mat-dialog-content class=\"mat-typography\">\r\n\r\n <div class=\"tin-input\" style=\"font-size:14px\">\r\n\r\n <spa-select *ngIf=\"action == 'transfer'\" [(value)]=\"txn.destinationID\" display=\"Transfer to\" [options]=\"accounts\" optionDisplay=\"name\" optionValue=\"accountID\"></spa-select>\r\n\r\n <spa-date display=\"Date\" [(value)]=\"txn.date\"></spa-date>\r\n <spa-money display=\"Amount\" [(value)]=\"txn.amount\"></spa-money>\r\n <spa-text display=\"Narration\" [(value)]=\"txn.narration\"></spa-text>\r\n <spa-select display=\"Category\" [(value)]=\"txn.categoryID\" [options]=\"categories\" optionDisplay=\"name\" optionValue=\"listItemID\" [defaultFirstValue]=\"true\"></spa-select>\r\n\r\n\r\n\r\n </div>\r\n\r\n</mat-dialog-content>\r\n\r\n\r\n<mat-dialog-actions>\r\n<button mat-button [disabled]=\"isProcessing\" (click)=\"submit()\" cdkFocusInitial>Submit</button>\r\n<button mat-button [disabled]=\"isProcessing\" cdkFocusInitial mat-dialog-close>Cancel</button>\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n", styles: [".info{color:#4682b4;margin-top:5px;margin-right:5px;font-size:18px}.sign{margin-top:5px;font-size:18px}.actionbuttons{gap:1px}button{padding-left:7px}.mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\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: "directive", type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i7.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "copyContent", "options", "optionValue", "required", "min", "max", "regex", "suffix", "infoMessage"], outputs: ["valueChange", "leave", "enterPress", "infoClick"] }, { kind: "component", type: i8.DateComponent, selector: "spa-date", inputs: ["required", "min", "max", "readonly", "hint", "value", "display", "placeholder", "width", "infoMessage"], outputs: ["valueChange", "infoClick"] }, { kind: "component", type: i9.SelectComponent, selector: "spa-select", inputs: ["width", "readonly", "required", "defaultFirstValue", "readonlyMode", "hint", "placeholder", "multiple", "display", "value", "options", "masterOptions", "optionValue", "optionDisplay", "optionDisplayExtra", "nullable", "peekConfig", "infoMessage", "copyContent"], outputs: ["valueChange", "infoClick"] }, { kind: "component", type: i10.MoneyComponent, selector: "spa-money", inputs: ["readonly", "hint", "display", "placeholder", "value", "width", "currency", "required", "min", "max", "infoMessage"], outputs: ["valueChange", "leave", "enterPress", "infoClick"] }, { kind: "pipe", type: i5.TitleCasePipe, name: "titlecase" }] });
72
72
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: transactDialog, decorators: [{
73
73
  type: Component,
74
74
  args: [{ selector: 'app-quanityDiag', template: "\r\n<h2 mat-dialog-title>{{action | titlecase}}</h2>\r\n\r\n\r\n<mat-dialog-content class=\"mat-typography\">\r\n\r\n <div class=\"tin-input\" style=\"font-size:14px\">\r\n\r\n <spa-select *ngIf=\"action == 'transfer'\" [(value)]=\"txn.destinationID\" display=\"Transfer to\" [options]=\"accounts\" optionDisplay=\"name\" optionValue=\"accountID\"></spa-select>\r\n\r\n <spa-date display=\"Date\" [(value)]=\"txn.date\"></spa-date>\r\n <spa-money display=\"Amount\" [(value)]=\"txn.amount\"></spa-money>\r\n <spa-text display=\"Narration\" [(value)]=\"txn.narration\"></spa-text>\r\n <spa-select display=\"Category\" [(value)]=\"txn.categoryID\" [options]=\"categories\" optionDisplay=\"name\" optionValue=\"listItemID\" [defaultFirstValue]=\"true\"></spa-select>\r\n\r\n\r\n\r\n </div>\r\n\r\n</mat-dialog-content>\r\n\r\n\r\n<mat-dialog-actions>\r\n<button mat-button [disabled]=\"isProcessing\" (click)=\"submit()\" cdkFocusInitial>Submit</button>\r\n<button mat-button [disabled]=\"isProcessing\" cdkFocusInitial mat-dialog-close>Cancel</button>\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n", styles: [".info{color:#4682b4;margin-top:5px;margin-right:5px;font-size:18px}.sign{margin-top:5px;font-size:18px}.actionbuttons{gap:1px}button{padding-left:7px}.mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\n"] }]
@@ -93,9 +93,9 @@ export class TransactionsComponent {
93
93
  }
94
94
  }
95
95
  TransactionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TransactionsComponent, deps: [{ token: i1.DataServiceLib }, { token: i2.MessageService }, { token: i3.BreakpointObserver }, { token: i4.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
96
- TransactionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TransactionsComponent, selector: "spa-transactions", ngImport: i0, template: "<!-- <h4>Transactions ({{account?.name}})</h4>\r\n<hr> -->\r\n\r\n<div class=\"d-flex align-items-center justify-content-between mt-0\" style=\"margin-left: 10px\">\r\n\r\n <label style=\"font-size: 16px;\">Transactions ({{account?.name}})</label>\r\n\r\n <div>\r\n <button mat-mini-fab color=\"primary\" style=\"margin-right:1em;padding-left: 0;\" (click)=\"cats()\" matTooltip=\"Categories\" matTooltipPosition=\"above\"><mat-icon>category</mat-icon></button>\r\n </div>\r\n\r\n</div>\r\n<hr>\r\n\r\n<div class=\"d-flex justify-content-between\" style=\" font-size: 14px;\" >\r\n\r\n <div *ngIf=\"account\" class=\"tin-row actionbuttons\">\r\n <label style=\"margin-right: 5px;\">{{account?.currency}}</label>\r\n <label style=\"font-size: 34px;margin-right: 20px;\">{{account?.balance | currency : '' : ''}}</label>\r\n <div *ngIf=\"!smallScreen; then buttons\" ></div>\r\n </div>\r\n\r\n <div *ngIf=\"!smallScreen\">\r\n <spa-filter (refreshClick)=\"loadData()\"></spa-filter>\r\n </div>\r\n\r\n</div>\r\n\r\n<div *ngIf=\"smallScreen\" style=\"margin-bottom: 10px;\"></div>\r\n\r\n<div *ngIf=\"smallScreen; then buttons\" ></div>\r\n\r\n<ng-template #buttons >\r\n <div class=\"tin-row actionbuttons\">\r\n <button mat-stroked-button style=\"color: green;\" (click)=\"transact('income','')\"><mat-icon class=\"sign\">add</mat-icon>Income</button> <mat-icon class=\"info\">info</mat-icon>\r\n <button mat-stroked-button style=\"color: red;\" (click)=\"transact('expense','')\"><mat-icon class=\"sign\">remove</mat-icon>Expense</button> <mat-icon class=\"info\">info</mat-icon>\r\n <button mat-stroked-button style=\"color: orange;\" (click)=\"transact('transfer','')\" ><mat-icon class=\"sign\">sync_alt</mat-icon>Transfer</button> <mat-icon class=\"info\">info</mat-icon>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n\r\n<div style=\" font-size: 14px;\">\r\n <spa-table [config]=\"config\" [data]=\"transactions\" [reload]=\"reload\" (dataLoad)=\"loadData()\" (actionClick)=\"actionClicked($event)\"></spa-table>\r\n</div>\r\n", styles: [".info{color:#4682b4;margin-top:5px;margin-right:5px;font-size:18px}.sign{margin-top:5px;font-size:18px}.actionbuttons{gap:1px}button{padding-left:7px}.mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\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.FilterComponent, selector: "spa-filter", inputs: ["flatButtons", "showText", "showButton", "data"], outputs: ["refreshClick"] }, { kind: "component", type: i10.TableComponent, selector: "spa-table", inputs: ["data", "tileData", "config", "reload", "activeTab", "inTab"], outputs: ["dataLoad", "actionSuccess", "refreshClick", "searchClick", "createClick", "actionClick", "inputChange", "actionResponse"] }, { kind: "pipe", type: i5.CurrencyPipe, name: "currency" }] });
96
+ TransactionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TransactionsComponent, selector: "spa-transactions", ngImport: i0, template: "<!-- <h4>Transactions ({{account?.name}})</h4>\n<hr> -->\n\n<div class=\"d-flex align-items-center justify-content-between mt-0\" style=\"margin-left: 10px\">\n\n <label style=\"font-size: 16px;\">Transactions ({{account?.name}})</label>\n\n <div>\n <button mat-mini-fab color=\"primary\" style=\"margin-right:1em;padding-left: 0;\" (click)=\"cats()\" matTooltip=\"Categories\" matTooltipPosition=\"above\"><mat-icon>category</mat-icon></button>\n </div>\n\n</div>\n<hr>\n\n<div class=\"d-flex justify-content-between\" style=\" font-size: 14px;\" >\n\n <div *ngIf=\"account\" class=\"tin-row actionbuttons\">\n <label style=\"margin-right: 5px;\">{{account?.currency}}</label>\n <label style=\"font-size: 34px;margin-right: 20px;\">{{account?.balance | currency : '' : ''}}</label>\n <div *ngIf=\"!smallScreen; then buttons\" ></div>\n </div>\n\n <div *ngIf=\"!smallScreen\">\n <spa-filter (refreshClick)=\"loadData()\"></spa-filter>\n </div>\n\n</div>\n\n<div *ngIf=\"smallScreen\" style=\"margin-bottom: 10px;\"></div>\n\n<div *ngIf=\"smallScreen; then buttons\" ></div>\n\n<ng-template #buttons >\n <div class=\"tin-row actionbuttons\">\n <button mat-stroked-button style=\"color: green;\" (click)=\"transact('income','')\"><mat-icon class=\"sign\">add</mat-icon>Income</button> <mat-icon class=\"info\">info</mat-icon>\n <button mat-stroked-button style=\"color: red;\" (click)=\"transact('expense','')\"><mat-icon class=\"sign\">remove</mat-icon>Expense</button> <mat-icon class=\"info\">info</mat-icon>\n <button mat-stroked-button style=\"color: orange;\" (click)=\"transact('transfer','')\" ><mat-icon class=\"sign\">sync_alt</mat-icon>Transfer</button> <mat-icon class=\"info\">info</mat-icon>\n </div>\n</ng-template>\n\n\n\n<div style=\" font-size: 14px;\">\n <spa-table [config]=\"config\" [data]=\"transactions\" [reload]=\"reload\" (dataLoad)=\"loadData()\" (actionClick)=\"actionClicked($event)\"></spa-table>\n</div>\n", styles: [".info{color:#4682b4;margin-top:5px;margin-right:5px;font-size:18px}.sign{margin-top:5px;font-size:18px}.actionbuttons{gap:1px}button{padding-left:7px}.mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\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.FilterComponent, selector: "spa-filter", inputs: ["flatButtons", "showText", "showButton", "data"], outputs: ["refreshClick"] }, { kind: "component", type: i10.TableComponent, selector: "spa-table", inputs: ["hideTitle", "data", "config", "reload"], outputs: ["dataLoad", "refreshClick", "searchClick", "createClick", "actionClick", "inputChange"] }, { kind: "pipe", type: i5.CurrencyPipe, name: "currency" }] });
97
97
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TransactionsComponent, decorators: [{
98
98
  type: Component,
99
- args: [{ selector: 'spa-transactions', template: "<!-- <h4>Transactions ({{account?.name}})</h4>\r\n<hr> -->\r\n\r\n<div class=\"d-flex align-items-center justify-content-between mt-0\" style=\"margin-left: 10px\">\r\n\r\n <label style=\"font-size: 16px;\">Transactions ({{account?.name}})</label>\r\n\r\n <div>\r\n <button mat-mini-fab color=\"primary\" style=\"margin-right:1em;padding-left: 0;\" (click)=\"cats()\" matTooltip=\"Categories\" matTooltipPosition=\"above\"><mat-icon>category</mat-icon></button>\r\n </div>\r\n\r\n</div>\r\n<hr>\r\n\r\n<div class=\"d-flex justify-content-between\" style=\" font-size: 14px;\" >\r\n\r\n <div *ngIf=\"account\" class=\"tin-row actionbuttons\">\r\n <label style=\"margin-right: 5px;\">{{account?.currency}}</label>\r\n <label style=\"font-size: 34px;margin-right: 20px;\">{{account?.balance | currency : '' : ''}}</label>\r\n <div *ngIf=\"!smallScreen; then buttons\" ></div>\r\n </div>\r\n\r\n <div *ngIf=\"!smallScreen\">\r\n <spa-filter (refreshClick)=\"loadData()\"></spa-filter>\r\n </div>\r\n\r\n</div>\r\n\r\n<div *ngIf=\"smallScreen\" style=\"margin-bottom: 10px;\"></div>\r\n\r\n<div *ngIf=\"smallScreen; then buttons\" ></div>\r\n\r\n<ng-template #buttons >\r\n <div class=\"tin-row actionbuttons\">\r\n <button mat-stroked-button style=\"color: green;\" (click)=\"transact('income','')\"><mat-icon class=\"sign\">add</mat-icon>Income</button> <mat-icon class=\"info\">info</mat-icon>\r\n <button mat-stroked-button style=\"color: red;\" (click)=\"transact('expense','')\"><mat-icon class=\"sign\">remove</mat-icon>Expense</button> <mat-icon class=\"info\">info</mat-icon>\r\n <button mat-stroked-button style=\"color: orange;\" (click)=\"transact('transfer','')\" ><mat-icon class=\"sign\">sync_alt</mat-icon>Transfer</button> <mat-icon class=\"info\">info</mat-icon>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n\r\n<div style=\" font-size: 14px;\">\r\n <spa-table [config]=\"config\" [data]=\"transactions\" [reload]=\"reload\" (dataLoad)=\"loadData()\" (actionClick)=\"actionClicked($event)\"></spa-table>\r\n</div>\r\n", styles: [".info{color:#4682b4;margin-top:5px;margin-right:5px;font-size:18px}.sign{margin-top:5px;font-size:18px}.actionbuttons{gap:1px}button{padding-left:7px}.mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\n"] }]
99
+ args: [{ selector: 'spa-transactions', template: "<!-- <h4>Transactions ({{account?.name}})</h4>\n<hr> -->\n\n<div class=\"d-flex align-items-center justify-content-between mt-0\" style=\"margin-left: 10px\">\n\n <label style=\"font-size: 16px;\">Transactions ({{account?.name}})</label>\n\n <div>\n <button mat-mini-fab color=\"primary\" style=\"margin-right:1em;padding-left: 0;\" (click)=\"cats()\" matTooltip=\"Categories\" matTooltipPosition=\"above\"><mat-icon>category</mat-icon></button>\n </div>\n\n</div>\n<hr>\n\n<div class=\"d-flex justify-content-between\" style=\" font-size: 14px;\" >\n\n <div *ngIf=\"account\" class=\"tin-row actionbuttons\">\n <label style=\"margin-right: 5px;\">{{account?.currency}}</label>\n <label style=\"font-size: 34px;margin-right: 20px;\">{{account?.balance | currency : '' : ''}}</label>\n <div *ngIf=\"!smallScreen; then buttons\" ></div>\n </div>\n\n <div *ngIf=\"!smallScreen\">\n <spa-filter (refreshClick)=\"loadData()\"></spa-filter>\n </div>\n\n</div>\n\n<div *ngIf=\"smallScreen\" style=\"margin-bottom: 10px;\"></div>\n\n<div *ngIf=\"smallScreen; then buttons\" ></div>\n\n<ng-template #buttons >\n <div class=\"tin-row actionbuttons\">\n <button mat-stroked-button style=\"color: green;\" (click)=\"transact('income','')\"><mat-icon class=\"sign\">add</mat-icon>Income</button> <mat-icon class=\"info\">info</mat-icon>\n <button mat-stroked-button style=\"color: red;\" (click)=\"transact('expense','')\"><mat-icon class=\"sign\">remove</mat-icon>Expense</button> <mat-icon class=\"info\">info</mat-icon>\n <button mat-stroked-button style=\"color: orange;\" (click)=\"transact('transfer','')\" ><mat-icon class=\"sign\">sync_alt</mat-icon>Transfer</button> <mat-icon class=\"info\">info</mat-icon>\n </div>\n</ng-template>\n\n\n\n<div style=\" font-size: 14px;\">\n <spa-table [config]=\"config\" [data]=\"transactions\" [reload]=\"reload\" (dataLoad)=\"loadData()\" (actionClick)=\"actionClicked($event)\"></spa-table>\n</div>\n", styles: [".info{color:#4682b4;margin-top:5px;margin-right:5px;font-size:18px}.sign{margin-top:5px;font-size:18px}.actionbuttons{gap:1px}button{padding-left:7px}.mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\n"] }]
100
100
  }], ctorParameters: function () { return [{ type: i1.DataServiceLib }, { type: i2.MessageService }, { type: i3.BreakpointObserver }, { type: i4.MatDialog }]; } });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9wYWdlcy90cmFuc2FjdGlvbnMvdHJhbnNhY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9wYWdlcy90cmFuc2FjdGlvbnMvdHJhbnNhY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7Ozs7Ozs7Ozs7OztBQU96RixNQUFNLE9BQU8scUJBQXFCO0lBRWhDLFlBQW9CLFdBQTJCLEVBQVUsY0FBOEIsRUFBVSxrQkFBc0MsRUFBUyxNQUFpQjtRQUE3SSxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQStFakssYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBRWxCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsV0FBTSxHQUFxQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBR3pDLFdBQU0sR0FBZ0I7WUFFcEIsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFDLFdBQVcsRUFBQyxRQUFRLENBQUM7WUFDekMsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQztZQUM5QixXQUFXLEVBQUUsSUFBSTtZQUVqQixP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LENBQUE7YUFDckM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO0lBRVIsQ0FBQzs7a0hBN0VVLHFCQUFxQjtzR0FBckIscUJBQXFCLHdEQ2hCbEMsNmdFQTZDQTsyRkQ3QmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlTGliIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YWxpYi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUNvbmZpZywgTGlzdERpYWxvZ0NvbmZpZywgVGFibGVDb25maWcsIEFwaVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50U3RhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcclxuaW1wb3J0IHsgdHJhbnNhY3REaWFsb2cgfSBmcm9tICcuL3RyYW5zYWN0RGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IExpc3REaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2xpc3QtZGlhbG9nL2xpc3QtZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS10cmFuc2FjdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmFuc2FjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyYW5zYWN0aW9ucy5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlTGliLCBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSBicmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlciwgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nKSB7XHJcblxyXG4gICAgLy8gZGV0ZWN0IHNjcmVlbiBzaXplIGNoYW5nZXNcclxuICAgIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoW1wiKG1heC13aWR0aDogNjAwcHgpXCJdKS5zdWJzY3JpYmUoKHJlc3VsdDogQnJlYWtwb2ludFN0YXRlKSA9PiB7XHJcblxyXG4gICAgICBpZiAocmVzdWx0Lm1hdGNoZXMpIHtcclxuICAgICAgICB0aGlzLnNtYWxsU2NyZWVuID0gdHJ1ZVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc21hbGxTY3JlZW4gPSBmYWxzZVxyXG4gICAgICB9XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYWNjb3VudElEID0gdGhpcy5kYXRhU2VydmljZS5HZXROYXZpZ2F0aW9uVmFsdWUoKVxyXG4gICAgdGhpcy5sb2FkRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgY2F0cygpIHtcclxuXHJcbiAgICBsZXQgY29uZjogTGlzdERpYWxvZ0NvbmZpZyA9IHsgdGl0bGU6IFwiVHJhbnNhY3Rpb24gQ2F0ZWdvcmllc1wiLCBuYW1lOiAnQ2F0ZWdvcnknLCBsaXN0TmFtZTogJ1RyYW5zYWN0aW9uQ2F0ZWdvcmllcycgfVxyXG5cclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oTGlzdERpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogXCI5MDBweFwiLFxyXG4gICAgICBkYXRhOiBjb25mLFxyXG4gICAgfSk7XHJcblxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuXHJcbiAgICAgIGlmIChyZXN1bHQgPT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkRGF0YSgpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGFjdGlvbkNsaWNrZWQoeCl7XHJcblxyXG4gICAgaWYgKHgubmFtZSA9PSBcImVkaXRcIil7XHJcbiAgICAgIHRoaXMudHJhbnNhY3QoJ2VkaXQnLCB4LmRhdGEpXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbG9hZERhdGEoKXtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2FsbEFwaSh7IHVybDogJ2dlbmVyYWwvdHJhbnNhY3Rpb25zLycgKyB0aGlzLmFjY291bnRJRCB9LCcnKS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlIDogQXBpUmVzcG9uc2UpID0+IHtcclxuXHJcbiAgICAgIHRoaXMuYWNjb3VudCA9IGFwaVJlc3BvbnNlLmRhdGEuYWNjb3VudDtcclxuICAgICAgdGhpcy5hY2NvdW50cyA9IGFwaVJlc3BvbnNlLmRhdGEuYWNjb3VudHM7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25zID0gYXBpUmVzcG9uc2UuZGF0YS50cmFuc2FjdGlvbnM7XHJcbiAgICAgIHRoaXMuY2F0ZWdvcmllcyA9IGFwaVJlc3BvbnNlLmRhdGEuY2F0ZWdvcmllcztcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHRyYW5zYWN0KHgsIGRhdGEpIHtcclxuXHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKHRyYW5zYWN0RGlhbG9nLCB7XHJcbiAgICAgIHdpZHRoOiBcIjUwMHB4XCIsXHJcbiAgICAgIGRhdGE6IHsgYWN0aW9uOiB4LCBhY2NvdW50OiB0aGlzLmFjY291bnQsIGRhdGE6IGRhdGEsIGFjY291bnRzOiB0aGlzLmFjY291bnRzLCBjYXRlZ29yaWVzOiB0aGlzLmNhdGVnb3JpZXMgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcblxyXG4gICAgICBpZiAocmVzdWx0ID09ICdzdWNjZXNzJykge1xyXG4gICAgICAgIHRoaXMubG9hZERhdGEoKVxyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJVcGRhdGVkXCIpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdHJhbnNmZXIoKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgc21hbGxTY3JlZW5cclxuICBhY2NvdW50O1xyXG4gIGFjY291bnRzID0gW107XHJcbiAgdHJhbnNhY3Rpb25zID0gW107XHJcbiAgYWNjb3VudElEO1xyXG4gIGNhdGVnb3JpZXMgPSBbXTtcclxuICByZWxvYWQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuXHJcbiAgY29uZmlnOiBUYWJsZUNvbmZpZyA9IHtcclxuXHJcbiAgICBtaW5Db2x1bW5zOiBbJ2RhdGUnLCduYXJyYXRpb24nLCdhbW91bnQnXSxcclxuICAgIG1pbkJ1dHRvbnM6IFsnZWRpdCcsICdkZWxldGUnXSxcclxuICAgIGZsYXRCdXR0b25zOiB0cnVlLFxyXG5cclxuICAgIGNvbHVtbnM6IFtcclxuICAgICAgeyBuYW1lOiAnZGF0ZScsIHR5cGU6ICdkYXRlJyB9LFxyXG4gICAgICB7IG5hbWU6ICduYXJyYXRpb24nLCB0eXBlOiAndGV4dCd9LFxyXG4gICAgICB7IG5hbWU6ICdhbW91bnQnLCB0eXBlOiAnbW9uZXknLCBjb2xvcjogeyBuYW1lOiAncmVkJywgY29uZGl0aW9uOiB4ID0+IHgudHlwZSA9PSAwIH0sIGljb25zOiBbeyBuYW1lOiAnYXJyb3dfcmlnaHRfYWx0JywgY29uZGl0aW9uOiB4ID0+IHgubGluayAhPSAnJyAmJiB4LnR5cGUgPT0gMCB9LCB7IG5hbWU6ICdrZXlib2FyZF9iYWNrc3BhY2UnLCBjb25kaXRpb246IHggPT4geC5saW5rICE9ICcnICYmIHgudHlwZSA9PSAxIH1dIH0sXHJcbiAgICAgIHsgbmFtZTogJ2NhdGVnb3J5TmFtZScsYWxpYXMgOiAnQ2F0ZWdvcnknLCB0eXBlOiAndGV4dCcgfSxcclxuICAgIF0sXHJcblxyXG4gICAgYnV0dG9uczogW1xyXG5cclxuICAgICAgeyBuYW1lOiAnZWRpdCcsIGRpc2FibGVkOiB4ID0+IHgubGluayAhPSAnJyAmJiB4LnR5cGUgPT0gMSB9LFxyXG4gICAgICB7IG5hbWU6ICdkZWxldGUnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICdnZW5lcmFsL3RyYW5zYWN0aW9ucz9hY3Rpb249ZGVsZXRlJywgbWV0aG9kOiAncG9zdCcgfSwgZGlzYWJsZWQgOiB4ID0+IHgubGluayAhPSAnJyAmJiB4LnR5cGUgPT0gMX0sXHJcbiAgICBdLFxyXG5cclxuICB9XHJcblxyXG59XHJcbiIsIjwhLS0gPGg0PlRyYW5zYWN0aW9ucyAoe3thY2NvdW50Py5uYW1lfX0pPC9oND5cclxuPGhyPiAtLT5cclxuXHJcbjxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTBcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAxMHB4XCI+XHJcblxyXG4gIDxsYWJlbCBzdHlsZT1cImZvbnQtc2l6ZTogMTZweDtcIj5UcmFuc2FjdGlvbnMgKHt7YWNjb3VudD8ubmFtZX19KTwvbGFiZWw+XHJcblxyXG4gIDxkaXY+XHJcbiAgICA8YnV0dG9uIG1hdC1taW5pLWZhYiBjb2xvcj1cInByaW1hcnlcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDoxZW07cGFkZGluZy1sZWZ0OiAwO1wiIChjbGljayk9XCJjYXRzKClcIiBtYXRUb29sdGlwPVwiQ2F0ZWdvcmllc1wiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCI+PG1hdC1pY29uPmNhdGVnb3J5PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG48aHI+XHJcblxyXG48ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCIgc3R5bGU9XCIgZm9udC1zaXplOiAxNHB4O1wiID5cclxuXHJcbiAgPGRpdiAqbmdJZj1cImFjY291bnRcIiBjbGFzcz1cInRpbi1yb3cgYWN0aW9uYnV0dG9uc1wiPlxyXG4gICAgPGxhYmVsIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA1cHg7XCI+e3thY2NvdW50Py5jdXJyZW5jeX19PC9sYWJlbD5cclxuICAgIDxsYWJlbCBzdHlsZT1cImZvbnQtc2l6ZTogMzRweDttYXJnaW4tcmlnaHQ6IDIwcHg7XCI+e3thY2NvdW50Py5iYWxhbmNlIHwgY3VycmVuY3kgOiAnJyA6ICcnfX08L2xhYmVsPlxyXG4gICAgPGRpdiAqbmdJZj1cIiFzbWFsbFNjcmVlbjsgdGhlbiBidXR0b25zXCIgPjwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwiIXNtYWxsU2NyZWVuXCI+XHJcbiAgICA8c3BhLWZpbHRlciAocmVmcmVzaENsaWNrKT1cImxvYWREYXRhKClcIj48L3NwYS1maWx0ZXI+XHJcbiAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJzbWFsbFNjcmVlblwiIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMTBweDtcIj48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJzbWFsbFNjcmVlbjsgdGhlbiBidXR0b25zXCIgPjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNidXR0b25zID5cclxuICA8ZGl2IGNsYXNzPVwidGluLXJvdyBhY3Rpb25idXR0b25zXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBzdHlsZT1cImNvbG9yOiBncmVlbjtcIiAoY2xpY2spPVwidHJhbnNhY3QoJ2luY29tZScsJycpXCI+PG1hdC1pY29uIGNsYXNzPVwic2lnblwiPmFkZDwvbWF0LWljb24+SW5jb21lPC9idXR0b24+IDxtYXQtaWNvbiBjbGFzcz1cImluZm9cIj5pbmZvPC9tYXQtaWNvbj5cclxuICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIHN0eWxlPVwiY29sb3I6IHJlZDtcIiAoY2xpY2spPVwidHJhbnNhY3QoJ2V4cGVuc2UnLCcnKVwiPjxtYXQtaWNvbiBjbGFzcz1cInNpZ25cIj5yZW1vdmU8L21hdC1pY29uPkV4cGVuc2U8L2J1dHRvbj4gPG1hdC1pY29uIGNsYXNzPVwiaW5mb1wiPmluZm88L21hdC1pY29uPlxyXG4gICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gc3R5bGU9XCJjb2xvcjogb3JhbmdlO1wiIChjbGljayk9XCJ0cmFuc2FjdCgndHJhbnNmZXInLCcnKVwiID48bWF0LWljb24gY2xhc3M9XCJzaWduXCI+c3luY19hbHQ8L21hdC1pY29uPlRyYW5zZmVyPC9idXR0b24+IDxtYXQtaWNvbiBjbGFzcz1cImluZm9cIj5pbmZvPC9tYXQtaWNvbj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG5cclxuPGRpdiBzdHlsZT1cIiBmb250LXNpemU6IDE0cHg7XCI+XHJcbiAgPHNwYS10YWJsZSBbY29uZmlnXT1cImNvbmZpZ1wiIFtkYXRhXT1cInRyYW5zYWN0aW9uc1wiIFtyZWxvYWRdPVwicmVsb2FkXCIgKGRhdGFMb2FkKT1cImxvYWREYXRhKClcIiAoYWN0aW9uQ2xpY2spPVwiYWN0aW9uQ2xpY2tlZCgkZXZlbnQpXCI+PC9zcGEtdGFibGU+XHJcbjwvZGl2PlxyXG4iXX0=
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9wYWdlcy90cmFuc2FjdGlvbnMvdHJhbnNhY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9wYWdlcy90cmFuc2FjdGlvbnMvdHJhbnNhY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7Ozs7Ozs7Ozs7OztBQU96RixNQUFNLE9BQU8scUJBQXFCO0lBRWhDLFlBQW9CLFdBQTJCLEVBQVUsY0FBOEIsRUFBVSxrQkFBc0MsRUFBUyxNQUFpQjtRQUE3SSxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQStFakssYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBRWxCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsV0FBTSxHQUFxQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBR3pDLFdBQU0sR0FBZ0I7WUFFcEIsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFDLFdBQVcsRUFBQyxRQUFRLENBQUM7WUFDekMsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQztZQUM5QixXQUFXLEVBQUUsSUFBSTtZQUVqQixP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LENBQUE7YUFDckM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO0lBRVIsQ0FBQzs7a0hBN0VVLHFCQUFxQjtzR0FBckIscUJBQXFCLHdEQ2hCbEMsbTdEQTZDQTsyRkQ3QmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlTGliIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YWxpYi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUNvbmZpZywgTGlzdERpYWxvZ0NvbmZpZywgVGFibGVDb25maWcsIEFwaVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50U3RhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcclxuaW1wb3J0IHsgdHJhbnNhY3REaWFsb2cgfSBmcm9tICcuL3RyYW5zYWN0RGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IExpc3REaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2xpc3QtZGlhbG9nL2xpc3QtZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS10cmFuc2FjdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmFuc2FjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyYW5zYWN0aW9ucy5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlTGliLCBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSBicmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlciwgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nKSB7XHJcblxyXG4gICAgLy8gZGV0ZWN0IHNjcmVlbiBzaXplIGNoYW5nZXNcclxuICAgIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoW1wiKG1heC13aWR0aDogNjAwcHgpXCJdKS5zdWJzY3JpYmUoKHJlc3VsdDogQnJlYWtwb2ludFN0YXRlKSA9PiB7XHJcblxyXG4gICAgICBpZiAocmVzdWx0Lm1hdGNoZXMpIHtcclxuICAgICAgICB0aGlzLnNtYWxsU2NyZWVuID0gdHJ1ZVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc21hbGxTY3JlZW4gPSBmYWxzZVxyXG4gICAgICB9XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYWNjb3VudElEID0gdGhpcy5kYXRhU2VydmljZS5HZXROYXZpZ2F0aW9uVmFsdWUoKVxyXG4gICAgdGhpcy5sb2FkRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgY2F0cygpIHtcclxuXHJcbiAgICBsZXQgY29uZjogTGlzdERpYWxvZ0NvbmZpZyA9IHsgdGl0bGU6IFwiVHJhbnNhY3Rpb24gQ2F0ZWdvcmllc1wiLCBuYW1lOiAnQ2F0ZWdvcnknLCBsaXN0TmFtZTogJ1RyYW5zYWN0aW9uQ2F0ZWdvcmllcycgfVxyXG5cclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oTGlzdERpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogXCI5MDBweFwiLFxyXG4gICAgICBkYXRhOiBjb25mLFxyXG4gICAgfSk7XHJcblxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuXHJcbiAgICAgIGlmIChyZXN1bHQgPT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkRGF0YSgpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGFjdGlvbkNsaWNrZWQoeCl7XHJcblxyXG4gICAgaWYgKHgubmFtZSA9PSBcImVkaXRcIil7XHJcbiAgICAgIHRoaXMudHJhbnNhY3QoJ2VkaXQnLCB4LmRhdGEpXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbG9hZERhdGEoKXtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2FsbEFwaSh7IHVybDogJ2dlbmVyYWwvdHJhbnNhY3Rpb25zLycgKyB0aGlzLmFjY291bnRJRCB9LCcnKS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlIDogQXBpUmVzcG9uc2UpID0+IHtcclxuXHJcbiAgICAgIHRoaXMuYWNjb3VudCA9IGFwaVJlc3BvbnNlLmRhdGEuYWNjb3VudDtcclxuICAgICAgdGhpcy5hY2NvdW50cyA9IGFwaVJlc3BvbnNlLmRhdGEuYWNjb3VudHM7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25zID0gYXBpUmVzcG9uc2UuZGF0YS50cmFuc2FjdGlvbnM7XHJcbiAgICAgIHRoaXMuY2F0ZWdvcmllcyA9IGFwaVJlc3BvbnNlLmRhdGEuY2F0ZWdvcmllcztcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHRyYW5zYWN0KHgsIGRhdGEpIHtcclxuXHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKHRyYW5zYWN0RGlhbG9nLCB7XHJcbiAgICAgIHdpZHRoOiBcIjUwMHB4XCIsXHJcbiAgICAgIGRhdGE6IHsgYWN0aW9uOiB4LCBhY2NvdW50OiB0aGlzLmFjY291bnQsIGRhdGE6IGRhdGEsIGFjY291bnRzOiB0aGlzLmFjY291bnRzLCBjYXRlZ29yaWVzOiB0aGlzLmNhdGVnb3JpZXMgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcblxyXG4gICAgICBpZiAocmVzdWx0ID09ICdzdWNjZXNzJykge1xyXG4gICAgICAgIHRoaXMubG9hZERhdGEoKVxyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJVcGRhdGVkXCIpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdHJhbnNmZXIoKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgc21hbGxTY3JlZW5cclxuICBhY2NvdW50O1xyXG4gIGFjY291bnRzID0gW107XHJcbiAgdHJhbnNhY3Rpb25zID0gW107XHJcbiAgYWNjb3VudElEO1xyXG4gIGNhdGVnb3JpZXMgPSBbXTtcclxuICByZWxvYWQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuXHJcbiAgY29uZmlnOiBUYWJsZUNvbmZpZyA9IHtcclxuXHJcbiAgICBtaW5Db2x1bW5zOiBbJ2RhdGUnLCduYXJyYXRpb24nLCdhbW91bnQnXSxcclxuICAgIG1pbkJ1dHRvbnM6IFsnZWRpdCcsICdkZWxldGUnXSxcclxuICAgIGZsYXRCdXR0b25zOiB0cnVlLFxyXG5cclxuICAgIGNvbHVtbnM6IFtcclxuICAgICAgeyBuYW1lOiAnZGF0ZScsIHR5cGU6ICdkYXRlJyB9LFxyXG4gICAgICB7IG5hbWU6ICduYXJyYXRpb24nLCB0eXBlOiAndGV4dCd9LFxyXG4gICAgICB7IG5hbWU6ICdhbW91bnQnLCB0eXBlOiAnbW9uZXknLCBjb2xvcjogeyBuYW1lOiAncmVkJywgY29uZGl0aW9uOiB4ID0+IHgudHlwZSA9PSAwIH0sIGljb25zOiBbeyBuYW1lOiAnYXJyb3dfcmlnaHRfYWx0JywgY29uZGl0aW9uOiB4ID0+IHgubGluayAhPSAnJyAmJiB4LnR5cGUgPT0gMCB9LCB7IG5hbWU6ICdrZXlib2FyZF9iYWNrc3BhY2UnLCBjb25kaXRpb246IHggPT4geC5saW5rICE9ICcnICYmIHgudHlwZSA9PSAxIH1dIH0sXHJcbiAgICAgIHsgbmFtZTogJ2NhdGVnb3J5TmFtZScsYWxpYXMgOiAnQ2F0ZWdvcnknLCB0eXBlOiAndGV4dCcgfSxcclxuICAgIF0sXHJcblxyXG4gICAgYnV0dG9uczogW1xyXG5cclxuICAgICAgeyBuYW1lOiAnZWRpdCcsIGRpc2FibGVkOiB4ID0+IHgubGluayAhPSAnJyAmJiB4LnR5cGUgPT0gMSB9LFxyXG4gICAgICB7IG5hbWU6ICdkZWxldGUnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICdnZW5lcmFsL3RyYW5zYWN0aW9ucz9hY3Rpb249ZGVsZXRlJywgbWV0aG9kOiAncG9zdCcgfSwgZGlzYWJsZWQgOiB4ID0+IHgubGluayAhPSAnJyAmJiB4LnR5cGUgPT0gMX0sXHJcbiAgICBdLFxyXG5cclxuICB9XHJcblxyXG59XHJcbiIsIjwhLS0gPGg0PlRyYW5zYWN0aW9ucyAoe3thY2NvdW50Py5uYW1lfX0pPC9oND5cbjxocj4gLS0+XG5cbjxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTBcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAxMHB4XCI+XG5cbiAgPGxhYmVsIHN0eWxlPVwiZm9udC1zaXplOiAxNnB4O1wiPlRyYW5zYWN0aW9ucyAoe3thY2NvdW50Py5uYW1lfX0pPC9sYWJlbD5cblxuICA8ZGl2PlxuICAgIDxidXR0b24gbWF0LW1pbmktZmFiIGNvbG9yPVwicHJpbWFyeVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OjFlbTtwYWRkaW5nLWxlZnQ6IDA7XCIgKGNsaWNrKT1cImNhdHMoKVwiIG1hdFRvb2x0aXA9XCJDYXRlZ29yaWVzXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIj48bWF0LWljb24+Y2F0ZWdvcnk8L21hdC1pY29uPjwvYnV0dG9uPlxuICA8L2Rpdj5cblxuPC9kaXY+XG48aHI+XG5cbjxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiBzdHlsZT1cIiBmb250LXNpemU6IDE0cHg7XCIgPlxuXG4gIDxkaXYgKm5nSWY9XCJhY2NvdW50XCIgY2xhc3M9XCJ0aW4tcm93IGFjdGlvbmJ1dHRvbnNcIj5cbiAgICA8bGFiZWwgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDVweDtcIj57e2FjY291bnQ/LmN1cnJlbmN5fX08L2xhYmVsPlxuICAgIDxsYWJlbCBzdHlsZT1cImZvbnQtc2l6ZTogMzRweDttYXJnaW4tcmlnaHQ6IDIwcHg7XCI+e3thY2NvdW50Py5iYWxhbmNlIHwgY3VycmVuY3kgOiAnJyA6ICcnfX08L2xhYmVsPlxuICAgIDxkaXYgKm5nSWY9XCIhc21hbGxTY3JlZW47IHRoZW4gYnV0dG9uc1wiID48L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cIiFzbWFsbFNjcmVlblwiPlxuICAgIDxzcGEtZmlsdGVyIChyZWZyZXNoQ2xpY2spPVwibG9hZERhdGEoKVwiPjwvc3BhLWZpbHRlcj5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwic21hbGxTY3JlZW5cIiBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDEwcHg7XCI+PC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJzbWFsbFNjcmVlbjsgdGhlbiBidXR0b25zXCIgPjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2J1dHRvbnMgPlxuICA8ZGl2IGNsYXNzPVwidGluLXJvdyBhY3Rpb25idXR0b25zXCI+XG4gICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gc3R5bGU9XCJjb2xvcjogZ3JlZW47XCIgKGNsaWNrKT1cInRyYW5zYWN0KCdpbmNvbWUnLCcnKVwiPjxtYXQtaWNvbiBjbGFzcz1cInNpZ25cIj5hZGQ8L21hdC1pY29uPkluY29tZTwvYnV0dG9uPiA8bWF0LWljb24gY2xhc3M9XCJpbmZvXCI+aW5mbzwvbWF0LWljb24+XG4gICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gc3R5bGU9XCJjb2xvcjogcmVkO1wiIChjbGljayk9XCJ0cmFuc2FjdCgnZXhwZW5zZScsJycpXCI+PG1hdC1pY29uIGNsYXNzPVwic2lnblwiPnJlbW92ZTwvbWF0LWljb24+RXhwZW5zZTwvYnV0dG9uPiA8bWF0LWljb24gY2xhc3M9XCJpbmZvXCI+aW5mbzwvbWF0LWljb24+XG4gICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gc3R5bGU9XCJjb2xvcjogb3JhbmdlO1wiIChjbGljayk9XCJ0cmFuc2FjdCgndHJhbnNmZXInLCcnKVwiID48bWF0LWljb24gY2xhc3M9XCJzaWduXCI+c3luY19hbHQ8L21hdC1pY29uPlRyYW5zZmVyPC9idXR0b24+IDxtYXQtaWNvbiBjbGFzcz1cImluZm9cIj5pbmZvPC9tYXQtaWNvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG5cblxuPGRpdiBzdHlsZT1cIiBmb250LXNpemU6IDE0cHg7XCI+XG4gIDxzcGEtdGFibGUgW2NvbmZpZ109XCJjb25maWdcIiBbZGF0YV09XCJ0cmFuc2FjdGlvbnNcIiBbcmVsb2FkXT1cInJlbG9hZFwiIChkYXRhTG9hZCk9XCJsb2FkRGF0YSgpXCIgKGFjdGlvbkNsaWNrKT1cImFjdGlvbkNsaWNrZWQoJGV2ZW50KVwiPjwvc3BhLXRhYmxlPlxuPC9kaXY+XG4iXX0=