verben-ticketing-ui 0.8.4 → 0.8.5

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.
@@ -44,11 +44,11 @@ export class TicketingService {
44
44
  accessorKey: 'Description',
45
45
  importKey: 'Description',
46
46
  },
47
- {
48
- id: 'currentHandler',
49
- header: 'CURRENT HANDLER',
50
- accessorKey: 'CurrentHandler',
51
- },
47
+ // {
48
+ // id: 'currentHandler',
49
+ // header: 'CURRENT HANDLER',
50
+ // accessorKey: 'CurrentHandler',
51
+ // },
52
52
  {
53
53
  id: 'lastHandler',
54
54
  header: 'LAST HANDLER',
@@ -237,4 +237,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
237
237
  providedIn: 'root',
238
238
  }]
239
239
  }], ctorParameters: () => [{ type: i1.UtilService }, { type: i1.HttpWebRequestService }, { type: i1.EnvironmentService }] });
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0aW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvY29tcG9uZW50cy90aWNrZXRpbmcvdGlja2V0aW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUUxRSxPQUFPLEVBQ0wsYUFBYSxHQUVkLE1BQU0sb0NBQW9DLENBQUM7QUFFNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFheEUsTUFBTSxPQUFPLGdCQUFnQjtJQUlqQjtJQUNBO0lBQ0E7SUFMVixRQUFRLEdBQVcsaUJBQWlCLENBQUM7SUFFckMsWUFDVSxXQUF3QixFQUN4QixNQUE2QixFQUM3QixNQUEwQjtRQUYxQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUF1QjtRQUM3QixXQUFNLEdBQU4sTUFBTSxDQUFvQjtJQUNqQyxDQUFDO0lBRUosSUFBSSxhQUFhO1FBQ2YsT0FBTztZQUNMO2dCQUNFLEVBQUUsRUFBRSxRQUFRO2dCQUNaLE1BQU0sRUFBRSxFQUFFO2dCQUNWLFNBQVMsRUFBRSxLQUFLO2FBQ2pCO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLFdBQVc7Z0JBQ2YsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsV0FBVyxFQUFFLFdBQVc7YUFDekI7WUFDRDtnQkFDRSxFQUFFLEVBQUUsTUFBTTtnQkFDVixNQUFNLEVBQUUsTUFBTTtnQkFDZCxXQUFXLEVBQUUsTUFBTTthQUNwQjtZQUNEO2dCQUNFLEVBQUUsRUFBRSxPQUFPO2dCQUNYLE1BQU0sRUFB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QyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxHQUFHLFlBQVksYUFBYSxFQUFFLENBQUM7WUFDakMsT0FBTztRQUNULENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxNQUFNLEdBQUcsR0FBMEIsQ0FBQztZQUN4QyxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBc0I7UUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDaEMsOEJBQThCLEVBQzlCLE9BQU8sRUFDUCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQ3JDLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixJQUFJLEdBQUcsWUFBWSxhQUFhLEVBQUUsQ0FBQztZQUNqQyxPQUFPO1FBQ1QsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLE1BQU0sR0FBRyxHQUFhLENBQUM7WUFDM0IsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7d0dBclFVLGdCQUFnQjs0R0FBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7NEZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERFRkFVTFRfUEFHRV9TSVpFIH0gZnJvbSAndmVyYmVuLXRpY2tldGluZy11aS9zcmMvbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbiwgS2V5VmFsdWVQYXJhbSB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgRXJyb3JSZXNwb25zZSxcbiAgVGVuYW50UHJpb3JpdHksXG59IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgUGFnZWRSZXN1bHQgfSBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IFNlYXJjaE9wZXJhdG9yIH0gZnJvbSAndmVyYmVuLXRpY2tldGluZy11aS9zcmMvbGliL21vZGVscyc7XG5pbXBvcnQgeyBTZWFyY2hQcm9wZXJ0eVNpZ24gfSBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IFNlYXJjaFByb3BlcnR5VmFsdWUgfSBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IFRlbmFudCB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgVGVuYW50Q29uZmlnIH0gZnJvbSAndmVyYmVuLXRpY2tldGluZy11aS9zcmMvbGliL21vZGVscyc7XG5pbXBvcnQgeyBUaWNrZXQgfSBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAndmVyYmVuLXRpY2tldGluZy11aS9zcmMvbGliL3NlcnZpY2VzJztcbmltcG9ydCB7IEh0dHBXZWJSZXF1ZXN0U2VydmljZSB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvc2VydmljZXMnO1xuaW1wb3J0IHsgQ29sdW1uRGVmaW5pdGlvbiB9IGZyb20gJ3ZlcmJlbi1uZy11aSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUaWNrZXRpbmdTZXJ2aWNlIHtcbiAgcGFnZVNpemU6IG51bWJlciA9IERFRkFVTFRfUEFHRV9TSVpFO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdXRpbFNlcnZpY2U6IFV0aWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VydmVyOiBIdHRwV2ViUmVxdWVzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbnZTdmM6IEVudmlyb25tZW50U2VydmljZSxcbiAgKSB7fVxuXG4gIGdldCB0aWNrZXRDb2x1bW5zKCk6IENvbHVtbkRlZmluaXRpb248VGlja2V0PltdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBpZDogJ3NlbGVjdCcsXG4gICAgICAgIGhlYWRlcjogJycsXG4gICAgICAgIGNhbkV4cG9ydDogZmFsc2UsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2NyZWF0ZWRBdCcsXG4gICAgICAgIGhlYWRlcjogJ0RBVEUnLFxuICAgICAgICBhY2Nlc3NvcktleTogJ0NyZWF0ZWRBdCcsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2NvZGUnLFxuICAgICAgICBoZWFkZXI6ICdDT0RFJyxcbiAgICAgICAgYWNjZXNzb3JLZXk6ICdDb2RlJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAndGl0bGUnLFxuICAgICAgICBoZWFkZXI6ICdUSVRMRScsXG4gICAgICAgIGFjY2Vzc29yS2V5OiAnVGl0bGUnLFxuICAgICAgICBpbXBvcnRLZXk6ICdUaXRsZScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgaGVhZGVyOiAnREVTQ1JJUFRJT04nLFxuICAgICAgICBhY2Nlc3NvcktleTogJ0Rlc2NyaXB0aW9uJyxcbiAgICAgICAgaW1wb3J0S2V5OiAnRGVzY3JpcHRpb24nLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdjdXJyZW50SGFuZGxlcicsXG4gICAgICAgIGhlYWRlcjogJ0NVUlJFTlQgSEFORExFUicsXG4gICAgICAgIGFjY2Vzc29yS2V5OiAnQ3VycmVudEhhbmRsZXInLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdsYXN0SGFuZGxlcicsXG4gICAgICAgIGhlYWRlcjogJ0xBU1QgSEFORExFUicsXG4gICAgICAgIGFjY2Vzc29yS2V5OiAnTGFzdEhhbmRsZXInLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdleGVjdXRpb25UaW1lJyxcbiAgICAgICAgaGVhZGVyOiAnRVhFQ1VUSU9OIFRJTUUnLFxuICAgICAgICBhY2Nlc3NvcktleTogJ0V4ZWN1dGlvblRpbWUnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdwcmlvcml0eScsXG4gICAgICAgIGhlYWRlcjogJ1BSSU9SSVRZJyxcbiAgICAgICAgYWNjZXNzb3JLZXk6ICdQcmlvcml0eScsXG4gICAgICAgIGltcG9ydEtleTogJ1ByaW9yaXR5JyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnc3RhdHVzJyxcbiAgICAgICAgaGVhZGVyOiAnU1RBVFVTJyxcbiAgICAgICAgYWNjZXNzb3JLZXk6ICdTdGF0dXMnLFxuICAgICAgICBpbXBvcnRLZXk6ICdTdGF0dXMnLFxuICAgICAgfSxcblxuICAgICAge1xuICAgICAgICBpZDogJ2FjdGlvbnMnLFxuICAgICAgICBoZWFkZXI6ICdBQ1RJT05TJyxcbiAgICAgICAgYWNjZXNzb3JGbjogKHJvdzogVGlja2V0KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJvdztcbiAgICAgICAgfSxcbiAgICAgICAgY2FuRXhwb3J0OiBmYWxzZSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIGFzeW5jIGdldEFsbEFwcHMoKTogUHJvbWlzZTxBcHBsaWNhdGlvbltdIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgcGF5bG9hZDogU2VhcmNoUHJvcGVydHlWYWx1ZVtdID0gW1xuICAgICAge1xuICAgICAgICBQcm9wZXJ0eU5hbWU6ICdUZW5hbnRJZCcsXG4gICAgICAgIEVudGl0eVZhbHVlOiAnJyxcbiAgICAgICAgT3BlcmF0b3I6IFNlYXJjaE9wZXJhdG9yLkFuZCxcbiAgICAgICAgU2lnbjogU2VhcmNoUHJvcGVydHlTaWduLk5FUSxcbiAgICAgIH0sXG4gICAgXTtcbiAgICB0aGlzLnV0aWxTZXJ2aWNlLnNlbmRCSSh0cnVlKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnNlcnZlci5wb3N0KFxuICAgICAgYFNlYXJjaEFwcGxpY2F0aW9ucy8wLzBgLFxuICAgICAgcGF5bG9hZCxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LkF1dGhlbnRpY2F0aW9uQVBJLFxuICAgICk7XG4gICAgdGhpcy51dGlsU2VydmljZS5zZW5kQkkoZmFsc2UpO1xuICAgIGlmIChyZXMgaW5zdGFuY2VvZiBFcnJvclJlc3BvbnNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciByZXN1bHQgPSAocmVzIGFzIFBhZ2VkUmVzdWx0PEFwcGxpY2F0aW9uPikuUmVzdWx0O1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gIH1cblxuICBhc3luYyBnZXRUZW5hbnRzQnlBcHAoYXBwOiBzdHJpbmcpOiBQcm9taXNlPFRlbmFudFtdIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgcGF5bG9hZDogU2VhcmNoUHJvcGVydHlWYWx1ZVtdID0gW1xuICAgICAge1xuICAgICAgICBQcm9wZXJ0eU5hbWU6ICdBcHBsaWNhdGlvbicsXG4gICAgICAgIEVudGl0eVZhbHVlOiBhcHAsXG4gICAgICAgIE9wZXJhdG9yOiBTZWFyY2hPcGVyYXRvci5BbmQsXG4gICAgICAgIFNpZ246IFNlYXJjaFByb3BlcnR5U2lnbi5FUSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIFByb3BlcnR5TmFtZTogJ1RlbmFudElkJyxcbiAgICAgICAgRW50aXR5VmFsdWU6ICcnLFxuICAgICAgICBPcGVyYXRvcjogU2VhcmNoT3BlcmF0b3IuQW5kLFxuICAgICAgICBTaWduOiBTZWFyY2hQcm9wZXJ0eVNpZ24uTkVRLFxuICAgICAgfSxcbiAgICBdO1xuICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKHRydWUpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuc2VydmVyLnBvc3QoXG4gICAgICBgU2VhcmNoVGVuYW50cy8wLzBgLFxuICAgICAgcGF5bG9hZCxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LkF1dGhlbnRpY2F0aW9uQVBJLFxuICAgICk7XG4gICAgY29uc3QgY29uZmlncyA9IGF3YWl0IHRoaXMuZ2V0VGVuYW50Q29uZmlnc0J5QXBwKGFwcCk7XG4gICAgdGhpcy51dGlsU2VydmljZS5zZW5kQkkoZmFsc2UpO1xuICAgIGlmIChyZXMgaW5zdGFuY2VvZiBFcnJvclJlc3BvbnNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciByZXN1bHQgPSAocmVzIGFzIFBhZ2VkUmVzdWx0PFRlbmFudD4pLlJlc3VsdDtcblxuICAgICAgaWYgKGNvbmZpZ3MpIHtcbiAgICAgICAgcmVzdWx0LmZvckVhY2goKHgpID0+IHtcbiAgICAgICAgICBjb25zdCBjb25maWcgPSBjb25maWdzLmZpbmQoKHkpID0+IHkuVGVuYW50SWQgPT0geC5Db2RlKTtcbiAgICAgICAgICBpZiAoY29uZmlnKSB7XG4gICAgICAgICAgICB4LkxvZ29VcmwgPSBjb25maWcuTG9nb1VybDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gIH1cblxuICBhc3luYyBnZXRQcmlvcml0aWVzRm9yVGVuYW50KFxuICAgIHRlbmFudDogc3RyaW5nLFxuICApOiBQcm9taXNlPFBhZ2VkUmVzdWx0PFRlbmFudFByaW9yaXR5PiB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHBheWxvYWQ6IFNlYXJjaFByb3BlcnR5VmFsdWVbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgUHJvcGVydHlOYW1lOiAnVGVuYW50SWQnLFxuICAgICAgICBFbnRpdHlWYWx1ZTogdGVuYW50LFxuICAgICAgICBPcGVyYXRvcjogU2VhcmNoT3BlcmF0b3IuQW5kLFxuICAgICAgICBTaWduOiBTZWFyY2hQcm9wZXJ0eVNpZ24uRVEsXG4gICAgICB9LFxuICAgIF07XG4gICAgdGhpcy51dGlsU2VydmljZS5zZW5kQkkodHJ1ZSk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5zZXJ2ZXIucG9zdChcbiAgICAgIGBUaWNrZXQvU2VhcmNoVGVuYW50UHJpb3JpdHkvMC8ke3RoaXMucGFnZVNpemV9YCxcbiAgICAgIHBheWxvYWQsXG4gICAgICB0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5UaWNrZXRpbmdBUEksXG4gICAgKTtcbiAgICB0aGlzLnV0aWxTZXJ2aWNlLnNlbmRCSShmYWxzZSk7XG4gICAgaWYgKHJlcyBpbnN0YW5jZW9mIEVycm9yUmVzcG9uc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHJlc3VsdCA9IHJlcyBhcyBQYWdlZFJlc3VsdDxUZW5hbnRQcmlvcml0eT47XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldEFsbFByaW9yaXRpZXNGb3JUZW5hbnQoXG4gICAgdGVuYW50OiBzdHJpbmcsXG4gICk6IFByb21pc2U8UGFnZWRSZXN1bHQ8VGVuYW50UHJpb3JpdHk+IHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgcGF5bG9hZDogU2VhcmNoUHJvcGVydHlWYWx1ZVtdID0gW1xuICAgICAge1xuICAgICAgICBQcm9wZXJ0eU5hbWU6ICdUZW5hbnRJZCcsXG4gICAgICAgIEVudGl0eVZhbHVlOiB0ZW5hbnQsXG4gICAgICAgIE9wZXJhdG9yOiBTZWFyY2hPcGVyYXRvci5BbmQsXG4gICAgICAgIFNpZ246IFNlYXJjaFByb3BlcnR5U2lnbi5FUSxcbiAgICAgIH0sXG4gICAgXTtcbiAgICB0aGlzLnV0aWxTZXJ2aWNlLnNlbmRCSSh0cnVlKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnNlcnZlci5wb3N0KFxuICAgICAgYFRpY2tldC9TZWFyY2hUZW5hbnRQcmlvcml0eS8wLzBgLFxuICAgICAgcGF5bG9hZCxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LlRpY2tldGluZ0FQSSxcbiAgICApO1xuICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKGZhbHNlKTtcbiAgICBpZiAocmVzIGluc3RhbmNlb2YgRXJyb3JSZXNwb25zZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgcmVzdWx0ID0gcmVzIGFzIFBhZ2VkUmVzdWx0PFRlbmFudFByaW9yaXR5PjtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG4gIGFzeW5jIGdldFRlbmFudENvbmZpZ3NCeUFwcChcbiAgICBhcHA6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxUZW5hbnRDb25maWdbXSB8IHVuZGVmaW5lZD4ge1xuICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKHRydWUpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuc2VydmVyLmdldChcbiAgICAgIGBHZXRUZW5hbnRDb25maWdzV2l0aFBhcmFtLyR7YXBwfS8wLzBgLFxuICAgICAgdGhpcy5lbnZTdmMuZW52aXJvbm1lbnQuQXV0aGVudGljYXRpb25BUEksXG4gICAgKTtcbiAgICB0aGlzLnV0aWxTZXJ2aWNlLnNlbmRCSShmYWxzZSk7XG4gICAgaWYgKHJlcyBpbnN0YW5jZW9mIEVycm9yUmVzcG9uc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHJlc3VsdCA9IChyZXMgYXMgUGFnZWRSZXN1bHQ8VGVuYW50Q29uZmlnPikuUmVzdWx0O1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gIH1cblxuICBhc3luYyBnZXRUaWNrZXRzRm9yVGVuYW50KFxuICAgIHRlbmFudDogc3RyaW5nLFxuICAgIHZpZXdBbGw6IGJvb2xlYW4gPSB0cnVlLFxuICAgIGFjdGl2ZVVzZXI6IHN0cmluZyA9ICcnLFxuICApOiBQcm9taXNlPFBhZ2VkUmVzdWx0PFRpY2tldD4gfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBwYXlsb2FkOiBTZWFyY2hQcm9wZXJ0eVZhbHVlW10gPSBbXG4gICAgICB7XG4gICAgICAgIFByb3BlcnR5TmFtZTogJ1RlbmFudElkJyxcbiAgICAgICAgRW50aXR5VmFsdWU6IHRlbmFudCxcbiAgICAgICAgT3BlcmF0b3I6IFNlYXJjaE9wZXJhdG9yLkFuZCxcbiAgICAgICAgU2lnbjogU2VhcmNoUHJvcGVydHlTaWduLkVRLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgaWYgKCF2aWV3QWxsKSB7XG4gICAgICBwYXlsb2FkLnB1c2goe1xuICAgICAgICBQcm9wZXJ0eU5hbWU6ICdUYWcnLFxuICAgICAgICBFbnRpdHlWYWx1ZTogYWN0aXZlVXNlcixcbiAgICAgICAgT3BlcmF0b3I6IFNlYXJjaE9wZXJhdG9yLkFuZCxcbiAgICAgICAgU2lnbjogU2VhcmNoUHJvcGVydHlTaWduLkVRLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy51dGlsU2VydmljZS5zZW5kQkkodHJ1ZSk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5zZXJ2ZXIucG9zdChcbiAgICAgIGBUaWNrZXQvU2VhcmNoVGlja2V0LzAvJHt0aGlzLnBhZ2VTaXplfWAsXG4gICAgICBwYXlsb2FkLFxuICAgICAgdGhpcy5lbnZTdmMuZW52aXJvbm1lbnQuVGlja2V0aW5nQVBJLFxuICAgICk7XG4gICAgdGhpcy51dGlsU2VydmljZS5zZW5kQkkoZmFsc2UpO1xuICAgIGlmIChyZXMgaW5zdGFuY2VvZiBFcnJvclJlc3BvbnNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciByZXN1bHQgPSByZXMgYXMgUGFnZWRSZXN1bHQ8VGlja2V0PjtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY2xvc2VUaWNrZXQocGF5bG9hZDogS2V5VmFsdWVQYXJhbSk6IFByb21pc2U8VGlja2V0IHwgdW5kZWZpbmVkPiB7XG4gICAgdGhpcy51dGlsU2VydmljZS5zZW5kQkkodHJ1ZSk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5zZXJ2ZXIucG9zdChcbiAgICAgIGBUaWNrZXQvQ2xvc2VUaWNrZXRXaWhDb21tZW50YCxcbiAgICAgIHBheWxvYWQsXG4gICAgICB0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5UaWNrZXRpbmdBUEksXG4gICAgKTtcbiAgICB0aGlzLnV0aWxTZXJ2aWNlLnNlbmRCSShmYWxzZSk7XG4gICAgaWYgKHJlcyBpbnN0YW5jZW9mIEVycm9yUmVzcG9uc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHJlc3VsdCA9IHJlcyBhcyBUaWNrZXQ7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgfVxufVxuIl19
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0aW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvY29tcG9uZW50cy90aWNrZXRpbmcvdGlja2V0aW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUUxRSxPQUFPLEVBQ0wsYUFBYSxHQUVkLE1BQU0sb0NBQW9DLENBQUM7QUFFNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFheEUsTUFBTSxPQUFPLGdCQUFnQjtJQUlqQjtJQUNBO0lBQ0E7SUFMVixRQUFRLEdBQVcsaUJBQWlCLENBQUM7SUFFckMsWUFDVSxXQUF3QixFQUN4QixNQUE2QixFQUM3QixNQUEwQjtRQUYxQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUF1QjtRQUM3QixXQUFNLEdBQU4sTUFBTSxDQUFvQjtJQUNqQyxDQUFDO0lBRUosSUFBSSxhQUFhO1FBQ2YsT0FBTztZQUNMO2dCQUNFLEVBQUUsRUFBRSxRQUFRO2dCQUNaLE1BQU0sRUFBRSxFQUFFO2dCQUNWLFNBQVMsRUFBRSxLQUFLO2FBQ2pCO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLFdBQVc7Z0JBQ2YsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsV0FBVyxFQUFFLFdBQVc7YUFDekI7WUFDRDtnQkFDRSxFQUFFLEVBQUUsTUFBTTtnQkFDVixNQUFNLEVBQUUsTUFBTTtnQkFDZCxXQUFXLEVBQUUsTUFBTTthQUNwQjtZQUNEO2dCQUNFLEVBQUUsRUFBRSxPQUFPO2dCQUNYLE1BQU0sRUFB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QUFDO1FBQy9CLElBQUksR0FBRyxZQUFZLGFBQWEsRUFBRSxDQUFDO1lBQ2pDLE9BQU87UUFDVCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksTUFBTSxHQUFHLEdBQTBCLENBQUM7WUFDeEMsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQXNCO1FBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2hDLDhCQUE4QixFQUM5QixPQUFPLEVBQ1AsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUNyQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxHQUFHLFlBQVksYUFBYSxFQUFFLENBQUM7WUFDakMsT0FBTztRQUNULENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxNQUFNLEdBQUcsR0FBYSxDQUFDO1lBQzNCLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7SUFDSCxDQUFDO3dHQXJRVSxnQkFBZ0I7NEdBQWhCLGdCQUFnQixjQUZmLE1BQU07OzRGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBERUZBVUxUX1BBR0VfU0laRSB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb24sIEtleVZhbHVlUGFyYW0gfSBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7XG4gIEVycm9yUmVzcG9uc2UsXG4gIFRlbmFudFByaW9yaXR5LFxufSBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IFBhZ2VkUmVzdWx0IH0gZnJvbSAndmVyYmVuLXRpY2tldGluZy11aS9zcmMvbGliL21vZGVscyc7XG5pbXBvcnQgeyBTZWFyY2hPcGVyYXRvciB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgU2VhcmNoUHJvcGVydHlTaWduIH0gZnJvbSAndmVyYmVuLXRpY2tldGluZy11aS9zcmMvbGliL21vZGVscyc7XG5pbXBvcnQgeyBTZWFyY2hQcm9wZXJ0eVZhbHVlIH0gZnJvbSAndmVyYmVuLXRpY2tldGluZy11aS9zcmMvbGliL21vZGVscyc7XG5pbXBvcnQgeyBUZW5hbnQgfSBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IFRlbmFudENvbmZpZyB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgVGlja2V0IH0gZnJvbSAndmVyYmVuLXRpY2tldGluZy11aS9zcmMvbGliL21vZGVscyc7XG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJ3ZlcmJlbi10aWNrZXRpbmctdWkvc3JjL2xpYi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBIdHRwV2ViUmVxdWVzdFNlcnZpY2UgfSBmcm9tICd2ZXJiZW4tdGlja2V0aW5nLXVpL3NyYy9saWIvc2VydmljZXMnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAndmVyYmVuLXRpY2tldGluZy11aS9zcmMvbGliL3NlcnZpY2VzJztcbmltcG9ydCB7IENvbHVtbkRlZmluaXRpb24gfSBmcm9tICd2ZXJiZW4tbmctdWknO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVGlja2V0aW5nU2VydmljZSB7XG4gIHBhZ2VTaXplOiBudW1iZXIgPSBERUZBVUxUX1BBR0VfU0laRTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHV0aWxTZXJ2aWNlOiBVdGlsU2VydmljZSxcbiAgICBwcml2YXRlIHNlcnZlcjogSHR0cFdlYlJlcXVlc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgZW52U3ZjOiBFbnZpcm9ubWVudFNlcnZpY2UsXG4gICkge31cblxuICBnZXQgdGlja2V0Q29sdW1ucygpOiBDb2x1bW5EZWZpbml0aW9uPFRpY2tldD5bXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdzZWxlY3QnLFxuICAgICAgICBoZWFkZXI6ICcnLFxuICAgICAgICBjYW5FeHBvcnQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdjcmVhdGVkQXQnLFxuICAgICAgICBoZWFkZXI6ICdEQVRFJyxcbiAgICAgICAgYWNjZXNzb3JLZXk6ICdDcmVhdGVkQXQnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdjb2RlJyxcbiAgICAgICAgaGVhZGVyOiAnQ09ERScsXG4gICAgICAgIGFjY2Vzc29yS2V5OiAnQ29kZScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3RpdGxlJyxcbiAgICAgICAgaGVhZGVyOiAnVElUTEUnLFxuICAgICAgICBhY2Nlc3NvcktleTogJ1RpdGxlJyxcbiAgICAgICAgaW1wb3J0S2V5OiAnVGl0bGUnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdkZXNjcmlwdGlvbicsXG4gICAgICAgIGhlYWRlcjogJ0RFU0NSSVBUSU9OJyxcbiAgICAgICAgYWNjZXNzb3JLZXk6ICdEZXNjcmlwdGlvbicsXG4gICAgICAgIGltcG9ydEtleTogJ0Rlc2NyaXB0aW9uJyxcbiAgICAgIH0sXG4gICAgICAvLyB7XG4gICAgICAvLyAgIGlkOiAnY3VycmVudEhhbmRsZXInLFxuICAgICAgLy8gICBoZWFkZXI6ICdDVVJSRU5UIEhBTkRMRVInLFxuICAgICAgLy8gICBhY2Nlc3NvcktleTogJ0N1cnJlbnRIYW5kbGVyJyxcbiAgICAgIC8vIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnbGFzdEhhbmRsZXInLFxuICAgICAgICBoZWFkZXI6ICdMQVNUIEhBTkRMRVInLFxuICAgICAgICBhY2Nlc3NvcktleTogJ0xhc3RIYW5kbGVyJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnZXhlY3V0aW9uVGltZScsXG4gICAgICAgIGhlYWRlcjogJ0VYRUNVVElPTiBUSU1FJyxcbiAgICAgICAgYWNjZXNzb3JLZXk6ICdFeGVjdXRpb25UaW1lJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAncHJpb3JpdHknLFxuICAgICAgICBoZWFkZXI6ICdQUklPUklUWScsXG4gICAgICAgIGFjY2Vzc29yS2V5OiAnUHJpb3JpdHknLFxuICAgICAgICBpbXBvcnRLZXk6ICdQcmlvcml0eScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3N0YXR1cycsXG4gICAgICAgIGhlYWRlcjogJ1NUQVRVUycsXG4gICAgICAgIGFjY2Vzc29yS2V5OiAnU3RhdHVzJyxcbiAgICAgICAgaW1wb3J0S2V5OiAnU3RhdHVzJyxcbiAgICAgIH0sXG5cbiAgICAgIHtcbiAgICAgICAgaWQ6ICdhY3Rpb25zJyxcbiAgICAgICAgaGVhZGVyOiAnQUNUSU9OUycsXG4gICAgICAgIGFjY2Vzc29yRm46IChyb3c6IFRpY2tldCkgPT4ge1xuICAgICAgICAgIHJldHVybiByb3c7XG4gICAgICAgIH0sXG4gICAgICAgIGNhbkV4cG9ydDogZmFsc2UsXG4gICAgICB9LFxuICAgIF07XG4gIH1cblxuICBhc3luYyBnZXRBbGxBcHBzKCk6IFByb21pc2U8QXBwbGljYXRpb25bXSB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHBheWxvYWQ6IFNlYXJjaFByb3BlcnR5VmFsdWVbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgUHJvcGVydHlOYW1lOiAnVGVuYW50SWQnLFxuICAgICAgICBFbnRpdHlWYWx1ZTogJycsXG4gICAgICAgIE9wZXJhdG9yOiBTZWFyY2hPcGVyYXRvci5BbmQsXG4gICAgICAgIFNpZ246IFNlYXJjaFByb3BlcnR5U2lnbi5ORVEsXG4gICAgICB9LFxuICAgIF07XG4gICAgdGhpcy51dGlsU2VydmljZS5zZW5kQkkodHJ1ZSk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5zZXJ2ZXIucG9zdChcbiAgICAgIGBTZWFyY2hBcHBsaWNhdGlvbnMvMC8wYCxcbiAgICAgIHBheWxvYWQsXG4gICAgICB0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5BdXRoZW50aWNhdGlvbkFQSSxcbiAgICApO1xuICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKGZhbHNlKTtcbiAgICBpZiAocmVzIGluc3RhbmNlb2YgRXJyb3JSZXNwb25zZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgcmVzdWx0ID0gKHJlcyBhcyBQYWdlZFJlc3VsdDxBcHBsaWNhdGlvbj4pLlJlc3VsdDtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0VGVuYW50c0J5QXBwKGFwcDogc3RyaW5nKTogUHJvbWlzZTxUZW5hbnRbXSB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHBheWxvYWQ6IFNlYXJjaFByb3BlcnR5VmFsdWVbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgUHJvcGVydHlOYW1lOiAnQXBwbGljYXRpb24nLFxuICAgICAgICBFbnRpdHlWYWx1ZTogYXBwLFxuICAgICAgICBPcGVyYXRvcjogU2VhcmNoT3BlcmF0b3IuQW5kLFxuICAgICAgICBTaWduOiBTZWFyY2hQcm9wZXJ0eVNpZ24uRVEsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBQcm9wZXJ0eU5hbWU6ICdUZW5hbnRJZCcsXG4gICAgICAgIEVudGl0eVZhbHVlOiAnJyxcbiAgICAgICAgT3BlcmF0b3I6IFNlYXJjaE9wZXJhdG9yLkFuZCxcbiAgICAgICAgU2lnbjogU2VhcmNoUHJvcGVydHlTaWduLk5FUSxcbiAgICAgIH0sXG4gICAgXTtcbiAgICB0aGlzLnV0aWxTZXJ2aWNlLnNlbmRCSSh0cnVlKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnNlcnZlci5wb3N0KFxuICAgICAgYFNlYXJjaFRlbmFudHMvMC8wYCxcbiAgICAgIHBheWxvYWQsXG4gICAgICB0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5BdXRoZW50aWNhdGlvbkFQSSxcbiAgICApO1xuICAgIGNvbnN0IGNvbmZpZ3MgPSBhd2FpdCB0aGlzLmdldFRlbmFudENvbmZpZ3NCeUFwcChhcHApO1xuICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKGZhbHNlKTtcbiAgICBpZiAocmVzIGluc3RhbmNlb2YgRXJyb3JSZXNwb25zZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgcmVzdWx0ID0gKHJlcyBhcyBQYWdlZFJlc3VsdDxUZW5hbnQ+KS5SZXN1bHQ7XG5cbiAgICAgIGlmIChjb25maWdzKSB7XG4gICAgICAgIHJlc3VsdC5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICAgICAgY29uc3QgY29uZmlnID0gY29uZmlncy5maW5kKCh5KSA9PiB5LlRlbmFudElkID09IHguQ29kZSk7XG4gICAgICAgICAgaWYgKGNvbmZpZykge1xuICAgICAgICAgICAgeC5Mb2dvVXJsID0gY29uZmlnLkxvZ29Vcmw7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0UHJpb3JpdGllc0ZvclRlbmFudChcbiAgICB0ZW5hbnQ6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxQYWdlZFJlc3VsdDxUZW5hbnRQcmlvcml0eT4gfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBwYXlsb2FkOiBTZWFyY2hQcm9wZXJ0eVZhbHVlW10gPSBbXG4gICAgICB7XG4gICAgICAgIFByb3BlcnR5TmFtZTogJ1RlbmFudElkJyxcbiAgICAgICAgRW50aXR5VmFsdWU6IHRlbmFudCxcbiAgICAgICAgT3BlcmF0b3I6IFNlYXJjaE9wZXJhdG9yLkFuZCxcbiAgICAgICAgU2lnbjogU2VhcmNoUHJvcGVydHlTaWduLkVRLFxuICAgICAgfSxcbiAgICBdO1xuICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKHRydWUpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuc2VydmVyLnBvc3QoXG4gICAgICBgVGlja2V0L1NlYXJjaFRlbmFudFByaW9yaXR5LzAvJHt0aGlzLnBhZ2VTaXplfWAsXG4gICAgICBwYXlsb2FkLFxuICAgICAgdGhpcy5lbnZTdmMuZW52aXJvbm1lbnQuVGlja2V0aW5nQVBJLFxuICAgICk7XG4gICAgdGhpcy51dGlsU2VydmljZS5zZW5kQkkoZmFsc2UpO1xuICAgIGlmIChyZXMgaW5zdGFuY2VvZiBFcnJvclJlc3BvbnNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciByZXN1bHQgPSByZXMgYXMgUGFnZWRSZXN1bHQ8VGVuYW50UHJpb3JpdHk+O1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gIH1cblxuICBhc3luYyBnZXRBbGxQcmlvcml0aWVzRm9yVGVuYW50KFxuICAgIHRlbmFudDogc3RyaW5nLFxuICApOiBQcm9taXNlPFBhZ2VkUmVzdWx0PFRlbmFudFByaW9yaXR5PiB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHBheWxvYWQ6IFNlYXJjaFByb3BlcnR5VmFsdWVbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgUHJvcGVydHlOYW1lOiAnVGVuYW50SWQnLFxuICAgICAgICBFbnRpdHlWYWx1ZTogdGVuYW50LFxuICAgICAgICBPcGVyYXRvcjogU2VhcmNoT3BlcmF0b3IuQW5kLFxuICAgICAgICBTaWduOiBTZWFyY2hQcm9wZXJ0eVNpZ24uRVEsXG4gICAgICB9LFxuICAgIF07XG4gICAgdGhpcy51dGlsU2VydmljZS5zZW5kQkkodHJ1ZSk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5zZXJ2ZXIucG9zdChcbiAgICAgIGBUaWNrZXQvU2VhcmNoVGVuYW50UHJpb3JpdHkvMC8wYCxcbiAgICAgIHBheWxvYWQsXG4gICAgICB0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5UaWNrZXRpbmdBUEksXG4gICAgKTtcbiAgICB0aGlzLnV0aWxTZXJ2aWNlLnNlbmRCSShmYWxzZSk7XG4gICAgaWYgKHJlcyBpbnN0YW5jZW9mIEVycm9yUmVzcG9uc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHJlc3VsdCA9IHJlcyBhcyBQYWdlZFJlc3VsdDxUZW5hbnRQcmlvcml0eT47XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgfVxuICBhc3luYyBnZXRUZW5hbnRDb25maWdzQnlBcHAoXG4gICAgYXBwOiBzdHJpbmcsXG4gICk6IFByb21pc2U8VGVuYW50Q29uZmlnW10gfCB1bmRlZmluZWQ+IHtcbiAgICB0aGlzLnV0aWxTZXJ2aWNlLnNlbmRCSSh0cnVlKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnNlcnZlci5nZXQoXG4gICAgICBgR2V0VGVuYW50Q29uZmlnc1dpdGhQYXJhbS8ke2FwcH0vMC8wYCxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LkF1dGhlbnRpY2F0aW9uQVBJLFxuICAgICk7XG4gICAgdGhpcy51dGlsU2VydmljZS5zZW5kQkkoZmFsc2UpO1xuICAgIGlmIChyZXMgaW5zdGFuY2VvZiBFcnJvclJlc3BvbnNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciByZXN1bHQgPSAocmVzIGFzIFBhZ2VkUmVzdWx0PFRlbmFudENvbmZpZz4pLlJlc3VsdDtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0VGlja2V0c0ZvclRlbmFudChcbiAgICB0ZW5hbnQ6IHN0cmluZyxcbiAgICB2aWV3QWxsOiBib29sZWFuID0gdHJ1ZSxcbiAgICBhY3RpdmVVc2VyOiBzdHJpbmcgPSAnJyxcbiAgKTogUHJvbWlzZTxQYWdlZFJlc3VsdDxUaWNrZXQ+IHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgcGF5bG9hZDogU2VhcmNoUHJvcGVydHlWYWx1ZVtdID0gW1xuICAgICAge1xuICAgICAgICBQcm9wZXJ0eU5hbWU6ICdUZW5hbnRJZCcsXG4gICAgICAgIEVudGl0eVZhbHVlOiB0ZW5hbnQsXG4gICAgICAgIE9wZXJhdG9yOiBTZWFyY2hPcGVyYXRvci5BbmQsXG4gICAgICAgIFNpZ246IFNlYXJjaFByb3BlcnR5U2lnbi5FUSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGlmICghdmlld0FsbCkge1xuICAgICAgcGF5bG9hZC5wdXNoKHtcbiAgICAgICAgUHJvcGVydHlOYW1lOiAnVGFnJyxcbiAgICAgICAgRW50aXR5VmFsdWU6IGFjdGl2ZVVzZXIsXG4gICAgICAgIE9wZXJhdG9yOiBTZWFyY2hPcGVyYXRvci5BbmQsXG4gICAgICAgIFNpZ246IFNlYXJjaFByb3BlcnR5U2lnbi5FUSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKHRydWUpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuc2VydmVyLnBvc3QoXG4gICAgICBgVGlja2V0L1NlYXJjaFRpY2tldC8wLyR7dGhpcy5wYWdlU2l6ZX1gLFxuICAgICAgcGF5bG9hZCxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LlRpY2tldGluZ0FQSSxcbiAgICApO1xuICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKGZhbHNlKTtcbiAgICBpZiAocmVzIGluc3RhbmNlb2YgRXJyb3JSZXNwb25zZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgcmVzdWx0ID0gcmVzIGFzIFBhZ2VkUmVzdWx0PFRpY2tldD47XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNsb3NlVGlja2V0KHBheWxvYWQ6IEtleVZhbHVlUGFyYW0pOiBQcm9taXNlPFRpY2tldCB8IHVuZGVmaW5lZD4ge1xuICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKHRydWUpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuc2VydmVyLnBvc3QoXG4gICAgICBgVGlja2V0L0Nsb3NlVGlja2V0V2loQ29tbWVudGAsXG4gICAgICBwYXlsb2FkLFxuICAgICAgdGhpcy5lbnZTdmMuZW52aXJvbm1lbnQuVGlja2V0aW5nQVBJLFxuICAgICk7XG4gICAgdGhpcy51dGlsU2VydmljZS5zZW5kQkkoZmFsc2UpO1xuICAgIGlmIChyZXMgaW5zdGFuY2VvZiBFcnJvclJlc3BvbnNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciByZXN1bHQgPSByZXMgYXMgVGlja2V0O1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -111,11 +111,11 @@ class TicketingService {
111
111
  accessorKey: 'Description',
112
112
  importKey: 'Description',
113
113
  },
114
- {
115
- id: 'currentHandler',
116
- header: 'CURRENT HANDLER',
117
- accessorKey: 'CurrentHandler',
118
- },
114
+ // {
115
+ // id: 'currentHandler',
116
+ // header: 'CURRENT HANDLER',
117
+ // accessorKey: 'CurrentHandler',
118
+ // },
119
119
  {
120
120
  id: 'lastHandler',
121
121
  header: 'LAST HANDLER',
@@ -1 +1 @@
1
- {"version":3,"file":"verben-ticketing-ui-src-lib-components-ticketing.mjs","sources":["../../../projects/verben-ticketing-ui/src/lib/components/ticketing/base-table-style.ts","../../../projects/verben-ticketing-ui/src/lib/components/ticketing/ticketing.service.ts","../../../projects/verben-ticketing-ui/src/lib/components/ticketing/ticketing.component.ts","../../../projects/verben-ticketing-ui/src/lib/components/ticketing/ticketing.component.html","../../../projects/verben-ticketing-ui/src/lib/components/ticketing/ticketing.module.ts","../../../projects/verben-ticketing-ui/src/lib/components/ticketing/verben-ticketing-ui-src-lib-components-ticketing.ts"],"sourcesContent":["export const baseStyle: any = {\n width: '100%',\n fontFamily: '\"Fraunces\", serif',\n fontSize: '125%',\n whiteSpace: 'nowrap',\n margin: '0',\n // border: '1px solid #D4A007',\n // borderRadius: '16px',\n // borderCollapse: 'separate',\n borderSpacing: '0',\n // tableLayout: 'fixed',\n overflow: 'hidden',\n rows: {\n // even: {\n // borderBottom: '1px solid #CCCCCC',\n // },\n // odd: {\n // borderBottom: '1px solid #CCCCCC',\n // },\n borderBottom: '1px solid #CCCCCC',\n height: '68px',\n },\n cells: {\n padding: '0.5rem 1rem',\n },\n header: {\n // stickyTop: true,\n // zIndex: 2,\n borderBottom: '1px solid #CCCCCC',\n borderTop: '1px solid #CCCCCC',\n // backgroundColor: '#EFF2FB',\n fontWeight: 'bold',\n textAlign: 'left',\n padding: '12px 16px',\n height: '30px',\n },\n footer: {\n // stickyBottom: true,\n // zIndex: 2,\n padding: '3px',\n },\n // body: {\n // background: '#fff',\n // padding: '4px 5px',\n // textAlign: 'center',\n // },\n // firstColumn: {\n // stickyLeft: true,\n // zIndex: 1,\n // },\n lastColumn: {\n // stickyRight: true,\n // zIndex: 1,\n },\n};\n","import { Injectable } from '@angular/core';\nimport { DEFAULT_PAGE_SIZE } from 'verben-ticketing-ui/src/lib/constants';\nimport { Application, KeyValueParam } from 'verben-ticketing-ui/src/lib/models';\nimport {\n ErrorResponse,\n TenantPriority,\n} from 'verben-ticketing-ui/src/lib/models';\nimport { PagedResult } from 'verben-ticketing-ui/src/lib/models';\nimport { SearchOperator } from 'verben-ticketing-ui/src/lib/models';\nimport { SearchPropertySign } from 'verben-ticketing-ui/src/lib/models';\nimport { SearchPropertyValue } from 'verben-ticketing-ui/src/lib/models';\nimport { Tenant } from 'verben-ticketing-ui/src/lib/models';\nimport { TenantConfig } from 'verben-ticketing-ui/src/lib/models';\nimport { Ticket } from 'verben-ticketing-ui/src/lib/models';\nimport { UtilService } from 'verben-ticketing-ui/src/lib/services';\nimport { HttpWebRequestService } from 'verben-ticketing-ui/src/lib/services';\nimport { EnvironmentService } from 'verben-ticketing-ui/src/lib/services';\nimport { ColumnDefinition } from 'verben-ng-ui';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TicketingService {\n pageSize: number = DEFAULT_PAGE_SIZE;\n\n constructor(\n private utilService: UtilService,\n private server: HttpWebRequestService,\n private envSvc: EnvironmentService,\n ) {}\n\n get ticketColumns(): ColumnDefinition<Ticket>[] {\n return [\n {\n id: 'select',\n header: '',\n canExport: false,\n },\n {\n id: 'createdAt',\n header: 'DATE',\n accessorKey: 'CreatedAt',\n },\n {\n id: 'code',\n header: 'CODE',\n accessorKey: 'Code',\n },\n {\n id: 'title',\n header: 'TITLE',\n accessorKey: 'Title',\n importKey: 'Title',\n },\n {\n id: 'description',\n header: 'DESCRIPTION',\n accessorKey: 'Description',\n importKey: 'Description',\n },\n {\n id: 'currentHandler',\n header: 'CURRENT HANDLER',\n accessorKey: 'CurrentHandler',\n },\n {\n id: 'lastHandler',\n header: 'LAST HANDLER',\n accessorKey: 'LastHandler',\n },\n {\n id: 'executionTime',\n header: 'EXECUTION TIME',\n accessorKey: 'ExecutionTime',\n },\n {\n id: 'priority',\n header: 'PRIORITY',\n accessorKey: 'Priority',\n importKey: 'Priority',\n },\n {\n id: 'status',\n header: 'STATUS',\n accessorKey: 'Status',\n importKey: 'Status',\n },\n\n {\n id: 'actions',\n header: 'ACTIONS',\n accessorFn: (row: Ticket) => {\n return row;\n },\n canExport: false,\n },\n ];\n }\n\n async getAllApps(): Promise<Application[] | undefined> {\n const payload: SearchPropertyValue[] = [\n {\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 `SearchApplications/0/0`,\n payload,\n this.envSvc.environment.AuthenticationAPI,\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return;\n } else {\n var result = (res as PagedResult<Application>).Result;\n return result;\n }\n }\n\n async getTenantsByApp(app: string): Promise<Tenant[] | undefined> {\n const payload: SearchPropertyValue[] = [\n {\n PropertyName: 'Application',\n EntityValue: app,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n },\n {\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 `SearchTenants/0/0`,\n payload,\n this.envSvc.environment.AuthenticationAPI,\n );\n const configs = await this.getTenantConfigsByApp(app);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return;\n } else {\n var result = (res as PagedResult<Tenant>).Result;\n\n if (configs) {\n result.forEach((x) => {\n const config = configs.find((y) => y.TenantId == x.Code);\n if (config) {\n x.LogoUrl = config.LogoUrl;\n }\n });\n }\n return result;\n }\n }\n\n async getPrioritiesForTenant(\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/${this.pageSize}`,\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 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 async getTenantConfigsByApp(\n app: string,\n ): Promise<TenantConfig[] | undefined> {\n this.utilService.sendBI(true);\n const res = await this.server.get(\n `GetTenantConfigsWithParam/${app}/0/0`,\n this.envSvc.environment.AuthenticationAPI,\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return;\n } else {\n var result = (res as PagedResult<TenantConfig>).Result;\n return result;\n }\n }\n\n async getTicketsForTenant(\n tenant: string,\n viewAll: boolean = true,\n activeUser: string = '',\n ): Promise<PagedResult<Ticket> | undefined> {\n const payload: SearchPropertyValue[] = [\n {\n PropertyName: 'TenantId',\n EntityValue: tenant,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n },\n ];\n\n if (!viewAll) {\n payload.push({\n PropertyName: 'Tag',\n EntityValue: activeUser,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n }\n\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `Ticket/SearchTicket/0/${this.pageSize}`,\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<Ticket>;\n return result;\n }\n }\n\n async closeTicket(payload: KeyValueParam): Promise<Ticket | undefined> {\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `Ticket/CloseTicketWihComment`,\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 Ticket;\n return result;\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnInit,\n QueryList,\n signal,\n ViewChild,\n ViewChildren,\n viewChildren,\n WritableSignal,\n} from '@angular/core';\nimport { DEFAULT_PAGE_SIZE } from 'verben-ticketing-ui/src/lib/constants';\nimport { Application, KeyValueParam } from 'verben-ticketing-ui/src/lib/models';\nimport { Tenant } from 'verben-ticketing-ui/src/lib/models';\nimport { PagedResult } from 'verben-ticketing-ui/src/lib/models';\nimport { Ticket } from 'verben-ticketing-ui/src/lib/models';\nimport { TicketStatus } from 'verben-ticketing-ui/src/lib/models';\nimport {\n UtilService,\n EnvironmentService,\n} from 'verben-ticketing-ui/src/lib/services';\nimport { HttpWebRequestService } from 'verben-ticketing-ui/src/lib/services';\n// import { AddAppComponent } from '@app/shared/components/add-app/add-app.component';\n// import { AddTenantComponent } from '@app/shared/components/add-tenant/add-tenant.component';\n// import { SharedModule } from '@app/shared/shared.module';\nimport { debounceTime, Subject } from 'rxjs';\nimport {\n ColumnDefinition,\n ColumnDirective,\n DataFilterType,\n DataTableComponent,\n DataViewComponent,\n IDataFilter,\n VerbenPopUpComponent,\n} from 'verben-ng-ui';\nimport { TicketingService } from './ticketing.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { ImportService } from 'verben-ticketing-ui/src/lib/services';\nimport { PermissionConfig } from 'verben-ticketing-ui/src/lib/models';\nimport { ErrorResponse } from 'verben-ticketing-ui/src/lib/models';\nimport { ObjectState } from 'verben-ticketing-ui/src/lib/models';\nimport { SearchPropertyValue } from 'verben-ticketing-ui/src/lib/models';\nimport { SearchOperator } from 'verben-ticketing-ui/src/lib/models';\nimport { FilterTypes } from 'verben-ticketing-ui/src/lib/models';\nimport { SearchPropertySign } from 'verben-ticketing-ui/src/lib/models';\nimport { SearchPropertyValueType } from 'verben-ticketing-ui/src/lib/models';\nimport { SortDirection } from 'verben-ticketing-ui/src/lib/models';\nimport { baseStyle } from './base-table-style';\n\nenum TicketPropertyName {\n CreatedAt = 'Created At',\n UpdatedAt = 'Updated At',\n Title = 'Title',\n Description = 'Description',\n CurrentHandler = 'Current Handler',\n Priority = 'Priority',\n Status = 'Status',\n}\n\nenum TicketPropertyMap {\n CreatedAt = 'CreatedAt',\n UpdatedAt = 'UpdatedAt',\n Title = 'Title',\n Description = 'Description',\n CurrentHandler = 'CurrentHandler',\n Priority = 'Priority',\n Status = 'Status',\n}\n\n@Component({\n selector: 'app-ticketing',\n templateUrl: './ticketing.component.html',\n styleUrl: './ticketing.component.css',\n})\nexport class TicketingComponent implements OnInit {\n @Input() permissionConfig: PermissionConfig | null = null;\n\n styles = baseStyle;\n // showAppForm: boolean = false;\n // showTenantForm: boolean = false;\n showTicketForm: boolean = false;\n // selectedApp: Application | null = null;\n // selectedTenant: Tenant | null = null;\n selectedTicket: Ticket | null = null;\n @Input() activeApp: string | null = null;\n @Input() activeTenant: string | null = null;\n @Input() activeUser: string | null = null;\n @Input() allowTicketClosing: boolean = false;\n activeTicket: Ticket | null = null;\n apps: Application[] = [];\n @Input() detailPath: string = '';\n tenants: Tenant[] = [];\n tickets: Ticket[] = [];\n ticketingAPI: string = ``;\n @Input() defaultCompany: string = '';\n @Input() baseUrl: string = ``;\n closureTicket: Ticket | null = null;\n closureReason: string = '';\n showClosureDialogue: boolean = false;\n pendingRef: TicketStatus = TicketStatus.Pending;\n visibleColumnDef: ColumnDefinition<any>[] = [];\n exportColumnDef: ColumnDefinition<any>[] = [];\n importedData: WritableSignal<any[]> = signal([]);\n columnTemplates = viewChildren<ColumnDirective>(ColumnDirective);\n @ViewChild('vdv') dataView!: DataViewComponent;\n @ViewChild('dt') tableView!: DataTableComponent<Ticket>;\n @ViewChildren('popup') popUps!: QueryList<VerbenPopUpComponent>;\n pageSize: number = DEFAULT_PAGE_SIZE;\n searchDebounceTime: number = 500;\n pageState: PagedResult<Ticket> | null = null;\n isOpen: boolean = false;\n openDropdownId: string | null = null;\n currentFilters: IDataFilter[] = [];\n currentSorts: IDataFilter[] = [];\n searchTerm$ = new Subject<string>();\n statusOptions: string[] = Object.keys(TicketStatus);\n visibleColumns: IDataFilter[] = [];\n filterArray: IDataFilter[] = [\n {\n name: TicketPropertyName.CreatedAt,\n type: DataFilterType.Date,\n checked: false,\n },\n {\n name: TicketPropertyName.UpdatedAt,\n type: DataFilterType.Date,\n checked: false,\n },\n {\n name: TicketPropertyName.Title,\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: TicketPropertyName.Description,\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: TicketPropertyName.CurrentHandler,\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: TicketPropertyName.Priority,\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: TicketPropertyName.Status,\n type: DataFilterType.String,\n checked: false,\n },\n ];\n\n sortOptions: IDataFilter[] = [\n {\n name: TicketPropertyName.CreatedAt,\n type: DataFilterType.Date,\n checked: false,\n },\n {\n name: TicketPropertyName.UpdatedAt,\n type: DataFilterType.Date,\n checked: false,\n },\n {\n name: TicketPropertyName.Title,\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: TicketPropertyName.Description,\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: TicketPropertyName.CurrentHandler,\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: TicketPropertyName.Priority,\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: TicketPropertyName.Status,\n type: DataFilterType.String,\n checked: false,\n },\n ];\n\n private currentSearchTerm: string = '';\n\n constructor(\n private utilService: UtilService,\n private server: HttpWebRequestService,\n private cdr: ChangeDetectorRef,\n public service: TicketingService,\n private route: ActivatedRoute,\n private importService: ImportService<Ticket>,\n private envSvc: EnvironmentService,\n ) {}\n\n async ngOnInit(): Promise<void> {\n this.visibleColumnDef = this.service.ticketColumns.filter(\n (x) => x.id != 'actions' || this.permissionConfig?.Actions['Create'],\n );\n\n if (\n this.allowTicketClosing &&\n this.permissionConfig &&\n this.permissionConfig.Actions['CloseTicket']\n ) {\n const insertIndex = Math.max(this.visibleColumnDef.length - 1, 0);\n\n this.visibleColumnDef.splice(insertIndex, 0, {\n id: 'close',\n header: '',\n canExport: false,\n });\n }\n this.exportColumnDef = this.service.ticketColumns.filter(\n (x) =>\n (x.id != 'actions' || this.permissionConfig?.Actions['Create']) &&\n x.id != 'description',\n );\n // console.log({ State: this.permissionConfig });\n this.visibleColumns = this.service.ticketColumns\n .filter(\n (x) => x.id != 'actions' || this.permissionConfig?.Actions['Create'],\n )\n .map((col) => ({\n checked: true,\n name: typeof col.header === 'string' ? col.header : col.id,\n type: DataFilterType.Bool,\n }));\n this.ticketingAPI = `${this.envSvc.environment.TicketingAPI}/Ticket`;\n\n if (this.activeTenant) {\n const viewAll: boolean =\n this.permissionConfig?.Actions['ViewAllTickets'] || false;\n\n const tickets = await this.service.getTicketsForTenant(\n this.activeTenant,\n viewAll,\n this.activeUser || '',\n );\n if (tickets) {\n this.pageState = tickets;\n const results = tickets.Result;\n this.tickets = results.map((x) => {\n return {\n ...x,\n Id: x.Code,\n };\n });\n\n this.cdr.markForCheck();\n }\n }\n\n this.searchTerm$\n .pipe(debounceTime(this.searchDebounceTime)) // Adjust debounce time here (in ms)\n .subscribe(async (searchTerm) => {\n this.currentSearchTerm = searchTerm;\n this.updateFiltersAndSorts(true);\n });\n }\n\n async loadMore() {\n if (!this.pageState) {\n return;\n }\n this.utilService.sendBI(true);\n const res = await this.loadMoreFiltersAndSorts();\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return;\n } else {\n this.pageState = res as PagedResult<Ticket>;\n var result = (res as PagedResult<Ticket>).Result;\n const mappedData: Ticket[] = result.map((x) => {\n return {\n ...x,\n Id: x.Code,\n };\n });\n this.tickets = this.tickets.concat(mappedData);\n }\n }\n\n async tableSaveTicket(form: Ticket, callBack: () => any) {\n if (form.Description.trim().length == 0) {\n this.utilService.showInfo('Description cannot be empty');\n return;\n }\n form.DataState =\n form.DataState == ObjectState.New ? ObjectState.New : ObjectState.Changed;\n form.Id = '';\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `Ticket/SaveTicket`,\n [form],\n this.envSvc.environment.TicketingAPI,\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n } else {\n this.utilService.showSuccess('Ticket saved successfully');\n const result = res as Ticket[];\n if (result.length > 0) {\n var resultItem = result[0];\n const itemIndex = this.tickets.findIndex((x) => x == form);\n if (itemIndex > -1) {\n this.tickets[itemIndex].Code = resultItem.Code;\n this.tickets[itemIndex].Id = resultItem.Code;\n this.tickets[itemIndex].DataState = resultItem.DataState;\n this.tickets[itemIndex].TenantId = resultItem.TenantId;\n this.tickets[itemIndex].ServiceName = resultItem.ServiceName;\n this.tickets = this.tickets.map((x) => x);\n this.cacheItem(this.tickets[itemIndex]);\n }\n callBack();\n }\n }\n }\n\n updateTable() {\n this.tickets = this.tickets.map((x) => x);\n }\n\n closePopUp() {\n this.openDropdownId = null;\n this.popUps.forEach((popUp) => {\n if (popUp.dropdownOpen) {\n popUp.toggleDropdown();\n }\n });\n }\n\n onViewChange(isGridView: boolean): void {}\n\n showTableView: boolean = true;\n\n onSelectionChange(selectedRows: Ticket[]) {}\n\n onColumnsUpdated(updatedColumns: IDataFilter[]) {\n const updatedColumnDef: ColumnDefinition<Ticket>[] = [];\n updatedColumns.forEach((col) => {\n const matchingCol = this.service.ticketColumns.find(\n (column) => column.header === col.name || column.id === col.name,\n );\n if (matchingCol) {\n updatedColumnDef.push(matchingCol);\n }\n });\n\n this.visibleColumnDef = [...updatedColumnDef];\n }\n\n exportFiltersAndSorts = async (pageState: {\n skip: number;\n limit: number;\n }) => {\n var payload: SearchPropertyValue[] = this.currentFilters.map((x) => {\n return {\n PropertyName:\n TicketPropertyMap[\n x.name.split(' ').join('') as keyof typeof TicketPropertyMap\n ],\n EntityValue: x.value,\n Operator: SearchOperator.And,\n Sign:\n x.condition && Object.keys(FilterTypes).includes(x.condition)\n ? (FilterTypes[\n x.condition as keyof typeof FilterTypes\n ] as unknown as SearchPropertySign)\n : SearchPropertySign.EQ,\n Type:\n x.name == TicketPropertyName.CreatedAt ||\n x.name == TicketPropertyName.UpdatedAt\n ? SearchPropertyValueType.Date\n : SearchPropertyValueType.String,\n };\n });\n // payload.push({\n // PropertyName: 'APIKey',\n // EntityValue: this.envSvc.environment.APIKey,\n // Operator: SearchOperator.And,\n // Sign: SearchPropertySign.EQ,\n // });\n for (let sort of this.currentSorts) {\n payload.push({\n PropertyName:\n TicketPropertyMap[\n sort.name.split(' ').join('') as keyof typeof TicketPropertyMap\n ],\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n Sort:\n sort.value.toLowerCase() == SortDirection.Asc.toLowerCase()\n ? SortDirection.Asc\n : sort.value.toLowerCase() == SortDirection.Desc.toLowerCase()\n ? SortDirection.Desc\n : SortDirection.None,\n });\n }\n\n const searchPayload: SearchPropertyValue[] = [];\n\n // if (this.activeApp) {\n // payload.push({\n // PropertyName: 'App',\n // EntityValue: this.activeApp.Code,\n // Operator: SearchOperator.And,\n // Sign: SearchPropertySign.EQ,\n // });\n // searchPayload.push({\n // PropertyName: 'App',\n // EntityValue: this.activeApp.Code,\n // Operator: SearchOperator.And,\n // Sign: SearchPropertySign.EQ,\n // });\n // }\n\n const searchTermExists = this.currentSearchTerm.trim().length > 0;\n\n if (searchTermExists) {\n Object.values(TicketPropertyMap).forEach((property) => {\n searchPayload.push({\n PropertyName: property,\n EntityValue: this.currentSearchTerm.trim(),\n Operator: SearchOperator.Or,\n Sign: SearchPropertySign.LIKE,\n });\n });\n }\n\n if (this.activeTenant) {\n payload.push({\n PropertyName: 'TenantId',\n EntityValue: this.activeTenant,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n searchPayload.push({\n PropertyName: 'TenantId',\n EntityValue: this.activeTenant,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n }\n\n const viewAll: boolean =\n this.permissionConfig?.Actions['ViewAllTickets'] || false;\n\n if (!viewAll) {\n payload.push({\n PropertyName: 'Tag',\n EntityValue: this.activeUser || '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n searchPayload.push({\n PropertyName: 'Tag',\n EntityValue: this.activeUser || '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n }\n\n this.utilService.sendBI(true);\n const res = searchTermExists\n ? await this.server.post(\n `Ticket/SearchTicket/${pageState.skip}/${pageState.limit}`,\n searchPayload,\n this.envSvc.environment.TicketingAPI,\n )\n : payload.length == 0\n ? await this.server.get(\n `Ticket/GetTicket/${pageState.skip}/${pageState.limit}`,\n this.envSvc.environment.TicketingAPI,\n )\n : await this.server.post(\n `Ticket/SearchTicket/${pageState.skip}/${pageState.limit}`,\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<Ticket>).Result;\n return result;\n }\n };\n async updateFiltersAndSorts(isSearch: boolean = false) {\n if (!isSearch) {\n this.dataView.onClearSearch();\n this.currentSearchTerm = '';\n this.cdr.detectChanges();\n const clickEvent = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window,\n });\n document.dispatchEvent(clickEvent);\n }\n var payload: SearchPropertyValue[] = this.currentFilters.map((x) => {\n return {\n PropertyName:\n TicketPropertyMap[\n x.name.split(' ').join('') as keyof typeof TicketPropertyMap\n ],\n EntityValue: x.value,\n Operator: SearchOperator.And,\n Sign:\n x.condition && Object.keys(FilterTypes).includes(x.condition)\n ? (FilterTypes[\n x.condition as keyof typeof FilterTypes\n ] as unknown as SearchPropertySign)\n : SearchPropertySign.EQ,\n Type:\n x.name == TicketPropertyName.CreatedAt ||\n x.name == TicketPropertyName.UpdatedAt\n ? SearchPropertyValueType.Date\n : SearchPropertyValueType.String,\n };\n });\n // payload.push({\n // PropertyName: 'APIKey',\n // EntityValue: this.envSvc.environment.APIKey,\n // Operator: SearchOperator.And,\n // Sign: SearchPropertySign.EQ,\n // });\n for (let sort of this.currentSorts) {\n payload.push({\n PropertyName:\n TicketPropertyMap[\n sort.name.split(' ').join('') as keyof typeof TicketPropertyMap\n ],\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n Sort:\n sort.value.toLowerCase() == SortDirection.Asc.toLowerCase()\n ? SortDirection.Asc\n : sort.value.toLowerCase() == SortDirection.Desc.toLowerCase()\n ? SortDirection.Desc\n : SortDirection.None,\n });\n }\n const searchPayload: SearchPropertyValue[] = [];\n\n // if (this.activeApp) {\n // payload.push({\n // PropertyName: 'App',\n // EntityValue: this.activeApp.Code,\n // Operator: SearchOperator.And,\n // Sign: SearchPropertySign.EQ,\n // });\n // searchPayload.push({\n // PropertyName: 'App',\n // EntityValue: this.activeApp.Code,\n // Operator: SearchOperator.And,\n // Sign: SearchPropertySign.EQ,\n // });\n // }\n\n const searchTermExists = this.currentSearchTerm.trim().length > 0;\n\n if (searchTermExists) {\n Object.values(TicketPropertyMap).forEach((property) => {\n searchPayload.push({\n PropertyName: property,\n EntityValue: this.currentSearchTerm.trim(),\n Operator: SearchOperator.Or,\n Sign: SearchPropertySign.LIKE,\n });\n });\n }\n\n if (this.activeTenant) {\n payload.push({\n PropertyName: 'TenantId',\n EntityValue: this.activeTenant,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n searchPayload.push({\n PropertyName: 'TenantId',\n EntityValue: this.activeTenant,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n }\n\n const viewAll: boolean =\n this.permissionConfig?.Actions['ViewAllTickets'] || false;\n\n if (!viewAll) {\n payload.push({\n PropertyName: 'Tag',\n EntityValue: this.activeUser || '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n searchPayload.push({\n PropertyName: 'Tag',\n EntityValue: this.activeUser || '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n }\n\n this.utilService.sendBI(true);\n const res = searchTermExists\n ? await this.server.post(\n `Ticket/SearchTicket/0/${this.pageSize}`,\n searchPayload,\n this.envSvc.environment.TicketingAPI,\n )\n : payload.length == 0\n ? await this.server.get(\n `Ticket/GetTicket/0/${this.pageSize}`,\n this.envSvc.environment.TicketingAPI,\n )\n : await this.server.post(\n `Ticket/SearchTicket/0/${this.pageSize}`,\n payload,\n this.envSvc.environment.TicketingAPI,\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.currentFilters = [];\n this.currentSorts = [];\n return undefined;\n } else {\n this.pageState = res as PagedResult<Ticket>;\n var result = (res as PagedResult<Ticket>).Result;\n this.tickets = result.map((x) => {\n return {\n ...x,\n Id: x.Code,\n };\n });\n }\n }\n async loadMoreFiltersAndSorts(): Promise<PagedResult<Ticket> | undefined> {\n if (!this.pageState) {\n return;\n }\n\n var payload: SearchPropertyValue[] = this.currentFilters.map((x) => {\n return {\n PropertyName:\n TicketPropertyMap[\n x.name.split(' ').join('') as keyof typeof TicketPropertyMap\n ],\n EntityValue: x.value,\n Operator: SearchOperator.And,\n Sign:\n x.condition && Object.keys(FilterTypes).includes(x.condition)\n ? (FilterTypes[\n x.condition as keyof typeof FilterTypes\n ] as unknown as SearchPropertySign)\n : SearchPropertySign.EQ,\n Type:\n x.name == TicketPropertyName.CreatedAt ||\n x.name == TicketPropertyName.UpdatedAt\n ? SearchPropertyValueType.Date\n : SearchPropertyValueType.String,\n };\n });\n for (let sort of this.currentSorts) {\n payload.push({\n PropertyName:\n TicketPropertyMap[\n sort.name.split(' ').join('') as keyof typeof TicketPropertyMap\n ],\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n Sort:\n sort.value.toLowerCase() == SortDirection.Asc.toLowerCase()\n ? SortDirection.Asc\n : sort.value.toLowerCase() == SortDirection.Desc.toLowerCase()\n ? SortDirection.Desc\n : SortDirection.None,\n });\n }\n const searchPayload: SearchPropertyValue[] = [];\n\n // if (this.activeApp) {\n // payload.push({\n // PropertyName: 'App',\n // EntityValue: this.activeApp.Code,\n // Operator: SearchOperator.And,\n // Sign: SearchPropertySign.EQ,\n // });\n // searchPayload.push({\n // PropertyName: 'App',\n // EntityValue: this.activeApp.Code,\n // Operator: SearchOperator.And,\n // Sign: SearchPropertySign.EQ,\n // });\n // }\n\n const searchTermExists = this.currentSearchTerm.trim().length > 0;\n\n if (searchTermExists) {\n Object.values(TicketPropertyMap).forEach((property) => {\n searchPayload.push({\n PropertyName: property,\n EntityValue: this.currentSearchTerm.trim(),\n Operator: SearchOperator.Or,\n Sign: SearchPropertySign.LIKE,\n });\n });\n }\n\n if (this.activeTenant) {\n payload.push({\n PropertyName: 'TenantId',\n EntityValue: this.activeTenant,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n searchPayload.push({\n PropertyName: 'TenantId',\n EntityValue: this.activeTenant,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n }\n\n const viewAll: boolean =\n this.permissionConfig?.Actions['ViewAllTickets'] || false;\n\n if (!viewAll) {\n payload.push({\n PropertyName: 'Tag',\n EntityValue: this.activeUser || '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n searchPayload.push({\n PropertyName: 'Tag',\n EntityValue: this.activeUser || '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n }\n\n this.utilService.sendBI(true);\n const res = searchTermExists\n ? await this.server.post(\n `Ticket/SearchTicket/0/${this.pageSize}`,\n searchPayload,\n this.envSvc.environment.TicketingAPI,\n )\n : payload.length == 0\n ? await this.server.get(\n `Ticket/GetTicket/${this.pageState.Skip}/${this.pageSize}`,\n this.envSvc.environment.TicketingAPI,\n )\n : await this.server.post(\n `Ticket/SearchTicket/${this.pageState.Skip}/${this.pageSize}`,\n payload,\n this.envSvc.environment.TicketingAPI,\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return undefined;\n } else {\n var result = res as PagedResult<Ticket>;\n return result;\n }\n }\n\n onFilterUpdated(updatedFilters: IDataFilter[] | string) {\n // Ensure updatedFilters is an array\n if (Array.isArray(updatedFilters)) {\n this.currentFilters = updatedFilters;\n this.updateFiltersAndSorts();\n }\n }\n onSortUpdated(updatedSorts: IDataFilter[]) {\n this.currentSorts = updatedSorts;\n this.updateFiltersAndSorts();\n }\n\n handleSearch(event: { key: string; value: string }) {\n this.searchTerm$.next(event.value);\n }\n\n handleExport(exportedData: Partial<any>[]) {\n // console.log('Exported data:', exportedData);\n this.downloadCSV(exportedData);\n }\n\n isFilteredState(): boolean {\n return (\n this.currentSearchTerm.trim().length > 0 || this.currentFilters.length > 0\n );\n }\n\n private 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 // get defaultCompany(): string {\n // const check = this.store.get(AppKey.USER);\n // if (!check) {\n // return '';\n // }\n // const user: User = (this.store.get(AppKey.USER) as { User: User }).User;\n // return user.DefaultCompany || '';\n // }\n\n onComplete(event: any[]) {\n var defaultItem: Ticket = {\n Title: '',\n Description: '',\n App: this.activeApp ? this.activeApp : '',\n Status: TicketStatus.Pending,\n Company: this.defaultCompany,\n Messages: [],\n FileData: [],\n FileUrls: [],\n Id: this.tickets.length.toString(),\n id: '',\n Code: '',\n TenantId: this.activeTenant ? this.activeTenant : '',\n ServiceName: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n Tag: this.activeUser || undefined,\n };\n this.importService.onComplete(\n event,\n defaultItem,\n 'Ticket/SaveTicket',\n this.envSvc.environment.TicketingAPI,\n 'Ticket',\n (items: Ticket[]) => {\n this.tickets = this.tickets.concat(items);\n },\n this.pageState,\n );\n }\n\n tableCache = new Map<string, Ticket>();\n\n cacheItem(item: Ticket) {\n const cacheKey = item.Id;\n this.tableCache.set(cacheKey, JSON.parse(JSON.stringify(item)));\n }\n\n restoreCache(item: Ticket) {\n const cacheKey = item.Id;\n const itemCache = this.tableCache.get(cacheKey);\n if (itemCache) {\n item.Description = itemCache.Description;\n item.Priority = itemCache.Priority;\n item.Status = itemCache.Status;\n }\n this.tableCache.delete(cacheKey);\n }\n\n // onAppSelected(app: Application | null) {\n // this.activeApp = app;\n // // if (app) {\n // // const tenants = await this.service.getTenantsByApp(app.Code);\n // // if (tenants) {\n // // this.tenants = tenants;\n // // }\n // // }\n // }\n\n onAppListUpdated(apps: Application[]) {\n this.apps = apps;\n }\n\n onTenantListUpdated(tenants: Tenant[]) {\n this.tenants = tenants;\n }\n\n getLogoUrl(url: string) {\n return `${this.envSvc.environment.AuthenticationAPI}/${url}`;\n }\n\n addNewTicket() {\n this.selectedTicket = null;\n this.showTicketForm = true;\n }\n\n // editApp(app: Application) {\n // this.selectedApp = app;\n // this.showAppForm = true;\n // }\n\n // editTenant(tenant: Tenant) {\n // this.selectedTenant = tenant;\n // this.showTenantForm = true;\n // }\n\n editTicket(ticket: Ticket) {\n this.selectedTicket = ticket;\n this.showTicketForm = true;\n }\n\n // onAppModalClose() {\n // this.showAppForm = false;\n // this.selectedApp = null;\n // }\n\n // onTenantModalClose() {\n // this.showTenantForm = false;\n // this.selectedTenant = null;\n // }\n\n onTicketModalClose() {\n this.showTicketForm = false;\n this.selectedTicket = null;\n }\n\n // onAppSave(app: Application) {\n // const idx = this.apps.findIndex((x) => x.Code == app.Code);\n\n // if (app.Code.trim().length > 0 && idx > -1) {\n // this.apps[idx].Name = app.Name;\n // this.apps[idx].Description = app.Description;\n // this.apps[idx].DataState = app.DataState;\n // } else {\n // this.apps.push(app);\n // }\n // }\n\n // onTenantSave(tenant: Tenant) {\n // const idx = this.tenants.findIndex((x) => x.Code == tenant.Code);\n\n // if (tenant.Code.trim().length > 0 && idx > -1) {\n // this.tenants[idx].Name = tenant.Name;\n // this.tenants[idx].Description = tenant.Description;\n // this.tenants[idx].DataState = tenant.DataState;\n // } else {\n // this.tenants.push(tenant);\n // }\n // }\n\n onTicketSave(ticket: Ticket) {\n const idx = this.tickets.findIndex((x) => x.Code == ticket.Code);\n\n // console.log({ Tickets: this.tickets, Ticket: ticket, idx: idx });\n if (ticket.Code.trim().length > 0 && idx > -1) {\n this.tickets[idx].Title = ticket.Title;\n this.tickets[idx].Description = ticket.Description;\n // this.tickets[idx].CurrentHandler = ticket.CurrentHandler;\n this.tickets[idx].Priority = ticket.Priority;\n this.tickets[idx].Status = ticket.Status;\n this.tickets[idx].FileUrls = ticket.FileUrls;\n this.tickets[idx].DataState = ticket.DataState;\n } else {\n this.tickets.unshift(ticket);\n }\n this.updateTable();\n }\n\n viewTicketDetails(ticket: Ticket) {\n this.utilService.goToPage(`${this.detailPath}`, ticket.Code);\n }\n\n cssColorToHex(color: string): string | null {\n const ctx = document.createElement('canvas').getContext('2d');\n\n if (!ctx) return null;\n\n ctx.fillStyle = '#000'; // set a known color\n ctx.fillStyle = color; // assign any CSS-valid color\n\n const computed = ctx.fillStyle;\n // If the browser does NOT understand the value, it won’t change from '#000'\n if (\n computed.toLowerCase() === '#000000' &&\n color.toLowerCase() !== 'black'\n ) {\n return null; // invalid color name or unsupported value\n }\n\n return computed.toUpperCase(); // returns hex like #1E90FF\n }\n softenColor(hex: string, lightenPercent = 55, alphaPercent = 55): string {\n // Remove #\n if (!hex.startsWith('#')) {\n const converted = this.cssColorToHex(hex);\n if (converted) {\n hex = converted;\n }\n }\n\n hex = hex.replace(/^#/, '');\n if (hex.length === 3) {\n // Convert shorthand (#abc → #aabbcc)\n hex = hex\n .split('')\n .map((x) => x + x)\n .join('');\n }\n\n const num = parseInt(hex, 16);\n let r = (num >> 16) & 0xff;\n let g = (num >> 8) & 0xff;\n let b = num & 0xff;\n\n // Lighten toward white by the given percentage\n r = Math.min(255, Math.round(r + (255 - r) * (lightenPercent / 100)));\n g = Math.min(255, Math.round(g + (255 - g) * (lightenPercent / 100)));\n b = Math.min(255, Math.round(b + (255 - b) * (lightenPercent / 100)));\n\n // Convert alpha percent to 2-digit hex\n const alpha = Math.round((alphaPercent / 100) * 255);\n const aHex = alpha.toString(16).padStart(2, '0').toUpperCase();\n\n return `#${r.toString(16).padStart(2, '0').toUpperCase()}${g\n .toString(16)\n .padStart(2, '0')\n .toUpperCase()}${b.toString(16).padStart(2, '0').toUpperCase()}${aHex}`;\n }\n\n isDisabled(): boolean {\n if (!this.selectedTicket) {\n return false;\n }\n\n return this.selectedTicket.Status != this.pendingRef;\n }\n\n toggleClosureDialogue(item: Ticket) {\n this.closureTicket = item;\n this.showClosureDialogue = !this.showClosureDialogue;\n }\n\n onModalOpen(event: any) {}\n\n onModalClose(event: any) {\n this.closureReason = '';\n this.closureTicket = null;\n this.showClosureDialogue = false;\n }\n\n canClose(item: Ticket): boolean {\n return item.Status == TicketStatus.Pending;\n }\n\n async closeTicket() {\n if (!this.closureTicket || !this.canClose(this.closureTicket)) {\n return;\n }\n\n if (this.closureReason.trim().length == 0) {\n this.utilService.showInfo('Reason cannot be empty');\n return;\n }\n\n const payload: KeyValueParam = {\n Key: this.closureTicket.Code,\n Value: this.activeUser || '',\n Other: this.closureReason,\n };\n\n const res = await this.service.closeTicket(payload);\n if (res) {\n this.utilService.showSuccess('Ticket closed successfully');\n this.closureTicket.Status = res.Status;\n this.closureTicket.LastHandler = res.LastHandler;\n this.closureTicket.ExecutionTime = res.ExecutionTime;\n this.updateTable();\n this.onModalClose('');\n }\n }\n}\n","<div class=\"h-full flex flex-col gap-4\">\n <div class=\"flex flex-col gap-4\">\n <!-- <app-tenant-selector\n (onAppSelected)=\"this.onAppSelected($event)\"\n (onTenantSelected)=\"onTenantSelected($event)\"\n (onAppsUpdated)=\"this.onAppListUpdated($event)\"\n (onTenantsUpdated)=\"this.onTenantListUpdated($event)\"\n ></app-tenant-selector> -->\n\n <div class=\"tickets-section flex flex-col gap-2\">\n <div class=\"ticket-table-container\">\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: !permissionConfig || permissionConfig.Actions['Export'],\n isSelect: true,\n isCreate: false,\n isToggle: false,\n isImport: !permissionConfig || permissionConfig.Actions['Import'],\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedColumnCount]=\"0\"\n [selectedSortCount]=\"0\"\n [selectedFilterTableCount]=\"0\"\n (viewChange)=\"onViewChange($event)\"\n (onSearchChange)=\"handleSearch($event)\"\n [isTableView]=\"true\"\n >\n <div class=\"mt-2\" table-content>\n <lib-data-table\n [dataKey]=\"'Id'\"\n class=\"form-table\"\n #dt\n [data]=\"tickets\"\n [columns]=\"visibleColumnDef\"\n [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <ng-container libColumn=\"select\">\n <ng-template\n #cell\n let-isSelected=\"isSelected\"\n let-toggleRowSelection=\"toggleRowSelection\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"isSelected\"\n (change)=\"toggleRowSelection()\"\n />\n </ng-template>\n <ng-template\n #header\n let-allRowsSelected=\"allRowsSelected\"\n let-someRowsSelected=\"someRowsSelected\"\n let-toggleAllRows=\"toggleAllRows\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"allRowsSelected()\"\n [indeterminate]=\"someRowsSelected()\"\n (change)=\"toggleAllRows()\"\n />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | companyDate }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"updatedAt\">\n <ng-template #cell let-value>\n {{ value | companyDate }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"title\">\n <ng-template #cell let-row=\"row\" let-value>\n {{ row.Title }}\n </ng-template>\n <ng-template\n #cellEdit\n let-row=\"row\"\n let-updateData=\"updateData\"\n let-value\n >\n <div class=\"width-max\">\n <verbena-input [(ngModel)]=\"row.Title\"></verbena-input>\n </div>\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"description\">\n <ng-template #cell let-row=\"row\" let-value>\n {{ row.Description | ellipseWord }}\n </ng-template>\n <ng-template\n #cellEdit\n let-row=\"row\"\n let-updateData=\"updateData\"\n let-value\n >\n <div class=\"width-max\">\n <verbena-input\n [(ngModel)]=\"row.Description\"\n ></verbena-input>\n </div>\n <!-- <div class=\"width-max\">\n <verbena-textarea [(ngModel)]=\"row.Description\">\n </verbena-textarea>\n </div> -->\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"currentHandler\">\n <ng-template #cell let-row=\"row\" let-value>\n {{ row.CurrentHandler }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"lastHandler\">\n <ng-template #cell let-row=\"row\" let-value>\n {{ row.LastHandler }}\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"priority\">\n <ng-template #cell let-row=\"row\" let-value>\n <div\n *ngIf=\"\n row.Priority && row.Priority\n | asyncLabel: 'TenantPriority' : 'Color' : ticketingAPI\n | async as color\n \"\n class=\"enum-val rounded-[8px] flex gap-2 items-center justify-center\"\n [style.backgroundColor]=\"color ? softenColor(color) : null\"\n >\n <span\n [style.backgroundColor]=\"color\"\n class=\"enum-dot\"\n ></span>\n <span>{{\n row.Priority\n | asyncLabel: \"TenantPriority\" : \"Name\" : ticketingAPI\n | async\n }}</span>\n </div>\n </ng-template>\n <ng-template\n #cellEdit\n let-row=\"row\"\n let-updateData=\"updateData\"\n let-value\n >\n <div class=\"width-max\">\n <verbena-input [(ngModel)]=\"row.Priority\"></verbena-input>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"status\">\n <ng-template #cell let-row=\"row\" let-value>\n <div\n *ngIf=\"row.Status\"\n class=\"enum-val rounded-[8px] flex gap-2 items-center justify-center {{\n row.Status\n }}\"\n >\n <span class=\"enum-dot\"></span>\n <span>{{ row.Status }}</span>\n </div>\n </ng-template>\n <ng-template\n #cellEdit\n let-row=\"row\"\n let-updateData=\"updateData\"\n let-value\n >\n <verben-drop-down\n width=\"100%\"\n placeholder=\"Select Status\"\n [options]=\"statusOptions\"\n [(ngModel)]=\"row.Status\"\n >\n </verben-drop-down>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"close\">\n <ng-template #cell let-row=\"row\" let-value>\n <verbena-button\n *ngIf=\"this.canClose(row)\"\n width=\"100%\"\n class=\"verben-primary-button\"\n [text]=\"'Close Ticket'\"\n [disable]=\"!this.canClose(row)\"\n (click)=\"toggleClosureDialogue(row)\"\n >\n </verbena-button>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template\n #cell\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-row=\"row\"\n let-value\n >\n <verben-pop-Up\n #popup\n [customStyles]=\"{ 'z-index': '99' }\"\n [enableMouseLeave]=\"false\"\n >\n <verben-svg\n class=\"cursor-pointer actions-icon\"\n dropdown-trigger\n icon=\"list\"\n ></verben-svg>\n <div class=\"pop-up-content flex flex-col\" dropdown-content>\n <div\n *ngIf=\"\n !permissionConfig ||\n permissionConfig.Actions['Create']\n \"\n (click)=\"editTicket(value); closePopUp()\"\n class=\"pop-up-value cursor-pointer\"\n >\n Edit\n </div>\n <div\n (click)=\"viewTicketDetails(value); closePopUp()\"\n class=\"pop-up-value cursor-pointer\"\n >\n View Details\n </div>\n </div>\n </verben-pop-Up>\n </ng-template>\n <ng-template\n #cellEdit\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-row=\"row\"\n let-value\n >\n <div class=\"flex gap-2 items-center\">\n <verben-svg\n icon=\"tick\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"tableSaveTicket(value, toggleRowEdit)\"\n ></verben-svg>\n <verben-svg\n (click)=\"restoreCache(value); toggleRowEdit()\"\n icon=\"close-no-circle\"\n [width]=\"15\"\n [height]=\"15\"\n ></verben-svg>\n <!-- <verben-svg (click)=\"toggleRowEdit()\" icon=\"delete\" [width]=\"15\" [height]=\"15\"></verben-svg> -->\n </div>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n <div column-content>\n <verben-visible-column\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"\n ></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter\n (filtersApplied)=\"onFilterUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n ></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table\n (selectedOptions)=\"onSortUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"\n ></verben-sort-table>\n </div>\n <div import-content>\n <lib-data-import\n [previewColumns]=\"visibleColumnDef\"\n title=\"ticket\"\n (importEventData)=\"onComplete($event)\"\n [columnTemplates]=\"columnTemplates()\"\n >\n </lib-data-import>\n </div>\n <div export-content>\n <lib-data-xport\n [useImportKey]=\"true\"\n [columns]=\"visibleColumnDef\"\n [dataQueryFunction]=\"exportFiltersAndSorts\"\n [data]=\"tickets\"\n >\n </lib-data-xport>\n </div>\n <div children>\n <verbena-button\n width=\"100%\"\n [useIcon]=\"true\"\n [icon]=\"'add'\"\n class=\"verben-primary-button\"\n [text]=\"'Add New Ticket'\"\n (click)=\"addNewTicket()\"\n >\n </verbena-button>\n </div>\n </verben-data-view>\n </div>\n <div\n *ngIf=\"tickets.length > 0\"\n class=\"flex justify-end items-center gap-5\"\n >\n <span class=\"paginator-text\">{{ tickets.length }} records loaded</span>\n <button (click)=\"loadMore()\" class=\"load-more view-links\">\n Load more\n </button>\n </div>\n </div>\n </div>\n\n <div\n *ngIf=\"\n this.apps.length == 0 ||\n (this.activeApp && this.tenants.length == 0) ||\n (this.activeTenant && this.tickets.length == 0 && !isFilteredState())\n \"\n class=\"create-container flex-1 rounded-[20px] flex items-center justify-center\"\n ></div>\n</div>\n\n<!-- <app-add-app\n [isVisible]=\"showAppForm\"\n [selectedApp]=\"selectedApp\"\n (onClose)=\"onAppModalClose()\"\n (onSave)=\"onAppSave($event)\"\n></app-add-app>\n\n<app-add-tenant\n [isVisible]=\"showTenantForm\"\n [activeApp]=\"activeApp\"\n [selectedTenant]=\"selectedTenant\"\n (onClose)=\"onTenantModalClose()\"\n (onSave)=\"onTenantSave($event)\"\n></app-add-tenant> -->\n\n<app-add-ticket\n [isVisible]=\"showTicketForm\"\n [activeApp]=\"activeApp\"\n [activeUser]=\"activeUser\"\n [isDisabled]=\"isDisabled()\"\n [activeTenant]=\"activeTenant\"\n [selectedTicket]=\"selectedTicket\"\n (onClose)=\"onTicketModalClose()\"\n (onSave)=\"onTicketSave($event)\"\n></app-add-ticket>\n\n<verben-dialogue\n [showCloseIcon]=\"false\"\n [dismissOutsideClick]=\"false\"\n [closeOnEscape]=\"true\"\n [size]=\"'medium'\"\n [mode]=\"'dialogue'\"\n [customClass]=\"'ticket-dialog'\"\n [disableFooter]=\"true\"\n (openModal)=\"onModalOpen($event)\"\n [isVisible]=\"showClosureDialogue\"\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\">Enter Reason</div>\n <div class=\"dialog-subtitle\">\n Please provide a reason for closing this ticket\n </div>\n </div>\n <!-- <verbena-textarea name=\"Test\" [(ngModel)]=\"test\" />\n <button (click)=\"logTest()\">Log</button> -->\n <div class=\"add-app-form main-form-container flex flex-col gap-2\">\n <div class=\"form-input-container flex flex-col gap-1\">\n <div class=\"font-medium\">Reason</div>\n <verbena-input\n name=\"Reason\"\n placeHolder=\"Enter reason...\"\n [(ngModel)]=\"closureReason\"\n />\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.closureReason.trim().length == 0\"\n width=\"100%\"\n class=\"verben-primary-button\"\n [text]=\"'Confirm'\"\n (click)=\"closeTicket()\"\n >\n </verbena-button>\n </div>\n </div>\n </ng-template>\n</verben-dialogue>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport {\n CardDataViewModule,\n DataExportModule,\n DataTableModule,\n DataViewModule,\n DropDownModule,\n SortTableModule,\n SvgModule,\n TableFilterModule,\n TooltipModule,\n VerbenaButtonModule,\n VerbenaInputModule,\n VerbenaSwitchModule,\n VerbenDialogueModule,\n VerbenPopUpModule,\n VisibleColumnModule,\n DataImportModule,\n DataXportModule,\n} from 'verben-ng-ui';\nimport { TicketingComponent } from './ticketing.component';\nimport { AsyncLabelPipe } from 'verben-ticketing-ui/src/lib/pipes';\nimport { CompanyDatePipe } from 'verben-ticketing-ui/src/lib/pipes';\nimport { EllipseWordPipe } from 'verben-ticketing-ui/src/lib/pipes';\nimport { AddTicketLibModule } from 'verben-ticketing-ui/src/lib/components/add-ticket';\n\n@NgModule({\n declarations: [TicketingComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DataTableModule,\n SvgModule,\n VerbenPopUpModule,\n DataViewModule,\n VerbenaButtonModule,\n CardDataViewModule,\n DropDownModule,\n VerbenaSwitchModule,\n TableFilterModule,\n VisibleColumnModule,\n AsyncLabelPipe,\n SortTableModule,\n DataExportModule,\n TooltipModule,\n VerbenDialogueModule,\n VerbenaInputModule,\n DataImportModule,\n DataExportModule,\n DataXportModule,\n EllipseWordPipe,\n CompanyDatePipe,\n AddTicketLibModule,\n ],\n exports: [TicketingComponent],\n})\nexport class TicketLibModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.TicketingService"],"mappings":"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"}
1
+ {"version":3,"file":"verben-ticketing-ui-src-lib-components-ticketing.mjs","sources":["../../../projects/verben-ticketing-ui/src/lib/components/ticketing/base-table-style.ts","../../../projects/verben-ticketing-ui/src/lib/components/ticketing/ticketing.service.ts","../../../projects/verben-ticketing-ui/src/lib/components/ticketing/ticketing.component.ts","../../../projects/verben-ticketing-ui/src/lib/components/ticketing/ticketing.component.html","../../../projects/verben-ticketing-ui/src/lib/components/ticketing/ticketing.module.ts","../../../projects/verben-ticketing-ui/src/lib/components/ticketing/verben-ticketing-ui-src-lib-components-ticketing.ts"],"sourcesContent":["export const baseStyle: any = {\n width: '100%',\n fontFamily: '\"Fraunces\", serif',\n fontSize: '125%',\n whiteSpace: 'nowrap',\n margin: '0',\n // border: '1px solid #D4A007',\n // borderRadius: '16px',\n // borderCollapse: 'separate',\n borderSpacing: '0',\n // tableLayout: 'fixed',\n overflow: 'hidden',\n rows: {\n // even: {\n // borderBottom: '1px solid #CCCCCC',\n // },\n // odd: {\n // borderBottom: '1px solid #CCCCCC',\n // },\n borderBottom: '1px solid #CCCCCC',\n height: '68px',\n },\n cells: {\n padding: '0.5rem 1rem',\n },\n header: {\n // stickyTop: true,\n // zIndex: 2,\n borderBottom: '1px solid #CCCCCC',\n borderTop: '1px solid #CCCCCC',\n // backgroundColor: '#EFF2FB',\n fontWeight: 'bold',\n textAlign: 'left',\n padding: '12px 16px',\n height: '30px',\n },\n footer: {\n // stickyBottom: true,\n // zIndex: 2,\n padding: '3px',\n },\n // body: {\n // background: '#fff',\n // padding: '4px 5px',\n // textAlign: 'center',\n // },\n // firstColumn: {\n // stickyLeft: true,\n // zIndex: 1,\n // },\n lastColumn: {\n // stickyRight: true,\n // zIndex: 1,\n },\n};\n","import { Injectable } from '@angular/core';\nimport { DEFAULT_PAGE_SIZE } from 'verben-ticketing-ui/src/lib/constants';\nimport { Application, KeyValueParam } from 'verben-ticketing-ui/src/lib/models';\nimport {\n ErrorResponse,\n TenantPriority,\n} from 'verben-ticketing-ui/src/lib/models';\nimport { PagedResult } from 'verben-ticketing-ui/src/lib/models';\nimport { SearchOperator } from 'verben-ticketing-ui/src/lib/models';\nimport { SearchPropertySign } from 'verben-ticketing-ui/src/lib/models';\nimport { SearchPropertyValue } from 'verben-ticketing-ui/src/lib/models';\nimport { Tenant } from 'verben-ticketing-ui/src/lib/models';\nimport { TenantConfig } from 'verben-ticketing-ui/src/lib/models';\nimport { Ticket } from 'verben-ticketing-ui/src/lib/models';\nimport { UtilService } from 'verben-ticketing-ui/src/lib/services';\nimport { HttpWebRequestService } from 'verben-ticketing-ui/src/lib/services';\nimport { EnvironmentService } from 'verben-ticketing-ui/src/lib/services';\nimport { ColumnDefinition } from 'verben-ng-ui';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TicketingService {\n pageSize: number = DEFAULT_PAGE_SIZE;\n\n constructor(\n private utilService: UtilService,\n private server: HttpWebRequestService,\n private envSvc: EnvironmentService,\n ) {}\n\n get ticketColumns(): ColumnDefinition<Ticket>[] {\n return [\n {\n id: 'select',\n header: '',\n canExport: false,\n },\n {\n id: 'createdAt',\n header: 'DATE',\n accessorKey: 'CreatedAt',\n },\n {\n id: 'code',\n header: 'CODE',\n accessorKey: 'Code',\n },\n {\n id: 'title',\n header: 'TITLE',\n accessorKey: 'Title',\n importKey: 'Title',\n },\n {\n id: 'description',\n header: 'DESCRIPTION',\n accessorKey: 'Description',\n importKey: 'Description',\n },\n // {\n // id: 'currentHandler',\n // header: 'CURRENT HANDLER',\n // accessorKey: 'CurrentHandler',\n // },\n {\n id: 'lastHandler',\n header: 'LAST HANDLER',\n accessorKey: 'LastHandler',\n },\n {\n id: 'executionTime',\n header: 'EXECUTION TIME',\n accessorKey: 'ExecutionTime',\n },\n {\n id: 'priority',\n header: 'PRIORITY',\n accessorKey: 'Priority',\n importKey: 'Priority',\n },\n {\n id: 'status',\n header: 'STATUS',\n accessorKey: 'Status',\n importKey: 'Status',\n },\n\n {\n id: 'actions',\n header: 'ACTIONS',\n accessorFn: (row: Ticket) => {\n return row;\n },\n canExport: false,\n },\n ];\n }\n\n async getAllApps(): Promise<Application[] | undefined> {\n const payload: SearchPropertyValue[] = [\n {\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 `SearchApplications/0/0`,\n payload,\n this.envSvc.environment.AuthenticationAPI,\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return;\n } else {\n var result = (res as PagedResult<Application>).Result;\n return result;\n }\n }\n\n async getTenantsByApp(app: string): Promise<Tenant[] | undefined> {\n const payload: SearchPropertyValue[] = [\n {\n PropertyName: 'Application',\n EntityValue: app,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n },\n {\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 `SearchTenants/0/0`,\n payload,\n this.envSvc.environment.AuthenticationAPI,\n );\n const configs = await this.getTenantConfigsByApp(app);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return;\n } else {\n var result = (res as PagedResult<Tenant>).Result;\n\n if (configs) {\n result.forEach((x) => {\n const config = configs.find((y) => y.TenantId == x.Code);\n if (config) {\n x.LogoUrl = config.LogoUrl;\n }\n });\n }\n return result;\n }\n }\n\n async getPrioritiesForTenant(\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/${this.pageSize}`,\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 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 async getTenantConfigsByApp(\n app: string,\n ): Promise<TenantConfig[] | undefined> {\n this.utilService.sendBI(true);\n const res = await this.server.get(\n `GetTenantConfigsWithParam/${app}/0/0`,\n this.envSvc.environment.AuthenticationAPI,\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return;\n } else {\n var result = (res as PagedResult<TenantConfig>).Result;\n return result;\n }\n }\n\n async getTicketsForTenant(\n tenant: string,\n viewAll: boolean = true,\n activeUser: string = '',\n ): Promise<PagedResult<Ticket> | undefined> {\n const payload: SearchPropertyValue[] = [\n {\n PropertyName: 'TenantId',\n EntityValue: tenant,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n },\n ];\n\n if (!viewAll) {\n payload.push({\n PropertyName: 'Tag',\n EntityValue: activeUser,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n }\n\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `Ticket/SearchTicket/0/${this.pageSize}`,\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<Ticket>;\n return result;\n }\n }\n\n async closeTicket(payload: KeyValueParam): Promise<Ticket | undefined> {\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `Ticket/CloseTicketWihComment`,\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 Ticket;\n return result;\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnInit,\n QueryList,\n signal,\n ViewChild,\n ViewChildren,\n viewChildren,\n WritableSignal,\n} from '@angular/core';\nimport { DEFAULT_PAGE_SIZE } from 'verben-ticketing-ui/src/lib/constants';\nimport { Application, KeyValueParam } from 'verben-ticketing-ui/src/lib/models';\nimport { Tenant } from 'verben-ticketing-ui/src/lib/models';\nimport { PagedResult } from 'verben-ticketing-ui/src/lib/models';\nimport { Ticket } from 'verben-ticketing-ui/src/lib/models';\nimport { TicketStatus } from 'verben-ticketing-ui/src/lib/models';\nimport {\n UtilService,\n EnvironmentService,\n} from 'verben-ticketing-ui/src/lib/services';\nimport { HttpWebRequestService } from 'verben-ticketing-ui/src/lib/services';\n// import { AddAppComponent } from '@app/shared/components/add-app/add-app.component';\n// import { AddTenantComponent } from '@app/shared/components/add-tenant/add-tenant.component';\n// import { SharedModule } from '@app/shared/shared.module';\nimport { debounceTime, Subject } from 'rxjs';\nimport {\n ColumnDefinition,\n ColumnDirective,\n DataFilterType,\n DataTableComponent,\n DataViewComponent,\n IDataFilter,\n VerbenPopUpComponent,\n} from 'verben-ng-ui';\nimport { TicketingService } from './ticketing.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { ImportService } from 'verben-ticketing-ui/src/lib/services';\nimport { PermissionConfig } from 'verben-ticketing-ui/src/lib/models';\nimport { ErrorResponse } from 'verben-ticketing-ui/src/lib/models';\nimport { ObjectState } from 'verben-ticketing-ui/src/lib/models';\nimport { SearchPropertyValue } from 'verben-ticketing-ui/src/lib/models';\nimport { SearchOperator } from 'verben-ticketing-ui/src/lib/models';\nimport { FilterTypes } from 'verben-ticketing-ui/src/lib/models';\nimport { SearchPropertySign } from 'verben-ticketing-ui/src/lib/models';\nimport { SearchPropertyValueType } from 'verben-ticketing-ui/src/lib/models';\nimport { SortDirection } from 'verben-ticketing-ui/src/lib/models';\nimport { baseStyle } from './base-table-style';\n\nenum TicketPropertyName {\n CreatedAt = 'Created At',\n UpdatedAt = 'Updated At',\n Title = 'Title',\n Description = 'Description',\n CurrentHandler = 'Current Handler',\n Priority = 'Priority',\n Status = 'Status',\n}\n\nenum TicketPropertyMap {\n CreatedAt = 'CreatedAt',\n UpdatedAt = 'UpdatedAt',\n Title = 'Title',\n Description = 'Description',\n CurrentHandler = 'CurrentHandler',\n Priority = 'Priority',\n Status = 'Status',\n}\n\n@Component({\n selector: 'app-ticketing',\n templateUrl: './ticketing.component.html',\n styleUrl: './ticketing.component.css',\n})\nexport class TicketingComponent implements OnInit {\n @Input() permissionConfig: PermissionConfig | null = null;\n\n styles = baseStyle;\n // showAppForm: boolean = false;\n // showTenantForm: boolean = false;\n showTicketForm: boolean = false;\n // selectedApp: Application | null = null;\n // selectedTenant: Tenant | null = null;\n selectedTicket: Ticket | null = null;\n @Input() activeApp: string | null = null;\n @Input() activeTenant: string | null = null;\n @Input() activeUser: string | null = null;\n @Input() allowTicketClosing: boolean = false;\n activeTicket: Ticket | null = null;\n apps: Application[] = [];\n @Input() detailPath: string = '';\n tenants: Tenant[] = [];\n tickets: Ticket[] = [];\n ticketingAPI: string = ``;\n @Input() defaultCompany: string = '';\n @Input() baseUrl: string = ``;\n closureTicket: Ticket | null = null;\n closureReason: string = '';\n showClosureDialogue: boolean = false;\n pendingRef: TicketStatus = TicketStatus.Pending;\n visibleColumnDef: ColumnDefinition<any>[] = [];\n exportColumnDef: ColumnDefinition<any>[] = [];\n importedData: WritableSignal<any[]> = signal([]);\n columnTemplates = viewChildren<ColumnDirective>(ColumnDirective);\n @ViewChild('vdv') dataView!: DataViewComponent;\n @ViewChild('dt') tableView!: DataTableComponent<Ticket>;\n @ViewChildren('popup') popUps!: QueryList<VerbenPopUpComponent>;\n pageSize: number = DEFAULT_PAGE_SIZE;\n searchDebounceTime: number = 500;\n pageState: PagedResult<Ticket> | null = null;\n isOpen: boolean = false;\n openDropdownId: string | null = null;\n currentFilters: IDataFilter[] = [];\n currentSorts: IDataFilter[] = [];\n searchTerm$ = new Subject<string>();\n statusOptions: string[] = Object.keys(TicketStatus);\n visibleColumns: IDataFilter[] = [];\n filterArray: IDataFilter[] = [\n {\n name: TicketPropertyName.CreatedAt,\n type: DataFilterType.Date,\n checked: false,\n },\n {\n name: TicketPropertyName.UpdatedAt,\n type: DataFilterType.Date,\n checked: false,\n },\n {\n name: TicketPropertyName.Title,\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: TicketPropertyName.Description,\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: TicketPropertyName.CurrentHandler,\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: TicketPropertyName.Priority,\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: TicketPropertyName.Status,\n type: DataFilterType.String,\n checked: false,\n },\n ];\n\n sortOptions: IDataFilter[] = [\n {\n name: TicketPropertyName.CreatedAt,\n type: DataFilterType.Date,\n checked: false,\n },\n {\n name: TicketPropertyName.UpdatedAt,\n type: DataFilterType.Date,\n checked: false,\n },\n {\n name: TicketPropertyName.Title,\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: TicketPropertyName.Description,\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: TicketPropertyName.CurrentHandler,\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: TicketPropertyName.Priority,\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: TicketPropertyName.Status,\n type: DataFilterType.String,\n checked: false,\n },\n ];\n\n private currentSearchTerm: string = '';\n\n constructor(\n private utilService: UtilService,\n private server: HttpWebRequestService,\n private cdr: ChangeDetectorRef,\n public service: TicketingService,\n private route: ActivatedRoute,\n private importService: ImportService<Ticket>,\n private envSvc: EnvironmentService,\n ) {}\n\n async ngOnInit(): Promise<void> {\n this.visibleColumnDef = this.service.ticketColumns.filter(\n (x) => x.id != 'actions' || this.permissionConfig?.Actions['Create'],\n );\n\n if (\n this.allowTicketClosing &&\n this.permissionConfig &&\n this.permissionConfig.Actions['CloseTicket']\n ) {\n const insertIndex = Math.max(this.visibleColumnDef.length - 1, 0);\n\n this.visibleColumnDef.splice(insertIndex, 0, {\n id: 'close',\n header: '',\n canExport: false,\n });\n }\n this.exportColumnDef = this.service.ticketColumns.filter(\n (x) =>\n (x.id != 'actions' || this.permissionConfig?.Actions['Create']) &&\n x.id != 'description',\n );\n // console.log({ State: this.permissionConfig });\n this.visibleColumns = this.service.ticketColumns\n .filter(\n (x) => x.id != 'actions' || this.permissionConfig?.Actions['Create'],\n )\n .map((col) => ({\n checked: true,\n name: typeof col.header === 'string' ? col.header : col.id,\n type: DataFilterType.Bool,\n }));\n this.ticketingAPI = `${this.envSvc.environment.TicketingAPI}/Ticket`;\n\n if (this.activeTenant) {\n const viewAll: boolean =\n this.permissionConfig?.Actions['ViewAllTickets'] || false;\n\n const tickets = await this.service.getTicketsForTenant(\n this.activeTenant,\n viewAll,\n this.activeUser || '',\n );\n if (tickets) {\n this.pageState = tickets;\n const results = tickets.Result;\n this.tickets = results.map((x) => {\n return {\n ...x,\n Id: x.Code,\n };\n });\n\n this.cdr.markForCheck();\n }\n }\n\n this.searchTerm$\n .pipe(debounceTime(this.searchDebounceTime)) // Adjust debounce time here (in ms)\n .subscribe(async (searchTerm) => {\n this.currentSearchTerm = searchTerm;\n this.updateFiltersAndSorts(true);\n });\n }\n\n async loadMore() {\n if (!this.pageState) {\n return;\n }\n this.utilService.sendBI(true);\n const res = await this.loadMoreFiltersAndSorts();\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return;\n } else {\n this.pageState = res as PagedResult<Ticket>;\n var result = (res as PagedResult<Ticket>).Result;\n const mappedData: Ticket[] = result.map((x) => {\n return {\n ...x,\n Id: x.Code,\n };\n });\n this.tickets = this.tickets.concat(mappedData);\n }\n }\n\n async tableSaveTicket(form: Ticket, callBack: () => any) {\n if (form.Description.trim().length == 0) {\n this.utilService.showInfo('Description cannot be empty');\n return;\n }\n form.DataState =\n form.DataState == ObjectState.New ? ObjectState.New : ObjectState.Changed;\n form.Id = '';\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `Ticket/SaveTicket`,\n [form],\n this.envSvc.environment.TicketingAPI,\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n } else {\n this.utilService.showSuccess('Ticket saved successfully');\n const result = res as Ticket[];\n if (result.length > 0) {\n var resultItem = result[0];\n const itemIndex = this.tickets.findIndex((x) => x == form);\n if (itemIndex > -1) {\n this.tickets[itemIndex].Code = resultItem.Code;\n this.tickets[itemIndex].Id = resultItem.Code;\n this.tickets[itemIndex].DataState = resultItem.DataState;\n this.tickets[itemIndex].TenantId = resultItem.TenantId;\n this.tickets[itemIndex].ServiceName = resultItem.ServiceName;\n this.tickets = this.tickets.map((x) => x);\n this.cacheItem(this.tickets[itemIndex]);\n }\n callBack();\n }\n }\n }\n\n updateTable() {\n this.tickets = this.tickets.map((x) => x);\n }\n\n closePopUp() {\n this.openDropdownId = null;\n this.popUps.forEach((popUp) => {\n if (popUp.dropdownOpen) {\n popUp.toggleDropdown();\n }\n });\n }\n\n onViewChange(isGridView: boolean): void {}\n\n showTableView: boolean = true;\n\n onSelectionChange(selectedRows: Ticket[]) {}\n\n onColumnsUpdated(updatedColumns: IDataFilter[]) {\n const updatedColumnDef: ColumnDefinition<Ticket>[] = [];\n updatedColumns.forEach((col) => {\n const matchingCol = this.service.ticketColumns.find(\n (column) => column.header === col.name || column.id === col.name,\n );\n if (matchingCol) {\n updatedColumnDef.push(matchingCol);\n }\n });\n\n this.visibleColumnDef = [...updatedColumnDef];\n }\n\n exportFiltersAndSorts = async (pageState: {\n skip: number;\n limit: number;\n }) => {\n var payload: SearchPropertyValue[] = this.currentFilters.map((x) => {\n return {\n PropertyName:\n TicketPropertyMap[\n x.name.split(' ').join('') as keyof typeof TicketPropertyMap\n ],\n EntityValue: x.value,\n Operator: SearchOperator.And,\n Sign:\n x.condition && Object.keys(FilterTypes).includes(x.condition)\n ? (FilterTypes[\n x.condition as keyof typeof FilterTypes\n ] as unknown as SearchPropertySign)\n : SearchPropertySign.EQ,\n Type:\n x.name == TicketPropertyName.CreatedAt ||\n x.name == TicketPropertyName.UpdatedAt\n ? SearchPropertyValueType.Date\n : SearchPropertyValueType.String,\n };\n });\n // payload.push({\n // PropertyName: 'APIKey',\n // EntityValue: this.envSvc.environment.APIKey,\n // Operator: SearchOperator.And,\n // Sign: SearchPropertySign.EQ,\n // });\n for (let sort of this.currentSorts) {\n payload.push({\n PropertyName:\n TicketPropertyMap[\n sort.name.split(' ').join('') as keyof typeof TicketPropertyMap\n ],\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n Sort:\n sort.value.toLowerCase() == SortDirection.Asc.toLowerCase()\n ? SortDirection.Asc\n : sort.value.toLowerCase() == SortDirection.Desc.toLowerCase()\n ? SortDirection.Desc\n : SortDirection.None,\n });\n }\n\n const searchPayload: SearchPropertyValue[] = [];\n\n // if (this.activeApp) {\n // payload.push({\n // PropertyName: 'App',\n // EntityValue: this.activeApp.Code,\n // Operator: SearchOperator.And,\n // Sign: SearchPropertySign.EQ,\n // });\n // searchPayload.push({\n // PropertyName: 'App',\n // EntityValue: this.activeApp.Code,\n // Operator: SearchOperator.And,\n // Sign: SearchPropertySign.EQ,\n // });\n // }\n\n const searchTermExists = this.currentSearchTerm.trim().length > 0;\n\n if (searchTermExists) {\n Object.values(TicketPropertyMap).forEach((property) => {\n searchPayload.push({\n PropertyName: property,\n EntityValue: this.currentSearchTerm.trim(),\n Operator: SearchOperator.Or,\n Sign: SearchPropertySign.LIKE,\n });\n });\n }\n\n if (this.activeTenant) {\n payload.push({\n PropertyName: 'TenantId',\n EntityValue: this.activeTenant,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n searchPayload.push({\n PropertyName: 'TenantId',\n EntityValue: this.activeTenant,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n }\n\n const viewAll: boolean =\n this.permissionConfig?.Actions['ViewAllTickets'] || false;\n\n if (!viewAll) {\n payload.push({\n PropertyName: 'Tag',\n EntityValue: this.activeUser || '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n searchPayload.push({\n PropertyName: 'Tag',\n EntityValue: this.activeUser || '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n }\n\n this.utilService.sendBI(true);\n const res = searchTermExists\n ? await this.server.post(\n `Ticket/SearchTicket/${pageState.skip}/${pageState.limit}`,\n searchPayload,\n this.envSvc.environment.TicketingAPI,\n )\n : payload.length == 0\n ? await this.server.get(\n `Ticket/GetTicket/${pageState.skip}/${pageState.limit}`,\n this.envSvc.environment.TicketingAPI,\n )\n : await this.server.post(\n `Ticket/SearchTicket/${pageState.skip}/${pageState.limit}`,\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<Ticket>).Result;\n return result;\n }\n };\n async updateFiltersAndSorts(isSearch: boolean = false) {\n if (!isSearch) {\n this.dataView.onClearSearch();\n this.currentSearchTerm = '';\n this.cdr.detectChanges();\n const clickEvent = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window,\n });\n document.dispatchEvent(clickEvent);\n }\n var payload: SearchPropertyValue[] = this.currentFilters.map((x) => {\n return {\n PropertyName:\n TicketPropertyMap[\n x.name.split(' ').join('') as keyof typeof TicketPropertyMap\n ],\n EntityValue: x.value,\n Operator: SearchOperator.And,\n Sign:\n x.condition && Object.keys(FilterTypes).includes(x.condition)\n ? (FilterTypes[\n x.condition as keyof typeof FilterTypes\n ] as unknown as SearchPropertySign)\n : SearchPropertySign.EQ,\n Type:\n x.name == TicketPropertyName.CreatedAt ||\n x.name == TicketPropertyName.UpdatedAt\n ? SearchPropertyValueType.Date\n : SearchPropertyValueType.String,\n };\n });\n // payload.push({\n // PropertyName: 'APIKey',\n // EntityValue: this.envSvc.environment.APIKey,\n // Operator: SearchOperator.And,\n // Sign: SearchPropertySign.EQ,\n // });\n for (let sort of this.currentSorts) {\n payload.push({\n PropertyName:\n TicketPropertyMap[\n sort.name.split(' ').join('') as keyof typeof TicketPropertyMap\n ],\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n Sort:\n sort.value.toLowerCase() == SortDirection.Asc.toLowerCase()\n ? SortDirection.Asc\n : sort.value.toLowerCase() == SortDirection.Desc.toLowerCase()\n ? SortDirection.Desc\n : SortDirection.None,\n });\n }\n const searchPayload: SearchPropertyValue[] = [];\n\n // if (this.activeApp) {\n // payload.push({\n // PropertyName: 'App',\n // EntityValue: this.activeApp.Code,\n // Operator: SearchOperator.And,\n // Sign: SearchPropertySign.EQ,\n // });\n // searchPayload.push({\n // PropertyName: 'App',\n // EntityValue: this.activeApp.Code,\n // Operator: SearchOperator.And,\n // Sign: SearchPropertySign.EQ,\n // });\n // }\n\n const searchTermExists = this.currentSearchTerm.trim().length > 0;\n\n if (searchTermExists) {\n Object.values(TicketPropertyMap).forEach((property) => {\n searchPayload.push({\n PropertyName: property,\n EntityValue: this.currentSearchTerm.trim(),\n Operator: SearchOperator.Or,\n Sign: SearchPropertySign.LIKE,\n });\n });\n }\n\n if (this.activeTenant) {\n payload.push({\n PropertyName: 'TenantId',\n EntityValue: this.activeTenant,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n searchPayload.push({\n PropertyName: 'TenantId',\n EntityValue: this.activeTenant,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n }\n\n const viewAll: boolean =\n this.permissionConfig?.Actions['ViewAllTickets'] || false;\n\n if (!viewAll) {\n payload.push({\n PropertyName: 'Tag',\n EntityValue: this.activeUser || '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n searchPayload.push({\n PropertyName: 'Tag',\n EntityValue: this.activeUser || '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n }\n\n this.utilService.sendBI(true);\n const res = searchTermExists\n ? await this.server.post(\n `Ticket/SearchTicket/0/${this.pageSize}`,\n searchPayload,\n this.envSvc.environment.TicketingAPI,\n )\n : payload.length == 0\n ? await this.server.get(\n `Ticket/GetTicket/0/${this.pageSize}`,\n this.envSvc.environment.TicketingAPI,\n )\n : await this.server.post(\n `Ticket/SearchTicket/0/${this.pageSize}`,\n payload,\n this.envSvc.environment.TicketingAPI,\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.currentFilters = [];\n this.currentSorts = [];\n return undefined;\n } else {\n this.pageState = res as PagedResult<Ticket>;\n var result = (res as PagedResult<Ticket>).Result;\n this.tickets = result.map((x) => {\n return {\n ...x,\n Id: x.Code,\n };\n });\n }\n }\n async loadMoreFiltersAndSorts(): Promise<PagedResult<Ticket> | undefined> {\n if (!this.pageState) {\n return;\n }\n\n var payload: SearchPropertyValue[] = this.currentFilters.map((x) => {\n return {\n PropertyName:\n TicketPropertyMap[\n x.name.split(' ').join('') as keyof typeof TicketPropertyMap\n ],\n EntityValue: x.value,\n Operator: SearchOperator.And,\n Sign:\n x.condition && Object.keys(FilterTypes).includes(x.condition)\n ? (FilterTypes[\n x.condition as keyof typeof FilterTypes\n ] as unknown as SearchPropertySign)\n : SearchPropertySign.EQ,\n Type:\n x.name == TicketPropertyName.CreatedAt ||\n x.name == TicketPropertyName.UpdatedAt\n ? SearchPropertyValueType.Date\n : SearchPropertyValueType.String,\n };\n });\n for (let sort of this.currentSorts) {\n payload.push({\n PropertyName:\n TicketPropertyMap[\n sort.name.split(' ').join('') as keyof typeof TicketPropertyMap\n ],\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n Sort:\n sort.value.toLowerCase() == SortDirection.Asc.toLowerCase()\n ? SortDirection.Asc\n : sort.value.toLowerCase() == SortDirection.Desc.toLowerCase()\n ? SortDirection.Desc\n : SortDirection.None,\n });\n }\n const searchPayload: SearchPropertyValue[] = [];\n\n // if (this.activeApp) {\n // payload.push({\n // PropertyName: 'App',\n // EntityValue: this.activeApp.Code,\n // Operator: SearchOperator.And,\n // Sign: SearchPropertySign.EQ,\n // });\n // searchPayload.push({\n // PropertyName: 'App',\n // EntityValue: this.activeApp.Code,\n // Operator: SearchOperator.And,\n // Sign: SearchPropertySign.EQ,\n // });\n // }\n\n const searchTermExists = this.currentSearchTerm.trim().length > 0;\n\n if (searchTermExists) {\n Object.values(TicketPropertyMap).forEach((property) => {\n searchPayload.push({\n PropertyName: property,\n EntityValue: this.currentSearchTerm.trim(),\n Operator: SearchOperator.Or,\n Sign: SearchPropertySign.LIKE,\n });\n });\n }\n\n if (this.activeTenant) {\n payload.push({\n PropertyName: 'TenantId',\n EntityValue: this.activeTenant,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n searchPayload.push({\n PropertyName: 'TenantId',\n EntityValue: this.activeTenant,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n }\n\n const viewAll: boolean =\n this.permissionConfig?.Actions['ViewAllTickets'] || false;\n\n if (!viewAll) {\n payload.push({\n PropertyName: 'Tag',\n EntityValue: this.activeUser || '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n searchPayload.push({\n PropertyName: 'Tag',\n EntityValue: this.activeUser || '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n }\n\n this.utilService.sendBI(true);\n const res = searchTermExists\n ? await this.server.post(\n `Ticket/SearchTicket/0/${this.pageSize}`,\n searchPayload,\n this.envSvc.environment.TicketingAPI,\n )\n : payload.length == 0\n ? await this.server.get(\n `Ticket/GetTicket/${this.pageState.Skip}/${this.pageSize}`,\n this.envSvc.environment.TicketingAPI,\n )\n : await this.server.post(\n `Ticket/SearchTicket/${this.pageState.Skip}/${this.pageSize}`,\n payload,\n this.envSvc.environment.TicketingAPI,\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return undefined;\n } else {\n var result = res as PagedResult<Ticket>;\n return result;\n }\n }\n\n onFilterUpdated(updatedFilters: IDataFilter[] | string) {\n // Ensure updatedFilters is an array\n if (Array.isArray(updatedFilters)) {\n this.currentFilters = updatedFilters;\n this.updateFiltersAndSorts();\n }\n }\n onSortUpdated(updatedSorts: IDataFilter[]) {\n this.currentSorts = updatedSorts;\n this.updateFiltersAndSorts();\n }\n\n handleSearch(event: { key: string; value: string }) {\n this.searchTerm$.next(event.value);\n }\n\n handleExport(exportedData: Partial<any>[]) {\n // console.log('Exported data:', exportedData);\n this.downloadCSV(exportedData);\n }\n\n isFilteredState(): boolean {\n return (\n this.currentSearchTerm.trim().length > 0 || this.currentFilters.length > 0\n );\n }\n\n private 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 // get defaultCompany(): string {\n // const check = this.store.get(AppKey.USER);\n // if (!check) {\n // return '';\n // }\n // const user: User = (this.store.get(AppKey.USER) as { User: User }).User;\n // return user.DefaultCompany || '';\n // }\n\n onComplete(event: any[]) {\n var defaultItem: Ticket = {\n Title: '',\n Description: '',\n App: this.activeApp ? this.activeApp : '',\n Status: TicketStatus.Pending,\n Company: this.defaultCompany,\n Messages: [],\n FileData: [],\n FileUrls: [],\n Id: this.tickets.length.toString(),\n id: '',\n Code: '',\n TenantId: this.activeTenant ? this.activeTenant : '',\n ServiceName: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n Tag: this.activeUser || undefined,\n };\n this.importService.onComplete(\n event,\n defaultItem,\n 'Ticket/SaveTicket',\n this.envSvc.environment.TicketingAPI,\n 'Ticket',\n (items: Ticket[]) => {\n this.tickets = this.tickets.concat(items);\n },\n this.pageState,\n );\n }\n\n tableCache = new Map<string, Ticket>();\n\n cacheItem(item: Ticket) {\n const cacheKey = item.Id;\n this.tableCache.set(cacheKey, JSON.parse(JSON.stringify(item)));\n }\n\n restoreCache(item: Ticket) {\n const cacheKey = item.Id;\n const itemCache = this.tableCache.get(cacheKey);\n if (itemCache) {\n item.Description = itemCache.Description;\n item.Priority = itemCache.Priority;\n item.Status = itemCache.Status;\n }\n this.tableCache.delete(cacheKey);\n }\n\n // onAppSelected(app: Application | null) {\n // this.activeApp = app;\n // // if (app) {\n // // const tenants = await this.service.getTenantsByApp(app.Code);\n // // if (tenants) {\n // // this.tenants = tenants;\n // // }\n // // }\n // }\n\n onAppListUpdated(apps: Application[]) {\n this.apps = apps;\n }\n\n onTenantListUpdated(tenants: Tenant[]) {\n this.tenants = tenants;\n }\n\n getLogoUrl(url: string) {\n return `${this.envSvc.environment.AuthenticationAPI}/${url}`;\n }\n\n addNewTicket() {\n this.selectedTicket = null;\n this.showTicketForm = true;\n }\n\n // editApp(app: Application) {\n // this.selectedApp = app;\n // this.showAppForm = true;\n // }\n\n // editTenant(tenant: Tenant) {\n // this.selectedTenant = tenant;\n // this.showTenantForm = true;\n // }\n\n editTicket(ticket: Ticket) {\n this.selectedTicket = ticket;\n this.showTicketForm = true;\n }\n\n // onAppModalClose() {\n // this.showAppForm = false;\n // this.selectedApp = null;\n // }\n\n // onTenantModalClose() {\n // this.showTenantForm = false;\n // this.selectedTenant = null;\n // }\n\n onTicketModalClose() {\n this.showTicketForm = false;\n this.selectedTicket = null;\n }\n\n // onAppSave(app: Application) {\n // const idx = this.apps.findIndex((x) => x.Code == app.Code);\n\n // if (app.Code.trim().length > 0 && idx > -1) {\n // this.apps[idx].Name = app.Name;\n // this.apps[idx].Description = app.Description;\n // this.apps[idx].DataState = app.DataState;\n // } else {\n // this.apps.push(app);\n // }\n // }\n\n // onTenantSave(tenant: Tenant) {\n // const idx = this.tenants.findIndex((x) => x.Code == tenant.Code);\n\n // if (tenant.Code.trim().length > 0 && idx > -1) {\n // this.tenants[idx].Name = tenant.Name;\n // this.tenants[idx].Description = tenant.Description;\n // this.tenants[idx].DataState = tenant.DataState;\n // } else {\n // this.tenants.push(tenant);\n // }\n // }\n\n onTicketSave(ticket: Ticket) {\n const idx = this.tickets.findIndex((x) => x.Code == ticket.Code);\n\n // console.log({ Tickets: this.tickets, Ticket: ticket, idx: idx });\n if (ticket.Code.trim().length > 0 && idx > -1) {\n this.tickets[idx].Title = ticket.Title;\n this.tickets[idx].Description = ticket.Description;\n // this.tickets[idx].CurrentHandler = ticket.CurrentHandler;\n this.tickets[idx].Priority = ticket.Priority;\n this.tickets[idx].Status = ticket.Status;\n this.tickets[idx].FileUrls = ticket.FileUrls;\n this.tickets[idx].DataState = ticket.DataState;\n } else {\n this.tickets.unshift(ticket);\n }\n this.updateTable();\n }\n\n viewTicketDetails(ticket: Ticket) {\n this.utilService.goToPage(`${this.detailPath}`, ticket.Code);\n }\n\n cssColorToHex(color: string): string | null {\n const ctx = document.createElement('canvas').getContext('2d');\n\n if (!ctx) return null;\n\n ctx.fillStyle = '#000'; // set a known color\n ctx.fillStyle = color; // assign any CSS-valid color\n\n const computed = ctx.fillStyle;\n // If the browser does NOT understand the value, it won’t change from '#000'\n if (\n computed.toLowerCase() === '#000000' &&\n color.toLowerCase() !== 'black'\n ) {\n return null; // invalid color name or unsupported value\n }\n\n return computed.toUpperCase(); // returns hex like #1E90FF\n }\n softenColor(hex: string, lightenPercent = 55, alphaPercent = 55): string {\n // Remove #\n if (!hex.startsWith('#')) {\n const converted = this.cssColorToHex(hex);\n if (converted) {\n hex = converted;\n }\n }\n\n hex = hex.replace(/^#/, '');\n if (hex.length === 3) {\n // Convert shorthand (#abc → #aabbcc)\n hex = hex\n .split('')\n .map((x) => x + x)\n .join('');\n }\n\n const num = parseInt(hex, 16);\n let r = (num >> 16) & 0xff;\n let g = (num >> 8) & 0xff;\n let b = num & 0xff;\n\n // Lighten toward white by the given percentage\n r = Math.min(255, Math.round(r + (255 - r) * (lightenPercent / 100)));\n g = Math.min(255, Math.round(g + (255 - g) * (lightenPercent / 100)));\n b = Math.min(255, Math.round(b + (255 - b) * (lightenPercent / 100)));\n\n // Convert alpha percent to 2-digit hex\n const alpha = Math.round((alphaPercent / 100) * 255);\n const aHex = alpha.toString(16).padStart(2, '0').toUpperCase();\n\n return `#${r.toString(16).padStart(2, '0').toUpperCase()}${g\n .toString(16)\n .padStart(2, '0')\n .toUpperCase()}${b.toString(16).padStart(2, '0').toUpperCase()}${aHex}`;\n }\n\n isDisabled(): boolean {\n if (!this.selectedTicket) {\n return false;\n }\n\n return this.selectedTicket.Status != this.pendingRef;\n }\n\n toggleClosureDialogue(item: Ticket) {\n this.closureTicket = item;\n this.showClosureDialogue = !this.showClosureDialogue;\n }\n\n onModalOpen(event: any) {}\n\n onModalClose(event: any) {\n this.closureReason = '';\n this.closureTicket = null;\n this.showClosureDialogue = false;\n }\n\n canClose(item: Ticket): boolean {\n return item.Status == TicketStatus.Pending;\n }\n\n async closeTicket() {\n if (!this.closureTicket || !this.canClose(this.closureTicket)) {\n return;\n }\n\n if (this.closureReason.trim().length == 0) {\n this.utilService.showInfo('Reason cannot be empty');\n return;\n }\n\n const payload: KeyValueParam = {\n Key: this.closureTicket.Code,\n Value: this.activeUser || '',\n Other: this.closureReason,\n };\n\n const res = await this.service.closeTicket(payload);\n if (res) {\n this.utilService.showSuccess('Ticket closed successfully');\n this.closureTicket.Status = res.Status;\n this.closureTicket.LastHandler = res.LastHandler;\n this.closureTicket.ExecutionTime = res.ExecutionTime;\n this.updateTable();\n this.onModalClose('');\n }\n }\n}\n","<div class=\"h-full flex flex-col gap-4\">\n <div class=\"flex flex-col gap-4\">\n <!-- <app-tenant-selector\n (onAppSelected)=\"this.onAppSelected($event)\"\n (onTenantSelected)=\"onTenantSelected($event)\"\n (onAppsUpdated)=\"this.onAppListUpdated($event)\"\n (onTenantsUpdated)=\"this.onTenantListUpdated($event)\"\n ></app-tenant-selector> -->\n\n <div class=\"tickets-section flex flex-col gap-2\">\n <div class=\"ticket-table-container\">\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: !permissionConfig || permissionConfig.Actions['Export'],\n isSelect: true,\n isCreate: false,\n isToggle: false,\n isImport: !permissionConfig || permissionConfig.Actions['Import'],\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedColumnCount]=\"0\"\n [selectedSortCount]=\"0\"\n [selectedFilterTableCount]=\"0\"\n (viewChange)=\"onViewChange($event)\"\n (onSearchChange)=\"handleSearch($event)\"\n [isTableView]=\"true\"\n >\n <div class=\"mt-2\" table-content>\n <lib-data-table\n [dataKey]=\"'Id'\"\n class=\"form-table\"\n #dt\n [data]=\"tickets\"\n [columns]=\"visibleColumnDef\"\n [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <ng-container libColumn=\"select\">\n <ng-template\n #cell\n let-isSelected=\"isSelected\"\n let-toggleRowSelection=\"toggleRowSelection\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"isSelected\"\n (change)=\"toggleRowSelection()\"\n />\n </ng-template>\n <ng-template\n #header\n let-allRowsSelected=\"allRowsSelected\"\n let-someRowsSelected=\"someRowsSelected\"\n let-toggleAllRows=\"toggleAllRows\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"allRowsSelected()\"\n [indeterminate]=\"someRowsSelected()\"\n (change)=\"toggleAllRows()\"\n />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | companyDate }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"updatedAt\">\n <ng-template #cell let-value>\n {{ value | companyDate }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"title\">\n <ng-template #cell let-row=\"row\" let-value>\n {{ row.Title }}\n </ng-template>\n <ng-template\n #cellEdit\n let-row=\"row\"\n let-updateData=\"updateData\"\n let-value\n >\n <div class=\"width-max\">\n <verbena-input [(ngModel)]=\"row.Title\"></verbena-input>\n </div>\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"description\">\n <ng-template #cell let-row=\"row\" let-value>\n {{ row.Description | ellipseWord }}\n </ng-template>\n <ng-template\n #cellEdit\n let-row=\"row\"\n let-updateData=\"updateData\"\n let-value\n >\n <div class=\"width-max\">\n <verbena-input\n [(ngModel)]=\"row.Description\"\n ></verbena-input>\n </div>\n <!-- <div class=\"width-max\">\n <verbena-textarea [(ngModel)]=\"row.Description\">\n </verbena-textarea>\n </div> -->\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"currentHandler\">\n <ng-template #cell let-row=\"row\" let-value>\n {{ row.CurrentHandler }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"lastHandler\">\n <ng-template #cell let-row=\"row\" let-value>\n {{ row.LastHandler }}\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"priority\">\n <ng-template #cell let-row=\"row\" let-value>\n <div\n *ngIf=\"\n row.Priority && row.Priority\n | asyncLabel: 'TenantPriority' : 'Color' : ticketingAPI\n | async as color\n \"\n class=\"enum-val rounded-[8px] flex gap-2 items-center justify-center\"\n [style.backgroundColor]=\"color ? softenColor(color) : null\"\n >\n <span\n [style.backgroundColor]=\"color\"\n class=\"enum-dot\"\n ></span>\n <span>{{\n row.Priority\n | asyncLabel: \"TenantPriority\" : \"Name\" : ticketingAPI\n | async\n }}</span>\n </div>\n </ng-template>\n <ng-template\n #cellEdit\n let-row=\"row\"\n let-updateData=\"updateData\"\n let-value\n >\n <div class=\"width-max\">\n <verbena-input [(ngModel)]=\"row.Priority\"></verbena-input>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"status\">\n <ng-template #cell let-row=\"row\" let-value>\n <div\n *ngIf=\"row.Status\"\n class=\"enum-val rounded-[8px] flex gap-2 items-center justify-center {{\n row.Status\n }}\"\n >\n <span class=\"enum-dot\"></span>\n <span>{{ row.Status }}</span>\n </div>\n </ng-template>\n <ng-template\n #cellEdit\n let-row=\"row\"\n let-updateData=\"updateData\"\n let-value\n >\n <verben-drop-down\n width=\"100%\"\n placeholder=\"Select Status\"\n [options]=\"statusOptions\"\n [(ngModel)]=\"row.Status\"\n >\n </verben-drop-down>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"close\">\n <ng-template #cell let-row=\"row\" let-value>\n <verbena-button\n *ngIf=\"this.canClose(row)\"\n width=\"100%\"\n class=\"verben-primary-button\"\n [text]=\"'Close Ticket'\"\n [disable]=\"!this.canClose(row)\"\n (click)=\"toggleClosureDialogue(row)\"\n >\n </verbena-button>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template\n #cell\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-row=\"row\"\n let-value\n >\n <verben-pop-Up\n #popup\n [customStyles]=\"{ 'z-index': '99' }\"\n [enableMouseLeave]=\"false\"\n >\n <verben-svg\n class=\"cursor-pointer actions-icon\"\n dropdown-trigger\n icon=\"list\"\n ></verben-svg>\n <div class=\"pop-up-content flex flex-col\" dropdown-content>\n <div\n *ngIf=\"\n !permissionConfig ||\n permissionConfig.Actions['Create']\n \"\n (click)=\"editTicket(value); closePopUp()\"\n class=\"pop-up-value cursor-pointer\"\n >\n Edit\n </div>\n <div\n (click)=\"viewTicketDetails(value); closePopUp()\"\n class=\"pop-up-value cursor-pointer\"\n >\n View Details\n </div>\n </div>\n </verben-pop-Up>\n </ng-template>\n <ng-template\n #cellEdit\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-row=\"row\"\n let-value\n >\n <div class=\"flex gap-2 items-center\">\n <verben-svg\n icon=\"tick\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"tableSaveTicket(value, toggleRowEdit)\"\n ></verben-svg>\n <verben-svg\n (click)=\"restoreCache(value); toggleRowEdit()\"\n icon=\"close-no-circle\"\n [width]=\"15\"\n [height]=\"15\"\n ></verben-svg>\n <!-- <verben-svg (click)=\"toggleRowEdit()\" icon=\"delete\" [width]=\"15\" [height]=\"15\"></verben-svg> -->\n </div>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n <div column-content>\n <verben-visible-column\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"\n ></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter\n (filtersApplied)=\"onFilterUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n ></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table\n (selectedOptions)=\"onSortUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"\n ></verben-sort-table>\n </div>\n <div import-content>\n <lib-data-import\n [previewColumns]=\"visibleColumnDef\"\n title=\"ticket\"\n (importEventData)=\"onComplete($event)\"\n [columnTemplates]=\"columnTemplates()\"\n >\n </lib-data-import>\n </div>\n <div export-content>\n <lib-data-xport\n [useImportKey]=\"true\"\n [columns]=\"visibleColumnDef\"\n [dataQueryFunction]=\"exportFiltersAndSorts\"\n [data]=\"tickets\"\n >\n </lib-data-xport>\n </div>\n <div children>\n <verbena-button\n width=\"100%\"\n [useIcon]=\"true\"\n [icon]=\"'add'\"\n class=\"verben-primary-button\"\n [text]=\"'Add New Ticket'\"\n (click)=\"addNewTicket()\"\n >\n </verbena-button>\n </div>\n </verben-data-view>\n </div>\n <div\n *ngIf=\"tickets.length > 0\"\n class=\"flex justify-end items-center gap-5\"\n >\n <span class=\"paginator-text\">{{ tickets.length }} records loaded</span>\n <button (click)=\"loadMore()\" class=\"load-more view-links\">\n Load more\n </button>\n </div>\n </div>\n </div>\n\n <div\n *ngIf=\"\n this.apps.length == 0 ||\n (this.activeApp && this.tenants.length == 0) ||\n (this.activeTenant && this.tickets.length == 0 && !isFilteredState())\n \"\n class=\"create-container flex-1 rounded-[20px] flex items-center justify-center\"\n ></div>\n</div>\n\n<!-- <app-add-app\n [isVisible]=\"showAppForm\"\n [selectedApp]=\"selectedApp\"\n (onClose)=\"onAppModalClose()\"\n (onSave)=\"onAppSave($event)\"\n></app-add-app>\n\n<app-add-tenant\n [isVisible]=\"showTenantForm\"\n [activeApp]=\"activeApp\"\n [selectedTenant]=\"selectedTenant\"\n (onClose)=\"onTenantModalClose()\"\n (onSave)=\"onTenantSave($event)\"\n></app-add-tenant> -->\n\n<app-add-ticket\n [isVisible]=\"showTicketForm\"\n [activeApp]=\"activeApp\"\n [activeUser]=\"activeUser\"\n [isDisabled]=\"isDisabled()\"\n [activeTenant]=\"activeTenant\"\n [selectedTicket]=\"selectedTicket\"\n (onClose)=\"onTicketModalClose()\"\n (onSave)=\"onTicketSave($event)\"\n></app-add-ticket>\n\n<verben-dialogue\n [showCloseIcon]=\"false\"\n [dismissOutsideClick]=\"false\"\n [closeOnEscape]=\"true\"\n [size]=\"'medium'\"\n [mode]=\"'dialogue'\"\n [customClass]=\"'ticket-dialog'\"\n [disableFooter]=\"true\"\n (openModal)=\"onModalOpen($event)\"\n [isVisible]=\"showClosureDialogue\"\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\">Enter Reason</div>\n <div class=\"dialog-subtitle\">\n Please provide a reason for closing this ticket\n </div>\n </div>\n <!-- <verbena-textarea name=\"Test\" [(ngModel)]=\"test\" />\n <button (click)=\"logTest()\">Log</button> -->\n <div class=\"add-app-form main-form-container flex flex-col gap-2\">\n <div class=\"form-input-container flex flex-col gap-1\">\n <div class=\"font-medium\">Reason</div>\n <verbena-input\n name=\"Reason\"\n placeHolder=\"Enter reason...\"\n [(ngModel)]=\"closureReason\"\n />\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.closureReason.trim().length == 0\"\n width=\"100%\"\n class=\"verben-primary-button\"\n [text]=\"'Confirm'\"\n (click)=\"closeTicket()\"\n >\n </verbena-button>\n </div>\n </div>\n </ng-template>\n</verben-dialogue>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport {\n CardDataViewModule,\n DataExportModule,\n DataTableModule,\n DataViewModule,\n DropDownModule,\n SortTableModule,\n SvgModule,\n TableFilterModule,\n TooltipModule,\n VerbenaButtonModule,\n VerbenaInputModule,\n VerbenaSwitchModule,\n VerbenDialogueModule,\n VerbenPopUpModule,\n VisibleColumnModule,\n DataImportModule,\n DataXportModule,\n} from 'verben-ng-ui';\nimport { TicketingComponent } from './ticketing.component';\nimport { AsyncLabelPipe } from 'verben-ticketing-ui/src/lib/pipes';\nimport { CompanyDatePipe } from 'verben-ticketing-ui/src/lib/pipes';\nimport { EllipseWordPipe } from 'verben-ticketing-ui/src/lib/pipes';\nimport { AddTicketLibModule } from 'verben-ticketing-ui/src/lib/components/add-ticket';\n\n@NgModule({\n declarations: [TicketingComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DataTableModule,\n SvgModule,\n VerbenPopUpModule,\n DataViewModule,\n VerbenaButtonModule,\n CardDataViewModule,\n DropDownModule,\n VerbenaSwitchModule,\n TableFilterModule,\n VisibleColumnModule,\n AsyncLabelPipe,\n SortTableModule,\n DataExportModule,\n TooltipModule,\n VerbenDialogueModule,\n VerbenaInputModule,\n DataImportModule,\n DataExportModule,\n DataXportModule,\n EllipseWordPipe,\n CompanyDatePipe,\n AddTicketLibModule,\n ],\n exports: [TicketingComponent],\n})\nexport class TicketLibModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.TicketingService"],"mappings":";;;;;;;;;;;;;;;;;;AAAO,MAAM,SAAS,GAAQ;AAC5B,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,UAAU,EAAE,mBAAmB;AAC/B,IAAA,QAAQ,EAAE,MAAM;AAChB,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,MAAM,EAAE,GAAG;;;;AAIX,IAAA,aAAa,EAAE,GAAG;;AAElB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,IAAI,EAAE;;;;;;;AAOJ,QAAA,YAAY,EAAE,mBAAmB;AACjC,QAAA,MAAM,EAAE,MAAM;AACf,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,OAAO,EAAE,aAAa;AACvB,KAAA;AACD,IAAA,MAAM,EAAE;;;AAGN,QAAA,YAAY,EAAE,mBAAmB;AACjC,QAAA,SAAS,EAAE,mBAAmB;;AAE9B,QAAA,UAAU,EAAE,MAAM;AAClB,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,MAAM,EAAE,MAAM;AACf,KAAA;AACD,IAAA,MAAM,EAAE;;;AAGN,QAAA,OAAO,EAAE,KAAK;AACf,KAAA;;;;;;;;;;AAUD,IAAA,UAAU,EAAE;;;AAGX,KAAA;CACF;;MChCY,gBAAgB,CAAA;AAIjB,IAAA,WAAA,CAAA;AACA,IAAA,MAAA,CAAA;AACA,IAAA,MAAA,CAAA;IALV,QAAQ,GAAW,iBAAiB,CAAC;AAErC,IAAA,WAAA,CACU,WAAwB,EACxB,MAA6B,EAC7B,MAA0B,EAAA;QAF1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAuB;QAC7B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAoB;KAChC;AAEJ,IAAA,IAAI,aAAa,GAAA;QACf,OAAO;AACL,YAAA;AACE,gBAAA,EAAE,EAAE,QAAQ;AACZ,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,SAAS,EAAE,KAAK;AACjB,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,WAAW;AACf,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,WAAW,EAAE,WAAW;AACzB,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,MAAM;AACV,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,WAAW,EAAE,MAAM;AACpB,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,OAAO;AACX,gBAAA,MAAM,EAAE,OAAO;AACf,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,SAAS,EAAE,OAAO;AACnB,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,aAAa;AACjB,gBAAA,MAAM,EAAE,aAAa;AACrB,gBAAA,WAAW,EAAE,aAAa;AAC1B,gBAAA,SAAS,EAAE,aAAa;AACzB,aAAA;;;;;;AAMD,YAAA;AACE,gBAAA,EAAE,EAAE,aAAa;AACjB,gBAAA,MAAM,EAAE,cAAc;AACtB,gBAAA,WAAW,EAAE,aAAa;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,eAAe;AACnB,gBAAA,MAAM,EAAE,gBAAgB;AACxB,gBAAA,WAAW,EAAE,eAAe;AAC7B,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,UAAU;AACd,gBAAA,MAAM,EAAE,UAAU;AAClB,gBAAA,WAAW,EAAE,UAAU;AACvB,gBAAA,SAAS,EAAE,UAAU;AACtB,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,QAAQ;AACZ,gBAAA,MAAM,EAAE,QAAQ;AAChB,gBAAA,WAAW,EAAE,QAAQ;AACrB,gBAAA,SAAS,EAAE,QAAQ;AACpB,aAAA;AAED,YAAA;AACE,gBAAA,EAAE,EAAE,SAAS;AACb,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,UAAU,EAAE,CAAC,GAAW,KAAI;AAC1B,oBAAA,OAAO,GAAG,CAAC;iBACZ;AACD,gBAAA,SAAS,EAAE,KAAK;AACjB,aAAA;SACF,CAAC;KACH;AAED,IAAA,MAAM,UAAU,GAAA;AACd,QAAA,MAAM,OAAO,GAA0B;AACrC,YAAA;AACE,gBAAA,YAAY,EAAE,UAAU;AACxB,gBAAA,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,cAAc,CAAC,GAAG;gBAC5B,IAAI,EAAE,kBAAkB,CAAC,GAAG;AAC7B,aAAA;SACF,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAChC,CAAA,sBAAA,CAAwB,EACxB,OAAO,EACP,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAC1C,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,GAAG,YAAY,aAAa,EAAE;YAChC,OAAO;SACR;aAAM;AACL,YAAA,IAAI,MAAM,GAAI,GAAgC,CAAC,MAAM,CAAC;AACtD,YAAA,OAAO,MAAM,CAAC;SACf;KACF;IAED,MAAM,eAAe,CAAC,GAAW,EAAA;AAC/B,QAAA,MAAM,OAAO,GAA0B;AACrC,YAAA;AACE,gBAAA,YAAY,EAAE,aAAa;AAC3B,gBAAA,WAAW,EAAE,GAAG;gBAChB,QAAQ,EAAE,cAAc,CAAC,GAAG;gBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC5B,aAAA;AACD,YAAA;AACE,gBAAA,YAAY,EAAE,UAAU;AACxB,gBAAA,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,cAAc,CAAC,GAAG;gBAC5B,IAAI,EAAE,kBAAkB,CAAC,GAAG;AAC7B,aAAA;SACF,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAChC,CAAA,iBAAA,CAAmB,EACnB,OAAO,EACP,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAC1C,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,GAAG,YAAY,aAAa,EAAE;YAChC,OAAO;SACR;aAAM;AACL,YAAA,IAAI,MAAM,GAAI,GAA2B,CAAC,MAAM,CAAC;YAEjD,IAAI,OAAO,EAAE;AACX,gBAAA,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AACnB,oBAAA,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACzD,IAAI,MAAM,EAAE;AACV,wBAAA,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;qBAC5B;AACH,iBAAC,CAAC,CAAC;aACJ;AACD,YAAA,OAAO,MAAM,CAAC;SACf;KACF;IAED,MAAM,sBAAsB,CAC1B,MAAc,EAAA;AAEd,QAAA,MAAM,OAAO,GAA0B;AACrC,YAAA;AACE,gBAAA,YAAY,EAAE,UAAU;AACxB,gBAAA,WAAW,EAAE,MAAM;gBACnB,QAAQ,EAAE,cAAc,CAAC,GAAG;gBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC5B,aAAA;SACF,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAChC,CAAA,8BAAA,EAAiC,IAAI,CAAC,QAAQ,CAAE,CAAA,EAChD,OAAO,EACP,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CACrC,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,GAAG,YAAY,aAAa,EAAE;YAChC,OAAO;SACR;aAAM;YACL,IAAI,MAAM,GAAG,GAAkC,CAAC;AAChD,YAAA,OAAO,MAAM,CAAC;SACf;KACF;IAED,MAAM,yBAAyB,CAC7B,MAAc,EAAA;AAEd,QAAA,MAAM,OAAO,GAA0B;AACrC,YAAA;AACE,gBAAA,YAAY,EAAE,UAAU;AACxB,gBAAA,WAAW,EAAE,MAAM;gBACnB,QAAQ,EAAE,cAAc,CAAC,GAAG;gBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC5B,aAAA;SACF,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAChC,CAAA,+BAAA,CAAiC,EACjC,OAAO,EACP,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CACrC,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,GAAG,YAAY,aAAa,EAAE;YAChC,OAAO;SACR;aAAM;YACL,IAAI,MAAM,GAAG,GAAkC,CAAC;AAChD,YAAA,OAAO,MAAM,CAAC;SACf;KACF;IACD,MAAM,qBAAqB,CACzB,GAAW,EAAA;AAEX,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAC/B,CAAA,0BAAA,EAA6B,GAAG,CAAM,IAAA,CAAA,EACtC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAC1C,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,GAAG,YAAY,aAAa,EAAE;YAChC,OAAO;SACR;aAAM;AACL,YAAA,IAAI,MAAM,GAAI,GAAiC,CAAC,MAAM,CAAC;AACvD,YAAA,OAAO,MAAM,CAAC;SACf;KACF;IAED,MAAM,mBAAmB,CACvB,MAAc,EACd,OAAmB,GAAA,IAAI,EACvB,UAAA,GAAqB,EAAE,EAAA;AAEvB,QAAA,MAAM,OAAO,GAA0B;AACrC,YAAA;AACE,gBAAA,YAAY,EAAE,UAAU;AACxB,gBAAA,WAAW,EAAE,MAAM;gBACnB,QAAQ,EAAE,cAAc,CAAC,GAAG;gBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC5B,aAAA;SACF,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,YAAY,EAAE,KAAK;AACnB,gBAAA,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,cAAc,CAAC,GAAG;gBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC5B,aAAA,CAAC,CAAC;SACJ;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAChC,CAAA,sBAAA,EAAyB,IAAI,CAAC,QAAQ,CAAE,CAAA,EACxC,OAAO,EACP,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CACrC,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,GAAG,YAAY,aAAa,EAAE;YAChC,OAAO;SACR;aAAM;YACL,IAAI,MAAM,GAAG,GAA0B,CAAC;AACxC,YAAA,OAAO,MAAM,CAAC;SACf;KACF;IAED,MAAM,WAAW,CAAC,OAAsB,EAAA;AACtC,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAChC,CAAA,4BAAA,CAA8B,EAC9B,OAAO,EACP,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CACrC,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,GAAG,YAAY,aAAa,EAAE;YAChC,OAAO;SACR;aAAM;YACL,IAAI,MAAM,GAAG,GAAa,CAAC;AAC3B,YAAA,OAAO,MAAM,CAAC;SACf;KACF;wGArQU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA;;4FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;AC8BD,IAAK,kBAQJ,CAAA;AARD,CAAA,UAAK,kBAAkB,EAAA;AACrB,IAAA,kBAAA,CAAA,WAAA,CAAA,GAAA,YAAwB,CAAA;AACxB,IAAA,kBAAA,CAAA,WAAA,CAAA,GAAA,YAAwB,CAAA;AACxB,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,kBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,kBAAA,CAAA,gBAAA,CAAA,GAAA,iBAAkC,CAAA;AAClC,IAAA,kBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EARI,kBAAkB,KAAlB,kBAAkB,GAQtB,EAAA,CAAA,CAAA,CAAA;AAED,IAAK,iBAQJ,CAAA;AARD,CAAA,UAAK,iBAAiB,EAAA;AACpB,IAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,iBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjC,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EARI,iBAAiB,KAAjB,iBAAiB,GAQrB,EAAA,CAAA,CAAA,CAAA;MAOY,kBAAkB,CAAA;AA0HnB,IAAA,WAAA,CAAA;AACA,IAAA,MAAA,CAAA;AACA,IAAA,GAAA,CAAA;AACD,IAAA,OAAA,CAAA;AACC,IAAA,KAAA,CAAA;AACA,IAAA,aAAA,CAAA;AACA,IAAA,MAAA,CAAA;IA/HD,gBAAgB,GAA4B,IAAI,CAAC;IAE1D,MAAM,GAAG,SAAS,CAAC;;;IAGnB,cAAc,GAAY,KAAK,CAAC;;;IAGhC,cAAc,GAAkB,IAAI,CAAC;IAC5B,SAAS,GAAkB,IAAI,CAAC;IAChC,YAAY,GAAkB,IAAI,CAAC;IACnC,UAAU,GAAkB,IAAI,CAAC;IACjC,kBAAkB,GAAY,KAAK,CAAC;IAC7C,YAAY,GAAkB,IAAI,CAAC;IACnC,IAAI,GAAkB,EAAE,CAAC;IAChB,UAAU,GAAW,EAAE,CAAC;IACjC,OAAO,GAAa,EAAE,CAAC;IACvB,OAAO,GAAa,EAAE,CAAC;IACvB,YAAY,GAAW,EAAE,CAAC;IACjB,cAAc,GAAW,EAAE,CAAC;IAC5B,OAAO,GAAW,EAAE,CAAC;IAC9B,aAAa,GAAkB,IAAI,CAAC;IACpC,aAAa,GAAW,EAAE,CAAC;IAC3B,mBAAmB,GAAY,KAAK,CAAC;AACrC,IAAA,UAAU,GAAiB,YAAY,CAAC,OAAO,CAAC;IAChD,gBAAgB,GAA4B,EAAE,CAAC;IAC/C,eAAe,GAA4B,EAAE,CAAC;AAC9C,IAAA,YAAY,GAA0B,MAAM,CAAC,EAAE,CAAC,CAAC;AACjD,IAAA,eAAe,GAAG,YAAY,CAAkB,eAAe,CAAC,CAAC;AAC/C,IAAA,QAAQ,CAAqB;AAC9B,IAAA,SAAS,CAA8B;AACjC,IAAA,MAAM,CAAmC;IAChE,QAAQ,GAAW,iBAAiB,CAAC;IACrC,kBAAkB,GAAW,GAAG,CAAC;IACjC,SAAS,GAA+B,IAAI,CAAC;IAC7C,MAAM,GAAY,KAAK,CAAC;IACxB,cAAc,GAAkB,IAAI,CAAC;IACrC,cAAc,GAAkB,EAAE,CAAC;IACnC,YAAY,GAAkB,EAAE,CAAC;AACjC,IAAA,WAAW,GAAG,IAAI,OAAO,EAAU,CAAC;AACpC,IAAA,aAAa,GAAa,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpD,cAAc,GAAkB,EAAE,CAAC;AACnC,IAAA,WAAW,GAAkB;AAC3B,QAAA;YACE,IAAI,EAAE,kBAAkB,CAAC,SAAS;YAClC,IAAI,EAAE,cAAc,CAAC,IAAI;AACzB,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;AACD,QAAA;YACE,IAAI,EAAE,kBAAkB,CAAC,SAAS;YAClC,IAAI,EAAE,cAAc,CAAC,IAAI;AACzB,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;AACD,QAAA;YACE,IAAI,EAAE,kBAAkB,CAAC,KAAK;YAC9B,IAAI,EAAE,cAAc,CAAC,MAAM;AAC3B,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;AACD,QAAA;YACE,IAAI,EAAE,kBAAkB,CAAC,WAAW;YACpC,IAAI,EAAE,cAAc,CAAC,MAAM;AAC3B,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;AACD,QAAA;YACE,IAAI,EAAE,kBAAkB,CAAC,cAAc;YACvC,IAAI,EAAE,cAAc,CAAC,MAAM;AAC3B,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;AACD,QAAA;YACE,IAAI,EAAE,kBAAkB,CAAC,QAAQ;YACjC,IAAI,EAAE,cAAc,CAAC,MAAM;AAC3B,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;AACD,QAAA;YACE,IAAI,EAAE,kBAAkB,CAAC,MAAM;YAC/B,IAAI,EAAE,cAAc,CAAC,MAAM;AAC3B,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;KACF,CAAC;AAEF,IAAA,WAAW,GAAkB;AAC3B,QAAA;YACE,IAAI,EAAE,kBAAkB,CAAC,SAAS;YAClC,IAAI,EAAE,cAAc,CAAC,IAAI;AACzB,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;AACD,QAAA;YACE,IAAI,EAAE,kBAAkB,CAAC,SAAS;YAClC,IAAI,EAAE,cAAc,CAAC,IAAI;AACzB,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;AACD,QAAA;YACE,IAAI,EAAE,kBAAkB,CAAC,KAAK;YAC9B,IAAI,EAAE,cAAc,CAAC,MAAM;AAC3B,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;AACD,QAAA;YACE,IAAI,EAAE,kBAAkB,CAAC,WAAW;YACpC,IAAI,EAAE,cAAc,CAAC,MAAM;AAC3B,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;AACD,QAAA;YACE,IAAI,EAAE,kBAAkB,CAAC,cAAc;YACvC,IAAI,EAAE,cAAc,CAAC,MAAM;AAC3B,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;AACD,QAAA;YACE,IAAI,EAAE,kBAAkB,CAAC,QAAQ;YACjC,IAAI,EAAE,cAAc,CAAC,MAAM;AAC3B,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;AACD,QAAA;YACE,IAAI,EAAE,kBAAkB,CAAC,MAAM;YAC/B,IAAI,EAAE,cAAc,CAAC,MAAM;AAC3B,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;KACF,CAAC;IAEM,iBAAiB,GAAW,EAAE,CAAC;AAEvC,IAAA,WAAA,CACU,WAAwB,EACxB,MAA6B,EAC7B,GAAsB,EACvB,OAAyB,EACxB,KAAqB,EACrB,aAAoC,EACpC,MAA0B,EAAA;QAN1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAuB;QAC7B,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACvB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAkB;QACxB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAuB;QACpC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAoB;KAChC;AAEJ,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CACvD,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,SAAS,IAAI,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAC,CACrE,CAAC;QAEF,IACE,IAAI,CAAC,kBAAkB;AACvB,YAAA,IAAI,CAAC,gBAAgB;YACrB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,EAC5C;AACA,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAElE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE;AAC3C,gBAAA,EAAE,EAAE,OAAO;AACX,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,SAAS,EAAE,KAAK;AACjB,aAAA,CAAC,CAAC;SACJ;AACD,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CACtD,CAAC,CAAC,KACA,CAAC,CAAC,CAAC,EAAE,IAAI,SAAS,IAAI,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAC;AAC9D,YAAA,CAAC,CAAC,EAAE,IAAI,aAAa,CACxB,CAAC;;AAEF,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa;aAC7C,MAAM,CACL,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,SAAS,IAAI,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAC,CACrE;AACA,aAAA,GAAG,CAAC,CAAC,GAAG,MAAM;AACb,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,IAAI,EAAE,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE;YAC1D,IAAI,EAAE,cAAc,CAAC,IAAI;AAC1B,SAAA,CAAC,CAAC,CAAC;AACN,QAAA,IAAI,CAAC,YAAY,GAAG,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAA,OAAA,CAAS,CAAC;AAErE,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,MAAM,OAAO,GACX,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC;YAE5D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CACpD,IAAI,CAAC,YAAY,EACjB,OAAO,EACP,IAAI,CAAC,UAAU,IAAI,EAAE,CACtB,CAAC;YACF,IAAI,OAAO,EAAE;AACX,gBAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;AACzB,gBAAA,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;gBAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;oBAC/B,OAAO;AACL,wBAAA,GAAG,CAAC;wBACJ,EAAE,EAAE,CAAC,CAAC,IAAI;qBACX,CAAC;AACJ,iBAAC,CAAC,CAAC;AAEH,gBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aACzB;SACF;AAED,QAAA,IAAI,CAAC,WAAW;aACb,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC3C,aAAA,SAAS,CAAC,OAAO,UAAU,KAAI;AAC9B,YAAA,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC;AACpC,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACnC,SAAC,CAAC,CAAC;KACN;AAED,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO;SACR;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9B,QAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;AACjD,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,GAAG,YAAY,aAAa,EAAE;YAChC,OAAO;SACR;aAAM;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,GAA0B,CAAC;AAC5C,YAAA,IAAI,MAAM,GAAI,GAA2B,CAAC,MAAM,CAAC;YACjD,MAAM,UAAU,GAAa,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;gBAC5C,OAAO;AACL,oBAAA,GAAG,CAAC;oBACJ,EAAE,EAAE,CAAC,CAAC,IAAI;iBACX,CAAC;AACJ,aAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SAChD;KACF;AAED,IAAA,MAAM,eAAe,CAAC,IAAY,EAAE,QAAmB,EAAA;QACrD,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;YACzD,OAAO;SACR;AACD,QAAA,IAAI,CAAC,SAAS;AACZ,YAAA,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC;AAC5E,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACb,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAChC,CAAmB,iBAAA,CAAA,EACnB,CAAC,IAAI,CAAC,EACN,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CACrC,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,GAAG,YAAY,aAAa,EAAE;SACjC;aAAM;AACL,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;YAC1D,MAAM,MAAM,GAAG,GAAe,CAAC;AAC/B,YAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,gBAAA,IAAI,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3B,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;AAC3D,gBAAA,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE;oBAClB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;oBAC/C,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC;oBAC7C,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;oBACzD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;oBACvD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;AAC7D,oBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC1C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;iBACzC;AACD,gBAAA,QAAQ,EAAE,CAAC;aACZ;SACF;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;KAC3C;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAC5B,YAAA,IAAI,KAAK,CAAC,YAAY,EAAE;gBACtB,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;AACH,SAAC,CAAC,CAAC;KACJ;IAED,YAAY,CAAC,UAAmB,EAAA,GAAU;IAE1C,aAAa,GAAY,IAAI,CAAC;IAE9B,iBAAiB,CAAC,YAAsB,EAAA,GAAI;AAE5C,IAAA,gBAAgB,CAAC,cAA6B,EAAA;QAC5C,MAAM,gBAAgB,GAA+B,EAAE,CAAC;AACxD,QAAA,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AAC7B,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CACjD,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,CACjE,CAAC;YACF,IAAI,WAAW,EAAE;AACf,gBAAA,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACpC;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC;KAC/C;AAED,IAAA,qBAAqB,GAAG,OAAO,SAG9B,KAAI;QACH,IAAI,OAAO,GAA0B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;YACjE,OAAO;AACL,gBAAA,YAAY,EACV,iBAAiB,CACf,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAmC,CAC7D;gBACH,WAAW,EAAE,CAAC,CAAC,KAAK;gBACpB,QAAQ,EAAE,cAAc,CAAC,GAAG;AAC5B,gBAAA,IAAI,EACF,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,sBAAG,WAAW,CACV,CAAC,CAAC,SAAqC,CACN;sBACnC,kBAAkB,CAAC,EAAE;AAC3B,gBAAA,IAAI,EACF,CAAC,CAAC,IAAI,IAAI,kBAAkB,CAAC,SAAS;AACtC,oBAAA,CAAC,CAAC,IAAI,IAAI,kBAAkB,CAAC,SAAS;sBAClC,uBAAuB,CAAC,IAAI;sBAC5B,uBAAuB,CAAC,MAAM;aACrC,CAAC;AACJ,SAAC,CAAC,CAAC;;;;;;;AAOH,QAAA,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,YAAY,EACV,iBAAiB,CACf,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAmC,CAChE;AACH,gBAAA,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,cAAc,CAAC,GAAG;gBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC3B,gBAAA,IAAI,EACF,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE;sBACvD,aAAa,CAAC,GAAG;AACnB,sBAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE;0BAC1D,aAAa,CAAC,IAAI;0BAClB,aAAa,CAAC,IAAI;AAC3B,aAAA,CAAC,CAAC;SACJ;QAED,MAAM,aAAa,GAA0B,EAAE,CAAC;;;;;;;;;;;;;;;AAiBhD,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAElE,IAAI,gBAAgB,EAAE;YACpB,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;gBACpD,aAAa,CAAC,IAAI,CAAC;AACjB,oBAAA,YAAY,EAAE,QAAQ;AACtB,oBAAA,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;oBAC1C,QAAQ,EAAE,cAAc,CAAC,EAAE;oBAC3B,IAAI,EAAE,kBAAkB,CAAC,IAAI;AAC9B,iBAAA,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;SACJ;AAED,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,YAAY,EAAE,UAAU;gBACxB,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,QAAQ,EAAE,cAAc,CAAC,GAAG;gBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC5B,aAAA,CAAC,CAAC;YACH,aAAa,CAAC,IAAI,CAAC;AACjB,gBAAA,YAAY,EAAE,UAAU;gBACxB,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,QAAQ,EAAE,cAAc,CAAC,GAAG;gBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC5B,aAAA,CAAC,CAAC;SACJ;AAED,QAAA,MAAM,OAAO,GACX,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC;QAE5D,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,YAAY,EAAE,KAAK;AACnB,gBAAA,WAAW,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;gBAClC,QAAQ,EAAE,cAAc,CAAC,GAAG;gBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC5B,aAAA,CAAC,CAAC;YACH,aAAa,CAAC,IAAI,CAAC;AACjB,gBAAA,YAAY,EAAE,KAAK;AACnB,gBAAA,WAAW,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;gBAClC,QAAQ,EAAE,cAAc,CAAC,GAAG;gBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC5B,aAAA,CAAC,CAAC;SACJ;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,gBAAgB;cACxB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,CAAA,oBAAA,EAAuB,SAAS,CAAC,IAAI,CAAA,CAAA,EAAI,SAAS,CAAC,KAAK,CAAA,CAAE,EAC1D,aAAa,EACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CACrC;AACH,cAAE,OAAO,CAAC,MAAM,IAAI,CAAC;kBACjB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACnB,CAAoB,iBAAA,EAAA,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,KAAK,CAAA,CAAE,EACvD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CACrC;AACH,kBAAE,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,CAAuB,oBAAA,EAAA,SAAS,CAAC,IAAI,CAAI,CAAA,EAAA,SAAS,CAAC,KAAK,CAAE,CAAA,EAC1D,OAAO,EACP,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CACrC,CAAC;AACR,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,GAAG,YAAY,aAAa,EAAE;AAChC,YAAA,OAAO,EAAE,CAAC;SACX;aAAM;AACL,YAAA,IAAI,MAAM,GAAI,GAA2B,CAAC,MAAM,CAAC;AACjD,YAAA,OAAO,MAAM,CAAC;SACf;AACH,KAAC,CAAC;AACF,IAAA,MAAM,qBAAqB,CAAC,QAAA,GAAoB,KAAK,EAAA;QACnD,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;AAC9B,YAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;AACzB,YAAA,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE;AACzC,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,IAAI,EAAE,MAAM;AACb,aAAA,CAAC,CAAC;AACH,YAAA,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SACpC;QACD,IAAI,OAAO,GAA0B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;YACjE,OAAO;AACL,gBAAA,YAAY,EACV,iBAAiB,CACf,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAmC,CAC7D;gBACH,WAAW,EAAE,CAAC,CAAC,KAAK;gBACpB,QAAQ,EAAE,cAAc,CAAC,GAAG;AAC5B,gBAAA,IAAI,EACF,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,sBAAG,WAAW,CACV,CAAC,CAAC,SAAqC,CACN;sBACnC,kBAAkB,CAAC,EAAE;AAC3B,gBAAA,IAAI,EACF,CAAC,CAAC,IAAI,IAAI,kBAAkB,CAAC,SAAS;AACtC,oBAAA,CAAC,CAAC,IAAI,IAAI,kBAAkB,CAAC,SAAS;sBAClC,uBAAuB,CAAC,IAAI;sBAC5B,uBAAuB,CAAC,MAAM;aACrC,CAAC;AACJ,SAAC,CAAC,CAAC;;;;;;;AAOH,QAAA,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,YAAY,EACV,iBAAiB,CACf,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAmC,CAChE;AACH,gBAAA,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,cAAc,CAAC,GAAG;gBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC3B,gBAAA,IAAI,EACF,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE;sBACvD,aAAa,CAAC,GAAG;AACnB,sBAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE;0BAC1D,aAAa,CAAC,IAAI;0BAClB,aAAa,CAAC,IAAI;AAC3B,aAAA,CAAC,CAAC;SACJ;QACD,MAAM,aAAa,GAA0B,EAAE,CAAC;;;;;;;;;;;;;;;AAiBhD,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAElE,IAAI,gBAAgB,EAAE;YACpB,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;gBACpD,aAAa,CAAC,IAAI,CAAC;AACjB,oBAAA,YAAY,EAAE,QAAQ;AACtB,oBAAA,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;oBAC1C,QAAQ,EAAE,cAAc,CAAC,EAAE;oBAC3B,IAAI,EAAE,kBAAkB,CAAC,IAAI;AAC9B,iBAAA,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;SACJ;AAED,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,YAAY,EAAE,UAAU;gBACxB,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,QAAQ,EAAE,cAAc,CAAC,GAAG;gBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC5B,aAAA,CAAC,CAAC;YACH,aAAa,CAAC,IAAI,CAAC;AACjB,gBAAA,YAAY,EAAE,UAAU;gBACxB,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,QAAQ,EAAE,cAAc,CAAC,GAAG;gBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC5B,aAAA,CAAC,CAAC;SACJ;AAED,QAAA,MAAM,OAAO,GACX,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC;QAE5D,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,YAAY,EAAE,KAAK;AACnB,gBAAA,WAAW,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;gBAClC,QAAQ,EAAE,cAAc,CAAC,GAAG;gBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC5B,aAAA,CAAC,CAAC;YACH,aAAa,CAAC,IAAI,CAAC;AACjB,gBAAA,YAAY,EAAE,KAAK;AACnB,gBAAA,WAAW,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;gBAClC,QAAQ,EAAE,cAAc,CAAC,GAAG;gBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC5B,aAAA,CAAC,CAAC;SACJ;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,gBAAgB;cACxB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,CAAA,sBAAA,EAAyB,IAAI,CAAC,QAAQ,CAAE,CAAA,EACxC,aAAa,EACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CACrC;AACH,cAAE,OAAO,CAAC,MAAM,IAAI,CAAC;kBACjB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACnB,CAAsB,mBAAA,EAAA,IAAI,CAAC,QAAQ,CAAA,CAAE,EACrC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CACrC;kBACD,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,CAAyB,sBAAA,EAAA,IAAI,CAAC,QAAQ,EAAE,EACxC,OAAO,EACP,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CACrC,CAAC;AACR,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,GAAG,YAAY,aAAa,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACzB,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,YAAA,OAAO,SAAS,CAAC;SAClB;aAAM;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,GAA0B,CAAC;AAC5C,YAAA,IAAI,MAAM,GAAI,GAA2B,CAAC,MAAM,CAAC;YACjD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;gBAC9B,OAAO;AACL,oBAAA,GAAG,CAAC;oBACJ,EAAE,EAAE,CAAC,CAAC,IAAI;iBACX,CAAC;AACJ,aAAC,CAAC,CAAC;SACJ;KACF;AACD,IAAA,MAAM,uBAAuB,GAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO;SACR;QAED,IAAI,OAAO,GAA0B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;YACjE,OAAO;AACL,gBAAA,YAAY,EACV,iBAAiB,CACf,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAmC,CAC7D;gBACH,WAAW,EAAE,CAAC,CAAC,KAAK;gBACpB,QAAQ,EAAE,cAAc,CAAC,GAAG;AAC5B,gBAAA,IAAI,EACF,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,sBAAG,WAAW,CACV,CAAC,CAAC,SAAqC,CACN;sBACnC,kBAAkB,CAAC,EAAE;AAC3B,gBAAA,IAAI,EACF,CAAC,CAAC,IAAI,IAAI,kBAAkB,CAAC,SAAS;AACtC,oBAAA,CAAC,CAAC,IAAI,IAAI,kBAAkB,CAAC,SAAS;sBAClC,uBAAuB,CAAC,IAAI;sBAC5B,uBAAuB,CAAC,MAAM;aACrC,CAAC;AACJ,SAAC,CAAC,CAAC;AACH,QAAA,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,YAAY,EACV,iBAAiB,CACf,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAmC,CAChE;AACH,gBAAA,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,cAAc,CAAC,GAAG;gBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC3B,gBAAA,IAAI,EACF,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE;sBACvD,aAAa,CAAC,GAAG;AACnB,sBAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE;0BAC1D,aAAa,CAAC,IAAI;0BAClB,aAAa,CAAC,IAAI;AAC3B,aAAA,CAAC,CAAC;SACJ;QACD,MAAM,aAAa,GAA0B,EAAE,CAAC;;;;;;;;;;;;;;;AAiBhD,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAElE,IAAI,gBAAgB,EAAE;YACpB,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;gBACpD,aAAa,CAAC,IAAI,CAAC;AACjB,oBAAA,YAAY,EAAE,QAAQ;AACtB,oBAAA,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;oBAC1C,QAAQ,EAAE,cAAc,CAAC,EAAE;oBAC3B,IAAI,EAAE,kBAAkB,CAAC,IAAI;AAC9B,iBAAA,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;SACJ;AAED,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,YAAY,EAAE,UAAU;gBACxB,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,QAAQ,EAAE,cAAc,CAAC,GAAG;gBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC5B,aAAA,CAAC,CAAC;YACH,aAAa,CAAC,IAAI,CAAC;AACjB,gBAAA,YAAY,EAAE,UAAU;gBACxB,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,QAAQ,EAAE,cAAc,CAAC,GAAG;gBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC5B,aAAA,CAAC,CAAC;SACJ;AAED,QAAA,MAAM,OAAO,GACX,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC;QAE5D,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,YAAY,EAAE,KAAK;AACnB,gBAAA,WAAW,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;gBAClC,QAAQ,EAAE,cAAc,CAAC,GAAG;gBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC5B,aAAA,CAAC,CAAC;YACH,aAAa,CAAC,IAAI,CAAC;AACjB,gBAAA,YAAY,EAAE,KAAK;AACnB,gBAAA,WAAW,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;gBAClC,QAAQ,EAAE,cAAc,CAAC,GAAG;gBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC5B,aAAA,CAAC,CAAC;SACJ;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,gBAAgB;cACxB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,CAAA,sBAAA,EAAyB,IAAI,CAAC,QAAQ,CAAE,CAAA,EACxC,aAAa,EACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CACrC;AACH,cAAE,OAAO,CAAC,MAAM,IAAI,CAAC;kBACjB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACnB,CAAA,iBAAA,EAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,QAAQ,CAAA,CAAE,EAC1D,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CACrC;AACH,kBAAE,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,CAAuB,oBAAA,EAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,QAAQ,CAAA,CAAE,EAC7D,OAAO,EACP,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CACrC,CAAC;AACR,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,GAAG,YAAY,aAAa,EAAE;AAChC,YAAA,OAAO,SAAS,CAAC;SAClB;aAAM;YACL,IAAI,MAAM,GAAG,GAA0B,CAAC;AACxC,YAAA,OAAO,MAAM,CAAC;SACf;KACF;AAED,IAAA,eAAe,CAAC,cAAsC,EAAA;;AAEpD,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;AACjC,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;YACrC,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC9B;KACF;AACD,IAAA,aAAa,CAAC,YAA2B,EAAA;AACvC,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;AAED,IAAA,YAAY,CAAC,KAAqC,EAAA;QAChD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KACpC;AAED,IAAA,YAAY,CAAC,YAA4B,EAAA;;AAEvC,QAAA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;KAChC;IAED,eAAe,GAAA;QACb,QACE,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAC1E;KACH;AAEO,IAAA,WAAW,CAAC,IAAoB,EAAA;QACtC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACjB,YAAA,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrE,SAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACzC,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;YAC/B,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACtC,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/B,YAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAC5C,YAAA,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;AACjC,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SACjC;KACF;;;;;;;;;AAWD,IAAA,UAAU,CAAC,KAAY,EAAA;AACrB,QAAA,IAAI,WAAW,GAAW;AACxB,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,GAAG,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,EAAE;YACzC,MAAM,EAAE,YAAY,CAAC,OAAO;YAC5B,OAAO,EAAE,IAAI,CAAC,cAAc;AAC5B,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,QAAQ,EAAE,EAAE;YACZ,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE;AAClC,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,QAAQ,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE;AACpD,YAAA,WAAW,EAAE,EAAE;YACf,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS,EAAE,WAAW,CAAC,GAAG;AAC1B,YAAA,GAAG,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS;SAClC,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,UAAU,CAC3B,KAAK,EACL,WAAW,EACX,mBAAmB,EACnB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,EACpC,QAAQ,EACR,CAAC,KAAe,KAAI;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5C,SAAC,EACD,IAAI,CAAC,SAAS,CACf,CAAC;KACH;AAED,IAAA,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEvC,IAAA,SAAS,CAAC,IAAY,EAAA;AACpB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjE;AAED,IAAA,YAAY,CAAC,IAAY,EAAA;AACvB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;AACzC,YAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;AACnC,YAAA,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;SAChC;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;KAClC;;;;;;;;;;AAYD,IAAA,gBAAgB,CAAC,IAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KAClB;AAED,IAAA,mBAAmB,CAAC,OAAiB,EAAA;AACnC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;KACxB;AAED,IAAA,UAAU,CAAC,GAAW,EAAA;QACpB,OAAO,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAC;KAC9D;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;;;;;;;;;AAYD,IAAA,UAAU,CAAC,MAAc,EAAA;AACvB,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;AAC7B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;;;;;;;;;IAYD,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;;;;;;;;;;;;;;;;;;;;;AA0BD,IAAA,YAAY,CAAC,MAAc,EAAA;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;;AAGjE,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE;YAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;;YAEnD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;SAChD;aAAM;AACL,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC9B;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,MAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAG,EAAA,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;KAC9D;AAED,IAAA,aAAa,CAAC,KAAa,EAAA;AACzB,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAE9D,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,IAAI,CAAC;AAEtB,QAAA,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC;AACvB,QAAA,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;AAEtB,QAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC;;AAE/B,QAAA,IACE,QAAQ,CAAC,WAAW,EAAE,KAAK,SAAS;AACpC,YAAA,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,EAC/B;YACA,OAAO,IAAI,CAAC;SACb;AAED,QAAA,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;KAC/B;IACD,WAAW,CAAC,GAAW,EAAE,cAAc,GAAG,EAAE,EAAE,YAAY,GAAG,EAAE,EAAA;;QAE7D,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACxB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,SAAS,EAAE;gBACb,GAAG,GAAG,SAAS,CAAC;aACjB;SACF;QAED,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC5B,QAAA,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;;AAEpB,YAAA,GAAG,GAAG,GAAG;iBACN,KAAK,CAAC,EAAE,CAAC;iBACT,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBACjB,IAAI,CAAC,EAAE,CAAC,CAAC;SACb;QAED,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,IAAI,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;;QAGnB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACtE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACtE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;;AAGtE,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC;AACrD,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AAE/D,QAAA,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC;aACzD,QAAQ,CAAC,EAAE,CAAC;AACZ,aAAA,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;aAChB,WAAW,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA,EAAG,IAAI,CAAA,CAAE,CAAC;KAC3E;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,YAAA,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC;KACtD;AAED,IAAA,qBAAqB,CAAC,IAAY,EAAA;AAChC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC;KACtD;IAED,WAAW,CAAC,KAAU,EAAA,GAAI;AAE1B,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;KAClC;AAED,IAAA,QAAQ,CAAC,IAAY,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,OAAO,CAAC;KAC5C;AAED,IAAA,MAAM,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YAC7D,OAAO;SACR;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE;AACzC,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;YACpD,OAAO;SACR;AAED,QAAA,MAAM,OAAO,GAAkB;AAC7B,YAAA,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI;AAC5B,YAAA,KAAK,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;YAC5B,KAAK,EAAE,IAAI,CAAC,aAAa;SAC1B,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,GAAG,EAAE;AACP,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC;YAC3D,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;YACvC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;YACjD,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;YACrD,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,YAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;SACvB;KACF;wGAlgCU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAAlB,kBAAkB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EA6BmB,eAAe,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,KAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,IAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzGjE,y/gBAicA,EAAA,MAAA,EAAA,CAAA,8tCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,eAAA,EAAA,OAAA,EAAA,cAAA,EAAA,YAAA,EAAA,QAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,0BAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,IAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,YAAA,EAAA,OAAA,EAAA,aAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,cAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,cAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,cAAA,EAAA,aAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,WAAA,EAAA,MAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,SAAA,EAAA,QAAA,EAAA,cAAA,EAAA,WAAA,EAAA,OAAA,EAAA,eAAA,EAAA,YAAA,EAAA,SAAA,EAAA,UAAA,EAAA,KAAA,EAAA,KAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,KAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDrXa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,y/gBAAA,EAAA,MAAA,EAAA,CAAA,8tCAAA,CAAA,EAAA,CAAA;0QAKhB,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBASG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAGG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAIG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBASY,QAAQ,EAAA,CAAA;sBAAzB,SAAS;uBAAC,KAAK,CAAA;gBACC,SAAS,EAAA,CAAA;sBAAzB,SAAS;uBAAC,IAAI,CAAA;gBACQ,MAAM,EAAA,CAAA;sBAA5B,YAAY;uBAAC,OAAO,CAAA;;;ME/CV,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAf,eAAe,EAAA,YAAA,EAAA,CA9BX,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAE/B,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,eAAe;YACf,SAAS;YACT,iBAAiB;YACjB,cAAc;YACd,mBAAmB;YACnB,kBAAkB;YAClB,cAAc;YACd,mBAAmB;YACnB,iBAAiB;YACjB,mBAAmB;YACnB,cAAc;YACd,eAAe;YACf,gBAAgB;YAChB,aAAa;YACb,oBAAoB;YACpB,kBAAkB;YAClB,gBAAgB;YAChB,gBAAgB;YAChB,eAAe;YACf,eAAe;YACf,eAAe;AACf,YAAA,kBAAkB,aAEV,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAEjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YA5BxB,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,eAAe;YACf,SAAS;YACT,iBAAiB;YACjB,cAAc;YACd,mBAAmB;YACnB,kBAAkB;YAClB,cAAc;YACd,mBAAmB;YACnB,iBAAiB;YACjB,mBAAmB;YAEnB,eAAe;YACf,gBAAgB;YAChB,aAAa;YACb,oBAAoB;YACpB,kBAAkB;YAClB,gBAAgB;YAChB,gBAAgB;YAChB,eAAe;YAGf,kBAAkB,CAAA,EAAA,CAAA,CAAA;;4FAIT,eAAe,EAAA,UAAA,EAAA,CAAA;kBA/B3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;AAClC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,eAAe;wBACf,SAAS;wBACT,iBAAiB;wBACjB,cAAc;wBACd,mBAAmB;wBACnB,kBAAkB;wBAClB,cAAc;wBACd,mBAAmB;wBACnB,iBAAiB;wBACjB,mBAAmB;wBACnB,cAAc;wBACd,eAAe;wBACf,gBAAgB;wBAChB,aAAa;wBACb,oBAAoB;wBACpB,kBAAkB;wBAClB,gBAAgB;wBAChB,gBAAgB;wBAChB,eAAe;wBACf,eAAe;wBACf,eAAe;wBACf,kBAAkB;AACnB,qBAAA;oBACD,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC9B,iBAAA,CAAA;;;AC5DD;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "verben-ticketing-ui",
3
- "version": "0.8.4",
3
+ "version": "0.8.5",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^14.0.0 || ^18.0.0",
6
6
  "@angular/core": "^14.0.0 || ^18.0.0",
@@ -24,17 +24,23 @@
24
24
  "esm": "./esm2022/verben-ticketing-ui.mjs",
25
25
  "default": "./fesm2022/verben-ticketing-ui.mjs"
26
26
  },
27
+ "./src/lib/constants": {
28
+ "types": "./src/lib/constants/index.d.ts",
29
+ "esm2022": "./esm2022/src/lib/constants/verben-ticketing-ui-src-lib-constants.mjs",
30
+ "esm": "./esm2022/src/lib/constants/verben-ticketing-ui-src-lib-constants.mjs",
31
+ "default": "./fesm2022/verben-ticketing-ui-src-lib-constants.mjs"
32
+ },
27
33
  "./src/utils": {
28
34
  "types": "./src/utils/index.d.ts",
29
35
  "esm2022": "./esm2022/src/utils/verben-ticketing-ui-src-utils.mjs",
30
36
  "esm": "./esm2022/src/utils/verben-ticketing-ui-src-utils.mjs",
31
37
  "default": "./fesm2022/verben-ticketing-ui-src-utils.mjs"
32
38
  },
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"
39
+ "./src/lib/models": {
40
+ "types": "./src/lib/models/index.d.ts",
41
+ "esm2022": "./esm2022/src/lib/models/verben-ticketing-ui-src-lib-models.mjs",
42
+ "esm": "./esm2022/src/lib/models/verben-ticketing-ui-src-lib-models.mjs",
43
+ "default": "./fesm2022/verben-ticketing-ui-src-lib-models.mjs"
38
44
  },
39
45
  "./src/lib/pipes": {
40
46
  "types": "./src/lib/pipes/index.d.ts",
@@ -48,12 +54,6 @@
48
54
  "esm": "./esm2022/src/lib/services/verben-ticketing-ui-src-lib-services.mjs",
49
55
  "default": "./fesm2022/verben-ticketing-ui-src-lib-services.mjs"
50
56
  },
51
- "./src/lib/models": {
52
- "types": "./src/lib/models/index.d.ts",
53
- "esm2022": "./esm2022/src/lib/models/verben-ticketing-ui-src-lib-models.mjs",
54
- "esm": "./esm2022/src/lib/models/verben-ticketing-ui-src-lib-models.mjs",
55
- "default": "./fesm2022/verben-ticketing-ui-src-lib-models.mjs"
56
- },
57
57
  "./src/lib/components/add-ticket": {
58
58
  "types": "./src/lib/components/add-ticket/index.d.ts",
59
59
  "esm2022": "./esm2022/src/lib/components/add-ticket/verben-ticketing-ui-src-lib-components-add-ticket.mjs",