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
package/README.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# VerbenNgUi
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.2.0.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Run `ng generate component component-name --project verben-ticketing-ui` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project verben-ticketing-ui`.
|
|
8
|
+
|
|
9
|
+
> Note: Don't forget to add `--project verben-ticketing-ui` or else it will be added to the default project in your `angular.json` file.
|
|
10
|
+
|
|
11
|
+
## Build
|
|
12
|
+
|
|
13
|
+
Run `ng build verben-ticketing-ui` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
14
|
+
|
|
15
|
+
## Publishing
|
|
16
|
+
|
|
17
|
+
After building your library with `ng build verben-ticketing-ui`, go to the dist folder `cd dist/verben-ticketing-ui` and run `npm publish`.
|
|
18
|
+
|
|
19
|
+
## Running unit tests
|
|
20
|
+
|
|
21
|
+
Run `ng test verben-ticketing-ui` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
22
|
+
|
|
23
|
+
## Further help
|
|
24
|
+
|
|
25
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of verben-ticketing-ui
|
|
3
|
+
*/
|
|
4
|
+
// Exporting modules
|
|
5
|
+
export * from 'verben-ticketing-ui/src/lib/models';
|
|
6
|
+
export * from 'verben-ticketing-ui/src/lib/services';
|
|
7
|
+
export * from 'verben-ticketing-ui/src/lib/components/ticketing-detail';
|
|
8
|
+
export * from 'verben-ticketing-ui/src/lib/components/ticketing';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxvQkFBb0I7QUFDcEIsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyxrREFBa0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgdmVyYmVuLXRpY2tldGluZy11aVxuICovXG5cbi8vIEV4cG9ydGluZyBtb2R1bGVzXG5leHBvcnQgKiBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9zZXJ2aWNlcyc7XG5leHBvcnQgKiBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvY29tcG9uZW50cy90aWNrZXRpbmctZGV0YWlsJztcbmV4cG9ydCAqIGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL3RpY2tldGluZyc7XG4iXX0=
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
+
import { FormControl, Validators, } from '@angular/forms';
|
|
3
|
+
import { ErrorResponse } from 'verben-ticketing-ui/src/lib/models';
|
|
4
|
+
import { ObjectState } from 'verben-ticketing-ui/src/lib/models';
|
|
5
|
+
import { TicketStatus } from 'verben-ticketing-ui/src/lib/models';
|
|
6
|
+
import { DEFAULT_MESSAGE_FOR_INITIAL_UPLOAD } from 'verben-ticketing-ui/src/lib/constants';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/forms";
|
|
9
|
+
import * as i2 from "verben-ticketing-ui/src/lib/services";
|
|
10
|
+
import * as i3 from "@angular/common";
|
|
11
|
+
import * as i4 from "verben-ng-ui";
|
|
12
|
+
import * as i5 from "verben-ticketing-ui/src/lib/components/file-render";
|
|
13
|
+
export class AddTicketComponent {
|
|
14
|
+
fb;
|
|
15
|
+
utilService;
|
|
16
|
+
server;
|
|
17
|
+
sharedService;
|
|
18
|
+
envSvc;
|
|
19
|
+
// test: string = '';
|
|
20
|
+
// logTest() {
|
|
21
|
+
// console.log({ Test: this.test });
|
|
22
|
+
// }
|
|
23
|
+
createTicketForm;
|
|
24
|
+
activeApp = null;
|
|
25
|
+
activeTenant = null;
|
|
26
|
+
selectedTicket = null;
|
|
27
|
+
isVisible = false;
|
|
28
|
+
onOpen = new EventEmitter();
|
|
29
|
+
onClose = new EventEmitter();
|
|
30
|
+
onSave = new EventEmitter();
|
|
31
|
+
priorityOptions = [];
|
|
32
|
+
statusOptions = Object.keys(TicketStatus);
|
|
33
|
+
fileData = [];
|
|
34
|
+
fileUrls = [];
|
|
35
|
+
//attachedMessage: TicketMessage | null = null;
|
|
36
|
+
maxFileSize = 15 * 1024 * 1024;
|
|
37
|
+
defaultCompany = '';
|
|
38
|
+
constructor(fb, utilService, server, sharedService, envSvc) {
|
|
39
|
+
this.fb = fb;
|
|
40
|
+
this.utilService = utilService;
|
|
41
|
+
this.server = server;
|
|
42
|
+
this.sharedService = sharedService;
|
|
43
|
+
this.envSvc = envSvc;
|
|
44
|
+
this.createTicketForm = this.fb.group({
|
|
45
|
+
Title: new FormControl(null, Validators.required),
|
|
46
|
+
Description: new FormControl(null, Validators.required),
|
|
47
|
+
CurrentHandler: new FormControl({
|
|
48
|
+
value: null,
|
|
49
|
+
disabled: true,
|
|
50
|
+
}),
|
|
51
|
+
LastHandler: new FormControl({
|
|
52
|
+
value: null,
|
|
53
|
+
disabled: true,
|
|
54
|
+
}),
|
|
55
|
+
Priority: new FormControl(null, Validators.required),
|
|
56
|
+
Status: new FormControl({ value: TicketStatus.Pending, disabled: true }, Validators.required),
|
|
57
|
+
});
|
|
58
|
+
// this.createTicketForm.controls['CurrentHandler'].disable();
|
|
59
|
+
// this.createTicketForm.controls['LastHandler'].disable();
|
|
60
|
+
}
|
|
61
|
+
ngOnInit() { }
|
|
62
|
+
async ngOnChanges(changes) {
|
|
63
|
+
if (changes['selectedTicket'] && this.selectedTicket) {
|
|
64
|
+
this.createTicketForm.patchValue({
|
|
65
|
+
Title: this.selectedTicket.Title,
|
|
66
|
+
Description: this.selectedTicket.Description,
|
|
67
|
+
CurrentHandler: this.selectedTicket.CurrentHandler,
|
|
68
|
+
LastHandler: this.selectedTicket.LastHandler,
|
|
69
|
+
Priority: this.selectedTicket.Priority,
|
|
70
|
+
Status: this.selectedTicket.Status,
|
|
71
|
+
});
|
|
72
|
+
this.fileUrls = [...this.selectedTicket.FileUrls];
|
|
73
|
+
this.fileData = [];
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
this.createTicketForm.patchValue({
|
|
77
|
+
Title: null,
|
|
78
|
+
Description: null,
|
|
79
|
+
CurrentHandler: null,
|
|
80
|
+
LastHandler: null,
|
|
81
|
+
Priority: null,
|
|
82
|
+
Status: TicketStatus.Pending,
|
|
83
|
+
});
|
|
84
|
+
this.fileUrls = [];
|
|
85
|
+
this.fileData = [];
|
|
86
|
+
}
|
|
87
|
+
if (changes['activeTenant'] && this.activeTenant) {
|
|
88
|
+
const options = await this.sharedService.getAllPrioritiesForTenant(this.activeTenant);
|
|
89
|
+
if (options) {
|
|
90
|
+
this.priorityOptions = options.Result;
|
|
91
|
+
}
|
|
92
|
+
console.log({ Changed: this.priorityOptions });
|
|
93
|
+
}
|
|
94
|
+
else if (changes['activeTenant'] && !this.activeTenant) {
|
|
95
|
+
this.priorityOptions = [];
|
|
96
|
+
// console.log({ Tenant: this.activeTenant, Reset: this.priorityOptions });
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
checkForm() {
|
|
100
|
+
if (this.createTicketForm.valid == true) {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
onModalOpen(event) {
|
|
106
|
+
this.onOpen.emit();
|
|
107
|
+
}
|
|
108
|
+
onModalClose(event) {
|
|
109
|
+
this.onClose.emit(event);
|
|
110
|
+
}
|
|
111
|
+
// filterMessage(message: TicketMessage): TicketMessage {
|
|
112
|
+
// return {
|
|
113
|
+
// ...message,
|
|
114
|
+
// AttachmentUrls: message.AttachmentUrls.filter(
|
|
115
|
+
// (x) => x.split('/').length > 1
|
|
116
|
+
// ),
|
|
117
|
+
// };
|
|
118
|
+
// }
|
|
119
|
+
async save() {
|
|
120
|
+
if (!this.activeApp) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
if (!this.activeTenant) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
// if (this.selectedTicket && this.attachedMessage) {
|
|
127
|
+
// if (idx > -1) {
|
|
128
|
+
// this.selectedTicket.Messages[idx] = this.filterMessage(
|
|
129
|
+
// this.attachedMessage
|
|
130
|
+
// );
|
|
131
|
+
// } else {
|
|
132
|
+
// if (this.attachedMessage.Attachments.length > 0) {
|
|
133
|
+
// this.selectedTicket.Messages.unshift(
|
|
134
|
+
// this.filterMessage(this.attachedMessage)
|
|
135
|
+
// );
|
|
136
|
+
// }
|
|
137
|
+
// }
|
|
138
|
+
// }
|
|
139
|
+
const item = {
|
|
140
|
+
Title: this.createTicketForm.controls['Title'].value,
|
|
141
|
+
Description: this.createTicketForm.controls['Description'].value,
|
|
142
|
+
CurrentHandler: this.selectedTicket
|
|
143
|
+
? this.selectedTicket.CurrentHandler
|
|
144
|
+
: undefined,
|
|
145
|
+
LastHandler: this.selectedTicket
|
|
146
|
+
? this.selectedTicket.LastHandler
|
|
147
|
+
: undefined,
|
|
148
|
+
Priority: this.createTicketForm.controls['Priority'].value,
|
|
149
|
+
App: this.activeApp,
|
|
150
|
+
id: '',
|
|
151
|
+
Status: this.createTicketForm.controls['Status'].value,
|
|
152
|
+
Company: this.defaultCompany,
|
|
153
|
+
Messages: this.selectedTicket ? this.selectedTicket.Messages : [],
|
|
154
|
+
FileData: this.fileData,
|
|
155
|
+
FileUrls: this.selectedTicket ? this.selectedTicket.FileUrls : [],
|
|
156
|
+
Id: '',
|
|
157
|
+
ExecutionTime: this.selectedTicket
|
|
158
|
+
? this.selectedTicket.ExecutionTime
|
|
159
|
+
: undefined,
|
|
160
|
+
Code: this.selectedTicket ? this.selectedTicket.Code : '',
|
|
161
|
+
TenantId: this.selectedTicket
|
|
162
|
+
? this.selectedTicket.TenantId
|
|
163
|
+
: this.activeTenant,
|
|
164
|
+
ServiceName: this.selectedTicket ? this.selectedTicket.ServiceName : '',
|
|
165
|
+
CreatedAt: this.selectedTicket
|
|
166
|
+
? this.selectedTicket.CreatedAt
|
|
167
|
+
: new Date(),
|
|
168
|
+
UpdatedAt: new Date(),
|
|
169
|
+
DataState: this.selectedTicket ? ObjectState.Changed : ObjectState.New,
|
|
170
|
+
};
|
|
171
|
+
if (item.Description.trim().length == 0) {
|
|
172
|
+
this.utilService.showInfo('Description cannot be empty');
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
this.utilService.sendBI(true);
|
|
176
|
+
const res = await this.server.post(`Ticket/SaveTicket`, [item], this.envSvc.environment.TicketingAPI);
|
|
177
|
+
this.utilService.sendBI(false);
|
|
178
|
+
if (res instanceof ErrorResponse) {
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
this.utilService.showSuccess('Ticket saved successfully');
|
|
182
|
+
const result = res;
|
|
183
|
+
if (result.length > 0) {
|
|
184
|
+
var resultItem = result[0];
|
|
185
|
+
this.onSave.emit(resultItem);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
this.onClose.emit();
|
|
189
|
+
}
|
|
190
|
+
generateSixDigitNumber() {
|
|
191
|
+
return Math.floor(100000 + Math.random() * 900000);
|
|
192
|
+
}
|
|
193
|
+
getTicketMessage() {
|
|
194
|
+
if (this.selectedTicket) {
|
|
195
|
+
const initialMessage = this.selectedTicket.Messages.find((x) => x.Subject == DEFAULT_MESSAGE_FOR_INITIAL_UPLOAD);
|
|
196
|
+
if (initialMessage) {
|
|
197
|
+
return { ...initialMessage, DataState: ObjectState.Changed };
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
const newMessage = {
|
|
201
|
+
TicketCode: '',
|
|
202
|
+
Subject: DEFAULT_MESSAGE_FOR_INITIAL_UPLOAD,
|
|
203
|
+
Content: '',
|
|
204
|
+
Attachments: [],
|
|
205
|
+
AttachmentUrls: [],
|
|
206
|
+
Company: this.defaultCompany,
|
|
207
|
+
Id: '',
|
|
208
|
+
Code: '',
|
|
209
|
+
TenantId: '',
|
|
210
|
+
id: '',
|
|
211
|
+
ServiceName: '',
|
|
212
|
+
CreatedAt: new Date(),
|
|
213
|
+
UpdatedAt: new Date(),
|
|
214
|
+
DataState: ObjectState.New,
|
|
215
|
+
};
|
|
216
|
+
return newMessage;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
const newMessage = {
|
|
221
|
+
TicketCode: '',
|
|
222
|
+
Subject: DEFAULT_MESSAGE_FOR_INITIAL_UPLOAD,
|
|
223
|
+
Content: '',
|
|
224
|
+
Attachments: [],
|
|
225
|
+
AttachmentUrls: [],
|
|
226
|
+
Company: this.defaultCompany,
|
|
227
|
+
Id: '',
|
|
228
|
+
id: '',
|
|
229
|
+
Code: '',
|
|
230
|
+
TenantId: '',
|
|
231
|
+
ServiceName: '',
|
|
232
|
+
CreatedAt: new Date(),
|
|
233
|
+
UpdatedAt: new Date(),
|
|
234
|
+
DataState: ObjectState.New,
|
|
235
|
+
};
|
|
236
|
+
return newMessage;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
triggerFileUpload() {
|
|
240
|
+
const fileInput = document.createElement('input');
|
|
241
|
+
fileInput.type = 'file';
|
|
242
|
+
fileInput.accept = '.png, .jpg, .jpeg, .pdf';
|
|
243
|
+
fileInput.style.display = 'none'; // Hidden file input
|
|
244
|
+
document.body.appendChild(fileInput); // Temporarily add to DOM
|
|
245
|
+
fileInput.addEventListener('change', () => {
|
|
246
|
+
const file = fileInput.files?.[0];
|
|
247
|
+
if (file) {
|
|
248
|
+
this.processFile(file);
|
|
249
|
+
}
|
|
250
|
+
document.body.removeChild(fileInput); // Clean up after use
|
|
251
|
+
});
|
|
252
|
+
fileInput.click(); // Programmatically trigger click
|
|
253
|
+
}
|
|
254
|
+
async processFile(selectedFile) {
|
|
255
|
+
// Check file size
|
|
256
|
+
if (selectedFile.size > this.maxFileSize) {
|
|
257
|
+
const limitInMB = this.maxFileSize / 1024 / 1024;
|
|
258
|
+
this.utilService.showInfo(`File size limit of ${limitInMB}mb exceeded`);
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
// let fileToProcess: globalThis.File | null = selectedFile;
|
|
262
|
+
// const safeNumber: number = 1 * 1024 * 1024;
|
|
263
|
+
// if (fileToProcess.size > safeNumber) {
|
|
264
|
+
// fileToProcess = await this.utilService.compressImage(selectedFile);
|
|
265
|
+
// if (!fileToProcess) {
|
|
266
|
+
// this.utilService.showError('Error compressing image');
|
|
267
|
+
// return;
|
|
268
|
+
// }
|
|
269
|
+
// }
|
|
270
|
+
// Read file and convert to base64
|
|
271
|
+
const reader = new FileReader();
|
|
272
|
+
reader.readAsDataURL(selectedFile);
|
|
273
|
+
reader.onload = () => {
|
|
274
|
+
const base64data = reader.result;
|
|
275
|
+
const file = this.sharedService.createCustomFile(base64data, 0, selectedFile);
|
|
276
|
+
if (file) {
|
|
277
|
+
this.fileData.push(file);
|
|
278
|
+
this.fileUrls.push(`${file.Name}`);
|
|
279
|
+
// this.profileImage = base64data;
|
|
280
|
+
}
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AddTicketComponent, deps: [{ token: i1.FormBuilder }, { token: i2.UtilService }, { token: i2.HttpWebRequestService }, { token: i2.SharedService }, { token: i2.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
284
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AddTicketComponent, selector: "app-add-ticket", inputs: { activeApp: "activeApp", activeTenant: "activeTenant", selectedTicket: "selectedTicket", isVisible: "isVisible", defaultCompany: "defaultCompany" }, outputs: { onOpen: "onOpen", onClose: "onClose", onSave: "onSave" }, usesOnChanges: true, ngImport: i0, template: "<verben-dialogue\n [showCloseIcon]=\"false\"\n [dismissOutsideClick]=\"false\"\n [closeOnEscape]=\"true\"\n [size]=\"'medium'\"\n [mode]=\"'dialogue'\"\n [customClass]=\"'ticket-dialog'\"\n [disableFooter]=\"true\"\n (openModal)=\"onModalOpen($event)\"\n [isVisible]=\"isVisible\"\n [bodyTemplate]=\"bodyTemplate\"\n (closeModal)=\"onModalClose($event)\"\n>\n <ng-template #bodyTemplate>\n <div class=\"dialog-body p-[25px] flex flex-col gap-4\">\n <div class=\"dialog-header flex flex-col gap-1\">\n <div class=\"dialog-title font-bold text-xl\">\n {{ this.selectedTicket ? \"Edit Ticket\" : \"Create Ticket\" }}\n </div>\n <div class=\"dialog-subtitle\">\n {{\n this.selectedTicket\n ? \"Fill the form below to edit selected ticket\"\n : \"Fill the form below to create a ticket\"\n }}\n </div>\n </div>\n <!-- <verbena-textarea name=\"Test\" [(ngModel)]=\"test\" />\n <button (click)=\"logTest()\">Log</button> -->\n <div\n [formGroup]=\"createTicketForm\"\n class=\"add-app-form main-form-container flex flex-col gap-2\"\n >\n <div class=\"form-input-container flex flex-col gap-1\">\n <div class=\"font-medium\">Title</div>\n <verbena-input\n name=\"Title\"\n placeHolder=\"Title\"\n formControlName=\"Title\"\n />\n </div>\n <div class=\"form-input-container flex flex-col gap-1\">\n <div class=\"font-medium\">Description</div>\n <verbena-input name=\"Description\" formControlName=\"Description\" />\n </div>\n <div\n *ngIf=\"this.selectedTicket\"\n class=\"form-input-container flex flex-col gap-1\"\n >\n <div class=\"font-medium\">Current Handler</div>\n <verbena-input\n name=\"CurrentHandler\"\n placeHolder=\"Current Handler\"\n formControlName=\"CurrentHandler\"\n />\n </div>\n <div\n *ngIf=\"this.selectedTicket\"\n class=\"form-input-container flex flex-col gap-1\"\n >\n <div class=\"font-medium\">Last Handler</div>\n <verbena-input\n name=\"LastHandler\"\n placeHolder=\"Last Handler\"\n formControlName=\"LastHandler\"\n />\n </div>\n <div class=\"form-input-container flex flex-col gap-1\">\n <div class=\"font-medium\">Priority</div>\n <verben-drop-down\n width=\"100%\"\n name=\"Priority\"\n placeholder=\"Select Priority\"\n [options]=\"priorityOptions\"\n optionLabel=\"Name\"\n optionValue=\"Code\"\n formControlName=\"Priority\"\n >\n </verben-drop-down>\n </div>\n <div class=\"form-input-container flex flex-col gap-1\">\n <div class=\"font-medium\">Status</div>\n <verben-drop-down\n width=\"100%\"\n name=\"Status\"\n [disabled]=\"true\"\n placeholder=\"Select Status\"\n [options]=\"statusOptions\"\n formControlName=\"Status\"\n >\n </verben-drop-down>\n </div>\n <div class=\"attachment-section p-2 flex flex-col gap-3\">\n <div class=\"attachments-container grid grid-cols-3 gap-2\">\n <ng-container *ngFor=\"let file of this.fileUrls\">\n <app-file-render [fileUrl]=\"file\"></app-file-render>\n </ng-container>\n </div>\n <div\n class=\"upload-section flex flex-col flex-1 items-center justify-center gap-2\"\n >\n <div class=\"flex justify-center\">\n <verbena-button\n [useIcon]=\"true\"\n [icon]=\"'upload'\"\n class=\"verben-secondary-button\"\n [text]=\"'Upload'\"\n (click)=\"triggerFileUpload()\"\n ></verbena-button>\n </div>\n <div class=\"upload-caption text-sm text-center\">\n Include Attachments\n </div>\n </div>\n </div>\n </div>\n <div class=\"dialog-button-container flex justify-end gap-2\">\n <verbena-button\n width=\"100%\"\n class=\"verben-secondary-button\"\n [text]=\"'Close'\"\n (click)=\"onModalClose($event)\"\n >\n </verbena-button>\n <verbena-button\n [disable]=\"!this.checkForm()\"\n width=\"100%\"\n class=\"verben-primary-button\"\n [text]=\"'Save'\"\n (click)=\"save()\"\n >\n </verbena-button>\n </div>\n </div>\n </ng-template>\n</verben-dialogue>\n", styles: [".attachment-section{border:1px solid #ccc6fbb2;border-radius:5px}::ng-deep .ticket-dialog{max-width:60vw}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "component", type: i4.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "component", type: i4.VerbenDialogueComponent, selector: "verben-dialogue", inputs: ["dialogueWidth", "headerTemplate", "bodyTemplate", "footerTemplate", "showCloseIcon", "dismissOutsideClick", "closeOnEscape", "isVisible", "size", "backdropColor", "customClass", "disableFooter", "margin", "padding", "borderRadius", "dialogueBgColor", "width", "closeIconClass", "boxShadow", "enableTransition", "modalData", "mode", "position", "drawerWidth"], outputs: ["openModal", "closeModal"] }, { kind: "component", type: i4.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "component", type: i5.FileRenderComponent, selector: "app-file-render", inputs: ["fileUrl"] }] });
|
|
285
|
+
}
|
|
286
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AddTicketComponent, decorators: [{
|
|
287
|
+
type: Component,
|
|
288
|
+
args: [{ selector: 'app-add-ticket', template: "<verben-dialogue\n [showCloseIcon]=\"false\"\n [dismissOutsideClick]=\"false\"\n [closeOnEscape]=\"true\"\n [size]=\"'medium'\"\n [mode]=\"'dialogue'\"\n [customClass]=\"'ticket-dialog'\"\n [disableFooter]=\"true\"\n (openModal)=\"onModalOpen($event)\"\n [isVisible]=\"isVisible\"\n [bodyTemplate]=\"bodyTemplate\"\n (closeModal)=\"onModalClose($event)\"\n>\n <ng-template #bodyTemplate>\n <div class=\"dialog-body p-[25px] flex flex-col gap-4\">\n <div class=\"dialog-header flex flex-col gap-1\">\n <div class=\"dialog-title font-bold text-xl\">\n {{ this.selectedTicket ? \"Edit Ticket\" : \"Create Ticket\" }}\n </div>\n <div class=\"dialog-subtitle\">\n {{\n this.selectedTicket\n ? \"Fill the form below to edit selected ticket\"\n : \"Fill the form below to create a ticket\"\n }}\n </div>\n </div>\n <!-- <verbena-textarea name=\"Test\" [(ngModel)]=\"test\" />\n <button (click)=\"logTest()\">Log</button> -->\n <div\n [formGroup]=\"createTicketForm\"\n class=\"add-app-form main-form-container flex flex-col gap-2\"\n >\n <div class=\"form-input-container flex flex-col gap-1\">\n <div class=\"font-medium\">Title</div>\n <verbena-input\n name=\"Title\"\n placeHolder=\"Title\"\n formControlName=\"Title\"\n />\n </div>\n <div class=\"form-input-container flex flex-col gap-1\">\n <div class=\"font-medium\">Description</div>\n <verbena-input name=\"Description\" formControlName=\"Description\" />\n </div>\n <div\n *ngIf=\"this.selectedTicket\"\n class=\"form-input-container flex flex-col gap-1\"\n >\n <div class=\"font-medium\">Current Handler</div>\n <verbena-input\n name=\"CurrentHandler\"\n placeHolder=\"Current Handler\"\n formControlName=\"CurrentHandler\"\n />\n </div>\n <div\n *ngIf=\"this.selectedTicket\"\n class=\"form-input-container flex flex-col gap-1\"\n >\n <div class=\"font-medium\">Last Handler</div>\n <verbena-input\n name=\"LastHandler\"\n placeHolder=\"Last Handler\"\n formControlName=\"LastHandler\"\n />\n </div>\n <div class=\"form-input-container flex flex-col gap-1\">\n <div class=\"font-medium\">Priority</div>\n <verben-drop-down\n width=\"100%\"\n name=\"Priority\"\n placeholder=\"Select Priority\"\n [options]=\"priorityOptions\"\n optionLabel=\"Name\"\n optionValue=\"Code\"\n formControlName=\"Priority\"\n >\n </verben-drop-down>\n </div>\n <div class=\"form-input-container flex flex-col gap-1\">\n <div class=\"font-medium\">Status</div>\n <verben-drop-down\n width=\"100%\"\n name=\"Status\"\n [disabled]=\"true\"\n placeholder=\"Select Status\"\n [options]=\"statusOptions\"\n formControlName=\"Status\"\n >\n </verben-drop-down>\n </div>\n <div class=\"attachment-section p-2 flex flex-col gap-3\">\n <div class=\"attachments-container grid grid-cols-3 gap-2\">\n <ng-container *ngFor=\"let file of this.fileUrls\">\n <app-file-render [fileUrl]=\"file\"></app-file-render>\n </ng-container>\n </div>\n <div\n class=\"upload-section flex flex-col flex-1 items-center justify-center gap-2\"\n >\n <div class=\"flex justify-center\">\n <verbena-button\n [useIcon]=\"true\"\n [icon]=\"'upload'\"\n class=\"verben-secondary-button\"\n [text]=\"'Upload'\"\n (click)=\"triggerFileUpload()\"\n ></verbena-button>\n </div>\n <div class=\"upload-caption text-sm text-center\">\n Include Attachments\n </div>\n </div>\n </div>\n </div>\n <div class=\"dialog-button-container flex justify-end gap-2\">\n <verbena-button\n width=\"100%\"\n class=\"verben-secondary-button\"\n [text]=\"'Close'\"\n (click)=\"onModalClose($event)\"\n >\n </verbena-button>\n <verbena-button\n [disable]=\"!this.checkForm()\"\n width=\"100%\"\n class=\"verben-primary-button\"\n [text]=\"'Save'\"\n (click)=\"save()\"\n >\n </verbena-button>\n </div>\n </div>\n </ng-template>\n</verben-dialogue>\n", styles: [".attachment-section{border:1px solid #ccc6fbb2;border-radius:5px}::ng-deep .ticket-dialog{max-width:60vw}\n"] }]
|
|
289
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.UtilService }, { type: i2.HttpWebRequestService }, { type: i2.SharedService }, { type: i2.EnvironmentService }], propDecorators: { activeApp: [{
|
|
290
|
+
type: Input
|
|
291
|
+
}], activeTenant: [{
|
|
292
|
+
type: Input
|
|
293
|
+
}], selectedTicket: [{
|
|
294
|
+
type: Input
|
|
295
|
+
}], isVisible: [{
|
|
296
|
+
type: Input
|
|
297
|
+
}], onOpen: [{
|
|
298
|
+
type: Output
|
|
299
|
+
}], onClose: [{
|
|
300
|
+
type: Output
|
|
301
|
+
}], onSave: [{
|
|
302
|
+
type: Output
|
|
303
|
+
}], defaultCompany: [{
|
|
304
|
+
type: Input
|
|
305
|
+
}] } });
|
|
306
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXRpY2tldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvY29tcG9uZW50cy9hZGQtdGlja2V0L2FkZC10aWNrZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXRpY2tldGluZy11aS9zcmMvbGliL2NvbXBvbmVudHMvYWRkLXRpY2tldC9hZGQtdGlja2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLFdBQVcsRUFFWCxVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRWpFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQVNsRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7OztBQVMzRixNQUFNLE9BQU8sa0JBQWtCO0lBdUJuQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBMUJWLHFCQUFxQjtJQUNyQixjQUFjO0lBQ2Qsc0NBQXNDO0lBQ3RDLElBQUk7SUFDSixnQkFBZ0IsQ0FBWTtJQUNuQixTQUFTLEdBQWtCLElBQUksQ0FBQztJQUNoQyxZQUFZLEdBQWtCLElBQUksQ0FBQztJQUNuQyxjQUFjLEdBQWtCLElBQUksQ0FBQztJQUNyQyxTQUFTLEdBQVksS0FBSyxDQUFDO0lBQzFCLE1BQU0sR0FBd0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNqRCxPQUFPLEdBQXdCLElBQUksWUFBWSxF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OENBQThDO1FBQzlDLHlDQUF5QztRQUN6Qyx3RUFBd0U7UUFDeEUsMEJBQTBCO1FBQzFCLDZEQUE2RDtRQUM3RCxjQUFjO1FBQ2QsTUFBTTtRQUNOLElBQUk7UUFFSixrQ0FBa0M7UUFDbEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNoQyxNQUFNLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25DLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO1lBQ25CLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFnQixDQUFDO1lBQzNDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQzlDLFVBQVUsRUFDVixDQUFDLEVBQ0QsWUFBWSxDQUNiLENBQUM7WUFDRixJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNuQyxrQ0FBa0M7WUFDcEMsQ0FBQztRQUNILENBQUMsQ0FBQztJQUNKLENBQUM7d0dBelNVLGtCQUFrQjs0RkFBbEIsa0JBQWtCLDhTQ3JDL0IsNnRKQXdJQTs7NEZEbkdhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxnQkFBZ0I7Mk1BVWpCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksTUFBTTtzQkFBZixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQVFFLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEZvcm1CdWlsZGVyLFxuICBGb3JtQ29udHJvbCxcbiAgRm9ybUdyb3VwLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbiB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgVGVuYW50IH0gZnJvbSAndmVyYmVuLXRpY2tldGluZy11aS9zcmMvbGliL21vZGVscyc7XG5pbXBvcnQgeyBFcnJvclJlc3BvbnNlIH0gZnJvbSAndmVyYmVuLXRpY2tldGluZy11aS9zcmMvbGliL21vZGVscyc7XG5pbXBvcnQgeyBPYmplY3RTdGF0ZSB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgVGlja2V0IH0gZnJvbSAndmVyYmVuLXRpY2tldGluZy11aS9zcmMvbGliL21vZGVscyc7XG5pbXBvcnQgeyBUaWNrZXRTdGF0dXMgfSBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7XG4gIFV0aWxTZXJ2aWNlIGFzIEFwcFV0aWxTZXJ2aWNlLFxuICBFbnZpcm9ubWVudFNlcnZpY2UsXG59IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBIdHRwV2ViUmVxdWVzdFNlcnZpY2UgfSBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvc2VydmljZXMnO1xuXG5pbXBvcnQgeyBUZW5hbnRQcmlvcml0eSB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgVGlja2V0TWVzc2FnZSB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgREVGQVVMVF9NRVNTQUdFX0ZPUl9JTklUSUFMX1VQTE9BRCB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRmlsZSB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgU2hhcmVkU2VydmljZSB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1hZGQtdGlja2V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC10aWNrZXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYWRkLXRpY2tldC5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQWRkVGlja2V0Q29tcG9uZW50IHtcbiAgLy8gdGVzdDogc3RyaW5nID0gJyc7XG4gIC8vIGxvZ1Rlc3QoKSB7XG4gIC8vICAgY29uc29sZS5sb2coeyBUZXN0OiB0aGlzLnRlc3QgfSk7XG4gIC8vIH1cbiAgY3JlYXRlVGlja2V0Rm9ybTogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBhY3RpdmVBcHA6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBhY3RpdmVUZW5hbnQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBzZWxlY3RlZFRpY2tldDogVGlja2V0IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGlzVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgb25PcGVuOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25DbG9zZTogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uU2F2ZTogRXZlbnRFbWl0dGVyPFRpY2tldD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJpb3JpdHlPcHRpb25zOiBUZW5hbnRQcmlvcml0eVtdID0gW107XG4gIHN0YXR1c09wdGlvbnM6IHN0cmluZ1tdID0gT2JqZWN0LmtleXMoVGlja2V0U3RhdHVzKTtcbiAgZmlsZURhdGE6IEZpbGVbXSA9IFtdO1xuICBmaWxlVXJsczogc3RyaW5nW10gPSBbXTtcbiAgLy9hdHRhY2hlZE1lc3NhZ2U6IFRpY2tldE1lc3NhZ2UgfCBudWxsID0gbnVsbDtcbiAgbWF4RmlsZVNpemUgPSAxNSAqIDEwMjQgKiAxMDI0O1xuICBASW5wdXQoKSBkZWZhdWx0Q29tcGFueTogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSB1dGlsU2VydmljZTogQXBwVXRpbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZXJ2ZXI6IEh0dHBXZWJSZXF1ZXN0U2VydmljZSxcbiAgICBwcml2YXRlIHNoYXJlZFNlcnZpY2U6IFNoYXJlZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbnZTdmM6IEVudmlyb25tZW50U2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5jcmVhdGVUaWNrZXRGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBUaXRsZTogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgRGVzY3JpcHRpb246IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIEN1cnJlbnRIYW5kbGVyOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4oe1xuICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgZGlzYWJsZWQ6IHRydWUsXG4gICAgICB9KSxcbiAgICAgIExhc3RIYW5kbGVyOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4oe1xuICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgZGlzYWJsZWQ6IHRydWUsXG4gICAgICB9KSxcbiAgICAgIFByaW9yaXR5OiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBTdGF0dXM6IG5ldyBGb3JtQ29udHJvbDxUaWNrZXRTdGF0dXM+KFxuICAgICAgICB7IHZhbHVlOiBUaWNrZXRTdGF0dXMuUGVuZGluZywgZGlzYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICksXG4gICAgfSk7XG5cbiAgICAvLyB0aGlzLmNyZWF0ZVRpY2tldEZvcm0uY29udHJvbHNbJ0N1cnJlbnRIYW5kbGVyJ10uZGlzYWJsZSgpO1xuICAgIC8vIHRoaXMuY3JlYXRlVGlja2V0Rm9ybS5jb250cm9sc1snTGFzdEhhbmRsZXInXS5kaXNhYmxlKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgYXN5bmMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChjaGFuZ2VzWydzZWxlY3RlZFRpY2tldCddICYmIHRoaXMuc2VsZWN0ZWRUaWNrZXQpIHtcbiAgICAgIHRoaXMuY3JlYXRlVGlja2V0Rm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgVGl0bGU6IHRoaXMuc2VsZWN0ZWRUaWNrZXQuVGl0bGUsXG4gICAgICAgIERlc2NyaXB0aW9uOiB0aGlzLnNlbGVjdGVkVGlja2V0LkRlc2NyaXB0aW9uLFxuICAgICAgICBDdXJyZW50SGFuZGxlcjogdGhpcy5zZWxlY3RlZFRpY2tldC5DdXJyZW50SGFuZGxlcixcbiAgICAgICAgTGFzdEhhbmRsZXI6IHRoaXMuc2VsZWN0ZWRUaWNrZXQuTGFzdEhhbmRsZXIsXG4gICAgICAgIFByaW9yaXR5OiB0aGlzLnNlbGVjdGVkVGlja2V0LlByaW9yaXR5LFxuICAgICAgICBTdGF0dXM6IHRoaXMuc2VsZWN0ZWRUaWNrZXQuU3RhdHVzLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmZpbGVVcmxzID0gWy4uLnRoaXMuc2VsZWN0ZWRUaWNrZXQuRmlsZVVybHNdO1xuICAgICAgdGhpcy5maWxlRGF0YSA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNyZWF0ZVRpY2tldEZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgIFRpdGxlOiBudWxsLFxuICAgICAgICBEZXNjcmlwdGlvbjogbnVsbCxcbiAgICAgICAgQ3VycmVudEhhbmRsZXI6IG51bGwsXG4gICAgICAgIExhc3RIYW5kbGVyOiBudWxsLFxuICAgICAgICBQcmlvcml0eTogbnVsbCxcbiAgICAgICAgU3RhdHVzOiBUaWNrZXRTdGF0dXMuUGVuZGluZyxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5maWxlVXJscyA9IFtdO1xuICAgICAgdGhpcy5maWxlRGF0YSA9IFtdO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzWydhY3RpdmVUZW5hbnQnXSAmJiB0aGlzLmFjdGl2ZVRlbmFudCkge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IGF3YWl0IHRoaXMuc2hhcmVkU2VydmljZS5nZXRBbGxQcmlvcml0aWVzRm9yVGVuYW50KFxuICAgICAgICB0aGlzLmFjdGl2ZVRlbmFudCxcbiAgICAgICk7XG4gICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICB0aGlzLnByaW9yaXR5T3B0aW9ucyA9IG9wdGlvbnMuUmVzdWx0O1xuICAgICAgfVxuICAgICAgY29uc29sZS5sb2coeyBDaGFuZ2VkOiB0aGlzLnByaW9yaXR5T3B0aW9ucyB9KTtcbiAgICB9IGVsc2UgaWYgKGNoYW5nZXNbJ2FjdGl2ZVRlbmFudCddICYmICF0aGlzLmFjdGl2ZVRlbmFudCkge1xuICAgICAgdGhpcy5wcmlvcml0eU9wdGlvbnMgPSBbXTtcbiAgICAgIC8vIGNvbnNvbGUubG9nKHsgVGVuYW50OiB0aGlzLmFjdGl2ZVRlbmFudCwgUmVzZXQ6IHRoaXMucHJpb3JpdHlPcHRpb25zIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNoZWNrRm9ybSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5jcmVhdGVUaWNrZXRGb3JtLnZhbGlkID09IHRydWUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBvbk1vZGFsT3BlbihldmVudDogYW55KSB7XG4gICAgdGhpcy5vbk9wZW4uZW1pdCgpO1xuICB9XG5cbiAgb25Nb2RhbENsb3NlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm9uQ2xvc2UuZW1pdChldmVudCk7XG4gIH1cblxuICAvLyBmaWx0ZXJNZXNzYWdlKG1lc3NhZ2U6IFRpY2tldE1lc3NhZ2UpOiBUaWNrZXRNZXNzYWdlIHtcbiAgLy8gICByZXR1cm4ge1xuICAvLyAgICAgLi4ubWVzc2FnZSxcbiAgLy8gICAgIEF0dGFjaG1lbnRVcmxzOiBtZXNzYWdlLkF0dGFjaG1lbnRVcmxzLmZpbHRlcihcbiAgLy8gICAgICAgKHgpID0+IHguc3BsaXQoJy8nKS5sZW5ndGggPiAxXG4gIC8vICAgICApLFxuICAvLyAgIH07XG4gIC8vIH1cblxuICBhc3luYyBzYXZlKCkge1xuICAgIGlmICghdGhpcy5hY3RpdmVBcHApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmFjdGl2ZVRlbmFudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBpZiAodGhpcy5zZWxlY3RlZFRpY2tldCAmJiB0aGlzLmF0dGFjaGVkTWVzc2FnZSkge1xuICAgIC8vICAgaWYgKGlkeCA+IC0xKSB7XG4gICAgLy8gICAgIHRoaXMuc2VsZWN0ZWRUaWNrZXQuTWVzc2FnZXNbaWR4XSA9IHRoaXMuZmlsdGVyTWVzc2FnZShcbiAgICAvLyAgICAgICB0aGlzLmF0dGFjaGVkTWVzc2FnZVxuICAgIC8vICAgICApO1xuICAgIC8vICAgfSBlbHNlIHtcbiAgICAvLyAgICAgaWYgKHRoaXMuYXR0YWNoZWRNZXNzYWdlLkF0dGFjaG1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAvLyAgICAgICB0aGlzLnNlbGVjdGVkVGlja2V0Lk1lc3NhZ2VzLnVuc2hpZnQoXG4gICAgLy8gICAgICAgICB0aGlzLmZpbHRlck1lc3NhZ2UodGhpcy5hdHRhY2hlZE1lc3NhZ2UpXG4gICAgLy8gICAgICAgKTtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgfVxuICAgIC8vIH1cblxuICAgIGNvbnN0IGl0ZW06IFRpY2tldCA9IHtcbiAgICAgIFRpdGxlOiB0aGlzLmNyZWF0ZVRpY2tldEZvcm0uY29udHJvbHNbJ1RpdGxlJ10udmFsdWUsXG4gICAgICBEZXNjcmlwdGlvbjogdGhpcy5jcmVhdGVUaWNrZXRGb3JtLmNvbnRyb2xzWydEZXNjcmlwdGlvbiddLnZhbHVlLFxuICAgICAgQ3VycmVudEhhbmRsZXI6IHRoaXMuc2VsZWN0ZWRUaWNrZXRcbiAgICAgICAgPyB0aGlzLnNlbGVjdGVkVGlja2V0LkN1cnJlbnRIYW5kbGVyXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgTGFzdEhhbmRsZXI6IHRoaXMuc2VsZWN0ZWRUaWNrZXRcbiAgICAgICAgPyB0aGlzLnNlbGVjdGVkVGlja2V0Lkxhc3RIYW5kbGVyXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgUHJpb3JpdHk6IHRoaXMuY3JlYXRlVGlja2V0Rm9ybS5jb250cm9sc1snUHJpb3JpdHknXS52YWx1ZSxcbiAgICAgIEFwcDogdGhpcy5hY3RpdmVBcHAsXG4gICAgICBpZDogJycsXG4gICAgICBTdGF0dXM6IHRoaXMuY3JlYXRlVGlja2V0Rm9ybS5jb250cm9sc1snU3RhdHVzJ10udmFsdWUsXG4gICAgICBDb21wYW55OiB0aGlzLmRlZmF1bHRDb21wYW55LFxuICAgICAgTWVzc2FnZXM6IHRoaXMuc2VsZWN0ZWRUaWNrZXQgPyB0aGlzLnNlbGVjdGVkVGlja2V0Lk1lc3NhZ2VzIDogW10sXG4gICAgICBGaWxlRGF0YTogdGhpcy5maWxlRGF0YSxcbiAgICAgIEZpbGVVcmxzOiB0aGlzLnNlbGVjdGVkVGlja2V0ID8gdGhpcy5zZWxlY3RlZFRpY2tldC5GaWxlVXJscyA6IFtdLFxuICAgICAgSWQ6ICcnLFxuICAgICAgRXhlY3V0aW9uVGltZTogdGhpcy5zZWxlY3RlZFRpY2tldFxuICAgICAgICA/IHRoaXMuc2VsZWN0ZWRUaWNrZXQuRXhlY3V0aW9uVGltZVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIENvZGU6IHRoaXMuc2VsZWN0ZWRUaWNrZXQgPyB0aGlzLnNlbGVjdGVkVGlja2V0LkNvZGUgOiAnJyxcbiAgICAgIFRlbmFudElkOiB0aGlzLnNlbGVjdGVkVGlja2V0XG4gICAgICAgID8gdGhpcy5zZWxlY3RlZFRpY2tldC5UZW5hbnRJZFxuICAgICAgICA6IHRoaXMuYWN0aXZlVGVuYW50LFxuICAgICAgU2VydmljZU5hbWU6IHRoaXMuc2VsZWN0ZWRUaWNrZXQgPyB0aGlzLnNlbGVjdGVkVGlja2V0LlNlcnZpY2VOYW1lIDogJycsXG4gICAgICBDcmVhdGVkQXQ6IHRoaXMuc2VsZWN0ZWRUaWNrZXRcbiAgICAgICAgPyB0aGlzLnNlbGVjdGVkVGlja2V0LkNyZWF0ZWRBdFxuICAgICAgICA6IG5ldyBEYXRlKCksXG4gICAgICBVcGRhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICBEYXRhU3RhdGU6IHRoaXMuc2VsZWN0ZWRUaWNrZXQgPyBPYmplY3RTdGF0ZS5DaGFuZ2VkIDogT2JqZWN0U3RhdGUuTmV3LFxuICAgIH07XG5cbiAgICBpZiAoaXRlbS5EZXNjcmlwdGlvbi50cmltKCkubGVuZ3RoID09IDApIHtcbiAgICAgIHRoaXMudXRpbFNlcnZpY2Uuc2hvd0luZm8oJ0Rlc2NyaXB0aW9uIGNhbm5vdCBiZSBlbXB0eScpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnV0aWxTZXJ2aWNlLnNlbmRCSSh0cnVlKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnNlcnZlci5wb3N0KFxuICAgICAgYFRpY2tldC9TYXZlVGlja2V0YCxcbiAgICAgIFtpdGVtXSxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LlRpY2tldGluZ0FQSSxcbiAgICApO1xuICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKGZhbHNlKTtcbiAgICBpZiAocmVzIGluc3RhbmNlb2YgRXJyb3JSZXNwb25zZSkge1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnV0aWxTZXJ2aWNlLnNob3dTdWNjZXNzKCdUaWNrZXQgc2F2ZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICBjb25zdCByZXN1bHQgPSByZXMgYXMgVGlja2V0W107XG4gICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgdmFyIHJlc3VsdEl0ZW0gPSByZXN1bHRbMF07XG4gICAgICAgIHRoaXMub25TYXZlLmVtaXQocmVzdWx0SXRlbSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5vbkNsb3NlLmVtaXQoKTtcbiAgfVxuXG4gIGdlbmVyYXRlU2l4RGlnaXROdW1iZXIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5mbG9vcigxMDAwMDAgKyBNYXRoLnJhbmRvbSgpICogOTAwMDAwKTtcbiAgfVxuXG4gIGdldFRpY2tldE1lc3NhZ2UoKTogVGlja2V0TWVzc2FnZSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRUaWNrZXQpIHtcbiAgICAgIGNvbnN0IGluaXRpYWxNZXNzYWdlID0gdGhpcy5zZWxlY3RlZFRpY2tldC5NZXNzYWdlcy5maW5kKFxuICAgICAgICAoeCkgPT4geC5TdWJqZWN0ID09IERFRkFVTFRfTUVTU0FHRV9GT1JfSU5JVElBTF9VUExPQUQsXG4gICAgICApO1xuICAgICAgaWYgKGluaXRpYWxNZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB7IC4uLmluaXRpYWxNZXNzYWdlLCBEYXRhU3RhdGU6IE9iamVjdFN0YXRlLkNoYW5nZWQgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG5ld01lc3NhZ2U6IFRpY2tldE1lc3NhZ2UgPSB7XG4gICAgICAgICAgVGlja2V0Q29kZTogJycsXG4gICAgICAgICAgU3ViamVjdDogREVGQVVMVF9NRVNTQUdFX0ZPUl9JTklUSUFMX1VQTE9BRCxcbiAgICAgICAgICBDb250ZW50OiAnJyxcbiAgICAgICAgICBBdHRhY2htZW50czogW10sXG4gICAgICAgICAgQXR0YWNobWVudFVybHM6IFtdLFxuICAgICAgICAgIENvbXBhbnk6IHRoaXMuZGVmYXVsdENvbXBhbnksXG4gICAgICAgICAgSWQ6ICcnLFxuICAgICAgICAgIENvZGU6ICcnLFxuICAgICAgICAgIFRlbmFudElkOiAnJyxcbiAgICAgICAgICBpZDogJycsXG4gICAgICAgICAgU2VydmljZU5hbWU6ICcnLFxuICAgICAgICAgIENyZWF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgICAgICBVcGRhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAgICAgRGF0YVN0YXRlOiBPYmplY3RTdGF0ZS5OZXcsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBuZXdNZXNzYWdlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBuZXdNZXNzYWdlOiBUaWNrZXRNZXNzYWdlID0ge1xuICAgICAgICBUaWNrZXRDb2RlOiAnJyxcbiAgICAgICAgU3ViamVjdDogREVGQVVMVF9NRVNTQUdFX0ZPUl9JTklUSUFMX1VQTE9BRCxcbiAgICAgICAgQ29udGVudDogJycsXG4gICAgICAgIEF0dGFjaG1lbnRzOiBbXSxcbiAgICAgICAgQXR0YWNobWVudFVybHM6IFtdLFxuICAgICAgICBDb21wYW55OiB0aGlzLmRlZmF1bHRDb21wYW55LFxuICAgICAgICBJZDogJycsXG4gICAgICAgIGlkOiAnJyxcbiAgICAgICAgQ29kZTogJycsXG4gICAgICAgIFRlbmFudElkOiAnJyxcbiAgICAgICAgU2VydmljZU5hbWU6ICcnLFxuICAgICAgICBDcmVhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAgIFVwZGF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgICAgRGF0YVN0YXRlOiBPYmplY3RTdGF0ZS5OZXcsXG4gICAgICB9O1xuICAgICAgcmV0dXJuIG5ld01lc3NhZ2U7XG4gICAgfVxuICB9XG5cbiAgdHJpZ2dlckZpbGVVcGxvYWQoKTogdm9pZCB7XG4gICAgY29uc3QgZmlsZUlucHV0OiBIVE1MSW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICBmaWxlSW5wdXQudHlwZSA9ICdmaWxlJztcbiAgICBmaWxlSW5wdXQuYWNjZXB0ID0gJy5wbmcsIC5qcGcsIC5qcGVnLCAucGRmJztcbiAgICBmaWxlSW5wdXQuc3R5bGUuZGlzcGxheSA9ICdub25lJzsgLy8gSGlkZGVuIGZpbGUgaW5wdXRcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZpbGVJbnB1dCk7IC8vIFRlbXBvcmFyaWx5IGFkZCB0byBET01cblxuICAgIGZpbGVJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCBmaWxlID0gZmlsZUlucHV0LmZpbGVzPy5bMF07XG4gICAgICBpZiAoZmlsZSkge1xuICAgICAgICB0aGlzLnByb2Nlc3NGaWxlKGZpbGUpO1xuICAgICAgfVxuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChmaWxlSW5wdXQpOyAvLyBDbGVhbiB1cCBhZnRlciB1c2VcbiAgICB9KTtcblxuICAgIGZpbGVJbnB1dC5jbGljaygpOyAvLyBQcm9ncmFtbWF0aWNhbGx5IHRyaWdnZXIgY2xpY2tcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJvY2Vzc0ZpbGUoc2VsZWN0ZWRGaWxlOiBnbG9iYWxUaGlzLkZpbGUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBDaGVjayBmaWxlIHNpemVcbiAgICBpZiAoc2VsZWN0ZWRGaWxlLnNpemUgPiB0aGlzLm1heEZpbGVTaXplKSB7XG4gICAgICBjb25zdCBsaW1pdEluTUIgPSB0aGlzLm1heEZpbGVTaXplIC8gMTAyNCAvIDEwMjQ7XG4gICAgICB0aGlzLnV0aWxTZXJ2aWNlLnNob3dJbmZvKGBGaWxlIHNpemUgbGltaXQgb2YgJHtsaW1pdEluTUJ9bWIgZXhjZWVkZWRgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBsZXQgZmlsZVRvUHJvY2VzczogZ2xvYmFsVGhpcy5GaWxlIHwgbnVsbCA9IHNlbGVjdGVkRmlsZTtcbiAgICAvLyBjb25zdCBzYWZlTnVtYmVyOiBudW1iZXIgPSAxICogMTAyNCAqIDEwMjQ7XG4gICAgLy8gaWYgKGZpbGVUb1Byb2Nlc3Muc2l6ZSA+IHNhZmVOdW1iZXIpIHtcbiAgICAvLyAgIGZpbGVUb1Byb2Nlc3MgPSBhd2FpdCB0aGlzLnV0aWxTZXJ2aWNlLmNvbXByZXNzSW1hZ2Uoc2VsZWN0ZWRGaWxlKTtcbiAgICAvLyAgIGlmICghZmlsZVRvUHJvY2Vzcykge1xuICAgIC8vICAgICB0aGlzLnV0aWxTZXJ2aWNlLnNob3dFcnJvcignRXJyb3IgY29tcHJlc3NpbmcgaW1hZ2UnKTtcbiAgICAvLyAgICAgcmV0dXJuO1xuICAgIC8vICAgfVxuICAgIC8vIH1cblxuICAgIC8vIFJlYWQgZmlsZSBhbmQgY29udmVydCB0byBiYXNlNjRcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKHNlbGVjdGVkRmlsZSk7XG4gICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGJhc2U2NGRhdGEgPSByZWFkZXIucmVzdWx0IGFzIHN0cmluZztcbiAgICAgIGNvbnN0IGZpbGUgPSB0aGlzLnNoYXJlZFNlcnZpY2UuY3JlYXRlQ3VzdG9tRmlsZShcbiAgICAgICAgYmFzZTY0ZGF0YSxcbiAgICAgICAgMCxcbiAgICAgICAgc2VsZWN0ZWRGaWxlLFxuICAgICAgKTtcbiAgICAgIGlmIChmaWxlKSB7XG4gICAgICAgIHRoaXMuZmlsZURhdGEucHVzaChmaWxlKTtcbiAgICAgICAgdGhpcy5maWxlVXJscy5wdXNoKGAke2ZpbGUuTmFtZX1gKTtcbiAgICAgICAgLy8gdGhpcy5wcm9maWxlSW1hZ2UgPSBiYXNlNjRkYXRhO1xuICAgICAgfVxuICAgIH07XG4gIH1cbn1cbiIsIjx2ZXJiZW4tZGlhbG9ndWVcbiAgW3Nob3dDbG9zZUljb25dPVwiZmFsc2VcIlxuICBbZGlzbWlzc091dHNpZGVDbGlja109XCJmYWxzZVwiXG4gIFtjbG9zZU9uRXNjYXBlXT1cInRydWVcIlxuICBbc2l6ZV09XCInbWVkaXVtJ1wiXG4gIFttb2RlXT1cIidkaWFsb2d1ZSdcIlxuICBbY3VzdG9tQ2xhc3NdPVwiJ3RpY2tldC1kaWFsb2cnXCJcbiAgW2Rpc2FibGVGb290ZXJdPVwidHJ1ZVwiXG4gIChvcGVuTW9kYWwpPVwib25Nb2RhbE9wZW4oJGV2ZW50KVwiXG4gIFtpc1Zpc2libGVdPVwiaXNWaXNpYmxlXCJcbiAgW2JvZHlUZW1wbGF0ZV09XCJib2R5VGVtcGxhdGVcIlxuICAoY2xvc2VNb2RhbCk9XCJvbk1vZGFsQ2xvc2UoJGV2ZW50KVwiXG4+XG4gIDxuZy10ZW1wbGF0ZSAjYm9keVRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctYm9keSBwLVsyNXB4XSBmbGV4IGZsZXgtY29sIGdhcC00XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLWhlYWRlciBmbGV4IGZsZXgtY29sIGdhcC0xXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctdGl0bGUgZm9udC1ib2xkIHRleHQteGxcIj5cbiAgICAgICAgICB7eyB0aGlzLnNlbGVjdGVkVGlja2V0ID8gXCJFZGl0IFRpY2tldFwiIDogXCJDcmVhdGUgVGlja2V0XCIgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctc3VidGl0bGVcIj5cbiAgICAgICAgICB7e1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRpY2tldFxuICAgICAgICAgICAgICA/IFwiRmlsbCB0aGUgZm9ybSBiZWxvdyB0byBlZGl0IHNlbGVjdGVkIHRpY2tldFwiXG4gICAgICAgICAgICAgIDogXCJGaWxsIHRoZSBmb3JtIGJlbG93IHRvIGNyZWF0ZSBhIHRpY2tldFwiXG4gICAgICAgICAgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gPHZlcmJlbmEtdGV4dGFyZWEgbmFtZT1cIlRlc3RcIiBbKG5nTW9kZWwpXT1cInRlc3RcIiAvPlxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwibG9nVGVzdCgpXCI+TG9nPC9idXR0b24+IC0tPlxuICAgICAgPGRpdlxuICAgICAgICBbZm9ybUdyb3VwXT1cImNyZWF0ZVRpY2tldEZvcm1cIlxuICAgICAgICBjbGFzcz1cImFkZC1hcHAtZm9ybSBtYWluLWZvcm0tY29udGFpbmVyIGZsZXggZmxleC1jb2wgZ2FwLTJcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1pbnB1dC1jb250YWluZXIgZmxleCBmbGV4LWNvbCBnYXAtMVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LW1lZGl1bVwiPlRpdGxlPC9kaXY+XG4gICAgICAgICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgICAgICAgIG5hbWU9XCJUaXRsZVwiXG4gICAgICAgICAgICBwbGFjZUhvbGRlcj1cIlRpdGxlXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIlRpdGxlXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0taW5wdXQtY29udGFpbmVyIGZsZXggZmxleC1jb2wgZ2FwLTFcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1tZWRpdW1cIj5EZXNjcmlwdGlvbjwvZGl2PlxuICAgICAgICAgIDx2ZXJiZW5hLWlucHV0IG5hbWU9XCJEZXNjcmlwdGlvblwiIGZvcm1Db250cm9sTmFtZT1cIkRlc2NyaXB0aW9uXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdJZj1cInRoaXMuc2VsZWN0ZWRUaWNrZXRcIlxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1pbnB1dC1jb250YWluZXIgZmxleCBmbGV4LWNvbCBnYXAtMVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1tZWRpdW1cIj5DdXJyZW50IEhhbmRsZXI8L2Rpdj5cbiAgICAgICAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgICAgICAgbmFtZT1cIkN1cnJlbnRIYW5kbGVyXCJcbiAgICAgICAgICAgIHBsYWNlSG9sZGVyPVwiQ3VycmVudCBIYW5kbGVyXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIkN1cnJlbnRIYW5kbGVyXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0lmPVwidGhpcy5zZWxlY3RlZFRpY2tldFwiXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWlucHV0LWNvbnRhaW5lciBmbGV4IGZsZXgtY29sIGdhcC0xXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LW1lZGl1bVwiPkxhc3QgSGFuZGxlcjwvZGl2PlxuICAgICAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAgICAgICBuYW1lPVwiTGFzdEhhbmRsZXJcIlxuICAgICAgICAgICAgcGxhY2VIb2xkZXI9XCJMYXN0IEhhbmRsZXJcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiTGFzdEhhbmRsZXJcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1pbnB1dC1jb250YWluZXIgZmxleCBmbGV4LWNvbCBnYXAtMVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LW1lZGl1bVwiPlByaW9yaXR5PC9kaXY+XG4gICAgICAgICAgPHZlcmJlbi1kcm9wLWRvd25cbiAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICBuYW1lPVwiUHJpb3JpdHlcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgUHJpb3JpdHlcIlxuICAgICAgICAgICAgW29wdGlvbnNdPVwicHJpb3JpdHlPcHRpb25zXCJcbiAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwiTmFtZVwiXG4gICAgICAgICAgICBvcHRpb25WYWx1ZT1cIkNvZGVcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiUHJpb3JpdHlcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1pbnB1dC1jb250YWluZXIgZmxleCBmbGV4LWNvbCBnYXAtMVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LW1lZGl1bVwiPlN0YXR1czwvZGl2PlxuICAgICAgICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgbmFtZT1cIlN0YXR1c1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBTdGF0dXNcIlxuICAgICAgICAgICAgW29wdGlvbnNdPVwic3RhdHVzT3B0aW9uc1wiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJTdGF0dXNcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudC1zZWN0aW9uIHAtMiBmbGV4IGZsZXgtY29sIGdhcC0zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnRzLWNvbnRhaW5lciBncmlkIGdyaWQtY29scy0zIGdhcC0yXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWxlIG9mIHRoaXMuZmlsZVVybHNcIj5cbiAgICAgICAgICAgICAgPGFwcC1maWxlLXJlbmRlciBbZmlsZVVybF09XCJmaWxlXCI+PC9hcHAtZmlsZS1yZW5kZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInVwbG9hZC1zZWN0aW9uIGZsZXggZmxleC1jb2wgZmxleC0xIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtMlwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICAgICAgICAgICAgW3VzZUljb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwiJ3VwbG9hZCdcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidmVyYmVuLXNlY29uZGFyeS1idXR0b25cIlxuICAgICAgICAgICAgICAgIFt0ZXh0XT1cIidVcGxvYWQnXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidHJpZ2dlckZpbGVVcGxvYWQoKVwiXG4gICAgICAgICAgICAgID48L3ZlcmJlbmEtYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLWNhcHRpb24gdGV4dC1zbSB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICBJbmNsdWRlIEF0dGFjaG1lbnRzXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctYnV0dG9uLWNvbnRhaW5lciBmbGV4IGp1c3RpZnktZW5kIGdhcC0yXCI+XG4gICAgICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgY2xhc3M9XCJ2ZXJiZW4tc2Vjb25kYXJ5LWJ1dHRvblwiXG4gICAgICAgICAgW3RleHRdPVwiJ0Nsb3NlJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uTW9kYWxDbG9zZSgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L3ZlcmJlbmEtYnV0dG9uPlxuICAgICAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgICAgICBbZGlzYWJsZV09XCIhdGhpcy5jaGVja0Zvcm0oKVwiXG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBjbGFzcz1cInZlcmJlbi1wcmltYXJ5LWJ1dHRvblwiXG4gICAgICAgICAgW3RleHRdPVwiJ1NhdmUnXCJcbiAgICAgICAgICAoY2xpY2spPVwic2F2ZSgpXCJcbiAgICAgICAgPlxuICAgICAgICA8L3ZlcmJlbmEtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L3ZlcmJlbi1kaWFsb2d1ZT5cbiJdfQ==
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import { CardDataViewModule, DataExportModule, DataTableModule, DataViewModule, DropDownModule, SortTableModule, SvgModule, TableFilterModule, TooltipModule, VerbenaButtonModule, VerbenaInputModule, VerbenaSwitchModule, VerbenDialogueModule, VerbenPopUpModule, VisibleColumnModule, DataImportModule, DataXportModule, } from 'verben-ng-ui';
|
|
6
|
+
import { RouterModule } from '@angular/router';
|
|
7
|
+
import { CompanyDatePipe } from 'verben-ticketing-ui/src/lib/pipes';
|
|
8
|
+
import { EllipseWordPipe } from 'verben-ticketing-ui/src/lib/pipes';
|
|
9
|
+
import { AddTicketComponent } from './add-ticket.component';
|
|
10
|
+
import { FileRenderLibModule } from 'verben-ticketing-ui/src/lib/components/file-render';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@angular/router";
|
|
13
|
+
export const appRoutes = [];
|
|
14
|
+
export class AddTicketLibModule {
|
|
15
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AddTicketLibModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
16
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: AddTicketLibModule, declarations: [AddTicketComponent], imports: [CommonModule,
|
|
17
|
+
FormsModule,
|
|
18
|
+
ReactiveFormsModule,
|
|
19
|
+
DataTableModule,
|
|
20
|
+
SvgModule,
|
|
21
|
+
VerbenPopUpModule,
|
|
22
|
+
DataViewModule,
|
|
23
|
+
VerbenaButtonModule,
|
|
24
|
+
CardDataViewModule,
|
|
25
|
+
DropDownModule,
|
|
26
|
+
VerbenaSwitchModule,
|
|
27
|
+
TableFilterModule,
|
|
28
|
+
VisibleColumnModule,
|
|
29
|
+
SortTableModule,
|
|
30
|
+
DataExportModule,
|
|
31
|
+
TooltipModule,
|
|
32
|
+
VerbenDialogueModule,
|
|
33
|
+
VerbenaInputModule,
|
|
34
|
+
DataImportModule,
|
|
35
|
+
DataExportModule,
|
|
36
|
+
DataXportModule,
|
|
37
|
+
EllipseWordPipe,
|
|
38
|
+
FileRenderLibModule,
|
|
39
|
+
CompanyDatePipe, i1.RouterModule], exports: [AddTicketComponent] });
|
|
40
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AddTicketLibModule, imports: [CommonModule,
|
|
41
|
+
FormsModule,
|
|
42
|
+
ReactiveFormsModule,
|
|
43
|
+
DataTableModule,
|
|
44
|
+
SvgModule,
|
|
45
|
+
VerbenPopUpModule,
|
|
46
|
+
DataViewModule,
|
|
47
|
+
VerbenaButtonModule,
|
|
48
|
+
CardDataViewModule,
|
|
49
|
+
DropDownModule,
|
|
50
|
+
VerbenaSwitchModule,
|
|
51
|
+
TableFilterModule,
|
|
52
|
+
VisibleColumnModule,
|
|
53
|
+
SortTableModule,
|
|
54
|
+
DataExportModule,
|
|
55
|
+
TooltipModule,
|
|
56
|
+
VerbenDialogueModule,
|
|
57
|
+
VerbenaInputModule,
|
|
58
|
+
DataImportModule,
|
|
59
|
+
DataExportModule,
|
|
60
|
+
DataXportModule,
|
|
61
|
+
FileRenderLibModule,
|
|
62
|
+
RouterModule.forChild(appRoutes)] });
|
|
63
|
+
}
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AddTicketLibModule, decorators: [{
|
|
65
|
+
type: NgModule,
|
|
66
|
+
args: [{
|
|
67
|
+
declarations: [AddTicketComponent],
|
|
68
|
+
imports: [
|
|
69
|
+
CommonModule,
|
|
70
|
+
FormsModule,
|
|
71
|
+
ReactiveFormsModule,
|
|
72
|
+
DataTableModule,
|
|
73
|
+
SvgModule,
|
|
74
|
+
VerbenPopUpModule,
|
|
75
|
+
DataViewModule,
|
|
76
|
+
VerbenaButtonModule,
|
|
77
|
+
CardDataViewModule,
|
|
78
|
+
DropDownModule,
|
|
79
|
+
VerbenaSwitchModule,
|
|
80
|
+
TableFilterModule,
|
|
81
|
+
VisibleColumnModule,
|
|
82
|
+
SortTableModule,
|
|
83
|
+
DataExportModule,
|
|
84
|
+
TooltipModule,
|
|
85
|
+
VerbenDialogueModule,
|
|
86
|
+
VerbenaInputModule,
|
|
87
|
+
DataImportModule,
|
|
88
|
+
DataExportModule,
|
|
89
|
+
DataXportModule,
|
|
90
|
+
EllipseWordPipe,
|
|
91
|
+
FileRenderLibModule,
|
|
92
|
+
CompanyDatePipe,
|
|
93
|
+
RouterModule.forChild(appRoutes),
|
|
94
|
+
],
|
|
95
|
+
exports: [AddTicketComponent],
|
|
96
|
+
}]
|
|
97
|
+
}] });
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXRpY2tldC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvY29tcG9uZW50cy9hZGQtdGlja2V0L2FkZC10aWNrZXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsY0FBYyxFQUNkLGNBQWMsRUFDZCxlQUFlLEVBQ2YsU0FBUyxFQUNULGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FDaEIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRXZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7OztBQUN6RixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQVcsRUFBRSxDQUFDO0FBZ0NwQyxNQUFNLE9BQU8sa0JBQWtCO3dHQUFsQixrQkFBa0I7eUdBQWxCLGtCQUFrQixpQkE5QmQsa0JBQWtCLGFBRS9CLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGVBQWU7WUFDZixTQUFTO1lBQ1QsaUJBQWlCO1lBQ2pCLGNBQWM7WUFDZCxtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLGNBQWM7WUFDZCxtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2YsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixvQkFBb0I7WUFDcEIsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLGVBQWU7WUFDZixtQkFBbUI7WUFDbkIsZUFBZSw4QkFHUCxrQkFBa0I7eUdBRWpCLGtCQUFrQixZQTVCM0IsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsZUFBZTtZQUNmLFNBQVM7WUFDVCxpQkFBaUI7WUFDakIsY0FBYztZQUNkLG1CQUFtQjtZQUNuQixrQkFBa0I7WUFDbEIsY0FBYztZQUNkLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLGVBQWU7WUFDZixnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLG9CQUFvQjtZQUNwQixrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixlQUFlO1lBRWYsbUJBQW1CO1lBRW5CLFlBQVksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDOzs0RkFJdkIsa0JBQWtCO2tCQS9COUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDbEMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsU0FBUzt3QkFDVCxpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2Isb0JBQW9CO3dCQUNwQixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLFlBQVksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO3FCQUNqQztvQkFDRCxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtcbiAgQ2FyZERhdGFWaWV3TW9kdWxlLFxuICBEYXRhRXhwb3J0TW9kdWxlLFxuICBEYXRhVGFibGVNb2R1bGUsXG4gIERhdGFWaWV3TW9kdWxlLFxuICBEcm9wRG93bk1vZHVsZSxcbiAgU29ydFRhYmxlTW9kdWxlLFxuICBTdmdNb2R1bGUsXG4gIFRhYmxlRmlsdGVyTW9kdWxlLFxuICBUb29sdGlwTW9kdWxlLFxuICBWZXJiZW5hQnV0dG9uTW9kdWxlLFxuICBWZXJiZW5hSW5wdXRNb2R1bGUsXG4gIFZlcmJlbmFTd2l0Y2hNb2R1bGUsXG4gIFZlcmJlbkRpYWxvZ3VlTW9kdWxlLFxuICBWZXJiZW5Qb3BVcE1vZHVsZSxcbiAgVmlzaWJsZUNvbHVtbk1vZHVsZSxcbiAgRGF0YUltcG9ydE1vZHVsZSxcbiAgRGF0YVhwb3J0TW9kdWxlLFxufSBmcm9tICd2ZXJiZW4tbmctdWknO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBDb21wYW55RGF0ZVBpcGUgfSBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvcGlwZXMnO1xuaW1wb3J0IHsgRWxsaXBzZVdvcmRQaXBlIH0gZnJvbSAndmVyYmVuLXRpY2tldGluZy11aS9zcmMvbGliL3BpcGVzJztcbmltcG9ydCB7IEFkZFRpY2tldENvbXBvbmVudCB9IGZyb20gJy4vYWRkLXRpY2tldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZVJlbmRlckxpYk1vZHVsZSB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtcmVuZGVyJztcbmV4cG9ydCBjb25zdCBhcHBSb3V0ZXM6IFJvdXRlcyA9IFtdO1xuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQWRkVGlja2V0Q29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIERhdGFUYWJsZU1vZHVsZSxcbiAgICBTdmdNb2R1bGUsXG4gICAgVmVyYmVuUG9wVXBNb2R1bGUsXG4gICAgRGF0YVZpZXdNb2R1bGUsXG4gICAgVmVyYmVuYUJ1dHRvbk1vZHVsZSxcbiAgICBDYXJkRGF0YVZpZXdNb2R1bGUsXG4gICAgRHJvcERvd25Nb2R1bGUsXG4gICAgVmVyYmVuYVN3aXRjaE1vZHVsZSxcbiAgICBUYWJsZUZpbHRlck1vZHVsZSxcbiAgICBWaXNpYmxlQ29sdW1uTW9kdWxlLFxuICAgIFNvcnRUYWJsZU1vZHVsZSxcbiAgICBEYXRhRXhwb3J0TW9kdWxlLFxuICAgIFRvb2x0aXBNb2R1bGUsXG4gICAgVmVyYmVuRGlhbG9ndWVNb2R1bGUsXG4gICAgVmVyYmVuYUlucHV0TW9kdWxlLFxuICAgIERhdGFJbXBvcnRNb2R1bGUsXG4gICAgRGF0YUV4cG9ydE1vZHVsZSxcbiAgICBEYXRhWHBvcnRNb2R1bGUsXG4gICAgRWxsaXBzZVdvcmRQaXBlLFxuICAgIEZpbGVSZW5kZXJMaWJNb2R1bGUsXG4gICAgQ29tcGFueURhdGVQaXBlLFxuICAgIFJvdXRlck1vZHVsZS5mb3JDaGlsZChhcHBSb3V0ZXMpLFxuICBdLFxuICBleHBvcnRzOiBbQWRkVGlja2V0Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQWRkVGlja2V0TGliTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './public-api';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvY29tcG9uZW50cy9hZGQtdGlja2V0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './add-ticket.component';
|
|
2
|
+
export * from './add-ticket.module';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2FkZC10aWNrZXQvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FkZC10aWNrZXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYWRkLXRpY2tldC5tb2R1bGUnO1xuIl19
|
package/esm2022/src/lib/components/add-ticket/verben-ticketing-ui-src-lib-components-add-ticket.mjs
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyYmVuLXRpY2tldGluZy11aS1zcmMtbGliLWNvbXBvbmVudHMtYWRkLXRpY2tldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2FkZC10aWNrZXQvdmVyYmVuLXRpY2tldGluZy11aS1zcmMtbGliLWNvbXBvbmVudHMtYWRkLXRpY2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "verben-ticketing-ui/src/lib/services";
|
|
4
|
+
import * as i2 from "verben-ng-ui";
|
|
5
|
+
export class FileRenderComponent {
|
|
6
|
+
utilService;
|
|
7
|
+
envSvc;
|
|
8
|
+
fileUrl = null;
|
|
9
|
+
fileName = null;
|
|
10
|
+
constructor(utilService, envSvc) {
|
|
11
|
+
this.utilService = utilService;
|
|
12
|
+
this.envSvc = envSvc;
|
|
13
|
+
}
|
|
14
|
+
ngOnInit() {
|
|
15
|
+
if (this.fileUrl) {
|
|
16
|
+
this.fileName = this.fileUrl.split('/').pop() || null;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
openFile() {
|
|
20
|
+
if (!this.fileUrl) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
this.utilService.openFullRouteInNewWindow(`${this.envSvc.environment.FILE_BASE_URL}${this.fileUrl}`);
|
|
24
|
+
}
|
|
25
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FileRenderComponent, deps: [{ token: i1.UtilService }, { token: i1.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FileRenderComponent, selector: "app-file-render", inputs: { fileUrl: "fileUrl" }, ngImport: i0, template: "<div class=\"file-container p-2 flex items-center justify-between gap-3\">\n <div class=\"text-sm overflow-x-auto font-semibold\">{{ fileName }}</div>\n <span (click)=\"openFile()\" class=\"cursor-pointer\">\n <verben-svg\n [icon]=\"'download-icon'\"\n [width]=\"20\"\n [height]=\"20\"\n ></verben-svg>\n </span>\n</div>\n", styles: [".file-container{border:1px solid #ccc6fbb2;border-radius:5px}\n"], dependencies: [{ kind: "component", type: i2.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }] });
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FileRenderComponent, decorators: [{
|
|
29
|
+
type: Component,
|
|
30
|
+
args: [{ selector: 'app-file-render', template: "<div class=\"file-container p-2 flex items-center justify-between gap-3\">\n <div class=\"text-sm overflow-x-auto font-semibold\">{{ fileName }}</div>\n <span (click)=\"openFile()\" class=\"cursor-pointer\">\n <verben-svg\n [icon]=\"'download-icon'\"\n [width]=\"20\"\n [height]=\"20\"\n ></verben-svg>\n </span>\n</div>\n", styles: [".file-container{border:1px solid #ccc6fbb2;border-radius:5px}\n"] }]
|
|
31
|
+
}], ctorParameters: () => [{ type: i1.UtilService }, { type: i1.EnvironmentService }], propDecorators: { fileUrl: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}] } });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1yZW5kZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXRpY2tldGluZy11aS9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1yZW5kZXIvZmlsZS1yZW5kZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXRpY2tldGluZy11aS9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1yZW5kZXIvZmlsZS1yZW5kZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7QUFRekQsTUFBTSxPQUFPLG1CQUFtQjtJQUlWO0lBQWtDO0lBSDdDLE9BQU8sR0FBa0IsSUFBSSxDQUFDO0lBQ3ZDLFFBQVEsR0FBa0IsSUFBSSxDQUFDO0lBRS9CLFlBQW9CLFdBQXVCLEVBQVcsTUFBeUI7UUFBM0QsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFBVyxXQUFNLEdBQU4sTUFBTSxDQUFtQjtJQUFHLENBQUM7SUFFbkYsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDO1FBQ3hELENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLHdCQUF3QixDQUN2QyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQzFELENBQUM7SUFDSixDQUFDO3dHQW5CVSxtQkFBbUI7NEZBQW5CLG1CQUFtQix1RkNSaEMsNFZBVUE7OzRGREZhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7aUhBS2xCLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UsIEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1maWxlLXJlbmRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXJlbmRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9maWxlLXJlbmRlci5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRmlsZVJlbmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGZpbGVVcmw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBmaWxlTmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB1dGlsU2VydmljZTpVdGlsU2VydmljZSAsIHByaXZhdGUgZW52U3ZjOkVudmlyb25tZW50U2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maWxlVXJsKSB7XG4gICAgICB0aGlzLmZpbGVOYW1lID0gdGhpcy5maWxlVXJsLnNwbGl0KCcvJykucG9wKCkgfHwgbnVsbDtcbiAgICB9XG4gIH1cblxuICBvcGVuRmlsZSgpIHtcbiAgICBpZiAoIXRoaXMuZmlsZVVybCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnV0aWxTZXJ2aWNlLm9wZW5GdWxsUm91dGVJbk5ld1dpbmRvdyhcbiAgICAgIGAke3RoaXMuZW52U3ZjLmVudmlyb25tZW50LkZJTEVfQkFTRV9VUkx9JHt0aGlzLmZpbGVVcmx9YFxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lciBwLTIgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGdhcC0zXCI+XG4gIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtIG92ZXJmbG93LXgtYXV0byBmb250LXNlbWlib2xkXCI+e3sgZmlsZU5hbWUgfX08L2Rpdj5cbiAgPHNwYW4gKGNsaWNrKT1cIm9wZW5GaWxlKClcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XG4gICAgPHZlcmJlbi1zdmdcbiAgICAgIFtpY29uXT1cIidkb3dubG9hZC1pY29uJ1wiXG4gICAgICBbd2lkdGhdPVwiMjBcIlxuICAgICAgW2hlaWdodF09XCIyMFwiXG4gICAgPjwvdmVyYmVuLXN2Zz5cbiAgPC9zcGFuPlxuPC9kaXY+XG4iXX0=
|