cat-qw-lib 0.0.2 → 0.0.3

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 (248) hide show
  1. package/fesm2022/cat-qw-lib.mjs +2033 -0
  2. package/fesm2022/cat-qw-lib.mjs.map +1 -0
  3. package/index.d.ts +5 -0
  4. package/lib/admin/action-admin/action-admin.module.d.ts +9 -0
  5. package/lib/admin/action-admin/components/admin-action-form/admin-action-form.component.d.ts +5 -0
  6. package/lib/admin/action-admin/components/admin-action-list/admin-action-list.component.d.ts +12 -0
  7. package/lib/admin/action-admin/models/action.model.d.ts +9 -0
  8. package/lib/admin/action-admin/state/action.service.d.ts +13 -0
  9. package/lib/admin/action-admin/state/action.store.d.ts +8 -0
  10. package/lib/admin/api-admin/api-admin.module.d.ts +18 -0
  11. package/lib/admin/api-admin/components/api-admin-form/api-admin-form.component.d.ts +30 -0
  12. package/lib/admin/api-admin/components/api-admin-list/api-admin-list.component.d.ts +10 -0
  13. package/lib/admin/api-admin/components/api-credential-form/api-credential-form.component.d.ts +14 -0
  14. package/lib/admin/api-admin/models/api-admin.model.d.ts +15 -0
  15. package/lib/admin/api-admin/models/credentials.model.d.ts +4 -0
  16. package/lib/admin/api-admin/state/api-admin.service.d.ts +16 -0
  17. package/lib/admin/api-admin/state/api-admin.store.d.ts +8 -0
  18. package/lib/shared/_base/base-control/base-control.component.d.ts +22 -0
  19. package/lib/shared/_base/base-form/base-form.component.d.ts +27 -0
  20. package/lib/shared/_base/base-list/base-list.component.d.ts +16 -0
  21. package/lib/shared/components/form-container/form-container.component.d.ts +26 -0
  22. package/lib/shared/components/sidebar/sidebar.component.d.ts +13 -0
  23. package/lib/shared/constant/CSS.d.ts +11 -0
  24. package/lib/shared/constant/DATASOURCES.d.ts +10 -0
  25. package/lib/shared/constant/ERROR.d.ts +3 -0
  26. package/lib/shared/constant/HEADERS.d.ts +4 -0
  27. package/lib/shared/constant/LIST-CONFIG.d.ts +8 -0
  28. package/lib/shared/constant/LOOKUPS.d.ts +3 -0
  29. package/lib/shared/constant/ROUTES.d.ts +12 -0
  30. package/lib/shared/constant/SHARED.d.ts +565 -0
  31. package/lib/shared/constant/URLS.d.ts +3 -0
  32. package/lib/shared/controls/button/button.component.d.ts +6 -0
  33. package/lib/shared/controls/check-box/check-box.component.d.ts +6 -0
  34. package/lib/shared/controls/date/date.component.d.ts +12 -0
  35. package/lib/shared/controls/dropdown/dropdown.component.d.ts +19 -0
  36. package/lib/shared/controls/file-upload/file-upload.component.d.ts +7 -0
  37. package/lib/shared/controls/password/password.component.d.ts +9 -0
  38. package/lib/shared/controls/text-area/text-area.component.d.ts +8 -0
  39. package/lib/shared/controls/text-box/text-box.component.d.ts +7 -0
  40. package/lib/shared/controls/username/username.component.d.ts +6 -0
  41. package/{src/lib/shared/index.ts → lib/shared/index.d.ts} +30 -35
  42. package/lib/shared/models/attribute.model.d.ts +41 -0
  43. package/lib/shared/models/base.model.d.ts +3 -0
  44. package/lib/shared/models/list.model.d.ts +11 -0
  45. package/lib/shared/pipe/capitalize-words.pipe.d.ts +7 -0
  46. package/lib/shared/services/app-config.service.d.ts +12 -0
  47. package/lib/shared/services/auth/auth.guard.d.ts +12 -0
  48. package/lib/shared/services/date-parser.service.d.ts +7 -0
  49. package/lib/shared/services/list.service.d.ts +13 -0
  50. package/lib/shared/services/session.service.d.ts +13 -0
  51. package/lib/shared/services/table.builder.d.ts +11 -0
  52. package/lib/shared/services/validator.service.d.ts +7 -0
  53. package/lib/shared/shared.module.d.ts +32 -0
  54. package/lib/shared/state/base.query.d.ts +19 -0
  55. package/lib/shared/state/base.service.d.ts +27 -0
  56. package/lib/shared/state/base.state.d.ts +4 -0
  57. package/lib/shared/state/base.store.d.ts +24 -0
  58. package/lib/shared/table-primary/components/table-primary.component.d.ts +26 -0
  59. package/lib/shared/table-primary/models/table-primary-header.model.d.ts +6 -0
  60. package/lib/shared/table-primary/models/table-primary.model.d.ts +5 -0
  61. package/package.json +25 -16
  62. package/{src/public-api.ts → public-api.d.ts} +6 -11
  63. package/ng-package.json +0 -10
  64. package/src/lib/admin/action-admin/action-admin.module.ts +0 -16
  65. package/src/lib/admin/action-admin/components/admin-action-form/admin-action-form.component.html +0 -1
  66. package/src/lib/admin/action-admin/components/admin-action-form/admin-action-form.component.scss +0 -0
  67. package/src/lib/admin/action-admin/components/admin-action-form/admin-action-form.component.spec.ts +0 -23
  68. package/src/lib/admin/action-admin/components/admin-action-form/admin-action-form.component.ts +0 -11
  69. package/src/lib/admin/action-admin/components/admin-action-list/admin-action-list.component.html +0 -5
  70. package/src/lib/admin/action-admin/components/admin-action-list/admin-action-list.component.scss +0 -0
  71. package/src/lib/admin/action-admin/components/admin-action-list/admin-action-list.component.spec.ts +0 -23
  72. package/src/lib/admin/action-admin/components/admin-action-list/admin-action-list.component.ts +0 -24
  73. package/src/lib/admin/action-admin/models/action.model.ts +0 -12
  74. package/src/lib/admin/action-admin/state/action.query.ts +0 -11
  75. package/src/lib/admin/action-admin/state/action.service.ts +0 -18
  76. package/src/lib/admin/action-admin/state/action.state.ts +0 -14
  77. package/src/lib/admin/action-admin/state/action.store.ts +0 -14
  78. package/src/lib/admin/admin.module.ts +0 -22
  79. package/src/lib/admin/api-admin/api-admin.module.ts +0 -39
  80. package/src/lib/admin/api-admin/components/api-admin-form/api-admin-form.component.html +0 -96
  81. package/src/lib/admin/api-admin/components/api-admin-form/api-admin-form.component.scss +0 -6
  82. package/src/lib/admin/api-admin/components/api-admin-form/api-admin-form.component.spec.ts +0 -23
  83. package/src/lib/admin/api-admin/components/api-admin-form/api-admin-form.component.ts +0 -94
  84. package/src/lib/admin/api-admin/components/api-admin-list/api-admin-list.component.html +0 -6
  85. package/src/lib/admin/api-admin/components/api-admin-list/api-admin-list.component.scss +0 -0
  86. package/src/lib/admin/api-admin/components/api-admin-list/api-admin-list.component.spec.ts +0 -23
  87. package/src/lib/admin/api-admin/components/api-admin-list/api-admin-list.component.ts +0 -17
  88. package/src/lib/admin/api-admin/components/api-credential-form/api-credential-form.component.html +0 -29
  89. package/src/lib/admin/api-admin/components/api-credential-form/api-credential-form.component.scss +0 -0
  90. package/src/lib/admin/api-admin/components/api-credential-form/api-credential-form.component.spec.ts +0 -21
  91. package/src/lib/admin/api-admin/components/api-credential-form/api-credential-form.component.ts +0 -25
  92. package/src/lib/admin/api-admin/models/api-admin.model.ts +0 -16
  93. package/src/lib/admin/api-admin/models/credentials.model.ts +0 -4
  94. package/src/lib/admin/api-admin/state/api-admin.query.ts +0 -14
  95. package/src/lib/admin/api-admin/state/api-admin.service.ts +0 -31
  96. package/src/lib/admin/api-admin/state/api-admin.state.ts +0 -14
  97. package/src/lib/admin/api-admin/state/api-admin.store.ts +0 -13
  98. package/src/lib/admin/dd-admin/components/dd-admin-form/dd-admin-form.component.css +0 -0
  99. package/src/lib/admin/dd-admin/components/dd-admin-form/dd-admin-form.component.html +0 -1
  100. package/src/lib/admin/dd-admin/components/dd-admin-form/dd-admin-form.component.spec.ts +0 -23
  101. package/src/lib/admin/dd-admin/components/dd-admin-form/dd-admin-form.component.ts +0 -11
  102. package/src/lib/admin/dd-admin/components/dd-admin-list/dd-admin-list.component.css +0 -0
  103. package/src/lib/admin/dd-admin/components/dd-admin-list/dd-admin-list.component.html +0 -1
  104. package/src/lib/admin/dd-admin/components/dd-admin-list/dd-admin-list.component.spec.ts +0 -23
  105. package/src/lib/admin/dd-admin/components/dd-admin-list/dd-admin-list.component.ts +0 -11
  106. package/src/lib/admin/dd-admin/dd-admin.module.ts +0 -12
  107. package/src/lib/admin/queue-admin/components/queue-admin-form/queue-admin-form.component.css +0 -0
  108. package/src/lib/admin/queue-admin/components/queue-admin-form/queue-admin-form.component.html +0 -1
  109. package/src/lib/admin/queue-admin/components/queue-admin-form/queue-admin-form.component.spec.ts +0 -23
  110. package/src/lib/admin/queue-admin/components/queue-admin-form/queue-admin-form.component.ts +0 -11
  111. package/src/lib/admin/queue-admin/components/queue-admin-list/queue-admin-list.component.css +0 -0
  112. package/src/lib/admin/queue-admin/components/queue-admin-list/queue-admin-list.component.html +0 -1
  113. package/src/lib/admin/queue-admin/components/queue-admin-list/queue-admin-list.component.spec.ts +0 -23
  114. package/src/lib/admin/queue-admin/components/queue-admin-list/queue-admin-list.component.ts +0 -11
  115. package/src/lib/admin/queue-admin/queue-admin.module.ts +0 -12
  116. package/src/lib/admin/widget-admin/components/widget-admin-form/widget-admin-form.component.css +0 -0
  117. package/src/lib/admin/widget-admin/components/widget-admin-form/widget-admin-form.component.html +0 -1
  118. package/src/lib/admin/widget-admin/components/widget-admin-form/widget-admin-form.component.spec.ts +0 -23
  119. package/src/lib/admin/widget-admin/components/widget-admin-form/widget-admin-form.component.ts +0 -11
  120. package/src/lib/admin/widget-admin/components/widget-admin-list/widget-admin-list.component.css +0 -0
  121. package/src/lib/admin/widget-admin/components/widget-admin-list/widget-admin-list.component.html +0 -1
  122. package/src/lib/admin/widget-admin/components/widget-admin-list/widget-admin-list.component.spec.ts +0 -23
  123. package/src/lib/admin/widget-admin/components/widget-admin-list/widget-admin-list.component.ts +0 -11
  124. package/src/lib/admin/widget-admin/widget-admin.module.ts +0 -12
  125. package/src/lib/shared/_base/base-control/base-control.component.html +0 -1
  126. package/src/lib/shared/_base/base-control/base-control.component.scss +0 -0
  127. package/src/lib/shared/_base/base-control/base-control.component.spec.ts +0 -21
  128. package/src/lib/shared/_base/base-control/base-control.component.ts +0 -55
  129. package/src/lib/shared/_base/base-form/base-form.component.html +0 -1
  130. package/src/lib/shared/_base/base-form/base-form.component.scss +0 -0
  131. package/src/lib/shared/_base/base-form/base-form.component.spec.ts +0 -21
  132. package/src/lib/shared/_base/base-form/base-form.component.ts +0 -81
  133. package/src/lib/shared/_base/base-list/base-list.component.html +0 -1
  134. package/src/lib/shared/_base/base-list/base-list.component.scss +0 -0
  135. package/src/lib/shared/_base/base-list/base-list.component.spec.ts +0 -21
  136. package/src/lib/shared/_base/base-list/base-list.component.ts +0 -31
  137. package/src/lib/shared/components/form-container/form-container.component.html +0 -55
  138. package/src/lib/shared/components/form-container/form-container.component.scss +0 -108
  139. package/src/lib/shared/components/form-container/form-container.component.spec.ts +0 -21
  140. package/src/lib/shared/components/form-container/form-container.component.ts +0 -55
  141. package/src/lib/shared/components/sidebar/sidebar.component.html +0 -13
  142. package/src/lib/shared/components/sidebar/sidebar.component.scss +0 -45
  143. package/src/lib/shared/components/sidebar/sidebar.component.spec.ts +0 -21
  144. package/src/lib/shared/components/sidebar/sidebar.component.ts +0 -26
  145. package/src/lib/shared/constant/CSS.ts +0 -9
  146. package/src/lib/shared/constant/DATASOURCES.ts +0 -10
  147. package/src/lib/shared/constant/ERROR.ts +0 -3
  148. package/src/lib/shared/constant/HEADERS.ts +0 -4
  149. package/src/lib/shared/constant/LIST-CONFIG.ts +0 -10
  150. package/src/lib/shared/constant/LOOKUPS.ts +0 -3
  151. package/src/lib/shared/constant/ROUTES.ts +0 -12
  152. package/src/lib/shared/constant/SHARED.ts +0 -603
  153. package/src/lib/shared/constant/URLS.ts +0 -3
  154. package/src/lib/shared/controls/button/button.component.html +0 -25
  155. package/src/lib/shared/controls/button/button.component.scss +0 -0
  156. package/src/lib/shared/controls/button/button.component.spec.ts +0 -21
  157. package/src/lib/shared/controls/button/button.component.ts +0 -15
  158. package/src/lib/shared/controls/check-box/check-box.component.html +0 -22
  159. package/src/lib/shared/controls/check-box/check-box.component.scss +0 -32
  160. package/src/lib/shared/controls/check-box/check-box.component.spec.ts +0 -26
  161. package/src/lib/shared/controls/check-box/check-box.component.ts +0 -16
  162. package/src/lib/shared/controls/date/date.component.html +0 -43
  163. package/src/lib/shared/controls/date/date.component.scss +0 -0
  164. package/src/lib/shared/controls/date/date.component.spec.ts +0 -21
  165. package/src/lib/shared/controls/date/date.component.ts +0 -42
  166. package/src/lib/shared/controls/dropdown/dropdown.component.html +0 -28
  167. package/src/lib/shared/controls/dropdown/dropdown.component.scss +0 -12
  168. package/src/lib/shared/controls/dropdown/dropdown.component.ts +0 -71
  169. package/src/lib/shared/controls/file-upload/file-upload.component.html +0 -18
  170. package/src/lib/shared/controls/file-upload/file-upload.component.scss +0 -0
  171. package/src/lib/shared/controls/file-upload/file-upload.component.spec.ts +0 -21
  172. package/src/lib/shared/controls/file-upload/file-upload.component.ts +0 -19
  173. package/src/lib/shared/controls/number-feild/number-feild.component.html +0 -39
  174. package/src/lib/shared/controls/number-feild/number-feild.component.scss +0 -13
  175. package/src/lib/shared/controls/number-feild/number-feild.component.spec.ts +0 -21
  176. package/src/lib/shared/controls/number-feild/number-feild.component.ts +0 -35
  177. package/src/lib/shared/controls/password/password.component.html +0 -22
  178. package/src/lib/shared/controls/password/password.component.scss +0 -0
  179. package/src/lib/shared/controls/password/password.component.spec.ts +0 -28
  180. package/src/lib/shared/controls/password/password.component.ts +0 -24
  181. package/src/lib/shared/controls/text-area/text-area.component.html +0 -36
  182. package/src/lib/shared/controls/text-area/text-area.component.scss +0 -22
  183. package/src/lib/shared/controls/text-area/text-area.component.spec.ts +0 -23
  184. package/src/lib/shared/controls/text-area/text-area.component.ts +0 -25
  185. package/src/lib/shared/controls/text-box/text-box.component.html +0 -44
  186. package/src/lib/shared/controls/text-box/text-box.component.scss +0 -25
  187. package/src/lib/shared/controls/text-box/text-box.component.spec.ts +0 -30
  188. package/src/lib/shared/controls/text-box/text-box.component.ts +0 -26
  189. package/src/lib/shared/controls/username/username.component.html +0 -16
  190. package/src/lib/shared/controls/username/username.component.scss +0 -0
  191. package/src/lib/shared/controls/username/username.component.spec.ts +0 -29
  192. package/src/lib/shared/controls/username/username.component.ts +0 -17
  193. package/src/lib/shared/models/attribute.model.ts +0 -42
  194. package/src/lib/shared/models/base.model.ts +0 -3
  195. package/src/lib/shared/models/list.model.ts +0 -27
  196. package/src/lib/shared/models/message.model.ts +0 -4
  197. package/src/lib/shared/pipe/capitalize-words.pipe.spec.ts +0 -8
  198. package/src/lib/shared/pipe/capitalize-words.pipe.ts +0 -17
  199. package/src/lib/shared/services/app-config.service.spec.ts +0 -16
  200. package/src/lib/shared/services/app-config.service.ts +0 -25
  201. package/src/lib/shared/services/auth/auth.guard.spec.ts +0 -17
  202. package/src/lib/shared/services/auth/auth.guard.ts +0 -25
  203. package/src/lib/shared/services/data-transformer.service.spec.ts +0 -16
  204. package/src/lib/shared/services/data-transformer.service.ts +0 -41
  205. package/src/lib/shared/services/date-parser.service.spec.ts +0 -16
  206. package/src/lib/shared/services/date-parser.service.ts +0 -54
  207. package/src/lib/shared/services/list.service.spec.ts +0 -16
  208. package/src/lib/shared/services/list.service.ts +0 -53
  209. package/src/lib/shared/services/session.service.spec.ts +0 -16
  210. package/src/lib/shared/services/session.service.ts +0 -37
  211. package/src/lib/shared/services/table.builder.ts +0 -38
  212. package/src/lib/shared/services/validator.service.spec.ts +0 -16
  213. package/src/lib/shared/services/validator.service.ts +0 -13
  214. package/src/lib/shared/shared.module.ts +0 -62
  215. package/src/lib/shared/state/base.query.ts +0 -48
  216. package/src/lib/shared/state/base.service.ts +0 -69
  217. package/src/lib/shared/state/base.state.ts +0 -6
  218. package/src/lib/shared/state/base.store.ts +0 -56
  219. package/src/lib/shared/table-primary/components/table-primary.component.html +0 -56
  220. package/src/lib/shared/table-primary/components/table-primary.component.scss +0 -187
  221. package/src/lib/shared/table-primary/components/table-primary.component.spec.ts +0 -21
  222. package/src/lib/shared/table-primary/components/table-primary.component.ts +0 -71
  223. package/src/lib/shared/table-primary/models/table-primary-header.model.ts +0 -7
  224. package/src/lib/shared/table-primary/models/table-primary.model.ts +0 -6
  225. package/src/lib/widget/components/widget-body/widget-body.component.html +0 -1
  226. package/src/lib/widget/components/widget-body/widget-body.component.scss +0 -0
  227. package/src/lib/widget/components/widget-body/widget-body.component.spec.ts +0 -23
  228. package/src/lib/widget/components/widget-body/widget-body.component.ts +0 -11
  229. package/src/lib/widget/components/widget-container/widget-container.component.css +0 -0
  230. package/src/lib/widget/components/widget-container/widget-container.component.html +0 -1
  231. package/src/lib/widget/components/widget-container/widget-container.component.spec.ts +0 -23
  232. package/src/lib/widget/components/widget-container/widget-container.component.ts +0 -11
  233. package/src/lib/widget/components/widget-footer/widget-footer.component.css +0 -0
  234. package/src/lib/widget/components/widget-footer/widget-footer.component.html +0 -1
  235. package/src/lib/widget/components/widget-footer/widget-footer.component.spec.ts +0 -23
  236. package/src/lib/widget/components/widget-footer/widget-footer.component.ts +0 -11
  237. package/src/lib/widget/components/widget-header/widget-header.component.css +0 -0
  238. package/src/lib/widget/components/widget-header/widget-header.component.html +0 -1
  239. package/src/lib/widget/components/widget-header/widget-header.component.spec.ts +0 -23
  240. package/src/lib/widget/components/widget-header/widget-header.component.ts +0 -11
  241. package/src/lib/widget/components/widget-item/widget-item.component.css +0 -0
  242. package/src/lib/widget/components/widget-item/widget-item.component.html +0 -1
  243. package/src/lib/widget/components/widget-item/widget-item.component.spec.ts +0 -23
  244. package/src/lib/widget/components/widget-item/widget-item.component.ts +0 -11
  245. package/src/lib/widget/widget.module.ts +0 -12
  246. package/tsconfig.lib.json +0 -15
  247. package/tsconfig.lib.prod.json +0 -11
  248. package/tsconfig.spec.json +0 -15
@@ -0,0 +1,2033 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, Component, Input, Output, Injectable, ViewEncapsulation, Pipe, NgModule, APP_INITIALIZER } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i2$1 from '@angular/forms';
6
+ import { FormsModule } from '@angular/forms';
7
+ import * as i2$3 from 'primeng/inputtext';
8
+ import { InputTextModule } from 'primeng/inputtext';
9
+ import * as i3$2 from 'primeng/dropdown';
10
+ import { DropdownModule } from 'primeng/dropdown';
11
+ import { InputGroupModule } from 'primeng/inputgroup';
12
+ import * as i2$2 from 'primeng/button';
13
+ import { ButtonModule } from 'primeng/button';
14
+ import { CardModule } from 'primeng/card';
15
+ import * as i3 from 'primeng/sidebar';
16
+ import { SidebarModule } from 'primeng/sidebar';
17
+ import * as i2 from 'primeng/api';
18
+ import { MessageService, ConfirmationService } from 'primeng/api';
19
+ import * as i4 from 'primeng/divider';
20
+ import { DividerModule } from 'primeng/divider';
21
+ import * as i3$1 from 'primeng/checkbox';
22
+ import { CheckboxModule } from 'primeng/checkbox';
23
+ import { EntityStore, StoreConfig, QueryEntity } from '@datorama/akita';
24
+ import { __decorate } from 'tslib';
25
+ import { BehaviorSubject, firstValueFrom, of, tap as tap$1, map } from 'rxjs';
26
+ import { DragDropModule } from 'primeng/dragdrop';
27
+ import * as i4$2 from 'primeng/confirmdialog';
28
+ import { ConfirmDialogModule } from 'primeng/confirmdialog';
29
+ import * as i5 from 'primeng/toast';
30
+ import { ToastModule } from 'primeng/toast';
31
+ import * as i6 from 'primeng/messages';
32
+ import { MessagesModule } from 'primeng/messages';
33
+ import * as i4$1 from 'primeng/tooltip';
34
+ import { TooltipModule } from 'primeng/tooltip';
35
+ import * as i1$1 from '@angular/router';
36
+ import { tap } from 'rxjs/operators';
37
+ import * as i1$2 from '@angular/common/http';
38
+ import { HttpClientModule } from '@angular/common/http';
39
+ import * as i2$5 from 'primeng/inputtextarea';
40
+ import { InputTextareaModule } from 'primeng/inputtextarea';
41
+ import * as i3$3 from 'primeng/calendar';
42
+ import { CalendarModule } from 'primeng/calendar';
43
+ import moment from 'moment';
44
+ import { DialogModule } from 'primeng/dialog';
45
+ import { TimelineModule } from 'primeng/timeline';
46
+ import { ListboxModule } from 'primeng/listbox';
47
+ import * as i2$4 from 'primeng/fileupload';
48
+ import { FileUploadModule } from 'primeng/fileupload';
49
+ import * as i3$4 from 'primeng/table';
50
+ import { TableModule } from 'primeng/table';
51
+ import { ToggleButtonModule } from 'primeng/togglebutton';
52
+ import { InputSwitchModule } from 'primeng/inputswitch';
53
+
54
+ class SHARED {
55
+ static EMPTY = "";
56
+ static REQUIRED_ERROR = "Field Required";
57
+ static EMPTYARRAY = [];
58
+ static NULL = "NULL";
59
+ static HIPHEN = "-";
60
+ static SLASH = "/";
61
+ static USERROLE = "role";
62
+ static SESSIONKEY = "userData";
63
+ static SUCCESS = "success";
64
+ static ERROR = "error";
65
+ static ERROR_MESSAGE = "Success Message";
66
+ static SUCCESS_MESSAGE = "Success Message";
67
+ static DICTIONARY = "Dictionary";
68
+ static TITLE = 'title';
69
+ static DICTIONARY_ITEM = 'dictionaryItem';
70
+ static DICTIONARY_ITEM_MAPPER = 'dictionaryItemMapper';
71
+ static SIDEBAR_MASK = '.p-sidebar-mask';
72
+ static CUSTOMSIDEBAROVERLAY = 'custom-sidebar-overlay';
73
+ static ID = 'id';
74
+ static _ID = '_id';
75
+ static DATE_FORMAT = "DD/MM/YYYY";
76
+ static DATE_FORMAT_TYPE2 = "DD-MM-YYYY";
77
+ static DATE_FORMAT_TYPE3 = "YY-MM-DD";
78
+ static DATE_FORMAT_TYPE4 = "YYYY-MM-DD";
79
+ static INVALIDDATE = "Invalid Date";
80
+ static __V = '__v';
81
+ static CREATEDAT = 'createdAt';
82
+ static UPDATEDAT = 'updatedAt';
83
+ static CREDENTIALS = 'credentials';
84
+ static ZERO = 0;
85
+ static TYPE_OBJECT = 'object';
86
+ static DICTIONARYITEMS = 'dictionaryItems';
87
+ static GET_DATA_MESSAGE = [{ severity: 'info', detail: 'Data has been fetched successfully.', life: 1000 }];
88
+ static PRIMARY = 'primary';
89
+ static mappingInfo = 'mappingInfo';
90
+ static YES = 'Yes';
91
+ static NO = 'No';
92
+ static selectedQueue = 'selectedQueue';
93
+ static DASH = "-";
94
+ static selectedApplication = 'selectedApplication';
95
+ static selectedApplicationNumber = 'selectedApplicationNumber';
96
+ static GREEN = "green";
97
+ static RED = "red";
98
+ static FROM_EMAIL = "neeraj.kumar@catura.co.uk";
99
+ static to_EMAIL = "shubham.prajapati@dynamatix.com";
100
+ static EMAIL = 'email';
101
+ static token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxOTI2ZjcyN2RkZWI0MDAxMWE2ZDZmNyIsIm5hbWUiOiJKb2huIERvZSIsInJvbGUiOiJ1c2VyIiwiaWF0IjoxNjQyNzQ5MzYyLCJleHAiOjE2NDI4MzU3NjJ9.4fBQqP2_6z0H4Ow7J-R27XEdIgl2MrMoIXCgD_qZFlA';
102
+ static null = 'null';
103
+ static undefined = 'undefined';
104
+ static rationale = 'rationale';
105
+ static accepted = 'Accepted';
106
+ static application = 'Application';
107
+ static INVALID_API_PATH = 'Please enter the API path.';
108
+ static WIDTH_AUTO = 'w-auto';
109
+ }
110
+ const delimiters = ['|', '/', '-'];
111
+ const dictionaryItemList = [];
112
+ const dictionaryItemMapperList = [];
113
+ const dictionaryApiFieldList = {
114
+ title: 'Property data',
115
+ data: [{ name: 'First name' },
116
+ { name: 'Last name' },
117
+ { name: 'Email' },
118
+ { name: 'Address' },
119
+ { name: 'Gender' },
120
+ { name: 'Dob' }
121
+ ]
122
+ };
123
+ const FolderPanel = [
124
+ {
125
+ _id: 'folder1',
126
+ fileCount: 10,
127
+ text: 'Documents',
128
+ missingFiles: 3,
129
+ pendingFiles: 2
130
+ },
131
+ {
132
+ _id: 'folder2',
133
+ fileCount: 5,
134
+ text: 'Images',
135
+ missingFiles: 0,
136
+ pendingFiles: 1
137
+ },
138
+ {
139
+ _id: 'folder3',
140
+ fileCount: 20,
141
+ text: 'Reports',
142
+ missingFiles: 5,
143
+ pendingFiles: 0
144
+ },
145
+ {
146
+ _id: 'folder4',
147
+ fileCount: 8,
148
+ text: 'Videos',
149
+ missingFiles: 0,
150
+ pendingFiles: 0
151
+ },
152
+ {
153
+ _id: 'folder5',
154
+ fileCount: 15,
155
+ text: 'Archives',
156
+ missingFiles: 1,
157
+ pendingFiles: 3
158
+ }
159
+ ];
160
+ const DocumentList = [
161
+ {
162
+ id: 1,
163
+ fileName: 'Document 1',
164
+ status: 'pending',
165
+ documentUrl: 'https://vadimdez.github.io/ng2-pdf-viewer/assets/pdf-test.pdf',
166
+ },
167
+ {
168
+ id: 2,
169
+ fileName: 'Document 2',
170
+ status: 'verified',
171
+ documentUrl: 'https://vadimdez.github.io/ng2-pdf-viewer/assets/pdf-test.pdf',
172
+ },
173
+ {
174
+ id: 3,
175
+ fileName: 'Document 3',
176
+ status: 'sentReminder',
177
+ documentUrl: 'https://vadimdez.github.io/ng2-pdf-viewer/assets/pdf-test.pdf',
178
+ },
179
+ {
180
+ id: 4,
181
+ fileName: 'Document 4',
182
+ status: 'pending',
183
+ documentUrl: 'https://vadimdez.github.io/ng2-pdf-viewer/assets/pdf-test.pdf',
184
+ },
185
+ ];
186
+ const widgetLinkList = [
187
+ { name: 'https://dummy-url.com/NY', code: 'NY' },
188
+ { name: 'https://dummy-url.com/RM', code: 'RM' },
189
+ { name: 'https://dummy-url.com/LDN', code: 'LDN' },
190
+ { name: 'https://dummy-url.com/IST', code: 'IST' },
191
+ { name: 'https://dummy-url.com/PRS', code: 'PRS' }
192
+ ];
193
+ const dictionaryList = [
194
+ { "id": 1, "Name": "John Doe", "API": "Dynamatix.com/getfinance" },
195
+ { "id": 2, "Name": "Jane Smith", "API": "Dynamatix.com/getfinance" },
196
+ { "id": 3, "Name": "David Lee", "API": "Dynamatix.com/getfinance" },
197
+ { "id": 4, "Name": "Emma Wilson", "API": "Dynamatix.com/getfinance" },
198
+ { "id": 5, "Name": "Michael Brown", "API": "Dynamatix.com/getfinance" }
199
+ ];
200
+ const SEQUENTIAL_MESSAGE = [
201
+ "Your case is under review.",
202
+ "We have received your application.",
203
+ "A new update is available for your case.",
204
+ "Please verify your contact details.",
205
+ "Your case is pending further action.",
206
+ "We are processing your request.",
207
+ "Your case has been escalated.",
208
+ "Thank you for reaching out.",
209
+ "Your documents have been received.",
210
+ "Our team will contact you shortly."
211
+ ];
212
+ const apiHiddenHeaderList = ['credentials', 'createdAt', 'updatedAt', '__v', 'properties', '_id', 'createdByUserID', 'updatedByUserID'];
213
+ const dictionaryHiddenHeaderList = ['queues', 'attributes', 'createdByUserID', 'updatedByUserID', 'createdAt', 'updatedAt', '__v', '_id'];
214
+ const widgetHiddenHeaderList = ['_id', 'dataItems', 'timestamp', 'createdAt', 'updatedAt', '__v', 'order'];
215
+ const hiddenHeaderList = ['status', 'actions'];
216
+ const expectedRoutes = ['apiManagement', 'queue', 'dictionary', 'widget'];
217
+ const mileList = [
218
+ { name: '0.5 Mile', value: 0.5 },
219
+ { name: '1 Mile', value: 1 }
220
+ ];
221
+ const messageType = [
222
+ { name: 'Email', icon: 'pi pi-envelope' },
223
+ { name: 'WhatsApp', icon: 'pi pi-whatsapp' },
224
+ { name: 'SMS', icon: 'pi pi-comment' },
225
+ ];
226
+ const propertyDataList = [
227
+ {
228
+ key: '0',
229
+ label: 'Documents',
230
+ data: 'Documents Folder',
231
+ icon: 'pi pi-fw pi-inbox',
232
+ children: [
233
+ {
234
+ key: '0-0',
235
+ label: 'Work',
236
+ data: 'Work Folder',
237
+ icon: 'pi pi-fw pi-cog',
238
+ children: [
239
+ { key: '0-0-0', label: 'Expenses.doc', icon: 'pi pi-fw pi-file', data: 'Expenses Document' },
240
+ { key: '0-0-1', label: 'Resume.doc', icon: 'pi pi-fw pi-file', data: 'Resume Document' }
241
+ ]
242
+ },
243
+ {
244
+ key: '0-1',
245
+ label: 'Home',
246
+ data: 'Home Folder',
247
+ icon: 'pi pi-fw pi-home',
248
+ children: [{ key: '0-1-0', label: 'Invoices.txt', icon: 'pi pi-fw pi-file', data: 'Invoices for this month' }]
249
+ }
250
+ ]
251
+ },
252
+ {
253
+ key: '1',
254
+ label: 'Events',
255
+ data: 'Events Folder',
256
+ icon: 'pi pi-fw pi-calendar',
257
+ children: [
258
+ { key: '1-0', label: 'Meeting', icon: 'pi pi-fw pi-calendar-plus', data: 'Meeting' },
259
+ { key: '1-1', label: 'Product Launch', icon: 'pi pi-fw pi-calendar-plus', data: 'Product Launch' },
260
+ { key: '1-2', label: 'Report Review', icon: 'pi pi-fw pi-calendar-plus', data: 'Report Review' }
261
+ ]
262
+ },
263
+ {
264
+ key: '2',
265
+ label: 'Movies',
266
+ data: 'Movies Folder',
267
+ icon: 'pi pi-fw pi-star-fill',
268
+ children: [
269
+ {
270
+ key: '2-0',
271
+ icon: 'pi pi-fw pi-star-fill',
272
+ label: 'Al Pacino',
273
+ data: 'Pacino Movies',
274
+ children: [
275
+ { key: '2-0-0', label: 'Scarface', icon: 'pi pi-fw pi-video', data: 'Scarface Movie' },
276
+ { key: '2-0-1', label: 'Serpico', icon: 'pi pi-fw pi-video', data: 'Serpico Movie' }
277
+ ]
278
+ },
279
+ {
280
+ key: '2-1',
281
+ label: 'Robert De Niro',
282
+ icon: 'pi pi-fw pi-star-fill',
283
+ data: 'De Niro Movies',
284
+ children: [
285
+ { key: '2-1-0', label: 'Goodfellas', icon: 'pi pi-fw pi-video', data: 'Goodfellas Movie' },
286
+ { key: '2-1-1', label: 'Untouchables', icon: 'pi pi-fw pi-video', data: 'Untouchables Movie', selectable: false }
287
+ ]
288
+ }
289
+ ]
290
+ }
291
+ ];
292
+ const widgets = [
293
+ {
294
+ outOfTheBoxName: 'Application',
295
+ title: 'Application Details',
296
+ subtitle: {
297
+ label: 'Risk Rating:',
298
+ value: 'High',
299
+ color: 'danger'
300
+ },
301
+ percentage: '80%',
302
+ fields: [
303
+ { label: 'Application ID | Submission Date', value: '00160750 | 04-10-2024' },
304
+ { label: 'No of Applicants', value: '2' },
305
+ { label: 'Application Type', value: 'International' },
306
+ { label: 'Product', value: 'HPP 5 years', isPrimary: true },
307
+ { label: 'Property Value', value: '£500,000' },
308
+ { label: 'Gross Finance Amount', value: '£325,000' },
309
+ { label: 'LTV %', value: '95%', highlight: true, alert: true },
310
+ { label: 'Purchase', value: 'View', link: true },
311
+ { label: 'Overall Affordability', value: '£2,716', alert: true },
312
+ { label: 'Monthly Repayment', value: '£3,771.85', alert: true, icon: 'pi pi-exclamation-triangle', inLabel: false },
313
+ { label: 'Broker', value: 'Kishar Wallace-Cronin', isPrimary: true, rating: '5.0', icon: 'rating', isRating: true },
314
+ { label: 'Direct Debit', value: 'Anthony. J. Cooper/ 404784/70872490', isPrimary: true },
315
+ { label: 'Portfolio (#, Val,FTV)', value: '2, $420,000, 69.29%', isPrimary: true },
316
+ { label: 'Solicitor', value: 'Kirkland & Ellis', isPrimary: true }
317
+ ],
318
+ viewAll: 'View All Details'
319
+ },
320
+ {
321
+ title: 'Generic Widget Details',
322
+ subtitle: {
323
+ label: 'Status:',
324
+ value: 'Pending',
325
+ color: 'warning'
326
+ },
327
+ percentage: '50%',
328
+ fields: [
329
+ { label: 'Task ID', value: '00012345' },
330
+ { label: 'Assigned To', value: 'John Doe' },
331
+ { label: 'Task Type', value: 'Internal' },
332
+ { label: 'Deadline', value: '20-10-2024' },
333
+ { label: 'Priority', value: 'High', highlight: true },
334
+ { label: 'Status', value: 'In Progress', alert: true },
335
+ { label: 'Comments', value: 'Requires further review' },
336
+ { label: 'Owner', value: 'Jane Smith' },
337
+ { label: 'Approver', value: 'Alan Turing' }
338
+ ],
339
+ viewAll: 'View All Tasks'
340
+ }
341
+ ];
342
+ const applicationWidgetList = [
343
+ {
344
+ title: 'Application Details',
345
+ subtitle: {
346
+ label: 'Risk Rating:',
347
+ value: 'High',
348
+ color: 'danger'
349
+ },
350
+ percentage: '80%',
351
+ fields: [
352
+ { label: 'Application ID | Submission Date', value: '00160750 | 04-10-2024' },
353
+ { label: 'No of Applicants', value: '2' },
354
+ { label: 'Application Type', value: 'International' },
355
+ { label: 'Product', value: 'HPP 5 years', isPrimary: true },
356
+ { label: 'Property Value', value: '£500,000' },
357
+ { label: 'Gross Finance Amount', value: '£325,000' },
358
+ { label: 'LTV %', value: '95%', highlight: true, alert: true },
359
+ { label: 'Purchase', value: 'View', link: true },
360
+ { label: 'Overall Affordability', value: '£2,716', alert: true },
361
+ { label: 'Monthly Repayment', value: '£3,771.85', alert: true, icon: 'pi pi-exclamation-triangle', inLabel: false },
362
+ { label: 'Broker', value: ' Kishar Wallace-Cronin', isPrimary: true, rating: '5.0', icon: 'rating', isRating: true },
363
+ { label: 'Direct Debit', value: 'Anthony. J. Cooper/ 404784/70872490', isPrimary: true },
364
+ { label: 'Portfolio (#, Val,FTV)', value: '2, $420,000,69.29%', isPrimary: true },
365
+ { label: 'Solicitor', value: 'Kirkland & Ellis', isPrimary: true }
366
+ ],
367
+ viewAll: 'View All Details'
368
+ }
369
+ ];
370
+ const applicantWidgetList = [
371
+ {
372
+ title: 'Applicant (Anthony J Cooper)',
373
+ badge: 'Pending',
374
+ badgeIcon: 'pi pi-clock',
375
+ percentage: '80%',
376
+ subtitle: {
377
+ label: 'Risk Rating:',
378
+ value: 'Medium',
379
+ color: 'warning'
380
+ },
381
+ fields: [
382
+ { label: 'Nationality | Residence', value: 'British | United Kingdom' },
383
+ { label: 'Income', value: '£6,633', alert: true, isUnderline: true },
384
+ { label: 'Affordability', value: '£2,133', alert: true, isUnderline: true },
385
+ { label: 'Credit Score', value: '3| 350', icon: 'pi pi-exclamation-triangle', alert: true, isUnderline: true },
386
+ { label: 'Dependents', value: '3' },
387
+ { label: 'Portfolio | FTV', value: '£220,000 | 69.29%', link: true },
388
+ { label: 'Employment Type | Industry', value: 'Full Time | Information Techno..' },
389
+ { label: 'Documents', value: '4/6', alert: true, isUnderline: true },
390
+ ],
391
+ viewAll: 'View All Details'
392
+ },
393
+ {
394
+ title: 'Applicant (Bella Henderson)',
395
+ badge: 'Pending',
396
+ badgeIcon: 'pi pi-clock',
397
+ percentage: '80%',
398
+ subtitle: {
399
+ label: 'Risk Rating:',
400
+ value: 'Low',
401
+ color: 'success'
402
+ },
403
+ fields: [
404
+ { label: 'Nationality | Residence', value: 'British | United Kingdom' },
405
+ { label: 'Income', value: '£4,633', isUnderline: true, link: true },
406
+ { label: 'Affordability', value: '£2,133', isUnderline: true },
407
+ { label: 'Credit Score', value: '750', isUnderline: true },
408
+ { label: 'Dependents', value: '3' },
409
+ { label: 'Portfolio | FTV', value: '£200,000 | 69.29%', link: true },
410
+ { label: 'Employment Type | Industry', value: 'Full Time | Information Techno..' },
411
+ { label: 'Documents', value: '6/6', isUnderline: true },
412
+ ],
413
+ viewAll: 'View All Details'
414
+ }
415
+ ];
416
+ const companyWidget = [
417
+ {
418
+ title: 'Property Info',
419
+ badge: 'Pending',
420
+ badgeIcon: 'pi pi-clock',
421
+ percentage: '80%',
422
+ riskRating: 'Medium',
423
+ subtitle: {
424
+ label: 'Risk Rating:',
425
+ value: 'Medium',
426
+ color: 'warning'
427
+ },
428
+ dataItems: [
429
+ { key: 'Name', value: 'Prime Property Holdings Ltd', style: "font-size: 14px; color: #0F1729; font-weight: 600;" },
430
+ { key: 'SIC Code', value: '64929', style: "font-size: 14px; color: #0F1729; font-weight: 600;" },
431
+ { key: 'Registration Number', value: '09876543', style: "font-size: 14px; color: #0F1729; font-weight: 600;" },
432
+ { key: 'Address', value: '123 Baker Street, London, W1U 6RQ', style: "font-size: 14px; color: #0F1729; font-weight: 600;" },
433
+ { key: 'Date of Incorporation', value: '15th March 2018', style: "font-size: 14px; color: #0F1729; font-weight: 600;" },
434
+ { key: 'Existing Mortgage', value: '2', alert: true, style: "font-size: 14px; color: #0F1729; font-weight: 600;" }
435
+ ],
436
+ viewAll: 'View All Details'
437
+ },
438
+ ];
439
+ const propertyDetailsWidgetList = [
440
+ {
441
+ title: 'Property Details',
442
+ badge: 'Verified',
443
+ badgeIcon: 'pi pi-verified',
444
+ percentage: '100%',
445
+ subtitle: {
446
+ label: 'Risk Rating:',
447
+ value: 'Medium',
448
+ color: 'warning',
449
+ verified: true
450
+ },
451
+ fields: [
452
+ { label: 'Type', value: 'Detached House' },
453
+ { label: 'EPC', value: 'B (Rating: 83)' },
454
+ { label: 'Tenure', value: 'Freehold' },
455
+ { label: 'New Build', value: 'No' },
456
+ { label: 'Address' },
457
+ { label: '14 Wilimin Grove, Loughton, Milton Keynes MK5 8EU', isLabelLink: true, icon: 'pi pi-map-marker map-icon' },
458
+ ],
459
+ viewAll: 'View All Details'
460
+ }
461
+ ];
462
+ const offerWidgetList = [
463
+ {
464
+ title: 'Offer',
465
+ badge: 'Pending',
466
+ badgeIcon: 'pi pi-clock',
467
+ statusList: [
468
+ { description: 'Application(HS) Condition was added on 10th Sep 2023', status: 'active' },
469
+ { description: 'Property Condition was added on 10th Sep 2023', status: 'active' },
470
+ { description: 'Mandate Approval Requested on 14th Sep 2024', status: 'pending' },
471
+ { title: 'Waiting for Mandate Approval', description: 'Existing Mandate: 100,000', status: 'pending', textColor: '#FB392D' },
472
+ { description: 'Generate Offer', status: 'pending' }
473
+ ],
474
+ viewAll: 'View All Details'
475
+ }
476
+ ];
477
+ const valuationWidgetList = [
478
+ {
479
+ title: 'Valuation',
480
+ badge: 'Pending',
481
+ badgeIcon: 'pi pi-clock',
482
+ statusList: [
483
+ { description: 'Valuation Requested on 10th October 2024', status: 'active' },
484
+ { description: 'Fees Paid £400 on 10th October 2024', status: 'active' },
485
+ { description: 'Valuation Scheduled on 10th October 2024', status: 'active' },
486
+ { title: 'Report Received on 13th October 2024', description: 'Value: £450,000.<br>Bedroom mismatch (3 vs. 2)<br>Valuation mismatch<br>(£450,000 vs. £500,000)', status: 'active', textColor: '#FB392D' },
487
+ { description: 'PVQ Raised on 14th October 2024', status: 'active' },
488
+ { description: 'PVQ Response received on 14th October 2024', status: 'active' },
489
+ { description: 'Waiting for Valuation Report to be accepted', status: 'pending' }
490
+ ]
491
+ }
492
+ ];
493
+ const stageTimelineList = [
494
+ { title: 'Application Review', description: 'Underwriter request identity documents from Applicant (Bella)', footerText: '14th Oct 2024 10:00 AM', isLast: false },
495
+ { title: 'Underwriter Assigned', description: 'Valuation report received on 13th Oct 2024', footerText: '13th Oct 2024 10:00 AM', isLast: false },
496
+ { title: 'Underwriter Assigned', description: 'Missing documents provided by Broker on 12th Oct 2024', footerText: '12th Oct 2024 10:00 AM', isLast: false },
497
+ { title: 'Application Submitted', description: 'Application was Submitted on 10th Oct 2024 By Kishar Wallace-Cronin. Failed 6 out of 18 checks', footerText: '10th Oct 2024 10:00 AM', isLast: true },
498
+ ];
499
+ const saleHistoryTimelineList = [
500
+ { floorArea: '196 sq m', propertyType: 'Detached , Freehold' },
501
+ { floorArea: '136 sq m', propertyType: 'Detached , Freehold' },
502
+ { floorArea: '136 sq m', propertyType: 'Detached , Freehold' }
503
+ ];
504
+ const navigationTimelineList = [
505
+ { title: 'Alerts', status: 'active', textColor: '#FB392D' },
506
+ { title: 'Information', status: 'pending' },
507
+ ];
508
+ const notesPanelList = [
509
+ { title: 'Paul', date: '13-10-2024 03:00 PM', description: 'The lease, originally set for 75 years, has recently been extended to a 150-year term, pending confirmation from the legal team' },
510
+ { title: 'System', date: '11-10-2024 03:00 PM', description: 'Additional Information was request' },
511
+ { title: 'System', date: '10-10-2024 03:00 PM', description: 'Additional Document type Selfie was request' },
512
+ { title: 'Paul', date: '10-10-2024 03:00 PM', description: 'Looks like valuation document is incorrect' }
513
+ ];
514
+ const rationalItems = [
515
+ { title: 'Applicant (AC) Rationale', isOpen: true, status: 'Rejected' },
516
+ { title: 'Affordability Rational', isOpen: true, status: 'Accepted' },
517
+ { title: 'Finance', isOpen: false, status: 'Rejected' },
518
+ { title: 'Income Source', isOpen: false, status: 'Accepted' },
519
+ { title: 'Credit Conduct', isOpen: false, status: 'Rejected' },
520
+ { title: 'Fraud Checks', isOpen: false, status: 'Accepted' }
521
+ ];
522
+ const rationalListItems = [
523
+ { title: 'Applicant Rationale', isOpen: true, data: '', status: 'Rejected', width: 'w-11' },
524
+ { title: 'Fraud Checks...', isOpen: true, data: '', status: 'Accepted', width: 'w-11' },
525
+ { title: 'Credit Conduct', isOpen: true, data: '', status: 'Rejected', width: 'w-11' },
526
+ { title: 'Finance Rationale', isOpen: true, data: '', status: 'Accepted', width: 'w-11' },
527
+ { title: 'Income Source', isOpen: true, data: '', status: 'Rejected', width: 'w-11' },
528
+ { title: 'Affordability Source', isOpen: true, data: '', status: 'Accepted', width: 'w-11' }
529
+ ];
530
+ const alertList = [
531
+ "Payslip doesn't match with Bank statement",
532
+ "Valuation Report shows value less than Property Value"
533
+ ];
534
+ const applicantAlertList = [
535
+ "Payslip doesn't match with Bank statement",
536
+ "Credit Score is low",
537
+ "Valuation Report shows value less than Property Value"
538
+ ];
539
+ const applicationAlertList = [
540
+ "LTV% exceeds maximum threshold of 95%",
541
+ "Monthly Repayment of £3,771.85 exceeds affordability criteria",
542
+ "Overall Affordability calculation shows £2,716 is beyond acceptable limits",
543
+ "Income of £6,633 is insufficient for the requested loan amount",
544
+ "Affordability of £2,133 is too low for loan approval",
545
+ "Credit Score of 3|350 is below the minimum required score",
546
+ "Valuation Report indicates property value of £450,000 which is less than the requested loan amount.",
547
+ "Required documents not submitted: Pay slip, Tax Credits."
548
+ ];
549
+ const I2RAlert = [
550
+ "Driver name and policy holder doesn't match."
551
+ ];
552
+ const commitments = [
553
+ "Please provide details of your obligations/commitments.",
554
+ "Here you can add and manage all finance details.",
555
+ "If a residential finance/purchase plan has shared responsibility between more than 1 applicant, please only add once against a single applicant and provide details of the shared responsibility in the text box provided."
556
+ ];
557
+ const incomeDetailAlert = [
558
+ 'If you receive income (excluding BTL portfolio income) that has not already been declared, please provide details below. ',
559
+ "If you do not receive any other income, please do not complete any of the fields below and continue on to the next form.",
560
+ ];
561
+ const checkListStaticData = [
562
+ { list: 'Pay slip', type: 'Applicant', date: '12/10/2024 15:53:43', status: '✔ Verified' },
563
+ { list: 'Rational', type: 'Applicant', date: '12/10/2024 15:53:43', status: '✔ Verified' },
564
+ { list: 'Document', type: 'Applicant', date: '12/10/2024 15:53:43', status: '✔ Verified' },
565
+ { list: 'Rational', type: 'Applicant', date: '12/10/2024 15:53:43', status: '✔ Verified' },
566
+ { list: 'Valuation', type: 'Property', date: '12/10/2024 15:53:43', status: '✔ Verified' },
567
+ { list: 'Tax Credits', type: 'Applicant', date: '12/10/2024 15:53:43', status: '✔ Verified' },
568
+ ];
569
+ const actionHiddenHeaderList = ['apiEndPoint'];
570
+ const actionList = [
571
+ { action: 'Valuation Fee',
572
+ prompt: `The following conversation includes references to various addresses. Based on the selected form "Valuation Fee",
573
+ identify and extract the most recent address provided (in descending order of appearance in the text) and map it to the following schema::
574
+ {
575
+ "Line1": string,
576
+ "Line2": string,
577
+ "town": string,
578
+ "postcode": string
579
+ }.
580
+
581
+ Respond **only** with a valid JSON object matching this schema. Do not include any explanation, additional text, or comments.
582
+
583
+ Data:`, queueId: '674f1c645dafa6a66511c8fb', apiEndPoint: 'http://qa-gb.api.dynamatix.com:3100/api/applications', status: 'Enable'
584
+ },
585
+ { action: 'UK Resident',
586
+ prompt: `
587
+ The following conversation involves information related to UK residency. Based on the selected form "UK Resident",
588
+ extract the most recent address mentioned (in descending order of appearance in the text) and map it to the following schema::
589
+ {
590
+ "Line1": string,
591
+ "Line2": string,
592
+ "town": string,
593
+ "postcode": string
594
+ }.
595
+
596
+ Respond **only** with a valid JSON object matching this schema. Do not include any explanation, additional text, or comments.
597
+
598
+ Data:`, queueId: '676e4b27ee779eafc72b11b9', apiEndPoint: 'http://qa-gb.api.dynamatix.com:3100/api/applications', status: 'Disable'
599
+ },
600
+ { action: 'Address Update',
601
+ prompt: `
602
+ The following conversation contains updates related to address changes. Based on the selected form "Address Update",
603
+ identify and extract the most recent address mentioned (in descending order of appearance in the text) and map it to the following schema::
604
+ {
605
+ "Line1": string,
606
+ "Line2": string,
607
+ "town": string,
608
+ "postcode": string
609
+ }.
610
+
611
+ Respond **only** with a valid JSON object matching this schema. Do not include any explanation, additional text, or comments.
612
+
613
+ Data:`, queueId: '67332cf2f9439e97c47a3c43', apiEndPoint: 'http://qa-gb.api.dynamatix.com:3100/api/applications', status: 'Enable'
614
+ }
615
+ ];
616
+ const actionTableColumnWidthList = { action: 'w-3', prompt: 'w-4', queueId: 'w-3', status: 'w-2' };
617
+
618
+ class SidebarComponent {
619
+ renderer;
620
+ isSidebarVisible;
621
+ title;
622
+ onClose = new EventEmitter();
623
+ constructor(renderer) {
624
+ this.renderer = renderer;
625
+ }
626
+ onSidebarShow() {
627
+ const overlay = document.querySelector(SHARED.SIDEBAR_MASK);
628
+ if (overlay) {
629
+ this.renderer.addClass(overlay, SHARED.CUSTOMSIDEBAROVERLAY);
630
+ }
631
+ }
632
+ handleSidebarClose() {
633
+ this.onClose.emit(false);
634
+ }
635
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: SidebarComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
636
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: SidebarComponent, isStandalone: false, selector: "sidebar", inputs: { isSidebarVisible: "isSidebarVisible", title: "title" }, outputs: { onClose: "onClose" }, ngImport: i0, template: "<div *ngIf=\"isSidebarVisible\" class=\"backdrop-shadow\" (click)=\"handleSidebarClose()\"></div>\r\n<div>\r\n<p-sidebar class=\"sidebar-panel-wrapper\" [(visible)]=\"isSidebarVisible\" (onShow)=\"onSidebarShow()\" (onHide)=\"handleSidebarClose()\" [position]=\"'right'\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"flex align-items-center\">\r\n <h2 class=\"sidebar-title-wrapper text-color mb-0\">\r\n {{title}}\r\n </h2>\r\n </div>\r\n </ng-template>\r\n <p-divider class=\"sidebar-devider\"></p-divider>\r\n <ng-content></ng-content>\r\n</p-sidebar>", styles: ["::ng-deep .custom-sidebar-overlay{z-index:0!important}::ng-deep .sidebar-panel-wrapper .p-sidebar-header{padding:1.4rem 1rem}::ng-deep .sidebar-panel-wrapper .p-sidebar-content{padding:0}::ng-deep .sidebar-panel-wrapper .p-sidebar-right{width:35%!important}::ng-deep .sidebar-devider .p-divider{margin:0}::ng-deep .p-component-overlay{background-color:#f4f4f7!important}.sidebar-title-wrapper{font-size:24px;font-weight:700}.backdrop-shadow{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:999}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i3.Sidebar, selector: "p-sidebar", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "component", type: i4.Divider, selector: "p-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }] });
637
+ }
638
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: SidebarComponent, decorators: [{
639
+ type: Component,
640
+ args: [{ selector: 'sidebar', standalone: false, template: "<div *ngIf=\"isSidebarVisible\" class=\"backdrop-shadow\" (click)=\"handleSidebarClose()\"></div>\r\n<div>\r\n<p-sidebar class=\"sidebar-panel-wrapper\" [(visible)]=\"isSidebarVisible\" (onShow)=\"onSidebarShow()\" (onHide)=\"handleSidebarClose()\" [position]=\"'right'\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"flex align-items-center\">\r\n <h2 class=\"sidebar-title-wrapper text-color mb-0\">\r\n {{title}}\r\n </h2>\r\n </div>\r\n </ng-template>\r\n <p-divider class=\"sidebar-devider\"></p-divider>\r\n <ng-content></ng-content>\r\n</p-sidebar>", styles: ["::ng-deep .custom-sidebar-overlay{z-index:0!important}::ng-deep .sidebar-panel-wrapper .p-sidebar-header{padding:1.4rem 1rem}::ng-deep .sidebar-panel-wrapper .p-sidebar-content{padding:0}::ng-deep .sidebar-panel-wrapper .p-sidebar-right{width:35%!important}::ng-deep .sidebar-devider .p-divider{margin:0}::ng-deep .p-component-overlay{background-color:#f4f4f7!important}.sidebar-title-wrapper{font-size:24px;font-weight:700}.backdrop-shadow{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:999}\n"] }]
641
+ }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { isSidebarVisible: [{
642
+ type: Input
643
+ }], title: [{
644
+ type: Input
645
+ }], onClose: [{
646
+ type: Output
647
+ }] } });
648
+
649
+ var BaseStore_1;
650
+ let BaseStore = class BaseStore extends EntityStore {
651
+ static { BaseStore_1 = this; }
652
+ static storeName = 'base';
653
+ recordChange$;
654
+ onDocumentAccept$;
655
+ onDailogClose$;
656
+ openDocument$;
657
+ alertMessage$;
658
+ constructor() {
659
+ super({ records: [], lists: [] }, { name: BaseStore_1.storeName });
660
+ this.recordChange$ = new BehaviorSubject([]);
661
+ this.onDocumentAccept$ = new BehaviorSubject({});
662
+ this.onDailogClose$ = new BehaviorSubject(false);
663
+ this.openDocument$ = new BehaviorSubject({});
664
+ this.alertMessage$ = new BehaviorSubject('');
665
+ }
666
+ setList(data) {
667
+ this.update({ lists: data });
668
+ }
669
+ setRecordChange(value) {
670
+ this.recordChange$.next(value);
671
+ }
672
+ setOnDocumentAccept(value) {
673
+ this.onDocumentAccept$.next(value);
674
+ }
675
+ setOnDailogClose(value) {
676
+ this.onDailogClose$.next(value);
677
+ }
678
+ setOpenDocument(value) {
679
+ this.openDocument$.next(value);
680
+ }
681
+ setAlertMessage(value) {
682
+ this.alertMessage$.next(value);
683
+ }
684
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BaseStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
685
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BaseStore, providedIn: 'root' });
686
+ };
687
+ BaseStore = BaseStore_1 = __decorate([
688
+ StoreConfig({ name: 'base' })
689
+ ], BaseStore);
690
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BaseStore, decorators: [{
691
+ type: Injectable,
692
+ args: [{ providedIn: 'root' }]
693
+ }], ctorParameters: () => [] });
694
+
695
+ class BaseQuery extends QueryEntity {
696
+ store;
697
+ constructor(store) {
698
+ super(store);
699
+ this.store = store;
700
+ }
701
+ selectAllEntities() {
702
+ return this.selectAll();
703
+ }
704
+ selectEntityById(id) {
705
+ return this.selectEntity(id);
706
+ }
707
+ getLists() {
708
+ return this.select(state => state.lists);
709
+ }
710
+ getRecordChange() {
711
+ return this.store.recordChange$.asObservable();
712
+ }
713
+ getOnDocumentAccept() {
714
+ return this.store.onDocumentAccept$.asObservable();
715
+ }
716
+ getonDailogClose() {
717
+ return this.store.onDailogClose$.asObservable();
718
+ }
719
+ getOpenDocument() {
720
+ return this.store.openDocument$.asObservable();
721
+ }
722
+ getAlertMessage() {
723
+ return this.store.alertMessage$.asObservable();
724
+ }
725
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BaseQuery, deps: [{ token: BaseStore }], target: i0.ɵɵFactoryTarget.Injectable });
726
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BaseQuery, providedIn: 'root' });
727
+ }
728
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BaseQuery, decorators: [{
729
+ type: Injectable,
730
+ args: [{ providedIn: 'root' }]
731
+ }], ctorParameters: () => [{ type: BaseStore }] });
732
+
733
+ class BaseControlComponent {
734
+ constructor() { }
735
+ store;
736
+ record;
737
+ attributeModel;
738
+ error = "";
739
+ onInput = new EventEmitter();
740
+ onEnterKeydown = new EventEmitter();
741
+ onBtnClick = new EventEmitter();
742
+ query;
743
+ ngOnChanges() {
744
+ if (this.store) {
745
+ this.query = new BaseQuery(this.store);
746
+ }
747
+ }
748
+ handleModelChange(event, valid, val) {
749
+ if (this.attributeModel?.name) {
750
+ this.record[this.attributeModel?.name] = event;
751
+ this.onInput.emit(event);
752
+ }
753
+ }
754
+ // handleEnterKey(event:any, valid: boolean|null) {
755
+ // if (this.attributeModel?.name) {
756
+ // this.record[this.attributeModel?.name] = event;
757
+ // this.onEnterKeydown.emit(event);
758
+ // this.record[this.attributeModel?.name] = SHARED.EMPTY;
759
+ // }
760
+ // }
761
+ handleButtonClick(event) {
762
+ this.onBtnClick.emit(event);
763
+ }
764
+ getValue() {
765
+ return this.record[this.attributeModel.name];
766
+ }
767
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BaseControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
768
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: BaseControlComponent, isStandalone: true, selector: "app-base-control", inputs: { store: "store", record: "record", attributeModel: "attributeModel", error: "error" }, outputs: { onInput: "onInput", onEnterKeydown: "onEnterKeydown", onBtnClick: "onBtnClick" }, providers: [BaseStore], usesOnChanges: true, ngImport: i0, template: "<p>base-control works!</p>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
769
+ }
770
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BaseControlComponent, decorators: [{
771
+ type: Component,
772
+ args: [{ selector: 'app-base-control', standalone: true, imports: [CommonModule], providers: [BaseStore], template: "<p>base-control works!</p>\r\n" }]
773
+ }], ctorParameters: () => [], propDecorators: { store: [{
774
+ type: Input
775
+ }], record: [{
776
+ type: Input
777
+ }], attributeModel: [{
778
+ type: Input
779
+ }], error: [{
780
+ type: Input
781
+ }], onInput: [{
782
+ type: Output
783
+ }], onEnterKeydown: [{
784
+ type: Output
785
+ }], onBtnClick: [{
786
+ type: Output
787
+ }] } });
788
+
789
+ class CheckBoxComponent extends BaseControlComponent {
790
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: CheckBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
791
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: CheckBoxComponent, isStandalone: true, selector: "check-box", usesInheritance: true, ngImport: i0, template: "<div class=\"checkBoxContainer\">\r\n \r\n <div class=\"checkBox\">\r\n <p-checkbox\r\n [disabled]=\"attributeModel.readonly ?? false\"\r\n [binary]=\"true\"\r\n inputId=\"binary\"\r\n [label]=\"attributeModel.displayText ?? ''\"\r\n class=\"dynamic-checkbox\"\r\n #checkBox=\"ngModel\"\r\n [ngModel]=\"this.record[this.attributeModel.name]\"\r\n [style]=\"{\r\n '--checkbox-size': attributeModel.customColumnWidth || '20px',\r\n '--checkbox-height': attributeModel.customHeight || '20px'\r\n }\"\r\n [required]=\"attributeModel.isRequired ?? false\" \r\n (ngModelChange)=\"handleModelChange($event, checkBox.valid)\"\r\n >\r\n </p-checkbox>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n</div>", styles: [".asterisk{color:red}.checkBoxContainer{max-height:100%;display:flex;align-items:center;font-family:var(--font-family);position:relative}.checkBox{position:relative;max-width:100%;max-height:100%;word-wrap:break-word}::ng-deep .dynamic-checkbox .p-checkbox{width:var(--checkbox-size)!important;height:var(--checkbox-height)!important}::ng-deep .dynamic-checkbox .p-checkbox .p-checkbox-box{width:var(--checkbox-size)!important;height:var(--checkbox-height)!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i3$1.Checkbox, selector: "p-checkbox", inputs: ["value", "name", "disabled", "binary", "label", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "styleClass", "labelStyleClass", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }] });
792
+ }
793
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: CheckBoxComponent, decorators: [{
794
+ type: Component,
795
+ args: [{ selector: 'check-box', standalone: true, imports: [CommonModule, FormsModule, CheckboxModule], template: "<div class=\"checkBoxContainer\">\r\n \r\n <div class=\"checkBox\">\r\n <p-checkbox\r\n [disabled]=\"attributeModel.readonly ?? false\"\r\n [binary]=\"true\"\r\n inputId=\"binary\"\r\n [label]=\"attributeModel.displayText ?? ''\"\r\n class=\"dynamic-checkbox\"\r\n #checkBox=\"ngModel\"\r\n [ngModel]=\"this.record[this.attributeModel.name]\"\r\n [style]=\"{\r\n '--checkbox-size': attributeModel.customColumnWidth || '20px',\r\n '--checkbox-height': attributeModel.customHeight || '20px'\r\n }\"\r\n [required]=\"attributeModel.isRequired ?? false\" \r\n (ngModelChange)=\"handleModelChange($event, checkBox.valid)\"\r\n >\r\n </p-checkbox>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n</div>", styles: [".asterisk{color:red}.checkBoxContainer{max-height:100%;display:flex;align-items:center;font-family:var(--font-family);position:relative}.checkBox{position:relative;max-width:100%;max-height:100%;word-wrap:break-word}::ng-deep .dynamic-checkbox .p-checkbox{width:var(--checkbox-size)!important;height:var(--checkbox-height)!important}::ng-deep .dynamic-checkbox .p-checkbox .p-checkbox-box{width:var(--checkbox-size)!important;height:var(--checkbox-height)!important}\n"] }]
796
+ }] });
797
+
798
+ class ButtonComponent extends BaseControlComponent {
799
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
800
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: ButtonComponent, isStandalone: true, selector: "lib-button", usesInheritance: true, ngImport: i0, template: "<ng-container>\r\n <div class=\"btn-control\">\r\n <p-button\r\n type=\"button\"\r\n [label]=\"attributeModel.buttonLabel ?? 'Click Me'\"\r\n [disabled]=\"attributeModel.isDisabled ?? false\"\r\n [style]=\"{\r\n width: attributeModel.customButtonWidth\r\n ? attributeModel.customButtonWidth\r\n : 'auto',\r\n padding: attributeModel.customPadding\r\n ? attributeModel.customPadding\r\n : '0.5rem' \r\n }\"\r\n [icon]=\"attributeModel.icon ? attributeModel.icon : ''\"\r\n [iconPos]=\"attributeModel.iconPosition ?? 'left'\" \r\n [ngClass]=\"{\r\n 'p-button-primary': attributeModel.isPrimary ?? true,\r\n 'p-button-secondary': !attributeModel.isPrimary\r\n }\"\r\n (onClick)=\"handleButtonClick($event)\"\r\n></p-button>\r\n\r\n </div>\r\n </ng-container>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2$2.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }] });
801
+ }
802
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ButtonComponent, decorators: [{
803
+ type: Component,
804
+ args: [{ selector: 'lib-button', standalone: true, imports: [CommonModule, InputTextModule, FormsModule, ButtonModule], template: "<ng-container>\r\n <div class=\"btn-control\">\r\n <p-button\r\n type=\"button\"\r\n [label]=\"attributeModel.buttonLabel ?? 'Click Me'\"\r\n [disabled]=\"attributeModel.isDisabled ?? false\"\r\n [style]=\"{\r\n width: attributeModel.customButtonWidth\r\n ? attributeModel.customButtonWidth\r\n : 'auto',\r\n padding: attributeModel.customPadding\r\n ? attributeModel.customPadding\r\n : '0.5rem' \r\n }\"\r\n [icon]=\"attributeModel.icon ? attributeModel.icon : ''\"\r\n [iconPos]=\"attributeModel.iconPosition ?? 'left'\" \r\n [ngClass]=\"{\r\n 'p-button-primary': attributeModel.isPrimary ?? true,\r\n 'p-button-secondary': !attributeModel.isPrimary\r\n }\"\r\n (onClick)=\"handleButtonClick($event)\"\r\n></p-button>\r\n\r\n </div>\r\n </ng-container>" }]
805
+ }] });
806
+
807
+ class TextBoxComponent extends BaseControlComponent {
808
+ getValue() {
809
+ if (this.record[this.attributeModel.name] == false) {
810
+ return typeof this.record[this.attributeModel.name] == "string" ? "" : "No";
811
+ }
812
+ else if (this.record[this.attributeModel.name] == true) {
813
+ return "Yes";
814
+ }
815
+ else {
816
+ return this.record[this.attributeModel.name] ?? "-";
817
+ }
818
+ }
819
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TextBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
820
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: TextBoxComponent, isStandalone: true, selector: "text-box", usesInheritance: true, ngImport: i0, template: "<ng-container >\r\n <div class=\"\">\r\n\r\n <div *ngIf=\"attributeModel.displayText\" class=\"mb-2\">\r\n <label>{{ attributeModel.displayText }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n @if (attributeModel.readonly) {\r\n <div class=\"mb-2\" [ngStyle]=\"{'font-size':'14px', 'color':'#0F1729', 'font-weight':'600' }\">\r\n <label class=\"text-value-wrapper\" [ngStyle]=\"{color: attributeModel.textColorOnReadonly}\">{{ getValue() }}</label>\r\n </div>\r\n } @else {\r\n <div class=\"inputTextBox\">\r\n\r\n <input\r\n pInputText\r\n type=\"text\"\r\n autocomplete=\"off\"\r\n [placeholder]=\"attributeModel.placeholder ?? ''\"\r\n class=\"block p-inputtext w-full\"\r\n [pTooltip]=\"attributeModel.tooltip ?? ''\"\r\n [tooltipPosition]=\"attributeModel.toolTipPosition ?? '' \"\r\n [ngModel]=\"record?.[attributeModel.name] ?? ''\"\r\n [disabled]=\"attributeModel?.readonly ?? false\" \r\n [name]=\"attributeModel.name ?? 'textBox'\"\r\n [required]=\"attributeModel.isRequired ?? false\" \r\n [ngStyle]=\"{\r\n width: attributeModel.customColumnWidth\r\n ? attributeModel.customColumnWidth\r\n : '',\r\n padding: attributeModel.customPadding ? attributeModel.customPadding : ''\r\n }\"\r\n #textboxField=\"ngModel\"\r\n (ngModelChange)=\"handleModelChange($event, textboxField.valid)\"\r\n [ngClass]=\"{\r\n 'ng-dirty ng-invalid':\r\n (!textboxField.valid && error)\r\n }\"\r\n />\r\n </div>\r\n }\r\n </div>\r\n \r\n</ng-container>\r\n", styles: [".asterisk{color:red}.inputTextBox{position:relative}.textCount{position:absolute;bottom:23%;right:1%;color:#bcbcbc}.markRed{color:red}.text-value-wrapper{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i2$3.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.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: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i4$1.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }] });
821
+ }
822
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TextBoxComponent, decorators: [{
823
+ type: Component,
824
+ args: [{ selector: 'text-box', standalone: true, imports: [CommonModule, InputTextModule, FormsModule, TooltipModule], template: "<ng-container >\r\n <div class=\"\">\r\n\r\n <div *ngIf=\"attributeModel.displayText\" class=\"mb-2\">\r\n <label>{{ attributeModel.displayText }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n @if (attributeModel.readonly) {\r\n <div class=\"mb-2\" [ngStyle]=\"{'font-size':'14px', 'color':'#0F1729', 'font-weight':'600' }\">\r\n <label class=\"text-value-wrapper\" [ngStyle]=\"{color: attributeModel.textColorOnReadonly}\">{{ getValue() }}</label>\r\n </div>\r\n } @else {\r\n <div class=\"inputTextBox\">\r\n\r\n <input\r\n pInputText\r\n type=\"text\"\r\n autocomplete=\"off\"\r\n [placeholder]=\"attributeModel.placeholder ?? ''\"\r\n class=\"block p-inputtext w-full\"\r\n [pTooltip]=\"attributeModel.tooltip ?? ''\"\r\n [tooltipPosition]=\"attributeModel.toolTipPosition ?? '' \"\r\n [ngModel]=\"record?.[attributeModel.name] ?? ''\"\r\n [disabled]=\"attributeModel?.readonly ?? false\" \r\n [name]=\"attributeModel.name ?? 'textBox'\"\r\n [required]=\"attributeModel.isRequired ?? false\" \r\n [ngStyle]=\"{\r\n width: attributeModel.customColumnWidth\r\n ? attributeModel.customColumnWidth\r\n : '',\r\n padding: attributeModel.customPadding ? attributeModel.customPadding : ''\r\n }\"\r\n #textboxField=\"ngModel\"\r\n (ngModelChange)=\"handleModelChange($event, textboxField.valid)\"\r\n [ngClass]=\"{\r\n 'ng-dirty ng-invalid':\r\n (!textboxField.valid && error)\r\n }\"\r\n />\r\n </div>\r\n }\r\n </div>\r\n \r\n</ng-container>\r\n", styles: [".asterisk{color:red}.inputTextBox{position:relative}.textCount{position:absolute;bottom:23%;right:1%;color:#bcbcbc}.markRed{color:red}.text-value-wrapper{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;width:100%}\n"] }]
825
+ }] });
826
+
827
+ class FormContainerComponent {
828
+ router;
829
+ route;
830
+ messages = [];
831
+ record;
832
+ headerText;
833
+ showSave = false;
834
+ disableButton = false;
835
+ disableSubmitButton = false;
836
+ disableSaveButton = false;
837
+ onSave = new EventEmitter();
838
+ onSubmit = new EventEmitter();
839
+ onCancel = new EventEmitter();
840
+ overrideNavigate = false;
841
+ constructor(router, route) {
842
+ this.router = router;
843
+ this.route = route;
844
+ }
845
+ handleSubmitClick() {
846
+ this.onSubmit.emit();
847
+ }
848
+ handleSaveClick() {
849
+ this.onSave.emit();
850
+ }
851
+ handleCancelClick() {
852
+ if (this.overrideNavigate) {
853
+ this.onCancel.emit();
854
+ }
855
+ else {
856
+ this.router.navigate(["../"], { relativeTo: this.route });
857
+ }
858
+ }
859
+ handleCreateBtnClick() {
860
+ }
861
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: FormContainerComponent, deps: [{ token: i1$1.Router }, { token: i1$1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
862
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: FormContainerComponent, isStandalone: true, selector: "form-container", inputs: { messages: "messages", record: "record", headerText: "headerText", showSave: "showSave", disableButton: "disableButton", disableSubmitButton: "disableSubmitButton", disableSaveButton: "disableSaveButton", overrideNavigate: "overrideNavigate" }, outputs: { onSave: "onSave", onSubmit: "onSubmit", onCancel: "onCancel" }, providers: [MessageService, ConfirmationService], ngImport: i0, template: "<div class=\"form-container\">\r\n <div class=\"text-900 font-bold text-xl form-header mb-2\">\r\n <div class=\"form-header-container w-full mr-0\">\r\n <div class=\"form-header-title\"[innerHTML]=\"this.headerText\">\r\n </div>\r\n <div class=\"form-header-messege w-full\">\r\n <p-messages class=\"message-wrapper\" [(value)]=\"messages\" [enableService]=\"false\" />\r\n </div>\r\n </div>\r\n\r\n <div class=\"btn-wrapper\">\r\n <ng-content select=\"[headerButtons]\"></ng-content>\r\n @if(showSave){\r\n <button\r\n pButton\r\n pRipple\r\n label=\"Cancel\"\r\n (click)=\"handleCancelClick()\"\r\n class=\"p-button-outlined mr-2\"\r\n ></button>\r\n\r\n <button\r\n pButton\r\n class=\"p-button-success\"\r\n label=\"Save\"\r\n [disabled]=\"disableSaveButton\"\r\n type=\"button\"\r\n tooltipPosition=\"bottom\"\r\n (click)=\"handleSaveClick()\"\r\n ></button>\r\n }\r\n <ng-content select=\"[headerButtons]\"></ng-content>\r\n </div>\r\n </div>\r\n \r\n \r\n <p-toast></p-toast>\r\n\r\n <div>\r\n <p-confirmDialog>\r\n <ng-template pTemplate=\"message\" let-message>\r\n <div class=\"flex flex-column align-items-center w-full gap-3 border-bottom-1 surface-border\">\r\n <i class=\"pi pi-exclamation-circle text-6xl text-primary-500\"></i>\r\n <p>{{ message.message }}</p>\r\n </div>\r\n </ng-template>\r\n </p-confirmDialog>\r\n </div> \r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n ", styles: [".form-container{display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden}.form-container.card{padding:0}.form-container .p-button{padding:.5rem 1.25rem}.form-container .form-footer{background-color:var(--surface-100);padding:6px 16px;height:46px;width:100%;margin-top:auto;position:sticky;bottom:0;z-index:4}.form-container .form-footer.card{margin-bottom:0!important}.form-container .form-header{padding:6px 16px;height:46px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:4;width:100%}.form-container .form-top button{height:fit-content}.form-container .form-header-bg-light{background-color:#e1e2e8!important}.form-container .form-header-bg-dark{background-color:#3b3848!important}.form-container .left-wrapper{display:flex}.form-container .p-16{padding:4px 32px 16px}.form-container .m-16{margin:0 16px}.form-container .errors{position:sticky;top:3.4rem;z-index:1;background-color:var(--surface-900);padding:0 16px}.btn-wrapper{display:flex;justify-content:flex-end;align-items:center}.form-header-container{display:flex;flex-wrap:nowrap;align-items:center;margin-right:2rem}.form-header-container .form-header-title{text-wrap:nowrap}.form-header-container .form-header-messege{margin-left:1rem}::ng-deep .message-wrapper .p-message-wrapper{padding:.143rem 1.357rem;display:flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2$2.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i4$2.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i5.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "ngmodule", type: MessagesModule }, { kind: "component", type: i6.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange", "onClose"] }], encapsulation: i0.ViewEncapsulation.None });
863
+ }
864
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: FormContainerComponent, decorators: [{
865
+ type: Component,
866
+ args: [{ selector: 'form-container', standalone: true, imports: [CommonModule, ButtonModule, ConfirmDialogModule, ToastModule, MessagesModule, ButtonComponent, TextBoxComponent], providers: [MessageService, ConfirmationService], encapsulation: ViewEncapsulation.None, template: "<div class=\"form-container\">\r\n <div class=\"text-900 font-bold text-xl form-header mb-2\">\r\n <div class=\"form-header-container w-full mr-0\">\r\n <div class=\"form-header-title\"[innerHTML]=\"this.headerText\">\r\n </div>\r\n <div class=\"form-header-messege w-full\">\r\n <p-messages class=\"message-wrapper\" [(value)]=\"messages\" [enableService]=\"false\" />\r\n </div>\r\n </div>\r\n\r\n <div class=\"btn-wrapper\">\r\n <ng-content select=\"[headerButtons]\"></ng-content>\r\n @if(showSave){\r\n <button\r\n pButton\r\n pRipple\r\n label=\"Cancel\"\r\n (click)=\"handleCancelClick()\"\r\n class=\"p-button-outlined mr-2\"\r\n ></button>\r\n\r\n <button\r\n pButton\r\n class=\"p-button-success\"\r\n label=\"Save\"\r\n [disabled]=\"disableSaveButton\"\r\n type=\"button\"\r\n tooltipPosition=\"bottom\"\r\n (click)=\"handleSaveClick()\"\r\n ></button>\r\n }\r\n <ng-content select=\"[headerButtons]\"></ng-content>\r\n </div>\r\n </div>\r\n \r\n \r\n <p-toast></p-toast>\r\n\r\n <div>\r\n <p-confirmDialog>\r\n <ng-template pTemplate=\"message\" let-message>\r\n <div class=\"flex flex-column align-items-center w-full gap-3 border-bottom-1 surface-border\">\r\n <i class=\"pi pi-exclamation-circle text-6xl text-primary-500\"></i>\r\n <p>{{ message.message }}</p>\r\n </div>\r\n </ng-template>\r\n </p-confirmDialog>\r\n </div> \r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n ", styles: [".form-container{display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden}.form-container.card{padding:0}.form-container .p-button{padding:.5rem 1.25rem}.form-container .form-footer{background-color:var(--surface-100);padding:6px 16px;height:46px;width:100%;margin-top:auto;position:sticky;bottom:0;z-index:4}.form-container .form-footer.card{margin-bottom:0!important}.form-container .form-header{padding:6px 16px;height:46px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:4;width:100%}.form-container .form-top button{height:fit-content}.form-container .form-header-bg-light{background-color:#e1e2e8!important}.form-container .form-header-bg-dark{background-color:#3b3848!important}.form-container .left-wrapper{display:flex}.form-container .p-16{padding:4px 32px 16px}.form-container .m-16{margin:0 16px}.form-container .errors{position:sticky;top:3.4rem;z-index:1;background-color:var(--surface-900);padding:0 16px}.btn-wrapper{display:flex;justify-content:flex-end;align-items:center}.form-header-container{display:flex;flex-wrap:nowrap;align-items:center;margin-right:2rem}.form-header-container .form-header-title{text-wrap:nowrap}.form-header-container .form-header-messege{margin-left:1rem}::ng-deep .message-wrapper .p-message-wrapper{padding:.143rem 1.357rem;display:flex;align-items:center}\n"] }]
867
+ }], ctorParameters: () => [{ type: i1$1.Router }, { type: i1$1.ActivatedRoute }], propDecorators: { messages: [{
868
+ type: Input
869
+ }], record: [{
870
+ type: Input
871
+ }], headerText: [{
872
+ type: Input
873
+ }], showSave: [{
874
+ type: Input
875
+ }], disableButton: [{
876
+ type: Input
877
+ }], disableSubmitButton: [{
878
+ type: Input
879
+ }], disableSaveButton: [{
880
+ type: Input
881
+ }], onSave: [{
882
+ type: Output
883
+ }], onSubmit: [{
884
+ type: Output
885
+ }], onCancel: [{
886
+ type: Output
887
+ }], overrideNavigate: [{
888
+ type: Input
889
+ }] } });
890
+
891
+ class URLS {
892
+ static CONFIGFILEURL = "assets/config/api.config.json";
893
+ }
894
+
895
+ class AppConfigService {
896
+ http;
897
+ appConfig;
898
+ constructor(http) {
899
+ this.http = http;
900
+ }
901
+ async loadAppConfig() {
902
+ this.appConfig = await firstValueFrom(this.http.get(URLS.CONFIGFILEURL));
903
+ }
904
+ get apiBaseUrl() {
905
+ return this.appConfig?.apiUrl;
906
+ }
907
+ get visibilityOptions() {
908
+ return this.appConfig?.visibilityOption;
909
+ }
910
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AppConfigService, deps: [{ token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
911
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AppConfigService, providedIn: 'root' });
912
+ }
913
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AppConfigService, decorators: [{
914
+ type: Injectable,
915
+ args: [{
916
+ providedIn: 'root'
917
+ }]
918
+ }], ctorParameters: () => [{ type: i1$2.HttpClient }] });
919
+
920
+ class List {
921
+ dataSource;
922
+ records;
923
+ label;
924
+ value;
925
+ forProperty;
926
+ items;
927
+ allItems;
928
+ constructor(dataSource, records = [], label, value, forProperty) {
929
+ this.dataSource = dataSource;
930
+ this.records = records;
931
+ this.label = label;
932
+ this.value = value;
933
+ this.dataSource = dataSource;
934
+ this.forProperty = forProperty ?? "";
935
+ this.items = records?.map((i) => {
936
+ return { label: i[this?.label] ? i[this?.label] : 'No label', value: i[this?.value] };
937
+ });
938
+ this.allItems = this.records?.map((i) => {
939
+ return { label: i[this?.label] ? i[this?.label] : 'No label', value: i[this?.value] };
940
+ });
941
+ }
942
+ }
943
+
944
+ class ListService {
945
+ http;
946
+ configService;
947
+ constructor(http, configService) {
948
+ this.http = http;
949
+ this.configService = configService;
950
+ }
951
+ async getLists(models) {
952
+ const lists = [];
953
+ for (const model of models) {
954
+ if (model.dataSource) {
955
+ try {
956
+ const response = await firstValueFrom(this.getbyPathName(model.dataSource));
957
+ const list = new List(model.dataSource, response, model.listLabelProperty, model.listValueProperty, model.dataSource);
958
+ list.forProperty = model.name;
959
+ lists.push(list);
960
+ }
961
+ catch (error) {
962
+ console.error(`Error fetching data from ${model.dataSource}:`, error);
963
+ }
964
+ }
965
+ else if (model.options) {
966
+ const list = new List(model.dataSource, model.options, model.listLabelProperty, model.listValueProperty, undefined);
967
+ list.forProperty = model.name;
968
+ lists.push(list);
969
+ }
970
+ }
971
+ return lists;
972
+ }
973
+ getbyPathName(data) {
974
+ return this.http.get(this.configService.apiBaseUrl + data);
975
+ }
976
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ListService, deps: [{ token: i1$2.HttpClient }, { token: AppConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
977
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ListService, providedIn: 'root' });
978
+ }
979
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ListService, decorators: [{
980
+ type: Injectable,
981
+ args: [{
982
+ providedIn: 'root',
983
+ }]
984
+ }], ctorParameters: () => [{ type: i1$2.HttpClient }, { type: AppConfigService }] });
985
+
986
+ class BaseService {
987
+ store;
988
+ appConfigService;
989
+ listService;
990
+ _pathName = SHARED.EMPTY;
991
+ lists;
992
+ http;
993
+ list;
994
+ constructor(http, store, appConfigService, listService) {
995
+ this.store = store;
996
+ this.appConfigService = appConfigService;
997
+ this.listService = listService;
998
+ this.http = http;
999
+ }
1000
+ get apiUrl() {
1001
+ return this.appConfigService.apiBaseUrl;
1002
+ }
1003
+ set pathName(value) {
1004
+ this._pathName = value;
1005
+ }
1006
+ async initList() {
1007
+ let response = await this.listService.getLists(this.list);
1008
+ if (response && response.length > 0) {
1009
+ this.store.setList(response);
1010
+ }
1011
+ }
1012
+ create(entity) {
1013
+ return this.http.post(this.apiUrl + this._pathName, entity).pipe(tap((newEntity) => this.store.add(newEntity)));
1014
+ }
1015
+ getAll() {
1016
+ return this.http.get(this.apiUrl + this._pathName).pipe(tap((entities) => this.store.set(entities)));
1017
+ }
1018
+ getById(id) {
1019
+ return this.http.get(`${this.apiUrl}${this._pathName}/${id}`).pipe(tap((entity) => this.store.upsert(id, entity)));
1020
+ }
1021
+ update(id, entity) {
1022
+ return this.http.put(`${this.apiUrl}${this._pathName}/${id}`, entity).pipe(tap((updatedEntity) => this.store.update(id, updatedEntity)));
1023
+ }
1024
+ delete(id) {
1025
+ return this.http.delete(`${this.apiUrl}${this._pathName}/${id}`).pipe(tap(() => this.store.remove(id)));
1026
+ }
1027
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BaseService, deps: [{ token: i1$2.HttpClient }, { token: BaseStore }, { token: AppConfigService }, { token: ListService }], target: i0.ɵɵFactoryTarget.Injectable });
1028
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BaseService, providedIn: 'root' });
1029
+ }
1030
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BaseService, decorators: [{
1031
+ type: Injectable,
1032
+ args: [{ providedIn: 'root' }]
1033
+ }], ctorParameters: () => [{ type: i1$2.HttpClient }, { type: BaseStore }, { type: AppConfigService }, { type: ListService }] });
1034
+
1035
+ class TablePrimaryModel {
1036
+ name;
1037
+ headers;
1038
+ records;
1039
+ }
1040
+
1041
+ class TablePrimaryHeaderModel {
1042
+ name;
1043
+ attributes;
1044
+ width;
1045
+ }
1046
+
1047
+ class TableBuilder {
1048
+ hiddenHeaders = [];
1049
+ buildTable(records, headerWidths) {
1050
+ const table = new TablePrimaryModel();
1051
+ table.records = records;
1052
+ if (records && records.length > 0) {
1053
+ table.headers = this.buildHeaders(Object.keys(records[0]), headerWidths);
1054
+ }
1055
+ else {
1056
+ table.headers = [];
1057
+ }
1058
+ return table;
1059
+ }
1060
+ buildHeaders(keys, headerWidths) {
1061
+ const headers = [];
1062
+ const filteredKeys = keys.filter(key => key !== SHARED.ID && !this.hiddenHeaders.includes(key) // hide headers
1063
+ );
1064
+ for (const key of filteredKeys) {
1065
+ const header = new TablePrimaryHeaderModel();
1066
+ header.name = key;
1067
+ if (headerWidths)
1068
+ header.width = headerWidths[key] || SHARED.WIDTH_AUTO;
1069
+ headers.push(header);
1070
+ }
1071
+ return headers;
1072
+ }
1073
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TableBuilder, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1074
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TableBuilder, providedIn: 'root' });
1075
+ }
1076
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TableBuilder, decorators: [{
1077
+ type: Injectable,
1078
+ args: [{
1079
+ providedIn: 'root'
1080
+ }]
1081
+ }] });
1082
+
1083
+ class BaseListComponent {
1084
+ service;
1085
+ builder;
1086
+ table;
1087
+ constructor(service, builder) {
1088
+ this.service = service;
1089
+ this.builder = builder;
1090
+ }
1091
+ ngOnInit() {
1092
+ this.service.getAll().subscribe((res) => {
1093
+ this.table = this.builder.buildTable(res);
1094
+ this.afterTableBuild();
1095
+ });
1096
+ }
1097
+ afterTableBuild() {
1098
+ }
1099
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BaseListComponent, deps: [{ token: BaseService }, { token: TableBuilder }], target: i0.ɵɵFactoryTarget.Component });
1100
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: BaseListComponent, isStandalone: true, selector: "lib-base-list", ngImport: i0, template: "<p>base-list works!</p>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
1101
+ }
1102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BaseListComponent, decorators: [{
1103
+ type: Component,
1104
+ args: [{ selector: 'lib-base-list', standalone: true, imports: [CommonModule], template: "<p>base-list works!</p>\r\n" }]
1105
+ }], ctorParameters: () => [{ type: BaseService }, { type: TableBuilder }] });
1106
+
1107
+ class DropdownComponent extends BaseControlComponent {
1108
+ listService;
1109
+ options = [];
1110
+ list;
1111
+ childListRecords = [];
1112
+ isStaticDropdown = false;
1113
+ constructor(listService) {
1114
+ super();
1115
+ this.listService = listService;
1116
+ }
1117
+ ngOnChanges() {
1118
+ if (this.store) {
1119
+ this.query = new BaseQuery(this.store);
1120
+ }
1121
+ if (this.attributeModel.options) {
1122
+ this.options = this.attributeModel.options;
1123
+ }
1124
+ if (!this.isStaticDropdown) {
1125
+ this.handleGetAndSetList();
1126
+ }
1127
+ }
1128
+ handleGetAndSetList() {
1129
+ try {
1130
+ this.query.getLists().subscribe((response) => {
1131
+ if (response) {
1132
+ this.mapResponseToOptions(response);
1133
+ }
1134
+ });
1135
+ }
1136
+ catch (error) {
1137
+ console.error('Error fetching data:', error);
1138
+ }
1139
+ }
1140
+ mapResponseToOptions(lists) {
1141
+ if (lists && lists.length > 0) {
1142
+ const clonedLists = JSON.parse(JSON.stringify(lists));
1143
+ this.list = clonedLists.find((x) => x.forProperty === this.attributeModel.name);
1144
+ if (this.list) {
1145
+ this.options = this.list?.items ?? [];
1146
+ }
1147
+ }
1148
+ if (!this.options || this.options.length === 0) {
1149
+ this.options = this.attributeModel.options ?? [];
1150
+ }
1151
+ return this.options;
1152
+ }
1153
+ handleModelChange(event, valid, val) {
1154
+ super.handleModelChange(event, valid);
1155
+ }
1156
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: DropdownComponent, deps: [{ token: ListService }], target: i0.ɵɵFactoryTarget.Component });
1157
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: DropdownComponent, isStandalone: true, selector: "dropdown", inputs: { isStaticDropdown: "isStaticDropdown" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container>\r\n <div class=\"mb-2\">\r\n <label>{{ attributeModel.displayText }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n <div class=\"dropdownbox\">\r\n\r\n <p-dropdown \r\n \r\n [options]=\"options\" \r\n [disabled]=\"attributeModel.readonly ?? false\"\r\n [showClear]=\"true\"\r\n [name]=\"attributeModel.name ?? 'testSingleSelect'\" \r\n [ngModel]=\"record[attributeModel.name]\" \r\n [placeholder]=\"attributeModel.placeholder ?? ''\" \r\n [required]=\"attributeModel.isRequired ?? false\"\r\n filterBy=\"label\" \r\n class=\"dropdownFeild\"\r\n #dropdown=\"ngModel\"\r\n (ngModelChange)=\"handleModelChange($event, dropdown.valid)\" \r\n [ngClass]=\"!dropdown.valid && error == attributeModel.name ? 'ng-dirty ng-invalid':''\" \r\n appendTo=\"body\" \r\n optionLabel=\"label\" \r\n optionValue=\"value\">\r\n</p-dropdown>\r\n</div>\r\n\r\n</ng-container>\r\n", styles: [".asterisk{color:red}.p-dropdown,.dropdownFeild{width:100%!important}.dropdownbox{position:relative}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i3$2.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "autoShowPanelOnPrintableCharacterKeyDown", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None });
1158
+ }
1159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: DropdownComponent, decorators: [{
1160
+ type: Component,
1161
+ args: [{ selector: 'dropdown', standalone: true, imports: [CommonModule, DropdownModule, FormsModule], encapsulation: ViewEncapsulation.None, template: "<ng-container>\r\n <div class=\"mb-2\">\r\n <label>{{ attributeModel.displayText }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n <div class=\"dropdownbox\">\r\n\r\n <p-dropdown \r\n \r\n [options]=\"options\" \r\n [disabled]=\"attributeModel.readonly ?? false\"\r\n [showClear]=\"true\"\r\n [name]=\"attributeModel.name ?? 'testSingleSelect'\" \r\n [ngModel]=\"record[attributeModel.name]\" \r\n [placeholder]=\"attributeModel.placeholder ?? ''\" \r\n [required]=\"attributeModel.isRequired ?? false\"\r\n filterBy=\"label\" \r\n class=\"dropdownFeild\"\r\n #dropdown=\"ngModel\"\r\n (ngModelChange)=\"handleModelChange($event, dropdown.valid)\" \r\n [ngClass]=\"!dropdown.valid && error == attributeModel.name ? 'ng-dirty ng-invalid':''\" \r\n appendTo=\"body\" \r\n optionLabel=\"label\" \r\n optionValue=\"value\">\r\n</p-dropdown>\r\n</div>\r\n\r\n</ng-container>\r\n", styles: [".asterisk{color:red}.p-dropdown,.dropdownFeild{width:100%!important}.dropdownbox{position:relative}\n"] }]
1162
+ }], ctorParameters: () => [{ type: ListService }], propDecorators: { isStaticDropdown: [{
1163
+ type: Input
1164
+ }] } });
1165
+
1166
+ class DateParserService {
1167
+ constructor() { }
1168
+ parseDate(date) {
1169
+ if (moment(date, SHARED.DATE_FORMAT_TYPE2, true).isValid()) {
1170
+ const date1 = date.toString().split(SHARED.HIPHEN)[0];
1171
+ const month = date.toString().split(SHARED.HIPHEN)[1];
1172
+ const year = date.toString().split(SHARED.HIPHEN)[2];
1173
+ return moment.utc(`${year}-${month}-${date1}`).toDate();
1174
+ }
1175
+ else if (moment(date, SHARED.DATE_FORMAT, true).isValid()) {
1176
+ const date1 = date.toString().split(SHARED.SLASH)[0];
1177
+ const month = date.toString().split(SHARED.SLASH)[1];
1178
+ const year = date.toString().split(SHARED.SLASH)[2];
1179
+ return moment.utc(`${year}-${month}-${date1}`).toDate();
1180
+ }
1181
+ else if (moment(date, SHARED.DATE_FORMAT_TYPE3, true).isValid()) {
1182
+ const dateParts = date.toString().split(SHARED.HIPHEN);
1183
+ const year = dateParts[0];
1184
+ const month = dateParts[1];
1185
+ const day = dateParts[2];
1186
+ return moment.utc(`${year}-${month}-${day}`).toDate();
1187
+ }
1188
+ else if (date instanceof Date ||
1189
+ new Date(date).toString() != SHARED.INVALIDDATE) {
1190
+ const result = new Date(date);
1191
+ result.setHours(0, 0, 0, 0);
1192
+ return moment.utc(`${result.getFullYear()}-${result.getMonth() + 1}-${result.getDate()}`).toDate();
1193
+ }
1194
+ else {
1195
+ throw new Error(SHARED.INVALIDDATE);
1196
+ }
1197
+ return SHARED.INVALIDDATE;
1198
+ }
1199
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: DateParserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1200
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: DateParserService, providedIn: 'root' });
1201
+ }
1202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: DateParserService, decorators: [{
1203
+ type: Injectable,
1204
+ args: [{
1205
+ providedIn: 'root'
1206
+ }]
1207
+ }], ctorParameters: () => [] });
1208
+
1209
+ class DateComponent extends BaseControlComponent {
1210
+ dateService;
1211
+ constructor(dateService) {
1212
+ super();
1213
+ this.dateService = dateService;
1214
+ }
1215
+ ngOnChanges() {
1216
+ if (this.attributeModel.readonly) {
1217
+ this.getValue();
1218
+ }
1219
+ else {
1220
+ this.record[this.attributeModel.name] = this.dateService.parseDate(this.record[this.attributeModel?.name]) ??
1221
+ new Date();
1222
+ }
1223
+ }
1224
+ getValue() {
1225
+ if (this.record[this.attributeModel.name]) {
1226
+ const formattedDate = moment(this.record[this.attributeModel.name]).format('DD/MM/YYYY');
1227
+ if (formattedDate == "Invalid date") {
1228
+ return SHARED.HIPHEN;
1229
+ }
1230
+ else {
1231
+ return formattedDate;
1232
+ }
1233
+ }
1234
+ return SHARED.EMPTY;
1235
+ }
1236
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: DateComponent, deps: [{ token: DateParserService }], target: i0.ɵɵFactoryTarget.Component });
1237
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: DateComponent, isStandalone: true, selector: "date", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (attributeModel && record) {\r\n<div class=\"\">\r\n <div class=\"mb-2\">\r\n <label>{{\r\n attributeModel?.displayText\r\n ? attributeModel?.displayText\r\n : attributeModel?.name\r\n }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n @if (attributeModel.readonly) {\r\n <div class=\"mb-2\" [ngStyle]=\"{ 'font-size': '14px', color: '#0F1729', 'font-weight':'600' }\">\r\n <label>{{ getValue() }}</label>\r\n </div>\r\n } @else {\r\n <div>\r\n <p-calendar\r\n [showIcon]=\"attributeModel.showCalenderIcon ?? true\"\r\n inputId=\"icon\"\r\n [disabled]=\"attributeModel?.readonly ?? false\"\r\n [required]=\"attributeModel?.isRequired ?? false\"\r\n [name]=\"attributeModel?.name ? attributeModel?.name : 'testDatePicker'\"\r\n [placeholder]=\"\r\n attributeModel.placeholder ? attributeModel.placeholder : ''\r\n \"\r\n [yearRange]=\"attributeModel.yearRange ?? '1950 : 2050'\"\r\n [title]=\"attributeModel.title ? attributeModel.title : ''\"\r\n [(ngModel)]=\"record[attributeModel?.name]\"\r\n #dateField=\"ngModel\"\r\n [dateFormat]=\"'dd/mm/yy'\"\r\n appendTo=\"body\"\r\n (ngModelChange)=\"handleModelChange($event, dateField.valid)\"\r\n [ngClass]=\"{\r\n 'ng-dirty ng-invalid': !dateField.valid && error == attributeModel?.name\r\n }\"\r\n [hourFormat]=\"attributeModel?.hourFormat ? '24' : ''\"\r\n >\r\n </p-calendar>\r\n </div>\r\n }\r\n</div>\r\n\r\n}\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: CalendarModule }, { kind: "component", type: i3$3.Calendar, selector: "p-calendar", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepYearPicker", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
1238
+ }
1239
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: DateComponent, decorators: [{
1240
+ type: Component,
1241
+ args: [{ selector: 'date', standalone: true, imports: [CommonModule, CalendarModule, FormsModule], template: "@if (attributeModel && record) {\r\n<div class=\"\">\r\n <div class=\"mb-2\">\r\n <label>{{\r\n attributeModel?.displayText\r\n ? attributeModel?.displayText\r\n : attributeModel?.name\r\n }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n @if (attributeModel.readonly) {\r\n <div class=\"mb-2\" [ngStyle]=\"{ 'font-size': '14px', color: '#0F1729', 'font-weight':'600' }\">\r\n <label>{{ getValue() }}</label>\r\n </div>\r\n } @else {\r\n <div>\r\n <p-calendar\r\n [showIcon]=\"attributeModel.showCalenderIcon ?? true\"\r\n inputId=\"icon\"\r\n [disabled]=\"attributeModel?.readonly ?? false\"\r\n [required]=\"attributeModel?.isRequired ?? false\"\r\n [name]=\"attributeModel?.name ? attributeModel?.name : 'testDatePicker'\"\r\n [placeholder]=\"\r\n attributeModel.placeholder ? attributeModel.placeholder : ''\r\n \"\r\n [yearRange]=\"attributeModel.yearRange ?? '1950 : 2050'\"\r\n [title]=\"attributeModel.title ? attributeModel.title : ''\"\r\n [(ngModel)]=\"record[attributeModel?.name]\"\r\n #dateField=\"ngModel\"\r\n [dateFormat]=\"'dd/mm/yy'\"\r\n appendTo=\"body\"\r\n (ngModelChange)=\"handleModelChange($event, dateField.valid)\"\r\n [ngClass]=\"{\r\n 'ng-dirty ng-invalid': !dateField.valid && error == attributeModel?.name\r\n }\"\r\n [hourFormat]=\"attributeModel?.hourFormat ? '24' : ''\"\r\n >\r\n </p-calendar>\r\n </div>\r\n }\r\n</div>\r\n\r\n}\r\n" }]
1242
+ }], ctorParameters: () => [{ type: DateParserService }] });
1243
+
1244
+ class FileUploadComponent extends BaseControlComponent {
1245
+ handleSingleUpload(event) {
1246
+ console.log(event);
1247
+ }
1248
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: FileUploadComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1249
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: FileUploadComponent, isStandalone: true, selector: "file-upload", usesInheritance: true, ngImport: i0, template: "<ng-container class=\"documentContainer\">\r\n @if(!attributeModel.hideLabelOnForm){\r\n <div class=\"mb-2\">\r\n <label class=\"form-header-label\">{{ attributeModel?.displayText }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n }\r\n<div class=\"card flex justify-content-center\">\r\n <p-fileUpload \r\n mode=\"basic\" \r\n [chooseLabel]=\"record[attributeModel.name] ? attributeModel.displayText : 'No Files'\"\r\n chooseIcon=\"pi pi-plus\"\r\n [name]=\"attributeModel?.name\"\r\n accept=\"image/*,application/pdf\" \r\n [maxFileSize]=\"209715200\" class=\"fileUploader\"\r\n (onSelect)=\"handleSingleUpload($event)\" />\r\n</div>\r\n</ng-container>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: FileUploadModule }, { kind: "component", type: i2$4.FileUpload, selector: "p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }] });
1250
+ }
1251
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: FileUploadComponent, decorators: [{
1252
+ type: Component,
1253
+ args: [{ selector: 'file-upload', standalone: true, imports: [CommonModule, FormsModule, FileUploadModule], template: "<ng-container class=\"documentContainer\">\r\n @if(!attributeModel.hideLabelOnForm){\r\n <div class=\"mb-2\">\r\n <label class=\"form-header-label\">{{ attributeModel?.displayText }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n }\r\n<div class=\"card flex justify-content-center\">\r\n <p-fileUpload \r\n mode=\"basic\" \r\n [chooseLabel]=\"record[attributeModel.name] ? attributeModel.displayText : 'No Files'\"\r\n chooseIcon=\"pi pi-plus\"\r\n [name]=\"attributeModel?.name\"\r\n accept=\"image/*,application/pdf\" \r\n [maxFileSize]=\"209715200\" class=\"fileUploader\"\r\n (onSelect)=\"handleSingleUpload($event)\" />\r\n</div>\r\n</ng-container>" }]
1254
+ }] });
1255
+
1256
+ class CapitalizeWordsPipe {
1257
+ transform(value) {
1258
+ if (!value)
1259
+ return value;
1260
+ return value
1261
+ .split(' ')
1262
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
1263
+ .join(' ');
1264
+ }
1265
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: CapitalizeWordsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1266
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.4", ngImport: i0, type: CapitalizeWordsPipe, isStandalone: true, name: "capitalizeWords" });
1267
+ }
1268
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: CapitalizeWordsPipe, decorators: [{
1269
+ type: Pipe,
1270
+ args: [{
1271
+ name: 'capitalizeWords',
1272
+ standalone: true,
1273
+ }]
1274
+ }] });
1275
+
1276
+ class TextAreaComponent extends BaseControlComponent {
1277
+ rowspan = 0;
1278
+ getValue() {
1279
+ if (this.record[this.attributeModel.name] == false) {
1280
+ return typeof this.record[this.attributeModel.name] == "string" ? "" : "No";
1281
+ }
1282
+ else if (this.record[this.attributeModel.name] == true) {
1283
+ return "Yes";
1284
+ }
1285
+ else {
1286
+ return this.record[this.attributeModel.name] ?? "-";
1287
+ }
1288
+ }
1289
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TextAreaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1290
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: TextAreaComponent, isStandalone: true, selector: "text-area", inputs: { rowspan: "rowspan" }, usesInheritance: true, ngImport: i0, template: "<ng-container class=\"textAreaContainer\">\r\n <div *ngIf=\"attributeModel.displayText\" class=\"mb-2\">\r\n <label>{{ attributeModel.displayText }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n @if (attributeModel.readonly) {\r\n <div class=\"mb-2\" [ngStyle]=\"{'font-size':'14px', 'color':'#0F1729', 'font-weight':'600' }\">\r\n <label class=\"text-value-wrapper\" [ngStyle]=\"{color: attributeModel.textColorOnReadonly}\">{{ getValue() }}</label>\r\n </div>\r\n } @else {\r\n <div class=\"textAreaControl\">\r\n <textarea\r\n pInputTextarea\r\n [rows]=\"rowspan ?? 3\"\r\n cols=\"30\"\r\n [disabled]=\"attributeModel?.readonly ?? false\"\r\n [ngModel]=\"record[attributeModel.name]\"\r\n [name]=\"attributeModel.name ?? 'textArea'\"\r\n [required]=\"attributeModel?.isRequired ?? false\"\r\n [ngStyle]=\"{\r\n width: attributeModel.customColumnWidth\r\n ? attributeModel.customColumnWidth\r\n : ''\r\n }\"\r\n #textArea=\"ngModel\"\r\n (ngModelChange)=\"handleModelChange($event, textArea.valid)\"\r\n [ngClass]=\"{\r\n 'ng-dirty ng-invalid':\r\n (!textArea.valid && error == attributeModel?.name)\r\n \r\n }\"\r\n ></textarea>\r\n \r\n </div>\r\n }\r\n</ng-container>\r\n", styles: [".asterisk{color:red}.textAreaControl{position:relative}.textAreaControl textarea{width:100%;resize:vertical}.textCount{position:absolute;bottom:10%;right:2%;color:#bcbcbc}.markRed{color:red}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: InputTextareaModule }, { kind: "directive", type: i2$5.InputTextarea, selector: "[pInputTextarea]", inputs: ["autoResize", "variant"], outputs: ["onResize"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.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: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
1291
+ }
1292
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TextAreaComponent, decorators: [{
1293
+ type: Component,
1294
+ args: [{ selector: 'text-area', standalone: true, imports: [CommonModule, InputTextareaModule, FormsModule], template: "<ng-container class=\"textAreaContainer\">\r\n <div *ngIf=\"attributeModel.displayText\" class=\"mb-2\">\r\n <label>{{ attributeModel.displayText }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n @if (attributeModel.readonly) {\r\n <div class=\"mb-2\" [ngStyle]=\"{'font-size':'14px', 'color':'#0F1729', 'font-weight':'600' }\">\r\n <label class=\"text-value-wrapper\" [ngStyle]=\"{color: attributeModel.textColorOnReadonly}\">{{ getValue() }}</label>\r\n </div>\r\n } @else {\r\n <div class=\"textAreaControl\">\r\n <textarea\r\n pInputTextarea\r\n [rows]=\"rowspan ?? 3\"\r\n cols=\"30\"\r\n [disabled]=\"attributeModel?.readonly ?? false\"\r\n [ngModel]=\"record[attributeModel.name]\"\r\n [name]=\"attributeModel.name ?? 'textArea'\"\r\n [required]=\"attributeModel?.isRequired ?? false\"\r\n [ngStyle]=\"{\r\n width: attributeModel.customColumnWidth\r\n ? attributeModel.customColumnWidth\r\n : ''\r\n }\"\r\n #textArea=\"ngModel\"\r\n (ngModelChange)=\"handleModelChange($event, textArea.valid)\"\r\n [ngClass]=\"{\r\n 'ng-dirty ng-invalid':\r\n (!textArea.valid && error == attributeModel?.name)\r\n \r\n }\"\r\n ></textarea>\r\n \r\n </div>\r\n }\r\n</ng-container>\r\n", styles: [".asterisk{color:red}.textAreaControl{position:relative}.textAreaControl textarea{width:100%;resize:vertical}.textCount{position:absolute;bottom:10%;right:2%;color:#bcbcbc}.markRed{color:red}\n"] }]
1295
+ }], propDecorators: { rowspan: [{
1296
+ type: Input
1297
+ }] } });
1298
+
1299
+ class SharedModule {
1300
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1301
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.4", ngImport: i0, type: SharedModule, declarations: [SidebarComponent], imports: [CommonModule,
1302
+ FormsModule,
1303
+ InputTextModule,
1304
+ ButtonModule,
1305
+ DropdownModule,
1306
+ InputGroupModule,
1307
+ CardModule,
1308
+ SidebarModule,
1309
+ CheckBoxComponent,
1310
+ DragDropModule,
1311
+ FormContainerComponent,
1312
+ BaseListComponent,
1313
+ DropdownComponent,
1314
+ BaseListComponent,
1315
+ TextBoxComponent,
1316
+ InputTextareaModule,
1317
+ DividerModule,
1318
+ DateComponent,
1319
+ DialogModule,
1320
+ TimelineModule,
1321
+ ListboxModule,
1322
+ CheckboxModule,
1323
+ FileUploadComponent,
1324
+ FileUploadModule,
1325
+ CapitalizeWordsPipe,
1326
+ TextAreaComponent], exports: [CapitalizeWordsPipe, TextBoxComponent, FormsModule, ListboxModule, DialogModule, CheckboxModule, DropdownComponent, FormContainerComponent, BaseListComponent, SidebarComponent, DividerModule, CardModule] });
1327
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: SharedModule, imports: [CommonModule,
1328
+ FormsModule,
1329
+ InputTextModule,
1330
+ ButtonModule,
1331
+ DropdownModule,
1332
+ InputGroupModule,
1333
+ CardModule,
1334
+ SidebarModule,
1335
+ CheckBoxComponent,
1336
+ DragDropModule,
1337
+ FormContainerComponent,
1338
+ BaseListComponent,
1339
+ DropdownComponent,
1340
+ BaseListComponent,
1341
+ TextBoxComponent,
1342
+ InputTextareaModule,
1343
+ DividerModule,
1344
+ DateComponent,
1345
+ DialogModule,
1346
+ TimelineModule,
1347
+ ListboxModule,
1348
+ CheckboxModule,
1349
+ FileUploadComponent,
1350
+ FileUploadModule,
1351
+ TextAreaComponent, FormsModule, ListboxModule, DialogModule, CheckboxModule, DividerModule, CardModule] });
1352
+ }
1353
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: SharedModule, decorators: [{
1354
+ type: NgModule,
1355
+ args: [{
1356
+ declarations: [SidebarComponent],
1357
+ imports: [
1358
+ CommonModule,
1359
+ FormsModule,
1360
+ InputTextModule,
1361
+ ButtonModule,
1362
+ DropdownModule,
1363
+ InputGroupModule,
1364
+ CardModule,
1365
+ SidebarModule,
1366
+ CheckBoxComponent,
1367
+ DragDropModule,
1368
+ FormContainerComponent,
1369
+ BaseListComponent,
1370
+ DropdownComponent,
1371
+ BaseListComponent,
1372
+ TextBoxComponent,
1373
+ InputTextareaModule,
1374
+ DividerModule,
1375
+ DateComponent,
1376
+ DialogModule,
1377
+ TimelineModule,
1378
+ ListboxModule,
1379
+ CheckboxModule,
1380
+ FileUploadComponent,
1381
+ FileUploadModule,
1382
+ CapitalizeWordsPipe,
1383
+ TextAreaComponent
1384
+ ],
1385
+ exports: [CapitalizeWordsPipe, TextBoxComponent, FormsModule, ListboxModule, DialogModule, CheckboxModule, DropdownComponent, FormContainerComponent, BaseListComponent, SidebarComponent, DividerModule, CardModule]
1386
+ }]
1387
+ }] });
1388
+
1389
+ class ROUTES {
1390
+ static QUEUE_FORM = "/queue/";
1391
+ static DICTIONARY_CREATE_FORM = '/dictionary/create';
1392
+ static DICTIONARY = '/dictionary/';
1393
+ static APIMANAGEMENT = '/apiManagement/';
1394
+ static APICONFIG = 'apiConfig';
1395
+ static VALIDATEAPI = 'apiConfig/validateApi';
1396
+ static APPLICATION = "application/";
1397
+ static APIPROPERTIES = "apiConfig/parentAndChildProps";
1398
+ static APPLICATION_WIDGET = "widgets/dataItems/";
1399
+ static DOCUMENTALERT = "alerts/documentId";
1400
+ }
1401
+
1402
+ class DATASOURCES {
1403
+ static QUEUES = "queues";
1404
+ static DICTIONARY = "data-dictionary-admin";
1405
+ static ACTIONS = "actions";
1406
+ static WIDGET = "widgets";
1407
+ static APIMANAGEMENT = "api-configuration-admin";
1408
+ static APPLICATION = "applications";
1409
+ static DOCUMETS = "documents";
1410
+ static RATIONALE = "rationale";
1411
+ }
1412
+
1413
+ class HEADERS {
1414
+ static API_MANAGEMENT = "Api Management";
1415
+ static DICTIONARY_FORM = "Dictionary Form";
1416
+ }
1417
+
1418
+ class UsernameComponent extends BaseControlComponent {
1419
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: UsernameComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1420
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: UsernameComponent, isStandalone: true, selector: "username", usesInheritance: true, ngImport: i0, template: "<ng-container>\r\n <div class=\"username-control\">\r\n <span class=\"p-input-icon-left\">\r\n <i class=\"pi pi-envelope\"></i>\r\n <input pInputText type=\"text\"\r\n autocomplete=\"off\"\r\n [placeholder]=\"attributeModel.placeholder ?? ''\" \r\n [ngModel]=\"record[attributeModel.name]\"\r\n [required]=\"attributeModel.isRequired ?? false\" \r\n [disabled]=\"attributeModel.readonly ?? false\"\r\n #usernameField=\"ngModel\"\r\n (ngModelChange)=\"handleModelChange($event, usernameField.valid)\" \r\n />\r\n </span>\r\n </div>\r\n </ng-container>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i2$3.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.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: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
1421
+ }
1422
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: UsernameComponent, decorators: [{
1423
+ type: Component,
1424
+ args: [{ selector: 'username', standalone: true, imports: [CommonModule, InputTextModule, FormsModule], template: "<ng-container>\r\n <div class=\"username-control\">\r\n <span class=\"p-input-icon-left\">\r\n <i class=\"pi pi-envelope\"></i>\r\n <input pInputText type=\"text\"\r\n autocomplete=\"off\"\r\n [placeholder]=\"attributeModel.placeholder ?? ''\" \r\n [ngModel]=\"record[attributeModel.name]\"\r\n [required]=\"attributeModel.isRequired ?? false\" \r\n [disabled]=\"attributeModel.readonly ?? false\"\r\n #usernameField=\"ngModel\"\r\n (ngModelChange)=\"handleModelChange($event, usernameField.valid)\" \r\n />\r\n </span>\r\n </div>\r\n </ng-container>" }]
1425
+ }] });
1426
+
1427
+ class PasswordComponent extends BaseControlComponent {
1428
+ invalidPasswordErrorMsg;
1429
+ constructor() {
1430
+ super();
1431
+ }
1432
+ ngOninit() {
1433
+ this.invalidPasswordErrorMsg = "Invalid Password";
1434
+ }
1435
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: PasswordComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1436
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: PasswordComponent, isStandalone: true, selector: "password", usesInheritance: true, ngImport: i0, template: "<ng-container>\r\n\r\n <div class=\"password-control\">\r\n <span class=\"p-input-icon-left\">\r\n <i class=\"pi pi-key\"></i>\r\n <input type=\"password\" autocomplete=\"off\" pInputText [placeholder]=\"attributeModel.placeholder ?? ''\"\r\n [ngModel]=\"record[attributeModel.name]\" [required]=\"attributeModel.isRequired ?? false\" #passwordField=\"ngModel\"\r\n (ngModelChange)=\"handleModelChange($event, passwordField.valid)\" [ngClass]=\"{\r\n 'ng-dirty ng-invalid': !passwordField.valid && error == attributeModel.name\r\n }\" class=\"block p-inputtext\" />\r\n\r\n </span>\r\n </div>\r\n @if (!passwordField.valid && passwordField.dirty) {\r\n <div>\r\n <small id=\"password-help\" class=\"p-error\">{{\r\n invalidPasswordErrorMsg\r\n }}</small>\r\n </div>\r\n }\r\n\r\n</ng-container>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.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: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
1437
+ }
1438
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: PasswordComponent, decorators: [{
1439
+ type: Component,
1440
+ args: [{ selector: 'password', standalone: true, imports: [CommonModule, FormsModule], template: "<ng-container>\r\n\r\n <div class=\"password-control\">\r\n <span class=\"p-input-icon-left\">\r\n <i class=\"pi pi-key\"></i>\r\n <input type=\"password\" autocomplete=\"off\" pInputText [placeholder]=\"attributeModel.placeholder ?? ''\"\r\n [ngModel]=\"record[attributeModel.name]\" [required]=\"attributeModel.isRequired ?? false\" #passwordField=\"ngModel\"\r\n (ngModelChange)=\"handleModelChange($event, passwordField.valid)\" [ngClass]=\"{\r\n 'ng-dirty ng-invalid': !passwordField.valid && error == attributeModel.name\r\n }\" class=\"block p-inputtext\" />\r\n\r\n </span>\r\n </div>\r\n @if (!passwordField.valid && passwordField.dirty) {\r\n <div>\r\n <small id=\"password-help\" class=\"p-error\">{{\r\n invalidPasswordErrorMsg\r\n }}</small>\r\n </div>\r\n }\r\n\r\n</ng-container>" }]
1441
+ }], ctorParameters: () => [] });
1442
+
1443
+ class CSS {
1444
+ static DIALOGUE_BREAKPOINTS = {
1445
+ '960px': '75vw',
1446
+ '640px': '90vw'
1447
+ };
1448
+ static DIALOGUE_OVERFLOW = { overflow: 'auto' };
1449
+ static DIALOGUE_WIDTH = '100vw';
1450
+ static DIALOGUE_HIGHT = '100vh';
1451
+ }
1452
+
1453
+ class AttributeModel {
1454
+ displayText;
1455
+ readonly;
1456
+ name;
1457
+ isRequired;
1458
+ placeholder;
1459
+ maxLength;
1460
+ infoText;
1461
+ buttonLabel;
1462
+ isDisabled;
1463
+ customButtonWidth;
1464
+ isPrimary;
1465
+ title;
1466
+ customColumnWidth;
1467
+ customHeight;
1468
+ icon;
1469
+ iconPosition;
1470
+ customPadding;
1471
+ dataSource;
1472
+ listValueProperty;
1473
+ listLabelProperty;
1474
+ options;
1475
+ childListName;
1476
+ childListKey;
1477
+ inputId;
1478
+ allowFraction = 'Y';
1479
+ numberMode;
1480
+ currency;
1481
+ locale;
1482
+ tooltip;
1483
+ toolTipPosition;
1484
+ hourFormat;
1485
+ yearRange;
1486
+ showCalenderIcon;
1487
+ additionalFilterList;
1488
+ additionalFilterKey;
1489
+ lookupName;
1490
+ textColorOnReadonly;
1491
+ hideLabelOnForm = false;
1492
+ }
1493
+
1494
+ class BaseModel {
1495
+ _id;
1496
+ }
1497
+
1498
+ class ERROR {
1499
+ static ERROR = "Error";
1500
+ }
1501
+
1502
+ class SessionService {
1503
+ router;
1504
+ constructor(router) {
1505
+ this.router = router;
1506
+ }
1507
+ getUserRole() {
1508
+ const role = sessionStorage.getItem('role');
1509
+ return role;
1510
+ }
1511
+ setUserSession(data) {
1512
+ sessionStorage.setItem(SHARED.SESSIONKEY, JSON.stringify(data));
1513
+ }
1514
+ getUserSession() {
1515
+ const sessionData = sessionStorage.getItem(SHARED.SESSIONKEY);
1516
+ return sessionData ? JSON.parse(sessionData) : null;
1517
+ }
1518
+ getSessionID() {
1519
+ return 1;
1520
+ }
1521
+ clearSession() {
1522
+ sessionStorage.clear();
1523
+ localStorage.clear();
1524
+ }
1525
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: SessionService, deps: [{ token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
1526
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: SessionService, providedIn: 'root' });
1527
+ }
1528
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: SessionService, decorators: [{
1529
+ type: Injectable,
1530
+ args: [{
1531
+ providedIn: 'root'
1532
+ }]
1533
+ }], ctorParameters: () => [{ type: i1$1.Router }] });
1534
+
1535
+ class AuthGuard {
1536
+ _sessionService;
1537
+ _router;
1538
+ constructor(_sessionService, _router) {
1539
+ this._sessionService = _sessionService;
1540
+ this._router = _router;
1541
+ }
1542
+ canActivate(next, state) {
1543
+ return of(this._sessionService.getSessionID()).pipe(tap$1((sessionID) => {
1544
+ if (!sessionID) {
1545
+ this._router.navigateByUrl("auth/login" + "?returnUrl=" + state.url);
1546
+ }
1547
+ }), map((sessionID) => !!sessionID));
1548
+ }
1549
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AuthGuard, deps: [{ token: SessionService }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
1550
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AuthGuard, providedIn: 'root' });
1551
+ }
1552
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AuthGuard, decorators: [{
1553
+ type: Injectable,
1554
+ args: [{
1555
+ providedIn: 'root',
1556
+ }]
1557
+ }], ctorParameters: () => [{ type: SessionService }, { type: i1$1.Router }] });
1558
+
1559
+ class ValidatorService {
1560
+ constructor() { }
1561
+ handleValidateRecords(record) {
1562
+ return true;
1563
+ }
1564
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ValidatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1565
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ValidatorService, providedIn: 'root' });
1566
+ }
1567
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ValidatorService, decorators: [{
1568
+ type: Injectable,
1569
+ args: [{
1570
+ providedIn: 'root'
1571
+ }]
1572
+ }], ctorParameters: () => [] });
1573
+
1574
+ class BaseFormComponent {
1575
+ service;
1576
+ validatorService;
1577
+ router;
1578
+ activatedRoute;
1579
+ baseStore;
1580
+ subscriptions;
1581
+ record;
1582
+ recordChange = new BehaviorSubject({});
1583
+ constructor(service, validatorService, router, activatedRoute, baseStore) {
1584
+ this.service = service;
1585
+ this.validatorService = validatorService;
1586
+ this.router = router;
1587
+ this.activatedRoute = activatedRoute;
1588
+ this.baseStore = baseStore;
1589
+ this.subscriptions = [];
1590
+ this.record = {};
1591
+ }
1592
+ message = [];
1593
+ attributeMode;
1594
+ ngOnInit() {
1595
+ this.baseStore?.setRecordChange(SHARED.EMPTY);
1596
+ const baseRoute = this.router?.url.split(SHARED.SLASH)[1];
1597
+ let id = this.activatedRoute ? this.activatedRoute.snapshot.params[SHARED.ID] : '';
1598
+ if ((id !== SHARED.ZERO.toString()) && id && expectedRoutes.includes(baseRoute)) {
1599
+ this.service.getById(id).subscribe((res) => {
1600
+ this.record = res;
1601
+ this.baseStore?.setRecordChange(res);
1602
+ this.recordChange.next(res);
1603
+ });
1604
+ }
1605
+ }
1606
+ handleSubmit() {
1607
+ let validateRecords = this.validatorService ? this.validatorService.handleValidateRecords(this.record) : true;
1608
+ if (validateRecords) {
1609
+ if (this.record._id) {
1610
+ this.service.update(this.record._id, this.record).subscribe({
1611
+ next: (response) => {
1612
+ this.navigateToList();
1613
+ console.log('Record created:', response);
1614
+ },
1615
+ error: (error) => {
1616
+ console.error('Error creating record:', error);
1617
+ }
1618
+ });
1619
+ }
1620
+ else {
1621
+ this.service.create(this.record).subscribe({
1622
+ next: (response) => {
1623
+ this.navigateToList();
1624
+ console.log('Record created:', response);
1625
+ },
1626
+ error: (error) => {
1627
+ console.error('Error creating record:', error);
1628
+ }
1629
+ });
1630
+ }
1631
+ }
1632
+ }
1633
+ navigateToList() {
1634
+ if (this.router) {
1635
+ const currentUrl = this.router.url;
1636
+ const listUrl = currentUrl.split(SHARED.SLASH).slice(0, -1).join(SHARED.SLASH);
1637
+ this.router.navigate([`${listUrl}`]);
1638
+ }
1639
+ }
1640
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BaseFormComponent, deps: [{ token: BaseService }, { token: ValidatorService }, { token: i1$1.Router }, { token: i1$1.ActivatedRoute }, { token: BaseStore }], target: i0.ɵɵFactoryTarget.Component });
1641
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: BaseFormComponent, isStandalone: true, selector: "base-form", providers: [ValidatorService], ngImport: i0, template: "<p>base-form works!</p>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
1642
+ }
1643
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BaseFormComponent, decorators: [{
1644
+ type: Component,
1645
+ args: [{ selector: 'base-form', standalone: true, imports: [CommonModule], providers: [ValidatorService], template: "<p>base-form works!</p>\r\n" }]
1646
+ }], ctorParameters: () => [{ type: BaseService }, { type: ValidatorService }, { type: i1$1.Router }, { type: i1$1.ActivatedRoute }, { type: BaseStore }] });
1647
+
1648
+ class LOOKUPS {
1649
+ static DOCUMENTTYPE = 'DocumentType';
1650
+ }
1651
+
1652
+ class TablePrimaryComponent {
1653
+ _router;
1654
+ table;
1655
+ title;
1656
+ showStatus = true;
1657
+ showActions = true;
1658
+ showSearchBar = true;
1659
+ showNewRecordButton = true;
1660
+ showRefreshButton = true;
1661
+ globalFilter = SHARED.EMPTY;
1662
+ constructor(_router) {
1663
+ this._router = _router;
1664
+ }
1665
+ ngOnInit() {
1666
+ // Ensure that table headers are not empty
1667
+ if (this.table.headers.length === 0) {
1668
+ console.error('Table headers are missing.');
1669
+ }
1670
+ }
1671
+ clearSearch(table) {
1672
+ this.globalFilter = SHARED.EMPTY;
1673
+ table.clear();
1674
+ }
1675
+ refreshTable() {
1676
+ }
1677
+ handleCreate() {
1678
+ const currentRouteURL = this._router.url;
1679
+ this._router.navigate([currentRouteURL + SHARED.SLASH + SHARED.ZERO]);
1680
+ }
1681
+ handleEditClick(id) {
1682
+ const currentRouteURL = this._router.url;
1683
+ this._router.navigate([currentRouteURL + SHARED.SLASH + id]);
1684
+ }
1685
+ editRow(rowData) {
1686
+ console.log('Edit Row:', rowData);
1687
+ }
1688
+ deleteRow(rowData) {
1689
+ console.log('Delete Row:', rowData);
1690
+ }
1691
+ viewRow(rowData) {
1692
+ console.log('Delete Row:', rowData);
1693
+ }
1694
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TablePrimaryComponent, deps: [{ token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component });
1695
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: TablePrimaryComponent, isStandalone: true, selector: "lib-table-primary", inputs: { table: "table", title: "title", showStatus: "showStatus", showActions: "showActions", showSearchBar: "showSearchBar", showNewRecordButton: "showNewRecordButton", showRefreshButton: "showRefreshButton" }, ngImport: i0, template: "<p-table #dt2 [columns]=\"table.headers\" class=\"table-primary-container\" [value]=\"table.records\">\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"table-header-wrapper flex align-items-center justify-content-between\">\r\n <h3 class=\"text-color table-title-wrapper text-color m-0\">{{title}}</h3>\r\n <div class=\"flex align-items-center justify-content-between w-full\">\r\n <div class=\"flex justify-content-end w-full\" *ngIf=\"showSearchBar\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"globalFilter\" (input)=\"dt2.filterGlobal($event, 'contains')\"\r\n [placeholder]=\"'Search ' + title + '...'\" class=\"search-input-wrapper w-4\" />\r\n <p-button icon=\"pi pi-cog\" class=\"setting-icon-wrapper ml-3\"></p-button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Header Template -->\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr *ngIf=\"table.headers.length > 0\">\r\n <th *ngFor=\"let col of table.headers\" class=\"p-4\" [pSortableColumn]=\"col.name\" [ngClass]=\"col.width\">\r\n <h4 class=\"flex align-items-center table-header-title capitalize text-color font-semibold m-0\">\r\n {{ col.name }}\r\n <p-sortIcon [field]=\"col.name\" />\r\n </h4>\r\n </th>\r\n <th *ngIf=\"showActions\" class=\"table-action-title p-4 w-2\">\r\n <h4 class=\"text-color font-semibold table-header-title capitalize m-0\">Actions</h4></th>\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Table Body -->\r\n <ng-template pTemplate=\"body\" let-rowData>\r\n <tr *ngIf=\"table.headers.length > 0\" class=\"table-row-wrapper relative table-group-wrapper\">\r\n <td class=\"text-left p-4\" *ngFor=\"let col of table.headers\">\r\n <div class=\"table-text-wrapper p-0\" \r\n [ngClass]=\"{\r\n 'enable-badge-wrapper': col.name.toLowerCase() === 'status' && rowData[col.name] === 'Enable',\r\n 'disable-badge-wrapper': col.name.toLowerCase() === 'status' && rowData[col.name] === 'Disable',\r\n 'w-8': col.name.toLowerCase() === 'status',\r\n 'text-primary font-semibold': col.name.toLowerCase() === 'action' || col.name.toLowerCase() === 'name'\r\n }\"\r\n >\r\n {{ rowData[col.name] }}\r\n <p *ngIf=\"col.name.toLowerCase() === 'action'\" class=\"text-color font-normal\">{{rowData['apiEndPoint']}}</p>\r\n </div>\r\n </td>\r\n\r\n <!-- Actions -->\r\n <td *ngIf=\"showActions\" class=\"action-data-wrapper text-left p-4\">\r\n <div class=\"flex align-items-center\">\r\n <p-button icon=\"pi pi-pencil\" (click)=\"handleEditClick(rowData._id)\" class=\"edit-icon-wrapper mr-3\"></p-button>\r\n <p-button icon=\"pi pi-trash\" (click)=\"deleteRow(rowData)\" class=\"delete-icon-wrapper mr-3\"></p-button>\r\n </div>\r\n </td>\r\n <p-button icon=\"pi pi-eye\" (click)=\"viewRow(rowData)\" class=\"view-icon-wrapper icon-position-wrapper table-group-wrapper-hover:visible\"></p-button>\r\n </tr>\r\n </ng-template>\r\n</p-table>", styles: [".table-header-container{padding:20px 20px 20px 8px}.table-header-title{font-size:14px}.table-text-wrapper{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;max-width:100%;padding:.5rem;box-sizing:border-box}.table-title-wrapper{font-size:20px;font-weight:700}.table-action-title{border-radius:0 10px 0 0;border-right:1px solid rgba(68,72,109,.1)!important}.action-data-wrapper{border-right:1px solid rgba(68,72,109,.1)!important}.enable-badge-wrapper{border-radius:4px;background:var(--green-500);color:var(--surface-0);text-align:center;padding:5px!important}.disable-badge-wrapper{border-radius:4px;background:#44486d;color:var(--surface-0);text-align:center;padding:5px!important}.search-input-wrapper{height:50px;border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#4c62920a}.table-row-wrapper{position:relative;transition:all .3s ease-in-out}.icon-position-wrapper{position:absolute;top:50%;left:16%;transform:translate(-50%,-50%);opacity:0;visibility:hidden;transition:opacity .3s ease-in-out,visibility .3s ease-in-out}.table-row-wrapper:hover .icon-position-wrapper{opacity:1;visibility:visible}.table-group-wrapper:hover .icon-position-wrapper{visibility:visible;opacity:1}::ng-deep .edit-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:12px 20px}::ng-deep .edit-icon-wrapper .p-button .pi-pencil{color:var(--primary-color)}::ng-deep .delete-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:12px 20px}::ng-deep .delete-icon-wrapper .p-button .pi-trash{color:var(--red-500)}::ng-deep .setting-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:24px;height:50px}::ng-deep .setting-icon-wrapper .p-button .pi-cog{color:var(--primary-color)}::ng-deep .view-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.3);background:var(--surface-0);padding:20px;height:40px;box-shadow:none}::ng-deep .view-icon-wrapper .p-button .pi-eye{color:#44486d}::ng-deep .table-primary-container .p-datatable-table{min-width:50rem;padding:20px;background-color:#fff;table-layout:fixed}::ng-deep .table-primary-container .p-datatable-header{padding:20px 20px 0;border-radius:10px 10px 0 0!important;border:none!important}::ng-deep .table-primary-container .p-datatable-thead th{border:1px solid rgba(68,72,109,.1);border-left:none;border-right:none;background:#f9f9fa}::ng-deep .table-primary-container .p-datatable-thead th:first-child{border-radius:10px 0 0;border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr td{border-bottom:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr td:first-child{border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr:last-child td:first-child{border-radius:0 0 0 10px}::ng-deep .table-primary-container tr:last-child td:last-child{border-radius:0 0 10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i3$4.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i3$4.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i3$4.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2$2.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ToggleButtonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.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: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: InputSwitchModule }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i2$3.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: TooltipModule }] });
1696
+ }
1697
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TablePrimaryComponent, decorators: [{
1698
+ type: Component,
1699
+ args: [{ selector: 'lib-table-primary', standalone: true, imports: [CommonModule, TableModule, ButtonModule, ToggleButtonModule, FormsModule, InputSwitchModule, InputTextModule, TooltipModule], template: "<p-table #dt2 [columns]=\"table.headers\" class=\"table-primary-container\" [value]=\"table.records\">\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"table-header-wrapper flex align-items-center justify-content-between\">\r\n <h3 class=\"text-color table-title-wrapper text-color m-0\">{{title}}</h3>\r\n <div class=\"flex align-items-center justify-content-between w-full\">\r\n <div class=\"flex justify-content-end w-full\" *ngIf=\"showSearchBar\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"globalFilter\" (input)=\"dt2.filterGlobal($event, 'contains')\"\r\n [placeholder]=\"'Search ' + title + '...'\" class=\"search-input-wrapper w-4\" />\r\n <p-button icon=\"pi pi-cog\" class=\"setting-icon-wrapper ml-3\"></p-button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Header Template -->\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr *ngIf=\"table.headers.length > 0\">\r\n <th *ngFor=\"let col of table.headers\" class=\"p-4\" [pSortableColumn]=\"col.name\" [ngClass]=\"col.width\">\r\n <h4 class=\"flex align-items-center table-header-title capitalize text-color font-semibold m-0\">\r\n {{ col.name }}\r\n <p-sortIcon [field]=\"col.name\" />\r\n </h4>\r\n </th>\r\n <th *ngIf=\"showActions\" class=\"table-action-title p-4 w-2\">\r\n <h4 class=\"text-color font-semibold table-header-title capitalize m-0\">Actions</h4></th>\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Table Body -->\r\n <ng-template pTemplate=\"body\" let-rowData>\r\n <tr *ngIf=\"table.headers.length > 0\" class=\"table-row-wrapper relative table-group-wrapper\">\r\n <td class=\"text-left p-4\" *ngFor=\"let col of table.headers\">\r\n <div class=\"table-text-wrapper p-0\" \r\n [ngClass]=\"{\r\n 'enable-badge-wrapper': col.name.toLowerCase() === 'status' && rowData[col.name] === 'Enable',\r\n 'disable-badge-wrapper': col.name.toLowerCase() === 'status' && rowData[col.name] === 'Disable',\r\n 'w-8': col.name.toLowerCase() === 'status',\r\n 'text-primary font-semibold': col.name.toLowerCase() === 'action' || col.name.toLowerCase() === 'name'\r\n }\"\r\n >\r\n {{ rowData[col.name] }}\r\n <p *ngIf=\"col.name.toLowerCase() === 'action'\" class=\"text-color font-normal\">{{rowData['apiEndPoint']}}</p>\r\n </div>\r\n </td>\r\n\r\n <!-- Actions -->\r\n <td *ngIf=\"showActions\" class=\"action-data-wrapper text-left p-4\">\r\n <div class=\"flex align-items-center\">\r\n <p-button icon=\"pi pi-pencil\" (click)=\"handleEditClick(rowData._id)\" class=\"edit-icon-wrapper mr-3\"></p-button>\r\n <p-button icon=\"pi pi-trash\" (click)=\"deleteRow(rowData)\" class=\"delete-icon-wrapper mr-3\"></p-button>\r\n </div>\r\n </td>\r\n <p-button icon=\"pi pi-eye\" (click)=\"viewRow(rowData)\" class=\"view-icon-wrapper icon-position-wrapper table-group-wrapper-hover:visible\"></p-button>\r\n </tr>\r\n </ng-template>\r\n</p-table>", styles: [".table-header-container{padding:20px 20px 20px 8px}.table-header-title{font-size:14px}.table-text-wrapper{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;max-width:100%;padding:.5rem;box-sizing:border-box}.table-title-wrapper{font-size:20px;font-weight:700}.table-action-title{border-radius:0 10px 0 0;border-right:1px solid rgba(68,72,109,.1)!important}.action-data-wrapper{border-right:1px solid rgba(68,72,109,.1)!important}.enable-badge-wrapper{border-radius:4px;background:var(--green-500);color:var(--surface-0);text-align:center;padding:5px!important}.disable-badge-wrapper{border-radius:4px;background:#44486d;color:var(--surface-0);text-align:center;padding:5px!important}.search-input-wrapper{height:50px;border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#4c62920a}.table-row-wrapper{position:relative;transition:all .3s ease-in-out}.icon-position-wrapper{position:absolute;top:50%;left:16%;transform:translate(-50%,-50%);opacity:0;visibility:hidden;transition:opacity .3s ease-in-out,visibility .3s ease-in-out}.table-row-wrapper:hover .icon-position-wrapper{opacity:1;visibility:visible}.table-group-wrapper:hover .icon-position-wrapper{visibility:visible;opacity:1}::ng-deep .edit-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:12px 20px}::ng-deep .edit-icon-wrapper .p-button .pi-pencil{color:var(--primary-color)}::ng-deep .delete-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:12px 20px}::ng-deep .delete-icon-wrapper .p-button .pi-trash{color:var(--red-500)}::ng-deep .setting-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:24px;height:50px}::ng-deep .setting-icon-wrapper .p-button .pi-cog{color:var(--primary-color)}::ng-deep .view-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.3);background:var(--surface-0);padding:20px;height:40px;box-shadow:none}::ng-deep .view-icon-wrapper .p-button .pi-eye{color:#44486d}::ng-deep .table-primary-container .p-datatable-table{min-width:50rem;padding:20px;background-color:#fff;table-layout:fixed}::ng-deep .table-primary-container .p-datatable-header{padding:20px 20px 0;border-radius:10px 10px 0 0!important;border:none!important}::ng-deep .table-primary-container .p-datatable-thead th{border:1px solid rgba(68,72,109,.1);border-left:none;border-right:none;background:#f9f9fa}::ng-deep .table-primary-container .p-datatable-thead th:first-child{border-radius:10px 0 0;border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr td{border-bottom:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr td:first-child{border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr:last-child td:first-child{border-radius:0 0 0 10px}::ng-deep .table-primary-container tr:last-child td:last-child{border-radius:0 0 10px}\n"] }]
1700
+ }], ctorParameters: () => [{ type: i1$1.Router }], propDecorators: { table: [{
1701
+ type: Input
1702
+ }], title: [{
1703
+ type: Input
1704
+ }], showStatus: [{
1705
+ type: Input
1706
+ }], showActions: [{
1707
+ type: Input
1708
+ }], showSearchBar: [{
1709
+ type: Input
1710
+ }], showNewRecordButton: [{
1711
+ type: Input
1712
+ }], showRefreshButton: [{
1713
+ type: Input
1714
+ }] } });
1715
+
1716
+ class Credentials {
1717
+ email;
1718
+ password;
1719
+ }
1720
+
1721
+ class LISTCONFIG {
1722
+ static APICONFIG = [
1723
+ {
1724
+ name: "parentApiConfigID",
1725
+ dataSource: "apiConfig",
1726
+ listValueProperty: "_id",
1727
+ listLabelProperty: "name"
1728
+ }
1729
+ ];
1730
+ }
1731
+
1732
+ let ApiAdminStore = class ApiAdminStore extends BaseStore {
1733
+ constructor() {
1734
+ super();
1735
+ }
1736
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ApiAdminStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1737
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ApiAdminStore, providedIn: 'root' });
1738
+ };
1739
+ ApiAdminStore = __decorate([
1740
+ StoreConfig({ name: 'apiManagementStore' })
1741
+ ], ApiAdminStore);
1742
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ApiAdminStore, decorators: [{
1743
+ type: Injectable,
1744
+ args: [{ providedIn: 'root' }]
1745
+ }], ctorParameters: () => [] });
1746
+
1747
+ class ApiAdminService extends BaseService {
1748
+ apiManagementStore;
1749
+ configService;
1750
+ constructor(http, apiManagementStore, configService, listService) {
1751
+ super(http, apiManagementStore, configService, listService);
1752
+ this.apiManagementStore = apiManagementStore;
1753
+ this.configService = configService;
1754
+ this._pathName = DATASOURCES.APIMANAGEMENT;
1755
+ }
1756
+ list = LISTCONFIG.APICONFIG;
1757
+ checkApiByPathName(name, record) {
1758
+ return this.http.post(this.apiUrl + name, record).pipe(tap$1((entities) => this.apiManagementStore.set(entities)));
1759
+ }
1760
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ApiAdminService, deps: [{ token: i1$2.HttpClient }, { token: ApiAdminStore }, { token: AppConfigService }, { token: ListService }], target: i0.ɵɵFactoryTarget.Injectable });
1761
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ApiAdminService, providedIn: 'root' });
1762
+ }
1763
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ApiAdminService, decorators: [{
1764
+ type: Injectable,
1765
+ args: [{ providedIn: 'root' }]
1766
+ }], ctorParameters: () => [{ type: i1$2.HttpClient }, { type: ApiAdminStore }, { type: AppConfigService }, { type: ListService }] });
1767
+
1768
+ class ApiCredentialFormComponent {
1769
+ apiAdminStore;
1770
+ record;
1771
+ credentials;
1772
+ constructor(apiAdminStore) {
1773
+ this.apiAdminStore = apiAdminStore;
1774
+ this.credentials = new Credentials();
1775
+ }
1776
+ ngOnChanges() {
1777
+ this.credentials = this.record.credentials || new Credentials();
1778
+ }
1779
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ApiCredentialFormComponent, deps: [{ token: ApiAdminStore }], target: i0.ɵɵFactoryTarget.Component });
1780
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: ApiCredentialFormComponent, isStandalone: false, selector: "api-credential-form", inputs: { record: "record" }, usesOnChanges: true, ngImport: i0, template: " <div class=\"col-12 flex md:col-12\">\r\n\r\n <div class=\"col-12 md:col-6\">\r\n <username\r\n [store]=\"apiAdminStore\"\r\n [record]=\"credentials\"\r\n [attributeModel]=\"{\r\n readonly: false,\r\n name: 'email',\r\n isRequired: true,\r\n displayText: 'Email',\r\n placeholder: 'Enter Email'\r\n }\"\r\n ></username>\r\n </div>\r\n <div class=\"col-12 md:col-6\">\r\n <password\r\n [store]=\"apiAdminStore\"\r\n [record]=\"credentials\"\r\n [attributeModel]=\"{\r\n readonly: false,\r\n name: 'password',\r\n isRequired: true,\r\n displayText: 'password',\r\n placeholder: 'Enter Password'\r\n }\"\r\n ></password>\r\n </div>\r\n </div>\r\n", styles: [""], dependencies: [{ kind: "component", type: UsernameComponent, selector: "username" }, { kind: "component", type: PasswordComponent, selector: "password" }] });
1781
+ }
1782
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ApiCredentialFormComponent, decorators: [{
1783
+ type: Component,
1784
+ args: [{ selector: 'api-credential-form', standalone: false, template: " <div class=\"col-12 flex md:col-12\">\r\n\r\n <div class=\"col-12 md:col-6\">\r\n <username\r\n [store]=\"apiAdminStore\"\r\n [record]=\"credentials\"\r\n [attributeModel]=\"{\r\n readonly: false,\r\n name: 'email',\r\n isRequired: true,\r\n displayText: 'Email',\r\n placeholder: 'Enter Email'\r\n }\"\r\n ></username>\r\n </div>\r\n <div class=\"col-12 md:col-6\">\r\n <password\r\n [store]=\"apiAdminStore\"\r\n [record]=\"credentials\"\r\n [attributeModel]=\"{\r\n readonly: false,\r\n name: 'password',\r\n isRequired: true,\r\n displayText: 'password',\r\n placeholder: 'Enter Password'\r\n }\"\r\n ></password>\r\n </div>\r\n </div>\r\n" }]
1785
+ }], ctorParameters: () => [{ type: ApiAdminStore }], propDecorators: { record: [{
1786
+ type: Input
1787
+ }] } });
1788
+
1789
+ class ApiAdminFormComponent extends BaseFormComponent {
1790
+ apiAdminService;
1791
+ validatorService;
1792
+ router;
1793
+ activatedRoute;
1794
+ apiAdminStore;
1795
+ messages = SHARED.EMPTYARRAY;
1796
+ name = SHARED.EMPTY;
1797
+ selectedParentId;
1798
+ filteredRecords = SHARED.EMPTYARRAY;
1799
+ dropdownOptions = SHARED.EMPTYARRAY;
1800
+ apiPropertyList;
1801
+ recordChangeSubscription = null;
1802
+ constructor(apiAdminService, validatorService, router, activatedRoute, apiAdminStore) {
1803
+ super(apiAdminService, validatorService, router, activatedRoute);
1804
+ this.apiAdminService = apiAdminService;
1805
+ this.validatorService = validatorService;
1806
+ this.router = router;
1807
+ this.activatedRoute = activatedRoute;
1808
+ this.apiAdminStore = apiAdminStore;
1809
+ this.record.credentials = new Credentials();
1810
+ this.record.isActive = true;
1811
+ }
1812
+ ngOnInit() {
1813
+ super.ngOnInit();
1814
+ this.recordChangeSubscription = this.recordChange.subscribe((res) => {
1815
+ if (this.record && this.record.parentApiConfigID) {
1816
+ this.apiPropertyList = [{
1817
+ label: this.record.parentKey,
1818
+ value: this.record.parentKey
1819
+ }];
1820
+ }
1821
+ });
1822
+ }
1823
+ hanldeValidateApi() {
1824
+ const payload = {
1825
+ apiPath: this.record.path,
1826
+ credentials: SHARED.token
1827
+ };
1828
+ if (this.record.path) {
1829
+ this.apiAdminService.checkApiByPathName(ROUTES.VALIDATEAPI, payload).subscribe({
1830
+ next: (res) => {
1831
+ if (res) {
1832
+ this.messages = [{ severity: SHARED.SUCCESS, detail: res.message }];
1833
+ setTimeout(() => {
1834
+ this.messages = SHARED.EMPTYARRAY;
1835
+ }, 3000);
1836
+ }
1837
+ },
1838
+ error: (error) => {
1839
+ this.messages = [{ severity: SHARED.ERROR, detail: error.error.message }];
1840
+ setTimeout(() => {
1841
+ this.messages = SHARED.EMPTYARRAY;
1842
+ }, 3000);
1843
+ },
1844
+ });
1845
+ }
1846
+ else {
1847
+ this.messages = [{ severity: SHARED.ERROR, detail: SHARED.INVALID_API_PATH }];
1848
+ }
1849
+ }
1850
+ handleModelChange(event) {
1851
+ if (event) {
1852
+ this.apiAdminService.getById(event).subscribe((res) => {
1853
+ this.apiPropertyList = res.properties.map((property) => ({
1854
+ label: property,
1855
+ value: property
1856
+ }));
1857
+ });
1858
+ }
1859
+ else {
1860
+ this.record.parentKey = SHARED.EMPTY;
1861
+ this.apiPropertyList = SHARED.EMPTYARRAY;
1862
+ }
1863
+ }
1864
+ ngOnDestroy() {
1865
+ if (this.recordChangeSubscription) {
1866
+ this.recordChangeSubscription.unsubscribe();
1867
+ }
1868
+ }
1869
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ApiAdminFormComponent, deps: [{ token: ApiAdminService }, { token: ValidatorService }, { token: i1$1.Router }, { token: i1$1.ActivatedRoute }, { token: ApiAdminStore }], target: i0.ɵɵFactoryTarget.Component });
1870
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: ApiAdminFormComponent, isStandalone: false, selector: "lib-api-admin-form", usesInheritance: true, ngImport: i0, template: "<form-container\r\n [headerText]=\"'Queue / Api Management Form'\"\r\n [messages]=\"messages\"\r\n (onSave)=\"handleSubmit()\"\r\n [showSave]=\"true\"\r\n>\r\n <div class=\"card p-fluid p-formgrid grid \">\r\n <h4 class=\"font-bold col-12 md:col-12\">Api Management Form</h4>\r\n <div class=\"col-12 md:col-6\">\r\n <text-box\r\n [store]=\"apiAdminStore\"\r\n [record]=\"record\"\r\n [attributeModel]=\"{\r\n readonly: false,\r\n name: 'name',\r\n isRequired: true,\r\n displayText: 'Name',\r\n placeholder: 'Enter Name'\r\n }\"\r\n ></text-box>\r\n </div>\r\n <div class=\"col-12 md:col-6\">\r\n <text-box\r\n [store]=\"apiAdminStore\"\r\n [record]=\"record\"\r\n [attributeModel]=\"{\r\n readonly: false,\r\n name: 'path',\r\n isRequired: true,\r\n displayText: 'Path',\r\n placeholder: 'Enter Path'\r\n }\"\r\n ></text-box>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-2\">\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n label=\"Validate\"\r\n (click)=\"hanldeValidateApi()\"\r\n class=\"p-button-raised\"\r\n ></button>\r\n </div>\r\n </div>\r\n <div class=\"card p-fluid p-formgrid grid \">\r\n <h4 class=\"font-bold\">Other Details</h4>\r\n <div class=\"col-12 md:col-12 p-0 m-0\">\r\n <api-credential-form [record]=\"record\"></api-credential-form>\r\n </div>\r\n <div class=\"col-12 md:col-6\">\r\n <dropdown\r\n [store]=\"apiAdminStore\"\r\n [record]=\"record\"\r\n [attributeModel]=\"{\r\n name: 'parentApiConfigID',\r\n dataSource: 'apiConfig',\r\n listLabelProperty: 'name',\r\n listValueProperty: '_id', \r\n displayText: 'Select Parent',\r\n placeholder: 'Select Parent API',\r\n childListName: 'parentKey',\r\n childListKey: 'name'\r\n }\"\r\n (onInput)=\"handleModelChange($event)\"\r\n ></dropdown>\r\n\r\n </div>\r\n <div class=\"col-12 md:col-6\">\r\n <dropdown\r\n [store]=\"apiAdminStore\"\r\n [record]=\"record\"\r\n [attributeModel]=\"{\r\n name:'parentKey',\r\n displayText : 'Property',\r\n placeholder: 'Select Property',\r\n options: apiPropertyList\r\n }\"></dropdown>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-12\">\r\n <text-area\r\n [store]=\"apiAdminStore\"\r\n [record]=\"record\"\r\n [attributeModel]=\"{\r\n readonly: false,\r\n name: 'description',\r\n isRequired: false,\r\n displayText: 'Description',\r\n placeholder: 'Enter Description'\r\n }\"\r\n ></text-area>\r\n </div>\r\n </div>\r\n</form-container>", styles: [".p-message .p-message-wrapper{padding:.143rem 1.357rem}\n"], dependencies: [{ kind: "component", type: TextBoxComponent, selector: "text-box" }, { kind: "component", type: DropdownComponent, selector: "dropdown", inputs: ["isStaticDropdown"] }, { kind: "component", type: FormContainerComponent, selector: "form-container", inputs: ["messages", "record", "headerText", "showSave", "disableButton", "disableSubmitButton", "disableSaveButton", "overrideNavigate"], outputs: ["onSave", "onSubmit", "onCancel"] }, { kind: "directive", type: i2$2.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "component", type: TextAreaComponent, selector: "text-area", inputs: ["rowspan"] }, { kind: "component", type: ApiCredentialFormComponent, selector: "api-credential-form", inputs: ["record"] }] });
1871
+ }
1872
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ApiAdminFormComponent, decorators: [{
1873
+ type: Component,
1874
+ args: [{ selector: 'lib-api-admin-form', standalone: false, template: "<form-container\r\n [headerText]=\"'Queue / Api Management Form'\"\r\n [messages]=\"messages\"\r\n (onSave)=\"handleSubmit()\"\r\n [showSave]=\"true\"\r\n>\r\n <div class=\"card p-fluid p-formgrid grid \">\r\n <h4 class=\"font-bold col-12 md:col-12\">Api Management Form</h4>\r\n <div class=\"col-12 md:col-6\">\r\n <text-box\r\n [store]=\"apiAdminStore\"\r\n [record]=\"record\"\r\n [attributeModel]=\"{\r\n readonly: false,\r\n name: 'name',\r\n isRequired: true,\r\n displayText: 'Name',\r\n placeholder: 'Enter Name'\r\n }\"\r\n ></text-box>\r\n </div>\r\n <div class=\"col-12 md:col-6\">\r\n <text-box\r\n [store]=\"apiAdminStore\"\r\n [record]=\"record\"\r\n [attributeModel]=\"{\r\n readonly: false,\r\n name: 'path',\r\n isRequired: true,\r\n displayText: 'Path',\r\n placeholder: 'Enter Path'\r\n }\"\r\n ></text-box>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-2\">\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n label=\"Validate\"\r\n (click)=\"hanldeValidateApi()\"\r\n class=\"p-button-raised\"\r\n ></button>\r\n </div>\r\n </div>\r\n <div class=\"card p-fluid p-formgrid grid \">\r\n <h4 class=\"font-bold\">Other Details</h4>\r\n <div class=\"col-12 md:col-12 p-0 m-0\">\r\n <api-credential-form [record]=\"record\"></api-credential-form>\r\n </div>\r\n <div class=\"col-12 md:col-6\">\r\n <dropdown\r\n [store]=\"apiAdminStore\"\r\n [record]=\"record\"\r\n [attributeModel]=\"{\r\n name: 'parentApiConfigID',\r\n dataSource: 'apiConfig',\r\n listLabelProperty: 'name',\r\n listValueProperty: '_id', \r\n displayText: 'Select Parent',\r\n placeholder: 'Select Parent API',\r\n childListName: 'parentKey',\r\n childListKey: 'name'\r\n }\"\r\n (onInput)=\"handleModelChange($event)\"\r\n ></dropdown>\r\n\r\n </div>\r\n <div class=\"col-12 md:col-6\">\r\n <dropdown\r\n [store]=\"apiAdminStore\"\r\n [record]=\"record\"\r\n [attributeModel]=\"{\r\n name:'parentKey',\r\n displayText : 'Property',\r\n placeholder: 'Select Property',\r\n options: apiPropertyList\r\n }\"></dropdown>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-12\">\r\n <text-area\r\n [store]=\"apiAdminStore\"\r\n [record]=\"record\"\r\n [attributeModel]=\"{\r\n readonly: false,\r\n name: 'description',\r\n isRequired: false,\r\n displayText: 'Description',\r\n placeholder: 'Enter Description'\r\n }\"\r\n ></text-area>\r\n </div>\r\n </div>\r\n</form-container>", styles: [".p-message .p-message-wrapper{padding:.143rem 1.357rem}\n"] }]
1875
+ }], ctorParameters: () => [{ type: ApiAdminService }, { type: ValidatorService }, { type: i1$1.Router }, { type: i1$1.ActivatedRoute }, { type: ApiAdminStore }] });
1876
+
1877
+ class ApiAdminListComponent extends BaseListComponent {
1878
+ tableBuilder;
1879
+ constructor(apiAdminService, tableBuilder) {
1880
+ super(apiAdminService, tableBuilder);
1881
+ this.tableBuilder = tableBuilder;
1882
+ this.tableBuilder.hiddenHeaders = apiHiddenHeaderList;
1883
+ }
1884
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ApiAdminListComponent, deps: [{ token: ApiAdminService }, { token: TableBuilder }], target: i0.ɵɵFactoryTarget.Component });
1885
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: ApiAdminListComponent, isStandalone: false, selector: "lib-api-admin-list", usesInheritance: true, ngImport: i0, template: "\r\n@if(table){\r\n <lib-table-primary [table]=\"table\">\r\n \r\n </lib-table-primary>\r\n}", styles: [""], dependencies: [{ kind: "component", type: TablePrimaryComponent, selector: "lib-table-primary", inputs: ["table", "title", "showStatus", "showActions", "showSearchBar", "showNewRecordButton", "showRefreshButton"] }] });
1886
+ }
1887
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ApiAdminListComponent, decorators: [{
1888
+ type: Component,
1889
+ args: [{ selector: 'lib-api-admin-list', standalone: false, template: "\r\n@if(table){\r\n <lib-table-primary [table]=\"table\">\r\n \r\n </lib-table-primary>\r\n}" }]
1890
+ }], ctorParameters: () => [{ type: ApiAdminService }, { type: TableBuilder }] });
1891
+
1892
+ class ApiAdminModule {
1893
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ApiAdminModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1894
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.4", ngImport: i0, type: ApiAdminModule, declarations: [ApiAdminFormComponent, ApiCredentialFormComponent, ApiAdminListComponent], imports: [CommonModule,
1895
+ FormsModule,
1896
+ SharedModule,
1897
+ HttpClientModule,
1898
+ ButtonModule,
1899
+ UsernameComponent,
1900
+ PasswordComponent,
1901
+ TextAreaComponent,
1902
+ TablePrimaryComponent], exports: [ApiAdminFormComponent, ApiAdminListComponent] });
1903
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ApiAdminModule, providers: [
1904
+ {
1905
+ provide: APP_INITIALIZER,
1906
+ useFactory: (configService) => () => configService.loadAppConfig(),
1907
+ deps: [AppConfigService],
1908
+ multi: true,
1909
+ },
1910
+ ], imports: [CommonModule,
1911
+ FormsModule,
1912
+ SharedModule,
1913
+ HttpClientModule,
1914
+ ButtonModule,
1915
+ UsernameComponent,
1916
+ PasswordComponent,
1917
+ TextAreaComponent,
1918
+ TablePrimaryComponent] });
1919
+ }
1920
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ApiAdminModule, decorators: [{
1921
+ type: NgModule,
1922
+ args: [{
1923
+ declarations: [ApiAdminFormComponent, ApiCredentialFormComponent, ApiAdminListComponent],
1924
+ imports: [
1925
+ CommonModule,
1926
+ FormsModule,
1927
+ SharedModule,
1928
+ HttpClientModule,
1929
+ ButtonModule,
1930
+ UsernameComponent,
1931
+ PasswordComponent,
1932
+ TextAreaComponent,
1933
+ TablePrimaryComponent
1934
+ ],
1935
+ exports: [ApiAdminFormComponent, ApiAdminListComponent],
1936
+ providers: [
1937
+ {
1938
+ provide: APP_INITIALIZER,
1939
+ useFactory: (configService) => () => configService.loadAppConfig(),
1940
+ deps: [AppConfigService],
1941
+ multi: true,
1942
+ },
1943
+ ],
1944
+ }]
1945
+ }] });
1946
+
1947
+ let ActionStore = class ActionStore extends BaseStore {
1948
+ constructor() {
1949
+ super();
1950
+ }
1951
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ActionStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1952
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ActionStore, providedIn: 'root' });
1953
+ };
1954
+ ActionStore = __decorate([
1955
+ StoreConfig({ name: 'action' })
1956
+ ], ActionStore);
1957
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ActionStore, decorators: [{
1958
+ type: Injectable,
1959
+ args: [{ providedIn: 'root' }]
1960
+ }], ctorParameters: () => [] });
1961
+
1962
+ class ActionService extends BaseService {
1963
+ actionStore;
1964
+ constructor(actionStore, http, appConfigService, listService) {
1965
+ super(http, actionStore, appConfigService, listService);
1966
+ this.actionStore = actionStore;
1967
+ this._pathName = DATASOURCES.ACTIONS;
1968
+ }
1969
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ActionService, deps: [{ token: ActionStore }, { token: i1$2.HttpClient }, { token: AppConfigService }, { token: ListService }], target: i0.ɵɵFactoryTarget.Injectable });
1970
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ActionService, providedIn: 'root' });
1971
+ }
1972
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ActionService, decorators: [{
1973
+ type: Injectable,
1974
+ args: [{ providedIn: 'root' }]
1975
+ }], ctorParameters: () => [{ type: ActionStore }, { type: i1$2.HttpClient }, { type: AppConfigService }, { type: ListService }] });
1976
+
1977
+ class AdminActionListComponent extends BaseListComponent {
1978
+ tableBuilder;
1979
+ constructor(service, tableBuilder) {
1980
+ super(service, tableBuilder);
1981
+ this.tableBuilder = tableBuilder;
1982
+ this.tableBuilder.hiddenHeaders = actionHiddenHeaderList;
1983
+ }
1984
+ ngOnInit() {
1985
+ const actionTableColumnWidths = actionTableColumnWidthList;
1986
+ this.table = this.tableBuilder.buildTable(actionList, actionTableColumnWidths);
1987
+ }
1988
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AdminActionListComponent, deps: [{ token: ActionService }, { token: TableBuilder }], target: i0.ɵɵFactoryTarget.Component });
1989
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: AdminActionListComponent, isStandalone: false, selector: "lib-admin-action-list", usesInheritance: true, ngImport: i0, template: "<div class=\"dicitonary-list-wrapper\">\r\n @if(table){\r\n <lib-table-primary [title]=\"'Actions'\" [table]=\"table\"></lib-table-primary>\r\n }\r\n</div>", styles: [""], dependencies: [{ kind: "component", type: TablePrimaryComponent, selector: "lib-table-primary", inputs: ["table", "title", "showStatus", "showActions", "showSearchBar", "showNewRecordButton", "showRefreshButton"] }] });
1990
+ }
1991
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AdminActionListComponent, decorators: [{
1992
+ type: Component,
1993
+ args: [{ selector: 'lib-admin-action-list', standalone: false, template: "<div class=\"dicitonary-list-wrapper\">\r\n @if(table){\r\n <lib-table-primary [title]=\"'Actions'\" [table]=\"table\"></lib-table-primary>\r\n }\r\n</div>" }]
1994
+ }], ctorParameters: () => [{ type: ActionService }, { type: TableBuilder }] });
1995
+
1996
+ class ActionAdminModule {
1997
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ActionAdminModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1998
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.4", ngImport: i0, type: ActionAdminModule, declarations: [AdminActionListComponent], imports: [CommonModule,
1999
+ TablePrimaryComponent], exports: [AdminActionListComponent] });
2000
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ActionAdminModule, imports: [CommonModule,
2001
+ TablePrimaryComponent] });
2002
+ }
2003
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ActionAdminModule, decorators: [{
2004
+ type: NgModule,
2005
+ args: [{
2006
+ declarations: [AdminActionListComponent],
2007
+ imports: [
2008
+ CommonModule,
2009
+ TablePrimaryComponent
2010
+ ],
2011
+ exports: [AdminActionListComponent]
2012
+ }]
2013
+ }] });
2014
+
2015
+ class AdminActionFormComponent {
2016
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AdminActionFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2017
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: AdminActionFormComponent, isStandalone: false, selector: "lib-admin-action-form", ngImport: i0, template: "<p>admin-action-form works!</p>\r\n", styles: [""] });
2018
+ }
2019
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AdminActionFormComponent, decorators: [{
2020
+ type: Component,
2021
+ args: [{ selector: 'lib-admin-action-form', standalone: false, template: "<p>admin-action-form works!</p>\r\n" }]
2022
+ }] });
2023
+
2024
+ /*
2025
+ * Public API Surface of cat-qw-lib
2026
+ */
2027
+
2028
+ /**
2029
+ * Generated bundle index. Do not edit.
2030
+ */
2031
+
2032
+ export { ActionAdminModule, AdminActionFormComponent, AdminActionListComponent, ApiAdminFormComponent, ApiAdminListComponent, ApiAdminModule };
2033
+ //# sourceMappingURL=cat-qw-lib.mjs.map