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 @@
1
+ {"version":3,"file":"verben-ticketing-ui-src-lib-services.mjs","sources":["../../../projects/verben-ticketing-ui/src/lib/services/environment.service.ts","../../../projects/verben-ticketing-ui/src/lib/services/http-web-request.service.ts","../../../projects/verben-ticketing-ui/src/lib/services/util.service.ts","../../../projects/verben-ticketing-ui/src/lib/services/import.service.ts","../../../projects/verben-ticketing-ui/src/lib/services/label.service.ts","../../../projects/verben-ticketing-ui/src/lib/services/shared.service.ts","../../../projects/verben-ticketing-ui/src/lib/services/company-settings.service.ts","../../../projects/verben-ticketing-ui/src/lib/services/verben-ticketing-ui-src-lib-services.ts"],"sourcesContent":["// In your library's services/environment.service.ts\nimport { Injectable, InjectionToken, Inject } from '@angular/core';\n// import { ENVIRONMENT } from '../models/ENVIRONMENT_TOKEN';\n\nexport const ENVIRONMENT = new InjectionToken<Environment>('environment');\n\nexport interface Environment {\n production: boolean;\n GLAPI: string;\n AuthenticationAPI: string;\n TicketingAPI: string;\n Tenant: string;\n APIKey: string;\n Secret: string;\n FILE_BASE_URL: string;\n WorkFlowAPI: string;\n Token?: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EnvironmentService {\n constructor(@Inject(ENVIRONMENT) private env: Environment) {}\n\n get environment(): Environment {\n return this.env;\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ErrorResponse } from 'verben-ticketing-ui/src/lib/models';\nimport { EnvironmentService } from './environment.service';\nimport { NotificationService } from 'verben-ng-ui';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HttpWebRequestService {\n isProd: boolean;\n\n constructor(\n private http: HttpClient,\n private envSvc: EnvironmentService,\n private notificationService: NotificationService,\n ) {\n this.isProd = this.envSvc.environment.production;\n }\n\n private buildHeaders(): { [header: string]: string | string[] } {\n const customToken = this.envSvc.environment.Token;\n console.log({ CustomerToken: customToken });\n return customToken\n ? {\n 'Content-Type': 'application/json',\n 'X-Custom-Auth': customToken,\n Authorization: customToken,\n }\n : {\n 'Content-Type': 'application/json',\n Authorization:\n 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJNYWlsQWRkcmVzcyI6InZlcmJlbmFAZ21haWwuY29tIiwiQXBwbGljYXRpb24iOiIiLCJOYW1lIjoiVmVyYmVuYSBMb2dpYyBMaW1pdGVkIiwiUm9sZXMiOiIiLCJUZW5hbnRJZCI6IlBETFRDNiIsIlNlcnZpY2VOYW1lIjoiV2hpdGUzNjAiLCJuYmYiOjE3MzYxNjM1OTYsImV4cCI6MTczNjM3OTU5NiwiaWF0IjoxNzM2MTYzNTk2fQ.q5ErmDIP0NwKKRlVeb9_EfmrEfd8gsFzkNNszkTeTg4',\n };\n }\n\n private buildUrl(url: string, baseUrl: string): string {\n return `${baseUrl}/${url}`;\n }\n\n private handleError(err: any): ErrorResponse {\n const msg =\n err?.ErrorMsg ||\n (err?.errors?.values as string[])?.toString() ||\n `Error occurred`;\n this.notificationService.error(msg, { timeout: 10000 });\n return new ErrorResponse(msg);\n }\n\n private request<T>(\n method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'POST_NO_ERROR',\n url: string,\n body?: any,\n baseUrl: string = this.envSvc.environment.AuthenticationAPI,\n ): Promise<T> | Observable<T> {\n const options = {\n headers: this.buildHeaders(),\n };\n\n const requestUrl = this.buildUrl(url, baseUrl);\n\n switch (method) {\n case 'GET':\n return new Promise((resolve) =>\n this.http.get<T>(requestUrl, options).subscribe({\n next: resolve,\n error: (err) => resolve(this.handleError(err) as T),\n }),\n );\n case 'POST':\n return new Promise((resolve) =>\n this.http.post<T>(requestUrl, body, options).subscribe({\n next: resolve,\n error: (err) => resolve(this.handleError(err) as T),\n }),\n );\n case 'POST_NO_ERROR':\n return new Promise((resolve) =>\n this.http.post<T>(requestUrl, body, options).subscribe({\n next: resolve,\n }),\n );\n case 'PUT':\n return this.http.put<T>(requestUrl, body, options);\n case 'DELETE':\n return this.http.delete<T>(requestUrl, options);\n }\n }\n\n get<T>(url: string, baseUrl?: string): Promise<T> {\n return this.request('GET', url, undefined, baseUrl) as Promise<T>;\n }\n\n post<T>(url: string, body: any, baseUrl?: string): Promise<T> {\n return this.request(\n 'POST',\n url,\n JSON.stringify(body),\n baseUrl,\n ) as Promise<T>;\n }\n\n postNoError<T>(url: string, body: any, baseUrl?: string): Promise<T> {\n return this.request(\n 'POST_NO_ERROR',\n url,\n JSON.stringify(body),\n baseUrl,\n ) as Promise<T>;\n }\n\n postFile<T>(url: string, formData: FormData, baseUrl?: string): Promise<T> {\n return new Promise((resolve) =>\n this.http\n .post<T>(\n this.buildUrl(\n url,\n baseUrl || this.envSvc.environment.AuthenticationAPI,\n ),\n formData,\n )\n .subscribe({\n next: resolve,\n error: (err) => resolve(this.handleError(err) as T),\n }),\n );\n }\n\n put<T>(url: string, body: any, baseUrl?: string): Observable<T> {\n return this.request('PUT', url, body, baseUrl) as Observable<T>;\n }\n\n delete<T>(url: string, baseUrl?: string): Observable<T> {\n return this.request('DELETE', url, undefined, baseUrl) as Observable<T>;\n }\n}\n","import {\n Inject,\n Injectable,\n InjectionToken,\n Optional,\n SkipSelf,\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { UTIL_SERVICE } from 'verben-ng-ui';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UtilService {\n constructor(\n @Optional()\n @Inject(UTIL_SERVICE)\n private parentUtilService: any,\n private route:Router\n ) {}\n\n sendBI(state: boolean): void {\n if (this.parentUtilService && this.parentUtilService.sendBI) {\n this.parentUtilService.sendBI(state);\n } else {\n console.warn('Util Service is not provided');\n }\n }\n\n showInfo(message: string): void {\n if (this.parentUtilService && this.parentUtilService.showInfo) {\n this.parentUtilService.showInfo(message);\n } else {\n console.warn('Util Service is not provided');\n }\n }\n showSuccess(message: string): void {\n if (this.parentUtilService && this.parentUtilService.showSuccess) {\n this.parentUtilService.showSuccess(message);\n } else {\n console.warn('Util Service is not provided');\n }\n }\ngoToPage(page: string, extra?: any) {\n if (extra && typeof extra === 'object') {\n this.route.navigate([`/${page}`], { queryParams: extra });\n return;\n }\n\n if (extra) {\n this.route.navigate([`/${page}`, extra]);\n return;\n }\n\n this.route.navigate([`/${page}`]);\n}\n\n openFullRouteInNewWindow(url: string): void {\n window.open(url, '_blank');\n }\n showError(message: string): void {\n if (this.parentUtilService && this.parentUtilService.showError) {\n this.parentUtilService.showError(message);\n } else {\n console.warn('Util Service is not provided');\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ObjectState , ErrorResponse, PagedResult, BaseModel} from 'verben-ticketing-ui/src/lib/models';\nimport { HttpWebRequestService } from './http-web-request.service';\nimport { UtilService } from './util.service';\n\n\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImportService<T extends BaseModel> {\n constructor(\n private utilService:UtilService,\n private server: HttpWebRequestService //private cdr: ChangeDetectorRef\n ) {}\n\n // onComplete(\n // event: any[],\n // defaults: T,\n // endpoint: string | null,\n // baseUrl: string,\n // dataRef: T[],\n // cardDataRef: CardData[],\n // pagedState: PagedResult<T> | null = null,\n // stringProps: (keyof T)[] = []\n // ) {\n // const normalized = event.map((raw) => {\n // const def = defaults;\n // let merged: T = {\n // ...def,\n // ...raw,\n // Code: raw.Code ? String(raw.Code) : '',\n // };\n\n // stringProps.forEach((key) => {\n // const value = raw[key];\n // merged[key] = value != null ? String(value) : ('' as any);\n // });\n // const dateProps: (keyof T)[] = ['CreatedAt', 'UpdatedAt'];\n // dateProps.forEach((key) => {\n // const val = merged[key];\n\n // let dateObj: Date;\n\n // if (val instanceof Date) {\n // dateObj = val;\n // } else if (typeof val === 'number') {\n // dateObj = this.excelSerialToDate(val);\n // } else if (typeof val === 'string') {\n // dateObj = new Date(val);\n // } else {\n // dateObj = new Date();\n // }\n // if (isNaN(dateObj.getTime())) {\n // dateObj = new Date();\n // }\n // merged[key] = dateObj.toISOString() as any;\n // });\n\n // return merged;\n // });\n\n // if (normalized && normalized.length > 0) {\n // this.saveImportedDataBatch(\n // normalized,\n // endpoint,\n // baseUrl,\n // dataRef,\n // cardDataRef,\n // pagedState\n // );\n // }\n // }\n\n // async saveImportedDataBatch(\n // items: T[],\n // endpoint: string | null,\n // baseUrl: string,\n // dataRef: T[],\n // cardDataRef: CardData[],\n // pagedState: PagedResult<T> | null = null\n // ) {\n // if (!items?.length) return;\n\n // const preparedItems = items.map((item) => ({\n // ...item,\n // DataState: ObjectState.New,\n // Id: '',\n // }));\n\n // if (!endpoint) {\n // preparedItems.forEach((srv, idx) => {\n // const newItem = {\n // ...srv,\n // Id: dataRef.length.toString(),\n // id: dataRef.length.toString(),\n // };\n\n // const cardData: CardData = {\n // selected: false,\n // title: newItem.Id.toString(),\n // data: newItem,\n // body: [],\n // children: [],\n // };\n\n // dataRef.push(newItem);\n // cardDataRef.push(cardData);\n // if (pagedState) {\n // pagedState.Skip += 1;\n // }\n // });\n // return;\n // }\n\n // this.utilService.sendBI(true);\n // const res = await this.server.post(endpoint, preparedItems, baseUrl);\n // this.utilService.sendBI(false);\n\n // if (res instanceof ErrorResponse) {\n // return;\n // } else {\n // this.utilService.showSuccess('Operation Account saved successfully');\n // const result = res as T[];\n\n // result.forEach((srv, idx) => {\n // const newItem = {\n // ...srv,\n // Id: srv.Code,\n // id: srv.Code,\n // };\n\n // const cardData: CardData = {\n // selected: false,\n // title: newItem.Id.toString(),\n // data: newItem,\n // body: [],\n // children: [],\n // };\n\n // dataRef.push(newItem);\n // // this.cdr.detectChanges();\n // cardDataRef.push(cardData);\n // if (pagedState) {\n // pagedState.Skip += 1;\n // }\n // });\n // }\n // }\n onComplete(\n event: any[],\n defaults: T,\n endpoint: string | null,\n baseUrl: string,\n entity: string,\n updateCallback: (items: T[]) => void,\n pagedState: PagedResult<T> | null = null,\n stringProps: (keyof T)[] = [],\n numberProps: (keyof T)[] = [],\n datePropsExtras: (keyof T)[] = []\n ) {\n const normalized = event.map((raw) => {\n const def = defaults;\n let merged: T = {\n ...def,\n ...raw,\n Code: raw.Code ? String(raw.Code) : '',\n };\n\n stringProps.forEach((key) => {\n const value = raw[key];\n merged[key] = value != null ? String(value) : ('' as any);\n });\n\n numberProps.forEach((key) => {\n const value = raw[key];\n\n if (typeof value === 'string') {\n // Only parse if it's a valid number\n const num = value === '' || isNaN(Number(value)) ? 0 : Number(value);\n merged[key] = num as any;\n } else {\n merged[key] = value;\n }\n });\n\n const dateProps: (keyof T)[] = (\n ['CreatedAt', 'UpdatedAt'] as (keyof T)[]\n ).concat(datePropsExtras);\n dateProps.forEach((key) => {\n const val = merged[key];\n\n let dateObj: Date;\n\n if (val instanceof Date) {\n dateObj = val;\n } else if (typeof val === 'number') {\n dateObj = this.excelSerialToDate(val);\n } else if (typeof val === 'string') {\n dateObj = new Date(val);\n } else {\n dateObj = new Date();\n }\n if (isNaN(dateObj.getTime())) {\n dateObj = new Date();\n }\n merged[key] = dateObj as any;\n });\n\n return merged;\n });\n\n if (normalized && normalized.length > 0) {\n this.saveImportedDataBatch(\n normalized,\n endpoint,\n baseUrl,\n entity,\n updateCallback,\n pagedState\n );\n }\n }\n\n async saveImportedDataBatch(\n items: T[],\n endpoint: string | null,\n baseUrl: string,\n entity: string,\n updateCallback: (items: T[]) => void,\n pagedState: PagedResult<T> | null = null\n ) {\n if (!items?.length) return;\n\n const preparedItems = items.map((item) => ({\n ...item,\n DataState: ObjectState.New,\n Id: '',\n }));\n\n if (!endpoint) {\n preparedItems.forEach((srv, idx) => {\n srv.Id = `UPLOAD ${idx}`;\n // srv.id = `UPLOAD ${idx}`;\n });\n updateCallback(preparedItems);\n\n if (pagedState) {\n pagedState.Skip += preparedItems.length;\n }\n\n return;\n }\n\n this.utilService.sendBI(true);\n const res = await this.server.post(endpoint, preparedItems, baseUrl);\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n return;\n } else {\n this.utilService.showSuccess(`${entity} upload successful`);\n const result = res as T[];\n\n result.forEach((srv, idx) => {\n srv.Id = srv.Code;\n // srv.id = srv.Code;\n // const newItem = {\n // ...srv,\n // Id: srv.Code,\n // id: srv.Code,\n // };\n\n // const cardData: CardData = {\n // selected: false,\n // title: newItem.Id.toString(),\n // data: newItem,\n // body: [],\n // children: [],\n // };\n });\n\n updateCallback(result);\n\n if (pagedState) {\n pagedState.Skip += result.length;\n }\n }\n }\n\n excelSerialToDate(serial: number): Date {\n 1;\n const excelEpoch = new Date(Date.UTC(1899, 11, 30));\n const millisPerDay = 24 * 60 * 60 * 1000;\n\n return new Date(excelEpoch.getTime() + serial * millisPerDay);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { UtilService as AppUtilService } from './util.service';\nimport { HttpWebRequestService } from './http-web-request.service';\nimport { SearchOperator , SearchDynamicWrapper, SearchPropertySign, ErrorResponse, PagedResult,KeyValueParam, CacheDataRequest} from 'verben-ticketing-ui/src/lib/models';\nimport { Observable, of } from 'rxjs';\n\ntype BatchedRequest = {\n codes: Set<string>;\n resolvers: Map<string, Array<(label: string) => void>>;\n rejectors: Map<string, Array<(error: any) => void>>;\n timer: any;\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LabelService {\n private cache = new Map<string, string>();\n private inFlightRequests = new Map<string, Promise<string>>();\n private batchedRequests = new Map<string, BatchedRequest>();\n private tempStore = new Map<string, KeyValueParam[]>();\n private batchingDelay = 50; // Sliding debounce delay in ms\n private cacheInProgress = new Map<string, Promise<void>>();\n constructor(\n private utilService: AppUtilService,\n private server: HttpWebRequestService\n ) {}\n\n async getAsyncLabel(\n value: any,\n entity: string,\n labelProp: string,\n env: string,\n key: string = 'Code'\n ): Promise<string> {\n const cacheKey = `${entity}_${labelProp}_${value}_${env}_${key}`;\n\n if (this.cache.has(cacheKey)) {\n const value = this.cache.get(cacheKey)!;\n return value;\n }\n\n var payload: SearchDynamicWrapper = {\n Fields: [labelProp],\n SearchKeyValues: [\n {\n PropertyName: key,\n EntityValue: value,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n },\n ],\n };\n\n this.utilService.sendBI(true);\n const res = await this.server.postNoError(\n `SearchDynamic${entity}/0/1`,\n payload,\n env\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return value;\n } else {\n const result = (res as PagedResult<string>).Result;\n const label = result.length > 0 ? result[0] : value;\n this.cache.set(cacheKey, label);\n return label;\n }\n }\n\n async getAsyncLabelWithRequestTracking(\n value: any,\n entity: string,\n labelProp: string,\n env: string,\n key: string = 'Code'\n ): Promise<string> {\n const cacheKey = `${entity}_${labelProp}_${value}_${env}_${key}`;\n\n if (this.cache.has(cacheKey)) {\n return this.cache.get(cacheKey)!;\n }\n\n if (this.inFlightRequests.has(cacheKey)) {\n return this.inFlightRequests.get(cacheKey)!;\n }\n\n const requestPromise = (async () => {\n const payload: SearchDynamicWrapper = {\n Fields: [labelProp],\n SearchKeyValues: [\n {\n PropertyName: key,\n EntityValue: value,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n },\n ],\n };\n\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `SearchDynamic${entity}/0/1`,\n payload,\n env\n );\n this.utilService.sendBI(false);\n\n let label: string;\n if (res instanceof ErrorResponse) {\n label = '';\n } else {\n const result = (res as PagedResult<string>).Result;\n label = result.length > 0 ? result[0] : value;\n }\n\n this.cache.set(cacheKey, label);\n this.inFlightRequests.delete(cacheKey);\n\n return label;\n })();\n\n // Save the in-flight request\n this.inFlightRequests.set(cacheKey, requestPromise);\n\n return requestPromise;\n }\n\n async getAsyncLabelWithRequestTrackingNoGateway(\n value: any,\n entity: string,\n labelProp: string,\n env: string,\n controller: string,\n key: string = 'Code'\n ): Promise<string> {\n const cacheKey = `${entity}_${labelProp}_${value}_${env}_${key}_${controller}`;\n\n if (this.cache.has(cacheKey)) {\n return this.cache.get(cacheKey)!;\n }\n\n if (this.inFlightRequests.has(cacheKey)) {\n return this.inFlightRequests.get(cacheKey)!;\n }\n\n const requestPromise = (async () => {\n const payload: SearchDynamicWrapper = {\n Fields: [labelProp],\n SearchKeyValues: [\n {\n PropertyName: key,\n EntityValue: value,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n },\n ],\n };\n\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `${controller}/SearchDynamic${entity}s/0/1`,\n payload,\n env\n );\n this.utilService.sendBI(false);\n\n let label: string;\n if (res instanceof ErrorResponse) {\n label = '';\n } else {\n const result = (res as PagedResult<string>).Result;\n label = result.length > 0 ? result[0] : value;\n }\n\n this.cache.set(cacheKey, label);\n this.inFlightRequests.delete(cacheKey);\n\n return label;\n })();\n\n // Save the in-flight request\n this.inFlightRequests.set(cacheKey, requestPromise);\n\n return requestPromise;\n }\n\n async getAsyncLabelWithBatching(\n value: any,\n entity: string,\n labelProp: string,\n env: string,\n key: string = 'Code'\n ): Promise<string> {\n const batchKey = `${entity}_${labelProp}_${env}_${key}`;\n const cacheKey = `${batchKey}_${value}`;\n\n if (this.cacheInProgress.has(batchKey)) {\n await this.cacheInProgress.get(batchKey);\n }\n // Return from cache if available\n if (this.cache.has(cacheKey)) {\n return this.cache.get(cacheKey)!;\n }\n\n const store = this.tempStore.get(batchKey);\n if (store) {\n const item = store.find((x) => x.Key == value);\n if (item) {\n return item.Value;\n } else {\n return value;\n }\n }\n\n return new Promise((resolve, reject) => {\n let batch = this.batchedRequests.get(batchKey);\n\n if (!batch) {\n batch = {\n codes: new Set(),\n resolvers: new Map(),\n rejectors: new Map(),\n timer: null,\n };\n this.batchedRequests.set(batchKey, batch);\n }\n\n // Add current request to batch\n batch.codes.add(value);\n if (!batch.resolvers.has(value)) {\n batch.resolvers.set(value, []);\n batch.rejectors.set(value, []);\n }\n batch.resolvers.get(value)!.push(resolve);\n batch.rejectors.get(value)!.push(reject);\n\n // Reset debounce timer\n if (batch.timer) clearTimeout(batch.timer);\n batch.timer = setTimeout(\n async () => await this.flushBatch(batchKey),\n this.batchingDelay\n );\n });\n }\n\n private async flushBatch(batchKey: string) {\n const batch = this.batchedRequests.get(batchKey);\n if (!batch) return;\n\n this.batchedRequests.delete(batchKey);\n\n const [entity, labelProp, env, key] = batchKey.split('_');\n const values = Array.from(batch.codes);\n\n const payload: SearchDynamicWrapper = {\n Fields: [key, labelProp],\n SearchKeyValues: values.map((val) => ({\n PropertyName: key,\n EntityValue: val,\n Operator: SearchOperator.Or,\n Sign: SearchPropertySign.EQ,\n })),\n };\n\n payload.SearchKeyValues.push({\n PropertyName: 'TenantId',\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.NEQ,\n });\n\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `SearchDynamic${entity}/0/0`,\n payload,\n env\n );\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n for (const val of values) {\n const resolvers = batch.resolvers.get(val) || [];\n resolvers.forEach((r) => r(val));\n }\n return;\n }\n\n const resultArray = (res as PagedResult<any>).Result;\n\n const labelMap = new Map<string, string>();\n resultArray.forEach((item: any) => {\n labelMap.set(item[key], item[labelProp]);\n });\n\n for (const val of values) {\n const label = labelMap.get(val) ?? val;\n const cacheKey = `${batchKey}_${val}`;\n this.cache.set(cacheKey, label);\n\n const resolvers = batch.resolvers.get(val) || [];\n resolvers.forEach((r) => r(label));\n }\n }\n\n async cacheData(items: CacheDataRequest[]) {\n for (let item of items) {\n const batchKey = `${item.Entity}_${item.LabelProp}_${item.Environment}_${item.Key}`;\n\n // Signal this batchKey is in progress\n const inProgress = this._cacheSingleBatch(item, batchKey);\n this.cacheInProgress.set(batchKey, inProgress);\n\n await inProgress;\n this.cacheInProgress.delete(batchKey);\n }\n }\n\n private async _cacheSingleBatch(\n item: CacheDataRequest,\n batchKey: string\n ): Promise<void> {\n if (item.Values.length == 0) {\n return;\n }\n const payload: SearchDynamicWrapper = {\n Fields: [item.Key, item.LabelProp],\n SearchKeyValues: item.Values.map((val) => ({\n PropertyName: item.Key,\n EntityValue: val,\n Operator: SearchOperator.Or,\n Sign: SearchPropertySign.EQ,\n })),\n };\n\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `SearchDynamic${item.Entity}/0/0`,\n payload,\n item.Environment\n );\n this.utilService.sendBI(false);\n\n if (!(res instanceof ErrorResponse)) {\n const resultArray = (res as PagedResult<any>).Result;\n const keyValues: KeyValueParam[] = resultArray.map((x: any) => ({\n Key: x[item.Key],\n Value: x[item.LabelProp],\n }));\n this.tempStore.set(batchKey, keyValues);\n }\n }\n\n // async cacheData(items: CacheDataRequest[]) {\n // for(let item of items) {\n // const batchKey = `${item.Entity}_${item.LabelProp}_${item.Environment}_${item.Key}`;\n // const payload: SearchDynamicWrapper = {\n // Fields: [item.Key, item.LabelProp],\n // SearchKeyValues: item.Values.map((val) => ({\n // PropertyName: item.Key,\n // EntityValue: val,\n // Operator: SearchOperator.Or,\n // Sign: SearchPropertySign.EQ,\n // })),\n // };\n\n // this.utilService.sendBI(true);\n // const res = await this.server.post(\n // `SearchDynamic${item.Entity}/0/0`,\n // payload,\n // item.Environment\n // );\n // this.utilService.sendBI(false);\n\n // if (res instanceof ErrorResponse) {\n\n // } else {\n // const resultArray = (res as PagedResult<any>).Result;\n // const keyValues: KeyValueParam[] = [];\n // resultArray.forEach((x: any) => {\n // var keyValue: KeyValueParam = {\n // Key: x[item.Key],\n // Value: x[item.LabelProp]\n // }\n // keyValues.push(keyValue);\n // })\n // this.tempStore.set(batchKey, keyValues);\n // }\n // }\n // }\n}\n","import { Injectable } from '@angular/core';\nimport { DEFAULT_PAGE_SIZE } from 'verben-ticketing-ui/src/lib/constants';\nimport {\n ErrorResponse,\n File,\n PagedResult,\n SearchOperator,\n SearchPropertySign,\n SearchPropertyValue,\n TenantPriority,\n} from 'verben-ticketing-ui/src/lib/models';\nimport { ObjectState } from 'verben-ticketing-ui/src/lib/models';\nimport { UtilService } from './util.service';\nimport { HttpWebRequestService } from './http-web-request.service';\nimport { EnvironmentService } from './environment.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SharedService {\n pageSize: number = DEFAULT_PAGE_SIZE;\n\n constructor(\n private utilService: UtilService,\n private server: HttpWebRequestService,\n private envSvc: EnvironmentService,\n ) {}\n\n createCustomFile(\n base64data: string,\n index: number,\n file: globalThis.File,\n ): File | null {\n const extension = file.name.split('.').pop();\n const customFile: File = {\n Extension: extension,\n Name: file.name,\n Data: base64data,\n DataState: ObjectState.New,\n };\n\n return customFile;\n }\n\n async getAllPrioritiesForTenant(\n tenant: string,\n ): Promise<PagedResult<TenantPriority> | undefined> {\n const payload: SearchPropertyValue[] = [\n {\n PropertyName: 'TenantId',\n EntityValue: tenant,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n },\n ];\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `Ticket/SearchTenantPriority/0/0`,\n payload,\n this.envSvc.environment.TicketingAPI,\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return;\n } else {\n var result = res as PagedResult<TenantPriority>;\n return result;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Company } from 'verben-ticketing-ui/src/lib/models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CompanySettingsService {\n locale: string = 'en-US';\n numberDP: number = 2;\n dateFormat: string = 'M/d/yyyy';\n baseCurrency: string = 'NGN';\n\n setSettings(data: Company) {\n this.locale = data.LocaleCode || 'en-US';\n this.numberDP = data.NumberDP ?? 2;\n this.dateFormat = data.DateFormat || 'M/d/yyyy';\n this.baseCurrency = data.BaseCurrency;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.EnvironmentService","i1","i1.UtilService","i2.HttpWebRequestService","i3.EnvironmentService"],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ import * as i0 from '@angular/core';
2
+ import { signal, computed, Component, ViewChild } from '@angular/core';
3
+ import { DataFilterType } from 'verben-ng-ui';
4
+
5
+ class BaseDataViewComponent {
6
+ cardDataView;
7
+ dataView;
8
+ // Signals for reactive data management
9
+ data = signal([]);
10
+ cardData = computed(() => this.data().map(this.config.cardDataMapper));
11
+ // View state management
12
+ currentData = null;
13
+ isGridView = true;
14
+ selected = null;
15
+ // Filtering and sorting state
16
+ visibleColumns = [];
17
+ filterArray = [];
18
+ sortOptions = [];
19
+ selectedColumnCount = 0;
20
+ selectedFilterTableCount = 0;
21
+ selectedSortCount = 0;
22
+ constructor() {
23
+ this.initializeConfig();
24
+ }
25
+ ngOnInit() {
26
+ this.loadInitialData();
27
+ }
28
+ // To be implemented by child classes if needed
29
+ loadInitialData() {
30
+ // Default implementation can be overridden
31
+ this.data.set(this.config.dataSource);
32
+ }
33
+ initializeConfig() {
34
+ // Initialize filter and column configurations
35
+ this.visibleColumns = this.config.columns.map((col) => ({
36
+ checked: true,
37
+ name: typeof col.header === 'string' ? col.header : col.id,
38
+ type: DataFilterType.Bool,
39
+ }));
40
+ this.filterArray = this.config.filterOptions || [];
41
+ this.sortOptions = this.config.sortOptions || [];
42
+ }
43
+ // Generic view and interaction methods
44
+ openDetailView(identifier) {
45
+ const cardItem = this.getCardDataByIdentifier(identifier);
46
+ if (cardItem && this.cardDataView) {
47
+ this.resetSelections();
48
+ cardItem.selected = true;
49
+ this.currentData = this.cardDataView.onItemClick(cardItem);
50
+ this.dataView.toggleView();
51
+ }
52
+ }
53
+ resetSelections() {
54
+ this.cardData().forEach((item) => {
55
+ item.selected = false;
56
+ item.children?.forEach((child) => (child.selected = false));
57
+ });
58
+ }
59
+ // Common utility methods
60
+ downloadCSV(data) {
61
+ const headers = Object.keys(data[0]);
62
+ const csvContent = [
63
+ headers.join(','),
64
+ ...data.map((row) => headers.map((header) => row[header]).join(',')),
65
+ ].join('\n');
66
+ const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });
67
+ const link = document.createElement('a');
68
+ if (link.download !== undefined) {
69
+ const url = URL.createObjectURL(blob);
70
+ link.setAttribute('href', url);
71
+ link.setAttribute('download', 'export.csv');
72
+ link.style.visibility = 'hidden';
73
+ document.body.appendChild(link);
74
+ link.click();
75
+ document.body.removeChild(link);
76
+ }
77
+ }
78
+ // Event handlers
79
+ onViewChange(isGridView) {
80
+ this.isGridView = isGridView;
81
+ if (this.currentData) {
82
+ this.cardDataView?.clearData();
83
+ this.currentData = null;
84
+ }
85
+ }
86
+ onColumnsUpdated(updatedColumns) {
87
+ // Update visible columns logic
88
+ this.selectedColumnCount = updatedColumns.length;
89
+ // Additional column update logic can be added here
90
+ }
91
+ onSortUpdated(updatedSorts) {
92
+ this.selectedSortCount = updatedSorts.length;
93
+ }
94
+ onSelectionChange(selectedRows) {
95
+ //console.log('Selection changed:', selectedRows);
96
+ }
97
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaseDataViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
98
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: BaseDataViewComponent, selector: "ng-component", viewQueries: [{ propertyName: "cardDataView", first: true, predicate: ["vdcv"], descendants: true }, { propertyName: "dataView", first: true, predicate: ["vdv"], descendants: true }], ngImport: i0, template: '', isInline: true });
99
+ }
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaseDataViewComponent, decorators: [{
101
+ type: Component,
102
+ args: [{
103
+ template: '',
104
+ }]
105
+ }], ctorParameters: () => [], propDecorators: { cardDataView: [{
106
+ type: ViewChild,
107
+ args: ['vdcv']
108
+ }], dataView: [{
109
+ type: ViewChild,
110
+ args: ['vdv']
111
+ }] } });
112
+
113
+ /**
114
+ * Generated bundle index. Do not edit.
115
+ */
116
+
117
+ export { BaseDataViewComponent };
118
+ //# sourceMappingURL=verben-ticketing-ui-src-utils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verben-ticketing-ui-src-utils.mjs","sources":["../../../projects/verben-ticketing-ui/src/utils/components/base-data-view.component.ts","../../../projects/verben-ticketing-ui/src/utils/verben-ticketing-ui-src-utils.ts"],"sourcesContent":["import { Component, computed, OnInit, signal, ViewChild } from '@angular/core';\nimport {\n CardData,\n CardDataViewComponent,\n DataFilterType,\n DataViewComponent,\n IDataFilter,\n} from 'verben-ng-ui';\nimport { DataViewConfig } from '../models/DataViewConfig';\n\n@Component({\n template: '',\n})\nexport abstract class BaseDataViewComponent<T> implements OnInit {\n @ViewChild('vdcv') cardDataView!: CardDataViewComponent;\n @ViewChild('vdv') dataView!: DataViewComponent;\n\n // Configurable properties\n abstract config: DataViewConfig<T>;\n\n // Signals for reactive data management\n data = signal<T[]>([]);\n cardData = computed(() => this.data().map(this.config.cardDataMapper));\n\n // View state management\n currentData: CardData | null = null;\n isGridView = true;\n selected: CardData | null = null;\n\n // Filtering and sorting state\n visibleColumns: IDataFilter[] = [];\n filterArray: IDataFilter[] = [];\n sortOptions: IDataFilter[] = [];\n\n selectedColumnCount = 0;\n selectedFilterTableCount = 0;\n selectedSortCount = 0;\n\n constructor() {\n this.initializeConfig();\n }\n\n ngOnInit() {\n this.loadInitialData();\n }\n\n // To be implemented by child classes if needed\n protected loadInitialData() {\n // Default implementation can be overridden\n this.data.set(this.config.dataSource);\n }\n\n private initializeConfig() {\n // Initialize filter and column configurations\n this.visibleColumns = this.config.columns.map((col) => ({\n checked: true,\n name: typeof col.header === 'string' ? col.header : col.id,\n type: DataFilterType.Bool,\n }));\n\n this.filterArray = this.config.filterOptions || [];\n this.sortOptions = this.config.sortOptions || [];\n }\n\n // Generic view and interaction methods\n openDetailView(identifier: any) {\n const cardItem = this.getCardDataByIdentifier(identifier);\n if (cardItem && this.cardDataView) {\n this.resetSelections();\n cardItem.selected = true;\n this.currentData = this.cardDataView.onItemClick(cardItem);\n this.dataView.toggleView();\n }\n }\n\n private resetSelections() {\n this.cardData().forEach((item) => {\n item.selected = false;\n item.children?.forEach((child) => (child.selected = false));\n });\n }\n\n // Abstract method to find card data - to be implemented by child\n protected abstract getCardDataByIdentifier(\n identifier: any\n ): CardData | undefined;\n\n // Common utility methods\n downloadCSV(data: Partial<any>[]) {\n const headers = Object.keys(data[0]);\n const csvContent = [\n headers.join(','),\n ...data.map((row) => headers.map((header) => row[header]).join(',')),\n ].join('\\n');\n\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n const link = document.createElement('a');\n if (link.download !== undefined) {\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', 'export.csv');\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n\n // Event handlers\n onViewChange(isGridView: boolean): void {\n this.isGridView = isGridView;\n if (this.currentData) {\n this.cardDataView?.clearData();\n this.currentData = null;\n }\n }\n\n onColumnsUpdated(updatedColumns: IDataFilter[]) {\n // Update visible columns logic\n this.selectedColumnCount = updatedColumns.length;\n // Additional column update logic can be added here\n }\n\n onSortUpdated(updatedSorts: IDataFilter[]) {\n this.selectedSortCount = updatedSorts.length;\n }\n\n onSelectionChange(selectedRows: T[]) {\n //console.log('Selection changed:', selectedRows);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export * from 'verben-ticketing-ui/src/lib/models';
2
+ export * from 'verben-ticketing-ui/src/lib/services';
3
+ export * from 'verben-ticketing-ui/src/lib/components/ticketing-detail';
4
+ export * from 'verben-ticketing-ui/src/lib/components/ticketing';
5
+
6
+ /*
7
+ * Public API Surface of verben-ticketing-ui
8
+ */
9
+ // Exporting modules
10
+
11
+ /**
12
+ * Generated bundle index. Do not edit.
13
+ */
14
+ //# sourceMappingURL=verben-ticketing-ui.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verben-ticketing-ui.mjs","sources":["../../../projects/verben-ticketing-ui/src/public-api.ts","../../../projects/verben-ticketing-ui/src/verben-ticketing-ui.ts"],"sourcesContent":["/*\n * Public API Surface of verben-ticketing-ui\n */\n\n// Exporting modules\nexport * from 'verben-ticketing-ui/src/lib/models';\nexport * from 'verben-ticketing-ui/src/lib/services';\nexport * from 'verben-ticketing-ui/src/lib/components/ticketing-detail';\nexport * from 'verben-ticketing-ui/src/lib/components/ticketing';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAAA;;AAEG;AAEH;;ACJA;;AAEG"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="verben-ticketing-ui" />
5
+ export * from './public-api';
package/package.json ADDED
@@ -0,0 +1,82 @@
1
+ {
2
+ "name": "verben-ticketing-ui",
3
+ "version": "0.6.0",
4
+ "peerDependencies": {
5
+ "@angular/common": "^14.0.0 || ^18.0.0",
6
+ "@angular/core": "^14.0.0 || ^18.0.0",
7
+ "@angular/cdk": "^18.2.0",
8
+ "verben-ng-ui": "^1.2.44",
9
+ "@ctrl/ngx-emoji-mart": "^9.3.0"
10
+ },
11
+ "dependencies": {
12
+ "tslib": "^2.3.0"
13
+ },
14
+ "sideEffects": false,
15
+ "module": "fesm2022/verben-ticketing-ui.mjs",
16
+ "typings": "index.d.ts",
17
+ "exports": {
18
+ "./package.json": {
19
+ "default": "./package.json"
20
+ },
21
+ ".": {
22
+ "types": "./index.d.ts",
23
+ "esm2022": "./esm2022/verben-ticketing-ui.mjs",
24
+ "esm": "./esm2022/verben-ticketing-ui.mjs",
25
+ "default": "./fesm2022/verben-ticketing-ui.mjs"
26
+ },
27
+ "./src/utils": {
28
+ "types": "./src/utils/index.d.ts",
29
+ "esm2022": "./esm2022/src/utils/verben-ticketing-ui-src-utils.mjs",
30
+ "esm": "./esm2022/src/utils/verben-ticketing-ui-src-utils.mjs",
31
+ "default": "./fesm2022/verben-ticketing-ui-src-utils.mjs"
32
+ },
33
+ "./src/lib/constants": {
34
+ "types": "./src/lib/constants/index.d.ts",
35
+ "esm2022": "./esm2022/src/lib/constants/verben-ticketing-ui-src-lib-constants.mjs",
36
+ "esm": "./esm2022/src/lib/constants/verben-ticketing-ui-src-lib-constants.mjs",
37
+ "default": "./fesm2022/verben-ticketing-ui-src-lib-constants.mjs"
38
+ },
39
+ "./src/lib/pipes": {
40
+ "types": "./src/lib/pipes/index.d.ts",
41
+ "esm2022": "./esm2022/src/lib/pipes/verben-ticketing-ui-src-lib-pipes.mjs",
42
+ "esm": "./esm2022/src/lib/pipes/verben-ticketing-ui-src-lib-pipes.mjs",
43
+ "default": "./fesm2022/verben-ticketing-ui-src-lib-pipes.mjs"
44
+ },
45
+ "./src/lib/models": {
46
+ "types": "./src/lib/models/index.d.ts",
47
+ "esm2022": "./esm2022/src/lib/models/verben-ticketing-ui-src-lib-models.mjs",
48
+ "esm": "./esm2022/src/lib/models/verben-ticketing-ui-src-lib-models.mjs",
49
+ "default": "./fesm2022/verben-ticketing-ui-src-lib-models.mjs"
50
+ },
51
+ "./src/lib/services": {
52
+ "types": "./src/lib/services/index.d.ts",
53
+ "esm2022": "./esm2022/src/lib/services/verben-ticketing-ui-src-lib-services.mjs",
54
+ "esm": "./esm2022/src/lib/services/verben-ticketing-ui-src-lib-services.mjs",
55
+ "default": "./fesm2022/verben-ticketing-ui-src-lib-services.mjs"
56
+ },
57
+ "./src/lib/components/add-ticket": {
58
+ "types": "./src/lib/components/add-ticket/index.d.ts",
59
+ "esm2022": "./esm2022/src/lib/components/add-ticket/verben-ticketing-ui-src-lib-components-add-ticket.mjs",
60
+ "esm": "./esm2022/src/lib/components/add-ticket/verben-ticketing-ui-src-lib-components-add-ticket.mjs",
61
+ "default": "./fesm2022/verben-ticketing-ui-src-lib-components-add-ticket.mjs"
62
+ },
63
+ "./src/lib/components/ticketing": {
64
+ "types": "./src/lib/components/ticketing/index.d.ts",
65
+ "esm2022": "./esm2022/src/lib/components/ticketing/verben-ticketing-ui-src-lib-components-ticketing.mjs",
66
+ "esm": "./esm2022/src/lib/components/ticketing/verben-ticketing-ui-src-lib-components-ticketing.mjs",
67
+ "default": "./fesm2022/verben-ticketing-ui-src-lib-components-ticketing.mjs"
68
+ },
69
+ "./src/lib/components/file-render": {
70
+ "types": "./src/lib/components/file-render/index.d.ts",
71
+ "esm2022": "./esm2022/src/lib/components/file-render/verben-ticketing-ui-src-lib-components-file-render.mjs",
72
+ "esm": "./esm2022/src/lib/components/file-render/verben-ticketing-ui-src-lib-components-file-render.mjs",
73
+ "default": "./fesm2022/verben-ticketing-ui-src-lib-components-file-render.mjs"
74
+ },
75
+ "./src/lib/components/ticketing-detail": {
76
+ "types": "./src/lib/components/ticketing-detail/index.d.ts",
77
+ "esm2022": "./esm2022/src/lib/components/ticketing-detail/verben-ticketing-ui-src-lib-components-ticketing-detail.mjs",
78
+ "esm": "./esm2022/src/lib/components/ticketing-detail/verben-ticketing-ui-src-lib-components-ticketing-detail.mjs",
79
+ "default": "./fesm2022/verben-ticketing-ui-src-lib-components-ticketing-detail.mjs"
80
+ }
81
+ }
82
+ }
@@ -0,0 +1,4 @@
1
+ export * from 'verben-ticketing-ui/src/lib/models';
2
+ export * from 'verben-ticketing-ui/src/lib/services';
3
+ export * from 'verben-ticketing-ui/src/lib/components/ticketing-detail';
4
+ export * from 'verben-ticketing-ui/src/lib/components/ticketing';
@@ -0,0 +1,44 @@
1
+ import { EventEmitter, SimpleChanges } from '@angular/core';
2
+ import { FormBuilder, FormGroup } from '@angular/forms';
3
+ import { Ticket } from 'verben-ticketing-ui/src/lib/models';
4
+ import { UtilService as AppUtilService, EnvironmentService } from 'verben-ticketing-ui/src/lib/services';
5
+ import { HttpWebRequestService } from 'verben-ticketing-ui/src/lib/services';
6
+ import { TenantPriority } from 'verben-ticketing-ui/src/lib/models';
7
+ import { TicketMessage } from 'verben-ticketing-ui/src/lib/models';
8
+ import { File } from 'verben-ticketing-ui/src/lib/models';
9
+ import { SharedService } from 'verben-ticketing-ui/src/lib/services';
10
+ import * as i0 from "@angular/core";
11
+ export declare class AddTicketComponent {
12
+ private fb;
13
+ private utilService;
14
+ private server;
15
+ private sharedService;
16
+ private envSvc;
17
+ createTicketForm: FormGroup;
18
+ activeApp: string | null;
19
+ activeTenant: string | null;
20
+ selectedTicket: Ticket | null;
21
+ isVisible: boolean;
22
+ onOpen: EventEmitter<Event>;
23
+ onClose: EventEmitter<Event>;
24
+ onSave: EventEmitter<Ticket>;
25
+ priorityOptions: TenantPriority[];
26
+ statusOptions: string[];
27
+ fileData: File[];
28
+ fileUrls: string[];
29
+ maxFileSize: number;
30
+ defaultCompany: string;
31
+ constructor(fb: FormBuilder, utilService: AppUtilService, server: HttpWebRequestService, sharedService: SharedService, envSvc: EnvironmentService);
32
+ ngOnInit(): void;
33
+ ngOnChanges(changes: SimpleChanges): Promise<void>;
34
+ checkForm(): boolean;
35
+ onModalOpen(event: any): void;
36
+ onModalClose(event: any): void;
37
+ save(): Promise<void>;
38
+ generateSixDigitNumber(): number;
39
+ getTicketMessage(): TicketMessage;
40
+ triggerFileUpload(): void;
41
+ private processFile;
42
+ static ɵfac: i0.ɵɵFactoryDeclaration<AddTicketComponent, never>;
43
+ static ɵcmp: i0.ɵɵComponentDeclaration<AddTicketComponent, "app-add-ticket", never, { "activeApp": { "alias": "activeApp"; "required": false; }; "activeTenant": { "alias": "activeTenant"; "required": false; }; "selectedTicket": { "alias": "selectedTicket"; "required": false; }; "isVisible": { "alias": "isVisible"; "required": false; }; "defaultCompany": { "alias": "defaultCompany"; "required": false; }; }, { "onOpen": "onOpen"; "onClose": "onClose"; "onSave": "onSave"; }, never, never, false, never>;
44
+ }
@@ -0,0 +1,15 @@
1
+ import { Routes } from '@angular/router';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./add-ticket.component";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/forms";
6
+ import * as i4 from "verben-ng-ui";
7
+ import * as i5 from "verben-ticketing-ui/src/lib/pipes";
8
+ import * as i6 from "verben-ticketing-ui/src/lib/components/file-render";
9
+ import * as i7 from "@angular/router";
10
+ export declare const appRoutes: Routes;
11
+ export declare class AddTicketLibModule {
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<AddTicketLibModule, never>;
13
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AddTicketLibModule, [typeof i1.AddTicketComponent], [typeof i2.CommonModule, typeof i3.FormsModule, typeof i3.ReactiveFormsModule, typeof i4.DataTableModule, typeof i4.SvgModule, typeof i4.VerbenPopUpModule, typeof i4.DataViewModule, typeof i4.VerbenaButtonModule, typeof i4.CardDataViewModule, typeof i4.DropDownModule, typeof i4.VerbenaSwitchModule, typeof i4.TableFilterModule, typeof i4.VisibleColumnModule, typeof i4.SortTableModule, typeof i4.DataExportModule, typeof i4.TooltipModule, typeof i4.VerbenDialogueModule, typeof i4.VerbenaInputModule, typeof i4.DataImportModule, typeof i4.DataExportModule, typeof i4.DataXportModule, typeof i5.EllipseWordPipe, typeof i6.FileRenderLibModule, typeof i5.CompanyDatePipe, typeof i7.RouterModule], [typeof i1.AddTicketComponent]>;
14
+ static ɵinj: i0.ɵɵInjectorDeclaration<AddTicketLibModule>;
15
+ }
@@ -0,0 +1 @@
1
+ export * from './public-api';
@@ -0,0 +1,2 @@
1
+ export * from './add-ticket.component';
2
+ export * from './add-ticket.module';
@@ -0,0 +1,14 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { UtilService, EnvironmentService } from 'verben-ticketing-ui/src/lib/services';
3
+ import * as i0 from "@angular/core";
4
+ export declare class FileRenderComponent implements OnInit {
5
+ private utilService;
6
+ private envSvc;
7
+ fileUrl: string | null;
8
+ fileName: string | null;
9
+ constructor(utilService: UtilService, envSvc: EnvironmentService);
10
+ ngOnInit(): void;
11
+ openFile(): void;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<FileRenderComponent, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<FileRenderComponent, "app-file-render", never, { "fileUrl": { "alias": "fileUrl"; "required": false; }; }, {}, never, never, false, never>;
14
+ }
@@ -0,0 +1,14 @@
1
+ import { Routes } from '@angular/router';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./file-render.component";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/forms";
6
+ import * as i4 from "verben-ng-ui";
7
+ import * as i5 from "verben-ticketing-ui/src/lib/pipes";
8
+ import * as i6 from "@angular/router";
9
+ export declare const appRoutes: Routes;
10
+ export declare class FileRenderLibModule {
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<FileRenderLibModule, never>;
12
+ static ɵmod: i0.ɵɵNgModuleDeclaration<FileRenderLibModule, [typeof i1.FileRenderComponent], [typeof i2.CommonModule, typeof i3.FormsModule, typeof i3.ReactiveFormsModule, typeof i4.DataTableModule, typeof i4.SvgModule, typeof i4.VerbenPopUpModule, typeof i4.DataViewModule, typeof i4.VerbenaButtonModule, typeof i4.CardDataViewModule, typeof i4.DropDownModule, typeof i4.VerbenaSwitchModule, typeof i4.TableFilterModule, typeof i4.VisibleColumnModule, typeof i4.SortTableModule, typeof i4.DataExportModule, typeof i4.TooltipModule, typeof i4.VerbenDialogueModule, typeof i4.VerbenaInputModule, typeof i4.DataImportModule, typeof i4.DataExportModule, typeof i4.DataXportModule, typeof i5.EllipseWordPipe, typeof i5.CompanyDatePipe, typeof i6.RouterModule], [typeof i1.FileRenderComponent]>;
13
+ static ɵinj: i0.ɵɵInjectorDeclaration<FileRenderLibModule>;
14
+ }
@@ -0,0 +1 @@
1
+ export * from './public-api';
@@ -0,0 +1,2 @@
1
+ export * from './file-render.component';
2
+ export * from './file-render.module';
@@ -0,0 +1 @@
1
+ export declare const baseStyle: any;
@@ -0,0 +1 @@
1
+ export * from './public-api';
@@ -0,0 +1,3 @@
1
+ export * from './ticketing.component';
2
+ export * from './ticketing.module';
3
+ export * from './ticketing.service';
@@ -0,0 +1,100 @@
1
+ import { ChangeDetectorRef, OnInit, QueryList, WritableSignal } from '@angular/core';
2
+ import { Application } from 'verben-ticketing-ui/src/lib/models';
3
+ import { Tenant } from 'verben-ticketing-ui/src/lib/models';
4
+ import { PagedResult } from 'verben-ticketing-ui/src/lib/models';
5
+ import { Ticket } from 'verben-ticketing-ui/src/lib/models';
6
+ import { TicketStatus } from 'verben-ticketing-ui/src/lib/models';
7
+ import { UtilService, EnvironmentService } from 'verben-ticketing-ui/src/lib/services';
8
+ import { HttpWebRequestService } from 'verben-ticketing-ui/src/lib/services';
9
+ import { Subject } from 'rxjs';
10
+ import { ColumnDefinition, ColumnDirective, DataTableComponent, DataViewComponent, IDataFilter, VerbenPopUpComponent } from 'verben-ng-ui';
11
+ import { TicketingService } from './ticketing.service';
12
+ import { ActivatedRoute } from '@angular/router';
13
+ import { ImportService } from 'verben-ticketing-ui/src/lib/services';
14
+ import { PermissionConfig } from 'verben-ticketing-ui/src/lib/models';
15
+ import * as i0 from "@angular/core";
16
+ export declare class TicketingComponent implements OnInit {
17
+ private utilService;
18
+ private server;
19
+ private cdr;
20
+ service: TicketingService;
21
+ private route;
22
+ private importService;
23
+ private envSvc;
24
+ permissionConfig: PermissionConfig | null;
25
+ styles: any;
26
+ showTicketForm: boolean;
27
+ selectedTicket: Ticket | null;
28
+ activeApp: string | null;
29
+ activeTenant: string | null;
30
+ activeTicket: Ticket | null;
31
+ apps: Application[];
32
+ detailPath: string;
33
+ tenants: Tenant[];
34
+ tickets: Ticket[];
35
+ ticketingAPI: string;
36
+ defaultCompany: string;
37
+ baseUrl: string;
38
+ pendingRef: TicketStatus;
39
+ visibleColumnDef: ColumnDefinition<any>[];
40
+ exportColumnDef: ColumnDefinition<any>[];
41
+ importedData: WritableSignal<any[]>;
42
+ columnTemplates: import("@angular/core").Signal<readonly ColumnDirective[]>;
43
+ dataView: DataViewComponent;
44
+ tableView: DataTableComponent<Ticket>;
45
+ popUps: QueryList<VerbenPopUpComponent>;
46
+ pageSize: number;
47
+ searchDebounceTime: number;
48
+ pageState: PagedResult<Ticket> | null;
49
+ isOpen: boolean;
50
+ openDropdownId: string | null;
51
+ currentFilters: IDataFilter[];
52
+ currentSorts: IDataFilter[];
53
+ searchTerm$: Subject<string>;
54
+ statusOptions: string[];
55
+ visibleColumns: IDataFilter[];
56
+ filterArray: IDataFilter[];
57
+ sortOptions: IDataFilter[];
58
+ private currentSearchTerm;
59
+ constructor(utilService: UtilService, server: HttpWebRequestService, cdr: ChangeDetectorRef, service: TicketingService, route: ActivatedRoute, importService: ImportService<Ticket>, envSvc: EnvironmentService);
60
+ ngOnInit(): Promise<void>;
61
+ loadMore(): Promise<void>;
62
+ tableSaveTicket(form: Ticket, callBack: () => any): Promise<void>;
63
+ updateTable(): void;
64
+ closePopUp(): void;
65
+ onViewChange(isGridView: boolean): void;
66
+ showTableView: boolean;
67
+ onSelectionChange(selectedRows: Ticket[]): void;
68
+ onColumnsUpdated(updatedColumns: IDataFilter[]): void;
69
+ exportFiltersAndSorts: (pageState: {
70
+ skip: number;
71
+ limit: number;
72
+ }) => Promise<Ticket[]>;
73
+ updateFiltersAndSorts(isSearch?: boolean): Promise<undefined>;
74
+ loadMoreFiltersAndSorts(): Promise<PagedResult<Ticket> | undefined>;
75
+ onFilterUpdated(updatedFilters: IDataFilter[] | string): void;
76
+ onSortUpdated(updatedSorts: IDataFilter[]): void;
77
+ handleSearch(event: {
78
+ key: string;
79
+ value: string;
80
+ }): void;
81
+ handleExport(exportedData: Partial<any>[]): void;
82
+ isFilteredState(): boolean;
83
+ private downloadCSV;
84
+ onComplete(event: any[]): void;
85
+ tableCache: Map<string, Ticket>;
86
+ cacheItem(item: Ticket): void;
87
+ restoreCache(item: Ticket): void;
88
+ onAppListUpdated(apps: Application[]): void;
89
+ onTenantListUpdated(tenants: Tenant[]): void;
90
+ getLogoUrl(url: string): string;
91
+ addNewTicket(): void;
92
+ editTicket(ticket: Ticket): void;
93
+ onTicketModalClose(): void;
94
+ onTicketSave(ticket: Ticket): void;
95
+ viewTicketDetails(ticket: Ticket): void;
96
+ cssColorToHex(color: string): string | null;
97
+ softenColor(hex: string, lightenPercent?: number, alphaPercent?: number): string;
98
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketingComponent, never>;
99
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketingComponent, "app-ticketing", never, { "permissionConfig": { "alias": "permissionConfig"; "required": false; }; "activeApp": { "alias": "activeApp"; "required": false; }; "activeTenant": { "alias": "activeTenant"; "required": false; }; "detailPath": { "alias": "detailPath"; "required": false; }; "defaultCompany": { "alias": "defaultCompany"; "required": false; }; "baseUrl": { "alias": "baseUrl"; "required": false; }; }, {}, never, never, false, never>;
100
+ }
@@ -0,0 +1,12 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./ticketing.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "@angular/forms";
5
+ import * as i4 from "verben-ng-ui";
6
+ import * as i5 from "verben-ticketing-ui/src/lib/pipes";
7
+ import * as i6 from "verben-ticketing-ui/src/lib/components/add-ticket";
8
+ export declare class TicketLibModule {
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketLibModule, never>;
10
+ static ɵmod: i0.ɵɵNgModuleDeclaration<TicketLibModule, [typeof i1.TicketingComponent], [typeof i2.CommonModule, typeof i3.FormsModule, typeof i3.ReactiveFormsModule, typeof i4.DataTableModule, typeof i4.SvgModule, typeof i4.VerbenPopUpModule, typeof i4.DataViewModule, typeof i4.VerbenaButtonModule, typeof i4.CardDataViewModule, typeof i4.DropDownModule, typeof i4.VerbenaSwitchModule, typeof i4.TableFilterModule, typeof i4.VisibleColumnModule, typeof i5.AsyncLabelPipe, typeof i4.SortTableModule, typeof i4.DataExportModule, typeof i4.TooltipModule, typeof i4.VerbenDialogueModule, typeof i4.VerbenaInputModule, typeof i4.DataImportModule, typeof i4.DataExportModule, typeof i4.DataXportModule, typeof i5.EllipseWordPipe, typeof i5.CompanyDatePipe, typeof i6.AddTicketLibModule], [typeof i1.TicketingComponent]>;
11
+ static ɵinj: i0.ɵɵInjectorDeclaration<TicketLibModule>;
12
+ }