@genesislcap/pbc-reconciliation-ui 0.0.45 → 14.339.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 (234) hide show
  1. package/.env +3 -0
  2. package/dist/dts/components/configurations-panel/configuration-datasources/configuration-datasources.d.ts.map +1 -1
  3. package/dist/dts/components/configurations-panel/configuration-datasources/configuration-datasources.template.d.ts.map +1 -1
  4. package/dist/dts/components/configurations-panel/configurations-panel.d.ts +2 -2
  5. package/dist/dts/components/configurations-panel/configurations-panel.d.ts.map +1 -1
  6. package/dist/dts/components/configurations-panel/configurations-panel.template.d.ts.map +1 -1
  7. package/dist/dts/components/configurations-panel/reconciliation-rule-row/reconciliation-rule-row.d.ts.map +1 -1
  8. package/dist/dts/components/configurations-panel/reconciliation-rule-row/reconciliation-rule-row.template.d.ts.map +1 -1
  9. package/dist/dts/components/data-dictionaries/columns.d.ts +2 -2
  10. package/dist/dts/components/data-dictionaries/columns.d.ts.map +1 -1
  11. package/dist/dts/components/data-dictionaries/data-dictionaries-utils.d.ts.map +1 -1
  12. package/dist/dts/components/data-dictionaries/data-dictionaries.d.ts +3 -6
  13. package/dist/dts/components/data-dictionaries/data-dictionaries.d.ts.map +1 -1
  14. package/dist/dts/components/data-dictionaries/data-dictionaries.template.d.ts +1 -1
  15. package/dist/dts/components/data-dictionaries/data-dictionaries.template.d.ts.map +1 -1
  16. package/dist/dts/components/data-dictionaries/data-dictionaries.types.d.ts +6 -0
  17. package/dist/dts/components/data-dictionaries/data-dictionaries.types.d.ts.map +1 -0
  18. package/dist/dts/components/list/list.d.ts.map +1 -1
  19. package/dist/dts/components/list/list.template.d.ts.map +1 -1
  20. package/dist/dts/components/rapid-components.d.ts.map +1 -1
  21. package/dist/dts/components/reconciliations-panel/columns.d.ts.map +1 -1
  22. package/dist/dts/components/reconciliations-panel/input-parameter/input-parameter.d.ts +3 -14
  23. package/dist/dts/components/reconciliations-panel/input-parameter/input-parameter.d.ts.map +1 -1
  24. package/dist/dts/components/reconciliations-panel/input-parameter/input-parameter.template.d.ts +1 -1
  25. package/dist/dts/components/reconciliations-panel/input-parameter/input-parameter.template.d.ts.map +1 -1
  26. package/dist/dts/components/reconciliations-panel/input-parameter/input-parameter.types.d.ts +13 -0
  27. package/dist/dts/components/reconciliations-panel/input-parameter/input-parameter.types.d.ts.map +1 -0
  28. package/dist/dts/components/reconciliations-panel/reconciliation-no-rows-overlay.d.ts +1 -1
  29. package/dist/dts/components/reconciliations-panel/reconciliation-no-rows-overlay.d.ts.map +1 -1
  30. package/dist/dts/components/reconciliations-panel/reconciliations-panel.d.ts +1 -1
  31. package/dist/dts/components/reconciliations-panel/reconciliations-panel.d.ts.map +1 -1
  32. package/dist/dts/components/reconciliations-panel/reconciliations-panel.styles.d.ts.map +1 -1
  33. package/dist/dts/components/reconciliations-panel/reconciliations-panel.template.d.ts.map +1 -1
  34. package/dist/dts/components/reconciliations-panel/reconciliations-panel.utils.d.ts +1 -1
  35. package/dist/dts/components/reconciliations-panel/reconciliations-panel.utils.d.ts.map +1 -1
  36. package/dist/dts/components/reconciliations-panel/result-details/result-details.d.ts +4 -33
  37. package/dist/dts/components/reconciliations-panel/result-details/result-details.d.ts.map +1 -1
  38. package/dist/dts/components/reconciliations-panel/result-details/result-details.template.d.ts +1 -1
  39. package/dist/dts/components/reconciliations-panel/result-details/result-details.template.d.ts.map +1 -1
  40. package/dist/dts/components/reconciliations-panel/result-details/result-details.types.d.ts +30 -0
  41. package/dist/dts/components/reconciliations-panel/result-details/result-details.types.d.ts.map +1 -0
  42. package/dist/dts/components/zero-components.d.ts.map +1 -1
  43. package/dist/dts/config/config.d.ts.map +1 -1
  44. package/dist/dts/config/configure.d.ts.map +1 -1
  45. package/dist/dts/config/templates.d.ts +2 -2
  46. package/dist/dts/config/templates.d.ts.map +1 -1
  47. package/dist/dts/main/main.d.ts +2 -2
  48. package/dist/dts/main/main.d.ts.map +1 -1
  49. package/dist/dts/main/main.styles.d.ts.map +1 -1
  50. package/dist/dts/main/main.template.d.ts +1 -1
  51. package/dist/dts/main/main.template.d.ts.map +1 -1
  52. package/dist/dts/reconciliation.types.d.ts +13 -13
  53. package/dist/dts/reconciliation.types.d.ts.map +1 -1
  54. package/dist/dts/sandbox.d.ts +2 -2
  55. package/dist/dts/sandbox.d.ts.map +1 -1
  56. package/dist/dts/services/document.service.d.ts.map +1 -1
  57. package/dist/dts/services/reconciliation-configuration.service.d.ts.map +1 -1
  58. package/dist/dts/services/reconciliation.service.d.ts.map +1 -1
  59. package/dist/dts/utils/delete-row-action-cell-renderer.d.ts.map +1 -1
  60. package/dist/dts/utils/endpoint.d.ts.map +1 -1
  61. package/dist/dts/utils/eventDetail.d.ts.map +1 -1
  62. package/dist/dts/utils/format-date.d.ts.map +1 -1
  63. package/dist/dts/utils/humanize.d.ts.map +1 -1
  64. package/dist/dts/utils/isEmpty.d.ts.map +1 -1
  65. package/dist/dts/utils/notification.d.ts.map +1 -1
  66. package/dist/esm/components/configurations-panel/configuration-datasources/configuration-datasources.js +3 -3
  67. package/dist/esm/components/configurations-panel/configuration-datasources/configuration-datasources.js.map +1 -1
  68. package/dist/esm/components/configurations-panel/configuration-datasources/configuration-datasources.styles.js +4 -4
  69. package/dist/esm/components/configurations-panel/configuration-datasources/configuration-datasources.styles.js.map +1 -1
  70. package/dist/esm/components/configurations-panel/configuration-datasources/configuration-datasources.template.js +1 -1
  71. package/dist/esm/components/configurations-panel/configuration-datasources/configuration-datasources.template.js.map +1 -1
  72. package/dist/esm/components/configurations-panel/configurations-panel.js +15 -11
  73. package/dist/esm/components/configurations-panel/configurations-panel.js.map +1 -1
  74. package/dist/esm/components/configurations-panel/configurations-panel.styles.js +346 -346
  75. package/dist/esm/components/configurations-panel/configurations-panel.styles.js.map +1 -1
  76. package/dist/esm/components/configurations-panel/configurations-panel.template.js +276 -278
  77. package/dist/esm/components/configurations-panel/configurations-panel.template.js.map +1 -1
  78. package/dist/esm/components/configurations-panel/reconciliation-rule-row/reconciliation-rule-row.js +3 -3
  79. package/dist/esm/components/configurations-panel/reconciliation-rule-row/reconciliation-rule-row.js.map +1 -1
  80. package/dist/esm/components/configurations-panel/reconciliation-rule-row/reconciliation-rule-row.styles.js +1 -1
  81. package/dist/esm/components/configurations-panel/reconciliation-rule-row/reconciliation-rule-row.template.js +1 -1
  82. package/dist/esm/components/configurations-panel/reconciliation-rule-row/reconciliation-rule-row.template.js.map +1 -1
  83. package/dist/esm/components/data-dictionaries/columns.js +4 -4
  84. package/dist/esm/components/data-dictionaries/data-dictionaries-utils.js.map +1 -1
  85. package/dist/esm/components/data-dictionaries/data-dictionaries.js +7 -11
  86. package/dist/esm/components/data-dictionaries/data-dictionaries.js.map +1 -1
  87. package/dist/esm/components/data-dictionaries/data-dictionaries.styles.js +1 -1
  88. package/dist/esm/components/data-dictionaries/data-dictionaries.template.js +3 -3
  89. package/dist/esm/components/data-dictionaries/data-dictionaries.template.js.map +1 -1
  90. package/dist/esm/components/data-dictionaries/data-dictionaries.types.js +7 -0
  91. package/dist/esm/components/data-dictionaries/data-dictionaries.types.js.map +1 -0
  92. package/dist/esm/components/list/list.js +1 -1
  93. package/dist/esm/components/list/list.js.map +1 -1
  94. package/dist/esm/components/list/list.template.js.map +1 -1
  95. package/dist/esm/components/rapid-components.js +1 -2
  96. package/dist/esm/components/rapid-components.js.map +1 -1
  97. package/dist/esm/components/reconciliations-panel/columns.js +9 -15
  98. package/dist/esm/components/reconciliations-panel/columns.js.map +1 -1
  99. package/dist/esm/components/reconciliations-panel/input-parameter/input-parameter.js +8 -21
  100. package/dist/esm/components/reconciliations-panel/input-parameter/input-parameter.js.map +1 -1
  101. package/dist/esm/components/reconciliations-panel/input-parameter/input-parameter.styles.js +7 -7
  102. package/dist/esm/components/reconciliations-panel/input-parameter/input-parameter.template.js +9 -12
  103. package/dist/esm/components/reconciliations-panel/input-parameter/input-parameter.template.js.map +1 -1
  104. package/dist/esm/components/reconciliations-panel/input-parameter/input-parameter.types.js +16 -0
  105. package/dist/esm/components/reconciliations-panel/input-parameter/input-parameter.types.js.map +1 -0
  106. package/dist/esm/components/reconciliations-panel/reconciliations-panel.js +40 -32
  107. package/dist/esm/components/reconciliations-panel/reconciliations-panel.js.map +1 -1
  108. package/dist/esm/components/reconciliations-panel/reconciliations-panel.styles.js +300 -301
  109. package/dist/esm/components/reconciliations-panel/reconciliations-panel.styles.js.map +1 -1
  110. package/dist/esm/components/reconciliations-panel/reconciliations-panel.template.js +335 -331
  111. package/dist/esm/components/reconciliations-panel/reconciliations-panel.template.js.map +1 -1
  112. package/dist/esm/components/reconciliations-panel/reconciliations-panel.utils.js +9 -9
  113. package/dist/esm/components/reconciliations-panel/reconciliations-panel.utils.js.map +1 -1
  114. package/dist/esm/components/reconciliations-panel/result-details/result-details.js +24 -43
  115. package/dist/esm/components/reconciliations-panel/result-details/result-details.js.map +1 -1
  116. package/dist/esm/components/reconciliations-panel/result-details/result-details.template.js +7 -7
  117. package/dist/esm/components/reconciliations-panel/result-details/result-details.template.js.map +1 -1
  118. package/dist/esm/components/reconciliations-panel/result-details/result-details.types.js +17 -0
  119. package/dist/esm/components/reconciliations-panel/result-details/result-details.types.js.map +1 -0
  120. package/dist/esm/components/zero-components.js +2 -3
  121. package/dist/esm/components/zero-components.js.map +1 -1
  122. package/dist/esm/config/config.js.map +1 -1
  123. package/dist/esm/config/configure.js +1 -1
  124. package/dist/esm/config/configure.js.map +1 -1
  125. package/dist/esm/config/templates.js +1 -1
  126. package/dist/esm/main/main.js +4 -4
  127. package/dist/esm/main/main.js.map +1 -1
  128. package/dist/esm/main/main.styles.js +1 -0
  129. package/dist/esm/main/main.styles.js.map +1 -1
  130. package/dist/esm/main/main.template.js +8 -7
  131. package/dist/esm/main/main.template.js.map +1 -1
  132. package/dist/esm/sandbox.js +15 -8
  133. package/dist/esm/sandbox.js.map +1 -1
  134. package/dist/esm/services/data-dictionary.service.js +6 -6
  135. package/dist/esm/services/data-dictionary.service.js.map +1 -1
  136. package/dist/esm/services/document.service.js +3 -4
  137. package/dist/esm/services/document.service.js.map +1 -1
  138. package/dist/esm/services/reconciliation-configuration.service.js +3 -1
  139. package/dist/esm/services/reconciliation-configuration.service.js.map +1 -1
  140. package/dist/esm/services/reconciliation.service.js +8 -5
  141. package/dist/esm/services/reconciliation.service.js.map +1 -1
  142. package/dist/esm/utils/delete-row-action-cell-renderer.js +1 -3
  143. package/dist/esm/utils/delete-row-action-cell-renderer.js.map +1 -1
  144. package/dist/esm/utils/endpoint.js.map +1 -1
  145. package/dist/esm/utils/humanize.js.map +1 -1
  146. package/dist/esm/utils/icons.js +1 -1
  147. package/dist/esm/utils/isEmpty.js.map +1 -1
  148. package/dist/esm/utils/notification.js +1 -1
  149. package/dist/esm/utils/notification.js.map +1 -1
  150. package/dist/tsconfig.tsbuildinfo +1 -0
  151. package/license.txt +46 -0
  152. package/package.json +31 -30
  153. package/src/components/configurations-panel/configuration-datasources/configuration-datasources.styles.ts +72 -0
  154. package/src/components/configurations-panel/configuration-datasources/configuration-datasources.template.ts +73 -0
  155. package/src/components/configurations-panel/configuration-datasources/configuration-datasources.ts +64 -0
  156. package/src/components/configurations-panel/configurations-panel.styles.ts +363 -0
  157. package/src/components/configurations-panel/configurations-panel.template.ts +356 -0
  158. package/src/components/configurations-panel/configurations-panel.ts +387 -0
  159. package/src/components/configurations-panel/recon-rules-columns.ts +117 -0
  160. package/src/components/configurations-panel/reconciliation-rule-row/reconciliation-rule-row.styles.ts +73 -0
  161. package/src/components/configurations-panel/reconciliation-rule-row/reconciliation-rule-row.template.ts +122 -0
  162. package/src/components/configurations-panel/reconciliation-rule-row/reconciliation-rule-row.ts +202 -0
  163. package/src/components/data-dictionaries/columns.ts +42 -0
  164. package/src/components/data-dictionaries/data-dictionaries-utils.ts +40 -0
  165. package/src/components/data-dictionaries/data-dictionaries.styles.ts +92 -0
  166. package/src/components/data-dictionaries/data-dictionaries.template.ts +78 -0
  167. package/src/components/data-dictionaries/data-dictionaries.ts +236 -0
  168. package/src/components/data-dictionaries/data-dictionaries.types.ts +5 -0
  169. package/src/components/list/list.styles.ts +88 -0
  170. package/src/components/list/list.template.ts +36 -0
  171. package/src/components/list/list.ts +33 -0
  172. package/src/components/rapid-components.ts +69 -0
  173. package/src/components/reconciliations-panel/columns.ts +74 -0
  174. package/src/components/reconciliations-panel/input-parameter/input-parameter.styles.ts +104 -0
  175. package/src/components/reconciliations-panel/input-parameter/input-parameter.template.ts +93 -0
  176. package/src/components/reconciliations-panel/input-parameter/input-parameter.ts +131 -0
  177. package/src/components/reconciliations-panel/input-parameter/input-parameter.types.ts +14 -0
  178. package/src/components/reconciliations-panel/reconciliation-no-rows-overlay.ts +18 -0
  179. package/src/components/reconciliations-panel/reconciliations-panel.styles.ts +328 -0
  180. package/src/components/reconciliations-panel/reconciliations-panel.template.ts +432 -0
  181. package/src/components/reconciliations-panel/reconciliations-panel.ts +441 -0
  182. package/src/components/reconciliations-panel/reconciliations-panel.utils.ts +103 -0
  183. package/src/components/reconciliations-panel/result-details/result-details.styles.ts +108 -0
  184. package/src/components/reconciliations-panel/result-details/result-details.template.ts +88 -0
  185. package/src/components/reconciliations-panel/result-details/result-details.ts +200 -0
  186. package/src/components/reconciliations-panel/result-details/result-details.types.ts +30 -0
  187. package/src/components/zero-components.ts +61 -0
  188. package/src/config/config.ts +49 -0
  189. package/src/config/configure.ts +72 -0
  190. package/src/config/index.ts +2 -0
  191. package/src/config/templates.ts +80 -0
  192. package/src/globals.d.ts +7 -0
  193. package/src/index.federated.ts +1 -0
  194. package/src/index.ts +3 -0
  195. package/src/main/index.ts +3 -0
  196. package/src/main/main.styles.ts +33 -0
  197. package/src/main/main.template.ts +65 -0
  198. package/src/main/main.ts +153 -0
  199. package/src/reconciliation.types.ts +170 -0
  200. package/src/sandbox.ts +40 -0
  201. package/src/services/data-dictionary.service.ts +64 -0
  202. package/src/services/document.service.ts +72 -0
  203. package/src/services/reconciliation-configuration.service.ts +105 -0
  204. package/src/services/reconciliation.service.ts +120 -0
  205. package/src/styles/scrollbar.styles.ts +15 -0
  206. package/src/tags/index.ts +1 -0
  207. package/src/tags/tags.ts +143 -0
  208. package/src/typings.d.ts +1 -0
  209. package/src/utils/delete-row-action-cell-renderer.ts +71 -0
  210. package/src/utils/endpoint.ts +15 -0
  211. package/src/utils/eventDetail.ts +5 -0
  212. package/src/utils/format-date.ts +9 -0
  213. package/src/utils/humanize.ts +14 -0
  214. package/src/utils/icons.ts +24 -0
  215. package/src/utils/index.ts +2 -0
  216. package/src/utils/isEmpty.ts +2 -0
  217. package/src/utils/logger.ts +3 -0
  218. package/src/utils/notification.ts +35 -0
  219. package/tsconfig.json +45 -0
  220. package/Dockerfile +0 -12
  221. package/docs/images/lsp_jetbrains_one.png +0 -0
  222. package/docs/images/lsp_jetbrains_two.png +0 -0
  223. package/docs/images/lsp_vscode_one.png +0 -0
  224. package/docs/images/lsp_vscode_two.png +0 -0
  225. package/playwright.config.ts +0 -1
  226. package/test/README.md +0 -3
  227. package/test/e2e/fixture.ts +0 -25
  228. package/test/e2e/flows/001-protected.e2e.ts +0 -6
  229. package/test/e2e/index.ts +0 -2
  230. package/test/e2e/pages/index.ts +0 -1
  231. package/test/e2e/pages/protected.ts +0 -16
  232. package/test/unit/mock/services/data-dictionary-service-mock.ts +0 -15
  233. package/test/unit/mock/services/reconciliation-configuration-service-mock.ts +0 -26
  234. package/test/unit/mock/services/reconciliation-service-mock.ts +0 -11
@@ -0,0 +1,432 @@
1
+ import { html, ref, repeat, sync, when, whenElse } from '@genesislcap/web-core';
2
+ import {
3
+ MAX_ROWS_RECONCILIATION_RESULT,
4
+ Reconciliation,
5
+ ReconciliationStatus,
6
+ } from '../../reconciliation.types';
7
+ import {
8
+ buttonTag,
9
+ gridTag,
10
+ iconTag,
11
+ optionTag,
12
+ selectTag,
13
+ progressRingTag,
14
+ tabsTag,
15
+ tabTag,
16
+ tabPanelTag,
17
+ segmentedControlTag,
18
+ segmentedItemTag,
19
+ textFieldTag,
20
+ } from '../../tags';
21
+ import { getFormattedDateTime } from '../../utils';
22
+ import { eventDetail } from '../../utils/eventDetail';
23
+ import { RECONCILIATION_COLUMNS } from './columns';
24
+ import { InputParameter } from './input-parameter/input-parameter';
25
+ import { ReconciliationNoRowsOverlay } from './reconciliation-no-rows-overlay';
26
+ import { ReconciliationsPanel } from './reconciliations-panel';
27
+ import { ReconciliationsTab } from './reconciliations-panel.utils';
28
+ import { ResultDetails } from './result-details/result-details';
29
+
30
+ InputParameter;
31
+ ResultDetails;
32
+
33
+ const reconciliationsSide = html<ReconciliationsPanel>`
34
+ <div class="reconciliations-side">
35
+ <div class="reconciliations-side-new">
36
+ <div
37
+ class="reconciliation-side-list-header"
38
+ style="border-bottom: 1px solid var(--neutral-stroke-divider-rest);"
39
+ @click=${(x) => x.newReconciliation()}
40
+ >
41
+ <${iconTag} class="add-icon" name="circle-plus" size="lg"></${iconTag}>
42
+ New Reconciliation
43
+ </div>
44
+ </div>
45
+
46
+ <div class="reconciliations-side-list">
47
+ <!-- In Progress -->
48
+ <div class="reconciliations-in-progress">
49
+ <div class="reconciliations-in-progress-label">Reconciliations In Progress</div>
50
+ <div class="reconciliations-in-progress-list">
51
+ ${repeat(
52
+ (x) => x.reconciliationsInProgress,
53
+ html<Reconciliation>`
54
+ <div
55
+ class="recon-in-progress recon-in-progress${(x, c) => isReconciliationSelected(x, c)}"
56
+ @click=${(x, c) => c.parent.selectReconciliation(x)}
57
+ >
58
+ <span>${(x) => x.RECONCILIATION_NAME}</span>
59
+ <div class="flex-row">
60
+ <span class="stop-recon-btn" @click=${(x, c) => c.parent.stopReconciliation(c.event as CustomEvent, x.RECONCILIATION_ID)}>
61
+ <${iconTag} name="circle-stop" variant="regular" size="xl"></${iconTag}>
62
+ </span>
63
+ <${progressRingTag}></${progressRingTag}>
64
+ </div>
65
+ </div>
66
+ `,
67
+ )}
68
+ </div>
69
+ </div>
70
+
71
+ <!-- Historical -->
72
+ <div class="historical-reconciliations">
73
+ <div class="historical-reconciliations-label">Historical Reconciliations</div>
74
+ <div class="filters">
75
+ <label class="filter-label">Filter By:</label>
76
+ <${segmentedControlTag}
77
+ class="data-source-types"
78
+ :value=${sync((x) => x.filterType)}
79
+ >
80
+ <${segmentedItemTag}
81
+ :value=${(_) => 'Name'}
82
+ @click=${(x) => x.clearFilters()}
83
+ >
84
+ Name
85
+ </${segmentedItemTag}>
86
+ <${segmentedItemTag}
87
+ :value=${(_) => 'Date'}
88
+ @click=${(x) => x.clearFilters()}
89
+ >
90
+ Date
91
+ </${segmentedItemTag}>
92
+ </${segmentedControlTag}>
93
+
94
+ ${whenElse(
95
+ (x) => x.filterType === 'Name',
96
+ html<ReconciliationsPanel>`
97
+ <${textFieldTag}
98
+ @input=${(x, c) => x.filterByName(c.event as CustomEvent)}
99
+ :value=${sync((x) => x.textFilter)}
100
+ placeholder="Reconciliation Name"
101
+ >
102
+ </${textFieldTag}>
103
+ `,
104
+ html<ReconciliationsPanel>`
105
+ <${textFieldTag}
106
+ type="date"
107
+ @change=${(x, c) => x.filterByDate(c.event as CustomEvent)}
108
+ format="MM/DD/YYYY"
109
+ :value=${sync((x) => x.dateFilter)}
110
+ >
111
+ </${textFieldTag}>
112
+ `,
113
+ )}
114
+ </div>
115
+
116
+ <div class="historical-reconciliations-list">
117
+ <!-- Today -->
118
+ <div
119
+ class="reconciliation-side-list-header"
120
+ @click=${(x) => (x.toggleTodaysReconciliations = !x.toggleTodaysReconciliations)}
121
+ >
122
+ <span class="toggle-recon">
123
+ <${iconTag}
124
+ class="chevron"
125
+ name=${(x) => (x.toggleTodaysReconciliations ? 'chevron-down' : 'chevron-up')}
126
+ size="2xs"
127
+ >
128
+ </${iconTag}>
129
+ </span>
130
+ Today
131
+ </div>
132
+
133
+ <div class="historical-today-list">
134
+ ${repeat(
135
+ (x) => x.toggleTodaysReconciliations && x.historicalReconciliationsTodayFiltered,
136
+ html<Reconciliation>`
137
+ <div
138
+ class="historical-recon historical-recon${(x, c) => isReconciliationSelected(x, c)}"
139
+ @click=${(x, c) => c.parent.selectReconciliation(x)}
140
+ >
141
+ <div class="recon-list-item">
142
+ <div class="icon-container ${(x) => x.iconClass}" title="${(x) => x.STATUS}"><${iconTag} name="${(x) => x.iconName}" size="md"></${iconTag}></div>
143
+ <span>${(x) => x.RECONCILIATION_NAME}</span>
144
+ </div>
145
+ <span class="historic-recon-date">
146
+ ${(x) => getFormattedDateTime(x.DATETIME)}
147
+ </span>
148
+ </div>
149
+ `,
150
+ )}
151
+ </div>
152
+
153
+ <!-- Previous -->
154
+ <div
155
+ class="reconciliation-side-list-header"
156
+ @click=${(x) => (x.togglePreviousReconciliations = !x.togglePreviousReconciliations)}
157
+ >
158
+ <span class="toggle-recon">
159
+ <${iconTag}
160
+ class="chevron"
161
+ name=${(x) => (x.togglePreviousReconciliations ? 'chevron-down' : 'chevron-up')}
162
+ size="2xs"
163
+ >
164
+ </${iconTag}>
165
+ </span>
166
+ Previous
167
+ </div>
168
+
169
+ <div class="historical-previous-list">
170
+ ${repeat(
171
+ (x) => x.togglePreviousReconciliations && x.historicalReconciliationsPreviousFiltered,
172
+ html<Reconciliation>`
173
+ <div
174
+ class="historical-recon historical-recon${(x, c) => isReconciliationSelected(x, c)}"
175
+ @click=${(x, c) => c.parent.selectReconciliation(x)}
176
+ >
177
+ <div class="recon-list-item">
178
+ <div class="icon-container ${(x) => x.iconClass}" title="${(x) => x.STATUS}">
179
+ <${iconTag} name="${(x) => x.iconName}" size="md"></${iconTag}>
180
+ </div>
181
+ <span>${(x) => x.RECONCILIATION_NAME}</span>
182
+ </div>
183
+ <span class="historic-recon-date">${(x) => getFormattedDateTime(x.DATETIME)}</span>
184
+ </div>
185
+ `,
186
+ )}
187
+ </div>
188
+ </div>
189
+ </div>
190
+ </div>
191
+ </div>
192
+ `;
193
+
194
+ function isReconciliationSelected(x, c) {
195
+ return c.parent.reconciliation && x.RECONCILIATION_ID == c.parent.reconciliation.RECONCILIATION_ID
196
+ ? '-selected'
197
+ : '';
198
+ }
199
+
200
+ const reconciliationsResult = html<ReconciliationsPanel>`
201
+ <div class="reconciliation-result">
202
+ <div class="reconciliation-result-header">
203
+ <label class="reconciliation-result-label">Reconciliation Result</label>
204
+
205
+ ${when(
206
+ (x) =>
207
+ x.reconciliation.RECONCILIATION_ID &&
208
+ (x.reconciliation.STATUS === ReconciliationStatus.FAILED ||
209
+ x.reconciliation.STATUS === ReconciliationStatus.CANCELLED),
210
+ html<ReconciliationsPanel>`
211
+ <div class="error-message">
212
+ ${(x) =>
213
+ x.reconciliation.STATUS === ReconciliationStatus.FAILED
214
+ ? x.reconciliation.MESSAGE
215
+ : `${x.reconciliation.CANCELED_BY} CANCELLED this Reconciliation Run on ${getFormattedDateTime(x.reconciliation.END_TIMESTAMP)}`}
216
+ </div>
217
+ `,
218
+ )}
219
+
220
+ ${when(
221
+ (x) =>
222
+ x.reconciliation.RECONCILIATION_ID &&
223
+ x.reconciliation.STATUS === ReconciliationStatus.COMPLETED,
224
+ html<ReconciliationsPanel>`
225
+ <${buttonTag}
226
+ class="reconciliation-report"
227
+ @click=${(x) => x.downloadReconciliationReport()}
228
+ disabled
229
+ >
230
+ <${iconTag} name="download" size="lg"></${iconTag}>
231
+ &nbsp;Reconciliation Report
232
+ </${buttonTag}>
233
+ `,
234
+ )}
235
+ </div>
236
+
237
+ ${when(
238
+ (x) =>
239
+ !x.reconciliation?.RECONCILIATION_ID ||
240
+ x.reconciliation.STATUS === ReconciliationStatus.CANCELLED,
241
+ html<ReconciliationsPanel>`
242
+ <${buttonTag}
243
+ class="run-reconciliation"
244
+ @click=${(x) => x.runReconciliation()}
245
+ ?disabled=${(x) => x.runReconciliationButtonDisable}
246
+ >
247
+ <${iconTag} name="play" size="lg"></${iconTag}>
248
+ &nbsp;Run Reconciliation
249
+ </${buttonTag}>
250
+ `,
251
+ )}
252
+
253
+ <${tabsTag}
254
+ ${ref('tabs')}
255
+ appearance="secondary"
256
+ class="tabs"
257
+ >
258
+ <${tabTag}
259
+ appearance="secondary"
260
+ slot="all-breaks-tab"
261
+ id=${() => ReconciliationsTab.ALL_BREAKS}
262
+ @click=${(x) => x.reconciliationsTabChanged(ReconciliationsTab.ALL_BREAKS)}
263
+ >
264
+ All Breaks
265
+ </${tabTag}>
266
+
267
+ <${tabTag}
268
+ appearance="secondary"
269
+ slot="all-matched-tab"
270
+ id=${() => ReconciliationsTab.ALL_MATCHED}
271
+ @click=${(x) => x.reconciliationsTabChanged(ReconciliationsTab.ALL_MATCHED)}
272
+ >
273
+ All Matched
274
+ </${tabTag}>
275
+
276
+ <${tabPanelTag}
277
+ slot="all-breaks-tab"
278
+ id="all-breaks-tab-panel"
279
+ style="${(x) => (x.selectedTab === ReconciliationsTab.ALL_BREAKS ? '' : 'display: none')}"
280
+ >
281
+ ${when(
282
+ (x) => x.datasourcePairs.size > 1,
283
+ html<ReconciliationsPanel>`
284
+ <div class="view-datasource-pair">
285
+ <${selectTag}
286
+ :value=${sync((x) => x.viewDatasourcePairValue)}
287
+ @change=${(x) => x.changeViewSelect()}
288
+ >
289
+ ${(x) => x.datasourcePairsItemsOptions}
290
+ </${selectTag}>
291
+ </div>
292
+ `,
293
+ )}
294
+
295
+ <${gridTag}
296
+ only-template-col-defs
297
+ >
298
+ <grid-pro-genesis-datasource
299
+ ${ref('allBreaksDatasource')}
300
+ resource-name="ALL_RECONCILIATION_RECORD_RESULTS_VIEW"
301
+ criteria=${(x) => x.breaksTabCriteria}
302
+ max-rows=${(_) => MAX_ROWS_RECONCILIATION_RESULT}
303
+ max-view=${(_) => MAX_ROWS_RECONCILIATION_RESULT}
304
+ order-by="TIMESTAMP"
305
+ reverse="true"
306
+ moving-view="true"
307
+ :deferredGridOptions=${(x) => ({
308
+ noRowsOverlayComponent: !x.reconciliation?.RECONCILIATION_ID
309
+ ? ReconciliationNoRowsOverlay
310
+ : null,
311
+ onCellDoubleClicked: (params) => x.openResultDetails(params),
312
+ columnDefs: RECONCILIATION_COLUMNS({}),
313
+ })}
314
+ >
315
+ </grid-pro-genesis-datasource>
316
+ </${gridTag}>
317
+ </${tabPanelTag}>
318
+
319
+ <${tabPanelTag}
320
+ slot="all-matched-tab"
321
+ id="all-matched-tab-panel"
322
+ style="${(x) => (x.selectedTab === ReconciliationsTab.ALL_MATCHED ? '' : 'display: none')}"
323
+ >
324
+ ${when(
325
+ (x) => x.datasourcePairs.size > 1,
326
+ html<ReconciliationsPanel>`
327
+ <div class="view-datasource-pair">
328
+ <${selectTag}
329
+ :value=${sync((x) => x.viewDatasourcePairValue)}
330
+ @change=${(x) => x.changeViewSelect()}
331
+ >
332
+ ${(x) => x.datasourcePairsItemsOptions}
333
+ </${selectTag}>
334
+ </div>
335
+ `,
336
+ )}
337
+
338
+ <${gridTag}
339
+ only-template-col-defs
340
+ >
341
+ <grid-pro-genesis-datasource
342
+ ${ref('allMatchedDatasource')}
343
+ resource-name="ALL_RECONCILIATION_RECORD_RESULTS_VIEW"
344
+ criteria=${(x) => x.matchedTabCriteria}
345
+ max-rows=${(_) => MAX_ROWS_RECONCILIATION_RESULT}
346
+ max-view=${(_) => MAX_ROWS_RECONCILIATION_RESULT}
347
+ order-by="TIMESTAMP"
348
+ reverse="true"
349
+ moving-view="true"
350
+ :deferredGridOptions=${(x) => ({
351
+ noRowsOverlayComponent: !x.reconciliation?.RECONCILIATION_ID
352
+ ? ReconciliationNoRowsOverlay
353
+ : null,
354
+ onCellDoubleClicked: (params) => x.openResultDetails(params),
355
+ columnDefs: RECONCILIATION_COLUMNS({}),
356
+ })}
357
+ >
358
+ </grid-pro-genesis-datasource>
359
+ </${gridTag}>
360
+ </${tabPanelTag}>
361
+ </${tabsTag}>
362
+ </div>
363
+ `;
364
+
365
+ const reconciliationConfigurationAndResult = html<ReconciliationsPanel>`
366
+ ${when(
367
+ (x) => x.reconciliation,
368
+ html<ReconciliationsPanel>`
369
+ <div class="configuration-and-reconciliation-result">
370
+ <div class="configuration">
371
+ <div class="configuration-fields">
372
+ <div class="configuration-select-configuration">
373
+ <label class="configuration-label">Reconciliation Name</label>
374
+
375
+ <${textFieldTag}
376
+ :value=${sync((x) => x.reconciliationName)}
377
+ :disabled=${(x) => x.reconciliation.RECONCILIATION_ID && x.reconciliation.STATUS !== ReconciliationStatus.CANCELLED}
378
+ >
379
+ </${textFieldTag}>
380
+ </div>
381
+
382
+ <div class="configuration-select-configuration">
383
+ <label class="configuration-label">Select Configuration</label>
384
+
385
+ <${selectTag}
386
+ :value=${sync((x) => x.reconciliationConfiguration)}
387
+ :disabled=${(x) => x.reconciliation.RECONCILIATION_ID && x.reconciliation.STATUS !== ReconciliationStatus.CANCELLED}
388
+ >
389
+ ${repeat(
390
+ (x) => x.reconciliationConfigurations,
391
+ html`
392
+ <${optionTag} :value=${(x) => x.RECONCILIATION_CONFIG_ID}>
393
+ ${(x) => x.NAME}
394
+ </${optionTag}>
395
+ `,
396
+ )}
397
+ </${selectTag}>
398
+ </div>
399
+ </div>
400
+
401
+ <div class="configuration-input-parameters">
402
+ <label class="input-parameters-label">Input Parameters</label>
403
+ <div class="input-parameters-fields">
404
+ ${repeat(
405
+ (x) => x.datasourceConfigurations,
406
+ html`
407
+ <input-parameter
408
+ :datasourceConfiguration=${(x) => x}
409
+ :locked=${(_, c) => c.parent.lockInputParameters}
410
+ @uploaded=${(_, c) => c.parent.fileUploaded(eventDetail(c))}
411
+ ></input-parameter>
412
+ `,
413
+ )}
414
+ </div>
415
+ </div>
416
+ </div>
417
+
418
+ ${reconciliationsResult}
419
+ </div>
420
+ `,
421
+ )}
422
+ `;
423
+
424
+ // prettier-ignore
425
+ export const ReconciliationsPanelTemplate = html<ReconciliationsPanel>`
426
+ <div class="reconciliations-panel">
427
+ ${reconciliationsSide}
428
+ ${reconciliationConfigurationAndResult}
429
+ </div>
430
+
431
+ <result-details ${ref('resultDetails')}></result-details>
432
+ `;