@resolveio/client-lib-core 15.1.19 → 15.2.0

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 (217) hide show
  1. package/fesm2020/resolveio-client-lib-core.min.mjs +1 -0
  2. package/index.d.ts +0 -3
  3. package/package.json +1 -1
  4. package/esm2020/lib/account-manager.service.mjs +0 -222
  5. package/esm2020/lib/auth/auth-guard.service.mjs +0 -165
  6. package/esm2020/lib/auth/auth-permissions.service.mjs +0 -24
  7. package/esm2020/lib/auth/auth.service.mjs +0 -244
  8. package/esm2020/lib/auth/auth365.component.mjs +0 -44
  9. package/esm2020/lib/auth/can-deactivate-guard.service.mjs +0 -13
  10. package/esm2020/lib/auth/enroll.component.mjs +0 -81
  11. package/esm2020/lib/auth/forgot-password.component.mjs +0 -82
  12. package/esm2020/lib/core.component.mjs +0 -400
  13. package/esm2020/lib/core.module.mjs +0 -184
  14. package/esm2020/lib/core.service.mjs +0 -89
  15. package/esm2020/lib/directive/focus.mjs +0 -22
  16. package/esm2020/lib/directive/scroll.mjs +0 -55
  17. package/esm2020/lib/home/home.component.mjs +0 -77
  18. package/esm2020/lib/logger/logger.component.mjs +0 -220
  19. package/esm2020/lib/models/app-status.model.mjs +0 -2
  20. package/esm2020/lib/models/collection-document.model.mjs +0 -2
  21. package/esm2020/lib/models/cron-job.model.mjs +0 -2
  22. package/esm2020/lib/models/dialog.model.mjs +0 -2
  23. package/esm2020/lib/models/file.model.mjs +0 -2
  24. package/esm2020/lib/models/log-method-latency.model.mjs +0 -2
  25. package/esm2020/lib/models/navbar-main-tab.model.mjs +0 -2
  26. package/esm2020/lib/models/pagination.model.mjs +0 -2
  27. package/esm2020/lib/models/permission.model.mjs +0 -2
  28. package/esm2020/lib/models/select-data-label.model.mjs +0 -2
  29. package/esm2020/lib/models/subscription.model.mjs +0 -2
  30. package/esm2020/lib/models/support-ticket.model.mjs +0 -2
  31. package/esm2020/lib/models/user-group.model.mjs +0 -2
  32. package/esm2020/lib/models/user.model.mjs +0 -2
  33. package/esm2020/lib/offline-db.mjs +0 -519
  34. package/esm2020/lib/offline-manager.service.mjs +0 -107
  35. package/esm2020/lib/pipes/domsanitizor.pipe.mjs +0 -28
  36. package/esm2020/lib/pipes/filter.pipe.mjs +0 -36
  37. package/esm2020/lib/pipes/json-parse.pipe.mjs +0 -29
  38. package/esm2020/lib/pipes/minus-currency.pipe.mjs +0 -16
  39. package/esm2020/lib/pipes/phone.pipe.mjs +0 -47
  40. package/esm2020/lib/pipes/pipe.module.mjs +0 -54
  41. package/esm2020/lib/pipes/reverse-list.pipe.mjs +0 -17
  42. package/esm2020/lib/pipes/titlecase.pipe.mjs +0 -22
  43. package/esm2020/lib/report-builder.permission.mjs +0 -13
  44. package/esm2020/lib/resolveio-class.mjs +0 -41
  45. package/esm2020/lib/shared/shared.module.mjs +0 -96
  46. package/esm2020/lib/socket-manager.service.mjs +0 -339
  47. package/esm2020/lib/socket.service.mjs +0 -215
  48. package/esm2020/lib/super-admin.permission.mjs +0 -9
  49. package/esm2020/lib/support-ticket/detail/support-ticket-detail.component.mjs +0 -204
  50. package/esm2020/lib/support-ticket/edit/support-ticket-edit.component.mjs +0 -122
  51. package/esm2020/lib/support-ticket/list/support-ticket-list.component.mjs +0 -137
  52. package/esm2020/lib/support-ticket/new/support-ticket-new.component.mjs +0 -115
  53. package/esm2020/lib/support-ticket/support-ticket.component.mjs +0 -63
  54. package/esm2020/lib/support-ticket/support-ticket.module.mjs +0 -50
  55. package/esm2020/lib/support-ticket/support-ticket.routing.mjs +0 -20
  56. package/esm2020/lib/support-ticket/support-ticket.service.mjs +0 -17
  57. package/esm2020/lib/token-manager.service.mjs +0 -26
  58. package/esm2020/lib/user-settings/settings/users-settings.component.mjs +0 -296
  59. package/esm2020/lib/user-settings/user-settings.component.mjs +0 -57
  60. package/esm2020/lib/user-settings/user-settings.module.mjs +0 -41
  61. package/esm2020/lib/user-settings/user-settings.permission.mjs +0 -10
  62. package/esm2020/lib/user-settings/user-settings.routing.mjs +0 -14
  63. package/esm2020/lib/user-settings/user-settings.service.mjs +0 -17
  64. package/esm2020/lib/util/action-name.helper.mjs +0 -9
  65. package/esm2020/lib/util/aws.service.mjs +0 -79
  66. package/esm2020/lib/util/common.helper.mjs +0 -161
  67. package/esm2020/lib/util/validation.service.mjs +0 -185
  68. package/esm2020/lib/util/window-resize.service.mjs +0 -24
  69. package/esm2020/lib/util/window.service.mjs +0 -16
  70. package/esm2020/lib/widgets/alert/alert.model.mjs +0 -2
  71. package/esm2020/lib/widgets/alert/alert.service.mjs +0 -78
  72. package/esm2020/lib/widgets/collapse-table/collapse-table.component.mjs +0 -79
  73. package/esm2020/lib/widgets/collapse-table/collapse-table.module.mjs +0 -34
  74. package/esm2020/lib/widgets/data-table/data-table.component.mjs +0 -77
  75. package/esm2020/lib/widgets/data-table/data-table.model.mjs +0 -2
  76. package/esm2020/lib/widgets/data-table/data-table.module.mjs +0 -41
  77. package/esm2020/lib/widgets/date-shortcut/date-shortcut.component.mjs +0 -295
  78. package/esm2020/lib/widgets/date-shortcut/date-shortcut.module.mjs +0 -32
  79. package/esm2020/lib/widgets/dialog/dialog.confirm.content.mjs +0 -63
  80. package/esm2020/lib/widgets/dialog/dialog.error.content.mjs +0 -57
  81. package/esm2020/lib/widgets/dialog/dialog.input.content.mjs +0 -271
  82. package/esm2020/lib/widgets/dialog/dialog.login.content.mjs +0 -517
  83. package/esm2020/lib/widgets/dialog/dialog.notify.content.mjs +0 -57
  84. package/esm2020/lib/widgets/dialog/dialog.register.content.mjs +0 -328
  85. package/esm2020/lib/widgets/dialog/dialog.select-array-objs.content.mjs +0 -200
  86. package/esm2020/lib/widgets/dialog/dialog.select-array.content.mjs +0 -305
  87. package/esm2020/lib/widgets/dialog/dialog.select-data-labels.content.mjs +0 -191
  88. package/esm2020/lib/widgets/dialog/dialog.select-datetime.content.mjs +0 -185
  89. package/esm2020/lib/widgets/dialog/dialog.select-with-buttons-url.content.mjs +0 -162
  90. package/esm2020/lib/widgets/dialog/dialog.service.mjs +0 -97
  91. package/esm2020/lib/widgets/file/file-upload.component.mjs +0 -426
  92. package/esm2020/lib/widgets/file/file-upload.module.mjs +0 -48
  93. package/esm2020/lib/widgets/form-button/form-button.component.mjs +0 -94
  94. package/esm2020/lib/widgets/form-button/form-button.module.mjs +0 -28
  95. package/esm2020/lib/widgets/navbar-main/navbar-main.component.mjs +0 -220
  96. package/esm2020/lib/widgets/navbar-module/navbar-module.component.mjs +0 -104
  97. package/esm2020/lib/widgets/navbar-module/navbar-module.model.mjs +0 -2
  98. package/esm2020/lib/widgets/responsive-button-group/responsive-button-group.component.mjs +0 -38
  99. package/esm2020/lib/widgets/responsive-button-group/responsive-button-group.module.mjs +0 -24
  100. package/esm2020/lib/widgets/scheduler/scheduler.component.mjs +0 -184
  101. package/esm2020/lib/widgets/scheduler/scheduler.module.mjs +0 -37
  102. package/esm2020/lib/widgets/sort-table/sort-table-header.component.mjs +0 -67
  103. package/esm2020/lib/widgets/sort-table/sort-table-ngfor.component.mjs +0 -48
  104. package/esm2020/lib/widgets/sort-table/sort-table.directive.mjs +0 -174
  105. package/esm2020/lib/widgets/sort-table/sort-table.module.mjs +0 -38
  106. package/esm2020/lib/widgets/user-role/user-role.component.mjs +0 -27
  107. package/esm2020/lib/widgets/user-role/user-role.module.mjs +0 -24
  108. package/esm2020/public_api.mjs +0 -91
  109. package/esm2020/resolveio-client-lib-core.mjs +0 -5
  110. package/fesm2015/resolveio-client-lib-core.mjs +0 -9191
  111. package/fesm2015/resolveio-client-lib-core.mjs.map +0 -1
  112. package/fesm2020/resolveio-client-lib-core.mjs +0 -9184
  113. package/fesm2020/resolveio-client-lib-core.mjs.map +0 -1
  114. package/lib/account-manager.service.d.ts +0 -41
  115. package/lib/auth/auth-guard.service.d.ts +0 -26
  116. package/lib/auth/auth-permissions.service.d.ts +0 -10
  117. package/lib/auth/auth.service.d.ts +0 -30
  118. package/lib/auth/auth365.component.d.ts +0 -20
  119. package/lib/auth/can-deactivate-guard.service.d.ts +0 -11
  120. package/lib/auth/enroll.component.d.ts +0 -28
  121. package/lib/auth/forgot-password.component.d.ts +0 -28
  122. package/lib/core.component.d.ts +0 -64
  123. package/lib/core.module.d.ts +0 -35
  124. package/lib/core.service.d.ts +0 -49
  125. package/lib/directive/focus.d.ts +0 -10
  126. package/lib/directive/scroll.d.ts +0 -20
  127. package/lib/home/home.component.d.ts +0 -28
  128. package/lib/logger/logger.component.d.ts +0 -37
  129. package/lib/models/app-status.model.d.ts +0 -4
  130. package/lib/models/collection-document.model.d.ts +0 -6
  131. package/lib/models/cron-job.model.d.ts +0 -13
  132. package/lib/models/dialog.model.d.ts +0 -23
  133. package/lib/models/file.model.d.ts +0 -9
  134. package/lib/models/log-method-latency.model.d.ts +0 -7
  135. package/lib/models/navbar-main-tab.model.d.ts +0 -14
  136. package/lib/models/pagination.model.d.ts +0 -17
  137. package/lib/models/permission.model.d.ts +0 -14
  138. package/lib/models/select-data-label.model.d.ts +0 -9
  139. package/lib/models/subscription.model.d.ts +0 -19
  140. package/lib/models/support-ticket.model.d.ts +0 -71
  141. package/lib/models/user-group.model.d.ts +0 -20
  142. package/lib/models/user.model.d.ts +0 -70
  143. package/lib/offline-db.d.ts +0 -28
  144. package/lib/offline-manager.service.d.ts +0 -23
  145. package/lib/pipes/domsanitizor.pipe.d.ts +0 -10
  146. package/lib/pipes/filter.pipe.d.ts +0 -12
  147. package/lib/pipes/json-parse.pipe.d.ts +0 -7
  148. package/lib/pipes/minus-currency.pipe.d.ts +0 -7
  149. package/lib/pipes/phone.pipe.d.ts +0 -7
  150. package/lib/pipes/pipe.module.d.ts +0 -13
  151. package/lib/pipes/reverse-list.pipe.d.ts +0 -6
  152. package/lib/pipes/titlecase.pipe.d.ts +0 -7
  153. package/lib/report-builder.permission.d.ts +0 -2
  154. package/lib/resolveio-class.d.ts +0 -26
  155. package/lib/shared/shared.module.d.ts +0 -17
  156. package/lib/socket-manager.service.d.ts +0 -38
  157. package/lib/socket.service.d.ts +0 -44
  158. package/lib/super-admin.permission.d.ts +0 -2
  159. package/lib/support-ticket/detail/support-ticket-detail.component.d.ts +0 -32
  160. package/lib/support-ticket/edit/support-ticket-edit.component.d.ts +0 -30
  161. package/lib/support-ticket/list/support-ticket-list.component.d.ts +0 -26
  162. package/lib/support-ticket/new/support-ticket-new.component.d.ts +0 -26
  163. package/lib/support-ticket/support-ticket.component.d.ts +0 -20
  164. package/lib/support-ticket/support-ticket.module.d.ts +0 -15
  165. package/lib/support-ticket/support-ticket.routing.d.ts +0 -3
  166. package/lib/support-ticket/support-ticket.service.d.ts +0 -9
  167. package/lib/token-manager.service.d.ts +0 -11
  168. package/lib/user-settings/settings/users-settings.component.d.ts +0 -54
  169. package/lib/user-settings/user-settings.component.d.ts +0 -20
  170. package/lib/user-settings/user-settings.module.d.ts +0 -12
  171. package/lib/user-settings/user-settings.permission.d.ts +0 -2
  172. package/lib/user-settings/user-settings.routing.d.ts +0 -3
  173. package/lib/user-settings/user-settings.service.d.ts +0 -9
  174. package/lib/util/action-name.helper.d.ts +0 -1
  175. package/lib/util/aws.service.d.ts +0 -17
  176. package/lib/util/common.helper.d.ts +0 -12
  177. package/lib/util/validation.service.d.ts +0 -88
  178. package/lib/util/window-resize.service.d.ts +0 -12
  179. package/lib/util/window.service.d.ts +0 -6
  180. package/lib/widgets/alert/alert.model.d.ts +0 -1
  181. package/lib/widgets/alert/alert.service.d.ts +0 -11
  182. package/lib/widgets/collapse-table/collapse-table.component.d.ts +0 -23
  183. package/lib/widgets/collapse-table/collapse-table.module.d.ts +0 -9
  184. package/lib/widgets/data-table/data-table.component.d.ts +0 -23
  185. package/lib/widgets/data-table/data-table.model.d.ts +0 -13
  186. package/lib/widgets/data-table/data-table.module.d.ts +0 -12
  187. package/lib/widgets/date-shortcut/date-shortcut.component.d.ts +0 -24
  188. package/lib/widgets/date-shortcut/date-shortcut.module.d.ts +0 -10
  189. package/lib/widgets/dialog/dialog.confirm.content.d.ts +0 -12
  190. package/lib/widgets/dialog/dialog.error.content.d.ts +0 -11
  191. package/lib/widgets/dialog/dialog.input.content.d.ts +0 -18
  192. package/lib/widgets/dialog/dialog.login.content.d.ts +0 -17
  193. package/lib/widgets/dialog/dialog.notify.content.d.ts +0 -11
  194. package/lib/widgets/dialog/dialog.register.content.d.ts +0 -13
  195. package/lib/widgets/dialog/dialog.select-array-objs.content.d.ts +0 -23
  196. package/lib/widgets/dialog/dialog.select-array.content.d.ts +0 -31
  197. package/lib/widgets/dialog/dialog.select-data-labels.content.d.ts +0 -22
  198. package/lib/widgets/dialog/dialog.select-datetime.content.d.ts +0 -21
  199. package/lib/widgets/dialog/dialog.select-with-buttons-url.content.d.ts +0 -25
  200. package/lib/widgets/dialog/dialog.service.d.ts +0 -21
  201. package/lib/widgets/file/file-upload.component.d.ts +0 -49
  202. package/lib/widgets/file/file-upload.module.d.ts +0 -14
  203. package/lib/widgets/form-button/form-button.component.d.ts +0 -15
  204. package/lib/widgets/form-button/form-button.module.d.ts +0 -9
  205. package/lib/widgets/navbar-main/navbar-main.component.d.ts +0 -53
  206. package/lib/widgets/navbar-module/navbar-module.component.d.ts +0 -24
  207. package/lib/widgets/navbar-module/navbar-module.model.d.ts +0 -13
  208. package/lib/widgets/responsive-button-group/responsive-button-group.component.d.ts +0 -17
  209. package/lib/widgets/responsive-button-group/responsive-button-group.module.d.ts +0 -8
  210. package/lib/widgets/scheduler/scheduler.component.d.ts +0 -50
  211. package/lib/widgets/scheduler/scheduler.module.d.ts +0 -11
  212. package/lib/widgets/sort-table/sort-table-header.component.d.ts +0 -23
  213. package/lib/widgets/sort-table/sort-table-ngfor.component.d.ts +0 -17
  214. package/lib/widgets/sort-table/sort-table.directive.d.ts +0 -48
  215. package/lib/widgets/sort-table/sort-table.module.d.ts +0 -11
  216. package/lib/widgets/user-role/user-role.component.d.ts +0 -10
  217. package/lib/widgets/user-role/user-role.module.d.ts +0 -8
@@ -1,77 +0,0 @@
1
- import { Component, Input, Output, EventEmitter } from '@angular/core';
2
- import { ProviderService, BaseComponent } from '../../resolveio-class';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../../resolveio-class";
5
- import * as i2 from "@ng-bootstrap/ng-bootstrap";
6
- import * as i3 from "@angular/forms";
7
- import * as i4 from "@angular/common";
8
- import * as i5 from "../collapse-table/collapse-table.component";
9
- export class DatatableComponent extends BaseComponent {
10
- constructor(_services) {
11
- super(_services);
12
- this._services = _services;
13
- this.totalItems = 1000;
14
- this.onChangeTableData = new EventEmitter();
15
- }
16
- changeTableData() {
17
- this.onChangeTableData.emit();
18
- }
19
- sortColumn(colName) {
20
- if (this.tableData.sortColumn === colName) {
21
- if (this.tableData.sortOrder === 'desc') {
22
- this.tableData.sortOrder = 'asc';
23
- }
24
- else {
25
- this.tableData.sortOrder = 'desc';
26
- }
27
- }
28
- else {
29
- this.tableData.sortOrder = 'asc';
30
- this.tableData.sortColumn = colName;
31
- }
32
- this.changeTableData();
33
- }
34
- navigateTo(id, column) {
35
- if (column !== 'file_key' && id && this.urlClick) {
36
- this._services._router.navigateByUrl(this.urlClick + id);
37
- }
38
- }
39
- openFile(file_key) {
40
- this._services._socket.call('getSignedUrl', file_key, 900, (err, res) => {
41
- if (res) {
42
- window.open(res);
43
- }
44
- else {
45
- this._services._socket.call('insertErrorLog', 'Widgets-datatable - getsignedurl', [
46
- file_key, err
47
- ]);
48
- }
49
- });
50
- }
51
- typeOf(data) {
52
- return typeof (data);
53
- }
54
- }
55
- DatatableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableComponent, deps: [{ token: i1.ProviderService }], target: i0.ɵɵFactoryTarget.Component });
56
- DatatableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DatatableComponent, selector: "data-table", inputs: { urlClick: "urlClick", columns: "columns", data: "data", collapseSize: "collapseSize", searchTitle: "searchTitle", totalItems: "totalItems", tableData: "tableData" }, outputs: { onChangeTableData: "onChangeTableData" }, providers: [ProviderService], usesInheritance: true, ngImport: i0, template: "<style>\n .orangeRow { \n background-color: orangered;\n }\n\n collapse-table tr:hover {\n background-color: lightblue;\n cursor: pointer;\n }\n\n collapse-table {\n width: 100%;\n }\n</style>\n\n<div class=\"row\">\n <div class=\"input-group\">\n <span class=\"input-group-btn\">\n <button class=\"btn btn-primary\" type=\"button\" (click)=\"changeTableData()\">Search!</button>\n </span>\n <input type=\"text\" class=\"form-control\" placeholder=\"{{searchTitle}}\" [(ngModel)]=\"tableData.searchString\" (keyup.enter)=\"changeTableData()\" style=\"z-index: 0\">\n </div>\n</div>\n<div class=\"row\" style=\"padding-top: 20px;\">\n <collapse-table [collapseSize]=\"collapseSize\" headerFixed=\"true\">\n <thead>\n <tr>\n <th *ngFor=\"let column of columns\" (click)=\"sortColumn(column.data)\" style=\"cursor:pointer\">\n {{column.name}}\n <i *ngIf=\"tableData.sortColumn == column.data && tableData.sortOrder === 'desc'\" class=\"fa fa-caret-down\"></i>\n <i *ngIf=\"tableData.sortColumn == column.data && tableData.sortOrder === 'asc'\" class=\"fa fa-caret-up\"></i>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of data\" [ngClass]=\"{'orangeRow': item['color_red']}\">\n <td *ngFor=\"let column of columns\" (click)=\"navigateTo(item['_id'], column.data)\" [attr.data-label]=\"column.name\">\n <span *ngIf=\"typeOf(item[column.data]) !== 'boolean' && column.data !== 'cost' && column.data !== 'wells' && column.data !== 'cost_total' && column.data !== 'price' && column.data !== 'date' && column.data !== 'date_created' && column.data !== 'date_delivered' && column.data !== 'quantity' && column.data !== 'quantity_string' && column.data !== 'min_stock' && column.data !== 'max_stock' && column.data !== 'file_key' && column.data !== 'date_in'\">{{column.subData ? item[column.data][column.subData] : item[column.data]}}</span>\n <span *ngIf=\"column.data === 'cost' || column.data === 'price' || column.data === 'cost_total'\">{{item[column.data] | currency:'USD':'symbol':\"1.2-2\"}}</span>\n <span *ngIf=\"column.data === 'date' || column.data === 'date_created' || column.data === 'date_delivered'\">{{item[column.data] | date:'short'}}</span>\n <span *ngIf=\"column.data === 'quantity' || column.data === 'min_stock' || column.data === 'max_stock'\">{{item[column.data] | number}}</span>\n <span *ngIf=\"column.data === 'quantity_string'\">{{item[column.data] | number}}</span>\n <span *ngIf=\"column.data === 'wells'\"><pre>{{item[column.data]}}</pre></span>\n <span *ngIf=\"column.data === 'file_key'\">\n <button type=\"button\" (click)=\"openFile(item[column.data])\" class=\"btn btn-secondary\">Open File</button>\n <!-- <button type=\"button\" class=\"btn btn-warning\" (click)=\"viewDeletedReason(item)\" *ngIf=\"item.deleted.is_deleted\">View Deleted Reason</button> -->\n </span>\n <span *ngIf=\"typeOf(item[column.data]) === 'boolean'\">\n <i *ngIf=\"item[column.data]\" class=\"fa fa-check\" style=\"color: green; font-size: 18px;\" aria-hidden=\"true\"></i>\n <i *ngIf=\"!item[column.data]\" class=\"fa fa-times\" style=\"color: red; font-size: 18px;\" aria-hidden=\"true\"></i>\n </span>\n </td>\n </tr>\n </tbody>\n </collapse-table> \n</div>\n<hr />\n<div class=\"row\">\n <div class=\"col-lg-4\">\n <div class=\"row\"> \n <div class=\"col-lg-8\">\n <label class=\"form-control-label\">Entries Per Page</label>\n <select class=\"form-control\" [(ngModel)]=\"tableData.entriesPerPage\" (ngModelChange)=\"changeTableData()\">\n <option value=\"25\">25</option>\n <option value=\"50\">50</option>\n <option value=\"100\">100</option>\n <option value=\"250\">250</option>\n </select>\n </div>\n </div>\n </div>\n <div class=\"col-lg-8\" style=\"margin-top: 16px;\">\n <ngb-pagination class=\"float-right\"\n boundaryLinks=\"true\"\n [collectionSize]=\"totalItems\"\n directionLinks=\"true\"\n ellipses=\"false\"\n [(page)]=\"tableData.pageNum\"\n maxSize=\"6\"\n [pageSize]=\"tableData.entriesPerPage\"\n rotate=\"true\"\n (pageChange)=\"changeTableData()\"\n >\n </ngb-pagination>\n </div>\n</div>\n", styles: ["\n .orangeRow { \n background-color: orangered;\n }\n\n collapse-table tr:hover {\n background-color: lightblue;\n cursor: pointer;\n }\n\n collapse-table {\n width: 100%;\n }\n"], dependencies: [{ kind: "component", type: i2.NgbPagination, selector: "ngb-pagination", inputs: ["disabled", "boundaryLinks", "directionLinks", "ellipses", "rotate", "collectionSize", "maxSize", "page", "pageSize", "size"], outputs: ["pageChange"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.CollapseTableComponent, selector: "collapse-table", inputs: ["collapseSize", "tableFixed", "headerFixed", "secondaryColor", "tertiaryColor"] }, { kind: "pipe", type: i4.DecimalPipe, name: "number" }, { kind: "pipe", type: i4.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i4.DatePipe, name: "date" }] });
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableComponent, decorators: [{
58
- type: Component,
59
- args: [{ providers: [ProviderService], selector: 'data-table', template: "<style>\n .orangeRow { \n background-color: orangered;\n }\n\n collapse-table tr:hover {\n background-color: lightblue;\n cursor: pointer;\n }\n\n collapse-table {\n width: 100%;\n }\n</style>\n\n<div class=\"row\">\n <div class=\"input-group\">\n <span class=\"input-group-btn\">\n <button class=\"btn btn-primary\" type=\"button\" (click)=\"changeTableData()\">Search!</button>\n </span>\n <input type=\"text\" class=\"form-control\" placeholder=\"{{searchTitle}}\" [(ngModel)]=\"tableData.searchString\" (keyup.enter)=\"changeTableData()\" style=\"z-index: 0\">\n </div>\n</div>\n<div class=\"row\" style=\"padding-top: 20px;\">\n <collapse-table [collapseSize]=\"collapseSize\" headerFixed=\"true\">\n <thead>\n <tr>\n <th *ngFor=\"let column of columns\" (click)=\"sortColumn(column.data)\" style=\"cursor:pointer\">\n {{column.name}}\n <i *ngIf=\"tableData.sortColumn == column.data && tableData.sortOrder === 'desc'\" class=\"fa fa-caret-down\"></i>\n <i *ngIf=\"tableData.sortColumn == column.data && tableData.sortOrder === 'asc'\" class=\"fa fa-caret-up\"></i>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of data\" [ngClass]=\"{'orangeRow': item['color_red']}\">\n <td *ngFor=\"let column of columns\" (click)=\"navigateTo(item['_id'], column.data)\" [attr.data-label]=\"column.name\">\n <span *ngIf=\"typeOf(item[column.data]) !== 'boolean' && column.data !== 'cost' && column.data !== 'wells' && column.data !== 'cost_total' && column.data !== 'price' && column.data !== 'date' && column.data !== 'date_created' && column.data !== 'date_delivered' && column.data !== 'quantity' && column.data !== 'quantity_string' && column.data !== 'min_stock' && column.data !== 'max_stock' && column.data !== 'file_key' && column.data !== 'date_in'\">{{column.subData ? item[column.data][column.subData] : item[column.data]}}</span>\n <span *ngIf=\"column.data === 'cost' || column.data === 'price' || column.data === 'cost_total'\">{{item[column.data] | currency:'USD':'symbol':\"1.2-2\"}}</span>\n <span *ngIf=\"column.data === 'date' || column.data === 'date_created' || column.data === 'date_delivered'\">{{item[column.data] | date:'short'}}</span>\n <span *ngIf=\"column.data === 'quantity' || column.data === 'min_stock' || column.data === 'max_stock'\">{{item[column.data] | number}}</span>\n <span *ngIf=\"column.data === 'quantity_string'\">{{item[column.data] | number}}</span>\n <span *ngIf=\"column.data === 'wells'\"><pre>{{item[column.data]}}</pre></span>\n <span *ngIf=\"column.data === 'file_key'\">\n <button type=\"button\" (click)=\"openFile(item[column.data])\" class=\"btn btn-secondary\">Open File</button>\n <!-- <button type=\"button\" class=\"btn btn-warning\" (click)=\"viewDeletedReason(item)\" *ngIf=\"item.deleted.is_deleted\">View Deleted Reason</button> -->\n </span>\n <span *ngIf=\"typeOf(item[column.data]) === 'boolean'\">\n <i *ngIf=\"item[column.data]\" class=\"fa fa-check\" style=\"color: green; font-size: 18px;\" aria-hidden=\"true\"></i>\n <i *ngIf=\"!item[column.data]\" class=\"fa fa-times\" style=\"color: red; font-size: 18px;\" aria-hidden=\"true\"></i>\n </span>\n </td>\n </tr>\n </tbody>\n </collapse-table> \n</div>\n<hr />\n<div class=\"row\">\n <div class=\"col-lg-4\">\n <div class=\"row\"> \n <div class=\"col-lg-8\">\n <label class=\"form-control-label\">Entries Per Page</label>\n <select class=\"form-control\" [(ngModel)]=\"tableData.entriesPerPage\" (ngModelChange)=\"changeTableData()\">\n <option value=\"25\">25</option>\n <option value=\"50\">50</option>\n <option value=\"100\">100</option>\n <option value=\"250\">250</option>\n </select>\n </div>\n </div>\n </div>\n <div class=\"col-lg-8\" style=\"margin-top: 16px;\">\n <ngb-pagination class=\"float-right\"\n boundaryLinks=\"true\"\n [collectionSize]=\"totalItems\"\n directionLinks=\"true\"\n ellipses=\"false\"\n [(page)]=\"tableData.pageNum\"\n maxSize=\"6\"\n [pageSize]=\"tableData.entriesPerPage\"\n rotate=\"true\"\n (pageChange)=\"changeTableData()\"\n >\n </ngb-pagination>\n </div>\n</div>\n" }]
60
- }], ctorParameters: function () { return [{ type: i1.ProviderService }]; }, propDecorators: { urlClick: [{
61
- type: Input
62
- }], columns: [{
63
- type: Input
64
- }], data: [{
65
- type: Input
66
- }], collapseSize: [{
67
- type: Input
68
- }], searchTitle: [{
69
- type: Input
70
- }], totalItems: [{
71
- type: Input
72
- }], onChangeTableData: [{
73
- type: Output
74
- }], tableData: [{
75
- type: Input
76
- }] } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvd2lkZ2V0cy9kYXRhLXRhYmxlL2RhdGEtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3dpZGdldHMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQVF2RSxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsYUFBYTtJQVVwRCxZQUFvQixTQUEwQjtRQUM3QyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFERSxjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQUpyQyxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFLekQsQ0FBQztJQUVELGVBQWU7UUFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFPO1FBQ2pCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEtBQUssT0FBTyxFQUFFO1lBQzFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEtBQUssTUFBTSxFQUFFO2dCQUN4QyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7YUFDakM7aUJBQ0k7Z0JBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO2FBQ2xDO1NBQ0Q7YUFDSTtZQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUNqQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUM7U0FDcEM7UUFFRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxFQUFVLEVBQUUsTUFBYztRQUNwQyxJQUFJLE1BQU0sS0FBSyxVQUFVLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDekQ7SUFDRixDQUFDO0lBRUQsUUFBUSxDQUFDLFFBQWdCO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUN2RSxJQUFJLEdBQUcsRUFBRTtnQkFDUixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2pCO2lCQUNJO2dCQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxrQ0FBa0MsRUFBRTtvQkFDakYsUUFBUSxFQUFFLEdBQUc7aUJBQ2IsQ0FBQyxDQUFDO2FBQ0g7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBSTtRQUNWLE9BQU8sT0FBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JCLENBQUM7O2dIQXhEVyxrQkFBa0I7b0dBQWxCLGtCQUFrQiwwUUFMbkIsQ0FBQyxlQUFlLENBQUMsaURDTDdCLG0ySkFzRkE7NEZENUVhLGtCQUFrQjtrQkFOOUIsU0FBUztnQ0FDRSxDQUFDLGVBQWUsQ0FBQyxZQUNsQixZQUFZO3NHQUtiLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0UsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRhdGFibGVNb2RlbCwgRGF0YXRhYmxlQ29sdW1uIH0gZnJvbSAnLi9kYXRhLXRhYmxlLm1vZGVsJztcbmltcG9ydCB7IFByb3ZpZGVyU2VydmljZSwgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Jlc29sdmVpby1jbGFzcyc7XG5cbkBDb21wb25lbnQoe1xuXHRwcm92aWRlcnM6IFtQcm92aWRlclNlcnZpY2VdLFxuXHRzZWxlY3RvcjogJ2RhdGEtdGFibGUnLFxuXHR0ZW1wbGF0ZVVybDogJy4vZGF0YS10YWJsZS5jb21wb25lbnQuaHRtbCdcbn0pXG5cbmV4cG9ydCBjbGFzcyBEYXRhdGFibGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHsgXG5cdEBJbnB1dCgpIHVybENsaWNrOiBzdHJpbmc7XG5cdEBJbnB1dCgpIGNvbHVtbnM6IEFycmF5PERhdGF0YWJsZUNvbHVtbltdPjtcblx0QElucHV0KCkgZGF0YTogYW55W107XG5cdEBJbnB1dCgpIGNvbGxhcHNlU2l6ZTogbnVtYmVyO1xuXHRASW5wdXQoKSBzZWFyY2hUaXRsZTogc3RyaW5nO1xuXHRASW5wdXQoKSB0b3RhbEl0ZW1zID0gMTAwMDtcblx0QE91dHB1dCgpIG9uQ2hhbmdlVGFibGVEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxPYmplY3Q+KCk7XG5cdEBJbnB1dCgpIHRhYmxlRGF0YTogRGF0YXRhYmxlTW9kZWw7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfc2VydmljZXM6IFByb3ZpZGVyU2VydmljZSkge1xuXHRcdHN1cGVyKF9zZXJ2aWNlcyk7XG5cdH1cblxuXHRjaGFuZ2VUYWJsZURhdGEoKSB7XG5cdFx0dGhpcy5vbkNoYW5nZVRhYmxlRGF0YS5lbWl0KCk7XG5cdH1cblxuXHRzb3J0Q29sdW1uKGNvbE5hbWUpIHtcblx0XHRpZiAodGhpcy50YWJsZURhdGEuc29ydENvbHVtbiA9PT0gY29sTmFtZSkge1xuXHRcdFx0aWYgKHRoaXMudGFibGVEYXRhLnNvcnRPcmRlciA9PT0gJ2Rlc2MnKSB7XG5cdFx0XHRcdHRoaXMudGFibGVEYXRhLnNvcnRPcmRlciA9ICdhc2MnO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdHRoaXMudGFibGVEYXRhLnNvcnRPcmRlciA9ICdkZXNjJztcblx0XHRcdH1cblx0XHR9XG5cdFx0ZWxzZSB7XG5cdFx0XHR0aGlzLnRhYmxlRGF0YS5zb3J0T3JkZXIgPSAnYXNjJztcblx0XHRcdHRoaXMudGFibGVEYXRhLnNvcnRDb2x1bW4gPSBjb2xOYW1lO1xuXHRcdH1cblxuXHRcdHRoaXMuY2hhbmdlVGFibGVEYXRhKCk7XG5cdH1cblxuXHRuYXZpZ2F0ZVRvKGlkOiBzdHJpbmcsIGNvbHVtbjogc3RyaW5nKSB7XG5cdFx0aWYgKGNvbHVtbiAhPT0gJ2ZpbGVfa2V5JyAmJiBpZCAmJiB0aGlzLnVybENsaWNrKSB7XG5cdFx0XHR0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy51cmxDbGljayArIGlkKTtcblx0XHR9XG5cdH1cblxuXHRvcGVuRmlsZShmaWxlX2tleTogc3RyaW5nKSB7XG5cdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdnZXRTaWduZWRVcmwnLCBmaWxlX2tleSwgOTAwLCAoZXJyLCByZXMpID0+IHtcblx0XHRcdGlmIChyZXMpIHtcblx0XHRcdFx0d2luZG93Lm9wZW4ocmVzKTtcblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LmNhbGwoJ2luc2VydEVycm9yTG9nJywgJ1dpZGdldHMtZGF0YXRhYmxlIC0gZ2V0c2lnbmVkdXJsJywgW1xuXHRcdFx0XHRcdGZpbGVfa2V5LCBlcnJcblx0XHRcdFx0XSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHR0eXBlT2YoZGF0YSkge1xuXHRcdHJldHVybiB0eXBlb2YoZGF0YSk7XG5cdH1cbn1cbiIsIjxzdHlsZT5cbiAgICAub3JhbmdlUm93IHsgXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcbiAgICB9XG5cbiAgICBjb2xsYXBzZS10YWJsZSB0cjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Ymx1ZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIGNvbGxhcHNlLXRhYmxlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuPC9zdHlsZT5cblxuPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC1idG5cIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2hhbmdlVGFibGVEYXRhKClcIj5TZWFyY2ghPC9idXR0b24+XG4gICAgICA8L3NwYW4+XG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHBsYWNlaG9sZGVyPVwie3tzZWFyY2hUaXRsZX19XCIgWyhuZ01vZGVsKV09XCJ0YWJsZURhdGEuc2VhcmNoU3RyaW5nXCIgKGtleXVwLmVudGVyKT1cImNoYW5nZVRhYmxlRGF0YSgpXCIgc3R5bGU9XCJ6LWluZGV4OiAwXCI+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJyb3dcIiBzdHlsZT1cInBhZGRpbmctdG9wOiAyMHB4O1wiPlxuICAgIDxjb2xsYXBzZS10YWJsZSBbY29sbGFwc2VTaXplXT1cImNvbGxhcHNlU2l6ZVwiIGhlYWRlckZpeGVkPVwidHJ1ZVwiPlxuICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uc1wiIChjbGljayk9XCJzb3J0Q29sdW1uKGNvbHVtbi5kYXRhKVwiIHN0eWxlPVwiY3Vyc29yOnBvaW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAge3tjb2x1bW4ubmFtZX19XG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwidGFibGVEYXRhLnNvcnRDb2x1bW4gPT0gY29sdW1uLmRhdGEgJiYgdGFibGVEYXRhLnNvcnRPcmRlciA9PT0gJ2Rlc2MnXCIgY2xhc3M9XCJmYSBmYS1jYXJldC1kb3duXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cInRhYmxlRGF0YS5zb3J0Q29sdW1uID09IGNvbHVtbi5kYXRhICYmIHRhYmxlRGF0YS5zb3J0T3JkZXIgPT09ICdhc2MnXCIgY2xhc3M9XCJmYSBmYS1jYXJldC11cFwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgPC90aGVhZD5cbiAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdGFcIiBbbmdDbGFzc109XCJ7J29yYW5nZVJvdyc6IGl0ZW1bJ2NvbG9yX3JlZCddfVwiPlxuICAgICAgICAgICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNcIiAoY2xpY2spPVwibmF2aWdhdGVUbyhpdGVtWydfaWQnXSwgY29sdW1uLmRhdGEpXCIgW2F0dHIuZGF0YS1sYWJlbF09XCJjb2x1bW4ubmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInR5cGVPZihpdGVtW2NvbHVtbi5kYXRhXSkgIT09ICdib29sZWFuJyAmJiBjb2x1bW4uZGF0YSAhPT0gJ2Nvc3QnICYmIGNvbHVtbi5kYXRhICE9PSAnd2VsbHMnICYmIGNvbHVtbi5kYXRhICE9PSAnY29zdF90b3RhbCcgJiYgY29sdW1uLmRhdGEgIT09ICdwcmljZScgJiYgY29sdW1uLmRhdGEgIT09ICdkYXRlJyAmJiBjb2x1bW4uZGF0YSAhPT0gJ2RhdGVfY3JlYXRlZCcgJiYgY29sdW1uLmRhdGEgIT09ICdkYXRlX2RlbGl2ZXJlZCcgJiYgY29sdW1uLmRhdGEgIT09ICdxdWFudGl0eScgJiYgY29sdW1uLmRhdGEgIT09ICdxdWFudGl0eV9zdHJpbmcnICYmIGNvbHVtbi5kYXRhICE9PSAnbWluX3N0b2NrJyAmJiBjb2x1bW4uZGF0YSAhPT0gJ21heF9zdG9jaycgJiYgY29sdW1uLmRhdGEgIT09ICdmaWxlX2tleScgJiYgY29sdW1uLmRhdGEgIT09ICdkYXRlX2luJ1wiPnt7Y29sdW1uLnN1YkRhdGEgPyBpdGVtW2NvbHVtbi5kYXRhXVtjb2x1bW4uc3ViRGF0YV0gOiBpdGVtW2NvbHVtbi5kYXRhXX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvbHVtbi5kYXRhID09PSAnY29zdCcgfHwgY29sdW1uLmRhdGEgPT09ICdwcmljZScgfHwgY29sdW1uLmRhdGEgPT09ICdjb3N0X3RvdGFsJ1wiPnt7aXRlbVtjb2x1bW4uZGF0YV0gfCBjdXJyZW5jeTonVVNEJzonc3ltYm9sJzpcIjEuMi0yXCJ9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb2x1bW4uZGF0YSA9PT0gJ2RhdGUnIHx8IGNvbHVtbi5kYXRhID09PSAnZGF0ZV9jcmVhdGVkJyB8fCBjb2x1bW4uZGF0YSA9PT0gJ2RhdGVfZGVsaXZlcmVkJ1wiPnt7aXRlbVtjb2x1bW4uZGF0YV0gfCBkYXRlOidzaG9ydCd9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb2x1bW4uZGF0YSA9PT0gJ3F1YW50aXR5JyB8fCBjb2x1bW4uZGF0YSA9PT0gJ21pbl9zdG9jaycgfHwgY29sdW1uLmRhdGEgPT09ICdtYXhfc3RvY2snXCI+e3tpdGVtW2NvbHVtbi5kYXRhXSB8IG51bWJlcn19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvbHVtbi5kYXRhID09PSAncXVhbnRpdHlfc3RyaW5nJ1wiPnt7aXRlbVtjb2x1bW4uZGF0YV0gfCBudW1iZXJ9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb2x1bW4uZGF0YSA9PT0gJ3dlbGxzJ1wiPjxwcmU+e3tpdGVtW2NvbHVtbi5kYXRhXX19PC9wcmU+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvbHVtbi5kYXRhID09PSAnZmlsZV9rZXknXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib3BlbkZpbGUoaXRlbVtjb2x1bW4uZGF0YV0pXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiPk9wZW4gRmlsZTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4td2FybmluZ1wiIChjbGljayk9XCJ2aWV3RGVsZXRlZFJlYXNvbihpdGVtKVwiICpuZ0lmPVwiaXRlbS5kZWxldGVkLmlzX2RlbGV0ZWRcIj5WaWV3IERlbGV0ZWQgUmVhc29uPC9idXR0b24+IC0tPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidHlwZU9mKGl0ZW1bY29sdW1uLmRhdGFdKSA9PT0gJ2Jvb2xlYW4nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIml0ZW1bY29sdW1uLmRhdGFdXCIgY2xhc3M9XCJmYSBmYS1jaGVja1wiIHN0eWxlPVwiY29sb3I6IGdyZWVuOyBmb250LXNpemU6IDE4cHg7XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIhaXRlbVtjb2x1bW4uZGF0YV1cIiBjbGFzcz1cImZhIGZhLXRpbWVzXCIgc3R5bGU9XCJjb2xvcjogcmVkOyBmb250LXNpemU6IDE4cHg7XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGJvZHk+XG4gICAgPC9jb2xsYXBzZS10YWJsZT4gXG48L2Rpdj5cbjxociAvPlxuPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+IFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy04XCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sLWxhYmVsXCI+RW50cmllcyBQZXIgUGFnZTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwidGFibGVEYXRhLmVudHJpZXNQZXJQYWdlXCIgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlVGFibGVEYXRhKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjI1XCI+MjU8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjUwXCI+NTA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjEwMFwiPjEwMDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMjUwXCI+MjUwPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1sZy04XCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAxNnB4O1wiPlxuICAgICAgICA8bmdiLXBhZ2luYXRpb24gY2xhc3M9XCJmbG9hdC1yaWdodFwiXG4gICAgICAgICAgICAgICAgICAgIGJvdW5kYXJ5TGlua3M9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25TaXplXT1cInRvdGFsSXRlbXNcIlxuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb25MaW5rcz1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBlbGxpcHNlcz1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgWyhwYWdlKV09XCJ0YWJsZURhdGEucGFnZU51bVwiXG4gICAgICAgICAgICAgICAgICAgIG1heFNpemU9XCI2XCJcbiAgICAgICAgICAgICAgICAgICAgW3BhZ2VTaXplXT1cInRhYmxlRGF0YS5lbnRyaWVzUGVyUGFnZVwiXG4gICAgICAgICAgICAgICAgICAgIHJvdGF0ZT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAocGFnZUNoYW5nZSk9XCJjaGFuZ2VUYWJsZURhdGEoKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgPC9uZ2ItcGFnaW5hdGlvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi93aWRnZXRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBEYXRhdGFibGVNb2RlbCB7XG5cdHNlYXJjaFN0cmluZzogc3RyaW5nO1xuXHRlbnRyaWVzUGVyUGFnZTogc3RyaW5nO1xuXHRwYWdlTnVtOiBudW1iZXI7XG5cdHNvcnRDb2x1bW46IHN0cmluZztcblx0c29ydE9yZGVyOiBzdHJpbmc7IFxuXHRmaWx0ZXJzPzogT2JqZWN0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGF0YWJsZUNvbHVtbiB7XG5cdG5hbWU6IHN0cmluZztcblx0ZGF0YTogc3RyaW5nO1xuXHRzdWJEYXRhPzogc3RyaW5nO1xufVxuIl19
@@ -1,41 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
3
- import { FormsModule } from '@angular/forms';
4
- import { CommonModule } from '@angular/common';
5
- import { RouterModule } from '@angular/router';
6
- import { CollapseTableModule } from '../collapse-table/collapse-table.module';
7
- import { DatatableComponent } from './data-table.component';
8
- import * as i0 from "@angular/core";
9
- export class DatatableModule {
10
- }
11
- DatatableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- DatatableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: DatatableModule, declarations: [DatatableComponent], imports: [NgbModule,
13
- FormsModule,
14
- CommonModule,
15
- RouterModule,
16
- CollapseTableModule], exports: [DatatableComponent] });
17
- DatatableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableModule, imports: [NgbModule,
18
- FormsModule,
19
- CommonModule,
20
- RouterModule,
21
- CollapseTableModule] });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DatatableModule, decorators: [{
23
- type: NgModule,
24
- args: [{
25
- imports: [
26
- NgbModule,
27
- FormsModule,
28
- CommonModule,
29
- RouterModule,
30
- CollapseTableModule
31
- ],
32
- exports: [
33
- DatatableComponent
34
- ],
35
- declarations: [
36
- DatatableComponent
37
- ],
38
- providers: []
39
- }]
40
- }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvd2lkZ2V0cy9kYXRhLXRhYmxlL2RhdGEtdGFibGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQWtCNUQsTUFBTSxPQUFPLGVBQWU7OzZHQUFmLGVBQWU7OEdBQWYsZUFBZSxpQkFKMUIsa0JBQWtCLGFBVmxCLFNBQVM7UUFDVCxXQUFXO1FBQ1gsWUFBWTtRQUNaLFlBQVk7UUFDWixtQkFBbUIsYUFHbkIsa0JBQWtCOzhHQU9QLGVBQWUsWUFkMUIsU0FBUztRQUNULFdBQVc7UUFDWCxZQUFZO1FBQ1osWUFBWTtRQUNaLG1CQUFtQjs0RkFVUixlQUFlO2tCQWhCM0IsUUFBUTttQkFBQztvQkFDVCxPQUFPLEVBQUU7d0JBQ1IsU0FBUzt3QkFDVCxXQUFXO3dCQUNYLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixtQkFBbUI7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDUixrQkFBa0I7cUJBQ2xCO29CQUNELFlBQVksRUFBRTt3QkFDYixrQkFBa0I7cUJBQ2xCO29CQUNELFNBQVMsRUFBRSxFQUFHO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nYk1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1x0XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBDb2xsYXBzZVRhYmxlTW9kdWxlIH0gZnJvbSAnLi4vY29sbGFwc2UtdGFibGUvY29sbGFwc2UtdGFibGUubW9kdWxlJztcblxuXG5pbXBvcnQgeyBEYXRhdGFibGVDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtdGFibGUuY29tcG9uZW50JztcdFx0XHRcblxuQE5nTW9kdWxlKHtcblx0aW1wb3J0czogW1xuXHRcdE5nYk1vZHVsZSxcblx0XHRGb3Jtc01vZHVsZSxcblx0XHRDb21tb25Nb2R1bGUsXG5cdFx0Um91dGVyTW9kdWxlLFxuXHRcdENvbGxhcHNlVGFibGVNb2R1bGVcblx0XSxcblx0ZXhwb3J0czogW1xuXHRcdERhdGF0YWJsZUNvbXBvbmVudFxuXHRdLFxuXHRkZWNsYXJhdGlvbnM6IFtcblx0XHREYXRhdGFibGVDb21wb25lbnRcblx0XSxcblx0cHJvdmlkZXJzOiBbIF1cbn0pXG5leHBvcnQgY2xhc3MgRGF0YXRhYmxlTW9kdWxlIHsgfVxuIl19
@@ -1,295 +0,0 @@
1
- import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';
2
- import moment from 'moment';
3
- import { ProviderService, BaseComponent } from '../../resolveio-class';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../../resolveio-class";
6
- import * as i2 from "@angular/forms";
7
- import * as i3 from "@ng-select/ng-select";
8
- export class DateShortcutComponent extends BaseComponent {
9
- constructor(_services, _cd) {
10
- super(_services);
11
- this._services = _services;
12
- this._cd = _cd;
13
- this.startDateObjChange = new EventEmitter();
14
- this.endDateObjChange = new EventEmitter();
15
- this.startDateObjFormChange = new EventEmitter();
16
- this.endDateObjFormChange = new EventEmitter();
17
- this.datesChanged = new EventEmitter();
18
- this.shortcutValue = null;
19
- this.shortcutValueChange = new EventEmitter();
20
- }
21
- ngOnInit() {
22
- this.onSelectShortcut();
23
- }
24
- reset() {
25
- this.shortcutValue = null;
26
- this.shortcutValueChange.emit(this.shortcutValue);
27
- this._cd.detectChanges();
28
- }
29
- onSelectShortcut() {
30
- if (this.shortcutValue) {
31
- if (this.startDateObj && this.endDateObj) {
32
- let startDate = moment(new Date(this.startDateObj['year'], this.startDateObj['month'] - 1, this.startDateObj['day'])).toDate();
33
- let endDate = moment(new Date(this.endDateObj['year'], this.endDateObj['month'] - 1, this.endDateObj['day'])).toDate();
34
- if (this.shortcutValue === 'Q1') {
35
- startDate = moment().startOf('year').toDate();
36
- endDate = moment().startOf('year').quarter(2).subtract(1, 'days').toDate();
37
- }
38
- else if (this.shortcutValue === 'Q2') {
39
- startDate = moment().startOf('year').quarter(2).toDate();
40
- endDate = moment().startOf('year').quarter(3).subtract(1, 'days').toDate();
41
- }
42
- else if (this.shortcutValue === 'Q3') {
43
- startDate = moment().startOf('year').quarter(3).toDate();
44
- endDate = moment().startOf('year').quarter(4).subtract(1, 'days').toDate();
45
- }
46
- else if (this.shortcutValue === 'Q4') {
47
- startDate = moment().startOf('year').quarter(4).toDate();
48
- endDate = moment().endOf('year').toDate();
49
- }
50
- else if (this.shortcutValue === 'Last Q1') {
51
- startDate = moment().startOf('year').subtract(1, 'year').toDate();
52
- endDate = moment().startOf('year').subtract(1, 'year').quarter(2).subtract(1, 'days').toDate();
53
- }
54
- else if (this.shortcutValue === 'Last Q2') {
55
- startDate = moment().startOf('year').subtract(1, 'year').quarter(2).toDate();
56
- endDate = moment().startOf('year').subtract(1, 'year').quarter(3).subtract(1, 'days').toDate();
57
- }
58
- else if (this.shortcutValue === 'Last Q3') {
59
- startDate = moment().startOf('year').subtract(1, 'year').quarter(3).toDate();
60
- endDate = moment().startOf('year').subtract(1, 'year').quarter(4).subtract(1, 'days').toDate();
61
- }
62
- else if (this.shortcutValue === 'Last Q4') {
63
- startDate = moment().startOf('year').subtract(1, 'year').quarter(4).toDate();
64
- endDate = moment().endOf('year').subtract(1, 'year').toDate();
65
- }
66
- else if (this.shortcutValue === 'Today') {
67
- startDate = moment().startOf('day').toDate();
68
- endDate = new Date();
69
- }
70
- else if (this.shortcutValue === 'Yesterday') {
71
- startDate = moment().subtract(1, 'days').startOf('day').toDate();
72
- endDate = moment().subtract(1, 'days').endOf('day').toDate();
73
- }
74
- else if (this.shortcutValue === 'Week') {
75
- startDate = moment().startOf('isoWeek').toDate();
76
- endDate = new Date();
77
- }
78
- else if (this.shortcutValue === 'Last Week') {
79
- endDate = moment().startOf('isoWeek').subtract(1, 'days').toDate();
80
- startDate = moment(endDate).startOf('isoWeek').toDate();
81
- }
82
- else if (this.shortcutValue === 'Month') {
83
- startDate = moment().startOf('month').toDate();
84
- endDate = new Date();
85
- }
86
- else if (this.shortcutValue === 'Last Month') {
87
- endDate = moment().startOf('month').subtract(1, 'days').endOf('day').toDate();
88
- startDate = moment(endDate).startOf('month').toDate();
89
- }
90
- else if (this.shortcutValue === 'Last 30 Days') {
91
- endDate = new Date();
92
- startDate = moment().subtract(30, 'days').startOf('day').toDate();
93
- }
94
- else if (this.shortcutValue === 'Quarter') {
95
- startDate = moment().startOf('year').quarter(moment().quarter()).toDate();
96
- endDate = new Date();
97
- }
98
- else if (this.shortcutValue === 'Last Quarter') {
99
- endDate = moment().startOf('year').quarter(moment().quarter()).subtract(1, 'days').endOf('day').toDate();
100
- startDate = moment(endDate).startOf('quarter').toDate();
101
- }
102
- else if (this.shortcutValue === 'Year') {
103
- startDate = moment().startOf('year').toDate();
104
- endDate = new Date();
105
- }
106
- else if (this.shortcutValue === 'Last Year') {
107
- endDate = moment().startOf('year').subtract(1, 'days').endOf('day').toDate();
108
- startDate = moment(endDate).startOf('year').toDate();
109
- }
110
- else if (this.shortcutValue === 'All') {
111
- startDate = new Date(2017, 0, 1, 0, 0, 0, 0);
112
- endDate = new Date();
113
- }
114
- this.startDateObj = { year: startDate.getFullYear(), month: startDate.getMonth() + 1, day: startDate.getDate() };
115
- this.endDateObj = { year: endDate.getFullYear(), month: endDate.getMonth() + 1, day: endDate.getDate() };
116
- this.startDateObjChange.emit(this.startDateObj);
117
- this.endDateObjChange.emit(this.endDateObj);
118
- this.datesChanged.emit([this.startDateObj, this.endDateObj]);
119
- }
120
- else if (this.startDateObjForm && this.endDateObjForm) {
121
- let startDate = moment(new Date(this.startDateObjForm.value['year'], this.startDateObjForm.value['month'] - 1, this.startDateObjForm.value['day'])).toDate();
122
- let endDate = moment(new Date(this.endDateObjForm.value['year'], this.endDateObjForm.value['month'] - 1, this.endDateObjForm.value['day'])).toDate();
123
- if (this.shortcutValue === 'Q1') {
124
- startDate = moment().startOf('year').toDate();
125
- endDate = moment().startOf('year').quarter(2).subtract(1, 'days').toDate();
126
- }
127
- else if (this.shortcutValue === 'Q2') {
128
- startDate = moment().startOf('year').quarter(2).toDate();
129
- endDate = moment().startOf('year').quarter(3).subtract(1, 'days').toDate();
130
- }
131
- else if (this.shortcutValue === 'Q3') {
132
- startDate = moment().startOf('year').quarter(3).toDate();
133
- endDate = moment().startOf('year').quarter(4).subtract(1, 'days').toDate();
134
- }
135
- else if (this.shortcutValue === 'Q4') {
136
- startDate = moment().startOf('year').quarter(4).toDate();
137
- endDate = moment().endOf('year').toDate();
138
- }
139
- else if (this.shortcutValue === 'Last Q1') {
140
- startDate = moment().startOf('year').subtract(1, 'year').toDate();
141
- endDate = moment().startOf('year').subtract(1, 'year').quarter(2).subtract(1, 'days').toDate();
142
- }
143
- else if (this.shortcutValue === 'Last Q2') {
144
- startDate = moment().startOf('year').subtract(1, 'year').quarter(2).toDate();
145
- endDate = moment().startOf('year').subtract(1, 'year').quarter(3).subtract(1, 'days').toDate();
146
- }
147
- else if (this.shortcutValue === 'Last Q3') {
148
- startDate = moment().startOf('year').subtract(1, 'year').quarter(3).toDate();
149
- endDate = moment().startOf('year').subtract(1, 'year').quarter(4).subtract(1, 'days').toDate();
150
- }
151
- else if (this.shortcutValue === 'Last Q4') {
152
- startDate = moment().startOf('year').subtract(1, 'year').quarter(4).toDate();
153
- endDate = moment().endOf('year').subtract(1, 'year').toDate();
154
- }
155
- else if (this.shortcutValue === 'Today') {
156
- startDate = moment().startOf('day').toDate();
157
- endDate = new Date();
158
- }
159
- else if (this.shortcutValue === 'Yesterday') {
160
- startDate = moment().subtract(1, 'days').startOf('day').toDate();
161
- endDate = moment().subtract(1, 'days').endOf('day').toDate();
162
- }
163
- else if (this.shortcutValue === 'Week') {
164
- startDate = moment().startOf('isoWeek').toDate();
165
- endDate = new Date();
166
- }
167
- else if (this.shortcutValue === 'Last Week') {
168
- endDate = moment().startOf('isoWeek').subtract(1, 'days').toDate();
169
- startDate = moment(endDate).startOf('isoWeek').toDate();
170
- }
171
- else if (this.shortcutValue === 'Month') {
172
- startDate = moment().startOf('month').toDate();
173
- endDate = new Date();
174
- }
175
- else if (this.shortcutValue === 'Last Month') {
176
- endDate = moment().startOf('month').subtract(1, 'days').endOf('day').toDate();
177
- startDate = moment(endDate).startOf('month').toDate();
178
- }
179
- else if (this.shortcutValue === 'Last 30 Days') {
180
- endDate = new Date();
181
- startDate = moment().subtract(30, 'days').startOf('day').toDate();
182
- }
183
- else if (this.shortcutValue === 'Quarter') {
184
- startDate = moment().startOf('year').quarter(moment().quarter()).toDate();
185
- endDate = new Date();
186
- }
187
- else if (this.shortcutValue === 'Last Quarter') {
188
- endDate = moment().startOf('year').quarter(moment().quarter()).subtract(1, 'days').endOf('day').toDate();
189
- startDate = moment(endDate).startOf('quarter').toDate();
190
- }
191
- else if (this.shortcutValue === 'Year') {
192
- startDate = moment().startOf('year').toDate();
193
- endDate = new Date();
194
- }
195
- else if (this.shortcutValue === 'Last Year') {
196
- endDate = moment().startOf('year').subtract(1, 'days').endOf('day').toDate();
197
- startDate = moment(endDate).startOf('year').toDate();
198
- }
199
- else if (this.shortcutValue === 'All') {
200
- startDate = new Date(2017, 0, 1, 0, 0, 0, 0);
201
- endDate = new Date();
202
- }
203
- this.startDateObjForm.setValue({ year: startDate.getFullYear(), month: startDate.getMonth() + 1, day: startDate.getDate() });
204
- this.endDateObjForm.setValue({ year: endDate.getFullYear(), month: endDate.getMonth() + 1, day: endDate.getDate() });
205
- this.startDateObjFormChange.emit(this.startDateObjForm);
206
- this.endDateObjFormChange.emit(this.endDateObjForm);
207
- this.datesChanged.emit([this.startDateObjForm, this.endDateObjForm]);
208
- }
209
- this.shortcutValueChange.emit(this.shortcutValue);
210
- }
211
- this._cd.detectChanges();
212
- }
213
- }
214
- DateShortcutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DateShortcutComponent, deps: [{ token: i1.ProviderService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
215
- DateShortcutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DateShortcutComponent, selector: "date-shortcut", inputs: { startDateObj: "startDateObj", endDateObj: "endDateObj", startDateObjForm: "startDateObjForm", endDateObjForm: "endDateObjForm", shortcutValue: "shortcutValue" }, outputs: { startDateObjChange: "startDateObjChange", endDateObjChange: "endDateObjChange", startDateObjFormChange: "startDateObjFormChange", endDateObjFormChange: "endDateObjFormChange", datesChanged: "datesChanged", shortcutValueChange: "shortcutValueChange" }, providers: [ProviderService], usesInheritance: true, ngImport: i0, template: `
216
- <label class="form-control-label">Date Shortcuts</label>
217
- <ng-select [(ngModel)]="shortcutValue" (change)="onSelectShortcut()" placeholder="Select Shortcut" [clearable]="false">
218
- <ng-option value="Today">Today</ng-option>
219
- <ng-option value="Yesterday">Yesterday</ng-option>
220
- <ng-option value="Week">This Week</ng-option>
221
- <ng-option value="Last Week">Last Week</ng-option>
222
- <ng-option value="Month">This Month</ng-option>
223
- <ng-option value="Last Month">Last Month</ng-option>
224
- <ng-option value="Last 30 Days">Last 30 Days</ng-option>
225
- <ng-option value="Quarter">This Quarter</ng-option>
226
- <ng-option value="Last Quarter">Last Quarter</ng-option>
227
- <ng-option value="Year">This Year</ng-option>
228
- <ng-option value="Last Year">Last Year</ng-option>
229
- <ng-option value="Q1">Q1</ng-option>
230
- <ng-option value="Q2">Q2</ng-option>
231
- <ng-option value="Q3">Q3</ng-option>
232
- <ng-option value="Q4">Q4</ng-option>
233
- <ng-option value="Last Q1">Last Q1</ng-option>
234
- <ng-option value="Last Q2">Last Q2</ng-option>
235
- <ng-option value="Last Q3">Last Q3</ng-option>
236
- <ng-option value="Last Q4">Last Q4</ng-option>
237
- <ng-option value="All">All</ng-option>
238
- </ng-select>
239
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i3.NgOptionComponent, selector: "ng-option", inputs: ["value", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
240
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DateShortcutComponent, decorators: [{
241
- type: Component,
242
- args: [{
243
- providers: [ProviderService],
244
- selector: 'date-shortcut',
245
- template: `
246
- <label class="form-control-label">Date Shortcuts</label>
247
- <ng-select [(ngModel)]="shortcutValue" (change)="onSelectShortcut()" placeholder="Select Shortcut" [clearable]="false">
248
- <ng-option value="Today">Today</ng-option>
249
- <ng-option value="Yesterday">Yesterday</ng-option>
250
- <ng-option value="Week">This Week</ng-option>
251
- <ng-option value="Last Week">Last Week</ng-option>
252
- <ng-option value="Month">This Month</ng-option>
253
- <ng-option value="Last Month">Last Month</ng-option>
254
- <ng-option value="Last 30 Days">Last 30 Days</ng-option>
255
- <ng-option value="Quarter">This Quarter</ng-option>
256
- <ng-option value="Last Quarter">Last Quarter</ng-option>
257
- <ng-option value="Year">This Year</ng-option>
258
- <ng-option value="Last Year">Last Year</ng-option>
259
- <ng-option value="Q1">Q1</ng-option>
260
- <ng-option value="Q2">Q2</ng-option>
261
- <ng-option value="Q3">Q3</ng-option>
262
- <ng-option value="Q4">Q4</ng-option>
263
- <ng-option value="Last Q1">Last Q1</ng-option>
264
- <ng-option value="Last Q2">Last Q2</ng-option>
265
- <ng-option value="Last Q3">Last Q3</ng-option>
266
- <ng-option value="Last Q4">Last Q4</ng-option>
267
- <ng-option value="All">All</ng-option>
268
- </ng-select>
269
- `,
270
- changeDetection: ChangeDetectionStrategy.OnPush
271
- }]
272
- }], ctorParameters: function () { return [{ type: i1.ProviderService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { startDateObj: [{
273
- type: Input
274
- }], endDateObj: [{
275
- type: Input
276
- }], startDateObjForm: [{
277
- type: Input
278
- }], endDateObjForm: [{
279
- type: Input
280
- }], startDateObjChange: [{
281
- type: Output
282
- }], endDateObjChange: [{
283
- type: Output
284
- }], startDateObjFormChange: [{
285
- type: Output
286
- }], endDateObjFormChange: [{
287
- type: Output
288
- }], datesChanged: [{
289
- type: Output
290
- }], shortcutValue: [{
291
- type: Input
292
- }], shortcutValueChange: [{
293
- type: Output
294
- }] } });
295
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1zaG9ydGN1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvd2lkZ2V0cy9kYXRlLXNob3J0Y3V0L2RhdGUtc2hvcnRjdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDM0gsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBaUN2RSxNQUFNLE9BQU8scUJBQXNCLFNBQVEsYUFBYTtJQWF2RCxZQUFvQixTQUEwQixFQUFVLEdBQXNCO1FBQzdFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQURFLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFScEUsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNoRCxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzlDLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDcEQseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNsRCxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFDcEIsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUkzRCxDQUFDO0lBRUQsUUFBUTtRQUNQLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxLQUFLO1FBQ0osSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFbEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2YsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3ZCLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN6QyxJQUFJLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDL0gsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBRXZILElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLEVBQUU7b0JBQ2hDLFNBQVMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzlDLE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQzNFO3FCQUNJLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLEVBQUU7b0JBQ3JDLFNBQVMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN6RCxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUMzRTtxQkFDSSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssSUFBSSxFQUFFO29CQUNyQyxTQUFTLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDekQsT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFDM0U7cUJBQ0ksSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUksRUFBRTtvQkFDckMsU0FBUyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3pELE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQzFDO3FCQUNJLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxTQUFTLEVBQUU7b0JBQzFDLFNBQVMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDbEUsT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUMvRjtxQkFDSSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFO29CQUMxQyxTQUFTLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUM3RSxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQy9GO3FCQUNJLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxTQUFTLEVBQUU7b0JBQzFDLFNBQVMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzdFLE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFDL0Y7cUJBQ0ksSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLFNBQVMsRUFBRTtvQkFDMUMsU0FBUyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDN0UsT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUM5RDtxQkFDSSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssT0FBTyxFQUFFO29CQUN4QyxTQUFTLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUM3QyxPQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztpQkFDckI7cUJBQ0ksSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLFdBQVcsRUFBRTtvQkFDNUMsU0FBUyxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNqRSxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQzdEO3FCQUNJLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxNQUFNLEVBQUU7b0JBQ3ZDLFNBQVMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2pELE9BQU8sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO2lCQUNyQjtxQkFDSSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssV0FBVyxFQUFFO29CQUM1QyxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ25FLFNBQVMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUN4RDtxQkFDSSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssT0FBTyxFQUFFO29CQUN4QyxTQUFTLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUMvQyxPQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztpQkFDckI7cUJBQ0ksSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLFlBQVksRUFBRTtvQkFDN0MsT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDOUUsU0FBUyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQ3REO3FCQUNJLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxjQUFjLEVBQUU7b0JBQy9DLE9BQU8sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO29CQUNyQixTQUFTLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQ2xFO3FCQUNJLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxTQUFTLEVBQUU7b0JBQzFDLFNBQVMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzFFLE9BQU8sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO2lCQUNyQjtxQkFDSSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssY0FBYyxFQUFFO29CQUMvQyxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN6RyxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFDeEQ7cUJBQ0ksSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLE1BQU0sRUFBRTtvQkFDdkMsU0FBUyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDOUMsT0FBTyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7aUJBQ3JCO3FCQUNJLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxXQUFXLEVBQUU7b0JBQzVDLE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzdFLFNBQVMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUNyRDtxQkFDSSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssS0FBSyxFQUFFO29CQUN0QyxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQzdDLE9BQU8sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO2lCQUNyQjtnQkFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFDLENBQUM7Z0JBQy9HLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUMsQ0FBQztnQkFFdkcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUU1QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7YUFDN0Q7aUJBQ0ksSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDdEQsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzdKLElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUVySixJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssSUFBSSxFQUFFO29CQUNoQyxTQUFTLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUM5QyxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUMzRTtxQkFDSSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssSUFBSSxFQUFFO29CQUNyQyxTQUFTLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDekQsT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFDM0U7cUJBQ0ksSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUksRUFBRTtvQkFDckMsU0FBUyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3pELE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQzNFO3FCQUNJLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLEVBQUU7b0JBQ3JDLFNBQVMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN6RCxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUMxQztxQkFDSSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFO29CQUMxQyxTQUFTLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2xFLE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFDL0Y7cUJBQ0ksSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLFNBQVMsRUFBRTtvQkFDMUMsU0FBUyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDN0UsT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUMvRjtxQkFDSSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFO29CQUMxQyxTQUFTLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUM3RSxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQy9GO3FCQUNJLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxTQUFTLEVBQUU7b0JBQzFDLFNBQVMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzdFLE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFDOUQ7cUJBQ0ksSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLE9BQU8sRUFBRTtvQkFDeEMsU0FBUyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDN0MsT0FBTyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7aUJBQ3JCO3FCQUNJLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxXQUFXLEVBQUU7b0JBQzVDLFNBQVMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDakUsT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUM3RDtxQkFDSSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssTUFBTSxFQUFFO29CQUN2QyxTQUFTLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNqRCxPQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztpQkFDckI7cUJBQ0ksSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLFdBQVcsRUFBRTtvQkFDNUMsT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNuRSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFDeEQ7cUJBQ0ksSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLE9BQU8sRUFBRTtvQkFDeEMsU0FBUyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDL0MsT0FBTyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7aUJBQ3JCO3FCQUNJLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxZQUFZLEVBQUU7b0JBQzdDLE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzlFLFNBQVMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUN0RDtxQkFDSSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssY0FBYyxFQUFFO29CQUMvQyxPQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFDckIsU0FBUyxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUNsRTtxQkFDSSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFO29CQUMxQyxTQUFTLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUMxRSxPQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztpQkFDckI7cUJBQ0ksSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLGNBQWMsRUFBRTtvQkFDL0MsT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDekcsU0FBUyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQ3hEO3FCQUNJLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxNQUFNLEVBQUU7b0JBQ3ZDLFNBQVMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzlDLE9BQU8sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO2lCQUNyQjtxQkFDSSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssV0FBVyxFQUFFO29CQUM1QyxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUM3RSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFDckQ7cUJBQ0ksSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLEtBQUssRUFBRTtvQkFDdEMsU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUM3QyxPQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztpQkFDckI7Z0JBRUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxTQUFTLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUUsRUFBQyxDQUFDLENBQUM7Z0JBQzNILElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFDLENBQUMsQ0FBQztnQkFFbkgsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBRXBELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO2FBQ3JFO1lBRUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDbEQ7UUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzFCLENBQUM7O21IQTdOVyxxQkFBcUI7dUdBQXJCLHFCQUFxQiwyZEE5QnRCLENBQUMsZUFBZSxDQUFDLGlEQUVsQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBd0JUOzRGQUlXLHFCQUFxQjtrQkEvQmpDLFNBQVM7bUJBQUM7b0JBQ1YsU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUM1QixRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF3QlQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DO3NJQUdTLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDSSxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRSxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLG1CQUFtQjtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG5pbXBvcnQgeyBQcm92aWRlclNlcnZpY2UsIEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9yZXNvbHZlaW8tY2xhc3MnO1xuXG5AQ29tcG9uZW50KHtcblx0cHJvdmlkZXJzOiBbUHJvdmlkZXJTZXJ2aWNlXSxcblx0c2VsZWN0b3I6ICdkYXRlLXNob3J0Y3V0Jyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wtbGFiZWxcIj5EYXRlIFNob3J0Y3V0czwvbGFiZWw+XG5cdFx0PG5nLXNlbGVjdCBbKG5nTW9kZWwpXT1cInNob3J0Y3V0VmFsdWVcIiAoY2hhbmdlKT1cIm9uU2VsZWN0U2hvcnRjdXQoKVwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFNob3J0Y3V0XCIgW2NsZWFyYWJsZV09XCJmYWxzZVwiPlxuXHRcdFx0PG5nLW9wdGlvbiB2YWx1ZT1cIlRvZGF5XCI+VG9kYXk8L25nLW9wdGlvbj5cblx0XHRcdDxuZy1vcHRpb24gdmFsdWU9XCJZZXN0ZXJkYXlcIj5ZZXN0ZXJkYXk8L25nLW9wdGlvbj5cblx0XHRcdDxuZy1vcHRpb24gdmFsdWU9XCJXZWVrXCI+VGhpcyBXZWVrPC9uZy1vcHRpb24+XG5cdFx0XHQ8bmctb3B0aW9uIHZhbHVlPVwiTGFzdCBXZWVrXCI+TGFzdCBXZWVrPC9uZy1vcHRpb24+XG5cdFx0XHQ8bmctb3B0aW9uIHZhbHVlPVwiTW9udGhcIj5UaGlzIE1vbnRoPC9uZy1vcHRpb24+XG5cdFx0XHQ8bmctb3B0aW9uIHZhbHVlPVwiTGFzdCBNb250aFwiPkxhc3QgTW9udGg8L25nLW9wdGlvbj5cblx0XHRcdDxuZy1vcHRpb24gdmFsdWU9XCJMYXN0IDMwIERheXNcIj5MYXN0IDMwIERheXM8L25nLW9wdGlvbj5cblx0XHRcdDxuZy1vcHRpb24gdmFsdWU9XCJRdWFydGVyXCI+VGhpcyBRdWFydGVyPC9uZy1vcHRpb24+XG5cdFx0XHQ8bmctb3B0aW9uIHZhbHVlPVwiTGFzdCBRdWFydGVyXCI+TGFzdCBRdWFydGVyPC9uZy1vcHRpb24+XG5cdFx0XHQ8bmctb3B0aW9uIHZhbHVlPVwiWWVhclwiPlRoaXMgWWVhcjwvbmctb3B0aW9uPlxuXHRcdFx0PG5nLW9wdGlvbiB2YWx1ZT1cIkxhc3QgWWVhclwiPkxhc3QgWWVhcjwvbmctb3B0aW9uPlxuXHRcdFx0PG5nLW9wdGlvbiB2YWx1ZT1cIlExXCI+UTE8L25nLW9wdGlvbj5cblx0XHRcdDxuZy1vcHRpb24gdmFsdWU9XCJRMlwiPlEyPC9uZy1vcHRpb24+XG5cdFx0XHQ8bmctb3B0aW9uIHZhbHVlPVwiUTNcIj5RMzwvbmctb3B0aW9uPlxuXHRcdFx0PG5nLW9wdGlvbiB2YWx1ZT1cIlE0XCI+UTQ8L25nLW9wdGlvbj5cblx0XHRcdDxuZy1vcHRpb24gdmFsdWU9XCJMYXN0IFExXCI+TGFzdCBRMTwvbmctb3B0aW9uPlxuXHRcdFx0PG5nLW9wdGlvbiB2YWx1ZT1cIkxhc3QgUTJcIj5MYXN0IFEyPC9uZy1vcHRpb24+XG5cdFx0XHQ8bmctb3B0aW9uIHZhbHVlPVwiTGFzdCBRM1wiPkxhc3QgUTM8L25nLW9wdGlvbj5cblx0XHRcdDxuZy1vcHRpb24gdmFsdWU9XCJMYXN0IFE0XCI+TGFzdCBRNDwvbmctb3B0aW9uPlxuXHRcdFx0PG5nLW9wdGlvbiB2YWx1ZT1cIkFsbFwiPkFsbDwvbmctb3B0aW9uPlxuXHRcdDwvbmctc2VsZWN0PlxuXHRgLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcblxuZXhwb3J0IGNsYXNzIERhdGVTaG9ydGN1dENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQgeyBcblx0QElucHV0KCkgc3RhcnREYXRlT2JqO1xuXHRASW5wdXQoKSBlbmREYXRlT2JqO1xuXHRASW5wdXQoKSBzdGFydERhdGVPYmpGb3JtO1xuXHRASW5wdXQoKSBlbmREYXRlT2JqRm9ybTtcblx0QE91dHB1dCgpIHN0YXJ0RGF0ZU9iakNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8T2JqZWN0PigpO1xuXHRAT3V0cHV0KCkgZW5kRGF0ZU9iakNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8T2JqZWN0PigpO1xuXHRAT3V0cHV0KCkgc3RhcnREYXRlT2JqRm9ybUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8T2JqZWN0PigpO1xuXHRAT3V0cHV0KCkgZW5kRGF0ZU9iakZvcm1DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE9iamVjdD4oKTtcblx0QE91dHB1dCgpIGRhdGVzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblx0QElucHV0KCkgc2hvcnRjdXRWYWx1ZSA9IG51bGw7XG5cdEBPdXRwdXQoKSBzaG9ydGN1dFZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTdHJpbmc+KCk7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfc2VydmljZXM6IFByb3ZpZGVyU2VydmljZSwgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XG5cdFx0c3VwZXIoX3NlcnZpY2VzKTtcblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMub25TZWxlY3RTaG9ydGN1dCgpO1xuXHR9XG5cblx0cmVzZXQoKSB7XG5cdFx0dGhpcy5zaG9ydGN1dFZhbHVlID0gbnVsbDtcblx0XHR0aGlzLnNob3J0Y3V0VmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnNob3J0Y3V0VmFsdWUpO1xuXG5cdFx0dGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuXHR9XG5cblx0b25TZWxlY3RTaG9ydGN1dCgpIHtcblx0XHRpZiAodGhpcy5zaG9ydGN1dFZhbHVlKSB7XG5cdFx0XHRpZiAodGhpcy5zdGFydERhdGVPYmogJiYgdGhpcy5lbmREYXRlT2JqKSB7XG5cdFx0XHRcdGxldCBzdGFydERhdGUgPSBtb21lbnQobmV3IERhdGUodGhpcy5zdGFydERhdGVPYmpbJ3llYXInXSwgdGhpcy5zdGFydERhdGVPYmpbJ21vbnRoJ10gLSAxLCB0aGlzLnN0YXJ0RGF0ZU9ialsnZGF5J10pKS50b0RhdGUoKTtcblx0XHRcdFx0bGV0IGVuZERhdGUgPSBtb21lbnQobmV3IERhdGUodGhpcy5lbmREYXRlT2JqWyd5ZWFyJ10sIHRoaXMuZW5kRGF0ZU9ialsnbW9udGgnXSAtIDEsIHRoaXMuZW5kRGF0ZU9ialsnZGF5J10pKS50b0RhdGUoKTtcblxuXHRcdFx0XHRpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnUTEnKSB7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdGVuZERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykucXVhcnRlcigyKS5zdWJ0cmFjdCgxLCAnZGF5cycpLnRvRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ1EyJykge1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5xdWFydGVyKDIpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdGVuZERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykucXVhcnRlcigzKS5zdWJ0cmFjdCgxLCAnZGF5cycpLnRvRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ1EzJykge1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5xdWFydGVyKDMpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdGVuZERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykucXVhcnRlcig0KS5zdWJ0cmFjdCgxLCAnZGF5cycpLnRvRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ1E0Jykge1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5xdWFydGVyKDQpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdGVuZERhdGUgPSBtb21lbnQoKS5lbmRPZigneWVhcicpLnRvRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ0xhc3QgUTEnKSB7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnN1YnRyYWN0KDEsICd5ZWFyJykudG9EYXRlKCk7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5zdWJ0cmFjdCgxLCAneWVhcicpLnF1YXJ0ZXIoMikuc3VidHJhY3QoMSwgJ2RheXMnKS50b0RhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdMYXN0IFEyJykge1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5zdWJ0cmFjdCgxLCAneWVhcicpLnF1YXJ0ZXIoMikudG9EYXRlKCk7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5zdWJ0cmFjdCgxLCAneWVhcicpLnF1YXJ0ZXIoMykuc3VidHJhY3QoMSwgJ2RheXMnKS50b0RhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdMYXN0IFEzJykge1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5zdWJ0cmFjdCgxLCAneWVhcicpLnF1YXJ0ZXIoMykudG9EYXRlKCk7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5zdWJ0cmFjdCgxLCAneWVhcicpLnF1YXJ0ZXIoNCkuc3VidHJhY3QoMSwgJ2RheXMnKS50b0RhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdMYXN0IFE0Jykge1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5zdWJ0cmFjdCgxLCAneWVhcicpLnF1YXJ0ZXIoNCkudG9EYXRlKCk7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG1vbWVudCgpLmVuZE9mKCd5ZWFyJykuc3VidHJhY3QoMSwgJ3llYXInKS50b0RhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdUb2RheScpIHtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCdkYXknKS50b0RhdGUoKTtcblx0XHRcdFx0XHRlbmREYXRlID0gbmV3IERhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdZZXN0ZXJkYXknKSB7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ2RheXMnKS5zdGFydE9mKCdkYXknKS50b0RhdGUoKTtcblx0XHRcdFx0XHRlbmREYXRlID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ2RheXMnKS5lbmRPZignZGF5JykudG9EYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnV2VlaycpIHtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCdpc29XZWVrJykudG9EYXRlKCk7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG5ldyBEYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnTGFzdCBXZWVrJykge1xuXHRcdFx0XHRcdGVuZERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCdpc29XZWVrJykuc3VidHJhY3QoMSwgJ2RheXMnKS50b0RhdGUoKTtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoZW5kRGF0ZSkuc3RhcnRPZignaXNvV2VlaycpLnRvRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ01vbnRoJykge1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ21vbnRoJykudG9EYXRlKCk7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG5ldyBEYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnTGFzdCBNb250aCcpIHtcblx0XHRcdFx0XHRlbmREYXRlID0gbW9tZW50KCkuc3RhcnRPZignbW9udGgnKS5zdWJ0cmFjdCgxLCAnZGF5cycpLmVuZE9mKCdkYXknKS50b0RhdGUoKTtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoZW5kRGF0ZSkuc3RhcnRPZignbW9udGgnKS50b0RhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdMYXN0IDMwIERheXMnKSB7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG5ldyBEYXRlKCk7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KCkuc3VidHJhY3QoMzAsICdkYXlzJykuc3RhcnRPZignZGF5JykudG9EYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnUXVhcnRlcicpIHtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykucXVhcnRlcihtb21lbnQoKS5xdWFydGVyKCkpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdGVuZERhdGUgPSBuZXcgRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ0xhc3QgUXVhcnRlcicpIHtcblx0XHRcdFx0XHRlbmREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnF1YXJ0ZXIobW9tZW50KCkucXVhcnRlcigpKS5zdWJ0cmFjdCgxLCAnZGF5cycpLmVuZE9mKCdkYXknKS50b0RhdGUoKTtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoZW5kRGF0ZSkuc3RhcnRPZigncXVhcnRlcicpLnRvRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ1llYXInKSB7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdGVuZERhdGUgPSBuZXcgRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ0xhc3QgWWVhcicpIHtcblx0XHRcdFx0XHRlbmREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnN1YnRyYWN0KDEsICdkYXlzJykuZW5kT2YoJ2RheScpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudChlbmREYXRlKS5zdGFydE9mKCd5ZWFyJykudG9EYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnQWxsJykge1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKDIwMTcsIDAsIDEsIDAsIDAsIDAsIDApO1xuXHRcdFx0XHRcdGVuZERhdGUgPSBuZXcgRGF0ZSgpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dGhpcy5zdGFydERhdGVPYmogPSB7eWVhcjogc3RhcnREYXRlLmdldEZ1bGxZZWFyKCksIG1vbnRoOiBzdGFydERhdGUuZ2V0TW9udGgoKSArIDEsIGRheTogc3RhcnREYXRlLmdldERhdGUoKX07XG5cdFx0XHRcdHRoaXMuZW5kRGF0ZU9iaiA9IHt5ZWFyOiBlbmREYXRlLmdldEZ1bGxZZWFyKCksIG1vbnRoOiBlbmREYXRlLmdldE1vbnRoKCkgKyAxLCBkYXk6IGVuZERhdGUuZ2V0RGF0ZSgpfTtcblxuXHRcdFx0XHR0aGlzLnN0YXJ0RGF0ZU9iakNoYW5nZS5lbWl0KHRoaXMuc3RhcnREYXRlT2JqKTtcblx0XHRcdFx0dGhpcy5lbmREYXRlT2JqQ2hhbmdlLmVtaXQodGhpcy5lbmREYXRlT2JqKTtcblxuXHRcdFx0XHR0aGlzLmRhdGVzQ2hhbmdlZC5lbWl0KFt0aGlzLnN0YXJ0RGF0ZU9iaiwgdGhpcy5lbmREYXRlT2JqXSk7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIGlmICh0aGlzLnN0YXJ0RGF0ZU9iakZvcm0gJiYgdGhpcy5lbmREYXRlT2JqRm9ybSkge1xuXHRcdFx0XHRsZXQgc3RhcnREYXRlID0gbW9tZW50KG5ldyBEYXRlKHRoaXMuc3RhcnREYXRlT2JqRm9ybS52YWx1ZVsneWVhciddLCB0aGlzLnN0YXJ0RGF0ZU9iakZvcm0udmFsdWVbJ21vbnRoJ10gLSAxLCB0aGlzLnN0YXJ0RGF0ZU9iakZvcm0udmFsdWVbJ2RheSddKSkudG9EYXRlKCk7XG5cdFx0XHRcdGxldCBlbmREYXRlID0gbW9tZW50KG5ldyBEYXRlKHRoaXMuZW5kRGF0ZU9iakZvcm0udmFsdWVbJ3llYXInXSwgdGhpcy5lbmREYXRlT2JqRm9ybS52YWx1ZVsnbW9udGgnXSAtIDEsIHRoaXMuZW5kRGF0ZU9iakZvcm0udmFsdWVbJ2RheSddKSkudG9EYXRlKCk7XG5cblx0XHRcdFx0aWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ1ExJykge1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS50b0RhdGUoKTtcblx0XHRcdFx0XHRlbmREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnF1YXJ0ZXIoMikuc3VidHJhY3QoMSwgJ2RheXMnKS50b0RhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdRMicpIHtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykucXVhcnRlcigyKS50b0RhdGUoKTtcblx0XHRcdFx0XHRlbmREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnF1YXJ0ZXIoMykuc3VidHJhY3QoMSwgJ2RheXMnKS50b0RhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdRMycpIHtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykucXVhcnRlcigzKS50b0RhdGUoKTtcblx0XHRcdFx0XHRlbmREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnF1YXJ0ZXIoNCkuc3VidHJhY3QoMSwgJ2RheXMnKS50b0RhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdRNCcpIHtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykucXVhcnRlcig0KS50b0RhdGUoKTtcblx0XHRcdFx0XHRlbmREYXRlID0gbW9tZW50KCkuZW5kT2YoJ3llYXInKS50b0RhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdMYXN0IFExJykge1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5zdWJ0cmFjdCgxLCAneWVhcicpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdGVuZERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykuc3VidHJhY3QoMSwgJ3llYXInKS5xdWFydGVyKDIpLnN1YnRyYWN0KDEsICdkYXlzJykudG9EYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnTGFzdCBRMicpIHtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykuc3VidHJhY3QoMSwgJ3llYXInKS5xdWFydGVyKDIpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdGVuZERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykuc3VidHJhY3QoMSwgJ3llYXInKS5xdWFydGVyKDMpLnN1YnRyYWN0KDEsICdkYXlzJykudG9EYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnTGFzdCBRMycpIHtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykuc3VidHJhY3QoMSwgJ3llYXInKS5xdWFydGVyKDMpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdGVuZERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykuc3VidHJhY3QoMSwgJ3llYXInKS5xdWFydGVyKDQpLnN1YnRyYWN0KDEsICdkYXlzJykudG9EYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnTGFzdCBRNCcpIHtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykuc3VidHJhY3QoMSwgJ3llYXInKS5xdWFydGVyKDQpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdGVuZERhdGUgPSBtb21lbnQoKS5lbmRPZigneWVhcicpLnN1YnRyYWN0KDEsICd5ZWFyJykudG9EYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnVG9kYXknKSB7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KCkuc3RhcnRPZignZGF5JykudG9EYXRlKCk7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG5ldyBEYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnWWVzdGVyZGF5Jykge1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN1YnRyYWN0KDEsICdkYXlzJykuc3RhcnRPZignZGF5JykudG9EYXRlKCk7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG1vbWVudCgpLnN1YnRyYWN0KDEsICdkYXlzJykuZW5kT2YoJ2RheScpLnRvRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ1dlZWsnKSB7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KCkuc3RhcnRPZignaXNvV2VlaycpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdGVuZERhdGUgPSBuZXcgRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ0xhc3QgV2VlaycpIHtcblx0XHRcdFx0XHRlbmREYXRlID0gbW9tZW50KCkuc3RhcnRPZignaXNvV2VlaycpLnN1YnRyYWN0KDEsICdkYXlzJykudG9EYXRlKCk7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KGVuZERhdGUpLnN0YXJ0T2YoJ2lzb1dlZWsnKS50b0RhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdNb250aCcpIHtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoKS5zdGFydE9mKCdtb250aCcpLnRvRGF0ZSgpO1xuXHRcdFx0XHRcdGVuZERhdGUgPSBuZXcgRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ0xhc3QgTW9udGgnKSB7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ21vbnRoJykuc3VidHJhY3QoMSwgJ2RheXMnKS5lbmRPZignZGF5JykudG9EYXRlKCk7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KGVuZERhdGUpLnN0YXJ0T2YoJ21vbnRoJykudG9EYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zaG9ydGN1dFZhbHVlID09PSAnTGFzdCAzMCBEYXlzJykge1xuXHRcdFx0XHRcdGVuZERhdGUgPSBuZXcgRGF0ZSgpO1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN1YnRyYWN0KDMwLCAnZGF5cycpLnN0YXJ0T2YoJ2RheScpLnRvRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ1F1YXJ0ZXInKSB7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnF1YXJ0ZXIobW9tZW50KCkucXVhcnRlcigpKS50b0RhdGUoKTtcblx0XHRcdFx0XHRlbmREYXRlID0gbmV3IERhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdMYXN0IFF1YXJ0ZXInKSB7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5xdWFydGVyKG1vbWVudCgpLnF1YXJ0ZXIoKSkuc3VidHJhY3QoMSwgJ2RheXMnKS5lbmRPZignZGF5JykudG9EYXRlKCk7XG5cdFx0XHRcdFx0c3RhcnREYXRlID0gbW9tZW50KGVuZERhdGUpLnN0YXJ0T2YoJ3F1YXJ0ZXInKS50b0RhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdZZWFyJykge1xuXHRcdFx0XHRcdHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS50b0RhdGUoKTtcblx0XHRcdFx0XHRlbmREYXRlID0gbmV3IERhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLnNob3J0Y3V0VmFsdWUgPT09ICdMYXN0IFllYXInKSB7XG5cdFx0XHRcdFx0ZW5kRGF0ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3llYXInKS5zdWJ0cmFjdCgxLCAnZGF5cycpLmVuZE9mKCdkYXknKS50b0RhdGUoKTtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBtb21lbnQoZW5kRGF0ZSkuc3RhcnRPZigneWVhcicpLnRvRGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc2hvcnRjdXRWYWx1ZSA9PT0gJ0FsbCcpIHtcblx0XHRcdFx0XHRzdGFydERhdGUgPSBuZXcgRGF0ZSgyMDE3LCAwLCAxLCAwLCAwLCAwLCAwKTtcblx0XHRcdFx0XHRlbmREYXRlID0gbmV3IERhdGUoKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHRoaXMuc3RhcnREYXRlT2JqRm9ybS5zZXRWYWx1ZSh7eWVhcjogc3RhcnREYXRlLmdldEZ1bGxZZWFyKCksIG1vbnRoOiBzdGFydERhdGUuZ2V0TW9udGgoKSArIDEsIGRheTogc3RhcnREYXRlLmdldERhdGUoKX0pO1xuXHRcdFx0XHR0aGlzLmVuZERhdGVPYmpGb3JtLnNldFZhbHVlKHt5ZWFyOiBlbmREYXRlLmdldEZ1bGxZZWFyKCksIG1vbnRoOiBlbmREYXRlLmdldE1vbnRoKCkgKyAxLCBkYXk6IGVuZERhdGUuZ2V0RGF0ZSgpfSk7XG5cblx0XHRcdFx0dGhpcy5zdGFydERhdGVPYmpGb3JtQ2hhbmdlLmVtaXQodGhpcy5zdGFydERhdGVPYmpGb3JtKTtcblx0XHRcdFx0dGhpcy5lbmREYXRlT2JqRm9ybUNoYW5nZS5lbWl0KHRoaXMuZW5kRGF0ZU9iakZvcm0pO1xuXG5cdFx0XHRcdHRoaXMuZGF0ZXNDaGFuZ2VkLmVtaXQoW3RoaXMuc3RhcnREYXRlT2JqRm9ybSwgdGhpcy5lbmREYXRlT2JqRm9ybV0pO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnNob3J0Y3V0VmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnNob3J0Y3V0VmFsdWUpO1xuXHRcdH1cblxuXHRcdHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcblx0fVxufVxuIl19
@@ -1,32 +0,0 @@
1
- import { FormsModule } from '@angular/forms';
2
- import { NgModule } from '@angular/core';
3
- import { CommonModule } from '@angular/common';
4
- import { DateShortcutComponent } from './date-shortcut.component';
5
- import { NgSelectModule } from '@ng-select/ng-select';
6
- import * as i0 from "@angular/core";
7
- export class DateShortcutModule {
8
- }
9
- DateShortcutModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DateShortcutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- DateShortcutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: DateShortcutModule, declarations: [DateShortcutComponent], imports: [FormsModule,
11
- CommonModule,
12
- NgSelectModule], exports: [DateShortcutComponent] });
13
- DateShortcutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DateShortcutModule, imports: [FormsModule,
14
- CommonModule,
15
- NgSelectModule] });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DateShortcutModule, decorators: [{
17
- type: NgModule,
18
- args: [{
19
- imports: [
20
- FormsModule,
21
- CommonModule,
22
- NgSelectModule
23
- ],
24
- exports: [
25
- DateShortcutComponent
26
- ],
27
- declarations: [
28
- DateShortcutComponent
29
- ]
30
- }]
31
- }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1zaG9ydGN1dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvd2lkZ2V0cy9kYXRlLXNob3J0Y3V0L2RhdGUtc2hvcnRjdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBZXRELE1BQU0sT0FBTyxrQkFBa0I7O2dIQUFsQixrQkFBa0I7aUhBQWxCLGtCQUFrQixpQkFIN0IscUJBQXFCLGFBUnJCLFdBQVc7UUFDWCxZQUFZO1FBQ1osY0FBYyxhQUdkLHFCQUFxQjtpSEFNVixrQkFBa0IsWUFYN0IsV0FBVztRQUNYLFlBQVk7UUFDWixjQUFjOzRGQVNILGtCQUFrQjtrQkFiOUIsUUFBUTttQkFBQztvQkFDVCxPQUFPLEVBQUU7d0JBQ1IsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGNBQWM7cUJBQ2Q7b0JBQ0QsT0FBTyxFQUFFO3dCQUNSLHFCQUFxQjtxQkFDckI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNiLHFCQUFxQjtxQkFDckI7aUJBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBEYXRlU2hvcnRjdXRDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtc2hvcnRjdXQuY29tcG9uZW50JztcdFx0XHRcbmltcG9ydCB7IE5nU2VsZWN0TW9kdWxlIH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xuXG5ATmdNb2R1bGUoe1xuXHRpbXBvcnRzOiBbXG5cdFx0Rm9ybXNNb2R1bGUsXG5cdFx0Q29tbW9uTW9kdWxlLFxuXHRcdE5nU2VsZWN0TW9kdWxlXG5cdF0sXG5cdGV4cG9ydHM6IFtcblx0XHREYXRlU2hvcnRjdXRDb21wb25lbnRcblx0XSxcblx0ZGVjbGFyYXRpb25zOiBbXG5cdFx0RGF0ZVNob3J0Y3V0Q29tcG9uZW50XG5cdF1cbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVNob3J0Y3V0TW9kdWxlIHsgfVxuIl19