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.
- package/README.md +25 -0
- package/esm2022/public-api.mjs +9 -0
- package/esm2022/src/lib/components/add-ticket/add-ticket.component.mjs +306 -0
- package/esm2022/src/lib/components/add-ticket/add-ticket.module.mjs +98 -0
- package/esm2022/src/lib/components/add-ticket/index.mjs +2 -0
- package/esm2022/src/lib/components/add-ticket/public-api.mjs +3 -0
- package/esm2022/src/lib/components/add-ticket/verben-ticketing-ui-src-lib-components-add-ticket.mjs +5 -0
- package/esm2022/src/lib/components/file-render/file-render.component.mjs +34 -0
- package/esm2022/src/lib/components/file-render/file-render.module.mjs +94 -0
- package/esm2022/src/lib/components/file-render/index.mjs +2 -0
- package/esm2022/src/lib/components/file-render/public-api.mjs +3 -0
- package/esm2022/src/lib/components/file-render/verben-ticketing-ui-src-lib-components-file-render.mjs +5 -0
- package/esm2022/src/lib/components/ticketing/base-table-style.mjs +56 -0
- package/esm2022/src/lib/components/ticketing/index.mjs +2 -0
- package/esm2022/src/lib/components/ticketing/public-api.mjs +4 -0
- package/esm2022/src/lib/components/ticketing/ticketing.component.mjs +813 -0
- package/esm2022/src/lib/components/ticketing/ticketing.module.mjs +96 -0
- package/esm2022/src/lib/components/ticketing/ticketing.service.mjs +220 -0
- package/esm2022/src/lib/components/ticketing/verben-ticketing-ui-src-lib-components-ticketing.mjs +5 -0
- package/esm2022/src/lib/components/ticketing-detail/chat-control/chat-control.component.mjs +240 -0
- package/esm2022/src/lib/components/ticketing-detail/chat-control/chat-control.module.mjs +98 -0
- package/esm2022/src/lib/components/ticketing-detail/index.mjs +2 -0
- package/esm2022/src/lib/components/ticketing-detail/public-api.mjs +3 -0
- package/esm2022/src/lib/components/ticketing-detail/ticketing-detail.component.mjs +592 -0
- package/esm2022/src/lib/components/ticketing-detail/ticketing-detail.module.mjs +109 -0
- package/esm2022/src/lib/components/ticketing-detail/verben-ticketing-ui-src-lib-components-ticketing-detail.mjs +5 -0
- package/esm2022/src/lib/constants/index.mjs +2 -0
- package/esm2022/src/lib/constants/keynames.mjs +2 -0
- package/esm2022/src/lib/constants/pagesize.mjs +3 -0
- package/esm2022/src/lib/constants/public-api.mjs +3 -0
- package/esm2022/src/lib/constants/verben-ticketing-ui-src-lib-constants.mjs +5 -0
- package/esm2022/src/lib/models/Application.mjs +2 -0
- package/esm2022/src/lib/models/ApplicationRoleAction.mjs +2 -0
- package/esm2022/src/lib/models/ApplicationRoleContext.mjs +2 -0
- package/esm2022/src/lib/models/BaseModel.mjs +2 -0
- package/esm2022/src/lib/models/CacheDataRequest.mjs +2 -0
- package/esm2022/src/lib/models/Company.mjs +2 -0
- package/esm2022/src/lib/models/ErrorResponse.mjs +11 -0
- package/esm2022/src/lib/models/File.mjs +2 -0
- package/esm2022/src/lib/models/FilterTypes.mjs +9 -0
- package/esm2022/src/lib/models/HttpRequestType.mjs +8 -0
- package/esm2022/src/lib/models/KeyValueParam.mjs +2 -0
- package/esm2022/src/lib/models/ModelRelationship.mjs +2 -0
- package/esm2022/src/lib/models/OAuthParam.mjs +2 -0
- package/esm2022/src/lib/models/OAuthType.mjs +9 -0
- package/esm2022/src/lib/models/PagedResult.mjs +2 -0
- package/esm2022/src/lib/models/PasswordRequestParam.mjs +2 -0
- package/esm2022/src/lib/models/PermissionConfig.mjs +2 -0
- package/esm2022/src/lib/models/ResponseKeyValue.mjs +2 -0
- package/esm2022/src/lib/models/Role.mjs +2 -0
- package/esm2022/src/lib/models/RoleAction.mjs +2 -0
- package/esm2022/src/lib/models/RoleContext.mjs +2 -0
- package/esm2022/src/lib/models/Schedule.mjs +2 -0
- package/esm2022/src/lib/models/ScheduleType.mjs +6 -0
- package/esm2022/src/lib/models/SearchDynamicWrapper.mjs +2 -0
- package/esm2022/src/lib/models/SearchOperator.mjs +6 -0
- package/esm2022/src/lib/models/SearchPropertySign.mjs +11 -0
- package/esm2022/src/lib/models/SearchPropertyValue.mjs +2 -0
- package/esm2022/src/lib/models/SearchPropertyValueType.mjs +11 -0
- package/esm2022/src/lib/models/SortDirection.mjs +7 -0
- package/esm2022/src/lib/models/TaskUser.mjs +2 -0
- package/esm2022/src/lib/models/Tenant.mjs +2 -0
- package/esm2022/src/lib/models/TenantConfig.mjs +2 -0
- package/esm2022/src/lib/models/TenantPriority.mjs +2 -0
- package/esm2022/src/lib/models/Ticket.mjs +2 -0
- package/esm2022/src/lib/models/TicketMessage.mjs +2 -0
- package/esm2022/src/lib/models/TicketStatus.mjs +8 -0
- package/esm2022/src/lib/models/UserRequest.mjs +2 -0
- package/esm2022/src/lib/models/auth-mechanism.mjs +8 -0
- package/esm2022/src/lib/models/base.mjs +2 -0
- package/esm2022/src/lib/models/conditions.mjs +13 -0
- package/esm2022/src/lib/models/index.mjs +2 -0
- package/esm2022/src/lib/models/log-in.mjs +2 -0
- package/esm2022/src/lib/models/mainUser.mjs +2 -0
- package/esm2022/src/lib/models/oauth-resp.mjs +2 -0
- package/esm2022/src/lib/models/oauth-response.mjs +2 -0
- package/esm2022/src/lib/models/object-state.mjs +8 -0
- package/esm2022/src/lib/models/otpValue.mjs +2 -0
- package/esm2022/src/lib/models/paged.mjs +2 -0
- package/esm2022/src/lib/models/public-api.mjs +57 -0
- package/esm2022/src/lib/models/query-params.mjs +2 -0
- package/esm2022/src/lib/models/request-status.mjs +5 -0
- package/esm2022/src/lib/models/resend-otp-data.mjs +2 -0
- package/esm2022/src/lib/models/sign-up.mjs +2 -0
- package/esm2022/src/lib/models/single-sign-on.mjs +2 -0
- package/esm2022/src/lib/models/status.mjs +6 -0
- package/esm2022/src/lib/models/user-access-request-status.mjs +7 -0
- package/esm2022/src/lib/models/user-access-request.mjs +2 -0
- package/esm2022/src/lib/models/user-management.mjs +2 -0
- package/esm2022/src/lib/models/user.mjs +2 -0
- package/esm2022/src/lib/models/verben-ticketing-ui-src-lib-models.mjs +5 -0
- package/esm2022/src/lib/pipes/async-label.pipe.mjs +26 -0
- package/esm2022/src/lib/pipes/company-date.pipe.mjs +30 -0
- package/esm2022/src/lib/pipes/ellipse-word.pipe.mjs +23 -0
- package/esm2022/src/lib/pipes/index.mjs +2 -0
- package/esm2022/src/lib/pipes/public-api.mjs +4 -0
- package/esm2022/src/lib/pipes/verben-ticketing-ui-src-lib-pipes.mjs +5 -0
- package/esm2022/src/lib/services/company-settings.service.mjs +23 -0
- package/esm2022/src/lib/services/environment.service.mjs +26 -0
- package/esm2022/src/lib/services/http-web-request.service.mjs +100 -0
- package/esm2022/src/lib/services/import.service.mjs +247 -0
- package/esm2022/src/lib/services/index.mjs +2 -0
- package/esm2022/src/lib/services/label.service.mjs +261 -0
- package/esm2022/src/lib/services/public-api.mjs +8 -0
- package/esm2022/src/lib/services/shared.service.mjs +58 -0
- package/esm2022/src/lib/services/util.service.mjs +72 -0
- package/esm2022/src/lib/services/verben-ticketing-ui-src-lib-services.mjs +5 -0
- package/esm2022/src/utils/components/base-data-view.component.mjs +111 -0
- package/esm2022/src/utils/index.mjs +2 -0
- package/esm2022/src/utils/models/DataViewConfig.mjs +2 -0
- package/esm2022/src/utils/public-api.mjs +3 -0
- package/esm2022/src/utils/verben-ticketing-ui-src-utils.mjs +5 -0
- package/esm2022/verben-ticketing-ui.mjs +5 -0
- package/fesm2022/verben-ticketing-ui-src-lib-components-add-ticket.mjs +403 -0
- package/fesm2022/verben-ticketing-ui-src-lib-components-add-ticket.mjs.map +1 -0
- package/fesm2022/verben-ticketing-ui-src-lib-components-file-render.mjs +130 -0
- package/fesm2022/verben-ticketing-ui-src-lib-components-file-render.mjs.map +1 -0
- package/fesm2022/verben-ticketing-ui-src-lib-components-ticketing-detail.mjs +1018 -0
- package/fesm2022/verben-ticketing-ui-src-lib-components-ticketing-detail.mjs.map +1 -0
- package/fesm2022/verben-ticketing-ui-src-lib-components-ticketing.mjs +1166 -0
- package/fesm2022/verben-ticketing-ui-src-lib-components-ticketing.mjs.map +1 -0
- package/fesm2022/verben-ticketing-ui-src-lib-constants.mjs +11 -0
- package/fesm2022/verben-ticketing-ui-src-lib-constants.mjs.map +1 -0
- package/fesm2022/verben-ticketing-ui-src-lib-models.mjs +138 -0
- package/fesm2022/verben-ticketing-ui-src-lib-models.mjs.map +1 -0
- package/fesm2022/verben-ticketing-ui-src-lib-pipes.mjs +81 -0
- package/fesm2022/verben-ticketing-ui-src-lib-pipes.mjs.map +1 -0
- package/fesm2022/verben-ticketing-ui-src-lib-services.mjs +770 -0
- package/fesm2022/verben-ticketing-ui-src-lib-services.mjs.map +1 -0
- package/fesm2022/verben-ticketing-ui-src-utils.mjs +118 -0
- package/fesm2022/verben-ticketing-ui-src-utils.mjs.map +1 -0
- package/fesm2022/verben-ticketing-ui.mjs +14 -0
- package/fesm2022/verben-ticketing-ui.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/package.json +82 -0
- package/public-api.d.ts +4 -0
- package/src/lib/components/add-ticket/add-ticket.component.d.ts +44 -0
- package/src/lib/components/add-ticket/add-ticket.module.d.ts +15 -0
- package/src/lib/components/add-ticket/index.d.ts +1 -0
- package/src/lib/components/add-ticket/public-api.d.ts +2 -0
- package/src/lib/components/file-render/file-render.component.d.ts +14 -0
- package/src/lib/components/file-render/file-render.module.d.ts +14 -0
- package/src/lib/components/file-render/index.d.ts +1 -0
- package/src/lib/components/file-render/public-api.d.ts +2 -0
- package/src/lib/components/ticketing/base-table-style.d.ts +1 -0
- package/src/lib/components/ticketing/index.d.ts +1 -0
- package/src/lib/components/ticketing/public-api.d.ts +3 -0
- package/src/lib/components/ticketing/ticketing.component.d.ts +100 -0
- package/src/lib/components/ticketing/ticketing.module.d.ts +12 -0
- package/src/lib/components/ticketing/ticketing.service.d.ts +27 -0
- package/src/lib/components/ticketing-detail/chat-control/chat-control.component.d.ts +47 -0
- package/src/lib/components/ticketing-detail/chat-control/chat-control.module.d.ts +15 -0
- package/src/lib/components/ticketing-detail/index.d.ts +1 -0
- package/src/lib/components/ticketing-detail/public-api.d.ts +2 -0
- package/src/lib/components/ticketing-detail/ticketing-detail.component.d.ts +77 -0
- package/src/lib/components/ticketing-detail/ticketing-detail.module.d.ts +17 -0
- package/src/lib/constants/index.d.ts +1 -0
- package/src/lib/constants/keynames.d.ts +1 -0
- package/src/lib/constants/pagesize.d.ts +2 -0
- package/src/lib/constants/public-api.d.ts +2 -0
- package/src/lib/models/Application.d.ts +5 -0
- package/src/lib/models/ApplicationRoleAction.d.ts +9 -0
- package/src/lib/models/ApplicationRoleContext.d.ts +9 -0
- package/src/lib/models/BaseModel.d.ts +14 -0
- package/src/lib/models/CacheDataRequest.d.ts +7 -0
- package/src/lib/models/Company.d.ts +22 -0
- package/src/lib/models/ErrorResponse.d.ts +6 -0
- package/src/lib/models/File.d.ts +7 -0
- package/src/lib/models/FilterTypes.d.ts +6 -0
- package/src/lib/models/HttpRequestType.d.ts +6 -0
- package/src/lib/models/KeyValueParam.d.ts +5 -0
- package/src/lib/models/ModelRelationship.d.ts +7 -0
- package/src/lib/models/OAuthParam.d.ts +9 -0
- package/src/lib/models/OAuthType.d.ts +7 -0
- package/src/lib/models/PagedResult.d.ts +9 -0
- package/src/lib/models/PasswordRequestParam.d.ts +5 -0
- package/src/lib/models/PermissionConfig.d.ts +7 -0
- package/src/lib/models/ResponseKeyValue.d.ts +5 -0
- package/src/lib/models/Role.d.ts +9 -0
- package/src/lib/models/RoleAction.d.ts +10 -0
- package/src/lib/models/RoleContext.d.ts +10 -0
- package/src/lib/models/Schedule.d.ts +22 -0
- package/src/lib/models/ScheduleType.d.ts +4 -0
- package/src/lib/models/SearchDynamicWrapper.d.ts +7 -0
- package/src/lib/models/SearchOperator.d.ts +4 -0
- package/src/lib/models/SearchPropertySign.d.ts +9 -0
- package/src/lib/models/SearchPropertyValue.d.ts +14 -0
- package/src/lib/models/SearchPropertyValueType.d.ts +9 -0
- package/src/lib/models/SortDirection.d.ts +5 -0
- package/src/lib/models/TaskUser.d.ts +10 -0
- package/src/lib/models/Tenant.d.ts +22 -0
- package/src/lib/models/TenantConfig.d.ts +20 -0
- package/src/lib/models/TenantPriority.d.ts +10 -0
- package/src/lib/models/Ticket.d.ts +21 -0
- package/src/lib/models/TicketMessage.d.ts +11 -0
- package/src/lib/models/TicketStatus.d.ts +6 -0
- package/src/lib/models/UserRequest.d.ts +32 -0
- package/src/lib/models/auth-mechanism.d.ts +14 -0
- package/src/lib/models/base.d.ts +12 -0
- package/src/lib/models/conditions.d.ts +11 -0
- package/src/lib/models/index.d.ts +1 -0
- package/src/lib/models/log-in.d.ts +8 -0
- package/src/lib/models/mainUser.d.ts +19 -0
- package/src/lib/models/oauth-resp.d.ts +6 -0
- package/src/lib/models/oauth-response.d.ts +6 -0
- package/src/lib/models/object-state.d.ts +6 -0
- package/src/lib/models/otpValue.d.ts +9 -0
- package/src/lib/models/paged.d.ts +9 -0
- package/src/lib/models/public-api.d.ts +56 -0
- package/src/lib/models/query-params.d.ts +7 -0
- package/src/lib/models/request-status.d.ts +3 -0
- package/src/lib/models/resend-otp-data.d.ts +8 -0
- package/src/lib/models/sign-up.d.ts +9 -0
- package/src/lib/models/single-sign-on.d.ts +7 -0
- package/src/lib/models/status.d.ts +4 -0
- package/src/lib/models/user-access-request-status.d.ts +5 -0
- package/src/lib/models/user-access-request.d.ts +9 -0
- package/src/lib/models/user-management.d.ts +8 -0
- package/src/lib/models/user.d.ts +24 -0
- package/src/lib/pipes/async-label.pipe.d.ts +11 -0
- package/src/lib/pipes/company-date.pipe.d.ts +10 -0
- package/src/lib/pipes/ellipse-word.pipe.d.ts +8 -0
- package/src/lib/pipes/index.d.ts +1 -0
- package/src/lib/pipes/public-api.d.ts +3 -0
- package/src/lib/services/company-settings.service.d.ts +11 -0
- package/src/lib/services/environment.service.d.ts +22 -0
- package/src/lib/services/http-web-request.service.d.ts +24 -0
- package/src/lib/services/import.service.d.ts +14 -0
- package/src/lib/services/index.d.ts +1 -0
- package/src/lib/services/label.service.d.ts +24 -0
- package/src/lib/services/public-api.d.ts +7 -0
- package/src/lib/services/shared.service.d.ts +16 -0
- package/src/lib/services/util.service.d.ts +15 -0
- package/src/utils/components/base-data-view.component.d.ts +34 -0
- package/src/utils/index.d.ts +1 -0
- package/src/utils/models/DataViewConfig.d.ts +11 -0
- 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
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
|
+
}
|
package/public-api.d.ts
ADDED
|
@@ -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,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 @@
|
|
|
1
|
+
export declare const baseStyle: any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './public-api';
|
|
@@ -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
|
+
}
|