@one-paragon/angular-utilities 0.1.32-beta → 0.1.32

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 (231) hide show
  1. package/action-state/action-state-spinner/action-state-spinner.component.d.ts +12 -12
  2. package/action-state/action-state-ui/action-state-ui.module.d.ts +9 -9
  3. package/action-state/index.d.ts +4 -4
  4. package/action-state/ngrx-ext/ngrx-ext.module.d.ts +8 -8
  5. package/action-state/ngrx.d.ts +31 -31
  6. package/esm2020/action-state/action-state-spinner/action-state-spinner.component.mjs +23 -23
  7. package/esm2020/action-state/action-state-ui/action-state-ui.module.mjs +28 -28
  8. package/esm2020/action-state/index.mjs +8 -8
  9. package/esm2020/action-state/ngrx-ext/ngrx-ext.module.mjs +23 -23
  10. package/esm2020/action-state/ngrx.mjs +42 -42
  11. package/esm2020/http-request-state/HttpRequestStateFactory.mjs +26 -26
  12. package/esm2020/http-request-state/HttpRequestStateStore.mjs +96 -96
  13. package/esm2020/http-request-state/directives/HttpStateDirectiveBase.mjs +33 -33
  14. package/esm2020/http-request-state/directives/http-error-state-directive.mjs +28 -28
  15. package/esm2020/http-request-state/directives/http-inProgress-state-directive.mjs +28 -28
  16. package/esm2020/http-request-state/directives/http-notStarted-state-directive.mjs +28 -28
  17. package/esm2020/http-request-state/directives/http-success-state-directive.mjs +33 -33
  18. package/esm2020/http-request-state/directives/index.mjs +5 -5
  19. package/esm2020/http-request-state/directives/request-state-directive.mjs +59 -59
  20. package/esm2020/http-request-state/helpers.mjs +21 -21
  21. package/esm2020/http-request-state/http-request-state.mjs +38 -38
  22. package/esm2020/http-request-state/http-state-module.mjs +40 -40
  23. package/esm2020/http-request-state/index.mjs +6 -6
  24. package/esm2020/http-request-state/rxjs/getRequestorBody.mjs +3 -3
  25. package/esm2020/http-request-state/rxjs/getRequestorState.mjs +2 -2
  26. package/esm2020/http-request-state/rxjs/index.mjs +4 -4
  27. package/esm2020/http-request-state/rxjs/tapError.mjs +11 -11
  28. package/esm2020/http-request-state/rxjs/tapSuccess.mjs +11 -11
  29. package/esm2020/http-request-state/types.mjs +15 -15
  30. package/esm2020/ngrx/actionable-selector.mjs +75 -75
  31. package/esm2020/ngrx/index.mjs +1 -1
  32. package/esm2020/one-paragon-angular-utilities.mjs +4 -4
  33. package/esm2020/public-api.mjs +19 -19
  34. package/esm2020/rxjs/defaultShareReplay.mjs +6 -6
  35. package/esm2020/rxjs/index.mjs +5 -5
  36. package/esm2020/rxjs/mapError.mjs +7 -7
  37. package/esm2020/rxjs/rxjs-operators.mjs +91 -91
  38. package/esm2020/rxjs/subjectifier.mjs +15 -15
  39. package/esm2020/table-builder/classes/DefaultSettings.mjs +6 -6
  40. package/esm2020/table-builder/classes/GenericTableDataSource.mjs +13 -13
  41. package/esm2020/table-builder/classes/MatTableObservableDataSource.mjs +21 -41
  42. package/esm2020/table-builder/classes/TableBuilderConfig.mjs +3 -3
  43. package/esm2020/table-builder/classes/TableState.mjs +31 -31
  44. package/esm2020/table-builder/classes/data-filter.mjs +26 -26
  45. package/esm2020/table-builder/classes/display-col.mjs +1 -1
  46. package/esm2020/table-builder/classes/filter-info.mjs +73 -73
  47. package/esm2020/table-builder/classes/table-builder-general-settings.mjs +67 -67
  48. package/esm2020/table-builder/classes/table-builder.mjs +76 -76
  49. package/esm2020/table-builder/classes/table-store.mjs +292 -292
  50. package/esm2020/table-builder/components/array-column.component.mjs +32 -32
  51. package/esm2020/table-builder/components/column-builder/column-builder.component.mjs +112 -112
  52. package/esm2020/table-builder/components/date-filter/date-filter.component.mjs +25 -25
  53. package/esm2020/table-builder/components/date-time-filter/date-time-filter.component.mjs +22 -22
  54. package/esm2020/table-builder/components/filter/filter.component.mjs +54 -54
  55. package/esm2020/table-builder/components/filter/in-list/in-list-filter.component.mjs +79 -79
  56. package/esm2020/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +45 -45
  57. package/esm2020/table-builder/components/generic-table/generic-table.component.mjs +202 -204
  58. package/esm2020/table-builder/components/generic-table/paginator.component.mjs +60 -60
  59. package/esm2020/table-builder/components/group-by-list/group-by-list.component.mjs +22 -22
  60. package/esm2020/table-builder/components/header-menu/header-menu.component.mjs +90 -90
  61. package/esm2020/table-builder/components/in-filter/in-filter.component.mjs +63 -63
  62. package/esm2020/table-builder/components/index.mjs +10 -10
  63. package/esm2020/table-builder/components/initialization-component/initialization-component.mjs +33 -33
  64. package/esm2020/table-builder/components/link-column.component.mjs +30 -30
  65. package/esm2020/table-builder/components/number-filter/number-filter.component.mjs +26 -26
  66. package/esm2020/table-builder/components/sort-menu/sort-menu.component-store.mjs +41 -41
  67. package/esm2020/table-builder/components/sort-menu/sort-menu.component.mjs +75 -75
  68. package/esm2020/table-builder/components/table-container/table-container.mjs +322 -322
  69. package/esm2020/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +42 -42
  70. package/esm2020/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +30 -30
  71. package/esm2020/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs +24 -24
  72. package/esm2020/table-builder/directives/custom-cell-directive.mjs +58 -58
  73. package/esm2020/table-builder/directives/index.mjs +6 -6
  74. package/esm2020/table-builder/directives/multi-sort.directive.mjs +42 -42
  75. package/esm2020/table-builder/directives/resize-column.directive.mjs +85 -85
  76. package/esm2020/table-builder/directives/table-wrapper.directive.mjs +26 -26
  77. package/esm2020/table-builder/directives/tb-filter.directive.mjs +403 -403
  78. package/esm2020/table-builder/enums/filterTypes.mjs +72 -72
  79. package/esm2020/table-builder/functions/boolean-filter-function.mjs +9 -9
  80. package/esm2020/table-builder/functions/date-filter-function.mjs +58 -58
  81. package/esm2020/table-builder/functions/download-data.mjs +11 -11
  82. package/esm2020/table-builder/functions/null-filter-function.mjs +7 -7
  83. package/esm2020/table-builder/functions/number-filter-function.mjs +31 -31
  84. package/esm2020/table-builder/functions/sort-data-function.mjs +4 -4
  85. package/esm2020/table-builder/functions/string-filter-function.mjs +40 -40
  86. package/esm2020/table-builder/interfaces/ColumnInfo.mjs +1 -1
  87. package/esm2020/table-builder/interfaces/dictionary.mjs +1 -1
  88. package/esm2020/table-builder/interfaces/report-def.mjs +35 -35
  89. package/esm2020/table-builder/material.module.mjs +207 -207
  90. package/esm2020/table-builder/ngrx/actions.mjs +4 -4
  91. package/esm2020/table-builder/ngrx/effects.mjs +47 -47
  92. package/esm2020/table-builder/ngrx/reducer.mjs +51 -51
  93. package/esm2020/table-builder/ngrx/selectors.mjs +23 -23
  94. package/esm2020/table-builder/pipes/column-total.pipe.mjs +19 -19
  95. package/esm2020/table-builder/pipes/format-filter-type.pipe.mjs +17 -17
  96. package/esm2020/table-builder/pipes/format-filter-value.pipe.mjs +45 -45
  97. package/esm2020/table-builder/pipes/key-display.mjs +19 -19
  98. package/esm2020/table-builder/services/export-to-csv.service.mjs +88 -88
  99. package/esm2020/table-builder/services/link-creator.service.mjs +42 -42
  100. package/esm2020/table-builder/services/table-template-service.mjs +44 -44
  101. package/esm2020/table-builder/services/transform-creator.mjs +75 -75
  102. package/esm2020/table-builder/table-builder.module.mjs +207 -215
  103. package/esm2020/utilities/directives/auto-focus.directive.mjs +25 -25
  104. package/esm2020/utilities/directives/clickEmitterDirective.mjs +20 -20
  105. package/esm2020/utilities/directives/clickSubject.mjs +26 -26
  106. package/esm2020/utilities/directives/conditional-classes.directive.mjs +35 -35
  107. package/esm2020/utilities/directives/dialog-service.mjs +25 -25
  108. package/esm2020/utilities/directives/dialog.mjs +137 -137
  109. package/esm2020/utilities/directives/mat-toggle-group-directive.mjs +59 -59
  110. package/esm2020/utilities/directives/prevent-enter.directive.mjs +18 -18
  111. package/esm2020/utilities/directives/stop-propagation.directive.mjs +24 -24
  112. package/esm2020/utilities/directives/styler.mjs +25 -25
  113. package/esm2020/utilities/directives/trim-whitespace.directive.mjs +29 -29
  114. package/esm2020/utilities/index.mjs +16 -16
  115. package/esm2020/utilities/module.mjs +91 -91
  116. package/esm2020/utilities/pipes/function.pipe.mjs +20 -20
  117. package/esm2020/utilities/pipes/phone.pipe.mjs +19 -19
  118. package/esm2020/utilities/pipes/space-case.pipes.mjs +28 -28
  119. package/fesm2015/one-paragon-angular-utilities.mjs +4413 -4442
  120. package/fesm2015/one-paragon-angular-utilities.mjs.map +1 -1
  121. package/fesm2020/one-paragon-angular-utilities.mjs +4393 -4422
  122. package/fesm2020/one-paragon-angular-utilities.mjs.map +1 -1
  123. package/http-request-state/HttpRequestStateFactory.d.ts +14 -14
  124. package/http-request-state/HttpRequestStateStore.d.ts +48 -48
  125. package/http-request-state/directives/HttpStateDirectiveBase.d.ts +16 -16
  126. package/http-request-state/directives/http-error-state-directive.d.ts +12 -12
  127. package/http-request-state/directives/http-inProgress-state-directive.d.ts +12 -12
  128. package/http-request-state/directives/http-notStarted-state-directive.d.ts +12 -12
  129. package/http-request-state/directives/http-success-state-directive.d.ts +21 -21
  130. package/http-request-state/directives/index.d.ts +5 -5
  131. package/http-request-state/directives/request-state-directive.d.ts +35 -35
  132. package/http-request-state/helpers.d.ts +9 -9
  133. package/http-request-state/http-request-state.d.ts +12 -12
  134. package/http-request-state/http-state-module.d.ts +11 -11
  135. package/http-request-state/index.d.ts +6 -6
  136. package/http-request-state/rxjs/getRequestorBody.d.ts +3 -3
  137. package/http-request-state/rxjs/getRequestorState.d.ts +3 -3
  138. package/http-request-state/rxjs/index.d.ts +4 -4
  139. package/http-request-state/rxjs/tapError.d.ts +3 -3
  140. package/http-request-state/rxjs/tapSuccess.d.ts +3 -3
  141. package/http-request-state/types.d.ts +36 -36
  142. package/index.d.ts +5 -5
  143. package/ngrx/actionable-selector.d.ts +15 -15
  144. package/ngrx/index.d.ts +1 -1
  145. package/package.json +1 -1
  146. package/public-api.d.ts +15 -15
  147. package/rxjs/defaultShareReplay.d.ts +2 -2
  148. package/rxjs/index.d.ts +4 -4
  149. package/rxjs/mapError.d.ts +2 -2
  150. package/rxjs/rxjs-operators.d.ts +12 -12
  151. package/rxjs/subjectifier.d.ts +9 -9
  152. package/table-builder/classes/DefaultSettings.d.ts +9 -9
  153. package/table-builder/classes/GenericTableDataSource.d.ts +8 -8
  154. package/table-builder/classes/MatTableObservableDataSource.d.ts +9 -17
  155. package/table-builder/classes/TableBuilderConfig.d.ts +20 -20
  156. package/table-builder/classes/TableState.d.ts +46 -46
  157. package/table-builder/classes/data-filter.d.ts +9 -9
  158. package/table-builder/classes/display-col.d.ts +5 -5
  159. package/table-builder/classes/filter-info.d.ts +40 -40
  160. package/table-builder/classes/table-builder-general-settings.d.ts +43 -43
  161. package/table-builder/classes/table-builder.d.ts +14 -14
  162. package/table-builder/classes/table-store.d.ts +114 -114
  163. package/table-builder/components/array-column.component.d.ts +14 -14
  164. package/table-builder/components/column-builder/column-builder.component.d.ts +50 -50
  165. package/table-builder/components/date-filter/date-filter.component.d.ts +10 -10
  166. package/table-builder/components/date-time-filter/date-time-filter.component.d.ts +10 -10
  167. package/table-builder/components/filter/filter.component.d.ts +371 -371
  168. package/table-builder/components/filter/in-list/in-list-filter.component.d.ts +27 -27
  169. package/table-builder/components/gen-col-displayer/gen-col-displayer.component.d.ts +16 -16
  170. package/table-builder/components/generic-table/generic-table.component.d.ts +73 -73
  171. package/table-builder/components/generic-table/paginator.component.d.ts +28 -28
  172. package/table-builder/components/group-by-list/group-by-list.component.d.ts +10 -10
  173. package/table-builder/components/header-menu/header-menu.component.d.ts +25 -25
  174. package/table-builder/components/in-filter/in-filter.component.d.ts +21 -21
  175. package/table-builder/components/index.d.ts +9 -9
  176. package/table-builder/components/initialization-component/initialization-component.d.ts +12 -12
  177. package/table-builder/components/link-column.component.d.ts +17 -17
  178. package/table-builder/components/number-filter/number-filter.component.d.ts +12 -12
  179. package/table-builder/components/sort-menu/sort-menu.component-store.d.ts +24 -24
  180. package/table-builder/components/sort-menu/sort-menu.component.d.ts +25 -25
  181. package/table-builder/components/table-container/table-container.d.ts +68 -68
  182. package/table-builder/components/table-container-filter/filter-list/filter-list.component.d.ts +17 -17
  183. package/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.d.ts +14 -14
  184. package/table-builder/components/table-container-filter/table-wrapper-filter-store.d.ts +14 -14
  185. package/table-builder/directives/custom-cell-directive.d.ts +19 -19
  186. package/table-builder/directives/index.d.ts +5 -5
  187. package/table-builder/directives/multi-sort.directive.d.ts +11 -11
  188. package/table-builder/directives/resize-column.directive.d.ts +43 -43
  189. package/table-builder/directives/table-wrapper.directive.d.ts +11 -11
  190. package/table-builder/directives/tb-filter.directive.d.ts +120 -120
  191. package/table-builder/enums/filterTypes.d.ts +37 -37
  192. package/table-builder/functions/boolean-filter-function.d.ts +3 -3
  193. package/table-builder/functions/date-filter-function.d.ts +4 -4
  194. package/table-builder/functions/download-data.d.ts +1 -1
  195. package/table-builder/functions/null-filter-function.d.ts +2 -2
  196. package/table-builder/functions/number-filter-function.d.ts +4 -4
  197. package/table-builder/functions/sort-data-function.d.ts +3 -3
  198. package/table-builder/functions/string-filter-function.d.ts +7 -7
  199. package/table-builder/interfaces/ColumnInfo.d.ts +6 -6
  200. package/table-builder/interfaces/dictionary.d.ts +3 -3
  201. package/table-builder/interfaces/report-def.d.ts +142 -142
  202. package/table-builder/material.module.d.ts +32 -32
  203. package/table-builder/ngrx/actions.d.ts +23 -23
  204. package/table-builder/ngrx/effects.d.ts +19 -19
  205. package/table-builder/ngrx/reducer.d.ts +15 -15
  206. package/table-builder/ngrx/selectors.d.ts +22 -22
  207. package/table-builder/pipes/column-total.pipe.d.ts +8 -8
  208. package/table-builder/pipes/format-filter-type.pipe.d.ts +8 -8
  209. package/table-builder/pipes/format-filter-value.pipe.d.ts +14 -14
  210. package/table-builder/pipes/key-display.d.ts +11 -11
  211. package/table-builder/services/export-to-csv.service.d.ts +22 -22
  212. package/table-builder/services/link-creator.service.d.ts +12 -12
  213. package/table-builder/services/table-template-service.d.ts +14 -14
  214. package/table-builder/services/transform-creator.d.ts +19 -19
  215. package/table-builder/table-builder.module.d.ts +46 -48
  216. package/utilities/directives/auto-focus.directive.d.ts +10 -10
  217. package/utilities/directives/clickEmitterDirective.d.ts +7 -7
  218. package/utilities/directives/clickSubject.d.ts +9 -9
  219. package/utilities/directives/conditional-classes.directive.d.ts +14 -14
  220. package/utilities/directives/dialog-service.d.ts +10 -10
  221. package/utilities/directives/dialog.d.ts +46 -46
  222. package/utilities/directives/mat-toggle-group-directive.d.ts +21 -21
  223. package/utilities/directives/prevent-enter.directive.d.ts +6 -6
  224. package/utilities/directives/stop-propagation.directive.d.ts +7 -7
  225. package/utilities/directives/styler.d.ts +9 -9
  226. package/utilities/directives/trim-whitespace.directive.d.ts +9 -9
  227. package/utilities/index.d.ts +15 -15
  228. package/utilities/module.d.ts +19 -19
  229. package/utilities/pipes/function.pipe.d.ts +7 -7
  230. package/utilities/pipes/phone.pipe.d.ts +7 -7
  231. package/utilities/pipes/space-case.pipes.d.ts +17 -17
@@ -1,75 +1,75 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { FieldType } from '../interfaces/report-def';
3
- import { TableBuilderConfigToken } from '../classes/TableBuilderConfig';
4
- import { get } from 'lodash';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "../../utilities/pipes/phone.pipe";
8
- import * as i3 from "../../utilities";
9
- export function isPipe(o) {
10
- return typeof (o.transform) === 'function';
11
- }
12
- export class TransformCreator {
13
- constructor(datePipe, currencyPipe, phonePipe, casePipe, config) {
14
- this.datePipe = datePipe;
15
- this.currencyPipe = currencyPipe;
16
- this.phonePipe = phonePipe;
17
- this.casePipe = casePipe;
18
- this.config = config;
19
- }
20
- createTransformer(metaData) {
21
- const defaultFunc = (value) => get(value, metaData.key);
22
- if (metaData.transform) {
23
- if (isPipe(metaData.transform)) {
24
- return (value) => metaData.transform.transform(defaultFunc(value));
25
- }
26
- return metaData.fieldType === FieldType.Expression ? metaData.transform : (value) => metaData.transform(defaultFunc(value), value);
27
- }
28
- if (this.config.transformers && this.config.transformers[metaData.fieldType]) {
29
- var tranformer = this.config.transformers[metaData.fieldType];
30
- return (value) => tranformer(defaultFunc(value));
31
- }
32
- const defaultDateFormat = this.config.defaultSettings?.dateFormat ?? 'shortDate';
33
- const defaultDateTimeFormat = this.config.defaultSettings?.dateTimeFormat ?? 'short';
34
- switch (metaData.fieldType) {
35
- case FieldType.Date:
36
- const dateFormat = metaData.additional?.dateFormat ?? defaultDateFormat;
37
- return (value) => this.datePipe.transform(defaultFunc(value), dateFormat);
38
- case FieldType.DateTime:
39
- const dateTimeFormat = metaData.additional?.dateTimeOptions?.format ?? defaultDateTimeFormat;
40
- return (value) => this.datePipe.transform(defaultFunc(value), dateTimeFormat);
41
- case FieldType.Currency:
42
- return (value) => this.currencyPipe.transform(defaultFunc(value));
43
- case FieldType.PhoneNumber:
44
- return (value) => this.phonePipe.transform(defaultFunc(value));
45
- case FieldType.Enum:
46
- return (value) => this.casePipe.transform(metaData.additional?.enumMap[defaultFunc(value)]);
47
- case FieldType.Boolean:
48
- let forTrue = 'check';
49
- let forFalse = '';
50
- if (metaData.additional?.boolean?.forTrue) {
51
- forTrue = metaData?.additional.boolean.forTrue.icon;
52
- }
53
- if (metaData.additional?.boolean?.showForFalse === true) {
54
- forFalse = 'clear';
55
- }
56
- else if (metaData.additional?.boolean?.showForFalse?.icon) {
57
- forFalse = metaData.additional?.boolean?.showForFalse?.icon;
58
- }
59
- return (value) => defaultFunc(value) ? forTrue : forFalse;
60
- }
61
- return defaultFunc;
62
- }
63
- }
64
- TransformCreator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: TransformCreator, deps: [{ token: i1.DatePipe }, { token: i1.CurrencyPipe }, { token: i2.PhoneNumberPipe }, { token: i3.SpaceCasePipe }, { token: TableBuilderConfigToken }], target: i0.ɵɵFactoryTarget.Injectable });
65
- TransformCreator.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: TransformCreator, providedIn: 'root' });
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: TransformCreator, decorators: [{
67
- type: Injectable,
68
- args: [{
69
- providedIn: 'root',
70
- }]
71
- }], ctorParameters: function () { return [{ type: i1.DatePipe }, { type: i1.CurrencyPipe }, { type: i2.PhoneNumberPipe }, { type: i3.SpaceCasePipe }, { type: undefined, decorators: [{
72
- type: Inject,
73
- args: [TableBuilderConfigToken]
74
- }] }]; } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLWNyZWF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9zZXJ2aWNlcy90cmFuc2Zvcm0tY3JlYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBRy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBc0IsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7OztBQUM3QixNQUFNLFVBQVUsTUFBTSxDQUFDLENBQU87SUFDNUIsT0FBTyxPQUFPLENBQUUsQ0FBbUIsQ0FBQyxTQUFTLENBQUUsS0FBSyxVQUFVLENBQUM7QUFDakUsQ0FBQztBQUtELE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsWUFDVSxRQUFrQixFQUNsQixZQUEwQixFQUMxQixTQUEwQixFQUMxQixRQUF1QixFQUNVLE1BQTBCO1FBSjNELGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBZTtRQUNVLFdBQU0sR0FBTixNQUFNLENBQW9CO0lBQ2xFLENBQUM7SUFDSixpQkFBaUIsQ0FBQyxRQUFrQjtRQUNsQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUQsSUFBRyxRQUFRLENBQUMsU0FBUyxFQUFFO1lBQ3JCLElBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBQztnQkFDNUIsT0FB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USxHQUFHLE9BQU8sQ0FBQztpQkFDcEI7cUJBQU0sSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFO29CQUMzRCxRQUFRLEdBQUcsUUFBUSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQztpQkFDN0Q7Z0JBQ0QsT0FBTyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBRTtTQUNuRTtRQUNDLE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7OzZHQWpEVSxnQkFBZ0Isa0lBTWpCLHVCQUF1QjtpSEFOdEIsZ0JBQWdCLGNBRmQsTUFBTTsyRkFFUixnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFHLE1BQU07aUJBQ3BCOzswQkFPSSxNQUFNOzJCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGVUcmFuc2Zvcm0sIEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlLCBNZXRhRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XG5pbXBvcnQgeyBEYXRlUGlwZSwgQ3VycmVuY3lQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBob25lTnVtYmVyUGlwZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9waXBlcy9waG9uZS5waXBlJztcbmltcG9ydCB7IFRhYmxlQnVpbGRlckNvbmZpZ1Rva2VuLCBUYWJsZUJ1aWxkZXJDb25maWcgfSBmcm9tICcuLi9jbGFzc2VzL1RhYmxlQnVpbGRlckNvbmZpZyc7XG5pbXBvcnQgeyBTcGFjZUNhc2VQaXBlIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzJztcbmltcG9ydCB7IGdldCB9IGZyb20gJ2xvZGFzaCc7XG5leHBvcnQgZnVuY3Rpb24gaXNQaXBlKG8gOiBhbnkgKTogbyBpcyBQaXBlVHJhbnNmb3JtIHtcbiAgcmV0dXJuIHR5cGVvZiAoKG8gYXMgUGlwZVRyYW5zZm9ybSkudHJhbnNmb3JtICkgPT09ICdmdW5jdGlvbic7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNmb3JtQ3JlYXRvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlLFxuICAgIHByaXZhdGUgY3VycmVuY3lQaXBlOiBDdXJyZW5jeVBpcGUsXG4gICAgcHJpdmF0ZSBwaG9uZVBpcGU6IFBob25lTnVtYmVyUGlwZSxcbiAgICBwcml2YXRlIGNhc2VQaXBlOiBTcGFjZUNhc2VQaXBlLFxuICAgIEBJbmplY3QoVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4pIHByaXZhdGUgY29uZmlnOiBUYWJsZUJ1aWxkZXJDb25maWcsXG4gICkge31cbiAgY3JlYXRlVHJhbnNmb3JtZXIobWV0YURhdGE6IE1ldGFEYXRhKTogKCh2YWx1ZTogYW55LCAuLi5hcmdzOiBhbnlbXSkgPT4gYW55KSAge1xuICAgIGNvbnN0IGRlZmF1bHRGdW5jID0gKHZhbHVlOiBhbnkpID0+IGdldCggdmFsdWUsIG1ldGFEYXRhLmtleSk7XG4gICAgaWYobWV0YURhdGEudHJhbnNmb3JtKSB7XG4gICAgICBpZihpc1BpcGUobWV0YURhdGEudHJhbnNmb3JtKSl7XG4gICAgICAgIHJldHVybiAodmFsdWU6IGFueSkgPT4gIChtZXRhRGF0YSEudHJhbnNmb3JtIGFzIFBpcGVUcmFuc2Zvcm0pLnRyYW5zZm9ybShkZWZhdWx0RnVuYyh2YWx1ZSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1ldGFEYXRhLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkV4cHJlc3Npb24gPyBtZXRhRGF0YS50cmFuc2Zvcm0gOiAodmFsdWU6IGFueSkgPT4gKG1ldGFEYXRhLnRyYW5zZm9ybSBhcyAoYTphbnksYjphbnkpPT5hbnkpKGRlZmF1bHRGdW5jKHZhbHVlKSx2YWx1ZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbmZpZy50cmFuc2Zvcm1lcnMgJiYgdGhpcy5jb25maWcudHJhbnNmb3JtZXJzW21ldGFEYXRhLmZpZWxkVHlwZV0pIHtcbiAgICAgIHZhciB0cmFuZm9ybWVyID0gIHRoaXMuY29uZmlnLnRyYW5zZm9ybWVycyFbbWV0YURhdGEuZmllbGRUeXBlXSE7XG4gICAgICByZXR1cm4gKHZhbHVlOiBhbnkpID0+IHRyYW5mb3JtZXIoZGVmYXVsdEZ1bmModmFsdWUpKTtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdERhdGVGb3JtYXQgPSB0aGlzLmNvbmZpZy5kZWZhdWx0U2V0dGluZ3M/LmRhdGVGb3JtYXQgPz8gJ3Nob3J0RGF0ZSc7XG4gICAgY29uc3QgZGVmYXVsdERhdGVUaW1lRm9ybWF0ID0gdGhpcy5jb25maWcuZGVmYXVsdFNldHRpbmdzPy5kYXRlVGltZUZvcm1hdCA/PyAnc2hvcnQnO1xuICAgIHN3aXRjaChtZXRhRGF0YS5maWVsZFR5cGUpIHtcbiAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGU6XG4gICAgICAgIGNvbnN0IGRhdGVGb3JtYXQgPSBtZXRhRGF0YS5hZGRpdGlvbmFsPy5kYXRlRm9ybWF0ID8/IGRlZmF1bHREYXRlRm9ybWF0O1xuICAgICAgICByZXR1cm4gKHZhbHVlOiBhbnkpID0+IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGRlZmF1bHRGdW5jKHZhbHVlKSwgZGF0ZUZvcm1hdCk7XG4gICAgICBjYXNlIEZpZWxkVHlwZS5EYXRlVGltZTpcbiAgICAgICAgY29uc3QgZGF0ZVRpbWVGb3JtYXQgPSBtZXRhRGF0YS5hZGRpdGlvbmFsPy5kYXRlVGltZU9wdGlvbnM/LmZvcm1hdCA/PyBkZWZhdWx0RGF0ZVRpbWVGb3JtYXQ7XG4gICAgICAgIHJldHVybiAodmFsdWU6IGFueSkgPT4gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZGVmYXVsdEZ1bmModmFsdWUpLCBkYXRlVGltZUZvcm1hdCk7XG4gICAgICBjYXNlIEZpZWxkVHlwZS5DdXJyZW5jeTpcbiAgICAgICAgICByZXR1cm4gKHZhbHVlOiBhbnkpID0+ICB0aGlzLmN1cnJlbmN5UGlwZS50cmFuc2Zvcm0oZGVmYXVsdEZ1bmModmFsdWUpKTtcbiAgICAgIGNhc2UgRmllbGRUeXBlLlBob25lTnVtYmVyOlxuICAgICAgICByZXR1cm4gICh2YWx1ZTogYW55KSA9PiAgdGhpcy5waG9uZVBpcGUudHJhbnNmb3JtKGRlZmF1bHRGdW5jKHZhbHVlKSk7XG4gICAgICBjYXNlIEZpZWxkVHlwZS5FbnVtOlxuICAgICAgICByZXR1cm4gKHZhbHVlOiBhbnkpID0+ICB0aGlzLmNhc2VQaXBlLnRyYW5zZm9ybShtZXRhRGF0YS5hZGRpdGlvbmFsPy5lbnVtTWFwIVtkZWZhdWx0RnVuYyh2YWx1ZSldIGFzIHN0cmluZykgO1xuICAgICAgY2FzZSBGaWVsZFR5cGUuQm9vbGVhbjpcbiAgICAgICAgbGV0IGZvclRydWUgPSAnY2hlY2snXG4gICAgICAgIGxldCBmb3JGYWxzZSA9ICcnO1xuICAgICAgICBpZihtZXRhRGF0YS5hZGRpdGlvbmFsPy5ib29sZWFuPy5mb3JUcnVlKSB7XG4gICAgICAgICAgZm9yVHJ1ZSA9IG1ldGFEYXRhPy5hZGRpdGlvbmFsLmJvb2xlYW4uZm9yVHJ1ZS5pY29uO1xuICAgICAgICB9XG4gICAgICAgIGlmKG1ldGFEYXRhLmFkZGl0aW9uYWw/LmJvb2xlYW4/LnNob3dGb3JGYWxzZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgIGZvckZhbHNlID0gJ2NsZWFyJztcbiAgICAgICAgfSBlbHNlIGlmIChtZXRhRGF0YS5hZGRpdGlvbmFsPy5ib29sZWFuPy5zaG93Rm9yRmFsc2U/Lmljb24pIHtcbiAgICAgICAgICBmb3JGYWxzZSA9IG1ldGFEYXRhLmFkZGl0aW9uYWw/LmJvb2xlYW4/LnNob3dGb3JGYWxzZT8uaWNvbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKHZhbHVlOiBhbnkpID0+IGRlZmF1bHRGdW5jKHZhbHVlKSA/IGZvclRydWUgOiBmb3JGYWxzZSA7XG4gICAgfVxuICAgICAgcmV0dXJuIGRlZmF1bHRGdW5jO1xuICB9XG5cbn1cbiJdfQ==
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { FieldType } from '../interfaces/report-def';
3
+ import { TableBuilderConfigToken } from '../classes/TableBuilderConfig';
4
+ import { get } from 'lodash';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "../../utilities/pipes/phone.pipe";
8
+ import * as i3 from "../../utilities";
9
+ export function isPipe(o) {
10
+ return typeof (o.transform) === 'function';
11
+ }
12
+ export class TransformCreator {
13
+ constructor(datePipe, currencyPipe, phonePipe, casePipe, config) {
14
+ this.datePipe = datePipe;
15
+ this.currencyPipe = currencyPipe;
16
+ this.phonePipe = phonePipe;
17
+ this.casePipe = casePipe;
18
+ this.config = config;
19
+ }
20
+ createTransformer(metaData) {
21
+ const defaultFunc = (value) => get(value, metaData.key);
22
+ if (metaData.transform) {
23
+ if (isPipe(metaData.transform)) {
24
+ return (value) => metaData.transform.transform(defaultFunc(value));
25
+ }
26
+ return metaData.fieldType === FieldType.Expression ? metaData.transform : (value) => metaData.transform(defaultFunc(value), value);
27
+ }
28
+ if (this.config.transformers && this.config.transformers[metaData.fieldType]) {
29
+ var tranformer = this.config.transformers[metaData.fieldType];
30
+ return (value) => tranformer(defaultFunc(value));
31
+ }
32
+ const defaultDateFormat = this.config.defaultSettings?.dateFormat ?? 'shortDate';
33
+ const defaultDateTimeFormat = this.config.defaultSettings?.dateTimeFormat ?? 'short';
34
+ switch (metaData.fieldType) {
35
+ case FieldType.Date:
36
+ const dateFormat = metaData.additional?.dateFormat ?? defaultDateFormat;
37
+ return (value) => this.datePipe.transform(defaultFunc(value), dateFormat);
38
+ case FieldType.DateTime:
39
+ const dateTimeFormat = metaData.additional?.dateTimeOptions?.format ?? defaultDateTimeFormat;
40
+ return (value) => this.datePipe.transform(defaultFunc(value), dateTimeFormat);
41
+ case FieldType.Currency:
42
+ return (value) => this.currencyPipe.transform(defaultFunc(value));
43
+ case FieldType.PhoneNumber:
44
+ return (value) => this.phonePipe.transform(defaultFunc(value));
45
+ case FieldType.Enum:
46
+ return (value) => this.casePipe.transform(metaData.additional?.enumMap[defaultFunc(value)]);
47
+ case FieldType.Boolean:
48
+ let forTrue = 'check';
49
+ let forFalse = '';
50
+ if (metaData.additional?.boolean?.forTrue) {
51
+ forTrue = metaData?.additional.boolean.forTrue.icon;
52
+ }
53
+ if (metaData.additional?.boolean?.showForFalse === true) {
54
+ forFalse = 'clear';
55
+ }
56
+ else if (metaData.additional?.boolean?.showForFalse?.icon) {
57
+ forFalse = metaData.additional?.boolean?.showForFalse?.icon;
58
+ }
59
+ return (value) => defaultFunc(value) ? forTrue : forFalse;
60
+ }
61
+ return defaultFunc;
62
+ }
63
+ }
64
+ TransformCreator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: TransformCreator, deps: [{ token: i1.DatePipe }, { token: i1.CurrencyPipe }, { token: i2.PhoneNumberPipe }, { token: i3.SpaceCasePipe }, { token: TableBuilderConfigToken }], target: i0.ɵɵFactoryTarget.Injectable });
65
+ TransformCreator.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: TransformCreator, providedIn: 'root' });
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: TransformCreator, decorators: [{
67
+ type: Injectable,
68
+ args: [{
69
+ providedIn: 'root',
70
+ }]
71
+ }], ctorParameters: function () { return [{ type: i1.DatePipe }, { type: i1.CurrencyPipe }, { type: i2.PhoneNumberPipe }, { type: i3.SpaceCasePipe }, { type: undefined, decorators: [{
72
+ type: Inject,
73
+ args: [TableBuilderConfigToken]
74
+ }] }]; } });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLWNyZWF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9zZXJ2aWNlcy90cmFuc2Zvcm0tY3JlYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBRy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBc0IsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7OztBQUM3QixNQUFNLFVBQVUsTUFBTSxDQUFDLENBQU87SUFDNUIsT0FBTyxPQUFPLENBQUUsQ0FBbUIsQ0FBQyxTQUFTLENBQUUsS0FBSyxVQUFVLENBQUM7QUFDakUsQ0FBQztBQUtELE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsWUFDVSxRQUFrQixFQUNsQixZQUEwQixFQUMxQixTQUEwQixFQUMxQixRQUF1QixFQUNVLE1BQTBCO1FBSjNELGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBZTtRQUNVLFdBQU0sR0FBTixNQUFNLENBQW9CO0lBQ2xFLENBQUM7SUFDSixpQkFBaUIsQ0FBQyxRQUFrQjtRQUNsQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUQsSUFBRyxRQUFRLENBQUMsU0FBUyxFQUFFO1lBQ3JCLElBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBQztnQkFDNUIsT0FB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USxHQUFHLE9BQU8sQ0FBQztpQkFDcEI7cUJBQU0sSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFO29CQUMzRCxRQUFRLEdBQUcsUUFBUSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQztpQkFDN0Q7Z0JBQ0QsT0FBTyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBRTtTQUNuRTtRQUNDLE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7OzZHQWpEVSxnQkFBZ0Isa0lBTWpCLHVCQUF1QjtpSEFOdEIsZ0JBQWdCLGNBRmQsTUFBTTsyRkFFUixnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFHLE1BQU07aUJBQ3BCOzswQkFPSSxNQUFNOzJCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGVUcmFuc2Zvcm0sIEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGaWVsZFR5cGUsIE1ldGFEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUsIEN1cnJlbmN5UGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFBob25lTnVtYmVyUGlwZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9waXBlcy9waG9uZS5waXBlJztcclxuaW1wb3J0IHsgVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4sIFRhYmxlQnVpbGRlckNvbmZpZyB9IGZyb20gJy4uL2NsYXNzZXMvVGFibGVCdWlsZGVyQ29uZmlnJztcclxuaW1wb3J0IHsgU3BhY2VDYXNlUGlwZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcyc7XHJcbmltcG9ydCB7IGdldCB9IGZyb20gJ2xvZGFzaCc7XHJcbmV4cG9ydCBmdW5jdGlvbiBpc1BpcGUobyA6IGFueSApOiBvIGlzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHJldHVybiB0eXBlb2YgKChvIGFzIFBpcGVUcmFuc2Zvcm0pLnRyYW5zZm9ybSApID09PSAnZnVuY3Rpb24nO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zZm9ybUNyZWF0b3Ige1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsXHJcbiAgICBwcml2YXRlIGN1cnJlbmN5UGlwZTogQ3VycmVuY3lQaXBlLFxyXG4gICAgcHJpdmF0ZSBwaG9uZVBpcGU6IFBob25lTnVtYmVyUGlwZSxcclxuICAgIHByaXZhdGUgY2FzZVBpcGU6IFNwYWNlQ2FzZVBpcGUsXHJcbiAgICBASW5qZWN0KFRhYmxlQnVpbGRlckNvbmZpZ1Rva2VuKSBwcml2YXRlIGNvbmZpZzogVGFibGVCdWlsZGVyQ29uZmlnLFxyXG4gICkge31cclxuICBjcmVhdGVUcmFuc2Zvcm1lcihtZXRhRGF0YTogTWV0YURhdGEpOiAoKHZhbHVlOiBhbnksIC4uLmFyZ3M6IGFueVtdKSA9PiBhbnkpICB7XHJcbiAgICBjb25zdCBkZWZhdWx0RnVuYyA9ICh2YWx1ZTogYW55KSA9PiBnZXQoIHZhbHVlLCBtZXRhRGF0YS5rZXkpO1xyXG4gICAgaWYobWV0YURhdGEudHJhbnNmb3JtKSB7XHJcbiAgICAgIGlmKGlzUGlwZShtZXRhRGF0YS50cmFuc2Zvcm0pKXtcclxuICAgICAgICByZXR1cm4gKHZhbHVlOiBhbnkpID0+ICAobWV0YURhdGEhLnRyYW5zZm9ybSBhcyBQaXBlVHJhbnNmb3JtKS50cmFuc2Zvcm0oZGVmYXVsdEZ1bmModmFsdWUpKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuRXhwcmVzc2lvbiA/IG1ldGFEYXRhLnRyYW5zZm9ybSA6ICh2YWx1ZTogYW55KSA9PiAobWV0YURhdGEudHJhbnNmb3JtIGFzIChhOmFueSxiOmFueSk9PmFueSkoZGVmYXVsdEZ1bmModmFsdWUpLHZhbHVlKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmNvbmZpZy50cmFuc2Zvcm1lcnMgJiYgdGhpcy5jb25maWcudHJhbnNmb3JtZXJzW21ldGFEYXRhLmZpZWxkVHlwZV0pIHtcclxuICAgICAgdmFyIHRyYW5mb3JtZXIgPSAgdGhpcy5jb25maWcudHJhbnNmb3JtZXJzIVttZXRhRGF0YS5maWVsZFR5cGVdITtcclxuICAgICAgcmV0dXJuICh2YWx1ZTogYW55KSA9PiB0cmFuZm9ybWVyKGRlZmF1bHRGdW5jKHZhbHVlKSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBkZWZhdWx0RGF0ZUZvcm1hdCA9IHRoaXMuY29uZmlnLmRlZmF1bHRTZXR0aW5ncz8uZGF0ZUZvcm1hdCA/PyAnc2hvcnREYXRlJztcclxuICAgIGNvbnN0IGRlZmF1bHREYXRlVGltZUZvcm1hdCA9IHRoaXMuY29uZmlnLmRlZmF1bHRTZXR0aW5ncz8uZGF0ZVRpbWVGb3JtYXQgPz8gJ3Nob3J0JztcclxuICAgIHN3aXRjaChtZXRhRGF0YS5maWVsZFR5cGUpIHtcclxuICAgICAgY2FzZSBGaWVsZFR5cGUuRGF0ZTpcclxuICAgICAgICBjb25zdCBkYXRlRm9ybWF0ID0gbWV0YURhdGEuYWRkaXRpb25hbD8uZGF0ZUZvcm1hdCA/PyBkZWZhdWx0RGF0ZUZvcm1hdDtcclxuICAgICAgICByZXR1cm4gKHZhbHVlOiBhbnkpID0+IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGRlZmF1bHRGdW5jKHZhbHVlKSwgZGF0ZUZvcm1hdCk7XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGVUaW1lOlxyXG4gICAgICAgIGNvbnN0IGRhdGVUaW1lRm9ybWF0ID0gbWV0YURhdGEuYWRkaXRpb25hbD8uZGF0ZVRpbWVPcHRpb25zPy5mb3JtYXQgPz8gZGVmYXVsdERhdGVUaW1lRm9ybWF0O1xyXG4gICAgICAgIHJldHVybiAodmFsdWU6IGFueSkgPT4gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZGVmYXVsdEZ1bmModmFsdWUpLCBkYXRlVGltZUZvcm1hdCk7XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkN1cnJlbmN5OlxyXG4gICAgICAgICAgcmV0dXJuICh2YWx1ZTogYW55KSA9PiAgdGhpcy5jdXJyZW5jeVBpcGUudHJhbnNmb3JtKGRlZmF1bHRGdW5jKHZhbHVlKSk7XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLlBob25lTnVtYmVyOlxyXG4gICAgICAgIHJldHVybiAgKHZhbHVlOiBhbnkpID0+ICB0aGlzLnBob25lUGlwZS50cmFuc2Zvcm0oZGVmYXVsdEZ1bmModmFsdWUpKTtcclxuICAgICAgY2FzZSBGaWVsZFR5cGUuRW51bTpcclxuICAgICAgICByZXR1cm4gKHZhbHVlOiBhbnkpID0+ICB0aGlzLmNhc2VQaXBlLnRyYW5zZm9ybShtZXRhRGF0YS5hZGRpdGlvbmFsPy5lbnVtTWFwIVtkZWZhdWx0RnVuYyh2YWx1ZSldIGFzIHN0cmluZykgO1xyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5Cb29sZWFuOlxyXG4gICAgICAgIGxldCBmb3JUcnVlID0gJ2NoZWNrJ1xyXG4gICAgICAgIGxldCBmb3JGYWxzZSA9ICcnO1xyXG4gICAgICAgIGlmKG1ldGFEYXRhLmFkZGl0aW9uYWw/LmJvb2xlYW4/LmZvclRydWUpIHtcclxuICAgICAgICAgIGZvclRydWUgPSBtZXRhRGF0YT8uYWRkaXRpb25hbC5ib29sZWFuLmZvclRydWUuaWNvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYobWV0YURhdGEuYWRkaXRpb25hbD8uYm9vbGVhbj8uc2hvd0ZvckZhbHNlID09PSB0cnVlKSB7XHJcbiAgICAgICAgICBmb3JGYWxzZSA9ICdjbGVhcic7XHJcbiAgICAgICAgfSBlbHNlIGlmIChtZXRhRGF0YS5hZGRpdGlvbmFsPy5ib29sZWFuPy5zaG93Rm9yRmFsc2U/Lmljb24pIHtcclxuICAgICAgICAgIGZvckZhbHNlID0gbWV0YURhdGEuYWRkaXRpb25hbD8uYm9vbGVhbj8uc2hvd0ZvckZhbHNlPy5pY29uO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gKHZhbHVlOiBhbnkpID0+IGRlZmF1bHRGdW5jKHZhbHVlKSA/IGZvclRydWUgOiBmb3JGYWxzZSA7XHJcbiAgICB9XHJcbiAgICAgIHJldHVybiBkZWZhdWx0RnVuYztcclxuICB9XHJcblxyXG59XHJcbiJdfQ==