verben-ticketing-ui 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/README.md +25 -0
  2. package/esm2022/public-api.mjs +9 -0
  3. package/esm2022/src/lib/components/add-ticket/add-ticket.component.mjs +306 -0
  4. package/esm2022/src/lib/components/add-ticket/add-ticket.module.mjs +98 -0
  5. package/esm2022/src/lib/components/add-ticket/index.mjs +2 -0
  6. package/esm2022/src/lib/components/add-ticket/public-api.mjs +3 -0
  7. package/esm2022/src/lib/components/add-ticket/verben-ticketing-ui-src-lib-components-add-ticket.mjs +5 -0
  8. package/esm2022/src/lib/components/file-render/file-render.component.mjs +34 -0
  9. package/esm2022/src/lib/components/file-render/file-render.module.mjs +94 -0
  10. package/esm2022/src/lib/components/file-render/index.mjs +2 -0
  11. package/esm2022/src/lib/components/file-render/public-api.mjs +3 -0
  12. package/esm2022/src/lib/components/file-render/verben-ticketing-ui-src-lib-components-file-render.mjs +5 -0
  13. package/esm2022/src/lib/components/ticketing/base-table-style.mjs +56 -0
  14. package/esm2022/src/lib/components/ticketing/index.mjs +2 -0
  15. package/esm2022/src/lib/components/ticketing/public-api.mjs +4 -0
  16. package/esm2022/src/lib/components/ticketing/ticketing.component.mjs +813 -0
  17. package/esm2022/src/lib/components/ticketing/ticketing.module.mjs +96 -0
  18. package/esm2022/src/lib/components/ticketing/ticketing.service.mjs +220 -0
  19. package/esm2022/src/lib/components/ticketing/verben-ticketing-ui-src-lib-components-ticketing.mjs +5 -0
  20. package/esm2022/src/lib/components/ticketing-detail/chat-control/chat-control.component.mjs +240 -0
  21. package/esm2022/src/lib/components/ticketing-detail/chat-control/chat-control.module.mjs +98 -0
  22. package/esm2022/src/lib/components/ticketing-detail/index.mjs +2 -0
  23. package/esm2022/src/lib/components/ticketing-detail/public-api.mjs +3 -0
  24. package/esm2022/src/lib/components/ticketing-detail/ticketing-detail.component.mjs +592 -0
  25. package/esm2022/src/lib/components/ticketing-detail/ticketing-detail.module.mjs +109 -0
  26. package/esm2022/src/lib/components/ticketing-detail/verben-ticketing-ui-src-lib-components-ticketing-detail.mjs +5 -0
  27. package/esm2022/src/lib/constants/index.mjs +2 -0
  28. package/esm2022/src/lib/constants/keynames.mjs +2 -0
  29. package/esm2022/src/lib/constants/pagesize.mjs +3 -0
  30. package/esm2022/src/lib/constants/public-api.mjs +3 -0
  31. package/esm2022/src/lib/constants/verben-ticketing-ui-src-lib-constants.mjs +5 -0
  32. package/esm2022/src/lib/models/Application.mjs +2 -0
  33. package/esm2022/src/lib/models/ApplicationRoleAction.mjs +2 -0
  34. package/esm2022/src/lib/models/ApplicationRoleContext.mjs +2 -0
  35. package/esm2022/src/lib/models/BaseModel.mjs +2 -0
  36. package/esm2022/src/lib/models/CacheDataRequest.mjs +2 -0
  37. package/esm2022/src/lib/models/Company.mjs +2 -0
  38. package/esm2022/src/lib/models/ErrorResponse.mjs +11 -0
  39. package/esm2022/src/lib/models/File.mjs +2 -0
  40. package/esm2022/src/lib/models/FilterTypes.mjs +9 -0
  41. package/esm2022/src/lib/models/HttpRequestType.mjs +8 -0
  42. package/esm2022/src/lib/models/KeyValueParam.mjs +2 -0
  43. package/esm2022/src/lib/models/ModelRelationship.mjs +2 -0
  44. package/esm2022/src/lib/models/OAuthParam.mjs +2 -0
  45. package/esm2022/src/lib/models/OAuthType.mjs +9 -0
  46. package/esm2022/src/lib/models/PagedResult.mjs +2 -0
  47. package/esm2022/src/lib/models/PasswordRequestParam.mjs +2 -0
  48. package/esm2022/src/lib/models/PermissionConfig.mjs +2 -0
  49. package/esm2022/src/lib/models/ResponseKeyValue.mjs +2 -0
  50. package/esm2022/src/lib/models/Role.mjs +2 -0
  51. package/esm2022/src/lib/models/RoleAction.mjs +2 -0
  52. package/esm2022/src/lib/models/RoleContext.mjs +2 -0
  53. package/esm2022/src/lib/models/Schedule.mjs +2 -0
  54. package/esm2022/src/lib/models/ScheduleType.mjs +6 -0
  55. package/esm2022/src/lib/models/SearchDynamicWrapper.mjs +2 -0
  56. package/esm2022/src/lib/models/SearchOperator.mjs +6 -0
  57. package/esm2022/src/lib/models/SearchPropertySign.mjs +11 -0
  58. package/esm2022/src/lib/models/SearchPropertyValue.mjs +2 -0
  59. package/esm2022/src/lib/models/SearchPropertyValueType.mjs +11 -0
  60. package/esm2022/src/lib/models/SortDirection.mjs +7 -0
  61. package/esm2022/src/lib/models/TaskUser.mjs +2 -0
  62. package/esm2022/src/lib/models/Tenant.mjs +2 -0
  63. package/esm2022/src/lib/models/TenantConfig.mjs +2 -0
  64. package/esm2022/src/lib/models/TenantPriority.mjs +2 -0
  65. package/esm2022/src/lib/models/Ticket.mjs +2 -0
  66. package/esm2022/src/lib/models/TicketMessage.mjs +2 -0
  67. package/esm2022/src/lib/models/TicketStatus.mjs +8 -0
  68. package/esm2022/src/lib/models/UserRequest.mjs +2 -0
  69. package/esm2022/src/lib/models/auth-mechanism.mjs +8 -0
  70. package/esm2022/src/lib/models/base.mjs +2 -0
  71. package/esm2022/src/lib/models/conditions.mjs +13 -0
  72. package/esm2022/src/lib/models/index.mjs +2 -0
  73. package/esm2022/src/lib/models/log-in.mjs +2 -0
  74. package/esm2022/src/lib/models/mainUser.mjs +2 -0
  75. package/esm2022/src/lib/models/oauth-resp.mjs +2 -0
  76. package/esm2022/src/lib/models/oauth-response.mjs +2 -0
  77. package/esm2022/src/lib/models/object-state.mjs +8 -0
  78. package/esm2022/src/lib/models/otpValue.mjs +2 -0
  79. package/esm2022/src/lib/models/paged.mjs +2 -0
  80. package/esm2022/src/lib/models/public-api.mjs +57 -0
  81. package/esm2022/src/lib/models/query-params.mjs +2 -0
  82. package/esm2022/src/lib/models/request-status.mjs +5 -0
  83. package/esm2022/src/lib/models/resend-otp-data.mjs +2 -0
  84. package/esm2022/src/lib/models/sign-up.mjs +2 -0
  85. package/esm2022/src/lib/models/single-sign-on.mjs +2 -0
  86. package/esm2022/src/lib/models/status.mjs +6 -0
  87. package/esm2022/src/lib/models/user-access-request-status.mjs +7 -0
  88. package/esm2022/src/lib/models/user-access-request.mjs +2 -0
  89. package/esm2022/src/lib/models/user-management.mjs +2 -0
  90. package/esm2022/src/lib/models/user.mjs +2 -0
  91. package/esm2022/src/lib/models/verben-ticketing-ui-src-lib-models.mjs +5 -0
  92. package/esm2022/src/lib/pipes/async-label.pipe.mjs +26 -0
  93. package/esm2022/src/lib/pipes/company-date.pipe.mjs +30 -0
  94. package/esm2022/src/lib/pipes/ellipse-word.pipe.mjs +23 -0
  95. package/esm2022/src/lib/pipes/index.mjs +2 -0
  96. package/esm2022/src/lib/pipes/public-api.mjs +4 -0
  97. package/esm2022/src/lib/pipes/verben-ticketing-ui-src-lib-pipes.mjs +5 -0
  98. package/esm2022/src/lib/services/company-settings.service.mjs +23 -0
  99. package/esm2022/src/lib/services/environment.service.mjs +26 -0
  100. package/esm2022/src/lib/services/http-web-request.service.mjs +100 -0
  101. package/esm2022/src/lib/services/import.service.mjs +247 -0
  102. package/esm2022/src/lib/services/index.mjs +2 -0
  103. package/esm2022/src/lib/services/label.service.mjs +261 -0
  104. package/esm2022/src/lib/services/public-api.mjs +8 -0
  105. package/esm2022/src/lib/services/shared.service.mjs +58 -0
  106. package/esm2022/src/lib/services/util.service.mjs +72 -0
  107. package/esm2022/src/lib/services/verben-ticketing-ui-src-lib-services.mjs +5 -0
  108. package/esm2022/src/utils/components/base-data-view.component.mjs +111 -0
  109. package/esm2022/src/utils/index.mjs +2 -0
  110. package/esm2022/src/utils/models/DataViewConfig.mjs +2 -0
  111. package/esm2022/src/utils/public-api.mjs +3 -0
  112. package/esm2022/src/utils/verben-ticketing-ui-src-utils.mjs +5 -0
  113. package/esm2022/verben-ticketing-ui.mjs +5 -0
  114. package/fesm2022/verben-ticketing-ui-src-lib-components-add-ticket.mjs +403 -0
  115. package/fesm2022/verben-ticketing-ui-src-lib-components-add-ticket.mjs.map +1 -0
  116. package/fesm2022/verben-ticketing-ui-src-lib-components-file-render.mjs +130 -0
  117. package/fesm2022/verben-ticketing-ui-src-lib-components-file-render.mjs.map +1 -0
  118. package/fesm2022/verben-ticketing-ui-src-lib-components-ticketing-detail.mjs +1018 -0
  119. package/fesm2022/verben-ticketing-ui-src-lib-components-ticketing-detail.mjs.map +1 -0
  120. package/fesm2022/verben-ticketing-ui-src-lib-components-ticketing.mjs +1166 -0
  121. package/fesm2022/verben-ticketing-ui-src-lib-components-ticketing.mjs.map +1 -0
  122. package/fesm2022/verben-ticketing-ui-src-lib-constants.mjs +11 -0
  123. package/fesm2022/verben-ticketing-ui-src-lib-constants.mjs.map +1 -0
  124. package/fesm2022/verben-ticketing-ui-src-lib-models.mjs +138 -0
  125. package/fesm2022/verben-ticketing-ui-src-lib-models.mjs.map +1 -0
  126. package/fesm2022/verben-ticketing-ui-src-lib-pipes.mjs +81 -0
  127. package/fesm2022/verben-ticketing-ui-src-lib-pipes.mjs.map +1 -0
  128. package/fesm2022/verben-ticketing-ui-src-lib-services.mjs +770 -0
  129. package/fesm2022/verben-ticketing-ui-src-lib-services.mjs.map +1 -0
  130. package/fesm2022/verben-ticketing-ui-src-utils.mjs +118 -0
  131. package/fesm2022/verben-ticketing-ui-src-utils.mjs.map +1 -0
  132. package/fesm2022/verben-ticketing-ui.mjs +14 -0
  133. package/fesm2022/verben-ticketing-ui.mjs.map +1 -0
  134. package/index.d.ts +5 -0
  135. package/package.json +82 -0
  136. package/public-api.d.ts +4 -0
  137. package/src/lib/components/add-ticket/add-ticket.component.d.ts +44 -0
  138. package/src/lib/components/add-ticket/add-ticket.module.d.ts +15 -0
  139. package/src/lib/components/add-ticket/index.d.ts +1 -0
  140. package/src/lib/components/add-ticket/public-api.d.ts +2 -0
  141. package/src/lib/components/file-render/file-render.component.d.ts +14 -0
  142. package/src/lib/components/file-render/file-render.module.d.ts +14 -0
  143. package/src/lib/components/file-render/index.d.ts +1 -0
  144. package/src/lib/components/file-render/public-api.d.ts +2 -0
  145. package/src/lib/components/ticketing/base-table-style.d.ts +1 -0
  146. package/src/lib/components/ticketing/index.d.ts +1 -0
  147. package/src/lib/components/ticketing/public-api.d.ts +3 -0
  148. package/src/lib/components/ticketing/ticketing.component.d.ts +100 -0
  149. package/src/lib/components/ticketing/ticketing.module.d.ts +12 -0
  150. package/src/lib/components/ticketing/ticketing.service.d.ts +27 -0
  151. package/src/lib/components/ticketing-detail/chat-control/chat-control.component.d.ts +47 -0
  152. package/src/lib/components/ticketing-detail/chat-control/chat-control.module.d.ts +15 -0
  153. package/src/lib/components/ticketing-detail/index.d.ts +1 -0
  154. package/src/lib/components/ticketing-detail/public-api.d.ts +2 -0
  155. package/src/lib/components/ticketing-detail/ticketing-detail.component.d.ts +77 -0
  156. package/src/lib/components/ticketing-detail/ticketing-detail.module.d.ts +17 -0
  157. package/src/lib/constants/index.d.ts +1 -0
  158. package/src/lib/constants/keynames.d.ts +1 -0
  159. package/src/lib/constants/pagesize.d.ts +2 -0
  160. package/src/lib/constants/public-api.d.ts +2 -0
  161. package/src/lib/models/Application.d.ts +5 -0
  162. package/src/lib/models/ApplicationRoleAction.d.ts +9 -0
  163. package/src/lib/models/ApplicationRoleContext.d.ts +9 -0
  164. package/src/lib/models/BaseModel.d.ts +14 -0
  165. package/src/lib/models/CacheDataRequest.d.ts +7 -0
  166. package/src/lib/models/Company.d.ts +22 -0
  167. package/src/lib/models/ErrorResponse.d.ts +6 -0
  168. package/src/lib/models/File.d.ts +7 -0
  169. package/src/lib/models/FilterTypes.d.ts +6 -0
  170. package/src/lib/models/HttpRequestType.d.ts +6 -0
  171. package/src/lib/models/KeyValueParam.d.ts +5 -0
  172. package/src/lib/models/ModelRelationship.d.ts +7 -0
  173. package/src/lib/models/OAuthParam.d.ts +9 -0
  174. package/src/lib/models/OAuthType.d.ts +7 -0
  175. package/src/lib/models/PagedResult.d.ts +9 -0
  176. package/src/lib/models/PasswordRequestParam.d.ts +5 -0
  177. package/src/lib/models/PermissionConfig.d.ts +7 -0
  178. package/src/lib/models/ResponseKeyValue.d.ts +5 -0
  179. package/src/lib/models/Role.d.ts +9 -0
  180. package/src/lib/models/RoleAction.d.ts +10 -0
  181. package/src/lib/models/RoleContext.d.ts +10 -0
  182. package/src/lib/models/Schedule.d.ts +22 -0
  183. package/src/lib/models/ScheduleType.d.ts +4 -0
  184. package/src/lib/models/SearchDynamicWrapper.d.ts +7 -0
  185. package/src/lib/models/SearchOperator.d.ts +4 -0
  186. package/src/lib/models/SearchPropertySign.d.ts +9 -0
  187. package/src/lib/models/SearchPropertyValue.d.ts +14 -0
  188. package/src/lib/models/SearchPropertyValueType.d.ts +9 -0
  189. package/src/lib/models/SortDirection.d.ts +5 -0
  190. package/src/lib/models/TaskUser.d.ts +10 -0
  191. package/src/lib/models/Tenant.d.ts +22 -0
  192. package/src/lib/models/TenantConfig.d.ts +20 -0
  193. package/src/lib/models/TenantPriority.d.ts +10 -0
  194. package/src/lib/models/Ticket.d.ts +21 -0
  195. package/src/lib/models/TicketMessage.d.ts +11 -0
  196. package/src/lib/models/TicketStatus.d.ts +6 -0
  197. package/src/lib/models/UserRequest.d.ts +32 -0
  198. package/src/lib/models/auth-mechanism.d.ts +14 -0
  199. package/src/lib/models/base.d.ts +12 -0
  200. package/src/lib/models/conditions.d.ts +11 -0
  201. package/src/lib/models/index.d.ts +1 -0
  202. package/src/lib/models/log-in.d.ts +8 -0
  203. package/src/lib/models/mainUser.d.ts +19 -0
  204. package/src/lib/models/oauth-resp.d.ts +6 -0
  205. package/src/lib/models/oauth-response.d.ts +6 -0
  206. package/src/lib/models/object-state.d.ts +6 -0
  207. package/src/lib/models/otpValue.d.ts +9 -0
  208. package/src/lib/models/paged.d.ts +9 -0
  209. package/src/lib/models/public-api.d.ts +56 -0
  210. package/src/lib/models/query-params.d.ts +7 -0
  211. package/src/lib/models/request-status.d.ts +3 -0
  212. package/src/lib/models/resend-otp-data.d.ts +8 -0
  213. package/src/lib/models/sign-up.d.ts +9 -0
  214. package/src/lib/models/single-sign-on.d.ts +7 -0
  215. package/src/lib/models/status.d.ts +4 -0
  216. package/src/lib/models/user-access-request-status.d.ts +5 -0
  217. package/src/lib/models/user-access-request.d.ts +9 -0
  218. package/src/lib/models/user-management.d.ts +8 -0
  219. package/src/lib/models/user.d.ts +24 -0
  220. package/src/lib/pipes/async-label.pipe.d.ts +11 -0
  221. package/src/lib/pipes/company-date.pipe.d.ts +10 -0
  222. package/src/lib/pipes/ellipse-word.pipe.d.ts +8 -0
  223. package/src/lib/pipes/index.d.ts +1 -0
  224. package/src/lib/pipes/public-api.d.ts +3 -0
  225. package/src/lib/services/company-settings.service.d.ts +11 -0
  226. package/src/lib/services/environment.service.d.ts +22 -0
  227. package/src/lib/services/http-web-request.service.d.ts +24 -0
  228. package/src/lib/services/import.service.d.ts +14 -0
  229. package/src/lib/services/index.d.ts +1 -0
  230. package/src/lib/services/label.service.d.ts +24 -0
  231. package/src/lib/services/public-api.d.ts +7 -0
  232. package/src/lib/services/shared.service.d.ts +16 -0
  233. package/src/lib/services/util.service.d.ts +15 -0
  234. package/src/utils/components/base-data-view.component.d.ts +34 -0
  235. package/src/utils/index.d.ts +1 -0
  236. package/src/utils/models/DataViewConfig.d.ts +11 -0
  237. package/src/utils/public-api.d.ts +2 -0
@@ -0,0 +1,403 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, Component, Input, Output, NgModule } from '@angular/core';
3
+ import * as i1 from '@angular/forms';
4
+ import { FormControl, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
5
+ import { TicketStatus, ObjectState, ErrorResponse } from 'verben-ticketing-ui/src/lib/models';
6
+ import { DEFAULT_MESSAGE_FOR_INITIAL_UPLOAD } from 'verben-ticketing-ui/src/lib/constants';
7
+ import * as i2 from 'verben-ticketing-ui/src/lib/services';
8
+ import * as i3 from '@angular/common';
9
+ import { CommonModule } from '@angular/common';
10
+ import * as i4 from 'verben-ng-ui';
11
+ import { DataTableModule, SvgModule, VerbenPopUpModule, DataViewModule, VerbenaButtonModule, CardDataViewModule, DropDownModule, VerbenaSwitchModule, TableFilterModule, VisibleColumnModule, SortTableModule, DataExportModule, TooltipModule, VerbenDialogueModule, VerbenaInputModule, DataImportModule, DataXportModule } from 'verben-ng-ui';
12
+ import * as i5 from 'verben-ticketing-ui/src/lib/components/file-render';
13
+ import { FileRenderLibModule } from 'verben-ticketing-ui/src/lib/components/file-render';
14
+ import * as i1$1 from '@angular/router';
15
+ import { RouterModule } from '@angular/router';
16
+ import { EllipseWordPipe, CompanyDatePipe } from 'verben-ticketing-ui/src/lib/pipes';
17
+
18
+ class AddTicketComponent {
19
+ fb;
20
+ utilService;
21
+ server;
22
+ sharedService;
23
+ envSvc;
24
+ // test: string = '';
25
+ // logTest() {
26
+ // console.log({ Test: this.test });
27
+ // }
28
+ createTicketForm;
29
+ activeApp = null;
30
+ activeTenant = null;
31
+ selectedTicket = null;
32
+ isVisible = false;
33
+ onOpen = new EventEmitter();
34
+ onClose = new EventEmitter();
35
+ onSave = new EventEmitter();
36
+ priorityOptions = [];
37
+ statusOptions = Object.keys(TicketStatus);
38
+ fileData = [];
39
+ fileUrls = [];
40
+ //attachedMessage: TicketMessage | null = null;
41
+ maxFileSize = 15 * 1024 * 1024;
42
+ defaultCompany = '';
43
+ constructor(fb, utilService, server, sharedService, envSvc) {
44
+ this.fb = fb;
45
+ this.utilService = utilService;
46
+ this.server = server;
47
+ this.sharedService = sharedService;
48
+ this.envSvc = envSvc;
49
+ this.createTicketForm = this.fb.group({
50
+ Title: new FormControl(null, Validators.required),
51
+ Description: new FormControl(null, Validators.required),
52
+ CurrentHandler: new FormControl({
53
+ value: null,
54
+ disabled: true,
55
+ }),
56
+ LastHandler: new FormControl({
57
+ value: null,
58
+ disabled: true,
59
+ }),
60
+ Priority: new FormControl(null, Validators.required),
61
+ Status: new FormControl({ value: TicketStatus.Pending, disabled: true }, Validators.required),
62
+ });
63
+ // this.createTicketForm.controls['CurrentHandler'].disable();
64
+ // this.createTicketForm.controls['LastHandler'].disable();
65
+ }
66
+ ngOnInit() { }
67
+ async ngOnChanges(changes) {
68
+ if (changes['selectedTicket'] && this.selectedTicket) {
69
+ this.createTicketForm.patchValue({
70
+ Title: this.selectedTicket.Title,
71
+ Description: this.selectedTicket.Description,
72
+ CurrentHandler: this.selectedTicket.CurrentHandler,
73
+ LastHandler: this.selectedTicket.LastHandler,
74
+ Priority: this.selectedTicket.Priority,
75
+ Status: this.selectedTicket.Status,
76
+ });
77
+ this.fileUrls = [...this.selectedTicket.FileUrls];
78
+ this.fileData = [];
79
+ }
80
+ else {
81
+ this.createTicketForm.patchValue({
82
+ Title: null,
83
+ Description: null,
84
+ CurrentHandler: null,
85
+ LastHandler: null,
86
+ Priority: null,
87
+ Status: TicketStatus.Pending,
88
+ });
89
+ this.fileUrls = [];
90
+ this.fileData = [];
91
+ }
92
+ if (changes['activeTenant'] && this.activeTenant) {
93
+ const options = await this.sharedService.getAllPrioritiesForTenant(this.activeTenant);
94
+ if (options) {
95
+ this.priorityOptions = options.Result;
96
+ }
97
+ console.log({ Changed: this.priorityOptions });
98
+ }
99
+ else if (changes['activeTenant'] && !this.activeTenant) {
100
+ this.priorityOptions = [];
101
+ // console.log({ Tenant: this.activeTenant, Reset: this.priorityOptions });
102
+ }
103
+ }
104
+ checkForm() {
105
+ if (this.createTicketForm.valid == true) {
106
+ return true;
107
+ }
108
+ return false;
109
+ }
110
+ onModalOpen(event) {
111
+ this.onOpen.emit();
112
+ }
113
+ onModalClose(event) {
114
+ this.onClose.emit(event);
115
+ }
116
+ // filterMessage(message: TicketMessage): TicketMessage {
117
+ // return {
118
+ // ...message,
119
+ // AttachmentUrls: message.AttachmentUrls.filter(
120
+ // (x) => x.split('/').length > 1
121
+ // ),
122
+ // };
123
+ // }
124
+ async save() {
125
+ if (!this.activeApp) {
126
+ return;
127
+ }
128
+ if (!this.activeTenant) {
129
+ return;
130
+ }
131
+ // if (this.selectedTicket && this.attachedMessage) {
132
+ // if (idx > -1) {
133
+ // this.selectedTicket.Messages[idx] = this.filterMessage(
134
+ // this.attachedMessage
135
+ // );
136
+ // } else {
137
+ // if (this.attachedMessage.Attachments.length > 0) {
138
+ // this.selectedTicket.Messages.unshift(
139
+ // this.filterMessage(this.attachedMessage)
140
+ // );
141
+ // }
142
+ // }
143
+ // }
144
+ const item = {
145
+ Title: this.createTicketForm.controls['Title'].value,
146
+ Description: this.createTicketForm.controls['Description'].value,
147
+ CurrentHandler: this.selectedTicket
148
+ ? this.selectedTicket.CurrentHandler
149
+ : undefined,
150
+ LastHandler: this.selectedTicket
151
+ ? this.selectedTicket.LastHandler
152
+ : undefined,
153
+ Priority: this.createTicketForm.controls['Priority'].value,
154
+ App: this.activeApp,
155
+ id: '',
156
+ Status: this.createTicketForm.controls['Status'].value,
157
+ Company: this.defaultCompany,
158
+ Messages: this.selectedTicket ? this.selectedTicket.Messages : [],
159
+ FileData: this.fileData,
160
+ FileUrls: this.selectedTicket ? this.selectedTicket.FileUrls : [],
161
+ Id: '',
162
+ ExecutionTime: this.selectedTicket
163
+ ? this.selectedTicket.ExecutionTime
164
+ : undefined,
165
+ Code: this.selectedTicket ? this.selectedTicket.Code : '',
166
+ TenantId: this.selectedTicket
167
+ ? this.selectedTicket.TenantId
168
+ : this.activeTenant,
169
+ ServiceName: this.selectedTicket ? this.selectedTicket.ServiceName : '',
170
+ CreatedAt: this.selectedTicket
171
+ ? this.selectedTicket.CreatedAt
172
+ : new Date(),
173
+ UpdatedAt: new Date(),
174
+ DataState: this.selectedTicket ? ObjectState.Changed : ObjectState.New,
175
+ };
176
+ if (item.Description.trim().length == 0) {
177
+ this.utilService.showInfo('Description cannot be empty');
178
+ return;
179
+ }
180
+ this.utilService.sendBI(true);
181
+ const res = await this.server.post(`Ticket/SaveTicket`, [item], this.envSvc.environment.TicketingAPI);
182
+ this.utilService.sendBI(false);
183
+ if (res instanceof ErrorResponse) {
184
+ }
185
+ else {
186
+ this.utilService.showSuccess('Ticket saved successfully');
187
+ const result = res;
188
+ if (result.length > 0) {
189
+ var resultItem = result[0];
190
+ this.onSave.emit(resultItem);
191
+ }
192
+ }
193
+ this.onClose.emit();
194
+ }
195
+ generateSixDigitNumber() {
196
+ return Math.floor(100000 + Math.random() * 900000);
197
+ }
198
+ getTicketMessage() {
199
+ if (this.selectedTicket) {
200
+ const initialMessage = this.selectedTicket.Messages.find((x) => x.Subject == DEFAULT_MESSAGE_FOR_INITIAL_UPLOAD);
201
+ if (initialMessage) {
202
+ return { ...initialMessage, DataState: ObjectState.Changed };
203
+ }
204
+ else {
205
+ const newMessage = {
206
+ TicketCode: '',
207
+ Subject: DEFAULT_MESSAGE_FOR_INITIAL_UPLOAD,
208
+ Content: '',
209
+ Attachments: [],
210
+ AttachmentUrls: [],
211
+ Company: this.defaultCompany,
212
+ Id: '',
213
+ Code: '',
214
+ TenantId: '',
215
+ id: '',
216
+ ServiceName: '',
217
+ CreatedAt: new Date(),
218
+ UpdatedAt: new Date(),
219
+ DataState: ObjectState.New,
220
+ };
221
+ return newMessage;
222
+ }
223
+ }
224
+ else {
225
+ const newMessage = {
226
+ TicketCode: '',
227
+ Subject: DEFAULT_MESSAGE_FOR_INITIAL_UPLOAD,
228
+ Content: '',
229
+ Attachments: [],
230
+ AttachmentUrls: [],
231
+ Company: this.defaultCompany,
232
+ Id: '',
233
+ id: '',
234
+ Code: '',
235
+ TenantId: '',
236
+ ServiceName: '',
237
+ CreatedAt: new Date(),
238
+ UpdatedAt: new Date(),
239
+ DataState: ObjectState.New,
240
+ };
241
+ return newMessage;
242
+ }
243
+ }
244
+ triggerFileUpload() {
245
+ const fileInput = document.createElement('input');
246
+ fileInput.type = 'file';
247
+ fileInput.accept = '.png, .jpg, .jpeg, .pdf';
248
+ fileInput.style.display = 'none'; // Hidden file input
249
+ document.body.appendChild(fileInput); // Temporarily add to DOM
250
+ fileInput.addEventListener('change', () => {
251
+ const file = fileInput.files?.[0];
252
+ if (file) {
253
+ this.processFile(file);
254
+ }
255
+ document.body.removeChild(fileInput); // Clean up after use
256
+ });
257
+ fileInput.click(); // Programmatically trigger click
258
+ }
259
+ async processFile(selectedFile) {
260
+ // Check file size
261
+ if (selectedFile.size > this.maxFileSize) {
262
+ const limitInMB = this.maxFileSize / 1024 / 1024;
263
+ this.utilService.showInfo(`File size limit of ${limitInMB}mb exceeded`);
264
+ return;
265
+ }
266
+ // let fileToProcess: globalThis.File | null = selectedFile;
267
+ // const safeNumber: number = 1 * 1024 * 1024;
268
+ // if (fileToProcess.size > safeNumber) {
269
+ // fileToProcess = await this.utilService.compressImage(selectedFile);
270
+ // if (!fileToProcess) {
271
+ // this.utilService.showError('Error compressing image');
272
+ // return;
273
+ // }
274
+ // }
275
+ // Read file and convert to base64
276
+ const reader = new FileReader();
277
+ reader.readAsDataURL(selectedFile);
278
+ reader.onload = () => {
279
+ const base64data = reader.result;
280
+ const file = this.sharedService.createCustomFile(base64data, 0, selectedFile);
281
+ if (file) {
282
+ this.fileData.push(file);
283
+ this.fileUrls.push(`${file.Name}`);
284
+ // this.profileImage = base64data;
285
+ }
286
+ };
287
+ }
288
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AddTicketComponent, deps: [{ token: i1.FormBuilder }, { token: i2.UtilService }, { token: i2.HttpWebRequestService }, { token: i2.SharedService }, { token: i2.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component });
289
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AddTicketComponent, selector: "app-add-ticket", inputs: { activeApp: "activeApp", activeTenant: "activeTenant", selectedTicket: "selectedTicket", isVisible: "isVisible", defaultCompany: "defaultCompany" }, outputs: { onOpen: "onOpen", onClose: "onClose", onSave: "onSave" }, usesOnChanges: true, ngImport: i0, template: "<verben-dialogue\n [showCloseIcon]=\"false\"\n [dismissOutsideClick]=\"false\"\n [closeOnEscape]=\"true\"\n [size]=\"'medium'\"\n [mode]=\"'dialogue'\"\n [customClass]=\"'ticket-dialog'\"\n [disableFooter]=\"true\"\n (openModal)=\"onModalOpen($event)\"\n [isVisible]=\"isVisible\"\n [bodyTemplate]=\"bodyTemplate\"\n (closeModal)=\"onModalClose($event)\"\n>\n <ng-template #bodyTemplate>\n <div class=\"dialog-body p-[25px] flex flex-col gap-4\">\n <div class=\"dialog-header flex flex-col gap-1\">\n <div class=\"dialog-title font-bold text-xl\">\n {{ this.selectedTicket ? \"Edit Ticket\" : \"Create Ticket\" }}\n </div>\n <div class=\"dialog-subtitle\">\n {{\n this.selectedTicket\n ? \"Fill the form below to edit selected ticket\"\n : \"Fill the form below to create a ticket\"\n }}\n </div>\n </div>\n <!-- <verbena-textarea name=\"Test\" [(ngModel)]=\"test\" />\n <button (click)=\"logTest()\">Log</button> -->\n <div\n [formGroup]=\"createTicketForm\"\n class=\"add-app-form main-form-container flex flex-col gap-2\"\n >\n <div class=\"form-input-container flex flex-col gap-1\">\n <div class=\"font-medium\">Title</div>\n <verbena-input\n name=\"Title\"\n placeHolder=\"Title\"\n formControlName=\"Title\"\n />\n </div>\n <div class=\"form-input-container flex flex-col gap-1\">\n <div class=\"font-medium\">Description</div>\n <verbena-input name=\"Description\" formControlName=\"Description\" />\n </div>\n <div\n *ngIf=\"this.selectedTicket\"\n class=\"form-input-container flex flex-col gap-1\"\n >\n <div class=\"font-medium\">Current Handler</div>\n <verbena-input\n name=\"CurrentHandler\"\n placeHolder=\"Current Handler\"\n formControlName=\"CurrentHandler\"\n />\n </div>\n <div\n *ngIf=\"this.selectedTicket\"\n class=\"form-input-container flex flex-col gap-1\"\n >\n <div class=\"font-medium\">Last Handler</div>\n <verbena-input\n name=\"LastHandler\"\n placeHolder=\"Last Handler\"\n formControlName=\"LastHandler\"\n />\n </div>\n <div class=\"form-input-container flex flex-col gap-1\">\n <div class=\"font-medium\">Priority</div>\n <verben-drop-down\n width=\"100%\"\n name=\"Priority\"\n placeholder=\"Select Priority\"\n [options]=\"priorityOptions\"\n optionLabel=\"Name\"\n optionValue=\"Code\"\n formControlName=\"Priority\"\n >\n </verben-drop-down>\n </div>\n <div class=\"form-input-container flex flex-col gap-1\">\n <div class=\"font-medium\">Status</div>\n <verben-drop-down\n width=\"100%\"\n name=\"Status\"\n [disabled]=\"true\"\n placeholder=\"Select Status\"\n [options]=\"statusOptions\"\n formControlName=\"Status\"\n >\n </verben-drop-down>\n </div>\n <div class=\"attachment-section p-2 flex flex-col gap-3\">\n <div class=\"attachments-container grid grid-cols-3 gap-2\">\n <ng-container *ngFor=\"let file of this.fileUrls\">\n <app-file-render [fileUrl]=\"file\"></app-file-render>\n </ng-container>\n </div>\n <div\n class=\"upload-section flex flex-col flex-1 items-center justify-center gap-2\"\n >\n <div class=\"flex justify-center\">\n <verbena-button\n [useIcon]=\"true\"\n [icon]=\"'upload'\"\n class=\"verben-secondary-button\"\n [text]=\"'Upload'\"\n (click)=\"triggerFileUpload()\"\n ></verbena-button>\n </div>\n <div class=\"upload-caption text-sm text-center\">\n Include Attachments\n </div>\n </div>\n </div>\n </div>\n <div class=\"dialog-button-container flex justify-end gap-2\">\n <verbena-button\n width=\"100%\"\n class=\"verben-secondary-button\"\n [text]=\"'Close'\"\n (click)=\"onModalClose($event)\"\n >\n </verbena-button>\n <verbena-button\n [disable]=\"!this.checkForm()\"\n width=\"100%\"\n class=\"verben-primary-button\"\n [text]=\"'Save'\"\n (click)=\"save()\"\n >\n </verbena-button>\n </div>\n </div>\n </ng-template>\n</verben-dialogue>\n", styles: [".attachment-section{border:1px solid #ccc6fbb2;border-radius:5px}::ng-deep .ticket-dialog{max-width:60vw}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "component", type: i4.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "component", type: i4.VerbenDialogueComponent, selector: "verben-dialogue", inputs: ["dialogueWidth", "headerTemplate", "bodyTemplate", "footerTemplate", "showCloseIcon", "dismissOutsideClick", "closeOnEscape", "isVisible", "size", "backdropColor", "customClass", "disableFooter", "margin", "padding", "borderRadius", "dialogueBgColor", "width", "closeIconClass", "boxShadow", "enableTransition", "modalData", "mode", "position", "drawerWidth"], outputs: ["openModal", "closeModal"] }, { kind: "component", type: i4.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "component", type: i5.FileRenderComponent, selector: "app-file-render", inputs: ["fileUrl"] }] });
290
+ }
291
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AddTicketComponent, decorators: [{
292
+ type: Component,
293
+ args: [{ selector: 'app-add-ticket', template: "<verben-dialogue\n [showCloseIcon]=\"false\"\n [dismissOutsideClick]=\"false\"\n [closeOnEscape]=\"true\"\n [size]=\"'medium'\"\n [mode]=\"'dialogue'\"\n [customClass]=\"'ticket-dialog'\"\n [disableFooter]=\"true\"\n (openModal)=\"onModalOpen($event)\"\n [isVisible]=\"isVisible\"\n [bodyTemplate]=\"bodyTemplate\"\n (closeModal)=\"onModalClose($event)\"\n>\n <ng-template #bodyTemplate>\n <div class=\"dialog-body p-[25px] flex flex-col gap-4\">\n <div class=\"dialog-header flex flex-col gap-1\">\n <div class=\"dialog-title font-bold text-xl\">\n {{ this.selectedTicket ? \"Edit Ticket\" : \"Create Ticket\" }}\n </div>\n <div class=\"dialog-subtitle\">\n {{\n this.selectedTicket\n ? \"Fill the form below to edit selected ticket\"\n : \"Fill the form below to create a ticket\"\n }}\n </div>\n </div>\n <!-- <verbena-textarea name=\"Test\" [(ngModel)]=\"test\" />\n <button (click)=\"logTest()\">Log</button> -->\n <div\n [formGroup]=\"createTicketForm\"\n class=\"add-app-form main-form-container flex flex-col gap-2\"\n >\n <div class=\"form-input-container flex flex-col gap-1\">\n <div class=\"font-medium\">Title</div>\n <verbena-input\n name=\"Title\"\n placeHolder=\"Title\"\n formControlName=\"Title\"\n />\n </div>\n <div class=\"form-input-container flex flex-col gap-1\">\n <div class=\"font-medium\">Description</div>\n <verbena-input name=\"Description\" formControlName=\"Description\" />\n </div>\n <div\n *ngIf=\"this.selectedTicket\"\n class=\"form-input-container flex flex-col gap-1\"\n >\n <div class=\"font-medium\">Current Handler</div>\n <verbena-input\n name=\"CurrentHandler\"\n placeHolder=\"Current Handler\"\n formControlName=\"CurrentHandler\"\n />\n </div>\n <div\n *ngIf=\"this.selectedTicket\"\n class=\"form-input-container flex flex-col gap-1\"\n >\n <div class=\"font-medium\">Last Handler</div>\n <verbena-input\n name=\"LastHandler\"\n placeHolder=\"Last Handler\"\n formControlName=\"LastHandler\"\n />\n </div>\n <div class=\"form-input-container flex flex-col gap-1\">\n <div class=\"font-medium\">Priority</div>\n <verben-drop-down\n width=\"100%\"\n name=\"Priority\"\n placeholder=\"Select Priority\"\n [options]=\"priorityOptions\"\n optionLabel=\"Name\"\n optionValue=\"Code\"\n formControlName=\"Priority\"\n >\n </verben-drop-down>\n </div>\n <div class=\"form-input-container flex flex-col gap-1\">\n <div class=\"font-medium\">Status</div>\n <verben-drop-down\n width=\"100%\"\n name=\"Status\"\n [disabled]=\"true\"\n placeholder=\"Select Status\"\n [options]=\"statusOptions\"\n formControlName=\"Status\"\n >\n </verben-drop-down>\n </div>\n <div class=\"attachment-section p-2 flex flex-col gap-3\">\n <div class=\"attachments-container grid grid-cols-3 gap-2\">\n <ng-container *ngFor=\"let file of this.fileUrls\">\n <app-file-render [fileUrl]=\"file\"></app-file-render>\n </ng-container>\n </div>\n <div\n class=\"upload-section flex flex-col flex-1 items-center justify-center gap-2\"\n >\n <div class=\"flex justify-center\">\n <verbena-button\n [useIcon]=\"true\"\n [icon]=\"'upload'\"\n class=\"verben-secondary-button\"\n [text]=\"'Upload'\"\n (click)=\"triggerFileUpload()\"\n ></verbena-button>\n </div>\n <div class=\"upload-caption text-sm text-center\">\n Include Attachments\n </div>\n </div>\n </div>\n </div>\n <div class=\"dialog-button-container flex justify-end gap-2\">\n <verbena-button\n width=\"100%\"\n class=\"verben-secondary-button\"\n [text]=\"'Close'\"\n (click)=\"onModalClose($event)\"\n >\n </verbena-button>\n <verbena-button\n [disable]=\"!this.checkForm()\"\n width=\"100%\"\n class=\"verben-primary-button\"\n [text]=\"'Save'\"\n (click)=\"save()\"\n >\n </verbena-button>\n </div>\n </div>\n </ng-template>\n</verben-dialogue>\n", styles: [".attachment-section{border:1px solid #ccc6fbb2;border-radius:5px}::ng-deep .ticket-dialog{max-width:60vw}\n"] }]
294
+ }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.UtilService }, { type: i2.HttpWebRequestService }, { type: i2.SharedService }, { type: i2.EnvironmentService }], propDecorators: { activeApp: [{
295
+ type: Input
296
+ }], activeTenant: [{
297
+ type: Input
298
+ }], selectedTicket: [{
299
+ type: Input
300
+ }], isVisible: [{
301
+ type: Input
302
+ }], onOpen: [{
303
+ type: Output
304
+ }], onClose: [{
305
+ type: Output
306
+ }], onSave: [{
307
+ type: Output
308
+ }], defaultCompany: [{
309
+ type: Input
310
+ }] } });
311
+
312
+ const appRoutes = [];
313
+ class AddTicketLibModule {
314
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AddTicketLibModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
315
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: AddTicketLibModule, declarations: [AddTicketComponent], imports: [CommonModule,
316
+ FormsModule,
317
+ ReactiveFormsModule,
318
+ DataTableModule,
319
+ SvgModule,
320
+ VerbenPopUpModule,
321
+ DataViewModule,
322
+ VerbenaButtonModule,
323
+ CardDataViewModule,
324
+ DropDownModule,
325
+ VerbenaSwitchModule,
326
+ TableFilterModule,
327
+ VisibleColumnModule,
328
+ SortTableModule,
329
+ DataExportModule,
330
+ TooltipModule,
331
+ VerbenDialogueModule,
332
+ VerbenaInputModule,
333
+ DataImportModule,
334
+ DataExportModule,
335
+ DataXportModule,
336
+ EllipseWordPipe,
337
+ FileRenderLibModule,
338
+ CompanyDatePipe, i1$1.RouterModule], exports: [AddTicketComponent] });
339
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AddTicketLibModule, imports: [CommonModule,
340
+ FormsModule,
341
+ ReactiveFormsModule,
342
+ DataTableModule,
343
+ SvgModule,
344
+ VerbenPopUpModule,
345
+ DataViewModule,
346
+ VerbenaButtonModule,
347
+ CardDataViewModule,
348
+ DropDownModule,
349
+ VerbenaSwitchModule,
350
+ TableFilterModule,
351
+ VisibleColumnModule,
352
+ SortTableModule,
353
+ DataExportModule,
354
+ TooltipModule,
355
+ VerbenDialogueModule,
356
+ VerbenaInputModule,
357
+ DataImportModule,
358
+ DataExportModule,
359
+ DataXportModule,
360
+ FileRenderLibModule,
361
+ RouterModule.forChild(appRoutes)] });
362
+ }
363
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AddTicketLibModule, decorators: [{
364
+ type: NgModule,
365
+ args: [{
366
+ declarations: [AddTicketComponent],
367
+ imports: [
368
+ CommonModule,
369
+ FormsModule,
370
+ ReactiveFormsModule,
371
+ DataTableModule,
372
+ SvgModule,
373
+ VerbenPopUpModule,
374
+ DataViewModule,
375
+ VerbenaButtonModule,
376
+ CardDataViewModule,
377
+ DropDownModule,
378
+ VerbenaSwitchModule,
379
+ TableFilterModule,
380
+ VisibleColumnModule,
381
+ SortTableModule,
382
+ DataExportModule,
383
+ TooltipModule,
384
+ VerbenDialogueModule,
385
+ VerbenaInputModule,
386
+ DataImportModule,
387
+ DataExportModule,
388
+ DataXportModule,
389
+ EllipseWordPipe,
390
+ FileRenderLibModule,
391
+ CompanyDatePipe,
392
+ RouterModule.forChild(appRoutes),
393
+ ],
394
+ exports: [AddTicketComponent],
395
+ }]
396
+ }] });
397
+
398
+ /**
399
+ * Generated bundle index. Do not edit.
400
+ */
401
+
402
+ export { AddTicketComponent, AddTicketLibModule, appRoutes };
403
+ //# sourceMappingURL=verben-ticketing-ui-src-lib-components-add-ticket.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verben-ticketing-ui-src-lib-components-add-ticket.mjs","sources":["../../../projects/verben-ticketing-ui/src/lib/components/add-ticket/add-ticket.component.ts","../../../projects/verben-ticketing-ui/src/lib/components/add-ticket/add-ticket.component.html","../../../projects/verben-ticketing-ui/src/lib/components/add-ticket/add-ticket.module.ts","../../../projects/verben-ticketing-ui/src/lib/components/add-ticket/verben-ticketing-ui-src-lib-components-add-ticket.ts"],"sourcesContent":["import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { Application } from 'verben-ticketing-ui/src/lib/models';\nimport { Tenant } from 'verben-ticketing-ui/src/lib/models';\nimport { ErrorResponse } from 'verben-ticketing-ui/src/lib/models';\nimport { ObjectState } from 'verben-ticketing-ui/src/lib/models';\nimport { Ticket } from 'verben-ticketing-ui/src/lib/models';\nimport { TicketStatus } from 'verben-ticketing-ui/src/lib/models';\nimport {\n UtilService as AppUtilService,\n EnvironmentService,\n} from 'verben-ticketing-ui/src/lib/services';\nimport { HttpWebRequestService } from 'verben-ticketing-ui/src/lib/services';\n\nimport { TenantPriority } from 'verben-ticketing-ui/src/lib/models';\nimport { TicketMessage } from 'verben-ticketing-ui/src/lib/models';\nimport { DEFAULT_MESSAGE_FOR_INITIAL_UPLOAD } from 'verben-ticketing-ui/src/lib/constants';\nimport { File } from 'verben-ticketing-ui/src/lib/models';\nimport { SharedService } from 'verben-ticketing-ui/src/lib/services';\n\n@Component({\n selector: 'app-add-ticket',\n templateUrl: './add-ticket.component.html',\n styleUrl: './add-ticket.component.css',\n})\nexport class AddTicketComponent {\n // test: string = '';\n // logTest() {\n // console.log({ Test: this.test });\n // }\n createTicketForm: FormGroup;\n @Input() activeApp: string | null = null;\n @Input() activeTenant: string | null = null;\n @Input() selectedTicket: Ticket | null = null;\n @Input() isVisible: boolean = false;\n @Output() onOpen: EventEmitter<Event> = new EventEmitter();\n @Output() onClose: EventEmitter<Event> = new EventEmitter();\n @Output() onSave: EventEmitter<Ticket> = new EventEmitter();\n\n priorityOptions: TenantPriority[] = [];\n statusOptions: string[] = Object.keys(TicketStatus);\n fileData: File[] = [];\n fileUrls: string[] = [];\n //attachedMessage: TicketMessage | null = null;\n maxFileSize = 15 * 1024 * 1024;\n @Input() defaultCompany: string = '';\n\n constructor(\n private fb: FormBuilder,\n private utilService: AppUtilService,\n private server: HttpWebRequestService,\n private sharedService: SharedService,\n private envSvc: EnvironmentService,\n ) {\n this.createTicketForm = this.fb.group({\n Title: new FormControl<string | null>(null, Validators.required),\n Description: new FormControl<string | null>(null, Validators.required),\n CurrentHandler: new FormControl<string | null>({\n value: null,\n disabled: true,\n }),\n LastHandler: new FormControl<string | null>({\n value: null,\n disabled: true,\n }),\n Priority: new FormControl<string | null>(null, Validators.required),\n Status: new FormControl<TicketStatus>(\n { value: TicketStatus.Pending, disabled: true },\n Validators.required,\n ),\n });\n\n // this.createTicketForm.controls['CurrentHandler'].disable();\n // this.createTicketForm.controls['LastHandler'].disable();\n }\n\n ngOnInit(): void {}\n\n async ngOnChanges(changes: SimpleChanges): Promise<void> {\n if (changes['selectedTicket'] && this.selectedTicket) {\n this.createTicketForm.patchValue({\n Title: this.selectedTicket.Title,\n Description: this.selectedTicket.Description,\n CurrentHandler: this.selectedTicket.CurrentHandler,\n LastHandler: this.selectedTicket.LastHandler,\n Priority: this.selectedTicket.Priority,\n Status: this.selectedTicket.Status,\n });\n this.fileUrls = [...this.selectedTicket.FileUrls];\n this.fileData = [];\n } else {\n this.createTicketForm.patchValue({\n Title: null,\n Description: null,\n CurrentHandler: null,\n LastHandler: null,\n Priority: null,\n Status: TicketStatus.Pending,\n });\n this.fileUrls = [];\n this.fileData = [];\n }\n\n if (changes['activeTenant'] && this.activeTenant) {\n const options = await this.sharedService.getAllPrioritiesForTenant(\n this.activeTenant,\n );\n if (options) {\n this.priorityOptions = options.Result;\n }\n console.log({ Changed: this.priorityOptions });\n } else if (changes['activeTenant'] && !this.activeTenant) {\n this.priorityOptions = [];\n // console.log({ Tenant: this.activeTenant, Reset: this.priorityOptions });\n }\n }\n\n checkForm(): boolean {\n if (this.createTicketForm.valid == true) {\n return true;\n }\n return false;\n }\n\n onModalOpen(event: any) {\n this.onOpen.emit();\n }\n\n onModalClose(event: any) {\n this.onClose.emit(event);\n }\n\n // filterMessage(message: TicketMessage): TicketMessage {\n // return {\n // ...message,\n // AttachmentUrls: message.AttachmentUrls.filter(\n // (x) => x.split('/').length > 1\n // ),\n // };\n // }\n\n async save() {\n if (!this.activeApp) {\n return;\n }\n if (!this.activeTenant) {\n return;\n }\n // if (this.selectedTicket && this.attachedMessage) {\n // if (idx > -1) {\n // this.selectedTicket.Messages[idx] = this.filterMessage(\n // this.attachedMessage\n // );\n // } else {\n // if (this.attachedMessage.Attachments.length > 0) {\n // this.selectedTicket.Messages.unshift(\n // this.filterMessage(this.attachedMessage)\n // );\n // }\n // }\n // }\n\n const item: Ticket = {\n Title: this.createTicketForm.controls['Title'].value,\n Description: this.createTicketForm.controls['Description'].value,\n CurrentHandler: this.selectedTicket\n ? this.selectedTicket.CurrentHandler\n : undefined,\n LastHandler: this.selectedTicket\n ? this.selectedTicket.LastHandler\n : undefined,\n Priority: this.createTicketForm.controls['Priority'].value,\n App: this.activeApp,\n id: '',\n Status: this.createTicketForm.controls['Status'].value,\n Company: this.defaultCompany,\n Messages: this.selectedTicket ? this.selectedTicket.Messages : [],\n FileData: this.fileData,\n FileUrls: this.selectedTicket ? this.selectedTicket.FileUrls : [],\n Id: '',\n ExecutionTime: this.selectedTicket\n ? this.selectedTicket.ExecutionTime\n : undefined,\n Code: this.selectedTicket ? this.selectedTicket.Code : '',\n TenantId: this.selectedTicket\n ? this.selectedTicket.TenantId\n : this.activeTenant,\n ServiceName: this.selectedTicket ? this.selectedTicket.ServiceName : '',\n CreatedAt: this.selectedTicket\n ? this.selectedTicket.CreatedAt\n : new Date(),\n UpdatedAt: new Date(),\n DataState: this.selectedTicket ? ObjectState.Changed : ObjectState.New,\n };\n\n if (item.Description.trim().length == 0) {\n this.utilService.showInfo('Description cannot be empty');\n return;\n }\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `Ticket/SaveTicket`,\n [item],\n this.envSvc.environment.TicketingAPI,\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n } else {\n this.utilService.showSuccess('Ticket saved successfully');\n const result = res as Ticket[];\n if (result.length > 0) {\n var resultItem = result[0];\n this.onSave.emit(resultItem);\n }\n }\n\n this.onClose.emit();\n }\n\n generateSixDigitNumber(): number {\n return Math.floor(100000 + Math.random() * 900000);\n }\n\n getTicketMessage(): TicketMessage {\n if (this.selectedTicket) {\n const initialMessage = this.selectedTicket.Messages.find(\n (x) => x.Subject == DEFAULT_MESSAGE_FOR_INITIAL_UPLOAD,\n );\n if (initialMessage) {\n return { ...initialMessage, DataState: ObjectState.Changed };\n } else {\n const newMessage: TicketMessage = {\n TicketCode: '',\n Subject: DEFAULT_MESSAGE_FOR_INITIAL_UPLOAD,\n Content: '',\n Attachments: [],\n AttachmentUrls: [],\n Company: this.defaultCompany,\n Id: '',\n Code: '',\n TenantId: '',\n id: '',\n ServiceName: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n };\n return newMessage;\n }\n } else {\n const newMessage: TicketMessage = {\n TicketCode: '',\n Subject: DEFAULT_MESSAGE_FOR_INITIAL_UPLOAD,\n Content: '',\n Attachments: [],\n AttachmentUrls: [],\n Company: this.defaultCompany,\n Id: '',\n id: '',\n Code: '',\n TenantId: '',\n ServiceName: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n };\n return newMessage;\n }\n }\n\n triggerFileUpload(): void {\n const fileInput: HTMLInputElement = document.createElement('input');\n fileInput.type = 'file';\n fileInput.accept = '.png, .jpg, .jpeg, .pdf';\n fileInput.style.display = 'none'; // Hidden file input\n document.body.appendChild(fileInput); // Temporarily add to DOM\n\n fileInput.addEventListener('change', () => {\n const file = fileInput.files?.[0];\n if (file) {\n this.processFile(file);\n }\n document.body.removeChild(fileInput); // Clean up after use\n });\n\n fileInput.click(); // Programmatically trigger click\n }\n\n private async processFile(selectedFile: globalThis.File): Promise<void> {\n // Check file size\n if (selectedFile.size > this.maxFileSize) {\n const limitInMB = this.maxFileSize / 1024 / 1024;\n this.utilService.showInfo(`File size limit of ${limitInMB}mb exceeded`);\n return;\n }\n\n // let fileToProcess: globalThis.File | null = selectedFile;\n // const safeNumber: number = 1 * 1024 * 1024;\n // if (fileToProcess.size > safeNumber) {\n // fileToProcess = await this.utilService.compressImage(selectedFile);\n // if (!fileToProcess) {\n // this.utilService.showError('Error compressing image');\n // return;\n // }\n // }\n\n // Read file and convert to base64\n const reader = new FileReader();\n reader.readAsDataURL(selectedFile);\n reader.onload = () => {\n const base64data = reader.result as string;\n const file = this.sharedService.createCustomFile(\n base64data,\n 0,\n selectedFile,\n );\n if (file) {\n this.fileData.push(file);\n this.fileUrls.push(`${file.Name}`);\n // this.profileImage = base64data;\n }\n };\n }\n}\n","<verben-dialogue\n [showCloseIcon]=\"false\"\n [dismissOutsideClick]=\"false\"\n [closeOnEscape]=\"true\"\n [size]=\"'medium'\"\n [mode]=\"'dialogue'\"\n [customClass]=\"'ticket-dialog'\"\n [disableFooter]=\"true\"\n (openModal)=\"onModalOpen($event)\"\n [isVisible]=\"isVisible\"\n [bodyTemplate]=\"bodyTemplate\"\n (closeModal)=\"onModalClose($event)\"\n>\n <ng-template #bodyTemplate>\n <div class=\"dialog-body p-[25px] flex flex-col gap-4\">\n <div class=\"dialog-header flex flex-col gap-1\">\n <div class=\"dialog-title font-bold text-xl\">\n {{ this.selectedTicket ? \"Edit Ticket\" : \"Create Ticket\" }}\n </div>\n <div class=\"dialog-subtitle\">\n {{\n this.selectedTicket\n ? \"Fill the form below to edit selected ticket\"\n : \"Fill the form below to create a ticket\"\n }}\n </div>\n </div>\n <!-- <verbena-textarea name=\"Test\" [(ngModel)]=\"test\" />\n <button (click)=\"logTest()\">Log</button> -->\n <div\n [formGroup]=\"createTicketForm\"\n class=\"add-app-form main-form-container flex flex-col gap-2\"\n >\n <div class=\"form-input-container flex flex-col gap-1\">\n <div class=\"font-medium\">Title</div>\n <verbena-input\n name=\"Title\"\n placeHolder=\"Title\"\n formControlName=\"Title\"\n />\n </div>\n <div class=\"form-input-container flex flex-col gap-1\">\n <div class=\"font-medium\">Description</div>\n <verbena-input name=\"Description\" formControlName=\"Description\" />\n </div>\n <div\n *ngIf=\"this.selectedTicket\"\n class=\"form-input-container flex flex-col gap-1\"\n >\n <div class=\"font-medium\">Current Handler</div>\n <verbena-input\n name=\"CurrentHandler\"\n placeHolder=\"Current Handler\"\n formControlName=\"CurrentHandler\"\n />\n </div>\n <div\n *ngIf=\"this.selectedTicket\"\n class=\"form-input-container flex flex-col gap-1\"\n >\n <div class=\"font-medium\">Last Handler</div>\n <verbena-input\n name=\"LastHandler\"\n placeHolder=\"Last Handler\"\n formControlName=\"LastHandler\"\n />\n </div>\n <div class=\"form-input-container flex flex-col gap-1\">\n <div class=\"font-medium\">Priority</div>\n <verben-drop-down\n width=\"100%\"\n name=\"Priority\"\n placeholder=\"Select Priority\"\n [options]=\"priorityOptions\"\n optionLabel=\"Name\"\n optionValue=\"Code\"\n formControlName=\"Priority\"\n >\n </verben-drop-down>\n </div>\n <div class=\"form-input-container flex flex-col gap-1\">\n <div class=\"font-medium\">Status</div>\n <verben-drop-down\n width=\"100%\"\n name=\"Status\"\n [disabled]=\"true\"\n placeholder=\"Select Status\"\n [options]=\"statusOptions\"\n formControlName=\"Status\"\n >\n </verben-drop-down>\n </div>\n <div class=\"attachment-section p-2 flex flex-col gap-3\">\n <div class=\"attachments-container grid grid-cols-3 gap-2\">\n <ng-container *ngFor=\"let file of this.fileUrls\">\n <app-file-render [fileUrl]=\"file\"></app-file-render>\n </ng-container>\n </div>\n <div\n class=\"upload-section flex flex-col flex-1 items-center justify-center gap-2\"\n >\n <div class=\"flex justify-center\">\n <verbena-button\n [useIcon]=\"true\"\n [icon]=\"'upload'\"\n class=\"verben-secondary-button\"\n [text]=\"'Upload'\"\n (click)=\"triggerFileUpload()\"\n ></verbena-button>\n </div>\n <div class=\"upload-caption text-sm text-center\">\n Include Attachments\n </div>\n </div>\n </div>\n </div>\n <div class=\"dialog-button-container flex justify-end gap-2\">\n <verbena-button\n width=\"100%\"\n class=\"verben-secondary-button\"\n [text]=\"'Close'\"\n (click)=\"onModalClose($event)\"\n >\n </verbena-button>\n <verbena-button\n [disable]=\"!this.checkForm()\"\n width=\"100%\"\n class=\"verben-primary-button\"\n [text]=\"'Save'\"\n (click)=\"save()\"\n >\n </verbena-button>\n </div>\n </div>\n </ng-template>\n</verben-dialogue>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport {\n CardDataViewModule,\n DataExportModule,\n DataTableModule,\n DataViewModule,\n DropDownModule,\n SortTableModule,\n SvgModule,\n TableFilterModule,\n TooltipModule,\n VerbenaButtonModule,\n VerbenaInputModule,\n VerbenaSwitchModule,\n VerbenDialogueModule,\n VerbenPopUpModule,\n VisibleColumnModule,\n DataImportModule,\n DataXportModule,\n} from 'verben-ng-ui';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { CompanyDatePipe } from 'verben-ticketing-ui/src/lib/pipes';\nimport { EllipseWordPipe } from 'verben-ticketing-ui/src/lib/pipes';\nimport { AddTicketComponent } from './add-ticket.component';\nimport { FileRenderLibModule } from 'verben-ticketing-ui/src/lib/components/file-render';\nexport const appRoutes: Routes = [];\n@NgModule({\n declarations: [AddTicketComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DataTableModule,\n SvgModule,\n VerbenPopUpModule,\n DataViewModule,\n VerbenaButtonModule,\n CardDataViewModule,\n DropDownModule,\n VerbenaSwitchModule,\n TableFilterModule,\n VisibleColumnModule,\n SortTableModule,\n DataExportModule,\n TooltipModule,\n VerbenDialogueModule,\n VerbenaInputModule,\n DataImportModule,\n DataExportModule,\n DataXportModule,\n EllipseWordPipe,\n FileRenderLibModule,\n CompanyDatePipe,\n RouterModule.forChild(appRoutes),\n ],\n exports: [AddTicketComponent],\n})\nexport class AddTicketLibModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, Input, NgModule } from '@angular/core';
3
+ import * as i1 from 'verben-ticketing-ui/src/lib/services';
4
+ import * as i2 from 'verben-ng-ui';
5
+ import { DataTableModule, SvgModule, VerbenPopUpModule, DataViewModule, VerbenaButtonModule, CardDataViewModule, DropDownModule, VerbenaSwitchModule, TableFilterModule, VisibleColumnModule, SortTableModule, DataExportModule, TooltipModule, VerbenDialogueModule, VerbenaInputModule, DataImportModule, DataXportModule } from 'verben-ng-ui';
6
+ import { CommonModule } from '@angular/common';
7
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
8
+ import * as i1$1 from '@angular/router';
9
+ import { RouterModule } from '@angular/router';
10
+ import { EllipseWordPipe, CompanyDatePipe } from 'verben-ticketing-ui/src/lib/pipes';
11
+
12
+ class FileRenderComponent {
13
+ utilService;
14
+ envSvc;
15
+ fileUrl = null;
16
+ fileName = null;
17
+ constructor(utilService, envSvc) {
18
+ this.utilService = utilService;
19
+ this.envSvc = envSvc;
20
+ }
21
+ ngOnInit() {
22
+ if (this.fileUrl) {
23
+ this.fileName = this.fileUrl.split('/').pop() || null;
24
+ }
25
+ }
26
+ openFile() {
27
+ if (!this.fileUrl) {
28
+ return;
29
+ }
30
+ this.utilService.openFullRouteInNewWindow(`${this.envSvc.environment.FILE_BASE_URL}${this.fileUrl}`);
31
+ }
32
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FileRenderComponent, deps: [{ token: i1.UtilService }, { token: i1.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component });
33
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FileRenderComponent, selector: "app-file-render", inputs: { fileUrl: "fileUrl" }, ngImport: i0, template: "<div class=\"file-container p-2 flex items-center justify-between gap-3\">\n <div class=\"text-sm overflow-x-auto font-semibold\">{{ fileName }}</div>\n <span (click)=\"openFile()\" class=\"cursor-pointer\">\n <verben-svg\n [icon]=\"'download-icon'\"\n [width]=\"20\"\n [height]=\"20\"\n ></verben-svg>\n </span>\n</div>\n", styles: [".file-container{border:1px solid #ccc6fbb2;border-radius:5px}\n"], dependencies: [{ kind: "component", type: i2.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }] });
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FileRenderComponent, decorators: [{
36
+ type: Component,
37
+ args: [{ selector: 'app-file-render', template: "<div class=\"file-container p-2 flex items-center justify-between gap-3\">\n <div class=\"text-sm overflow-x-auto font-semibold\">{{ fileName }}</div>\n <span (click)=\"openFile()\" class=\"cursor-pointer\">\n <verben-svg\n [icon]=\"'download-icon'\"\n [width]=\"20\"\n [height]=\"20\"\n ></verben-svg>\n </span>\n</div>\n", styles: [".file-container{border:1px solid #ccc6fbb2;border-radius:5px}\n"] }]
38
+ }], ctorParameters: () => [{ type: i1.UtilService }, { type: i1.EnvironmentService }], propDecorators: { fileUrl: [{
39
+ type: Input
40
+ }] } });
41
+
42
+ const appRoutes = [];
43
+ class FileRenderLibModule {
44
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FileRenderLibModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
45
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: FileRenderLibModule, declarations: [FileRenderComponent], imports: [CommonModule,
46
+ FormsModule,
47
+ ReactiveFormsModule,
48
+ DataTableModule,
49
+ SvgModule,
50
+ VerbenPopUpModule,
51
+ DataViewModule,
52
+ VerbenaButtonModule,
53
+ CardDataViewModule,
54
+ DropDownModule,
55
+ VerbenaSwitchModule,
56
+ TableFilterModule,
57
+ VisibleColumnModule,
58
+ SortTableModule,
59
+ DataExportModule,
60
+ TooltipModule,
61
+ VerbenDialogueModule,
62
+ VerbenaInputModule,
63
+ DataImportModule,
64
+ DataExportModule,
65
+ DataXportModule,
66
+ EllipseWordPipe,
67
+ CompanyDatePipe, i1$1.RouterModule], exports: [FileRenderComponent] });
68
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FileRenderLibModule, imports: [CommonModule,
69
+ FormsModule,
70
+ ReactiveFormsModule,
71
+ DataTableModule,
72
+ SvgModule,
73
+ VerbenPopUpModule,
74
+ DataViewModule,
75
+ VerbenaButtonModule,
76
+ CardDataViewModule,
77
+ DropDownModule,
78
+ VerbenaSwitchModule,
79
+ TableFilterModule,
80
+ VisibleColumnModule,
81
+ SortTableModule,
82
+ DataExportModule,
83
+ TooltipModule,
84
+ VerbenDialogueModule,
85
+ VerbenaInputModule,
86
+ DataImportModule,
87
+ DataExportModule,
88
+ DataXportModule,
89
+ RouterModule.forChild(appRoutes)] });
90
+ }
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FileRenderLibModule, decorators: [{
92
+ type: NgModule,
93
+ args: [{
94
+ declarations: [FileRenderComponent],
95
+ imports: [
96
+ CommonModule,
97
+ FormsModule,
98
+ ReactiveFormsModule,
99
+ DataTableModule,
100
+ SvgModule,
101
+ VerbenPopUpModule,
102
+ DataViewModule,
103
+ VerbenaButtonModule,
104
+ CardDataViewModule,
105
+ DropDownModule,
106
+ VerbenaSwitchModule,
107
+ TableFilterModule,
108
+ VisibleColumnModule,
109
+ SortTableModule,
110
+ DataExportModule,
111
+ TooltipModule,
112
+ VerbenDialogueModule,
113
+ VerbenaInputModule,
114
+ DataImportModule,
115
+ DataExportModule,
116
+ DataXportModule,
117
+ EllipseWordPipe,
118
+ CompanyDatePipe,
119
+ RouterModule.forChild(appRoutes),
120
+ ],
121
+ exports: [FileRenderComponent],
122
+ }]
123
+ }] });
124
+
125
+ /**
126
+ * Generated bundle index. Do not edit.
127
+ */
128
+
129
+ export { FileRenderComponent, FileRenderLibModule, appRoutes };
130
+ //# sourceMappingURL=verben-ticketing-ui-src-lib-components-file-render.mjs.map