@rolatech/angular-authorization 20.0.0-beta.12 → 20.0.0-beta.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/fesm2022/{rolatech-angular-authorization-clients.routes-1DxVMcgN.mjs → rolatech-angular-authorization-clients.routes-C6wg4xBQ.mjs} +32 -32
  2. package/fesm2022/rolatech-angular-authorization-clients.routes-C6wg4xBQ.mjs.map +1 -0
  3. package/fesm2022/{rolatech-angular-authorization-endpoint.service-DJyp7eVK.mjs → rolatech-angular-authorization-endpoint.service-C_HUhuxJ.mjs} +4 -4
  4. package/fesm2022/{rolatech-angular-authorization-endpoint.service-DJyp7eVK.mjs.map → rolatech-angular-authorization-endpoint.service-C_HUhuxJ.mjs.map} +1 -1
  5. package/fesm2022/{rolatech-angular-authorization-endpoints.routes-D7YPpm6z.mjs → rolatech-angular-authorization-endpoints.routes-pN4AzdPE.mjs} +9 -9
  6. package/fesm2022/{rolatech-angular-authorization-endpoints.routes-D7YPpm6z.mjs.map → rolatech-angular-authorization-endpoints.routes-pN4AzdPE.mjs.map} +1 -1
  7. package/fesm2022/{rolatech-angular-authorization-permission.service-BatXKCSF.mjs → rolatech-angular-authorization-permission.service-DaVMKjoO.mjs} +4 -4
  8. package/fesm2022/{rolatech-angular-authorization-permission.service-BatXKCSF.mjs.map → rolatech-angular-authorization-permission.service-DaVMKjoO.mjs.map} +1 -1
  9. package/fesm2022/{rolatech-angular-authorization-permissions.routes-_Zr9heus.mjs → rolatech-angular-authorization-permissions.routes-Bhi3Sdt4.mjs} +19 -19
  10. package/fesm2022/rolatech-angular-authorization-permissions.routes-Bhi3Sdt4.mjs.map +1 -0
  11. package/fesm2022/{rolatech-angular-authorization-role.service-Dj9w5oqG.mjs → rolatech-angular-authorization-role.service-DOtkSfjB.mjs} +4 -4
  12. package/fesm2022/{rolatech-angular-authorization-role.service-Dj9w5oqG.mjs.map → rolatech-angular-authorization-role.service-DOtkSfjB.mjs.map} +1 -1
  13. package/fesm2022/{rolatech-angular-authorization-roles.routes-2Cv0EaTW.mjs → rolatech-angular-authorization-roles.routes-Dp8HsI2a.mjs} +20 -20
  14. package/fesm2022/rolatech-angular-authorization-roles.routes-Dp8HsI2a.mjs.map +1 -0
  15. package/fesm2022/{rolatech-angular-authorization-settings.routes-D_p2Zhn9.mjs → rolatech-angular-authorization-settings.routes-5wQLk3qB.mjs} +4 -4
  16. package/fesm2022/{rolatech-angular-authorization-settings.routes-D_p2Zhn9.mjs.map → rolatech-angular-authorization-settings.routes-5wQLk3qB.mjs.map} +1 -1
  17. package/fesm2022/{rolatech-angular-authorization-users.routes-CcYJCh-p.mjs → rolatech-angular-authorization-users.routes-CHYu-96D.mjs} +24 -24
  18. package/fesm2022/rolatech-angular-authorization-users.routes-CHYu-96D.mjs.map +1 -0
  19. package/fesm2022/rolatech-angular-authorization.mjs +9 -9
  20. package/fesm2022/rolatech-angular-authorization.mjs.map +1 -1
  21. package/package.json +1 -1
  22. package/fesm2022/rolatech-angular-authorization-clients.routes-1DxVMcgN.mjs.map +0 -1
  23. package/fesm2022/rolatech-angular-authorization-permissions.routes-_Zr9heus.mjs.map +0 -1
  24. package/fesm2022/rolatech-angular-authorization-roles.routes-2Cv0EaTW.mjs.map +0 -1
  25. package/fesm2022/rolatech-angular-authorization-users.routes-CcYJCh-p.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"rolatech-angular-authorization-clients.routes-1DxVMcgN.mjs","sources":["../tmp-esm2022/lib/services/client.service.js","../tmp-esm2022/lib/components/client-secret-copy/client-secret-copy.component.js","../tmp-esm2022/lib/pages/clients/create/create.component.js","../tmp-esm2022/lib/components/client-bind-dialog/client-bind-dialog.component.js","../tmp-esm2022/lib/pages/clients/details/details.component.js","../tmp-esm2022/lib/pages/clients/index/index.component.js","../tmp-esm2022/lib/pages/clients/clients.routes.js"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseService } from '@rolatech/angular-services';\nimport * as i0 from \"@angular/core\";\nexport class ClientService extends BaseService {\n init() {\n this.endpoint = 'auth/clients';\n super.init();\n }\n resetClientSecret(id) {\n return this.http.post(`${this.actionUrl}/${id}/reset`, {}, {\n withCredentials: true,\n });\n }\n bindWeChatClient(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/wechat`, data, {\n withCredentials: true,\n });\n }\n unBindWeChatClient(id) {\n return this.http.delete(`${this.actionUrl}/${id}/wechat`, {\n withCredentials: true,\n });\n }\n updateWeChatClient(id, data) {\n return this.http.put(`${this.actionUrl}/${id}/wechat`, data, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ClientService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ClientService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ClientService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWF1dGhvcml6YXRpb24vc3JjL2xpYi9zZXJ2aWNlcy9jbGllbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFNekQsTUFBTSxPQUFPLGFBQWMsU0FBUSxXQUFXO0lBQ25DLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQztRQUMvQixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsaUJBQWlCLENBQUMsRUFBVTtRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxRQUFRLEVBQy9CLEVBQUUsRUFDRjtZQUNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxFQUFVLEVBQUUsSUFBUztRQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUU7WUFDNUQsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGtCQUFrQixDQUFDLEVBQVU7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDeEQsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGtCQUFrQixDQUFDLEVBQVUsRUFBRSxJQUFTO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRTtZQUMzRCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQTVCVSxhQUFhOzJHQUFiLGFBQWEsY0FGWixNQUFNOzsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ2xpZW50U2VydmljZSBleHRlbmRzIEJhc2VTZXJ2aWNlIHtcbiAgb3ZlcnJpZGUgaW5pdCgpIHtcbiAgICB0aGlzLmVuZHBvaW50ID0gJ2F1dGgvY2xpZW50cyc7XG4gICAgc3VwZXIuaW5pdCgpO1xuICB9XG4gIHJlc2V0Q2xpZW50U2VjcmV0KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgIGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9yZXNldGAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIGJpbmRXZUNoYXRDbGllbnQoaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3dlY2hhdGAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1bkJpbmRXZUNoYXRDbGllbnQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3dlY2hhdGAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVXZUNoYXRDbGllbnQoaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vd2VjaGF0YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { Component, model, output } from '@angular/core';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/form-field\";\nimport * as i2 from \"@angular/material/input\";\nimport * as i3 from \"@angular/material/button\";\nimport * as i4 from \"@angular/cdk/clipboard\";\nexport class ClientSecretCopyComponent {\n clientSecret = model.required();\n output = output();\n ngDoCheck() {\n this.output.emit(this.clientSecret());\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ClientSecretCopyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: ClientSecretCopyComponent, isStandalone: true, selector: \"rolatech-authorization-client-secret-copy\", inputs: { clientSecret: { classPropertyName: \"clientSecret\", publicName: \"clientSecret\", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { clientSecret: \"clientSecretChange\", output: \"output\" }, ngImport: i0, template: \"<div class=\\\"flex items-center gap-3\\\">\\n <mat-form-field appearance=\\\"fill\\\" subscriptSizing=\\\"dynamic\\\">\\n <input matInput type=\\\"password\\\" [value]=\\\"clientSecret()\\\" readonly />\\n </mat-form-field>\\n <button mat-icon-button [cdkCopyToClipboard]=\\\"clientSecret()\\\">\\n <mat-icon>content_copy</mat-icon>\\n </button>\\n</div>\\n\", styles: [\"mat-form-field{width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i1.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i2.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i3.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: ClipboardModule }, { kind: \"directive\", type: i4.CdkCopyToClipboard, selector: \"[cdkCopyToClipboard]\", inputs: [\"cdkCopyToClipboard\", \"cdkCopyToClipboardAttempts\"], outputs: [\"cdkCopyToClipboardCopied\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ClientSecretCopyComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-authorization-client-secret-copy', imports: [MatFormFieldModule, MatInputModule, MatButtonModule, MatIcon, ClipboardModule], template: \"<div class=\\\"flex items-center gap-3\\\">\\n <mat-form-field appearance=\\\"fill\\\" subscriptSizing=\\\"dynamic\\\">\\n <input matInput type=\\\"password\\\" [value]=\\\"clientSecret()\\\" readonly />\\n </mat-form-field>\\n <button mat-icon-button [cdkCopyToClipboard]=\\\"clientSecret()\\\">\\n <mat-icon>content_copy</mat-icon>\\n </button>\\n</div>\\n\", styles: [\"mat-form-field{width:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LXNlY3JldC1jb3B5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItYXV0aG9yaXphdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvY2xpZW50LXNlY3JldC1jb3B5L2NsaWVudC1zZWNyZXQtY29weS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWF1dGhvcml6YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2NsaWVudC1zZWNyZXQtY29weS9jbGllbnQtc2VjcmV0LWNvcHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBa0IsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7OztBQVF6RCxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQVksR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7SUFDeEMsTUFBTSxHQUFHLE1BQU0sRUFBTyxDQUFDO0lBQ3ZCLFNBQVM7UUFDUCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO3VHQUxVLHlCQUF5QjsyRkFBekIseUJBQXlCLGdVQ2R0QyxrVkFRQSxxRkRFWSxrQkFBa0IseU9BQUUsY0FBYyxpWUFBRSxlQUFlLHNOQUFFLE9BQU8sMElBQUUsZUFBZTs7MkZBSTVFLHlCQUF5QjtrQkFOckMsU0FBUzsrQkFDRSwyQ0FBMkMsV0FDNUMsQ0FBQyxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIERvQ2hlY2ssIGlucHV0LCBtb2RlbCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2xpcGJvYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NsaXBib2FyZCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtYXV0aG9yaXphdGlvbi1jbGllbnQtc2VjcmV0LWNvcHknLFxuICBpbXBvcnRzOiBbTWF0Rm9ybUZpZWxkTW9kdWxlLCBNYXRJbnB1dE1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRJY29uLCBDbGlwYm9hcmRNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2xpZW50LXNlY3JldC1jb3B5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NsaWVudC1zZWNyZXQtY29weS5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIENsaWVudFNlY3JldENvcHlDb21wb25lbnQgaW1wbGVtZW50cyBEb0NoZWNrIHtcbiAgY2xpZW50U2VjcmV0ID0gbW9kZWwucmVxdWlyZWQ8c3RyaW5nPigpO1xuICBvdXRwdXQgPSBvdXRwdXQ8YW55PigpO1xuICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgdGhpcy5vdXRwdXQuZW1pdCh0aGlzLmNsaWVudFNlY3JldCgpKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInBhc3N3b3JkXCIgW3ZhbHVlXT1cImNsaWVudFNlY3JldCgpXCIgcmVhZG9ubHkgLz5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW2Nka0NvcHlUb0NsaXBib2FyZF09XCJjbGllbnRTZWNyZXQoKVwiPlxuICAgIDxtYXQtaWNvbj5jb250ZW50X2NvcHk8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19","import { Component, inject } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ClientService } from '../../../services/client.service';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule, BaseComponent, TitleComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { ClientSecretCopyComponent } from '../../../components/client-secret-copy/client-secret-copy.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@angular/material/button\";\nimport * as i3 from \"@angular/material/form-field\";\nimport * as i4 from \"@angular/material/input\";\nexport class CreateComponent extends BaseComponent {\n formBuilder = inject(FormBuilder);\n snackBar = inject(MatSnackBar);\n clientService = inject(ClientService);\n fileName = '';\n uploadProgress = 0;\n file;\n url = '';\n clientCreateForm;\n ngOnInit() {\n this.clientCreateForm = this.formBuilder.group({\n name: [null, Validators.required],\n });\n }\n submit() {\n if (!this.clientCreateForm.valid) {\n return;\n }\n this.clientService.create(this.clientCreateForm.value).subscribe({\n next: (res) => {\n this.copyClientSecret(res.data.id, res.data.clientSecret);\n },\n error: (error) => {\n this.snackBar.open(error.message);\n },\n });\n }\n copyClientSecret(id, clientSecret) {\n const options = {\n title: 'Copy client secret',\n confirmText: 'Confirm',\n component: ClientSecretCopyComponent,\n data: {\n clientSecret: clientSecret,\n },\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (result) => {\n this.router.navigate([`../${id}`], {\n relativeTo: this.route,\n });\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CreateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.3\", type: CreateComponent, isStandalone: true, selector: \"rolatech-authorization-create\", usesInheritance: true, ngImport: i0, template: \"<rolatech-toolbar title=\\\"Create\\\"></rolatech-toolbar>\\n<div class=\\\"px-4\\\">\\n <form [formGroup]=\\\"clientCreateForm\\\" (submit)=\\\"submit()\\\">\\n <div class=\\\"flex flex-col lg:w-1/2\\\">\\n <!-- name -->\\n <rolatech-title title=\\\"Info\\\"></rolatech-title>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label> Name </mat-label>\\n <input matInput formControlName=\\\"name\\\" required />\\n </mat-form-field>\\n </div>\\n <button mat-raised-button type=\\\"submit\\\">Save</button>\\n </form>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"directive\", type: i1.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i1.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i1.RequiredValidator, selector: \":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]\", inputs: [\"required\"] }, { kind: \"directive\", type: i1.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"directive\", type: i1.FormControlName, selector: \"[formControlName]\", inputs: [\"formControlName\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"] }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: i2.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: i3.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i3.MatLabel, selector: \"mat-label\" }, { kind: \"directive\", type: i4.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"component\", type: TitleComponent, selector: \"rolatech-title\", inputs: [\"title\", \"subtitle\", \"large\"] }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CreateComponent, decorators: [{\n type: Component,\n args: [{ imports: [AngularCommonModule, AngularComponentsModule, TitleComponent, ToolbarComponent], selector: 'rolatech-authorization-create', template: \"<rolatech-toolbar title=\\\"Create\\\"></rolatech-toolbar>\\n<div class=\\\"px-4\\\">\\n <form [formGroup]=\\\"clientCreateForm\\\" (submit)=\\\"submit()\\\">\\n <div class=\\\"flex flex-col lg:w-1/2\\\">\\n <!-- name -->\\n <rolatech-title title=\\\"Info\\\"></rolatech-title>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label> Name </mat-label>\\n <input matInput formControlName=\\\"name\\\" required />\\n </mat-form-field>\\n </div>\\n <button mat-raised-button type=\\\"submit\\\">Save</button>\\n </form>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItYXV0aG9yaXphdGlvbi9zcmMvbGliL3BhZ2VzL2NsaWVudHMvY3JlYXRlL2NyZWF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWF1dGhvcml6YXRpb24vc3JjL2xpYi9wYWdlcy9jbGllbnRzL2NyZWF0ZS9jcmVhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUVBQXFFLENBQUM7Ozs7OztBQVFoSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxhQUFhO0lBQ2hELFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQixhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDZCxjQUFjLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLElBQUksQ0FBUTtJQUNaLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDVCxnQkFBZ0IsQ0FBYTtJQUU3QixRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQzdDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQ2xDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDL0QsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzVELENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxFQUFVLEVBQUUsWUFBb0I7UUFDL0MsTUFBTSxPQUFPLEdBQUc7WUFDZCxLQUFLLEVBQUUsb0JBQW9CO1lBQzNCLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLFNBQVMsRUFBRSx5QkFBeUI7WUFDcEMsSUFBSSxFQUFFO2dCQUNKLFlBQVksRUFBRSxZQUFZO2FBQzNCO1NBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUMsU0FBUyxDQUFDO1lBQ3ZDLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFO29CQUNqQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUs7aUJBQ3ZCLENBQUMsQ0FBQztZQUNMLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQTdDVSxlQUFlOzJGQUFmLGVBQWUsZ0hDZDVCLGdoQkFjQSx5RERMWSxtQkFBbUIseXFDQUFFLHVCQUF1QixtK0JBQUUsY0FBYyxtR0FBRSxnQkFBZ0I7OzJGQUs3RSxlQUFlO2tCQU4zQixTQUFTOzhCQUNDLENBQUMsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixDQUFDLFlBQy9FLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBDbGllbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2xpZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQW5ndWxhckNvbW1vbk1vZHVsZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSwgQmFzZUNvbXBvbmVudCwgVGl0bGVDb21wb25lbnQsIFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IENsaWVudFNlY3JldENvcHlDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2NsaWVudC1zZWNyZXQtY29weS9jbGllbnQtc2VjcmV0LWNvcHkuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtBbmd1bGFyQ29tbW9uTW9kdWxlLCBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSwgVGl0bGVDb21wb25lbnQsIFRvb2xiYXJDb21wb25lbnRdLFxuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWF1dGhvcml6YXRpb24tY3JlYXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NyZWF0ZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDcmVhdGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZm9ybUJ1aWxkZXIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xuICBzbmFja0JhciA9IGluamVjdChNYXRTbmFja0Jhcik7XG4gIGNsaWVudFNlcnZpY2UgPSBpbmplY3QoQ2xpZW50U2VydmljZSk7XG4gIGZpbGVOYW1lID0gJyc7XG4gIHVwbG9hZFByb2dyZXNzID0gMDtcbiAgZmlsZSE6IEZpbGU7XG4gIHVybCA9ICcnO1xuICBjbGllbnRDcmVhdGVGb3JtITogRm9ybUdyb3VwO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2xpZW50Q3JlYXRlRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgbmFtZTogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgIH0pO1xuICB9XG4gIHN1Ym1pdCgpIHtcbiAgICBpZiAoIXRoaXMuY2xpZW50Q3JlYXRlRm9ybS52YWxpZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNsaWVudFNlcnZpY2UuY3JlYXRlKHRoaXMuY2xpZW50Q3JlYXRlRm9ybS52YWx1ZSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmNvcHlDbGllbnRTZWNyZXQocmVzLmRhdGEuaWQsIHJlcy5kYXRhLmNsaWVudFNlY3JldCk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oZXJyb3IubWVzc2FnZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGNvcHlDbGllbnRTZWNyZXQoaWQ6IHN0cmluZywgY2xpZW50U2VjcmV0OiBzdHJpbmcpIHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgdGl0bGU6ICdDb3B5IGNsaWVudCBzZWNyZXQnLFxuICAgICAgY29uZmlybVRleHQ6ICdDb25maXJtJyxcbiAgICAgIGNvbXBvbmVudDogQ2xpZW50U2VjcmV0Q29weUNvbXBvbmVudCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgY2xpZW50U2VjcmV0OiBjbGllbnRTZWNyZXQsXG4gICAgICB9LFxuICAgIH07XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4ob3B0aW9ucyk7XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNvbmZpcm1lZCgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzdWx0KSA9PiB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgLi4vJHtpZH1gXSwge1xuICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCJDcmVhdGVcIj48L3JvbGF0ZWNoLXRvb2xiYXI+XG48ZGl2IGNsYXNzPVwicHgtNFwiPlxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImNsaWVudENyZWF0ZUZvcm1cIiAoc3VibWl0KT1cInN1Ym1pdCgpXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbGc6dy0xLzJcIj5cbiAgICAgIDwhLS0gbmFtZSAtLT5cbiAgICAgIDxyb2xhdGVjaC10aXRsZSB0aXRsZT1cIkluZm9cIj48L3JvbGF0ZWNoLXRpdGxlPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgIDxtYXQtbGFiZWw+IE5hbWUgPC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgcmVxdWlyZWQgLz5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiB0eXBlPVwic3VibWl0XCI+U2F2ZTwvYnV0dG9uPlxuICA8L2Zvcm0+XG48L2Rpdj5cbiJdfQ==","import { Component, inject, model, output } from '@angular/core';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule } from '@rolatech/angular-components';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@angular/material/autocomplete\";\nimport * as i3 from \"@angular/material/form-field\";\nimport * as i4 from \"@angular/material/input\";\nimport * as i5 from \"@angular/material/select\";\nexport class ClientBindDialogComponent {\n formBuilder = inject(FormBuilder);\n apps = model();\n app = model();\n selectedApp = model();\n output = output();\n wechatClientBindForm;\n ngOnInit() {\n this.wechatClientBindForm = this.formBuilder.group({\n name: [null, Validators.required],\n appId: [null, Validators.required],\n appSecret: [null, Validators.required],\n });\n if (this.app()) {\n const { name, appId, appSecret } = this.app();\n this.wechatClientBindForm.setValue({\n name,\n appId,\n appSecret,\n });\n }\n }\n onSelectionChange(event) {\n this.selectedApp.set(event.value);\n }\n compareFn(o1, o2) {\n return o1.name === o2.name;\n }\n ngDoCheck() {\n this.output.emit(this.wechatClientBindForm.value);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ClientBindDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: ClientBindDialogComponent, isStandalone: true, selector: \"rolatech-authorization-client-bind-dialog\", inputs: { apps: { classPropertyName: \"apps\", publicName: \"apps\", isSignal: true, isRequired: false, transformFunction: null }, app: { classPropertyName: \"app\", publicName: \"app\", isSignal: true, isRequired: false, transformFunction: null }, selectedApp: { classPropertyName: \"selectedApp\", publicName: \"selectedApp\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { apps: \"appsChange\", app: \"appChange\", selectedApp: \"selectedAppChange\", output: \"output\" }, ngImport: i0, template: \"<div>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label>App Type</mat-label>\\n <mat-select [compareWith]=\\\"compareFn\\\" (selectionChange)=\\\"onSelectionChange($event)\\\" [(ngModel)]=\\\"selectedApp\\\">\\n @for (item of apps(); track item) {\\n <mat-option [value]=\\\"item\\\">\\n {{ item.name }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <form [formGroup]=\\\"wechatClientBindForm\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label> Name </mat-label>\\n <input matInput formControlName=\\\"name\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label> AppId </mat-label>\\n <input matInput formControlName=\\\"appId\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label> AppSecret </mat-label>\\n <input matInput formControlName=\\\"appSecret\\\" required />\\n </mat-form-field>\\n </form>\\n</div>\\n\", styles: [\"mat-form-field{width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"directive\", type: i1.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i1.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i1.RequiredValidator, selector: \":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]\", inputs: [\"required\"] }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"directive\", type: i1.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"directive\", type: i1.FormControlName, selector: \"[formControlName]\", inputs: [\"formControlName\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"] }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: i2.MatOption, selector: \"mat-option\", inputs: [\"value\", \"id\", \"disabled\"], outputs: [\"onSelectionChange\"], exportAs: [\"matOption\"] }, { kind: \"component\", type: i3.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i3.MatLabel, selector: \"mat-label\" }, { kind: \"directive\", type: i4.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"component\", type: i5.MatSelect, selector: \"mat-select\", inputs: [\"aria-describedby\", \"panelClass\", \"disabled\", \"disableRipple\", \"tabIndex\", \"hideSingleSelectionIndicator\", \"placeholder\", \"required\", \"multiple\", \"disableOptionCentering\", \"compareWith\", \"value\", \"aria-label\", \"aria-labelledby\", \"errorStateMatcher\", \"typeaheadDebounceInterval\", \"sortComparator\", \"id\", \"panelWidth\", \"canSelectNullableOptions\"], outputs: [\"openedChange\", \"opened\", \"closed\", \"selectionChange\", \"valueChange\"], exportAs: [\"matSelect\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ClientBindDialogComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-authorization-client-bind-dialog', imports: [AngularCommonModule, AngularComponentsModule], template: \"<div>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label>App Type</mat-label>\\n <mat-select [compareWith]=\\\"compareFn\\\" (selectionChange)=\\\"onSelectionChange($event)\\\" [(ngModel)]=\\\"selectedApp\\\">\\n @for (item of apps(); track item) {\\n <mat-option [value]=\\\"item\\\">\\n {{ item.name }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <form [formGroup]=\\\"wechatClientBindForm\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label> Name </mat-label>\\n <input matInput formControlName=\\\"name\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label> AppId </mat-label>\\n <input matInput formControlName=\\\"appId\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label> AppSecret </mat-label>\\n <input matInput formControlName=\\\"appSecret\\\" required />\\n </mat-form-field>\\n </form>\\n</div>\\n\", styles: [\"mat-form-field{width:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWJpbmQtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItYXV0aG9yaXphdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvY2xpZW50LWJpbmQtZGlhbG9nL2NsaWVudC1iaW5kLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWF1dGhvcml6YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2NsaWVudC1iaW5kLWRpYWxvZy9jbGllbnQtYmluZC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBNkIsTUFBTSxFQUFTLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVFwRSxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMsSUFBSSxHQUFHLEtBQUssRUFBTyxDQUFDO0lBQ3BCLEdBQUcsR0FBRyxLQUFLLEVBQU8sQ0FBQztJQUNuQixXQUFXLEdBQUcsS0FBSyxFQUFPLENBQUM7SUFDM0IsTUFBTSxHQUFHLE1BQU0sRUFBTyxDQUFDO0lBQ3ZCLG9CQUFvQixDQUFhO0lBRWpDLFFBQVE7UUFDTixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDakQsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDakMsS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDbEMsU0FBUyxFQUFFLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDdkMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUNmLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDO2dCQUNqQyxJQUFJO2dCQUNKLEtBQUs7Z0JBQ0wsU0FBUzthQUNWLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBQ0QsaUJBQWlCLENBQUMsS0FBVTtRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELFNBQVMsQ0FBQyxFQUFPLEVBQUUsRUFBTztRQUN4QixPQUFPLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQztJQUM3QixDQUFDO0lBQ0QsU0FBUztRQUNQLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO3VHQS9CVSx5QkFBeUI7MkZBQXpCLHlCQUF5Qix5a0JDWHRDLHk3QkEwQkEscUZEbkJZLG1CQUFtQixpNENBQUUsdUJBQXVCOzsyRkFJM0MseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLDJDQUEyQyxXQUM1QyxDQUFDLG1CQUFtQixFQUFFLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBEb0NoZWNrLCBPbkluaXQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCBtb2RlbCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbmd1bGFyQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1hdXRob3JpemF0aW9uLWNsaWVudC1iaW5kLWRpYWxvZycsXG4gIGltcG9ydHM6IFtBbmd1bGFyQ29tbW9uTW9kdWxlLCBBbmd1bGFyQ29tcG9uZW50c01vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jbGllbnQtYmluZC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY2xpZW50LWJpbmQtZGlhbG9nLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2xpZW50QmluZERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgRG9DaGVjayB7XG4gIGZvcm1CdWlsZGVyID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcbiAgYXBwcyA9IG1vZGVsPGFueT4oKTtcbiAgYXBwID0gbW9kZWw8YW55PigpO1xuICBzZWxlY3RlZEFwcCA9IG1vZGVsPGFueT4oKTtcbiAgb3V0cHV0ID0gb3V0cHV0PGFueT4oKTtcbiAgd2VjaGF0Q2xpZW50QmluZEZvcm0hOiBGb3JtR3JvdXA7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy53ZWNoYXRDbGllbnRCaW5kRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgbmFtZTogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgYXBwSWQ6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIGFwcFNlY3JldDogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgIH0pO1xuICAgIGlmICh0aGlzLmFwcCgpKSB7XG4gICAgICBjb25zdCB7IG5hbWUsIGFwcElkLCBhcHBTZWNyZXQgfSA9IHRoaXMuYXBwKCk7XG4gICAgICB0aGlzLndlY2hhdENsaWVudEJpbmRGb3JtLnNldFZhbHVlKHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgYXBwSWQsXG4gICAgICAgIGFwcFNlY3JldCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBvblNlbGVjdGlvbkNoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZEFwcC5zZXQoZXZlbnQudmFsdWUpO1xuICB9XG4gIGNvbXBhcmVGbihvMTogYW55LCBvMjogYW55KSB7XG4gICAgcmV0dXJuIG8xLm5hbWUgPT09IG8yLm5hbWU7XG4gIH1cbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIHRoaXMub3V0cHV0LmVtaXQodGhpcy53ZWNoYXRDbGllbnRCaW5kRm9ybS52YWx1ZSk7XG4gIH1cbn1cbiIsIjxkaXY+XG4gIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgIDxtYXQtbGFiZWw+QXBwIFR5cGU8L21hdC1sYWJlbD5cbiAgICA8bWF0LXNlbGVjdCBbY29tcGFyZVdpdGhdPVwiY29tcGFyZUZuXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEFwcFwiPlxuICAgICAgQGZvciAoaXRlbSBvZiBhcHBzKCk7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIml0ZW1cIj5cbiAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgfVxuICAgIDwvbWF0LXNlbGVjdD5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJ3ZWNoYXRDbGllbnRCaW5kRm9ybVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgPG1hdC1sYWJlbD4gTmFtZSA8L21hdC1sYWJlbD5cbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgcmVxdWlyZWQgLz5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgPG1hdC1sYWJlbD4gQXBwSWQgPC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiYXBwSWRcIiByZXF1aXJlZCAvPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICA8bWF0LWxhYmVsPiBBcHBTZWNyZXQgPC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiYXBwU2VjcmV0XCIgcmVxdWlyZWQgLz5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Zvcm0+XG48L2Rpdj5cbiJdfQ==","import { Component, inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule, BaseComponent, ConfirmationComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { ClientService } from '../../../services/client.service';\nimport { ClientBindDialogComponent } from '../../../components/client-bind-dialog/client-bind-dialog.component';\nimport { ClientSecretCopyComponent } from '../../../components/client-secret-copy/client-secret-copy.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/material/button\";\nimport * as i3 from \"@angular/material/divider\";\nimport * as i4 from \"@angular/material/icon\";\nimport * as i5 from \"@angular/material/list\";\nexport class DetailsComponent extends BaseComponent {\n clientServide = inject(ClientService);\n snackBar = inject(MatSnackBar);\n permissions = [];\n allComplete = false;\n isLoading = false;\n formattedPermissions = [];\n client;\n // results: any;\n ngOnInit() {\n this.get();\n }\n get() {\n this.isLoading = true;\n this.clientServide.get(this.id).subscribe({\n next: (res) => {\n this.client = res.data;\n this.isLoading = false;\n },\n error: (error) => {\n this.isLoading = false;\n this.snackBar.open(error.message);\n },\n });\n }\n editClient() { }\n deleteClient() {\n const options = {\n title: 'Delete client',\n component: ConfirmationComponent,\n data: {\n message: 'Delete confirm?',\n },\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (result) => {\n if (result) {\n this.clientServide.delete(this.id).subscribe({\n next: (res) => {\n this.snackBarService.open('Deleted');\n this.router.navigate([`../`], {\n relativeTo: this.route,\n });\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n },\n });\n }\n resetClientSecret() {\n this.clientServide.resetClientSecret(this.id).subscribe({\n next: (res) => {\n this.copyClientSecret(res.data.clientSecret);\n },\n error: (error) => {\n this.snackBar.open(error.message);\n },\n });\n }\n bindWeChatclient() {\n const options = {\n title: '绑定应用',\n cancelText: 'Cancel',\n confirmText: 'Confirm',\n component: ClientBindDialogComponent,\n data: {\n selectedApp: { name: '微信' },\n apps: [{ name: '微信' }, { name: '支付宝' }],\n },\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (result) => {\n if (result) {\n this.clientServide.bindWeChatClient(this.id, result).subscribe({\n next: (res) => {\n this.client.weChatClient = res.data;\n this.snackBarService.open('绑定成功');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n },\n });\n }\n unBindWeChatclient() {\n const options = {\n title: '解绑应用',\n message: '解除绑定前, 请确认是否正在使用此应用',\n cancelText: 'Cancel',\n confirmText: 'Confirm',\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (result) => {\n if (result) {\n this.clientServide.unBindWeChatClient(this.id).subscribe({\n next: (res) => {\n this.snackBarService.open(res.data);\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n },\n });\n }\n updateWeChatclient() {\n const options = {\n title: '修改应用',\n cancelText: 'Cancel',\n confirmText: 'Confirm',\n component: ClientBindDialogComponent,\n data: {\n selectedApp: { name: '微信' },\n app: this.client.weChatClient,\n apps: [{ name: '微信' }, { name: '支付宝' }],\n },\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (result) => {\n if (result) {\n this.clientServide.updateWeChatClient(this.client.weChatClient.id, result).subscribe({\n next: (res) => {\n this.client.weChatClient = res.data;\n this.snackBarService.open('Update successfully');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n },\n });\n }\n copyClientSecret(clientSecret) {\n const options = {\n title: 'Copy client secret',\n confirmText: 'Confirm',\n component: ClientSecretCopyComponent,\n data: {\n clientSecret: clientSecret,\n },\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (result) => { },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: DetailsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: DetailsComponent, isStandalone: true, selector: \"rolatech-authorization-details\", usesInheritance: true, ngImport: i0, template: \"<rolatech-toolbar title=\\\"Client details\\\"></rolatech-toolbar>\\n<div class=\\\"max-w-[820px] p-3\\\">\\n @if (client) {\\n <!-- contact -->\\n <div class=\\\"border border-[--rt-border-color] rounded px-3 pt-3\\\">\\n <div class=\\\"p-3 flex justify-between items-center\\\">\\n <span class=\\\"text-xl\\\">Info</span>\\n <div class=\\\"flex gap-3\\\">\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"editClient()\\\">\\n <mat-icon>edit</mat-icon>\\n <span i18n>Update</span>\\n </button>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"deleteClient()\\\" i18n>Delete</button>\\n </div>\\n </div>\\n <mat-nav-list>\\n <mat-list-item>\\n <div class=\\\"flex items-center justify-between\\\">\\n <div class=\\\"flex flex-1 items-center\\\">\\n <span class=\\\"w-24 text-sm\\\" Update>#ID</span>\\n <span i18n>{{ client.id || 'Unset' }}</span>\\n </div>\\n </div>\\n </mat-list-item>\\n <mat-divider class=\\\"mx-3\\\"></mat-divider>\\n <mat-list-item>\\n <div class=\\\"flex items-center justify-between\\\">\\n <div class=\\\"flex flex-1 items-center\\\">\\n <span class=\\\"w-24 text-sm\\\">Name</span>\\n <span i18n>{{ client.clientName || 'Unset' }}</span>\\n </div>\\n </div>\\n </mat-list-item>\\n <mat-divider class=\\\"mx-3\\\"></mat-divider>\\n <mat-list-item>\\n <div class=\\\"flex items-center justify-between\\\">\\n <div class=\\\"flex flex-1 items-center\\\">\\n <span class=\\\"w-24 text-sm\\\">ClientId</span>\\n <span i18n>{{ client.clientId || 'Unset' }}</span>\\n </div>\\n </div>\\n </mat-list-item>\\n <mat-divider class=\\\"mx-3\\\"></mat-divider>\\n <mat-list-item>\\n <div class=\\\"flex items-center justify-between\\\">\\n <div class=\\\"flex flex-1 items-center\\\">\\n <span class=\\\"w-24 text-sm\\\">Client Secret</span>\\n <span i18n>Set</span>\\n </div>\\n <button mat-button (click)=\\\"resetClientSecret()\\\">Reset</button>\\n </div>\\n </mat-list-item>\\n <mat-divider class=\\\"mx-3\\\"></mat-divider>\\n <mat-list-item>\\n <div class=\\\"flex items-center justify-between\\\">\\n <div class=\\\"flex flex-1 items-center\\\">\\n <span class=\\\"w-24 text-sm\\\">Issued At</span>\\n <span>{{ client.clientIdIssuedAt | date }}</span>\\n </div>\\n </div>\\n </mat-list-item>\\n </mat-nav-list>\\n </div>\\n <!-- wechat client -->\\n <div class=\\\"border border-[--rt-border-color] rounded p-3 mt-3\\\">\\n <div class=\\\"p-3 flex justify-between items-center\\\">\\n <span class=\\\"text-xl\\\">WeChat Client</span>\\n @if (client.weChatClient) {\\n <div class=\\\"flex gap-3\\\">\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"updateWeChatclient()\\\">\\n <mat-icon>edit</mat-icon>\\n Update\\n </button>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"unBindWeChatclient()\\\">Delete</button>\\n </div>\\n } @else {\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"bindWeChatclient()\\\">Bind</button>\\n }\\n </div>\\n @if (client.weChatClient) {\\n <mat-nav-list>\\n <mat-list-item>\\n <div class=\\\"flex items-center justify-between\\\">\\n <div class=\\\"flex flex-1 items-center\\\">\\n <span class=\\\"w-24 text-sm\\\" i18n>#ID</span>\\n <span i18n>{{ client.id || 'Unset' }}</span>\\n </div>\\n </div>\\n </mat-list-item>\\n <mat-divider class=\\\"mx-3\\\"></mat-divider>\\n <mat-list-item>\\n <div class=\\\"flex items-center justify-between\\\">\\n <div class=\\\"flex flex-1 items-center\\\">\\n <span class=\\\"w-24 text-sm\\\" i18n>Name</span>\\n <span i18n>{{ client.weChatClient.name || 'Unset' }}</span>\\n </div>\\n </div>\\n </mat-list-item>\\n <mat-divider class=\\\"mx-3\\\"></mat-divider>\\n <mat-list-item>\\n <div class=\\\"flex items-center justify-between\\\">\\n <div class=\\\"flex flex-1 items-center\\\">\\n <span class=\\\"w-24 text-sm\\\" i18n>App Id</span>\\n <span i18n>{{ client.weChatClient.appId || 'Unset' }}</span>\\n </div>\\n </div>\\n </mat-list-item>\\n <mat-divider class=\\\"mx-3\\\"></mat-divider>\\n\\n <mat-list-item>\\n <div class=\\\"flex items-center justify-between\\\">\\n <div class=\\\"flex flex-1 items-center\\\">\\n <span class=\\\"w-24 text-sm\\\" i18n>App Secret</span>\\n <span>{{ client.weChatClient.appSecret || 'Unset' }}</span>\\n </div>\\n </div>\\n </mat-list-item>\\n </mat-nav-list>\\n } @else {\\n <div class=\\\"p-3\\\">\\n <span class=\\\"py-11 opacity-70\\\" i18n>Not bound to WeChat</span>\\n </div>\\n }\\n </div>\\n }\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"pipe\", type: i1.DatePipe, name: \"date\" }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: i2.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: i3.MatDivider, selector: \"mat-divider\", inputs: [\"vertical\", \"inset\"] }, { kind: \"component\", type: i4.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: i5.MatNavList, selector: \"mat-nav-list\", exportAs: [\"matNavList\"] }, { kind: \"component\", type: i5.MatListItem, selector: \"mat-list-item, a[mat-list-item], button[mat-list-item]\", inputs: [\"activated\"], exportAs: [\"matListItem\"] }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: DetailsComponent, decorators: [{\n type: Component,\n args: [{ imports: [AngularCommonModule, AngularComponentsModule, ToolbarComponent], selector: 'rolatech-authorization-details', template: \"<rolatech-toolbar title=\\\"Client details\\\"></rolatech-toolbar>\\n<div class=\\\"max-w-[820px] p-3\\\">\\n @if (client) {\\n <!-- contact -->\\n <div class=\\\"border border-[--rt-border-color] rounded px-3 pt-3\\\">\\n <div class=\\\"p-3 flex justify-between items-center\\\">\\n <span class=\\\"text-xl\\\">Info</span>\\n <div class=\\\"flex gap-3\\\">\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"editClient()\\\">\\n <mat-icon>edit</mat-icon>\\n <span i18n>Update</span>\\n </button>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"deleteClient()\\\" i18n>Delete</button>\\n </div>\\n </div>\\n <mat-nav-list>\\n <mat-list-item>\\n <div class=\\\"flex items-center justify-between\\\">\\n <div class=\\\"flex flex-1 items-center\\\">\\n <span class=\\\"w-24 text-sm\\\" Update>#ID</span>\\n <span i18n>{{ client.id || 'Unset' }}</span>\\n </div>\\n </div>\\n </mat-list-item>\\n <mat-divider class=\\\"mx-3\\\"></mat-divider>\\n <mat-list-item>\\n <div class=\\\"flex items-center justify-between\\\">\\n <div class=\\\"flex flex-1 items-center\\\">\\n <span class=\\\"w-24 text-sm\\\">Name</span>\\n <span i18n>{{ client.clientName || 'Unset' }}</span>\\n </div>\\n </div>\\n </mat-list-item>\\n <mat-divider class=\\\"mx-3\\\"></mat-divider>\\n <mat-list-item>\\n <div class=\\\"flex items-center justify-between\\\">\\n <div class=\\\"flex flex-1 items-center\\\">\\n <span class=\\\"w-24 text-sm\\\">ClientId</span>\\n <span i18n>{{ client.clientId || 'Unset' }}</span>\\n </div>\\n </div>\\n </mat-list-item>\\n <mat-divider class=\\\"mx-3\\\"></mat-divider>\\n <mat-list-item>\\n <div class=\\\"flex items-center justify-between\\\">\\n <div class=\\\"flex flex-1 items-center\\\">\\n <span class=\\\"w-24 text-sm\\\">Client Secret</span>\\n <span i18n>Set</span>\\n </div>\\n <button mat-button (click)=\\\"resetClientSecret()\\\">Reset</button>\\n </div>\\n </mat-list-item>\\n <mat-divider class=\\\"mx-3\\\"></mat-divider>\\n <mat-list-item>\\n <div class=\\\"flex items-center justify-between\\\">\\n <div class=\\\"flex flex-1 items-center\\\">\\n <span class=\\\"w-24 text-sm\\\">Issued At</span>\\n <span>{{ client.clientIdIssuedAt | date }}</span>\\n </div>\\n </div>\\n </mat-list-item>\\n </mat-nav-list>\\n </div>\\n <!-- wechat client -->\\n <div class=\\\"border border-[--rt-border-color] rounded p-3 mt-3\\\">\\n <div class=\\\"p-3 flex justify-between items-center\\\">\\n <span class=\\\"text-xl\\\">WeChat Client</span>\\n @if (client.weChatClient) {\\n <div class=\\\"flex gap-3\\\">\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"updateWeChatclient()\\\">\\n <mat-icon>edit</mat-icon>\\n Update\\n </button>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"unBindWeChatclient()\\\">Delete</button>\\n </div>\\n } @else {\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"bindWeChatclient()\\\">Bind</button>\\n }\\n </div>\\n @if (client.weChatClient) {\\n <mat-nav-list>\\n <mat-list-item>\\n <div class=\\\"flex items-center justify-between\\\">\\n <div class=\\\"flex flex-1 items-center\\\">\\n <span class=\\\"w-24 text-sm\\\" i18n>#ID</span>\\n <span i18n>{{ client.id || 'Unset' }}</span>\\n </div>\\n </div>\\n </mat-list-item>\\n <mat-divider class=\\\"mx-3\\\"></mat-divider>\\n <mat-list-item>\\n <div class=\\\"flex items-center justify-between\\\">\\n <div class=\\\"flex flex-1 items-center\\\">\\n <span class=\\\"w-24 text-sm\\\" i18n>Name</span>\\n <span i18n>{{ client.weChatClient.name || 'Unset' }}</span>\\n </div>\\n </div>\\n </mat-list-item>\\n <mat-divider class=\\\"mx-3\\\"></mat-divider>\\n <mat-list-item>\\n <div class=\\\"flex items-center justify-between\\\">\\n <div class=\\\"flex flex-1 items-center\\\">\\n <span class=\\\"w-24 text-sm\\\" i18n>App Id</span>\\n <span i18n>{{ client.weChatClient.appId || 'Unset' }}</span>\\n </div>\\n </div>\\n </mat-list-item>\\n <mat-divider class=\\\"mx-3\\\"></mat-divider>\\n\\n <mat-list-item>\\n <div class=\\\"flex items-center justify-between\\\">\\n <div class=\\\"flex flex-1 items-center\\\">\\n <span class=\\\"w-24 text-sm\\\" i18n>App Secret</span>\\n <span>{{ client.weChatClient.appSecret || 'Unset' }}</span>\\n </div>\\n </div>\\n </mat-list-item>\\n </mat-nav-list>\\n } @else {\\n <div class=\\\"p-3\\\">\\n <span class=\\\"py-11 opacity-70\\\" i18n>Not bound to WeChat</span>\\n </div>\\n }\\n </div>\\n }\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWF1dGhvcml6YXRpb24vc3JjL2xpYi9wYWdlcy9jbGllbnRzL2RldGFpbHMvZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWF1dGhvcml6YXRpb24vc3JjL2xpYi9wYWdlcy9jbGllbnRzL2RldGFpbHMvZGV0YWlscy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUNoSCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQzs7Ozs7OztBQVFoSCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsYUFBYTtJQUNqRCxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RDLFFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0IsV0FBVyxHQUFpQixFQUFFLENBQUM7SUFDL0IsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUNwQixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLG9CQUFvQixHQUFRLEVBQUUsQ0FBQztJQUMvQixNQUFN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cG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IFBlcm1pc3Npb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvcGVybWlzc2lvbi5tb2RlbCc7XG5pbXBvcnQgeyBBbmd1bGFyQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLCBCYXNlQ29tcG9uZW50LCBDb25maXJtYXRpb25Db21wb25lbnQsIFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IENsaWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jbGllbnQuc2VydmljZSc7XG5pbXBvcnQgeyBDbGllbnRCaW5kRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9jbGllbnQtYmluZC1kaWFsb2cvY2xpZW50LWJpbmQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDbGllbnRTZWNyZXRDb3B5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9jbGllbnQtc2VjcmV0LWNvcHkvY2xpZW50LXNlY3JldC1jb3B5LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbQW5ndWxhckNvbW1vbk1vZHVsZSwgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsIFRvb2xiYXJDb21wb25lbnRdLFxuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWF1dGhvcml6YXRpb24tZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kZXRhaWxzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGV0YWlscy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEZXRhaWxzQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNsaWVudFNlcnZpZGUgPSBpbmplY3QoQ2xpZW50U2VydmljZSk7XG4gIHNuYWNrQmFyID0gaW5qZWN0KE1hdFNuYWNrQmFyKTtcbiAgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25bXSA9IFtdO1xuICBhbGxDb21wbGV0ZSA9IGZhbHNlO1xuICBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgZm9ybWF0dGVkUGVybWlzc2lvbnM6IGFueSA9IFtdO1xuICBjbGllbnQ6IGFueTtcbiAgLy8gcmVzdWx0czogYW55O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0KCk7XG4gIH1cbiAgZ2V0KCk6IGFueSB7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuY2xpZW50U2VydmlkZS5nZXQodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmNsaWVudCA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBlZGl0Q2xpZW50KCkgeyB9XG4gIGRlbGV0ZUNsaWVudCgpIHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgdGl0bGU6ICdEZWxldGUgY2xpZW50JyxcbiAgICAgIGNvbXBvbmVudDogQ29uZmlybWF0aW9uQ29tcG9uZW50LFxuICAgICAgZGF0YToge1xuICAgICAgICBtZXNzYWdlOiAnRGVsZXRlIGNvbmZpcm0/JyxcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihvcHRpb25zKTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY29uZmlybWVkKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXN1bHQpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIHRoaXMuY2xpZW50U2VydmlkZS5kZWxldGUodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignRGVsZXRlZCcpO1xuICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC4uL2BdLCB7XG4gICAgICAgICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICByZXNldENsaWVudFNlY3JldCgpIHtcbiAgICB0aGlzLmNsaWVudFNlcnZpZGUucmVzZXRDbGllbnRTZWNyZXQodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmNvcHlDbGllbnRTZWNyZXQocmVzLmRhdGEuY2xpZW50U2VjcmV0KTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihlcnJvci5tZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgYmluZFdlQ2hhdGNsaWVudCgpIHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgdGl0bGU6ICfnu5HlrprlupTnlKgnLFxuICAgICAgY2FuY2VsVGV4dDogJ0NhbmNlbCcsXG4gICAgICBjb25maXJtVGV4dDogJ0NvbmZpcm0nLFxuICAgICAgY29tcG9uZW50OiBDbGllbnRCaW5kRGlhbG9nQ29tcG9uZW50LFxuICAgICAgZGF0YToge1xuICAgICAgICBzZWxlY3RlZEFwcDogeyBuYW1lOiAn5b6u5L+hJyB9LFxuICAgICAgICBhcHBzOiBbeyBuYW1lOiAn5b6u5L+hJyB9LCB7IG5hbWU6ICfmlK/ku5jlrp0nIH1dLFxuICAgICAgfSxcbiAgICB9O1xuICAgIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKG9wdGlvbnMpO1xuICAgIHRoaXMuZGlhbG9nU2VydmljZS5jb25maXJtZWQoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlc3VsdCkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgdGhpcy5jbGllbnRTZXJ2aWRlLmJpbmRXZUNoYXRDbGllbnQodGhpcy5pZCwgcmVzdWx0KS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmNsaWVudC53ZUNoYXRDbGllbnQgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3Blbign57uR5a6a5oiQ5YqfJyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICB1bkJpbmRXZUNoYXRjbGllbnQoKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIHRpdGxlOiAn6Kej57uR5bqU55SoJyxcbiAgICAgIG1lc3NhZ2U6ICfop6PpmaTnu5HlrprliY0sIOivt+ehruiupOaYr+WQpuato+WcqOS9v+eUqOatpOW6lOeUqCcsXG4gICAgICBjYW5jZWxUZXh0OiAnQ2FuY2VsJyxcbiAgICAgIGNvbmZpcm1UZXh0OiAnQ29uZmlybScsXG4gICAgfTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihvcHRpb25zKTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY29uZmlybWVkKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXN1bHQpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIHRoaXMuY2xpZW50U2VydmlkZS51bkJpbmRXZUNoYXRDbGllbnQodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbihyZXMuZGF0YSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVXZUNoYXRjbGllbnQoKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIHRpdGxlOiAn5L+u5pS55bqU55SoJyxcbiAgICAgIGNhbmNlbFRleHQ6ICdDYW5jZWwnLFxuICAgICAgY29uZmlybVRleHQ6ICdDb25maXJtJyxcbiAgICAgIGNvbXBvbmVudDogQ2xpZW50QmluZERpYWxvZ0NvbXBvbmVudCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgc2VsZWN0ZWRBcHA6IHsgbmFtZTogJ+W+ruS/oScgfSxcbiAgICAgICAgYXBwOiB0aGlzLmNsaWVudC53ZUNoYXRDbGllbnQsXG4gICAgICAgIGFwcHM6IFt7IG5hbWU6ICflvq7kv6EnIH0sIHsgbmFtZTogJ+aUr+S7mOWunScgfV0sXG4gICAgICB9LFxuICAgIH07XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4ob3B0aW9ucyk7XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNvbmZpcm1lZCgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzdWx0KSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICB0aGlzLmNsaWVudFNlcnZpZGUudXBkYXRlV2VDaGF0Q2xpZW50KHRoaXMuY2xpZW50LndlQ2hhdENsaWVudC5pZCwgcmVzdWx0KS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmNsaWVudC53ZUNoYXRDbGllbnQgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignVXBkYXRlIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgY29weUNsaWVudFNlY3JldChjbGllbnRTZWNyZXQ6IHN0cmluZykge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICB0aXRsZTogJ0NvcHkgY2xpZW50IHNlY3JldCcsXG4gICAgICBjb25maXJtVGV4dDogJ0NvbmZpcm0nLFxuICAgICAgY29tcG9uZW50OiBDbGllbnRTZWNyZXRDb3B5Q29tcG9uZW50LFxuICAgICAgZGF0YToge1xuICAgICAgICBjbGllbnRTZWNyZXQ6IGNsaWVudFNlY3JldCxcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihvcHRpb25zKTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY29uZmlybWVkKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXN1bHQpID0+IHsgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCJDbGllbnQgZGV0YWlsc1wiPjwvcm9sYXRlY2gtdG9vbGJhcj5cbjxkaXYgY2xhc3M9XCJtYXgtdy1bODIwcHhdIHAtM1wiPlxuICBAaWYgKGNsaWVudCkge1xuICAgIDwhLS0gY29udGFjdCAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci1bLS1ydC1ib3JkZXItY29sb3JdIHJvdW5kZWQgcHgtMyBwdC0zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicC0zIGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQteGxcIj5JbmZvPC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtM1wiPlxuICAgICAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwibWF4LWgtOFwiIChjbGljayk9XCJlZGl0Q2xpZW50KClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5lZGl0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGkxOG4+VXBkYXRlPC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwibWF4LWgtOFwiIChjbGljayk9XCJkZWxldGVDbGllbnQoKVwiIGkxOG4+RGVsZXRlPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8bWF0LW5hdi1saXN0PlxuICAgICAgICA8bWF0LWxpc3QtaXRlbT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTEgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy0yNCB0ZXh0LXNtXCIgVXBkYXRlPiNJRDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gaTE4bj57eyBjbGllbnQuaWQgfHwgJ1Vuc2V0JyB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L21hdC1saXN0LWl0ZW0+XG4gICAgICAgIDxtYXQtZGl2aWRlciBjbGFzcz1cIm14LTNcIj48L21hdC1kaXZpZGVyPlxuICAgICAgICA8bWF0LWxpc3QtaXRlbT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTEgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy0yNCB0ZXh0LXNtXCI+TmFtZTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gaTE4bj57eyBjbGllbnQuY2xpZW50TmFtZSB8fCAnVW5zZXQnIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cbiAgICAgICAgPG1hdC1kaXZpZGVyIGNsYXNzPVwibXgtM1wiPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDxtYXQtbGlzdC1pdGVtPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtMSBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LTI0IHRleHQtc21cIj5DbGllbnRJZDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gaTE4bj57eyBjbGllbnQuY2xpZW50SWQgfHwgJ1Vuc2V0JyB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L21hdC1saXN0LWl0ZW0+XG4gICAgICAgIDxtYXQtZGl2aWRlciBjbGFzcz1cIm14LTNcIj48L21hdC1kaXZpZGVyPlxuICAgICAgICA8bWF0LWxpc3QtaXRlbT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTEgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy0yNCB0ZXh0LXNtXCI+Q2xpZW50IFNlY3JldDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gaTE4bj5TZXQ8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwicmVzZXRDbGllbnRTZWNyZXQoKVwiPlJlc2V0PC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cbiAgICAgICAgPG1hdC1kaXZpZGVyIGNsYXNzPVwibXgtM1wiPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDxtYXQtbGlzdC1pdGVtPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtMSBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LTI0IHRleHQtc21cIj5Jc3N1ZWQgQXQ8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IGNsaWVudC5jbGllbnRJZElzc3VlZEF0IHwgZGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L21hdC1saXN0LWl0ZW0+XG4gICAgICA8L21hdC1uYXYtbGlzdD5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIHdlY2hhdCBjbGllbnQgLS0+XG4gICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItWy0tcnQtYm9yZGVyLWNvbG9yXSByb3VuZGVkIHAtMyBtdC0zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicC0zIGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQteGxcIj5XZUNoYXQgQ2xpZW50PC9zcGFuPlxuICAgICAgICBAaWYgKGNsaWVudC53ZUNoYXRDbGllbnQpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtM1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY2xhc3M9XCJtYXgtaC04XCIgKGNsaWNrKT1cInVwZGF0ZVdlQ2hhdGNsaWVudCgpXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbj5lZGl0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgVXBkYXRlXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwibWF4LWgtOFwiIChjbGljayk9XCJ1bkJpbmRXZUNoYXRjbGllbnQoKVwiPkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cIm1heC1oLThcIiAoY2xpY2spPVwiYmluZFdlQ2hhdGNsaWVudCgpXCI+QmluZDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIEBpZiAoY2xpZW50LndlQ2hhdENsaWVudCkge1xuICAgICAgICA8bWF0LW5hdi1saXN0PlxuICAgICAgICAgIDxtYXQtbGlzdC1pdGVtPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTEgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LTI0IHRleHQtc21cIiBpMThuPiNJRDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBpMThuPnt7IGNsaWVudC5pZCB8fCAnVW5zZXQnIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cbiAgICAgICAgICA8bWF0LWRpdmlkZXIgY2xhc3M9XCJteC0zXCI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICA8bWF0LWxpc3QtaXRlbT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC0xIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy0yNCB0ZXh0LXNtXCIgaTE4bj5OYW1lPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+e3sgY2xpZW50LndlQ2hhdENsaWVudC5uYW1lIHx8ICdVbnNldCcgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgICAgICAgIDxtYXQtZGl2aWRlciBjbGFzcz1cIm14LTNcIj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgIDxtYXQtbGlzdC1pdGVtPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTEgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LTI0IHRleHQtc21cIiBpMThuPkFwcCBJZDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBpMThuPnt7IGNsaWVudC53ZUNoYXRDbGllbnQuYXBwSWQgfHwgJ1Vuc2V0JyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L21hdC1saXN0LWl0ZW0+XG4gICAgICAgICAgPG1hdC1kaXZpZGVyIGNsYXNzPVwibXgtM1wiPjwvbWF0LWRpdmlkZXI+XG5cbiAgICAgICAgICA8bWF0LWxpc3QtaXRlbT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC0xIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy0yNCB0ZXh0LXNtXCIgaTE4bj5BcHAgU2VjcmV0PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IGNsaWVudC53ZUNoYXRDbGllbnQuYXBwU2VjcmV0IHx8ICdVbnNldCcgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgICAgICA8L21hdC1uYXYtbGlzdD5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicC0zXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJweS0xMSBvcGFjaXR5LTcwXCIgaTE4bj5Ob3QgYm91bmQgdG8gV2VDaGF0PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=","import { ClientService } from '../../../services/client.service';\nimport { Component, inject, viewChild } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule, SpinnerComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/router\";\nimport * as i3 from \"@angular/material/button\";\nimport * as i4 from \"@angular/material/icon\";\nimport * as i5 from \"@angular/material/form-field\";\nimport * as i6 from \"@angular/material/input\";\nimport * as i7 from \"@angular/material/menu\";\nimport * as i8 from \"@angular/material/paginator\";\nimport * as i9 from \"@angular/material/table\";\nexport class IndexComponent {\n clientService = inject(ClientService);\n snackBar = inject(MatSnackBar);\n pageEvent;\n isLoading = false;\n isSearch = false;\n length = 100;\n pageSize = 15;\n pageSizeOptions = [5, 10, 25, 100];\n clients = [];\n displayedColumns = ['clientName', 'clientId', 'clientIdIssuedAt', 'actions'];\n paginator = viewChild(MatPaginator);\n orderOptions = [\n {\n key: 'clientIdIssuedAt',\n value: 'Issued At',\n icon: 'arrow_upward',\n sort: 'asc',\n },\n {\n key: 'clientIdIssuedAt',\n value: 'Issued At',\n icon: 'arrow_downward',\n sort: 'desc',\n },\n ];\n orderString = 'clientIdIssuedAt desc';\n dataSource = new MatTableDataSource();\n searchWord;\n ngOnInit() {\n this.findAll(null);\n }\n onClick(item) {\n this.orderString = item.key + ' ' + item.sort;\n this.paginator()?.firstPage();\n this.findAll(null);\n }\n findAll(event) {\n this.isLoading = true;\n this.isSearch = false;\n const page = event ? event.pageIndex + 1 : 1;\n const limit = event ? event.pageSize : 15;\n const sort = this.orderString;\n const options = {\n page,\n limit,\n sort,\n };\n this.clientService.find(options).subscribe({\n next: (res) => {\n this.clients = res.data;\n this.dataSource.data = this.clients;\n this.length = res.meta.pagination.count;\n this.isLoading = false;\n },\n error: (error) => {\n this.isLoading = false;\n this.snackBar.open(error.message);\n },\n });\n }\n search(e) {\n this.isLoading = true;\n const word = e.target.value;\n const options = {\n filter: `clientName:${word}`,\n };\n this.clientService.find(options).subscribe({\n next: (res) => {\n this.clients = res.data;\n this.dataSource.data = this.clients;\n this.length = res.meta.pagination.count;\n this.isLoading = false;\n },\n error: (error) => {\n this.isLoading = false;\n this.snackBar.open(error.message);\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: IndexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: IndexComponent, isStandalone: true, selector: \"rolatech-authorization-index\", viewQueries: [{ propertyName: \"paginator\", first: true, predicate: MatPaginator, descendants: true, isSignal: true }], ngImport: i0, template: \"<rolatech-toolbar title=\\\"Clients\\\">\\n <button mat-icon-button routerLink=\\\"./create\\\">\\n <mat-icon>add</mat-icon>\\n </button>\\n <button mat-icon-button (click)=\\\"isSearch = true\\\">\\n <mat-icon>search</mat-icon>\\n </button>\\n <button mat-icon-button [matMenuTriggerFor]=\\\"beforeMenu\\\">\\n <mat-icon>reorder</mat-icon>\\n </button>\\n <mat-menu #beforeMenu=\\\"matMenu\\\" xPosition=\\\"before\\\">\\n @for (item of orderOptions; track item) {\\n <button mat-menu-item (click)=\\\"onClick(item)\\\">\\n <span>{{ item.value }}</span>\\n <mat-icon>{{ item.icon }}</mat-icon>\\n </button>\\n }\\n </mat-menu>\\n</rolatech-toolbar>\\n@if (isSearch) {\\n <mat-form-field floatLabel=\\\"auto\\\">\\n <input type=\\\"text\\\" matInput placeholder=\\\"Name\\\" (keyup.enter)=\\\"search($event)\\\" />\\n <button matSuffix mat-icon-button (click)=\\\"findAll(null); isSearch = false\\\">\\n <mat-icon>close</mat-icon>\\n </button>\\n </mat-form-field>\\n}\\n<div class=\\\"py-3\\\">\\n <rolatech-spinner></rolatech-spinner>\\n <table mat-table [dataSource]=\\\"dataSource\\\">\\n <!-- clientName Column -->\\n <ng-container matColumnDef=\\\"clientName\\\">\\n <th mat-header-cell *matHeaderCellDef>Name</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.clientName }}</td>\\n </ng-container>\\n\\n <!-- clientId Column -->\\n <ng-container matColumnDef=\\\"clientId\\\">\\n <th mat-header-cell *matHeaderCellDef>CLIENT_ID</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.clientId }}</td>\\n </ng-container>\\n\\n <!-- clientId Column -->\\n <ng-container matColumnDef=\\\"clientIdIssuedAt\\\">\\n <th mat-header-cell *matHeaderCellDef>Issued At</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.clientIdIssuedAt | date }}</td>\\n </ng-container>\\n\\n <!-- actions Column -->\\n <ng-container matColumnDef=\\\"actions\\\" stickyEnd>\\n <th mat-header-cell *matHeaderCellDef class=\\\"actions\\\"></th>\\n <td mat-cell *matCellDef=\\\"let item\\\" class=\\\"actions\\\">\\n <mat-icon>navigate_next</mat-icon>\\n </td>\\n </ng-container>\\n\\n <tr mat-header-row *matHeaderRowDef=\\\"displayedColumns\\\"></tr>\\n <tr\\n mat-row\\n *matRowDef=\\\"let row; columns: displayedColumns\\\"\\n [routerLink]=\\\"['./', row.id]\\\"\\n class=\\\"cursor-pointer hover:bg-[--rt-raised-background]\\\"\\n ></tr>\\n </table>\\n</div>\\n<mat-paginator\\n #paginator\\n [length]=\\\"length\\\"\\n [pageSize]=\\\"pageSize\\\"\\n [pageSizeOptions]=\\\"pageSizeOptions\\\"\\n (page)=\\\"pageEvent = findAll($event)\\\"\\n hidePageSize\\n showFirstLastButtons\\n>\\n</mat-paginator>\\n\", styles: [\"mat-form-field{width:100%}table{width:100%}td.mat-column-actions{text-align:right;min-width:80px;font-size:.8rem;padding:0 28px}.mat-mdc-header-cell.actions{text-align:right;max-width:120px;width:120px;padding:0 28px}td.mat-column-clientName{min-width:128px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{text-align:right;padding-right:8px!important}\\n\"], dependencies: [{ kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"pipe\", type: i1.DatePipe, name: \"date\" }, { kind: \"directive\", type: i2.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: i3.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: i4.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: i5.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i5.MatSuffix, selector: \"[matSuffix], [matIconSuffix], [matTextSuffix]\", inputs: [\"matTextSuffix\"] }, { kind: \"directive\", type: i6.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"component\", type: i7.MatMenu, selector: \"mat-menu\", inputs: [\"backdropClass\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"xPosition\", \"yPosition\", \"overlapTrigger\", \"hasBackdrop\", \"class\", \"classList\"], outputs: [\"closed\", \"close\"], exportAs: [\"matMenu\"] }, { kind: \"component\", type: i7.MatMenuItem, selector: \"[mat-menu-item]\", inputs: [\"role\", \"disabled\", \"disableRipple\"], exportAs: [\"matMenuItem\"] }, { kind: \"directive\", type: i7.MatMenuTrigger, selector: \"[mat-menu-trigger-for], [matMenuTriggerFor]\", inputs: [\"mat-menu-trigger-for\", \"matMenuTriggerFor\", \"matMenuTriggerData\", \"matMenuTriggerRestoreFocus\"], outputs: [\"menuOpened\", \"onMenuOpen\", \"menuClosed\", \"onMenuClose\"], exportAs: [\"matMenuTrigger\"] }, { kind: \"component\", type: i8.MatPaginator, selector: \"mat-paginator\", inputs: [\"color\", \"pageIndex\", \"length\", \"pageSize\", \"pageSizeOptions\", \"hidePageSize\", \"showFirstLastButtons\", \"selectConfig\", \"disabled\"], outputs: [\"page\"], exportAs: [\"matPaginator\"] }, { kind: \"component\", type: i9.MatTable, selector: \"mat-table, table[mat-table]\", exportAs: [\"matTable\"] }, { kind: \"directive\", type: i9.MatHeaderCellDef, selector: \"[matHeaderCellDef]\" }, { kind: \"directive\", type: i9.MatHeaderRowDef, selector: \"[matHeaderRowDef]\", inputs: [\"matHeaderRowDef\", \"matHeaderRowDefSticky\"] }, { kind: \"directive\", type: i9.MatColumnDef, selector: \"[matColumnDef]\", inputs: [\"matColumnDef\"] }, { kind: \"directive\", type: i9.MatCellDef, selector: \"[matCellDef]\" }, { kind: \"directive\", type: i9.MatRowDef, selector: \"[matRowDef]\", inputs: [\"matRowDefColumns\", \"matRowDefWhen\"] }, { kind: \"directive\", type: i9.MatHeaderCell, selector: \"mat-header-cell, th[mat-header-cell]\" }, { kind: \"directive\", type: i9.MatCell, selector: \"mat-cell, td[mat-cell]\" }, { kind: \"component\", type: i9.MatHeaderRow, selector: \"mat-header-row, tr[mat-header-row]\", exportAs: [\"matHeaderRow\"] }, { kind: \"component\", type: i9.MatRow, selector: \"mat-row, tr[mat-row]\", exportAs: [\"matRow\"] }, { kind: \"component\", type: SpinnerComponent, selector: \"rolatech-spinner\", inputs: [\"title\"] }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: IndexComponent, decorators: [{\n type: Component,\n args: [{ imports: [AngularCommonModule, AngularComponentsModule, SpinnerComponent, ToolbarComponent], selector: 'rolatech-authorization-index', template: \"<rolatech-toolbar title=\\\"Clients\\\">\\n <button mat-icon-button routerLink=\\\"./create\\\">\\n <mat-icon>add</mat-icon>\\n </button>\\n <button mat-icon-button (click)=\\\"isSearch = true\\\">\\n <mat-icon>search</mat-icon>\\n </button>\\n <button mat-icon-button [matMenuTriggerFor]=\\\"beforeMenu\\\">\\n <mat-icon>reorder</mat-icon>\\n </button>\\n <mat-menu #beforeMenu=\\\"matMenu\\\" xPosition=\\\"before\\\">\\n @for (item of orderOptions; track item) {\\n <button mat-menu-item (click)=\\\"onClick(item)\\\">\\n <span>{{ item.value }}</span>\\n <mat-icon>{{ item.icon }}</mat-icon>\\n </button>\\n }\\n </mat-menu>\\n</rolatech-toolbar>\\n@if (isSearch) {\\n <mat-form-field floatLabel=\\\"auto\\\">\\n <input type=\\\"text\\\" matInput placeholder=\\\"Name\\\" (keyup.enter)=\\\"search($event)\\\" />\\n <button matSuffix mat-icon-button (click)=\\\"findAll(null); isSearch = false\\\">\\n <mat-icon>close</mat-icon>\\n </button>\\n </mat-form-field>\\n}\\n<div class=\\\"py-3\\\">\\n <rolatech-spinner></rolatech-spinner>\\n <table mat-table [dataSource]=\\\"dataSource\\\">\\n <!-- clientName Column -->\\n <ng-container matColumnDef=\\\"clientName\\\">\\n <th mat-header-cell *matHeaderCellDef>Name</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.clientName }}</td>\\n </ng-container>\\n\\n <!-- clientId Column -->\\n <ng-container matColumnDef=\\\"clientId\\\">\\n <th mat-header-cell *matHeaderCellDef>CLIENT_ID</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.clientId }}</td>\\n </ng-container>\\n\\n <!-- clientId Column -->\\n <ng-container matColumnDef=\\\"clientIdIssuedAt\\\">\\n <th mat-header-cell *matHeaderCellDef>Issued At</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.clientIdIssuedAt | date }}</td>\\n </ng-container>\\n\\n <!-- actions Column -->\\n <ng-container matColumnDef=\\\"actions\\\" stickyEnd>\\n <th mat-header-cell *matHeaderCellDef class=\\\"actions\\\"></th>\\n <td mat-cell *matCellDef=\\\"let item\\\" class=\\\"actions\\\">\\n <mat-icon>navigate_next</mat-icon>\\n </td>\\n </ng-container>\\n\\n <tr mat-header-row *matHeaderRowDef=\\\"displayedColumns\\\"></tr>\\n <tr\\n mat-row\\n *matRowDef=\\\"let row; columns: displayedColumns\\\"\\n [routerLink]=\\\"['./', row.id]\\\"\\n class=\\\"cursor-pointer hover:bg-[--rt-raised-background]\\\"\\n ></tr>\\n </table>\\n</div>\\n<mat-paginator\\n #paginator\\n [length]=\\\"length\\\"\\n [pageSize]=\\\"pageSize\\\"\\n [pageSizeOptions]=\\\"pageSizeOptions\\\"\\n (page)=\\\"pageEvent = findAll($event)\\\"\\n hidePageSize\\n showFirstLastButtons\\n>\\n</mat-paginator>\\n\", styles: [\"mat-form-field{width:100%}table{width:100%}td.mat-column-actions{text-align:right;min-width:80px;font-size:.8rem;padding:0 28px}.mat-mdc-header-cell.actions{text-align:right;max-width:120px;width:120px;padding:0 28px}td.mat-column-clientName{min-width:128px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{text-align:right;padding-right:8px!important}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1hdXRob3JpemF0aW9uL3NyYy9saWIvcGFnZXMvY2xpZW50cy9pbmRleC9pbmRleC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWF1dGhvcml6YXRpb24vc3JjL2xpYi9wYWdlcy9jbGllbnRzL2luZGV4L2luZGV4LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBYSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7Ozs7QUFRM0csTUFBTSxPQUFPLGNBQWM7SUFDekIsYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN0QyxRQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9CLFNBQVMsQ0FBYTtJQUN0QixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUNiLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDZCxlQUFlLEdBQWEsQ0FB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QyxDQUFDLFNBQVMsQ0FBQztZQUN6QyxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO2dCQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUNwQyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztnQkFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDekIsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBakZVLGNBQWM7MkZBQWQsY0FBYyxtSUFXSCxZQUFZLGdFQzFCcEMsK2hGQTJFQSwwYkRqRVksbUJBQW1CLGtVQUFFLHVCQUF1QixzK0ZBQUUsZ0JBQWdCLGdGQUFFLGdCQUFnQjs7MkZBSy9FLGNBQWM7a0JBTjFCLFNBQVM7OEJBQ0MsQ0FBQyxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxZQUNqRiw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbGllbnQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvY2xpZW50Lm1vZGVsJztcbmltcG9ydCB7IENsaWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jbGllbnQuc2VydmljZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgaW5qZWN0LCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFBhZ2luYXRvciwgUGFnZUV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IEFuZ3VsYXJDb21tb25Nb2R1bGUgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsIFNwaW5uZXJDb21wb25lbnQsIFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtBbmd1bGFyQ29tbW9uTW9kdWxlLCBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSwgU3Bpbm5lckNvbXBvbmVudCwgVG9vbGJhckNvbXBvbmVudF0sXG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtYXV0aG9yaXphdGlvbi1pbmRleCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbmRleC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2luZGV4LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEluZGV4Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY2xpZW50U2VydmljZSA9IGluamVjdChDbGllbnRTZXJ2aWNlKTtcbiAgc25hY2tCYXIgPSBpbmplY3QoTWF0U25hY2tCYXIpO1xuICBwYWdlRXZlbnQhOiBQYWdlRXZlbnQ7XG4gIGlzTG9hZGluZyA9IGZhbHNlO1xuICBpc1NlYXJjaCA9IGZhbHNlO1xuICBsZW5ndGggPSAxMDA7XG4gIHBhZ2VTaXplID0gMTU7XG4gIHBhZ2VTaXplT3B0aW9uczogbnVtYmVyW10gPSBbNSwgMTAsIDI1LCAxMDBdO1xuICBjbGllbnRzOiBDbGllbnRbXSA9IFtdO1xuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFsnY2xpZW50TmFtZScsICdjbGllbnRJZCcsICdjbGllbnRJZElzc3VlZEF0JywgJ2FjdGlvbnMnXTtcbiAgcGFnaW5hdG9yID0gdmlld0NoaWxkKE1hdFBhZ2luYXRvcik7XG4gIG9yZGVyT3B0aW9ucyA9IFtcbiAgICB7XG4gICAgICBrZXk6ICdjbGllbnRJZElzc3VlZEF0JyxcbiAgICAgIHZhbHVlOiAnSXNzdWVkIEF0JyxcbiAgICAgIGljb246ICdhcnJvd191cHdhcmQnLFxuICAgICAgc29ydDogJ2FzYycsXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdjbGllbnRJZElzc3VlZEF0JyxcbiAgICAgIHZhbHVlOiAnSXNzdWVkIEF0JyxcbiAgICAgIGljb246ICdhcnJvd19kb3dud2FyZCcsXG4gICAgICBzb3J0OiAnZGVzYycsXG4gICAgfSxcbiAgXTtcblxuICBvcmRlclN0cmluZyA9ICdjbGllbnRJZElzc3VlZEF0IGRlc2MnO1xuICBkYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxDbGllbnQ+KCk7XG4gIHNlYXJjaFdvcmQhOiBzdHJpbmc7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maW5kQWxsKG51bGwpO1xuICB9XG4gIG9uQ2xpY2soaXRlbTogYW55KSB7XG4gICAgdGhpcy5vcmRlclN0cmluZyA9IGl0ZW0ua2V5ICsgJyAnICsgaXRlbS5zb3J0O1xuICAgIHRoaXMucGFnaW5hdG9yKCk/LmZpcnN0UGFnZSgpO1xuICAgIHRoaXMuZmluZEFsbChudWxsKTtcbiAgfVxuICBmaW5kQWxsKGV2ZW50PzogUGFnZUV2ZW50IHwgbnVsbCk6IGFueSB7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuaXNTZWFyY2ggPSBmYWxzZTtcbiAgICBjb25zdCBwYWdlID0gZXZlbnQgPyBldmVudC5wYWdlSW5kZXggKyAxIDogMTtcbiAgICBjb25zdCBsaW1pdCA9IGV2ZW50ID8gZXZlbnQucGFnZVNpemUgOiAxNTtcbiAgICBjb25zdCBzb3J0ID0gdGhpcy5vcmRlclN0cmluZztcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgcGFnZSxcbiAgICAgIGxpbWl0LFxuICAgICAgc29ydCxcbiAgICB9O1xuICAgIHRoaXMuY2xpZW50U2VydmljZS5maW5kKG9wdGlvbnMpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5jbGllbnRzID0gcmVzLmRhdGE7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gdGhpcy5jbGllbnRzO1xuICAgICAgICB0aGlzLmxlbmd0aCA9IHJlcy5tZXRhLnBhZ2luYXRpb24uY291bnQ7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oZXJyb3IubWVzc2FnZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHNlYXJjaChlOiBhbnkpIHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgY29uc3Qgd29yZCA9IGUudGFyZ2V0LnZhbHVlO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBmaWx0ZXI6IGBjbGllbnROYW1lOiR7d29yZH1gLFxuICAgIH07XG4gICAgdGhpcy5jbGllbnRTZXJ2aWNlLmZpbmQob3B0aW9ucykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmNsaWVudHMgPSByZXMuZGF0YTtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSB0aGlzLmNsaWVudHM7XG4gICAgICAgIHRoaXMubGVuZ3RoID0gcmVzLm1ldGEucGFnaW5hdGlvbi5jb3VudDtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihlcnJvci5tZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxyb2xhdGVjaC10b29sYmFyIHRpdGxlPVwiQ2xpZW50c1wiPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiByb3V0ZXJMaW5rPVwiLi9jcmVhdGVcIj5cbiAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJpc1NlYXJjaCA9IHRydWVcIj5cbiAgICA8bWF0LWljb24+c2VhcmNoPC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJiZWZvcmVNZW51XCI+XG4gICAgPG1hdC1pY29uPnJlb3JkZXI8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbiAgPG1hdC1tZW51ICNiZWZvcmVNZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxuICAgIEBmb3IgKGl0ZW0gb2Ygb3JkZXJPcHRpb25zOyB0cmFjayBpdGVtKSB7XG4gICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIm9uQ2xpY2soaXRlbSlcIj5cbiAgICAgICAgPHNwYW4+e3sgaXRlbS52YWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgPG1hdC1pY29uPnt7IGl0ZW0uaWNvbiB9fTwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICB9XG4gIDwvbWF0LW1lbnU+XG48L3JvbGF0ZWNoLXRvb2xiYXI+XG5AaWYgKGlzU2VhcmNoKSB7XG4gIDxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPVwiYXV0b1wiPlxuICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIG1hdElucHV0IHBsYWNlaG9sZGVyPVwiTmFtZVwiIChrZXl1cC5lbnRlcik9XCJzZWFyY2goJGV2ZW50KVwiIC8+XG4gICAgPGJ1dHRvbiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJmaW5kQWxsKG51bGwpOyBpc1NlYXJjaCA9IGZhbHNlXCI+XG4gICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L21hdC1mb3JtLWZpZWxkPlxufVxuPGRpdiBjbGFzcz1cInB5LTNcIj5cbiAgPHJvbGF0ZWNoLXNwaW5uZXI+PC9yb2xhdGVjaC1zcGlubmVyPlxuICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIj5cbiAgICA8IS0tIGNsaWVudE5hbWUgQ29sdW1uIC0tPlxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiY2xpZW50TmFtZVwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5OYW1lPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCI+e3sgaXRlbS5jbGllbnROYW1lIH19PC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gY2xpZW50SWQgQ29sdW1uIC0tPlxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiY2xpZW50SWRcIj5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+Q0xJRU5UX0lEPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCI+e3sgaXRlbS5jbGllbnRJZCB9fTwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIGNsaWVudElkIENvbHVtbiAtLT5cbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImNsaWVudElkSXNzdWVkQXRcIj5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+SXNzdWVkIEF0PC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCI+e3sgaXRlbS5jbGllbnRJZElzc3VlZEF0IHwgZGF0ZSB9fTwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIGFjdGlvbnMgQ29sdW1uIC0tPlxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiYWN0aW9uc1wiIHN0aWNreUVuZD5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJhY3Rpb25zXCI+PC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCIgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICAgIDxtYXQtaWNvbj5uYXZpZ2F0ZV9uZXh0PC9tYXQtaWNvbj5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNcIj48L3RyPlxuICAgIDx0clxuICAgICAgbWF0LXJvd1xuICAgICAgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnNcIlxuICAgICAgW3JvdXRlckxpbmtdPVwiWycuLycsIHJvdy5pZF1cIlxuICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBob3ZlcjpiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF1cIlxuICAgID48L3RyPlxuICA8L3RhYmxlPlxuPC9kaXY+XG48bWF0LXBhZ2luYXRvclxuICAjcGFnaW5hdG9yXG4gIFtsZW5ndGhdPVwibGVuZ3RoXCJcbiAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgW3BhZ2VTaXplT3B0aW9uc109XCJwYWdlU2l6ZU9wdGlvbnNcIlxuICAocGFnZSk9XCJwYWdlRXZlbnQgPSBmaW5kQWxsKCRldmVudClcIlxuICBoaWRlUGFnZVNpemVcbiAgc2hvd0ZpcnN0TGFzdEJ1dHRvbnNcbj5cbjwvbWF0LXBhZ2luYXRvcj5cbiJdfQ==","import { CreateComponent } from './create/create.component';\nimport { DetailsComponent } from './details/details.component';\nimport { IndexComponent } from './index/index.component';\nconst clientsRoutes = [\n {\n path: '',\n component: IndexComponent,\n },\n {\n path: 'create',\n component: CreateComponent,\n },\n {\n path: ':id',\n component: DetailsComponent,\n },\n];\nexport default clientsRoutes;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50cy5yb3V0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWF1dGhvcml6YXRpb24vc3JjL2xpYi9wYWdlcy9jbGllbnRzL2NsaWVudHMucm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekQsTUFBTSxhQUFhLEdBQVc7SUFDNUI7UUFDRSxJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSxjQUFjO0tBQzFCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsUUFBUTtRQUNkLFNBQVMsRUFBRSxlQUFlO0tBQzNCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsS0FBSztRQUNYLFNBQVMsRUFBRSxnQkFBZ0I7S0FDNUI7Q0FDRixDQUFDO0FBQ0YsZUFBZSxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ3JlYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jcmVhdGUvY3JlYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZXRhaWxzQ29tcG9uZW50IH0gZnJvbSAnLi9kZXRhaWxzL2RldGFpbHMuY29tcG9uZW50JztcbmltcG9ydCB7IEluZGV4Q29tcG9uZW50IH0gZnJvbSAnLi9pbmRleC9pbmRleC5jb21wb25lbnQnO1xuXG5jb25zdCBjbGllbnRzUm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAnJyxcbiAgICBjb21wb25lbnQ6IEluZGV4Q29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ2NyZWF0ZScsXG4gICAgY29tcG9uZW50OiBDcmVhdGVDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnOmlkJyxcbiAgICBjb21wb25lbnQ6IERldGFpbHNDb21wb25lbnQsXG4gIH0sXG5dO1xuZXhwb3J0IGRlZmF1bHQgY2xpZW50c1JvdXRlcztcbiJdfQ=="],"names":["i1","i2","i3","i4","i5","i6","i7","i8","i9"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,MAAM,aAAa,SAAS,WAAW,CAAC;AAC/C,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,CAAC,QAAQ,GAAG,cAAc;AACtC,QAAQ,KAAK,CAAC,IAAI,EAAE;AACpB;AACA,IAAI,iBAAiB,CAAC,EAAE,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE;AACnE,YAAY,eAAe,EAAE,IAAI;AACjC,SAAS,CAAC;AACV;AACA,IAAI,gBAAgB,CAAC,EAAE,EAAE,IAAI,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE;AACtE,YAAY,eAAe,EAAE,IAAI;AACjC,SAAS,CAAC;AACV;AACA,IAAI,kBAAkB,CAAC,EAAE,EAAE;AAC3B,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE;AAClE,YAAY,eAAe,EAAE,IAAI;AACjC,SAAS,CAAC;AACV;AACA,IAAI,kBAAkB,CAAC,EAAE,EAAE,IAAI,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE;AACrE,YAAY,eAAe,EAAE,IAAI;AACjC,SAAS,CAAC;AACV;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;AAC1K,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAC/I;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvH,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACzBN,MAAM,yBAAyB,CAAC;AACvC,IAAI,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAE;AACnC,IAAI,MAAM,GAAG,MAAM,EAAE;AACrB,IAAI,SAAS,GAAG;AAChB,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;AAC7C;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACnL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,2CAA2C,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,kVAAkV,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,yHAAyH,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,sFAAsF,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,4BAA4B,CAAC,EAAE,OAAO,EAAE,CAAC,0BAA0B,CAAC,EAAE,CAAC,EAAE,CAAC;AAC3iE;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC;AACnI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,2CAA2C,EAAE,OAAO,EAAE,CAAC,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,QAAQ,EAAE,kVAAkV,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE;AAC9iB,SAAS,CAAC,EAAE,CAAC;;ACXN,MAAM,eAAe,SAAS,aAAa,CAAC;AACnD,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACrC,IAAI,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;AAClC,IAAI,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AACzC,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,cAAc,GAAG,CAAC;AACtB,IAAI,IAAI;AACR,IAAI,GAAG,GAAG,EAAE;AACZ,IAAI,gBAAgB;AACpB,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACvD,YAAY,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC7C,SAAS,CAAC;AACV;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AAC1C,YAAY;AACZ;AACA,QAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;AACzE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;AACzE,aAAa;AACb,YAAY,KAAK,EAAE,CAAC,KAAK,KAAK;AAC9B,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACjD,aAAa;AACb,SAAS,CAAC;AACV;AACA,IAAI,gBAAgB,CAAC,EAAE,EAAE,YAAY,EAAE;AACvC,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,KAAK,EAAE,oBAAoB;AACvC,YAAY,WAAW,EAAE,SAAS;AAClC,YAAY,SAAS,EAAE,yBAAyB;AAChD,YAAY,IAAI,EAAE;AAClB,gBAAgB,YAAY,EAAE,YAAY;AAC1C,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;AACxC,QAAQ,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC;AACjD,YAAY,IAAI,EAAE,CAAC,MAAM,KAAK;AAC9B,gBAAgB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;AACnD,oBAAoB,UAAU,EAAE,IAAI,CAAC,KAAK;AAC1C,iBAAiB,CAAC;AAClB,aAAa;AACb,SAAS,CAAC;AACV;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC3K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,+BAA+B,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,ghBAAghB,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,8CAA8C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,8MAA8M,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,0FAA0F,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,wIAAwI,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,iBAAiB,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,yHAAyH,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;AACjsG;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AACzH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,+BAA+B,EAAE,QAAQ,EAAE,ghBAAghB,EAAE;AACvrB,SAAS,CAAC,EAAE,CAAC;;ACrDN,MAAM,yBAAyB,CAAC;AACvC,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACrC,IAAI,IAAI,GAAG,KAAK,EAAE;AAClB,IAAI,GAAG,GAAG,KAAK,EAAE;AACjB,IAAI,WAAW,GAAG,KAAK,EAAE;AACzB,IAAI,MAAM,GAAG,MAAM,EAAE;AACrB,IAAI,oBAAoB;AACxB,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3D,YAAY,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC7C,YAAY,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC9C,YAAY,SAAS,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC;AAClD,SAAS,CAAC;AACV,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;AACxB,YAAY,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACzD,YAAY,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;AAC/C,gBAAgB,IAAI;AACpB,gBAAgB,KAAK;AACrB,gBAAgB,SAAS;AACzB,aAAa,CAAC;AACd;AACA;AACA,IAAI,iBAAiB,CAAC,KAAK,EAAE;AAC7B,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;AACzC;AACA,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE;AACtB,QAAQ,OAAO,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI;AAClC;AACA,IAAI,SAAS,GAAG;AAChB,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;AACzD;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACnL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,2CAA2C,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,y7BAAy7B,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,8CAA8C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,8MAA8M,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,0FAA0F,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,wIAAwI,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,iBAAiB,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEF,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,yHAAyH,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,kBAAkB,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,8BAA8B,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,wBAAwB,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,EAAE,0BAA0B,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;AAC55I;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC;AACnI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,2CAA2C,EAAE,OAAO,EAAE,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,EAAE,QAAQ,EAAE,y7BAAy7B,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE;AACpnC,SAAS,CAAC,EAAE,CAAC;;AClCN,MAAM,gBAAgB,SAAS,aAAa,CAAC;AACpD,IAAI,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AACzC,IAAI,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;AAClC,IAAI,WAAW,GAAG,EAAE;AACpB,IAAI,WAAW,GAAG,KAAK;AACvB,IAAI,SAAS,GAAG,KAAK;AACrB,IAAI,oBAAoB,GAAG,EAAE;AAC7B,IAAI,MAAM;AACV;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,GAAG,EAAE;AAClB;AACA,IAAI,GAAG,GAAG;AACV,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI;AAC7B,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAClD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI;AACtC,gBAAgB,IAAI,CAAC,SAAS,GAAG,KAAK;AACtC,aAAa;AACb,YAAY,KAAK,EAAE,CAAC,KAAK,KAAK;AAC9B,gBAAgB,IAAI,CAAC,SAAS,GAAG,KAAK;AACtC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACjD,aAAa;AACb,SAAS,CAAC;AACV;AACA,IAAI,UAAU,GAAG;AACjB,IAAI,YAAY,GAAG;AACnB,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,KAAK,EAAE,eAAe;AAClC,YAAY,SAAS,EAAE,qBAAqB;AAC5C,YAAY,IAAI,EAAE;AAClB,gBAAgB,OAAO,EAAE,iBAAiB;AAC1C,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;AACxC,QAAQ,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC;AACjD,YAAY,IAAI,EAAE,CAAC,MAAM,KAAK;AAC9B,gBAAgB,IAAI,MAAM,EAAE;AAC5B,oBAAoB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AACjE,wBAAwB,IAAI,EAAE,CAAC,GAAG,KAAK;AACvC,4BAA4B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;AAChE,4BAA4B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AAC1D,gCAAgC,UAAU,EAAE,IAAI,CAAC,KAAK;AACtD,6BAA6B,CAAC;AAC9B,yBAAyB;AACzB,wBAAwB,KAAK,EAAE,CAAC,KAAK,KAAK;AAC1C,4BAA4B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACpE,yBAAyB;AACzB,qBAAqB,CAAC;AACtB;AACA,aAAa;AACb,SAAS,CAAC;AACV;AACA,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAChE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;AAC5D,aAAa;AACb,YAAY,KAAK,EAAE,CAAC,KAAK,KAAK;AAC9B,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACjD,aAAa;AACb,SAAS,CAAC;AACV;AACA,IAAI,gBAAgB,GAAG;AACvB,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,KAAK,EAAE,MAAM;AACzB,YAAY,UAAU,EAAE,QAAQ;AAChC,YAAY,WAAW,EAAE,SAAS;AAClC,YAAY,SAAS,EAAE,yBAAyB;AAChD,YAAY,IAAI,EAAE;AAClB,gBAAgB,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC3C,gBAAgB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACvD,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;AACxC,QAAQ,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC;AACjD,YAAY,IAAI,EAAE,CAAC,MAAM,KAAK;AAC9B,gBAAgB,IAAI,MAAM,EAAE;AAC5B,oBAAoB,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC;AACnF,wBAAwB,IAAI,EAAE,CAAC,GAAG,KAAK;AACvC,4BAA4B,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI;AAC/D,4BAA4B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7D,yBAAyB;AACzB,wBAAwB,KAAK,EAAE,CAAC,KAAK,KAAK;AAC1C,4BAA4B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACpE,yBAAyB;AACzB,qBAAqB,CAAC;AACtB;AACA,aAAa;AACb,SAAS,CAAC;AACV;AACA,IAAI,kBAAkB,GAAG;AACzB,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,KAAK,EAAE,MAAM;AACzB,YAAY,OAAO,EAAE,qBAAqB;AAC1C,YAAY,UAAU,EAAE,QAAQ;AAChC,YAAY,WAAW,EAAE,SAAS;AAClC,SAAS;AACT,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;AACxC,QAAQ,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC;AACjD,YAAY,IAAI,EAAE,CAAC,MAAM,KAAK;AAC9B,gBAAgB,IAAI,MAAM,EAAE;AAC5B,oBAAoB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAC7E,wBAAwB,IAAI,EAAE,CAAC,GAAG,KAAK;AACvC,4BAA4B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/D,yBAAyB;AACzB,wBAAwB,KAAK,EAAE,CAAC,KAAK,KAAK;AAC1C,4BAA4B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACpE,yBAAyB;AACzB,qBAAqB,CAAC;AACtB;AACA,aAAa;AACb,SAAS,CAAC;AACV;AACA,IAAI,kBAAkB,GAAG;AACzB,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,KAAK,EAAE,MAAM;AACzB,YAAY,UAAU,EAAE,QAAQ;AAChC,YAAY,WAAW,EAAE,SAAS;AAClC,YAAY,SAAS,EAAE,yBAAyB;AAChD,YAAY,IAAI,EAAE;AAClB,gBAAgB,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC3C,gBAAgB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;AAC7C,gBAAgB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACvD,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;AACxC,QAAQ,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC;AACjD,YAAY,IAAI,EAAE,CAAC,MAAM,KAAK;AAC9B,gBAAgB,IAAI,MAAM,EAAE;AAC5B,oBAAoB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC;AACzG,wBAAwB,IAAI,EAAE,CAAC,GAAG,KAAK;AACvC,4BAA4B,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI;AAC/D,4BAA4B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,qBAAqB,CAAC;AAC5E,yBAAyB;AACzB,wBAAwB,KAAK,EAAE,CAAC,KAAK,KAAK;AAC1C,4BAA4B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACpE,yBAAyB;AACzB,qBAAqB,CAAC;AACtB;AACA,aAAa;AACb,SAAS,CAAC;AACV;AACA,IAAI,gBAAgB,CAAC,YAAY,EAAE;AACnC,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,KAAK,EAAE,oBAAoB;AACvC,YAAY,WAAW,EAAE,SAAS;AAClC,YAAY,SAAS,EAAE,yBAAyB;AAChD,YAAY,IAAI,EAAE;AAClB,gBAAgB,YAAY,EAAE,YAAY;AAC1C,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;AACxC,QAAQ,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC;AACjD,YAAY,IAAI,EAAE,CAAC,MAAM,KAAK,GAAG;AACjC,SAAS,CAAC;AACV;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC5K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,gCAAgC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,0kKAA0kK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAEJ,IAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iOAAiO,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,IAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,wDAAwD,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;AACj8M;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;AAC1H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,gCAAgC,EAAE,QAAQ,EAAE,0kKAA0kK,EAAE;AACluK,SAAS,CAAC,EAAE,CAAC;;AC/JN,MAAM,cAAc,CAAC;AAC5B,IAAI,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AACzC,IAAI,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;AAClC,IAAI,SAAS;AACb,IAAI,SAAS,GAAG,KAAK;AACrB,IAAI,QAAQ,GAAG,KAAK;AACpB,IAAI,MAAM,GAAG,GAAG;AAChB,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,eAAe,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;AACtC,IAAI,OAAO,GAAG,EAAE;AAChB,IAAI,gBAAgB,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,CAAC;AAChF,IAAI,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC;AACvC,IAAI,YAAY,GAAG;AACnB,QAAQ;AACR,YAAY,GAAG,EAAE,kBAAkB;AACnC,YAAY,KAAK,EAAE,WAAW;AAC9B,YAAY,IAAI,EAAE,cAAc;AAChC,YAAY,IAAI,EAAE,KAAK;AACvB,SAAS;AACT,QAAQ;AACR,YAAY,GAAG,EAAE,kBAAkB;AACnC,YAAY,KAAK,EAAE,WAAW;AAC9B,YAAY,IAAI,EAAE,gBAAgB;AAClC,YAAY,IAAI,EAAE,MAAM;AACxB,SAAS;AACT,KAAK;AACL,IAAI,WAAW,GAAG,uBAAuB;AACzC,IAAI,UAAU,GAAG,IAAI,kBAAkB,EAAE;AACzC,IAAI,UAAU;AACd,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAC1B;AACA,IAAI,OAAO,CAAC,IAAI,EAAE;AAClB,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI;AACrD,QAAQ,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE;AACrC,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAC1B;AACA,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI;AAC7B,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK;AAC7B,QAAQ,MAAM,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC;AACpD,QAAQ,MAAM,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,QAAQ,GAAG,EAAE;AACjD,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW;AACrC,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,IAAI;AAChB,YAAY,KAAK;AACjB,YAAY,IAAI;AAChB,SAAS;AACT,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AACnD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI;AACvC,gBAAgB,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO;AACnD,gBAAgB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK;AACvD,gBAAgB,IAAI,CAAC,SAAS,GAAG,KAAK;AACtC,aAAa;AACb,YAAY,KAAK,EAAE,CAAC,KAAK,KAAK;AAC9B,gBAAgB,IAAI,CAAC,SAAS,GAAG,KAAK;AACtC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACjD,aAAa;AACb,SAAS,CAAC;AACV;AACA,IAAI,MAAM,CAAC,CAAC,EAAE;AACd,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI;AAC7B,QAAQ,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK;AACnC,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,MAAM,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACxC,SAAS;AACT,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AACnD,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK;AAC3B,gBAAgB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI;AACvC,gBAAgB,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO;AACnD,gBAAgB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK;AACvD,gBAAgB,IAAI,CAAC,SAAS,GAAG,KAAK;AACtC,aAAa;AACb,YAAY,KAAK,EAAE,CAAC,KAAK,KAAK;AAC9B,gBAAgB,IAAI,CAAC,SAAS,GAAG,KAAK;AACtC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACjD,aAAa;AACb,SAAS,CAAC;AACV;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACxK,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,8BAA8B,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,+hFAA+hF,EAAE,MAAM,EAAE,CAAC,mYAAmY,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAEJ,IAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,sFAAsF,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,+CAA+C,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,yHAAyH,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,6CAA6C,EAAE,MAAM,EAAE,CAAC,sBAAsB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,4BAA4B,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,sBAAsB,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,6BAA6B,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,kBAAkB,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,sCAAsC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,oCAAoC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,sBAAsB,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;AAC1zN;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACxH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,8BAA8B,EAAE,QAAQ,EAAE,+hFAA+hF,EAAE,MAAM,EAAE,CAAC,mYAAmY,CAAC,EAAE;AACtlG,SAAS,CAAC,EAAE,CAAC;;ACpGR,MAAC,aAAa,GAAG;AACtB,IAAI;AACJ,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,SAAS,EAAE,cAAc;AACjC,KAAK;AACL,IAAI;AACJ,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,SAAS,EAAE,eAAe;AAClC,KAAK;AACL,IAAI;AACJ,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,SAAS,EAAE,gBAAgB;AACnC,KAAK;AACL;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"rolatech-angular-authorization-permissions.routes-_Zr9heus.mjs","sources":["../tmp-esm2022/lib/pages/permissions/create/create.component.js","../tmp-esm2022/lib/pages/permissions/details/details.component.js","../tmp-esm2022/lib/pages/permissions/index/index.component.js","../tmp-esm2022/lib/pages/permissions/update/update.component.js","../tmp-esm2022/lib/pages/permissions/permissions.routes.js"],"sourcesContent":["import { Component } from '@angular/core';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule, ToolbarComponent } from '@rolatech/angular-components';\nimport * as i0 from \"@angular/core\";\nexport class CreateComponent {\n constructor() { }\n ngOnInit() { }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CreateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.3\", type: CreateComponent, isStandalone: true, selector: \"rolatech-authorization-create\", ngImport: i0, template: \"<rolatech-toolbar title=\\\"\\u6743\\u9650\\u521B\\u5EFA\\\"></rolatech-toolbar>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CreateComponent, decorators: [{\n type: Component,\n args: [{ imports: [AngularCommonModule, AngularComponentsModule, ToolbarComponent], selector: 'rolatech-authorization-create', template: \"<rolatech-toolbar title=\\\"\\u6743\\u9650\\u521B\\u5EFA\\\"></rolatech-toolbar>\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItYXV0aG9yaXphdGlvbi9zcmMvbGliL3BhZ2VzL3Blcm1pc3Npb25zL2NyZWF0ZS9jcmVhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1hdXRob3JpemF0aW9uL3NyYy9saWIvcGFnZXMvcGVybWlzc2lvbnMvY3JlYXRlL2NyZWF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQVF6RixNQUFNLE9BQU8sZUFBZTtJQUMxQixnQkFBZ0IsQ0FBQztJQUVqQixRQUFRLEtBQVcsQ0FBQzt1R0FIVCxlQUFlOzJGQUFmLGVBQWUseUZDVjVCLDRFQUNBLHlERElZLG1CQUFtQiw4QkFBRSx1QkFBdUIsK0JBQUUsZ0JBQWdCOzsyRkFLN0QsZUFBZTtrQkFOM0IsU0FBUzs4QkFDQyxDQUFDLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixDQUFDLFlBQy9ELCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbmd1bGFyQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLCBUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbQW5ndWxhckNvbW1vbk1vZHVsZSwgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsIFRvb2xiYXJDb21wb25lbnRdLFxuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWF1dGhvcml6YXRpb24tY3JlYXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NyZWF0ZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDcmVhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQgeyB9XG59XG4iLCI8cm9sYXRlY2gtdG9vbGJhciB0aXRsZT1cIuadg+mZkOWIm+W7ulwiPjwvcm9sYXRlY2gtdG9vbGJhcj5cbiJdfQ==","import { Component } from '@angular/core';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule, ToolbarComponent } from '@rolatech/angular-components';\nimport * as i0 from \"@angular/core\";\nexport class DetailsComponent {\n constructor() { }\n ngOnInit() { }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: DetailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.3\", type: DetailsComponent, isStandalone: true, selector: \"rolatech-authorization-details\", ngImport: i0, template: \"<rolatech-toolbar title=\\\"Permission details\\\"></rolatech-toolbar>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: DetailsComponent, decorators: [{\n type: Component,\n args: [{ imports: [AngularCommonModule, AngularComponentsModule, ToolbarComponent], selector: 'rolatech-authorization-details', template: \"<rolatech-toolbar title=\\\"Permission details\\\"></rolatech-toolbar>\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWF1dGhvcml6YXRpb24vc3JjL2xpYi9wYWdlcy9wZXJtaXNzaW9ucy9kZXRhaWxzL2RldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1hdXRob3JpemF0aW9uL3NyYy9saWIvcGFnZXMvcGVybWlzc2lvbnMvZGV0YWlscy9kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBUXpGLE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsZ0JBQWdCLENBQUM7SUFFakIsUUFBUSxLQUFXLENBQUM7dUdBSFQsZ0JBQWdCOzJGQUFoQixnQkFBZ0IsMEZDVjdCLHNFQUNBLHlERElZLG1CQUFtQiw4QkFBRSx1QkFBdUIsK0JBQUUsZ0JBQWdCOzsyRkFLN0QsZ0JBQWdCO2tCQU41QixTQUFTOzhCQUNDLENBQUMsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsZ0JBQWdCLENBQUMsWUFDL0QsZ0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFuZ3VsYXJDb21tb25Nb2R1bGUgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsIFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtBbmd1bGFyQ29tbW9uTW9kdWxlLCBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSwgVG9vbGJhckNvbXBvbmVudF0sXG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtYXV0aG9yaXphdGlvbi1kZXRhaWxzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kZXRhaWxzLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQgeyB9XG59XG4iLCI8cm9sYXRlY2gtdG9vbGJhciB0aXRsZT1cIlBlcm1pc3Npb24gZGV0YWlsc1wiPjwvcm9sYXRlY2gtdG9vbGJhcj5cbiJdfQ==","import { PermissionService } from '../../../services/permission.service';\nimport { Component, inject, viewChild } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule, SpinnerComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nimport * as i2 from \"@angular/material/button\";\nimport * as i3 from \"@angular/material/icon\";\nimport * as i4 from \"@angular/material/form-field\";\nimport * as i5 from \"@angular/material/input\";\nimport * as i6 from \"@angular/material/menu\";\nimport * as i7 from \"@angular/material/paginator\";\nimport * as i8 from \"@angular/material/table\";\nexport class IndexComponent {\n snackBar = inject(MatSnackBar);\n pageEvent;\n isLoading = false;\n isSearch = false;\n length = 100;\n pageSize = 15;\n pageSizeOptions = [5, 10, 25, 100];\n permissions = [];\n displayedColumns = ['name', 'description', 'resource', 'code', 'pattern', 'method', 'actions'];\n paginator = viewChild(MatPaginator);\n permissionService = inject(PermissionService);\n orderOptions = [\n {\n key: 'createdAt',\n value: '创建时间',\n icon: 'arrow_upward',\n sort: 'asc',\n },\n {\n key: 'createdAt',\n value: '创建时间',\n icon: 'arrow_downward',\n sort: 'desc',\n },\n ];\n orderString = 'createdAt desc';\n dataSource = new MatTableDataSource();\n searchWord;\n ngOnInit() {\n this.findAll(null);\n }\n onClick(item) {\n this.orderString = item.key + ' ' + item.sort;\n this.paginator()?.firstPage();\n this.findAll(null);\n }\n findAll(event) {\n this.isLoading = true;\n this.isSearch = false;\n const page = event ? event.pageIndex + 1 : 1;\n const limit = event ? event.pageSize : 15;\n const sort = this.orderString;\n const options = {\n page,\n limit,\n sort,\n };\n this.permissionService.find(options).subscribe({\n next: (res) => {\n this.permissions = res.data;\n this.dataSource.data = this.permissions;\n this.length = res.meta.pagination.count;\n this.isLoading = false;\n },\n error: (error) => {\n this.isLoading = false;\n this.snackBar.open(error.message);\n },\n });\n }\n search(e) {\n this.isLoading = true;\n const word = e.target.value;\n const options = {\n filter: `name:${word}`,\n };\n this.permissionService.find(options).subscribe({\n next: (res) => {\n this.permissions = res.data;\n this.dataSource.data = this.permissions;\n this.length = res.meta.pagination.count;\n this.isLoading = false;\n },\n error: (error) => {\n this.isLoading = false;\n this.snackBar.open(error.message);\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: IndexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: IndexComponent, isStandalone: true, selector: \"rolatech-authorization-index\", viewQueries: [{ propertyName: \"paginator\", first: true, predicate: MatPaginator, descendants: true, isSignal: true }], ngImport: i0, template: \"<rolatech-toolbar title=\\\"Permissions\\\">\\n <button mat-icon-button routerLink=\\\"./create\\\">\\n <mat-icon>add</mat-icon>\\n </button>\\n <button mat-icon-button (click)=\\\"isSearch = true\\\">\\n <mat-icon>search</mat-icon>\\n </button>\\n <button mat-icon-button [matMenuTriggerFor]=\\\"beforeMenu\\\">\\n <mat-icon>reorder</mat-icon>\\n </button>\\n <mat-menu #beforeMenu=\\\"matMenu\\\" xPosition=\\\"before\\\">\\n @for (item of orderOptions; track item) {\\n <button mat-menu-item (click)=\\\"onClick(item)\\\">\\n <span>{{ item.value }}</span>\\n <mat-icon>{{ item.icon }}</mat-icon>\\n </button>\\n }\\n </mat-menu>\\n</rolatech-toolbar>\\n@if (isSearch) {\\n <mat-form-field floatLabel=\\\"auto\\\">\\n <input type=\\\"text\\\" matInput placeholder=\\\"Phone\\\" (keyup.enter)=\\\"search($event)\\\" />\\n <button matSuffix mat-icon-button (click)=\\\"findAll(null); isSearch = false\\\">\\n <mat-icon>close</mat-icon>\\n </button>\\n </mat-form-field>\\n}\\n<div class=\\\"py-3\\\">\\n <rolatech-spinner></rolatech-spinner>\\n <table mat-table [dataSource]=\\\"dataSource\\\">\\n <!-- name Column -->\\n <ng-container matColumnDef=\\\"name\\\" sticky>\\n <th mat-header-cell *matHeaderCellDef>Name</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.name }}</td>\\n </ng-container>\\n\\n <!-- description Column -->\\n <ng-container matColumnDef=\\\"description\\\">\\n <th mat-header-cell *matHeaderCellDef>description</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.description }}</td>\\n </ng-container>\\n\\n <!-- resource Column -->\\n <ng-container matColumnDef=\\\"resource\\\">\\n <th mat-header-cell *matHeaderCellDef>resource</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.resource }}</td>\\n </ng-container>\\n\\n <!-- code Column -->\\n <ng-container matColumnDef=\\\"code\\\">\\n <th mat-header-cell *matHeaderCellDef>code</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.code }}</td>\\n </ng-container>\\n <!-- pattern Column -->\\n <ng-container matColumnDef=\\\"pattern\\\">\\n <th mat-header-cell *matHeaderCellDef>pattern</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.pattern }}</td>\\n </ng-container>\\n <!-- method Column -->\\n <ng-container matColumnDef=\\\"method\\\">\\n <th mat-header-cell *matHeaderCellDef>method</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.method }}</td>\\n </ng-container>\\n\\n <!-- actions Column -->\\n <ng-container matColumnDef=\\\"actions\\\" stickyEnd>\\n <th mat-header-cell *matHeaderCellDef class=\\\"actions\\\"></th>\\n <td mat-cell *matCellDef=\\\"let item\\\" class=\\\"actions\\\">\\n <mat-icon>navigate_next</mat-icon>\\n </td>\\n </ng-container>\\n\\n <tr mat-header-row *matHeaderRowDef=\\\"displayedColumns\\\"></tr>\\n <tr\\n mat-row\\n *matRowDef=\\\"let row; columns: displayedColumns\\\"\\n class=\\\"cursor-pointer hover:bg-[--rt-raised-background]\\\"\\n [routerLink]=\\\"['./', row.id]\\\"\\n ></tr>\\n </table>\\n</div>\\n<mat-paginator\\n #paginator\\n [length]=\\\"length\\\"\\n [pageSize]=\\\"pageSize\\\"\\n [pageSizeOptions]=\\\"pageSizeOptions\\\"\\n (page)=\\\"pageEvent = findAll($event)\\\"\\n hidePageSize\\n showFirstLastButtons\\n>\\n</mat-paginator>\\n\", styles: [\"mat-form-field{width:100%}table{width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"directive\", type: i1.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: i2.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: i3.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: i4.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i4.MatSuffix, selector: \"[matSuffix], [matIconSuffix], [matTextSuffix]\", inputs: [\"matTextSuffix\"] }, { kind: \"directive\", type: i5.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"component\", type: i6.MatMenu, selector: \"mat-menu\", inputs: [\"backdropClass\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"xPosition\", \"yPosition\", \"overlapTrigger\", \"hasBackdrop\", \"class\", \"classList\"], outputs: [\"closed\", \"close\"], exportAs: [\"matMenu\"] }, { kind: \"component\", type: i6.MatMenuItem, selector: \"[mat-menu-item]\", inputs: [\"role\", \"disabled\", \"disableRipple\"], exportAs: [\"matMenuItem\"] }, { kind: \"directive\", type: i6.MatMenuTrigger, selector: \"[mat-menu-trigger-for], [matMenuTriggerFor]\", inputs: [\"mat-menu-trigger-for\", \"matMenuTriggerFor\", \"matMenuTriggerData\", \"matMenuTriggerRestoreFocus\"], outputs: [\"menuOpened\", \"onMenuOpen\", \"menuClosed\", \"onMenuClose\"], exportAs: [\"matMenuTrigger\"] }, { kind: \"component\", type: i7.MatPaginator, selector: \"mat-paginator\", inputs: [\"color\", \"pageIndex\", \"length\", \"pageSize\", \"pageSizeOptions\", \"hidePageSize\", \"showFirstLastButtons\", \"selectConfig\", \"disabled\"], outputs: [\"page\"], exportAs: [\"matPaginator\"] }, { kind: \"component\", type: i8.MatTable, selector: \"mat-table, table[mat-table]\", exportAs: [\"matTable\"] }, { kind: \"directive\", type: i8.MatHeaderCellDef, selector: \"[matHeaderCellDef]\" }, { kind: \"directive\", type: i8.MatHeaderRowDef, selector: \"[matHeaderRowDef]\", inputs: [\"matHeaderRowDef\", \"matHeaderRowDefSticky\"] }, { kind: \"directive\", type: i8.MatColumnDef, selector: \"[matColumnDef]\", inputs: [\"matColumnDef\"] }, { kind: \"directive\", type: i8.MatCellDef, selector: \"[matCellDef]\" }, { kind: \"directive\", type: i8.MatRowDef, selector: \"[matRowDef]\", inputs: [\"matRowDefColumns\", \"matRowDefWhen\"] }, { kind: \"directive\", type: i8.MatHeaderCell, selector: \"mat-header-cell, th[mat-header-cell]\" }, { kind: \"directive\", type: i8.MatCell, selector: \"mat-cell, td[mat-cell]\" }, { kind: \"component\", type: i8.MatHeaderRow, selector: \"mat-header-row, tr[mat-header-row]\", exportAs: [\"matHeaderRow\"] }, { kind: \"component\", type: i8.MatRow, selector: \"mat-row, tr[mat-row]\", exportAs: [\"matRow\"] }, { kind: \"component\", type: SpinnerComponent, selector: \"rolatech-spinner\", inputs: [\"title\"] }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: IndexComponent, decorators: [{\n type: Component,\n args: [{ imports: [AngularCommonModule, AngularComponentsModule, SpinnerComponent, ToolbarComponent], selector: 'rolatech-authorization-index', template: \"<rolatech-toolbar title=\\\"Permissions\\\">\\n <button mat-icon-button routerLink=\\\"./create\\\">\\n <mat-icon>add</mat-icon>\\n </button>\\n <button mat-icon-button (click)=\\\"isSearch = true\\\">\\n <mat-icon>search</mat-icon>\\n </button>\\n <button mat-icon-button [matMenuTriggerFor]=\\\"beforeMenu\\\">\\n <mat-icon>reorder</mat-icon>\\n </button>\\n <mat-menu #beforeMenu=\\\"matMenu\\\" xPosition=\\\"before\\\">\\n @for (item of orderOptions; track item) {\\n <button mat-menu-item (click)=\\\"onClick(item)\\\">\\n <span>{{ item.value }}</span>\\n <mat-icon>{{ item.icon }}</mat-icon>\\n </button>\\n }\\n </mat-menu>\\n</rolatech-toolbar>\\n@if (isSearch) {\\n <mat-form-field floatLabel=\\\"auto\\\">\\n <input type=\\\"text\\\" matInput placeholder=\\\"Phone\\\" (keyup.enter)=\\\"search($event)\\\" />\\n <button matSuffix mat-icon-button (click)=\\\"findAll(null); isSearch = false\\\">\\n <mat-icon>close</mat-icon>\\n </button>\\n </mat-form-field>\\n}\\n<div class=\\\"py-3\\\">\\n <rolatech-spinner></rolatech-spinner>\\n <table mat-table [dataSource]=\\\"dataSource\\\">\\n <!-- name Column -->\\n <ng-container matColumnDef=\\\"name\\\" sticky>\\n <th mat-header-cell *matHeaderCellDef>Name</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.name }}</td>\\n </ng-container>\\n\\n <!-- description Column -->\\n <ng-container matColumnDef=\\\"description\\\">\\n <th mat-header-cell *matHeaderCellDef>description</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.description }}</td>\\n </ng-container>\\n\\n <!-- resource Column -->\\n <ng-container matColumnDef=\\\"resource\\\">\\n <th mat-header-cell *matHeaderCellDef>resource</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.resource }}</td>\\n </ng-container>\\n\\n <!-- code Column -->\\n <ng-container matColumnDef=\\\"code\\\">\\n <th mat-header-cell *matHeaderCellDef>code</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.code }}</td>\\n </ng-container>\\n <!-- pattern Column -->\\n <ng-container matColumnDef=\\\"pattern\\\">\\n <th mat-header-cell *matHeaderCellDef>pattern</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.pattern }}</td>\\n </ng-container>\\n <!-- method Column -->\\n <ng-container matColumnDef=\\\"method\\\">\\n <th mat-header-cell *matHeaderCellDef>method</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.method }}</td>\\n </ng-container>\\n\\n <!-- actions Column -->\\n <ng-container matColumnDef=\\\"actions\\\" stickyEnd>\\n <th mat-header-cell *matHeaderCellDef class=\\\"actions\\\"></th>\\n <td mat-cell *matCellDef=\\\"let item\\\" class=\\\"actions\\\">\\n <mat-icon>navigate_next</mat-icon>\\n </td>\\n </ng-container>\\n\\n <tr mat-header-row *matHeaderRowDef=\\\"displayedColumns\\\"></tr>\\n <tr\\n mat-row\\n *matRowDef=\\\"let row; columns: displayedColumns\\\"\\n class=\\\"cursor-pointer hover:bg-[--rt-raised-background]\\\"\\n [routerLink]=\\\"['./', row.id]\\\"\\n ></tr>\\n </table>\\n</div>\\n<mat-paginator\\n #paginator\\n [length]=\\\"length\\\"\\n [pageSize]=\\\"pageSize\\\"\\n [pageSizeOptions]=\\\"pageSizeOptions\\\"\\n (page)=\\\"pageEvent = findAll($event)\\\"\\n hidePageSize\\n showFirstLastButtons\\n>\\n</mat-paginator>\\n\", styles: [\"mat-form-field{width:100%}table{width:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1hdXRob3JpemF0aW9uL3NyYy9saWIvcGFnZXMvcGVybWlzc2lvbnMvaW5kZXgvaW5kZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1hdXRob3JpemF0aW9uL3NyYy9saWIvcGFnZXMvcGVybWlzc2lvbnMvaW5kZXgvaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBYSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7Ozs7QUFRM0csTUFBTSxPQUFPLGNBQWM7SUFDekIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUM5QixTQUFTLENBQWE7SUFDdEIsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFDYixRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ2QsZUFBZSxHQUFhLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUs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SUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDN0MsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQWpGVSxjQUFjOzJGQUFkLGNBQWMsbUlBVUgsWUFBWSxnRUN6QnBDLHdwR0EyRkEsc0dEakZZLG1CQUFtQiwrUUFBRSx1QkFBdUIscytGQUFFLGdCQUFnQixnRkFBRSxnQkFBZ0I7OzJGQUsvRSxjQUFjO2tCQU4xQixTQUFTOzhCQUNDLENBQUMsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsWUFDakYsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGVybWlzc2lvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9wZXJtaXNzaW9uLm1vZGVsJztcbmltcG9ydCB7IFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcGVybWlzc2lvbi5zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBpbmplY3QsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGFnZUV2ZW50LCBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgQW5ndWxhckNvbW1vbk1vZHVsZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSwgU3Bpbm5lckNvbXBvbmVudCwgVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW0FuZ3VsYXJDb21tb25Nb2R1bGUsIEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLCBTcGlubmVyQ29tcG9uZW50LCBUb29sYmFyQ29tcG9uZW50XSxcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1hdXRob3JpemF0aW9uLWluZGV4JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2luZGV4LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5kZXguY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgSW5kZXhDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBzbmFja0JhciA9IGluamVjdChNYXRTbmFja0JhcilcbiAgcGFnZUV2ZW50ITogUGFnZUV2ZW50O1xuICBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgaXNTZWFyY2ggPSBmYWxzZTtcbiAgbGVuZ3RoID0gMTAwO1xuICBwYWdlU2l6ZSA9IDE1O1xuICBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gWzUsIDEwLCAyNSwgMTAwXTtcbiAgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25bXSA9IFtdO1xuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFsnbmFtZScsICdkZXNjcmlwdGlvbicsICdyZXNvdXJjZScsICdjb2RlJywgJ3BhdHRlcm4nLCAnbWV0aG9kJywgJ2FjdGlvbnMnXTtcbiAgcGFnaW5hdG9yID0gdmlld0NoaWxkKE1hdFBhZ2luYXRvcik7XG4gIHBlcm1pc3Npb25TZXJ2aWNlID0gaW5qZWN0KFBlcm1pc3Npb25TZXJ2aWNlKTtcbiAgb3JkZXJPcHRpb25zID0gW1xuICAgIHtcbiAgICAgIGtleTogJ2NyZWF0ZWRBdCcsXG4gICAgICB2YWx1ZTogJ+WIm+W7uuaXtumXtCcsXG4gICAgICBpY29uOiAnYXJyb3dfdXB3YXJkJyxcbiAgICAgIHNvcnQ6ICdhc2MnLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnY3JlYXRlZEF0JyxcbiAgICAgIHZhbHVlOiAn5Yib5bu65pe26Ze0JyxcbiAgICAgIGljb246ICdhcnJvd19kb3dud2FyZCcsXG4gICAgICBzb3J0OiAnZGVzYycsXG4gICAgfSxcbiAgXTtcblxuICBvcmRlclN0cmluZyA9ICdjcmVhdGVkQXQgZGVzYyc7XG4gIGRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlPFBlcm1pc3Npb24+KCk7XG4gIHNlYXJjaFdvcmQhOiBzdHJpbmc7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maW5kQWxsKG51bGwpO1xuICB9XG4gIG9uQ2xpY2soaXRlbTogYW55KSB7XG4gICAgdGhpcy5vcmRlclN0cmluZyA9IGl0ZW0ua2V5ICsgJyAnICsgaXRlbS5zb3J0O1xuICAgIHRoaXMucGFnaW5hdG9yKCk/LmZpcnN0UGFnZSgpO1xuICAgIHRoaXMuZmluZEFsbChudWxsKTtcbiAgfVxuICBmaW5kQWxsKGV2ZW50PzogUGFnZUV2ZW50IHwgbnVsbCk6IGFueSB7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuaXNTZWFyY2ggPSBmYWxzZTtcbiAgICBjb25zdCBwYWdlID0gZXZlbnQgPyBldmVudC5wYWdlSW5kZXggKyAxIDogMTtcbiAgICBjb25zdCBsaW1pdCA9IGV2ZW50ID8gZXZlbnQucGFnZVNpemUgOiAxNTtcbiAgICBjb25zdCBzb3J0ID0gdGhpcy5vcmRlclN0cmluZztcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgcGFnZSxcbiAgICAgIGxpbWl0LFxuICAgICAgc29ydCxcbiAgICB9O1xuICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2UuZmluZChvcHRpb25zKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucGVybWlzc2lvbnMgPSByZXMuZGF0YTtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSB0aGlzLnBlcm1pc3Npb25zO1xuICAgICAgICB0aGlzLmxlbmd0aCA9IHJlcy5tZXRhLnBhZ2luYXRpb24uY291bnQ7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oZXJyb3IubWVzc2FnZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHNlYXJjaChlOiBhbnkpIHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgY29uc3Qgd29yZCA9IGUudGFyZ2V0LnZhbHVlO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBmaWx0ZXI6IGBuYW1lOiR7d29yZH1gLFxuICAgIH07XG4gICAgdGhpcy5wZXJtaXNzaW9uU2VydmljZS5maW5kKG9wdGlvbnMpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9ucyA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHRoaXMucGVybWlzc2lvbnM7XG4gICAgICAgIHRoaXMubGVuZ3RoID0gcmVzLm1ldGEucGFnaW5hdGlvbi5jb3VudDtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihlcnJvci5tZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxyb2xhdGVjaC10b29sYmFyIHRpdGxlPVwiUGVybWlzc2lvbnNcIj5cbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gcm91dGVyTGluaz1cIi4vY3JlYXRlXCI+XG4gICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiaXNTZWFyY2ggPSB0cnVlXCI+XG4gICAgPG1hdC1pY29uPnNlYXJjaDwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYmVmb3JlTWVudVwiPlxuICAgIDxtYXQtaWNvbj5yZW9yZGVyPC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG4gIDxtYXQtbWVudSAjYmVmb3JlTWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgICBAZm9yIChpdGVtIG9mIG9yZGVyT3B0aW9uczsgdHJhY2sgaXRlbSkge1xuICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJvbkNsaWNrKGl0ZW0pXCI+XG4gICAgICAgIDxzcGFuPnt7IGl0ZW0udmFsdWUgfX08L3NwYW4+XG4gICAgICAgIDxtYXQtaWNvbj57eyBpdGVtLmljb24gfX08L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgfVxuICA8L21hdC1tZW51PlxuPC9yb2xhdGVjaC10b29sYmFyPlxuQGlmIChpc1NlYXJjaCkge1xuICA8bWF0LWZvcm0tZmllbGQgZmxvYXRMYWJlbD1cImF1dG9cIj5cbiAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlBob25lXCIgKGtleXVwLmVudGVyKT1cInNlYXJjaCgkZXZlbnQpXCIgLz5cbiAgICA8YnV0dG9uIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImZpbmRBbGwobnVsbCk7IGlzU2VhcmNoID0gZmFsc2VcIj5cbiAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG59XG48ZGl2IGNsYXNzPVwicHktM1wiPlxuICA8cm9sYXRlY2gtc3Bpbm5lcj48L3JvbGF0ZWNoLXNwaW5uZXI+XG4gIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiPlxuICAgIDwhLS0gbmFtZSBDb2x1bW4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJuYW1lXCIgc3RpY2t5PlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5OYW1lPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCI+e3sgaXRlbS5uYW1lIH19PC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gZGVzY3JpcHRpb24gQ29sdW1uIC0tPlxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+ZGVzY3JpcHRpb248L3RoPlxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIj57eyBpdGVtLmRlc2NyaXB0aW9uIH19PC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gcmVzb3VyY2UgQ29sdW1uIC0tPlxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicmVzb3VyY2VcIj5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+cmVzb3VyY2U8L3RoPlxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIj57eyBpdGVtLnJlc291cmNlIH19PC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gY29kZSBDb2x1bW4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJjb2RlXCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPmNvZGU8L3RoPlxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIj57eyBpdGVtLmNvZGUgfX08L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gcGF0dGVybiBDb2x1bW4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJwYXR0ZXJuXCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPnBhdHRlcm48L3RoPlxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIj57eyBpdGVtLnBhdHRlcm4gfX08L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gbWV0aG9kIENvbHVtbiAtLT5cbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIm1ldGhvZFwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5tZXRob2Q8L3RoPlxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIj57eyBpdGVtLm1ldGhvZCB9fTwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIGFjdGlvbnMgQ29sdW1uIC0tPlxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiYWN0aW9uc1wiIHN0aWNreUVuZD5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJhY3Rpb25zXCI+PC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCIgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICAgIDxtYXQtaWNvbj5uYXZpZ2F0ZV9uZXh0PC9tYXQtaWNvbj5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNcIj48L3RyPlxuICAgIDx0clxuICAgICAgbWF0LXJvd1xuICAgICAgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnNcIlxuICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBob3ZlcjpiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF1cIlxuICAgICAgW3JvdXRlckxpbmtdPVwiWycuLycsIHJvdy5pZF1cIlxuICAgID48L3RyPlxuICA8L3RhYmxlPlxuPC9kaXY+XG48bWF0LXBhZ2luYXRvclxuICAjcGFnaW5hdG9yXG4gIFtsZW5ndGhdPVwibGVuZ3RoXCJcbiAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgW3BhZ2VTaXplT3B0aW9uc109XCJwYWdlU2l6ZU9wdGlvbnNcIlxuICAocGFnZSk9XCJwYWdlRXZlbnQgPSBmaW5kQWxsKCRldmVudClcIlxuICBoaWRlUGFnZVNpemVcbiAgc2hvd0ZpcnN0TGFzdEJ1dHRvbnNcbj5cbjwvbWF0LXBhZ2luYXRvcj5cbiJdfQ==","import { SelectionModel } from '@angular/cdk/collections';\nimport { Component, inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { differenceBy, findIndex, sortBy } from 'lodash';\nimport { EndpointService } from '../../../services/endpoint.service';\nimport { PermissionService } from '../../../services/permission.service';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule, ToolbarComponent } from '@rolatech/angular-components';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/material/button\";\nimport * as i3 from \"@angular/material/icon\";\nimport * as i4 from \"@angular/material/list\";\nimport * as i5 from \"@angular/material/table\";\nexport class UpdateComponent {\n permissionService = inject(PermissionService);\n endpointService = inject(EndpointService);\n snackBar = inject(MatSnackBar);\n obj = [];\n sourceDisplayedColumns = ['code', 'pattern', 'method', 'actions'];\n targetDisplayedColumns = ['code', 'pattern', 'method', 'actions'];\n sourceDataSource = new MatTableDataSource();\n targetDataSource = new MatTableDataSource();\n sourceSelection = new SelectionModel(true, []);\n targetSelection = new SelectionModel(true, []);\n sourceNewLength = 0;\n sourceDeprecatedLength = 0;\n endpoints = [];\n permissions = [];\n orderString = 'createdAt desc';\n ngOnInit() {\n this.findAllEndpoints();\n }\n findAllEndpoints() {\n this.endpointService.find({}).subscribe({\n next: (res) => {\n this.endpoints = res.data;\n this.selectionChange(null);\n },\n error: (error) => {\n this.snackBar.open(error.message);\n },\n });\n }\n findPermissions(resource) {\n const options = {\n filter: `resource:${resource}`,\n limit: 600,\n };\n this.permissionService.find(options).subscribe({\n next: (res) => {\n this.permissions = sortBy(res.data, ['code']);\n this.targetDataSource.data = this.permissions;\n this.compare();\n },\n error: (error) => {\n this.snackBar.open(error.message);\n },\n });\n }\n compare() {\n const result = differenceBy(this.obj, this.permissions, 'code');\n if (result.length > 0) {\n result.forEach((item) => {\n const index = findIndex(this.obj, item);\n this.sourceSelection.select(this.obj[index]);\n this.sourceNewLength++;\n });\n }\n const result2 = differenceBy(this.permissions, this.obj, 'code');\n if (result2.length > 0) {\n result2.forEach((item) => {\n const index = findIndex(this.permissions, item);\n this.targetSelection.select(this.permissions[index]);\n this.sourceDeprecatedLength++;\n });\n }\n }\n onSelect(endpoint) {\n const url = endpoint.endpointUrl;\n const resource = endpoint.resource;\n this.endpointService.findByResource(resource).subscribe({\n next: (res) => {\n this.obj = sortBy(res, ['code']);\n this.sourceDataSource.data = this.obj;\n this.findPermissions(resource);\n },\n error: (error) => {\n this.snackBar.open(error.message);\n },\n });\n }\n selectionChange(event) {\n this.sourceDeprecatedLength = 0;\n this.sourceNewLength = 0;\n let url;\n let resource;\n if (event) {\n url = event.options[0].value.endpointUrl;\n resource = event.options[0].value.resource;\n }\n else {\n url = this.endpoints[0].endpointUrl;\n resource = this.endpoints[0].resource;\n }\n this.endpointService.findByResource(resource).subscribe({\n next: (res) => {\n this.obj = sortBy(res, ['code']);\n this.sourceDataSource.data = this.obj;\n this.findPermissions(resource);\n },\n error: (error) => {\n this.snackBar.open(error.message);\n },\n });\n }\n insert(item, index) {\n const body = {\n permissions: [item],\n };\n this.permissionService.create(body).subscribe({\n next: (res) => {\n this.snackBar.open('Add successfully');\n this.sourceSelection.deselect(this.obj[index]);\n this.targetDataSource.data.unshift(res.data[0]);\n this.targetDataSource._updateChangeSubscription();\n this.sourceNewLength--;\n },\n error: (error) => {\n this.snackBar.open(error.message);\n },\n });\n }\n delete(id, index) {\n this.permissionService.delete(id).subscribe({\n next: (res) => {\n this.snackBar.open('Delete successfully');\n this.targetSelection.deselect(this.permissions[index]);\n this.sourceDeprecatedLength--;\n this.targetDataSource.data.splice(index, 1);\n this.targetDataSource._updateChangeSubscription();\n },\n error: (error) => {\n this.snackBar.open(error.message);\n },\n });\n }\n updateAll() {\n const body = {\n permissions: this.obj,\n };\n this.permissionService.create(body).subscribe({\n next: (res) => {\n this.snackBar.open('Update successfully');\n this.sourceSelection.clear();\n this.permissions = res.data;\n this.targetDataSource.data = res.data;\n this.targetDataSource._updateChangeSubscription();\n this.sourceNewLength = 0;\n },\n error: (error) => {\n this.snackBar.open(error.message);\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: UpdateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: UpdateComponent, isStandalone: true, selector: \"rolatech-authorization-update\", ngImport: i0, template: \"<rolatech-toolbar title=\\\"Permissions update\\\">\\n <button mat-flat-button (click)=\\\"updateAll()\\\">\\n <mat-icon>sync</mat-icon>\\n Sync\\n </button>\\n</rolatech-toolbar>\\n<div class=\\\"flex flex-row gap-2 pr-3\\\">\\n <div class=\\\"w-[256px]\\\">\\n <div class=\\\"text-lg font-bold p-3\\\">Endpoints</div>\\n <mat-selection-list #endpoint [multiple]=\\\"false\\\" (selectionChange)=\\\"selectionChange($event)\\\">\\n @for (endpoint of endpoints; track endpoint; let i = $index) {\\n <mat-list-option [value]=\\\"endpoint\\\" [selected]=\\\"endpoint && i === 0\\\">\\n {{ endpoint.resource }}\\n </mat-list-option>\\n }\\n </mat-selection-list>\\n </div>\\n <div class=\\\"flex gap-2 w-full overflow-hidden\\\">\\n <div class=\\\"w-1/2 p-3\\\">\\n <div class=\\\"flex flex-col justify-between\\\">\\n <div class=\\\"text-lg font-bold\\\">Server version</div>\\n <div class=\\\"text-sm opacity-70\\\">\\n Total {{ sourceDataSource.data.length }}, New {{ sourceNewLength }}, Deprecated {{ sourceDeprecatedLength }}\\n </div>\\n </div>\\n <div class=\\\"h-[calc(100vh-190px)] overflow-scroll\\\">\\n <table mat-table [dataSource]=\\\"sourceDataSource\\\">\\n <!-- name Column -->\\n <!-- <ng-container matColumnDef=\\\"name\\\">\\n <th mat-header-cell *matHeaderCellDef>\\u540D\\u79F0</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.name }}</td>\\n </ng-container> -->\\n\\n <!-- code Column -->\\n <ng-container matColumnDef=\\\"code\\\">\\n <th mat-header-cell *matHeaderCellDef>code</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.code }}</td>\\n </ng-container>\\n\\n <!-- pattern Column -->\\n <ng-container matColumnDef=\\\"pattern\\\">\\n <th mat-header-cell *matHeaderCellDef>pattern</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.pattern }}</td>\\n </ng-container>\\n\\n <!-- method Column -->\\n <ng-container matColumnDef=\\\"method\\\">\\n <th mat-header-cell *matHeaderCellDef>method</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.method }}</td>\\n </ng-container>\\n\\n <!-- actions Column -->\\n <ng-container matColumnDef=\\\"actions\\\" stickyEnd>\\n <th mat-header-cell *matHeaderCellDef class=\\\"actions\\\">Actions</th>\\n <td mat-cell *matCellDef=\\\"let item; let i = index\\\" class=\\\"actions\\\">\\n <!-- <mat-icon>more_vert</mat-icon> -->\\n <a class=\\\"cursor-pointer\\\" (click)=\\\"insert(item, i)\\\"> Insert </a>\\n </td>\\n </ng-container>\\n\\n <tr mat-header-row *matHeaderRowDef=\\\"sourceDisplayedColumns; sticky: true\\\"></tr>\\n <tr\\n mat-row\\n *matRowDef=\\\"let row; columns: sourceDisplayedColumns\\\"\\n [ngClass]=\\\"sourceSelection.isSelected(row) ? 'bg-[--rt-brand-color] important' : ''\\\"\\n ></tr>\\n </table>\\n </div>\\n </div>\\n\\n <div class=\\\"w-1/2 p-3\\\">\\n <div class=\\\"flex flex-col\\\">\\n <div class=\\\"text-lg font-bold\\\">Database version</div>\\n <div class=\\\"text-sm opacity-70\\\">Total {{ targetDataSource.data.length }}</div>\\n </div>\\n\\n <div class=\\\"h-[calc(100vh-190px)] overflow-scroll\\\">\\n <table mat-table [dataSource]=\\\"targetDataSource\\\">\\n <!-- code Column -->\\n <ng-container matColumnDef=\\\"code\\\">\\n <th mat-header-cell *matHeaderCellDef>code</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.code }}</td>\\n </ng-container>\\n\\n <!-- pattern Column -->\\n <ng-container matColumnDef=\\\"pattern\\\">\\n <th mat-header-cell *matHeaderCellDef>pattern</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.pattern }}</td>\\n </ng-container>\\n\\n <!-- method Column -->\\n <ng-container matColumnDef=\\\"method\\\">\\n <th mat-header-cell *matHeaderCellDef>method</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.method }}</td>\\n </ng-container>\\n\\n <!-- actions Column -->\\n <ng-container matColumnDef=\\\"actions\\\" stickyEnd>\\n <th mat-header-cell *matHeaderCellDef class=\\\"actions\\\">Actions</th>\\n <td mat-cell *matCellDef=\\\"let item; let i = index\\\" class=\\\"actions\\\">\\n <a class=\\\"cursor-pointer\\\" (click)=\\\"delete(item.id, i)\\\"> Delete </a>\\n </td>\\n </ng-container>\\n\\n <tr mat-header-row *matHeaderRowDef=\\\"targetDisplayedColumns; sticky: true\\\"></tr>\\n <tr\\n mat-row\\n *matRowDef=\\\"let row; columns: targetDisplayedColumns\\\"\\n [ngClass]=\\\"targetSelection.isSelected(row) ? 'line-through bg-[--rt-raised-background]' : ''\\\"\\n ></tr>\\n </table>\\n </div>\\n </div>\\n </div>\\n</div>\\n\", styles: [\"mat-form-field{width:100%}table{width:100%}td.mat-column-actions{text-align:right;min-width:80px;font-size:.8rem;padding:0 28px}.mat-mdc-header-cell.actions{text-align:right;max-width:120px;width:120px;padding:0 28px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{text-align:right;padding-right:8px!important}.selected{background:#000;color:#fff}\\n\"], dependencies: [{ kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: i2.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: i3.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: i4.MatSelectionList, selector: \"mat-selection-list\", inputs: [\"color\", \"compareWith\", \"multiple\", \"hideSingleSelectionIndicator\", \"disabled\"], outputs: [\"selectionChange\"], exportAs: [\"matSelectionList\"] }, { kind: \"component\", type: i4.MatListOption, selector: \"mat-list-option\", inputs: [\"togglePosition\", \"checkboxPosition\", \"color\", \"value\", \"selected\"], outputs: [\"selectedChange\"], exportAs: [\"matListOption\"] }, { kind: \"component\", type: i5.MatTable, selector: \"mat-table, table[mat-table]\", exportAs: [\"matTable\"] }, { kind: \"directive\", type: i5.MatHeaderCellDef, selector: \"[matHeaderCellDef]\" }, { kind: \"directive\", type: i5.MatHeaderRowDef, selector: \"[matHeaderRowDef]\", inputs: [\"matHeaderRowDef\", \"matHeaderRowDefSticky\"] }, { kind: \"directive\", type: i5.MatColumnDef, selector: \"[matColumnDef]\", inputs: [\"matColumnDef\"] }, { kind: \"directive\", type: i5.MatCellDef, selector: \"[matCellDef]\" }, { kind: \"directive\", type: i5.MatRowDef, selector: \"[matRowDef]\", inputs: [\"matRowDefColumns\", \"matRowDefWhen\"] }, { kind: \"directive\", type: i5.MatHeaderCell, selector: \"mat-header-cell, th[mat-header-cell]\" }, { kind: \"directive\", type: i5.MatCell, selector: \"mat-cell, td[mat-cell]\" }, { kind: \"component\", type: i5.MatHeaderRow, selector: \"mat-header-row, tr[mat-header-row]\", exportAs: [\"matHeaderRow\"] }, { kind: \"component\", type: i5.MatRow, selector: \"mat-row, tr[mat-row]\", exportAs: [\"matRow\"] }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: UpdateComponent, decorators: [{\n type: Component,\n args: [{ imports: [AngularCommonModule, AngularComponentsModule, ToolbarComponent], selector: 'rolatech-authorization-update', template: \"<rolatech-toolbar title=\\\"Permissions update\\\">\\n <button mat-flat-button (click)=\\\"updateAll()\\\">\\n <mat-icon>sync</mat-icon>\\n Sync\\n </button>\\n</rolatech-toolbar>\\n<div class=\\\"flex flex-row gap-2 pr-3\\\">\\n <div class=\\\"w-[256px]\\\">\\n <div class=\\\"text-lg font-bold p-3\\\">Endpoints</div>\\n <mat-selection-list #endpoint [multiple]=\\\"false\\\" (selectionChange)=\\\"selectionChange($event)\\\">\\n @for (endpoint of endpoints; track endpoint; let i = $index) {\\n <mat-list-option [value]=\\\"endpoint\\\" [selected]=\\\"endpoint && i === 0\\\">\\n {{ endpoint.resource }}\\n </mat-list-option>\\n }\\n </mat-selection-list>\\n </div>\\n <div class=\\\"flex gap-2 w-full overflow-hidden\\\">\\n <div class=\\\"w-1/2 p-3\\\">\\n <div class=\\\"flex flex-col justify-between\\\">\\n <div class=\\\"text-lg font-bold\\\">Server version</div>\\n <div class=\\\"text-sm opacity-70\\\">\\n Total {{ sourceDataSource.data.length }}, New {{ sourceNewLength }}, Deprecated {{ sourceDeprecatedLength }}\\n </div>\\n </div>\\n <div class=\\\"h-[calc(100vh-190px)] overflow-scroll\\\">\\n <table mat-table [dataSource]=\\\"sourceDataSource\\\">\\n <!-- name Column -->\\n <!-- <ng-container matColumnDef=\\\"name\\\">\\n <th mat-header-cell *matHeaderCellDef>\\u540D\\u79F0</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.name }}</td>\\n </ng-container> -->\\n\\n <!-- code Column -->\\n <ng-container matColumnDef=\\\"code\\\">\\n <th mat-header-cell *matHeaderCellDef>code</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.code }}</td>\\n </ng-container>\\n\\n <!-- pattern Column -->\\n <ng-container matColumnDef=\\\"pattern\\\">\\n <th mat-header-cell *matHeaderCellDef>pattern</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.pattern }}</td>\\n </ng-container>\\n\\n <!-- method Column -->\\n <ng-container matColumnDef=\\\"method\\\">\\n <th mat-header-cell *matHeaderCellDef>method</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.method }}</td>\\n </ng-container>\\n\\n <!-- actions Column -->\\n <ng-container matColumnDef=\\\"actions\\\" stickyEnd>\\n <th mat-header-cell *matHeaderCellDef class=\\\"actions\\\">Actions</th>\\n <td mat-cell *matCellDef=\\\"let item; let i = index\\\" class=\\\"actions\\\">\\n <!-- <mat-icon>more_vert</mat-icon> -->\\n <a class=\\\"cursor-pointer\\\" (click)=\\\"insert(item, i)\\\"> Insert </a>\\n </td>\\n </ng-container>\\n\\n <tr mat-header-row *matHeaderRowDef=\\\"sourceDisplayedColumns; sticky: true\\\"></tr>\\n <tr\\n mat-row\\n *matRowDef=\\\"let row; columns: sourceDisplayedColumns\\\"\\n [ngClass]=\\\"sourceSelection.isSelected(row) ? 'bg-[--rt-brand-color] important' : ''\\\"\\n ></tr>\\n </table>\\n </div>\\n </div>\\n\\n <div class=\\\"w-1/2 p-3\\\">\\n <div class=\\\"flex flex-col\\\">\\n <div class=\\\"text-lg font-bold\\\">Database version</div>\\n <div class=\\\"text-sm opacity-70\\\">Total {{ targetDataSource.data.length }}</div>\\n </div>\\n\\n <div class=\\\"h-[calc(100vh-190px)] overflow-scroll\\\">\\n <table mat-table [dataSource]=\\\"targetDataSource\\\">\\n <!-- code Column -->\\n <ng-container matColumnDef=\\\"code\\\">\\n <th mat-header-cell *matHeaderCellDef>code</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.code }}</td>\\n </ng-container>\\n\\n <!-- pattern Column -->\\n <ng-container matColumnDef=\\\"pattern\\\">\\n <th mat-header-cell *matHeaderCellDef>pattern</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.pattern }}</td>\\n </ng-container>\\n\\n <!-- method Column -->\\n <ng-container matColumnDef=\\\"method\\\">\\n <th mat-header-cell *matHeaderCellDef>method</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.method }}</td>\\n </ng-container>\\n\\n <!-- actions Column -->\\n <ng-container matColumnDef=\\\"actions\\\" stickyEnd>\\n <th mat-header-cell *matHeaderCellDef class=\\\"actions\\\">Actions</th>\\n <td mat-cell *matCellDef=\\\"let item; let i = index\\\" class=\\\"actions\\\">\\n <a class=\\\"cursor-pointer\\\" (click)=\\\"delete(item.id, i)\\\"> Delete </a>\\n </td>\\n </ng-container>\\n\\n <tr mat-header-row *matHeaderRowDef=\\\"targetDisplayedColumns; sticky: true\\\"></tr>\\n <tr\\n mat-row\\n *matRowDef=\\\"let row; columns: targetDisplayedColumns\\\"\\n [ngClass]=\\\"targetSelection.isSelected(row) ? 'line-through bg-[--rt-raised-background]' : ''\\\"\\n ></tr>\\n </table>\\n </div>\\n </div>\\n </div>\\n</div>\\n\", styles: [\"mat-form-field{width:100%}table{width:100%}td.mat-column-actions{text-align:right;min-width:80px;font-size:.8rem;padding:0 28px}.mat-mdc-header-cell.actions{text-align:right;max-width:120px;width:120px;padding:0 28px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{text-align:right;padding-right:8px!important}.selected{background:#000;color:#fff}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItYXV0aG9yaXphdGlvbi9zcmMvbGliL3BhZ2VzL3Blcm1pc3Npb25zL3VwZGF0ZS91cGRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1hdXRob3JpemF0aW9uL3NyYy9saWIvcGFnZXMvcGVybWlzc2lvbnMvdXBkYXRlL3VwZGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBMkIsWUFBWSxFQUFFLFNBQVMsRUFBbUIsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRW5HLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQWtCLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7QUFRekcsTUFBTSxPQUFPLGVBQWU7SUFDMUIsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDOUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxD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YkR2R1ksbUJBQW1CLDRIQUFFLHVCQUF1QiwrNkRBQUUsZ0JBQWdCOzsyRkFLN0QsZUFBZTtrQkFOM0IsU0FBUzs4QkFDQyxDQUFDLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixDQUFDLFlBQy9ELCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IGRpZmZlcmVuY2VXaXRoLCBpc0VxdWFsLCBkaWZmZXJlbmNlQnksIGZpbmRJbmRleCwgcHVsbEF0LCBvcmRlckJ5LCBzb3J0QnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgUGVybWlzc2lvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9wZXJtaXNzaW9uLm1vZGVsJztcbmltcG9ydCB7IEVuZHBvaW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2VuZHBvaW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wZXJtaXNzaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQW5ndWxhckNvbW1vbk1vZHVsZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSwgVGl0bGVDb21wb25lbnQsIFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtBbmd1bGFyQ29tbW9uTW9kdWxlLCBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSwgVG9vbGJhckNvbXBvbmVudF0sXG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtYXV0aG9yaXphdGlvbi11cGRhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXBkYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXBkYXRlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFVwZGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHBlcm1pc3Npb25TZXJ2aWNlID0gaW5qZWN0KFBlcm1pc3Npb25TZXJ2aWNlKTtcbiAgZW5kcG9pbnRTZXJ2aWNlID0gaW5qZWN0KEVuZHBvaW50U2VydmljZSk7XG4gIHNuYWNrQmFyID0gaW5qZWN0KE1hdFNuYWNrQmFyKTtcbiAgb2JqOiBhbnkgPSBbXTtcbiAgc291cmNlRGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbJ2NvZGUnLCAncGF0dGVybicsICdtZXRob2QnLCAnYWN0aW9ucyddO1xuICB0YXJnZXREaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFsnY29kZScsICdwYXR0ZXJuJywgJ21ldGhvZCcsICdhY3Rpb25zJ107XG4gIHNvdXJjZURhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlPGFueT4oKTtcbiAgdGFyZ2V0RGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2U8YW55PigpO1xuICBzb3VyY2VTZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uTW9kZWw8YW55Pih0cnVlLCBbXSk7XG4gIHRhcmdldFNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxhbnk+KHRydWUsIFtdKTtcbiAgc291cmNlTmV3TGVuZ3RoID0gMDtcbiAgc291cmNlRGVwcmVjYXRlZExlbmd0aCA9IDA7XG4gIGVuZHBvaW50czogYW55ID0gW107XG4gIHBlcm1pc3Npb25zOiBQZXJtaXNzaW9uW10gPSBbXTtcbiAgb3JkZXJTdHJpbmcgPSAnY3JlYXRlZEF0IGRlc2MnO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmluZEFsbEVuZHBvaW50cygpO1xuICB9XG4gIGZpbmRBbGxFbmRwb2ludHMoKSB7XG4gICAgdGhpcy5lbmRwb2ludFNlcnZpY2UuZmluZCh7fSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmVuZHBvaW50cyA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZShudWxsKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihlcnJvci5tZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZmluZFBlcm1pc3Npb25zKHJlc291cmNlOiBzdHJpbmcpOiBhbnkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBmaWx0ZXI6IGByZXNvdXJjZToke3Jlc291cmNlfWAsXG4gICAgICBsaW1pdDogNjAwLFxuICAgIH07XG4gICAgdGhpcy5wZXJtaXNzaW9uU2VydmljZS5maW5kKG9wdGlvbnMpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9ucyA9IHNvcnRCeShyZXMuZGF0YSwgWydjb2RlJ10pO1xuICAgICAgICB0aGlzLnRhcmdldERhdGFTb3VyY2UuZGF0YSA9IHRoaXMucGVybWlzc2lvbnM7XG4gICAgICAgIHRoaXMuY29tcGFyZSgpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBjb21wYXJlKCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGRpZmZlcmVuY2VCeSh0aGlzLm9iaiwgdGhpcy5wZXJtaXNzaW9ucywgJ2NvZGUnKTtcbiAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJlc3VsdC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gZmluZEluZGV4KHRoaXMub2JqLCBpdGVtKTtcbiAgICAgICAgdGhpcy5zb3VyY2VTZWxlY3Rpb24uc2VsZWN0KHRoaXMub2JqW2luZGV4XSk7XG4gICAgICAgIHRoaXMuc291cmNlTmV3TGVuZ3RoKys7XG4gICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0MiA9IGRpZmZlcmVuY2VCeSh0aGlzLnBlcm1pc3Npb25zLCB0aGlzLm9iaiwgJ2NvZGUnKTtcbiAgICBpZiAocmVzdWx0Mi5sZW5ndGggPiAwKSB7XG4gICAgICByZXN1bHQyLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBmaW5kSW5kZXgodGhpcy5wZXJtaXNzaW9ucywgaXRlbSk7XG4gICAgICAgIHRoaXMudGFyZ2V0U2VsZWN0aW9uLnNlbGVjdCh0aGlzLnBlcm1pc3Npb25zW2luZGV4XSk7XG4gICAgICAgIHRoaXMuc291cmNlRGVwcmVjYXRlZExlbmd0aCsrO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIG9uU2VsZWN0KGVuZHBvaW50KSB7XG4gICAgY29uc3QgdXJsID0gZW5kcG9pbnQuZW5kcG9pbnRVcmw7XG4gICAgY29uc3QgcmVzb3VyY2UgPSBlbmRwb2ludC5yZXNvdXJjZTtcbiAgICB0aGlzLmVuZHBvaW50U2VydmljZS5maW5kQnlSZXNvdXJjZShyZXNvdXJjZSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLm9iaiA9IHNvcnRCeShyZXMsIFsnY29kZSddKTtcbiAgICAgICAgdGhpcy5zb3VyY2VEYXRhU291cmNlLmRhdGEgPSB0aGlzLm9iajtcbiAgICAgICAgdGhpcy5maW5kUGVybWlzc2lvbnMocmVzb3VyY2UpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBzZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc291cmNlRGVwcmVjYXRlZExlbmd0aCA9IDA7XG4gICAgdGhpcy5zb3VyY2VOZXdMZW5ndGggPSAwO1xuICAgIGxldCB1cmw6IHN0cmluZztcbiAgICBsZXQgcmVzb3VyY2U6IHN0cmluZztcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIHVybCA9IGV2ZW50Lm9wdGlvbnNbMF0udmFsdWUuZW5kcG9pbnRVcmw7XG4gICAgICByZXNvdXJjZSA9IGV2ZW50Lm9wdGlvbnNbMF0udmFsdWUucmVzb3VyY2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVybCA9IHRoaXMuZW5kcG9pbnRzWzBdLmVuZHBvaW50VXJsO1xuICAgICAgcmVzb3VyY2UgPSB0aGlzLmVuZHBvaW50c1swXS5yZXNvdXJjZTtcbiAgICB9XG5cbiAgICB0aGlzLmVuZHBvaW50U2VydmljZS5maW5kQnlSZXNvdXJjZShyZXNvdXJjZSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLm9iaiA9IHNvcnRCeShyZXMsIFsnY29kZSddKTtcbiAgICAgICAgdGhpcy5zb3VyY2VEYXRhU291cmNlLmRhdGEgPSB0aGlzLm9iajtcbiAgICAgICAgdGhpcy5maW5kUGVybWlzc2lvbnMocmVzb3VyY2UpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBpbnNlcnQoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgIHBlcm1pc3Npb25zOiBbaXRlbV0sXG4gICAgfTtcbiAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmNyZWF0ZShib2R5KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbignQWRkIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgICB0aGlzLnNvdXJjZVNlbGVjdGlvbi5kZXNlbGVjdCh0aGlzLm9ialtpbmRleF0pO1xuICAgICAgICB0aGlzLnRhcmdldERhdGFTb3VyY2UuZGF0YS51bnNoaWZ0KHJlcy5kYXRhWzBdKTtcbiAgICAgICAgdGhpcy50YXJnZXREYXRhU291cmNlLl91cGRhdGVDaGFuZ2VTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgdGhpcy5zb3VyY2VOZXdMZW5ndGgtLTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihlcnJvci5tZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlKGlkOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmRlbGV0ZShpZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdEZWxldGUgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICAgIHRoaXMudGFyZ2V0U2VsZWN0aW9uLmRlc2VsZWN0KHRoaXMucGVybWlzc2lvbnNbaW5kZXhdKTtcbiAgICAgICAgdGhpcy5zb3VyY2VEZXByZWNhdGVkTGVuZ3RoLS07XG4gICAgICAgIHRoaXMudGFyZ2V0RGF0YVNvdXJjZS5kYXRhLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIHRoaXMudGFyZ2V0RGF0YVNvdXJjZS5fdXBkYXRlQ2hhbmdlU3Vic2NyaXB0aW9uKCk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oZXJyb3IubWVzc2FnZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHVwZGF0ZUFsbCgpIHtcbiAgICBjb25zdCBib2R5ID0ge1xuICAgICAgcGVybWlzc2lvbnM6IHRoaXMub2JqLFxuICAgIH07XG4gICAgdGhpcy5wZXJtaXNzaW9uU2VydmljZS5jcmVhdGUoYm9keSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ1VwZGF0ZSBzdWNjZXNzZnVsbHknKTtcbiAgICAgICAgdGhpcy5zb3VyY2VTZWxlY3Rpb24uY2xlYXIoKTtcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9ucyA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLnRhcmdldERhdGFTb3VyY2UuZGF0YSA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLnRhcmdldERhdGFTb3VyY2UuX3VwZGF0ZUNoYW5nZVN1YnNjcmlwdGlvbigpO1xuICAgICAgICB0aGlzLnNvdXJjZU5ld0xlbmd0aCA9IDA7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oZXJyb3IubWVzc2FnZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCI8cm9sYXRlY2gtdG9vbGJhciB0aXRsZT1cIlBlcm1pc3Npb25zIHVwZGF0ZVwiPlxuICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwidXBkYXRlQWxsKClcIj5cbiAgICA8bWF0LWljb24+c3luYzwvbWF0LWljb24+XG4gICAgU3luY1xuICA8L2J1dHRvbj5cbjwvcm9sYXRlY2gtdG9vbGJhcj5cbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC0yIHByLTNcIj5cbiAgPGRpdiBjbGFzcz1cInctWzI1NnB4XVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZCBwLTNcIj5FbmRwb2ludHM8L2Rpdj5cbiAgICA8bWF0LXNlbGVjdGlvbi1saXN0ICNlbmRwb2ludCBbbXVsdGlwbGVdPVwiZmFsc2VcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICBAZm9yIChlbmRwb2ludCBvZiBlbmRwb2ludHM7IHRyYWNrIGVuZHBvaW50OyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICA8bWF0LWxpc3Qtb3B0aW9uIFt2YWx1ZV09XCJlbmRwb2ludFwiIFtzZWxlY3RlZF09XCJlbmRwb2ludCAmJiBpID09PSAwXCI+XG4gICAgICAgICAge3sgZW5kcG9pbnQucmVzb3VyY2UgfX1cbiAgICAgICAgPC9tYXQtbGlzdC1vcHRpb24+XG4gICAgICB9XG4gICAgPC9tYXQtc2VsZWN0aW9uLWxpc3Q+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMiB3LWZ1bGwgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgPGRpdiBjbGFzcz1cInctMS8yIHAtM1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZFwiPlNlcnZlciB2ZXJzaW9uPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtIG9wYWNpdHktNzBcIj5cbiAgICAgICAgICBUb3RhbCB7eyBzb3VyY2VEYXRhU291cmNlLmRhdGEubGVuZ3RoIH19LCBOZXcge3sgc291cmNlTmV3TGVuZ3RoIH19LCBEZXByZWNhdGVkIHt7IHNvdXJjZURlcHJlY2F0ZWRMZW5ndGggfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJoLVtjYWxjKDEwMHZoLTE5MHB4KV0gb3ZlcmZsb3ctc2Nyb2xsXCI+XG4gICAgICAgIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwic291cmNlRGF0YVNvdXJjZVwiPlxuICAgICAgICAgIDwhLS0gbmFtZSBDb2x1bW4gLS0+XG4gICAgICAgICAgPCEtLSA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIm5hbWVcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj7lkI3np7A8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiPnt7IGl0ZW0ubmFtZSB9fTwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj4gLS0+XG5cbiAgICAgICAgICA8IS0tIGNvZGUgQ29sdW1uIC0tPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiY29kZVwiPlxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5jb2RlPC90aD5cbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCI+e3sgaXRlbS5jb2RlIH19PC90ZD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDwhLS0gcGF0dGVybiBDb2x1bW4gLS0+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJwYXR0ZXJuXCI+XG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPnBhdHRlcm48L3RoPlxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIj57eyBpdGVtLnBhdHRlcm4gfX08L3RkPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPCEtLSBtZXRob2QgQ29sdW1uIC0tPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibWV0aG9kXCI+XG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPm1ldGhvZDwvdGg+XG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiPnt7IGl0ZW0ubWV0aG9kIH19PC90ZD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDwhLS0gYWN0aW9ucyBDb2x1bW4gLS0+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhY3Rpb25zXCIgc3RpY2t5RW5kPlxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImFjdGlvbnNcIj5BY3Rpb25zPC90aD5cbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICAgICAgICAgIDwhLS0gPG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+IC0tPlxuICAgICAgICAgICAgICA8YSBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImluc2VydChpdGVtLCBpKVwiPiBJbnNlcnQgPC9hPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwic291cmNlRGlzcGxheWVkQ29sdW1uczsgc3RpY2t5OiB0cnVlXCI+PC90cj5cbiAgICAgICAgICA8dHJcbiAgICAgICAgICAgIG1hdC1yb3dcbiAgICAgICAgICAgICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBzb3VyY2VEaXNwbGF5ZWRDb2x1bW5zXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNvdXJjZVNlbGVjdGlvbi5pc1NlbGVjdGVkKHJvdykgPyAnYmctWy0tcnQtYnJhbmQtY29sb3JdIGltcG9ydGFudCcgOiAnJ1wiXG4gICAgICAgICAgPjwvdHI+XG4gICAgICAgIDwvdGFibGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJ3LTEvMiBwLTNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZFwiPkRhdGFiYXNlIHZlcnNpb248L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc20gb3BhY2l0eS03MFwiPlRvdGFsIHt7IHRhcmdldERhdGFTb3VyY2UuZGF0YS5sZW5ndGggfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiaC1bY2FsYygxMDB2aC0xOTBweCldIG92ZXJmbG93LXNjcm9sbFwiPlxuICAgICAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cInRhcmdldERhdGFTb3VyY2VcIj5cbiAgICAgICAgICA8IS0tIGNvZGUgQ29sdW1uIC0tPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiY29kZVwiPlxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5jb2RlPC90aD5cbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCI+e3sgaXRlbS5jb2RlIH19PC90ZD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDwhLS0gcGF0dGVybiBDb2x1bW4gLS0+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJwYXR0ZXJuXCI+XG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPnBhdHRlcm48L3RoPlxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIj57eyBpdGVtLnBhdHRlcm4gfX08L3RkPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPCEtLSBtZXRob2QgQ29sdW1uIC0tPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibWV0aG9kXCI+XG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPm1ldGhvZDwvdGg+XG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiPnt7IGl0ZW0ubWV0aG9kIH19PC90ZD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDwhLS0gYWN0aW9ucyBDb2x1bW4gLS0+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhY3Rpb25zXCIgc3RpY2t5RW5kPlxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImFjdGlvbnNcIj5BY3Rpb25zPC90aD5cbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiZGVsZXRlKGl0ZW0uaWQsIGkpXCI+IERlbGV0ZSA8L2E+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJ0YXJnZXREaXNwbGF5ZWRDb2x1bW5zOyBzdGlja3k6IHRydWVcIj48L3RyPlxuICAgICAgICAgIDx0clxuICAgICAgICAgICAgbWF0LXJvd1xuICAgICAgICAgICAgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IHRhcmdldERpc3BsYXllZENvbHVtbnNcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwidGFyZ2V0U2VsZWN0aW9uLmlzU2VsZWN0ZWQocm93KSA/ICdsaW5lLXRocm91Z2ggYmctWy0tcnQtcmFpc2VkLWJhY2tncm91bmRdJyA6ICcnXCJcbiAgICAgICAgICA+PC90cj5cbiAgICAgICAgPC90YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19","import { CreateComponent } from './create/create.component';\nimport { DetailsComponent } from './details/details.component';\nimport { IndexComponent } from './index/index.component';\nimport { UpdateComponent } from './update/update.component';\nconst routes = [\n {\n path: '',\n component: IndexComponent,\n },\n {\n path: 'create',\n component: CreateComponent,\n },\n {\n path: 'update',\n component: UpdateComponent,\n },\n {\n path: ':id',\n component: DetailsComponent,\n },\n];\nexport default routes;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMucm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1hdXRob3JpemF0aW9uL3NyYy9saWIvcGFnZXMvcGVybWlzc2lvbnMvcGVybWlzc2lvbnMucm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTVELE1BQU0sTUFBTSxHQUFXO0lBQ3JCO1FBQ0UsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsY0FBYztLQUMxQjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFFBQVE7UUFDZCxTQUFTLEVBQUUsZUFBZTtLQUMzQjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFFBQVE7UUFDZCxTQUFTLEVBQUUsZUFBZTtLQUMzQjtJQUNEO1FBQ0UsSUFBSSxFQUFFLEtBQUs7UUFDWCxTQUFTLEVBQUUsZ0JBQWdCO0tBQzVCO0NBQ0YsQ0FBQztBQUNGLGVBQWUsTUFBTSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENyZWF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY3JlYXRlL2NyZWF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGV0YWlsc0NvbXBvbmVudCB9IGZyb20gJy4vZGV0YWlscy9kZXRhaWxzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbmRleENvbXBvbmVudCB9IGZyb20gJy4vaW5kZXgvaW5kZXguY29tcG9uZW50JztcbmltcG9ydCB7IFVwZGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vdXBkYXRlL3VwZGF0ZS5jb21wb25lbnQnO1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICcnLFxuICAgIGNvbXBvbmVudDogSW5kZXhDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnY3JlYXRlJyxcbiAgICBjb21wb25lbnQ6IENyZWF0ZUNvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICd1cGRhdGUnLFxuICAgIGNvbXBvbmVudDogVXBkYXRlQ29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJzppZCcsXG4gICAgY29tcG9uZW50OiBEZXRhaWxzQ29tcG9uZW50LFxuICB9LFxuXTtcbmV4cG9ydCBkZWZhdWx0IHJvdXRlcztcbiJdfQ=="],"names":["i4","i1","i5"],"mappings":"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"}