http-request-manager 18.4.9 → 18.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/http-request-manager.mjs +48 -49
- package/fesm2022/http-request-manager.mjs.map +1 -1
- package/http-request-manager-18.5.0.tgz +0 -0
- package/package.json +3 -5
- package/types/http-request-manager.d.ts +1731 -0
- package/esm2022/http-request-manager.mjs +0 -5
- package/esm2022/lib/http-request-manager.module.mjs +0 -173
- package/esm2022/lib/http-request-services-demo/database-data-demo/database-data-demo.component.mjs +0 -152
- package/esm2022/lib/http-request-services-demo/http-request-services-demo.component.mjs +0 -63
- package/esm2022/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.mjs +0 -173
- package/esm2022/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.mjs +0 -184
- package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.mjs +0 -80
- package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.mjs +0 -42
- package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.mjs +0 -88
- package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.mjs +0 -11
- package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.mjs +0 -29
- package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.mjs +0 -9
- package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.mjs +0 -12
- package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.mjs +0 -14
- package/esm2022/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.mjs +0 -325
- package/esm2022/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.mjs +0 -277
- package/esm2022/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.mjs +0 -64
- package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/components/services/state-data-request.service.mjs +0 -92
- package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.mjs +0 -14
- package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.mjs +0 -57
- package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.mjs +0 -107
- package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.mjs +0 -14
- package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/models/oidc-client.model.mjs +0 -13
- package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/models/user-data.model.mjs +0 -12
- package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.mjs +0 -114
- package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/services/state-request-demo.service.mjs +0 -71
- package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.mjs +0 -9
- package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.mjs +0 -12
- package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.mjs +0 -14
- package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.mjs +0 -336
- package/esm2022/lib/http-request-services-demo/store-state-manager-demo/models/settings.model.mjs +0 -12
- package/esm2022/lib/http-request-services-demo/store-state-manager-demo/services/settings-state.service.mjs +0 -36
- package/esm2022/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.mjs +0 -34
- package/esm2022/lib/index.mjs +0 -4
- package/esm2022/lib/interceptors/credentials.interceptor.mjs +0 -14
- package/esm2022/lib/interceptors/index.mjs +0 -6
- package/esm2022/lib/interceptors/models/error-settings.model.mjs +0 -10
- package/esm2022/lib/interceptors/models/index.mjs +0 -2
- package/esm2022/lib/interceptors/proxy-debugger.interceptor.mjs +0 -47
- package/esm2022/lib/interceptors/request-error.interceptor.mjs +0 -49
- package/esm2022/lib/interceptors/request-header.interceptor.mjs +0 -41
- package/esm2022/lib/models/config-http-options.model.mjs +0 -18
- package/esm2022/lib/models/config-local-storage-options.model.mjs +0 -12
- package/esm2022/lib/models/config-options.model.mjs +0 -12
- package/esm2022/lib/models/config-token.model.mjs +0 -8
- package/esm2022/lib/models/data-type.enum.mjs +0 -7
- package/esm2022/lib/models/database-storage.model.mjs +0 -12
- package/esm2022/lib/models/index.mjs +0 -8
- package/esm2022/lib/models/retry-options.model.mjs +0 -10
- package/esm2022/lib/services/database-manager-service/database.manager.service.mjs +0 -171
- package/esm2022/lib/services/database-manager-service/db.storage.service.mjs +0 -183
- package/esm2022/lib/services/database-manager-service/index.mjs +0 -4
- package/esm2022/lib/services/database-manager-service/models/index.mjs +0 -2
- package/esm2022/lib/services/database-manager-service/models/table-schema.mjs +0 -19
- package/esm2022/lib/services/index.mjs +0 -9
- package/esm2022/lib/services/local-storage-manager-service/index.mjs +0 -4
- package/esm2022/lib/services/local-storage-manager-service/local-storage-manager.service.mjs +0 -308
- package/esm2022/lib/services/local-storage-manager-service/local-storage-signals-manager.service.mjs +0 -277
- package/esm2022/lib/services/local-storage-manager-service/models/global-store-options.model.mjs +0 -13
- package/esm2022/lib/services/local-storage-manager-service/models/index.mjs +0 -6
- package/esm2022/lib/services/local-storage-manager-service/models/setting-options.model.mjs +0 -17
- package/esm2022/lib/services/local-storage-manager-service/models/storage-data.model.mjs +0 -10
- package/esm2022/lib/services/local-storage-manager-service/models/storage-option.model.mjs +0 -13
- package/esm2022/lib/services/local-storage-manager-service/models/storage-type.enum.mjs +0 -7
- package/esm2022/lib/services/request-manager-services/http-manager-signals.service.mjs +0 -199
- package/esm2022/lib/services/request-manager-services/http-manager.service.mjs +0 -207
- package/esm2022/lib/services/request-manager-services/index.mjs +0 -7
- package/esm2022/lib/services/request-manager-services/request-signals.service.mjs +0 -170
- package/esm2022/lib/services/request-manager-services/request.service.mjs +0 -195
- package/esm2022/lib/services/request-manager-services/rxjs-operators/countdown.mjs +0 -9
- package/esm2022/lib/services/request-manager-services/rxjs-operators/delay-retry.mjs +0 -10
- package/esm2022/lib/services/request-manager-services/rxjs-operators/index.mjs +0 -5
- package/esm2022/lib/services/request-manager-services/rxjs-operators/request-polling.mjs +0 -33
- package/esm2022/lib/services/request-manager-services/rxjs-operators/request-streaming.mjs +0 -19
- package/esm2022/lib/services/request-manager-state-service/http-manager-state.store.mjs +0 -594
- package/esm2022/lib/services/request-manager-state-service/index.mjs +0 -3
- package/esm2022/lib/services/request-manager-state-service/models/api-request.model.mjs +0 -22
- package/esm2022/lib/services/request-manager-state-service/models/index.mjs +0 -5
- package/esm2022/lib/services/request-manager-state-service/models/request-options.model.mjs +0 -10
- package/esm2022/lib/services/request-manager-state-service/models/ws-options.model.mjs +0 -15
- package/esm2022/lib/services/request-manager-state-service/models/ws-user.model.mjs +0 -10
- package/esm2022/lib/services/store-state-manager-service/index.mjs +0 -3
- package/esm2022/lib/services/store-state-manager-service/models/index.mjs +0 -2
- package/esm2022/lib/services/store-state-manager-service/models/state-storage-options.model.mjs +0 -12
- package/esm2022/lib/services/store-state-manager-service/store-state-manager.service.mjs +0 -71
- package/esm2022/lib/services/utils/app.service.mjs +0 -26
- package/esm2022/lib/services/utils/encryption/asymmetrical-encryption.service.mjs +0 -186
- package/esm2022/lib/services/utils/encryption/encryption-test.service.mjs +0 -35
- package/esm2022/lib/services/utils/encryption/index.mjs +0 -5
- package/esm2022/lib/services/utils/encryption/random.mjs +0 -64
- package/esm2022/lib/services/utils/encryption/symmetrical-encryption.service.mjs +0 -77
- package/esm2022/lib/services/utils/headers.service.mjs +0 -21
- package/esm2022/lib/services/utils/index.mjs +0 -7
- package/esm2022/lib/services/utils/object-merger.service.mjs +0 -70
- package/esm2022/lib/services/utils/path-query.service.mjs +0 -54
- package/esm2022/lib/services/utils/utils.service.mjs +0 -155
- package/esm2022/lib/services/ws-manager-service/index.mjs +0 -3
- package/esm2022/lib/services/ws-manager-service/models/channel-info.model.mjs +0 -10
- package/esm2022/lib/services/ws-manager-service/models/channel-notification.model.mjs +0 -14
- package/esm2022/lib/services/ws-manager-service/models/communication-type.enum.mjs +0 -7
- package/esm2022/lib/services/ws-manager-service/models/index.mjs +0 -5
- package/esm2022/lib/services/ws-manager-service/models/user-message.model.mjs +0 -12
- package/esm2022/lib/services/ws-manager-service/services/index.mjs +0 -2
- package/esm2022/lib/services/ws-manager-service/services/websocket.service.mjs +0 -187
- package/esm2022/public-api.mjs +0 -11
- package/http-request-manager-18.4.9.tgz +0 -0
- package/index.d.ts +0 -5
- package/lib/http-request-manager.module.d.ts +0 -43
- package/lib/http-request-services-demo/database-data-demo/database-data-demo.component.d.ts +0 -46
- package/lib/http-request-services-demo/http-request-services-demo.component.d.ts +0 -39
- package/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.d.ts +0 -56
- package/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.d.ts +0 -55
- package/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.d.ts +0 -26
- package/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.d.ts +0 -13
- package/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.d.ts +0 -27
- package/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.d.ts +0 -12
- package/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.d.ts +0 -16
- package/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.d.ts +0 -8
- package/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.d.ts +0 -14
- package/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.d.ts +0 -14
- package/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.d.ts +0 -110
- package/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.d.ts +0 -124
- package/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.d.ts +0 -15
- package/lib/http-request-services-demo/request-manager-ws-demo/components/services/state-data-request.service.d.ts +0 -15
- package/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.d.ts +0 -8
- package/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.d.ts +0 -20
- package/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.d.ts +0 -33
- package/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.d.ts +0 -8
- package/lib/http-request-services-demo/request-manager-ws-demo/models/oidc-client.model.d.ts +0 -16
- package/lib/http-request-services-demo/request-manager-ws-demo/models/user-data.model.d.ts +0 -12
- package/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.d.ts +0 -40
- package/lib/http-request-services-demo/request-manager-ws-demo/services/state-request-demo.service.d.ts +0 -11
- package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.d.ts +0 -8
- package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.d.ts +0 -14
- package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.d.ts +0 -14
- package/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.d.ts +0 -106
- package/lib/http-request-services-demo/store-state-manager-demo/models/settings.model.d.ts +0 -14
- package/lib/http-request-services-demo/store-state-manager-demo/services/settings-state.service.d.ts +0 -11
- package/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.d.ts +0 -14
- package/lib/index.d.ts +0 -3
- package/lib/interceptors/credentials.interceptor.d.ts +0 -8
- package/lib/interceptors/index.d.ts +0 -5
- package/lib/interceptors/models/error-settings.model.d.ts +0 -10
- package/lib/interceptors/models/index.d.ts +0 -1
- package/lib/interceptors/proxy-debugger.interceptor.d.ts +0 -12
- package/lib/interceptors/request-error.interceptor.d.ts +0 -10
- package/lib/interceptors/request-header.interceptor.d.ts +0 -15
- package/lib/models/config-http-options.model.d.ts +0 -21
- package/lib/models/config-local-storage-options.model.d.ts +0 -13
- package/lib/models/config-options.model.d.ts +0 -12
- package/lib/models/config-token.model.d.ts +0 -8
- package/lib/models/data-type.enum.d.ts +0 -5
- package/lib/models/database-storage.model.d.ts +0 -10
- package/lib/models/index.d.ts +0 -7
- package/lib/models/retry-options.model.d.ts +0 -10
- package/lib/services/database-manager-service/database.manager.service.d.ts +0 -33
- package/lib/services/database-manager-service/db.storage.service.d.ts +0 -26
- package/lib/services/database-manager-service/index.d.ts +0 -3
- package/lib/services/database-manager-service/models/index.d.ts +0 -1
- package/lib/services/database-manager-service/models/table-schema.d.ts +0 -11
- package/lib/services/index.d.ts +0 -7
- package/lib/services/local-storage-manager-service/index.d.ts +0 -3
- package/lib/services/local-storage-manager-service/local-storage-manager.service.d.ts +0 -86
- package/lib/services/local-storage-manager-service/local-storage-signals-manager.service.d.ts +0 -64
- package/lib/services/local-storage-manager-service/models/global-store-options.model.d.ts +0 -15
- package/lib/services/local-storage-manager-service/models/index.d.ts +0 -5
- package/lib/services/local-storage-manager-service/models/setting-options.model.d.ts +0 -15
- package/lib/services/local-storage-manager-service/models/storage-data.model.d.ts +0 -10
- package/lib/services/local-storage-manager-service/models/storage-option.model.d.ts +0 -15
- package/lib/services/local-storage-manager-service/models/storage-type.enum.d.ts +0 -5
- package/lib/services/request-manager-services/http-manager-signals.service.d.ts +0 -38
- package/lib/services/request-manager-services/http-manager.service.d.ts +0 -41
- package/lib/services/request-manager-services/index.d.ts +0 -6
- package/lib/services/request-manager-services/request-signals.service.d.ts +0 -26
- package/lib/services/request-manager-services/request.service.d.ts +0 -28
- package/lib/services/request-manager-services/rxjs-operators/countdown.d.ts +0 -2
- package/lib/services/request-manager-services/rxjs-operators/delay-retry.d.ts +0 -2
- package/lib/services/request-manager-services/rxjs-operators/index.d.ts +0 -4
- package/lib/services/request-manager-services/rxjs-operators/request-polling.d.ts +0 -2
- package/lib/services/request-manager-services/rxjs-operators/request-streaming.d.ts +0 -2
- package/lib/services/request-manager-state-service/http-manager-state.store.d.ts +0 -92
- package/lib/services/request-manager-state-service/index.d.ts +0 -2
- package/lib/services/request-manager-state-service/models/api-request.model.d.ts +0 -32
- package/lib/services/request-manager-state-service/models/index.d.ts +0 -4
- package/lib/services/request-manager-state-service/models/request-options.model.d.ts +0 -10
- package/lib/services/request-manager-state-service/models/ws-options.model.d.ts +0 -21
- package/lib/services/request-manager-state-service/models/ws-user.model.d.ts +0 -10
- package/lib/services/store-state-manager-service/index.d.ts +0 -2
- package/lib/services/store-state-manager-service/models/index.d.ts +0 -1
- package/lib/services/store-state-manager-service/models/state-storage-options.model.d.ts +0 -13
- package/lib/services/store-state-manager-service/store-state-manager.service.d.ts +0 -23
- package/lib/services/utils/app.service.d.ts +0 -8
- package/lib/services/utils/encryption/asymmetrical-encryption.service.d.ts +0 -17
- package/lib/services/utils/encryption/encryption-test.service.d.ts +0 -10
- package/lib/services/utils/encryption/index.d.ts +0 -4
- package/lib/services/utils/encryption/random.d.ts +0 -11
- package/lib/services/utils/encryption/symmetrical-encryption.service.d.ts +0 -14
- package/lib/services/utils/headers.service.d.ts +0 -10
- package/lib/services/utils/index.d.ts +0 -6
- package/lib/services/utils/object-merger.service.d.ts +0 -14
- package/lib/services/utils/path-query.service.d.ts +0 -11
- package/lib/services/utils/utils.service.d.ts +0 -24
- package/lib/services/ws-manager-service/index.d.ts +0 -2
- package/lib/services/ws-manager-service/models/channel-info.model.d.ts +0 -10
- package/lib/services/ws-manager-service/models/channel-notification.model.d.ts +0 -17
- package/lib/services/ws-manager-service/models/communication-type.enum.d.ts +0 -5
- package/lib/services/ws-manager-service/models/index.d.ts +0 -4
- package/lib/services/ws-manager-service/models/user-message.model.d.ts +0 -14
- package/lib/services/ws-manager-service/services/index.d.ts +0 -1
- package/lib/services/ws-manager-service/services/websocket.service.d.ts +0 -26
- package/public-api.d.ts +0 -7
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class WsAiMessagingComponent {
|
|
4
|
-
constructor() { }
|
|
5
|
-
ngOnInit() {
|
|
6
|
-
}
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WsAiMessagingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: WsAiMessagingComponent, selector: "app-ws-ai-messaging", ngImport: i0, template: "<p>\n ws-ai-messaging works!\n</p>\n", styles: [""] }); }
|
|
9
|
-
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WsAiMessagingComponent, decorators: [{
|
|
11
|
-
type: Component,
|
|
12
|
-
args: [{ selector: 'app-ws-ai-messaging', template: "<p>\n ws-ai-messaging works!\n</p>\n" }]
|
|
13
|
-
}], ctorParameters: () => [] });
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MtYWktbWVzc2FnaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLXdzLWRlbW8vY29tcG9uZW50cy93cy1haS1tZXNzYWdpbmcvd3MtYWktbWVzc2FnaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLXdzLWRlbW8vY29tcG9uZW50cy93cy1haS1tZXNzYWdpbmcvd3MtYWktbWVzc2FnaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBT2xELE1BQU0sT0FBTyxzQkFBc0I7SUFFakMsZ0JBQWdCLENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7K0dBTFUsc0JBQXNCO21HQUF0QixzQkFBc0IsMkRDUG5DLHVDQUdBOzs0RkRJYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXdzLWFpLW1lc3NhZ2luZycsXG4gIHRlbXBsYXRlVXJsOiAnLi93cy1haS1tZXNzYWdpbmcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93cy1haS1tZXNzYWdpbmcuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFdzQWlNZXNzYWdpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxufVxuIiwiPHA+XG4gIHdzLWFpLW1lc3NhZ2luZyB3b3JrcyFcbjwvcD5cbiJdfQ==
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { Component, inject, Input } from '@angular/core';
|
|
2
|
-
import { RandomNumber } from '../../../../services/utils/encryption/random';
|
|
3
|
-
import { StateDataRequestService } from '../services/state-data-request.service';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common";
|
|
6
|
-
import * as i2 from "@angular/material/button";
|
|
7
|
-
import * as i3 from "@angular/material/chips";
|
|
8
|
-
import * as i4 from "@angular/material/table";
|
|
9
|
-
import * as i5 from "@angular/material/divider";
|
|
10
|
-
export class WsDataControlComponent {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.stateDataRequestService = inject(StateDataRequestService);
|
|
13
|
-
this.user$ = this.stateDataRequestService.user$;
|
|
14
|
-
this.users$ = this.stateDataRequestService.userList$;
|
|
15
|
-
this.data$ = this.stateDataRequestService.data$;
|
|
16
|
-
}
|
|
17
|
-
ngOnInit() {
|
|
18
|
-
this.stateDataRequestService.updateConnection(this.server, this.wsServer, this.jwtToken, this.user);
|
|
19
|
-
this.stateDataRequestService.getData();
|
|
20
|
-
}
|
|
21
|
-
onGetData() {
|
|
22
|
-
this.stateDataRequestService.getData();
|
|
23
|
-
}
|
|
24
|
-
onAddData() {
|
|
25
|
-
this.stateDataRequestService.addData();
|
|
26
|
-
}
|
|
27
|
-
onUpdateData(data) {
|
|
28
|
-
const num = RandomNumber(1000, 9999);
|
|
29
|
-
const newData = {
|
|
30
|
-
"spiffe": `wavecoders.com/developer/${num}`,
|
|
31
|
-
"id": 63,
|
|
32
|
-
"last_name": "boni",
|
|
33
|
-
"email": "mikeboni@hotmail.com",
|
|
34
|
-
"first_name": "mike"
|
|
35
|
-
};
|
|
36
|
-
this.stateDataRequestService.updateData(newData);
|
|
37
|
-
}
|
|
38
|
-
onRemoveData(data) {
|
|
39
|
-
const lastRec = data[data.length - 1];
|
|
40
|
-
this.stateDataRequestService.deleteData(lastRec);
|
|
41
|
-
}
|
|
42
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WsDataControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: WsDataControlComponent, selector: "app-ws-data-control", inputs: { server: "server", wsServer: "wsServer", jwtToken: "jwtToken", user: "user" }, ngImport: i0, template: "<div *ngIf=\"(data$ | async) as data\" style=\"margin: 1rem;\">\n\n <div *ngIf=\"(users$ |async) as users\">\n <h3 style=\"margin: 0;\" *ngIf=\"users.length > 0; else NO_USERS\">Connected Users</h3>\n <mat-chip-set>\n <mat-chip *ngFor=\"let user of users\">\n {{ user.name }}\n </mat-chip>\n </mat-chip-set>\n <ng-template #NO_USERS>\n <h3 style=\"margin: 0;\">No Users</h3>\n </ng-template>\n\n </div>\n\n <div style=\"margin-top: 1rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n\n <h3 style=\"margin: 0;\">Data Actions</h3>\n <div style=\"display: flex; gap: 1rem; margin-bottom: 1rem;\">\n <button mat-stroked-button (click)=\"onGetData()\">Get Data</button>\n <div style=\"flex:1\"></div>\n <button mat-stroked-button color=\"accent\" (click)=\"onUpdateData(data)\">Update Data</button>\n <button mat-stroked-button color=\"warn\" (click)=\"onRemoveData(data)\">Remove Data</button>\n <button mat-stroked-button color=\"primary\" (click)=\"onAddData()\">Add Data</button>\n </div>\n\n <div *ngIf=\"data.length > 0; else NO_DATA\">\n\n <table mat-table [dataSource]=\"data\" style=\"border: 1px solid grey;\">\n <ng-container matColumnDef=\"id\">\n <th mat-header-cell *matHeaderCellDef> ID </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.id}} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"spiffe\">\n <th mat-header-cell *matHeaderCellDef> Spiffe </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.spiffe}} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"name\">\n <th mat-header-cell *matHeaderCellDef> Name </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.first_name}} {{element.last_name}}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"email\">\n <th mat-header-cell *matHeaderCellDef> Email </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.email}} </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"['id', 'spiffe', 'name', 'email']\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['id', 'spiffe', 'name', 'email'];\"></tr>\n </table>\n\n <div style=\"border: 1px solid grey; padding: .5rem; border-top: none;\">\n <h3 style=\"margin: 0;\">Total Records {{ data.length }}</h3>\n </div>\n\n </div>\n <ng-template #NO_DATA>\n <div style=\"margin-top: 1rem; font-style: italic;\">\n No Data Available\n </div>\n </ng-template>\n\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i3.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "component", type: i4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i4.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
|
|
44
|
-
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WsDataControlComponent, decorators: [{
|
|
46
|
-
type: Component,
|
|
47
|
-
args: [{ selector: 'app-ws-data-control', template: "<div *ngIf=\"(data$ | async) as data\" style=\"margin: 1rem;\">\n\n <div *ngIf=\"(users$ |async) as users\">\n <h3 style=\"margin: 0;\" *ngIf=\"users.length > 0; else NO_USERS\">Connected Users</h3>\n <mat-chip-set>\n <mat-chip *ngFor=\"let user of users\">\n {{ user.name }}\n </mat-chip>\n </mat-chip-set>\n <ng-template #NO_USERS>\n <h3 style=\"margin: 0;\">No Users</h3>\n </ng-template>\n\n </div>\n\n <div style=\"margin-top: 1rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n\n <h3 style=\"margin: 0;\">Data Actions</h3>\n <div style=\"display: flex; gap: 1rem; margin-bottom: 1rem;\">\n <button mat-stroked-button (click)=\"onGetData()\">Get Data</button>\n <div style=\"flex:1\"></div>\n <button mat-stroked-button color=\"accent\" (click)=\"onUpdateData(data)\">Update Data</button>\n <button mat-stroked-button color=\"warn\" (click)=\"onRemoveData(data)\">Remove Data</button>\n <button mat-stroked-button color=\"primary\" (click)=\"onAddData()\">Add Data</button>\n </div>\n\n <div *ngIf=\"data.length > 0; else NO_DATA\">\n\n <table mat-table [dataSource]=\"data\" style=\"border: 1px solid grey;\">\n <ng-container matColumnDef=\"id\">\n <th mat-header-cell *matHeaderCellDef> ID </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.id}} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"spiffe\">\n <th mat-header-cell *matHeaderCellDef> Spiffe </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.spiffe}} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"name\">\n <th mat-header-cell *matHeaderCellDef> Name </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.first_name}} {{element.last_name}}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"email\">\n <th mat-header-cell *matHeaderCellDef> Email </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.email}} </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"['id', 'spiffe', 'name', 'email']\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['id', 'spiffe', 'name', 'email'];\"></tr>\n </table>\n\n <div style=\"border: 1px solid grey; padding: .5rem; border-top: none;\">\n <h3 style=\"margin: 0;\">Total Records {{ data.length }}</h3>\n </div>\n\n </div>\n <ng-template #NO_DATA>\n <div style=\"margin-top: 1rem; font-style: italic;\">\n No Data Available\n </div>\n </ng-template>\n\n</div>\n" }]
|
|
48
|
-
}], propDecorators: { server: [{
|
|
49
|
-
type: Input
|
|
50
|
-
}], wsServer: [{
|
|
51
|
-
type: Input
|
|
52
|
-
}], jwtToken: [{
|
|
53
|
-
type: Input
|
|
54
|
-
}], user: [{
|
|
55
|
-
type: Input
|
|
56
|
-
}] } });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MtZGF0YS1jb250cm9sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLXdzLWRlbW8vY29tcG9uZW50cy93cy1kYXRhLWNvbnRyb2wvd3MtZGF0YS1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLXdzLWRlbW8vY29tcG9uZW50cy93cy1kYXRhLWNvbnRyb2wvd3MtZGF0YS1jb250cm9sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFNUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7QUFPakYsTUFBTSxPQUFPLHNCQUFzQjtJQUxuQztRQVlFLDRCQUF1QixHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO1FBRXpELFVBQUssR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFBO1FBQzFDLFdBQU0sR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFBO1FBRS9DLFVBQUssR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDO0tBb0M1QztJQWxDQyxRQUFRO1FBQ04sSUFBSSxDQUFDLHVCQUF1QixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDeEMsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDeEMsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDeEMsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFXO1FBRXRCLE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFFcEMsTUFBTSxPQUFPLEdBQUc7WUFDZCxRQUFRLEVBQUUsNEJBQTRCLEdBQUcsRUFBRTtZQUMzQyxJQUFJLEVBQUUsRUFBRTtZQUNSLFdBQVcsRUFBRSxNQUFNO1lBQ25CLE9BQU8sRUFBRSxzQkFBc0I7WUFDL0IsWUFBWSxFQUFFLE1BQU07U0FDckIsQ0FBQTtRQUVELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUE7SUFFbEQsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFTO1FBQ3BCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ3BDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDbEQsQ0FBQzsrR0E5Q1Usc0JBQXNCO21HQUF0QixzQkFBc0IsbUpDVm5DLDhoRkFtRUE7OzRGRHpEYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UscUJBQXFCOzhCQU10QixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSYW5kb21OdW1iZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy91dGlscy9lbmNyeXB0aW9uL3JhbmRvbSc7XG5cbmltcG9ydCB7IFN0YXRlRGF0YVJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc3RhdGUtZGF0YS1yZXF1ZXN0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtd3MtZGF0YS1jb250cm9sJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dzLWRhdGEtY29udHJvbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dzLWRhdGEtY29udHJvbC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgV3NEYXRhQ29udHJvbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgc2VydmVyITogc3RyaW5nO1xuICBASW5wdXQoKSB3c1NlcnZlciE6IHN0cmluZztcbiAgQElucHV0KCkgand0VG9rZW4hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHVzZXIhOiBhbnk7XG5cbiAgc3RhdGVEYXRhUmVxdWVzdFNlcnZpY2UgPSBpbmplY3QoU3RhdGVEYXRhUmVxdWVzdFNlcnZpY2UpXG5cbiAgdXNlciQgPSB0aGlzLnN0YXRlRGF0YVJlcXVlc3RTZXJ2aWNlLnVzZXIkXG4gIHVzZXJzJCA9IHRoaXMuc3RhdGVEYXRhUmVxdWVzdFNlcnZpY2UudXNlckxpc3QkXG5cbiAgZGF0YSQgPSB0aGlzLnN0YXRlRGF0YVJlcXVlc3RTZXJ2aWNlLmRhdGEkO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc3RhdGVEYXRhUmVxdWVzdFNlcnZpY2UudXBkYXRlQ29ubmVjdGlvbih0aGlzLnNlcnZlciwgdGhpcy53c1NlcnZlciwgdGhpcy5qd3RUb2tlbiwgdGhpcy51c2VyKTtcbiAgICB0aGlzLnN0YXRlRGF0YVJlcXVlc3RTZXJ2aWNlLmdldERhdGEoKVxuICB9XG5cbiAgb25HZXREYXRhKCkge1xuICAgIHRoaXMuc3RhdGVEYXRhUmVxdWVzdFNlcnZpY2UuZ2V0RGF0YSgpXG4gIH1cblxuICBvbkFkZERhdGEoKSB7XG4gICAgdGhpcy5zdGF0ZURhdGFSZXF1ZXN0U2VydmljZS5hZGREYXRhKClcbiAgfVxuXG4gIG9uVXBkYXRlRGF0YShkYXRhOiBhbnlbXSkge1xuXG4gICAgY29uc3QgbnVtID0gUmFuZG9tTnVtYmVyKDEwMDAsIDk5OTkpXG5cbiAgICBjb25zdCBuZXdEYXRhID0ge1xuICAgICAgXCJzcGlmZmVcIjogYHdhdmVjb2RlcnMuY29tL2RldmVsb3Blci8ke251bX1gLFxuICAgICAgXCJpZFwiOiA2MyxcbiAgICAgIFwibGFzdF9uYW1lXCI6IFwiYm9uaVwiLFxuICAgICAgXCJlbWFpbFwiOiBcIm1pa2Vib25pQGhvdG1haWwuY29tXCIsXG4gICAgICBcImZpcnN0X25hbWVcIjogXCJtaWtlXCJcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlRGF0YVJlcXVlc3RTZXJ2aWNlLnVwZGF0ZURhdGEobmV3RGF0YSlcblxuICB9XG5cbiAgb25SZW1vdmVEYXRhKGRhdGE6IGFueSkge1xuICAgIGNvbnN0IGxhc3RSZWMgPSBkYXRhW2RhdGEubGVuZ3RoIC0xXVxuICAgIHRoaXMuc3RhdGVEYXRhUmVxdWVzdFNlcnZpY2UuZGVsZXRlRGF0YShsYXN0UmVjKVxuICB9XG5cbn1cbiIsIjxkaXYgKm5nSWY9XCIoZGF0YSQgfCBhc3luYykgYXMgZGF0YVwiIHN0eWxlPVwibWFyZ2luOiAxcmVtO1wiPlxuXG4gIDxkaXYgKm5nSWY9XCIodXNlcnMkIHxhc3luYykgYXMgdXNlcnNcIj5cbiAgICA8aDMgc3R5bGU9XCJtYXJnaW46IDA7XCIgKm5nSWY9XCJ1c2Vycy5sZW5ndGggPiAwOyBlbHNlIE5PX1VTRVJTXCI+Q29ubmVjdGVkIFVzZXJzPC9oMz5cbiAgICA8bWF0LWNoaXAtc2V0PlxuICAgICAgPG1hdC1jaGlwICpuZ0Zvcj1cImxldCB1c2VyIG9mIHVzZXJzXCI+XG4gICAgICAgIHt7IHVzZXIubmFtZSB9fVxuICAgICAgPC9tYXQtY2hpcD5cbiAgICA8L21hdC1jaGlwLXNldD5cbiAgICA8bmctdGVtcGxhdGUgI05PX1VTRVJTPlxuICAgICAgPGgzIHN0eWxlPVwibWFyZ2luOiAwO1wiPk5vIFVzZXJzPC9oMz5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gIDwvZGl2PlxuXG4gIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiAxcmVtOyBtYXJnaW4tYm90dG9tOiAxcmVtO1wiPlxuICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICA8L2Rpdj5cblxuICA8aDMgc3R5bGU9XCJtYXJnaW46IDA7XCI+RGF0YSBBY3Rpb25zPC9oMz5cbiAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGdhcDogMXJlbTsgbWFyZ2luLWJvdHRvbTogMXJlbTtcIj5cbiAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwib25HZXREYXRhKClcIj5HZXQgRGF0YTwvYnV0dG9uPlxuICAgIDxkaXYgc3R5bGU9XCJmbGV4OjFcIj48L2Rpdj5cbiAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIChjbGljayk9XCJvblVwZGF0ZURhdGEoZGF0YSlcIj5VcGRhdGUgRGF0YTwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwid2FyblwiIChjbGljayk9XCJvblJlbW92ZURhdGEoZGF0YSlcIj5SZW1vdmUgRGF0YTwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJvbkFkZERhdGEoKVwiPkFkZCBEYXRhPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9XCJkYXRhLmxlbmd0aCA+IDA7IGVsc2UgTk9fREFUQVwiPlxuXG4gICAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cImRhdGFcIiBzdHlsZT1cImJvcmRlcjogMXB4IHNvbGlkIGdyZXk7XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaWRcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gSUQgPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LmlkfX0gPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzcGlmZmVcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gU3BpZmZlIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudC5zcGlmZmV9fSA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIm5hbWVcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gTmFtZSA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQuZmlyc3RfbmFtZX19IHt7ZWxlbWVudC5sYXN0X25hbWV9fTwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZW1haWxcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gRW1haWwgPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LmVtYWlsfX0gPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJbJ2lkJywgJ3NwaWZmZScsICduYW1lJywgJ2VtYWlsJ11cIj48L3RyPlxuICAgICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogWydpZCcsICdzcGlmZmUnLCAnbmFtZScsICdlbWFpbCddO1wiPjwvdHI+XG4gICAgICA8L3RhYmxlPlxuXG4gICAgICA8ZGl2IHN0eWxlPVwiYm9yZGVyOiAxcHggc29saWQgZ3JleTsgcGFkZGluZzogLjVyZW07IGJvcmRlci10b3A6IG5vbmU7XCI+XG4gICAgICAgIDxoMyBzdHlsZT1cIm1hcmdpbjogMDtcIj5Ub3RhbCBSZWNvcmRzIHt7IGRhdGEubGVuZ3RoIH19PC9oMz5cbiAgICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuICA8bmctdGVtcGxhdGUgI05PX0RBVEE+XG4gICAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDFyZW07IGZvbnQtc3R5bGU6IGl0YWxpYztcIj5cbiAgICAgIE5vIERhdGEgQXZhaWxhYmxlXG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG5cbjwvZGl2PlxuIl19
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { Component, inject, Input } from '@angular/core';
|
|
2
|
-
import { StateRequestServiceDemo } from '../../services/state-request-demo.service';
|
|
3
|
-
import { FormBuilder, Validators } from '@angular/forms';
|
|
4
|
-
import { ChannelMessage, CommunicationType } from '../../../..';
|
|
5
|
-
import { combineLatest, map, EMPTY } from 'rxjs';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/common";
|
|
8
|
-
import * as i2 from "@angular/forms";
|
|
9
|
-
import * as i3 from "@angular/material/button";
|
|
10
|
-
import * as i4 from "@angular/material/form-field";
|
|
11
|
-
import * as i5 from "@angular/material/select";
|
|
12
|
-
import * as i6 from "@angular/material/core";
|
|
13
|
-
import * as i7 from "@angular/material/input";
|
|
14
|
-
export class WsMessagingComponent {
|
|
15
|
-
constructor() {
|
|
16
|
-
this.fb = inject(FormBuilder);
|
|
17
|
-
this.stateRequestServiceDemo = inject(StateRequestServiceDemo);
|
|
18
|
-
this.user$ = this.stateRequestServiceDemo.user$;
|
|
19
|
-
this.users$ = this.stateRequestServiceDemo.userList$;
|
|
20
|
-
this.data$ = this.stateRequestServiceDemo.data$;
|
|
21
|
-
this.messages = this.fb.group({
|
|
22
|
-
toUser: this.fb.control(null, Validators.required),
|
|
23
|
-
content: this.fb.control(null, Validators.required),
|
|
24
|
-
});
|
|
25
|
-
this.communicationMessages$ = this.stateRequestServiceDemo.communicationMessages$;
|
|
26
|
-
this.latestCommunicationMessages$ = this.stateRequestServiceDemo.latestCommunicationMessages$;
|
|
27
|
-
this.chat$ = combineLatest([this.user$, this.communicationMessages$])
|
|
28
|
-
.pipe(map(([user, messages]) => ({ user, messages })), map(obj => {
|
|
29
|
-
if (!obj.user)
|
|
30
|
-
return EMPTY;
|
|
31
|
-
// const mainUser = UserName.adapt({
|
|
32
|
-
// id: obj.user.username,
|
|
33
|
-
// first: obj.user?.name?.first,
|
|
34
|
-
// last: obj.user?.name?.last,
|
|
35
|
-
// })
|
|
36
|
-
const mainUser = '';
|
|
37
|
-
const messages = obj.messages.map((item) => {
|
|
38
|
-
if (item.toUser === 'allChannels') {
|
|
39
|
-
// item.toUser = UserName.adapt({
|
|
40
|
-
// id: '',
|
|
41
|
-
// first: 'All Users',
|
|
42
|
-
// last: '',
|
|
43
|
-
// })
|
|
44
|
-
}
|
|
45
|
-
// return Message.adapt({
|
|
46
|
-
// fromUser: {
|
|
47
|
-
// id: item.fromUser.username,
|
|
48
|
-
// first: item.fromUser?.name?.first,
|
|
49
|
-
// last: item.fromUser?.name?.last,
|
|
50
|
-
// },
|
|
51
|
-
// toUser: {
|
|
52
|
-
// id: item.toUser.username,
|
|
53
|
-
// first: item.toUser?.name?.first,
|
|
54
|
-
// last: item.toUser?.name?.last,
|
|
55
|
-
// },
|
|
56
|
-
// content: item.content,
|
|
57
|
-
// date: item.issued,
|
|
58
|
-
// })
|
|
59
|
-
});
|
|
60
|
-
return { user: mainUser, messages };
|
|
61
|
-
}));
|
|
62
|
-
}
|
|
63
|
-
get toUser() {
|
|
64
|
-
return this.messages.get('toUser');
|
|
65
|
-
}
|
|
66
|
-
get content() {
|
|
67
|
-
return this.messages.get('content');
|
|
68
|
-
}
|
|
69
|
-
get isValid() {
|
|
70
|
-
return this.toUser.valid;
|
|
71
|
-
}
|
|
72
|
-
ngOnInit() {
|
|
73
|
-
this.stateRequestServiceDemo.updateConnection(this.server, this.wsServer, this.jwtToken, this.user);
|
|
74
|
-
// this.stateRequestServiceDemo.getData()
|
|
75
|
-
}
|
|
76
|
-
onSendMessage() {
|
|
77
|
-
this.messages.markAllAsTouched();
|
|
78
|
-
if (this.messages.invalid)
|
|
79
|
-
return;
|
|
80
|
-
const message = ChannelMessage.adapt(this.messages.value);
|
|
81
|
-
this.stateRequestServiceDemo.sendMessage(message);
|
|
82
|
-
this.content.reset();
|
|
83
|
-
}
|
|
84
|
-
onSendAlert() {
|
|
85
|
-
this.messages.markAllAsTouched();
|
|
86
|
-
if (this.messages.invalid)
|
|
87
|
-
return;
|
|
88
|
-
const message = ChannelMessage.adapt({ ...this.messages.value, type: CommunicationType.ALERT });
|
|
89
|
-
this.stateRequestServiceDemo.sendMessage(message);
|
|
90
|
-
this.content.reset();
|
|
91
|
-
}
|
|
92
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WsMessagingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
93
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: WsMessagingComponent, selector: "app-ws-messaging", inputs: { server: "server", wsServer: "wsServer", jwtToken: "jwtToken", user: "user" }, ngImport: i0, template: "<div *ngIf=\"(data$ | async) as data\" style=\"margin: 1rem; display: flex; gap: 1rem; flex-direction: column;\">\n\n <div *ngIf=\"(user$ | async) as userInfo\">\n\n <div *ngIf=\"(users$ | async) as users\">\n\n <div style=\"display: flex; gap: 1rem\">\n\n <div style=\"flex:1\" [formGroup]=\"messages\">\n <div style=\"display:flex\">\n <mat-form-field style=\"flex:1\" appearance=\"outline\">\n <mat-label>Users</mat-label>\n <mat-select formControlName=\"toUser\">\n <mat-option value=\"allChannels\" #selectedUser>\n All Users\n </mat-option>\n <mat-option *ngFor=\"let user of users\" [value]=\"user\">\n {{ user.username }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div style=\"display:flex\">\n <mat-form-field style=\"flex:1\" appearance=\"outline\">\n <mat-label>Send a Message</mat-label>\n <textarea\n matInput placeholder=\"Ex. It makes me feel...\"\n formControlName=\"content\"\n (keydown.enter)=\"onSendMessage(); $event.preventDefault()\"\n [disabled]=\"!isValid\"\n ></textarea>\n </mat-form-field>\n </div>\n <div style=\"display:flex; gap: .5rem;\">\n <div style=\"flex:1\"></div>\n <button mat-stroked-button (click)=\"onSendMessage()\" color=\"warn\">\n Send Alert\n </button>\n <button mat-stroked-button (click)=\"onSendAlert()\">\n Send Message\n </button>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"(chat$ | async) as chat\" style=\"border: thin gray solid; padding: 1rem; margin-top: 1rem;\">\n <!-- <app-messenger-chat\n [user]=\"chat.user\"\n [messages]=\"chat.messages\"\n ></app-messenger-chat> -->\n </div>\n\n </div>\n\n </div>\n\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { 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"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
|
|
94
|
-
}
|
|
95
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WsMessagingComponent, decorators: [{
|
|
96
|
-
type: Component,
|
|
97
|
-
args: [{ selector: 'app-ws-messaging', template: "<div *ngIf=\"(data$ | async) as data\" style=\"margin: 1rem; display: flex; gap: 1rem; flex-direction: column;\">\n\n <div *ngIf=\"(user$ | async) as userInfo\">\n\n <div *ngIf=\"(users$ | async) as users\">\n\n <div style=\"display: flex; gap: 1rem\">\n\n <div style=\"flex:1\" [formGroup]=\"messages\">\n <div style=\"display:flex\">\n <mat-form-field style=\"flex:1\" appearance=\"outline\">\n <mat-label>Users</mat-label>\n <mat-select formControlName=\"toUser\">\n <mat-option value=\"allChannels\" #selectedUser>\n All Users\n </mat-option>\n <mat-option *ngFor=\"let user of users\" [value]=\"user\">\n {{ user.username }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div style=\"display:flex\">\n <mat-form-field style=\"flex:1\" appearance=\"outline\">\n <mat-label>Send a Message</mat-label>\n <textarea\n matInput placeholder=\"Ex. It makes me feel...\"\n formControlName=\"content\"\n (keydown.enter)=\"onSendMessage(); $event.preventDefault()\"\n [disabled]=\"!isValid\"\n ></textarea>\n </mat-form-field>\n </div>\n <div style=\"display:flex; gap: .5rem;\">\n <div style=\"flex:1\"></div>\n <button mat-stroked-button (click)=\"onSendMessage()\" color=\"warn\">\n Send Alert\n </button>\n <button mat-stroked-button (click)=\"onSendAlert()\">\n Send Message\n </button>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"(chat$ | async) as chat\" style=\"border: thin gray solid; padding: 1rem; margin-top: 1rem;\">\n <!-- <app-messenger-chat\n [user]=\"chat.user\"\n [messages]=\"chat.messages\"\n ></app-messenger-chat> -->\n </div>\n\n </div>\n\n </div>\n\n</div>\n" }]
|
|
98
|
-
}], propDecorators: { server: [{
|
|
99
|
-
type: Input
|
|
100
|
-
}], wsServer: [{
|
|
101
|
-
type: Input
|
|
102
|
-
}], jwtToken: [{
|
|
103
|
-
type: Input
|
|
104
|
-
}], user: [{
|
|
105
|
-
type: Input
|
|
106
|
-
}] } });
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MtbWVzc2FnaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLXdzLWRlbW8vY29tcG9uZW50cy93cy1tZXNzYWdpbmcvd3MtbWVzc2FnaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLXdzLWRlbW8vY29tcG9uZW50cy93cy1tZXNzYWdpbmcvd3MtbWVzc2FnaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEUsT0FBTyxFQUFjLGFBQWEsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUFPN0QsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQVlFLE9BQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDeEIsNEJBQXVCLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUE7UUFFekQsVUFBSyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUE7UUFDMUMsV0FBTSxHQUFHLElBQUksQ0FBQyx1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Q3pELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUN0QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtRQUNoQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTztZQUFFLE9BQU07UUFDakMsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUE7UUFDL0YsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ3RCLENBQUM7K0dBcEdVLG9CQUFvQjttR0FBcEIsb0JBQW9CLGdKQ1hqQyxraUVBeURBOzs0RkQ5Q2Esb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQjs4QkFNbkIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RhdGVSZXF1ZXN0U2VydmljZURlbW8gfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdGF0ZS1yZXF1ZXN0LWRlbW8uc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDaGFubmVsTWVzc2FnZSwgQ29tbXVuaWNhdGlvblR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBtYXAsIEVNUFRZIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC13cy1tZXNzYWdpbmcnLFxuICB0ZW1wbGF0ZVVybDogJy4vd3MtbWVzc2FnaW5nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd3MtbWVzc2FnaW5nLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBXc01lc3NhZ2luZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgc2VydmVyITogc3RyaW5nO1xuICBASW5wdXQoKSB3c1NlcnZlciE6IHN0cmluZztcbiAgQElucHV0KCkgand0VG9rZW4hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHVzZXIhOiBhbnk7XG5cbiAgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpXG4gIHN0YXRlUmVxdWVzdFNlcnZpY2VEZW1vID0gaW5qZWN0KFN0YXRlUmVxdWVzdFNlcnZpY2VEZW1vKVxuXG4gIHVzZXIkID0gdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby51c2VyJFxuICB1c2VycyQgPSB0aGlzLnN0YXRlUmVxdWVzdFNlcnZpY2VEZW1vLnVzZXJMaXN0JFxuXG4gIGRhdGEkID0gdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby5kYXRhJDtcblxuICBtZXNzYWdlcyA9IHRoaXMuZmIuZ3JvdXA8YW55Pih7XG4gICAgdG9Vc2VyOiB0aGlzLmZiLmNvbnRyb2w8c3RyaW5nfG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgIGNvbnRlbnQ6IHRoaXMuZmIuY29udHJvbDxzdHJpbmd8bnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gIH0pXG5cbiAgZ2V0IHRvVXNlcigpIHtcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlcy5nZXQoJ3RvVXNlcicpIGFzIEZvcm1Db250cm9sXG4gIH1cblxuICBnZXQgY29udGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlcy5nZXQoJ2NvbnRlbnQnKSBhcyBGb3JtQ29udHJvbFxuICB9XG5cbiAgZ2V0IGlzVmFsaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9Vc2VyLnZhbGlkXG4gIH1cblxuICBjb21tdW5pY2F0aW9uTWVzc2FnZXMkID0gdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby5jb21tdW5pY2F0aW9uTWVzc2FnZXMkXG4gIGxhdGVzdENvbW11bmljYXRpb25NZXNzYWdlcyQgPSB0aGlzLnN0YXRlUmVxdWVzdFNlcnZpY2VEZW1vLmxhdGVzdENvbW11bmljYXRpb25NZXNzYWdlcyRcblxuICBjaGF0JDogT2JzZXJ2YWJsZTx7IHVzZXI6IGFueSwgbWVzc2FnZXM6IGFueVtdfXxhbnk+ID0gY29tYmluZUxhdGVzdChbdGhpcy51c2VyJCwgdGhpcy5jb21tdW5pY2F0aW9uTWVzc2FnZXMkXSlcbiAgLnBpcGUoXG4gICAgbWFwKChbdXNlciwgbWVzc2FnZXNdOiBhbnkpID0+ICh7IHVzZXIsIG1lc3NhZ2VzIH0pKSxcbiAgICBtYXAob2JqID0+IHtcblxuICAgICAgaWYoIW9iai51c2VyKSByZXR1cm4gRU1QVFlcblxuICAgICAgLy8gY29uc3QgbWFpblVzZXIgPSBVc2VyTmFtZS5hZGFwdCh7XG4gICAgICAvLyAgICAgaWQ6IG9iai51c2VyLnVzZXJuYW1lLFxuICAgICAgLy8gICAgIGZpcnN0OiBvYmoudXNlcj8ubmFtZT8uZmlyc3QsXG4gICAgICAvLyAgICAgbGFzdDogb2JqLnVzZXI/Lm5hbWU/Lmxhc3QsXG4gICAgICAvLyB9KVxuXG4gICAgICBjb25zdCBtYWluVXNlciA9ICcnXG5cbiAgICAgIGNvbnN0IG1lc3NhZ2VzID0gb2JqLm1lc3NhZ2VzLm1hcCgoaXRlbTogYW55KSA9PiB7XG5cbiAgICAgICAgaWYoaXRlbS50b1VzZXIgPT09ICdhbGxDaGFubmVscycpIHtcbiAgICAgICAgICAvLyBpdGVtLnRvVXNlciA9IFVzZXJOYW1lLmFkYXB0KHtcbiAgICAgICAgICAvLyAgICAgaWQ6ICcnLFxuICAgICAgICAgIC8vICAgICBmaXJzdDogJ0FsbCBVc2VycycsXG4gICAgICAgICAgLy8gICAgIGxhc3Q6ICcnLFxuICAgICAgICAgIC8vIH0pXG4gICAgICAgIH1cblxuICAgICAgICAvLyByZXR1cm4gTWVzc2FnZS5hZGFwdCh7XG4gICAgICAgIC8vICAgICBmcm9tVXNlcjoge1xuICAgICAgICAvLyAgICAgICBpZDogaXRlbS5mcm9tVXNlci51c2VybmFtZSxcbiAgICAgICAgLy8gICAgICAgZmlyc3Q6IGl0ZW0uZnJvbVVzZXI/Lm5hbWU/LmZpcnN0LFxuICAgICAgICAvLyAgICAgICBsYXN0OiBpdGVtLmZyb21Vc2VyPy5uYW1lPy5sYXN0LFxuICAgICAgICAvLyAgICAgfSxcbiAgICAgICAgLy8gICAgIHRvVXNlcjoge1xuICAgICAgICAvLyAgICAgICBpZDogaXRlbS50b1VzZXIudXNlcm5hbWUsXG4gICAgICAgIC8vICAgICAgIGZpcnN0OiBpdGVtLnRvVXNlcj8ubmFtZT8uZmlyc3QsXG4gICAgICAgIC8vICAgICAgIGxhc3Q6IGl0ZW0udG9Vc2VyPy5uYW1lPy5sYXN0LFxuICAgICAgICAvLyAgICAgfSxcbiAgICAgICAgLy8gICAgIGNvbnRlbnQ6IGl0ZW0uY29udGVudCxcbiAgICAgICAgLy8gICAgIGRhdGU6IGl0ZW0uaXNzdWVkLFxuICAgICAgICAvLyB9KVxuICAgICAgfSlcblxuICAgICAgcmV0dXJuIHsgdXNlcjogbWFpblVzZXIsIG1lc3NhZ2VzIH1cblxuICAgIH0pXG4gICk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby51cGRhdGVDb25uZWN0aW9uKHRoaXMuc2VydmVyLCB0aGlzLndzU2VydmVyLCB0aGlzLmp3dFRva2VuLCB0aGlzLnVzZXIpO1xuICAgIC8vIHRoaXMuc3RhdGVSZXF1ZXN0U2VydmljZURlbW8uZ2V0RGF0YSgpXG4gIH1cblxuICBvblNlbmRNZXNzYWdlKCkge1xuICAgIHRoaXMubWVzc2FnZXMubWFya0FsbEFzVG91Y2hlZCgpXG4gICAgaWYgKHRoaXMubWVzc2FnZXMuaW52YWxpZCkgcmV0dXJuXG4gICAgY29uc3QgbWVzc2FnZSA9IENoYW5uZWxNZXNzYWdlLmFkYXB0KHRoaXMubWVzc2FnZXMudmFsdWUpXG4gICAgdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby5zZW5kTWVzc2FnZShtZXNzYWdlKVxuICAgIHRoaXMuY29udGVudC5yZXNldCgpXG4gIH1cblxuICBvblNlbmRBbGVydCgpIHtcbiAgICB0aGlzLm1lc3NhZ2VzLm1hcmtBbGxBc1RvdWNoZWQoKVxuICAgIGlmICh0aGlzLm1lc3NhZ2VzLmludmFsaWQpIHJldHVyblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBDaGFubmVsTWVzc2FnZS5hZGFwdCh7IC4uLnRoaXMubWVzc2FnZXMudmFsdWUsIHR5cGU6IENvbW11bmljYXRpb25UeXBlLkFMRVJUIH0pXG4gICAgdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby5zZW5kTWVzc2FnZShtZXNzYWdlKVxuICAgIHRoaXMuY29udGVudC5yZXNldCgpXG4gIH1cblxufVxuIiwiPGRpdiAqbmdJZj1cIihkYXRhJCB8IGFzeW5jKSBhcyBkYXRhXCIgc3R5bGU9XCJtYXJnaW46IDFyZW07IGRpc3BsYXk6IGZsZXg7IGdhcDogMXJlbTsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcIj5cblxuICA8ZGl2ICpuZ0lmPVwiKHVzZXIkIHwgYXN5bmMpIGFzIHVzZXJJbmZvXCI+XG5cbiAgICA8ZGl2ICAqbmdJZj1cIih1c2VycyQgfCBhc3luYykgYXMgdXNlcnNcIj5cblxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGdhcDogMXJlbVwiPlxuXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4OjFcIiBbZm9ybUdyb3VwXT1cIm1lc3NhZ2VzXCI+XG4gICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6ZmxleFwiPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwiZmxleDoxXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgICAgPG1hdC1sYWJlbD5Vc2VyczwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJ0b1VzZXJcIj5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cImFsbENoYW5uZWxzXCIgI3NlbGVjdGVkVXNlcj5cbiAgICAgICAgICAgICAgICAgIEFsbCBVc2Vyc1xuICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdXNlciBvZiB1c2Vyc1wiIFt2YWx1ZV09XCJ1c2VyXCI+XG4gICAgICAgICAgICAgICAgICB7eyB1c2VyLnVzZXJuYW1lIH19XG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OmZsZXhcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBzdHlsZT1cImZsZXg6MVwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgIDxtYXQtbGFiZWw+U2VuZCBhIE1lc3NhZ2U8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJFeC4gSXQgbWFrZXMgbWUgZmVlbC4uLlwiXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29udGVudFwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25TZW5kTWVzc2FnZSgpOyAkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc1ZhbGlkXCJcbiAgICAgICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OmZsZXg7IGdhcDogLjVyZW07XCI+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleDoxXCI+PC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwib25TZW5kTWVzc2FnZSgpXCIgY29sb3I9XCJ3YXJuXCI+XG4gICAgICAgICAgICAgIFNlbmQgQWxlcnRcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cIm9uU2VuZEFsZXJ0KClcIj5cbiAgICAgICAgICAgICAgU2VuZCBNZXNzYWdlXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cIihjaGF0JCB8IGFzeW5jKSBhcyBjaGF0XCIgc3R5bGU9XCJib3JkZXI6IHRoaW4gZ3JheSBzb2xpZDsgcGFkZGluZzogMXJlbTsgbWFyZ2luLXRvcDogMXJlbTtcIj5cbiAgICAgICAgPCEtLSA8YXBwLW1lc3Nlbmdlci1jaGF0XG4gICAgICAgICAgW3VzZXJdPVwiY2hhdC51c2VyXCJcbiAgICAgICAgICBbbWVzc2FnZXNdPVwiY2hhdC5tZXNzYWdlc1wiXG4gICAgICAgID48L2FwcC1tZXNzZW5nZXItY2hhdD4gLS0+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuXG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class WsNotificationsComponent {
|
|
4
|
-
constructor() { }
|
|
5
|
-
ngOnInit() {
|
|
6
|
-
}
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WsNotificationsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: WsNotificationsComponent, selector: "app-ws-notifications", ngImport: i0, template: "<p>\n ws-notifications works!\n</p>\n", styles: [""] }); }
|
|
9
|
-
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WsNotificationsComponent, decorators: [{
|
|
11
|
-
type: Component,
|
|
12
|
-
args: [{ selector: 'app-ws-notifications', template: "<p>\n ws-notifications works!\n</p>\n" }]
|
|
13
|
-
}], ctorParameters: () => [] });
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3Mtbm90aWZpY2F0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vL3JlcXVlc3QtbWFuYWdlci13cy1kZW1vL2NvbXBvbmVudHMvd3Mtbm90aWZpY2F0aW9ucy93cy1ub3RpZmljYXRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLXdzLWRlbW8vY29tcG9uZW50cy93cy1ub3RpZmljYXRpb25zL3dzLW5vdGlmaWNhdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFPbEQsTUFBTSxPQUFPLHdCQUF3QjtJQUVuQyxnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzsrR0FMVSx3QkFBd0I7bUdBQXhCLHdCQUF3Qiw0RENQckMsd0NBR0E7OzRGRElhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtd3Mtbm90aWZpY2F0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi93cy1ub3RpZmljYXRpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd3Mtbm90aWZpY2F0aW9ucy5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgV3NOb3RpZmljYXRpb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbn1cbiIsIjxwPlxuICB3cy1ub3RpZmljYXRpb25zIHdvcmtzIVxuPC9wPlxuIl19
|
package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/models/oidc-client.model.mjs
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export class OIDCClient {
|
|
2
|
-
constructor(spiffe = '', id = 0, first_name = '', last_name = '', email = '') {
|
|
3
|
-
this.spiffe = spiffe;
|
|
4
|
-
this.id = id;
|
|
5
|
-
this.first_name = first_name;
|
|
6
|
-
this.last_name = last_name;
|
|
7
|
-
this.email = email;
|
|
8
|
-
}
|
|
9
|
-
static adapt(item) {
|
|
10
|
-
return new OIDCClient(item?.spiffe, item?.id, item?.first_name, item?.last_name, item?.email);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy1jbGllbnQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vL3JlcXVlc3QtbWFuYWdlci13cy1kZW1vL21vZGVscy9vaWRjLWNsaWVudC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLE9BQU8sVUFBVTtJQUVyQixZQUNTLFNBQWlCLEVBQUUsRUFDbkIsS0FBYSxDQUFDLEVBQ2QsYUFBcUIsRUFBRSxFQUN2QixZQUFvQixFQUFFLEVBQ3RCLFFBQWdCLEVBQUU7UUFKbEIsV0FBTSxHQUFOLE1BQU0sQ0FBYTtRQUNuQixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsZUFBVSxHQUFWLFVBQVUsQ0FBYTtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFhO1FBQ3RCLFVBQUssR0FBTCxLQUFLLENBQWE7SUFDeEIsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBVTtRQUVyQixPQUFPLElBQUksVUFBVSxDQUNuQixJQUFJLEVBQUUsTUFBTSxFQUNaLElBQUksRUFBRSxFQUFFLEVBQ1IsSUFBSSxFQUFFLFVBQVUsRUFDaEIsSUFBSSxFQUFFLFNBQVMsRUFDZixJQUFJLEVBQUUsS0FBSyxDQUNaLENBQUE7SUFFSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIE9JRENDbGllbnRJbnRlcmZhY2Uge1xuICBzcGlmZmU6IHN0cmluZ1xuICBpZDogbnVtYmVyXG4gIGZpcnN0X25hbWU6IHN0cmluZ1xuICBsYXN0X25hbWU6IHN0cmluZ1xuICBlbWFpbDogc3RyaW5nXG59XG5cbmV4cG9ydCBjbGFzcyBPSURDQ2xpZW50IGltcGxlbWVudHMgT0lEQ0NsaWVudEludGVyZmFjZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHNwaWZmZTogc3RyaW5nID0gJycsXG4gICAgcHVibGljIGlkOiBudW1iZXIgPSAwLFxuICAgIHB1YmxpYyBmaXJzdF9uYW1lOiBzdHJpbmcgPSAnJyxcbiAgICBwdWJsaWMgbGFzdF9uYW1lOiBzdHJpbmcgPSAnJyxcbiAgICBwdWJsaWMgZW1haWw6IHN0cmluZyA9ICcnLFxuICApIHt9XG5cbiAgc3RhdGljIGFkYXB0KGl0ZW0/OiBhbnkpOiBPSURDQ2xpZW50IHtcblxuICAgIHJldHVybiBuZXcgT0lEQ0NsaWVudChcbiAgICAgIGl0ZW0/LnNwaWZmZSxcbiAgICAgIGl0ZW0/LmlkLFxuICAgICAgaXRlbT8uZmlyc3RfbmFtZSxcbiAgICAgIGl0ZW0/Lmxhc3RfbmFtZSxcbiAgICAgIGl0ZW0/LmVtYWlsLFxuICAgIClcblxuICB9XG5cbn1cbiJdfQ==
|
package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/models/user-data.model.mjs
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export class UserData {
|
|
2
|
-
constructor(ldap = '', name = '', email = '') {
|
|
3
|
-
this.ldap = ldap;
|
|
4
|
-
this.name = name;
|
|
5
|
-
this.email = email;
|
|
6
|
-
}
|
|
7
|
-
static adapt(item) {
|
|
8
|
-
const userName = `${item?.first_name} ${item?.last_name}`;
|
|
9
|
-
return new UserData(item?.ldap, userName, item?.email);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1kYXRhLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9odHRwLXJlcXVlc3Qtc2VydmljZXMtZGVtby9yZXF1ZXN0LW1hbmFnZXItd3MtZGVtby9tb2RlbHMvdXNlci1kYXRhLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sT0FBTyxRQUFRO0lBRW5CLFlBQ1MsT0FBTyxFQUFFLEVBQ1QsT0FBTyxFQUFFLEVBQ1QsUUFBUSxFQUFFO1FBRlYsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNULFNBQUksR0FBSixJQUFJLENBQUs7UUFDVCxVQUFLLEdBQUwsS0FBSyxDQUFLO0lBQ2hCLENBQUM7SUFFSixNQUFNLENBQUMsS0FBSyxDQUFDLElBQVU7UUFFckIsTUFBTSxRQUFRLEdBQUcsR0FBRyxJQUFJLEVBQUUsVUFBVSxJQUFJLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQTtRQUV6RCxPQUFPLElBQUksUUFBUSxDQUNqQixJQUFJLEVBQUUsSUFBSSxFQUNWLFFBQVEsRUFDUixJQUFJLEVBQUUsS0FBSyxDQUNaLENBQUE7SUFFSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFVzZXJEYXRhSW50ZXJmYWNlIHtcbiAgbGRhcDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICBlbWFpbDogc3RyaW5nXG59XG5cbmV4cG9ydCBjbGFzcyBVc2VyRGF0YSBpbXBsZW1lbnRzIFVzZXJEYXRhSW50ZXJmYWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbGRhcCA9ICcnLFxuICAgIHB1YmxpYyBuYW1lID0gJycsXG4gICAgcHVibGljIGVtYWlsID0gJycsXG4gICkge31cblxuICBzdGF0aWMgYWRhcHQoaXRlbT86IGFueSk6IFVzZXJEYXRhIHtcblxuICAgIGNvbnN0IHVzZXJOYW1lID0gYCR7aXRlbT8uZmlyc3RfbmFtZX0gJHtpdGVtPy5sYXN0X25hbWV9YFxuXG4gICAgcmV0dXJuIG5ldyBVc2VyRGF0YShcbiAgICAgIGl0ZW0/LmxkYXAsXG4gICAgICB1c2VyTmFtZSxcbiAgICAgIGl0ZW0/LmVtYWlsLFxuICAgIClcblxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { Component, inject, Input } from '@angular/core';
|
|
2
|
-
import { FormBuilder, Validators } from '@angular/forms';
|
|
3
|
-
import { combineLatest, map, EMPTY } from 'rxjs';
|
|
4
|
-
import { HTTPManagerService, ChannelMessage, CommunicationType } from '../../services';
|
|
5
|
-
import { StateRequestServiceDemo } from './services/state-request-demo.service';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/common";
|
|
8
|
-
import * as i2 from "@angular/material/tabs";
|
|
9
|
-
import * as i3 from "@angular/material/progress-bar";
|
|
10
|
-
import * as i4 from "@angular/material/toolbar";
|
|
11
|
-
import * as i5 from "./components/ws-data-control/ws-data-control.component";
|
|
12
|
-
import * as i6 from "./components/ws-notifications/ws-notifications.component";
|
|
13
|
-
import * as i7 from "./components/ws-ai-messaging/ws-ai-messaging.component";
|
|
14
|
-
export class RequestManagerWsDemoComponent {
|
|
15
|
-
constructor() {
|
|
16
|
-
this.httpManagerService = inject(HTTPManagerService);
|
|
17
|
-
this.stateRequestServiceDemo = inject(StateRequestServiceDemo);
|
|
18
|
-
this.fb = inject(FormBuilder);
|
|
19
|
-
this.user$ = this.stateRequestServiceDemo.user$;
|
|
20
|
-
this.users$ = this.stateRequestServiceDemo.userList$;
|
|
21
|
-
this.attempts$ = this.stateRequestServiceDemo.attempts$;
|
|
22
|
-
this.nextRetry$ = this.stateRequestServiceDemo.nextRetry$;
|
|
23
|
-
this.connectionStatus$ = this.stateRequestServiceDemo.status$;
|
|
24
|
-
this.messages = this.fb.group({
|
|
25
|
-
toUser: this.fb.control(null, Validators.required),
|
|
26
|
-
content: this.fb.control(null, Validators.required),
|
|
27
|
-
});
|
|
28
|
-
this.data$ = this.stateRequestServiceDemo.data$;
|
|
29
|
-
this.isPending$ = this.stateRequestServiceDemo.isPending$;
|
|
30
|
-
this.fromMe = (user, fromUser) => {
|
|
31
|
-
return user === fromUser;
|
|
32
|
-
};
|
|
33
|
-
this.communicationMessages$ = this.stateRequestServiceDemo.communicationMessages$;
|
|
34
|
-
this.latestCommunicationMessages$ = this.stateRequestServiceDemo.latestCommunicationMessages$;
|
|
35
|
-
this.chat$ = combineLatest([this.user$, this.communicationMessages$])
|
|
36
|
-
.pipe(map(([user, messages]) => ({ user, messages })), map(obj => {
|
|
37
|
-
if (!obj.user)
|
|
38
|
-
return EMPTY;
|
|
39
|
-
// const mainUser = UserName.adapt({
|
|
40
|
-
// id: obj.user.username,
|
|
41
|
-
// first: obj.user?.name?.first,
|
|
42
|
-
// last: obj.user?.name?.last,
|
|
43
|
-
// })
|
|
44
|
-
const mainUser = '';
|
|
45
|
-
const messages = obj.messages.map((item) => {
|
|
46
|
-
if (item.toUser === 'allChannels') {
|
|
47
|
-
// item.toUser = UserName.adapt({
|
|
48
|
-
// id: '',
|
|
49
|
-
// first: 'All Users',
|
|
50
|
-
// last: '',
|
|
51
|
-
// })
|
|
52
|
-
}
|
|
53
|
-
// return Message.adapt({
|
|
54
|
-
// fromUser: {
|
|
55
|
-
// id: item.fromUser.username,
|
|
56
|
-
// first: item.fromUser?.name?.first,
|
|
57
|
-
// last: item.fromUser?.name?.last,
|
|
58
|
-
// },
|
|
59
|
-
// toUser: {
|
|
60
|
-
// id: item.toUser.username,
|
|
61
|
-
// first: item.toUser?.name?.first,
|
|
62
|
-
// last: item.toUser?.name?.last,
|
|
63
|
-
// },
|
|
64
|
-
// content: item.content,
|
|
65
|
-
// date: item.issued,
|
|
66
|
-
// })
|
|
67
|
-
});
|
|
68
|
-
return { user: mainUser, messages };
|
|
69
|
-
}));
|
|
70
|
-
}
|
|
71
|
-
get toUser() {
|
|
72
|
-
return this.messages.get('toUser');
|
|
73
|
-
}
|
|
74
|
-
get content() {
|
|
75
|
-
return this.messages.get('content');
|
|
76
|
-
}
|
|
77
|
-
get isValid() {
|
|
78
|
-
return this.toUser.valid;
|
|
79
|
-
}
|
|
80
|
-
ngOnInit() {
|
|
81
|
-
this.stateRequestServiceDemo.updateConnection(this.server, this.wsServer, this.jwtToken, this.user);
|
|
82
|
-
}
|
|
83
|
-
onSendMessage() {
|
|
84
|
-
this.messages.markAllAsTouched();
|
|
85
|
-
if (this.messages.invalid)
|
|
86
|
-
return;
|
|
87
|
-
const message = ChannelMessage.adapt(this.messages.value);
|
|
88
|
-
this.stateRequestServiceDemo.sendMessage(message);
|
|
89
|
-
this.content.reset();
|
|
90
|
-
}
|
|
91
|
-
onSendAlert() {
|
|
92
|
-
this.messages.markAllAsTouched();
|
|
93
|
-
if (this.messages.invalid)
|
|
94
|
-
return;
|
|
95
|
-
const message = ChannelMessage.adapt({ ...this.messages.value, type: CommunicationType.ALERT });
|
|
96
|
-
this.stateRequestServiceDemo.sendMessage(message);
|
|
97
|
-
this.content.reset();
|
|
98
|
-
}
|
|
99
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RequestManagerWsDemoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
100
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RequestManagerWsDemoComponent, selector: "app-request-manager-ws-demo", inputs: { server: "server", wsServer: "wsServer", jwtToken: "jwtToken", user: "user" }, ngImport: i0, template: "<div style=\"margin: 2rem;\">\n\n <h2 style=\"display: flex;\">\n <span style=\"flex:1\">HTTP Request State Manager - Websockets</span>\n <span *ngIf=\"(connectionStatus$ | async) as connected; else NOT_CONNECTED\">\n WS -\n <span style=\"color: green;\">Connected</span>\n </span>\n <ng-template #NOT_CONNECTED>\n <span style=\"color: red;\">Disconnected {{ attempts$ | async }} - {{ nextRetry$ |async }}</span>\n </ng-template>\n </h2>\n\n <div>\n\n <div *ngIf=\"(user$ | async) as userInfo\">\n <mat-toolbar>\n <div style=\"display: flex; flex:1\">\n <div style=\"flex:1\">{{ userInfo.name }}</div>\n <div>({{ user.ldap }})</div>\n </div>\n </mat-toolbar>\n </div>\n\n <div *ngIf=\"(isPending$ | async)\">\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n </div>\n\n <mat-tab-group animationDuration=\"0ms\">\n\n <mat-tab label=\"WS - Data Control\">\n <!-- DATA CONTROL -->\n <app-ws-data-control\n [server]=\"server\"\n [wsServer]=\"wsServer\"\n [jwtToken]=\"jwtToken\"\n [user]=\"user\"\n ></app-ws-data-control>\n\n </mat-tab>\n\n <mat-tab label=\"WS - Messaging\">\n\n <!-- <app-ws-messaging\n [server]=\"server\"\n [wsServer]=\"wsServer\"\n [jwtToken]=\"jwtToken\"\n [user]=\"user\"\n ></app-ws-messaging> -->\n\n </mat-tab>\n\n <mat-tab label=\"WS - Notifications\" [disabled]=\"true\">\n <app-ws-notifications></app-ws-notifications>\n WS - Custom Messaging\n </mat-tab>\n\n <mat-tab label=\"WS - AI Messaging\" [disabled]=\"true\">\n <app-ws-ai-messaging></app-ws-ai-messaging>\n WS - AI Messaging\n </mat-tab>\n\n </mat-tab-group>\n </div>\n\n</div>\n\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: i3.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i5.WsDataControlComponent, selector: "app-ws-data-control", inputs: ["server", "wsServer", "jwtToken", "user"] }, { kind: "component", type: i6.WsNotificationsComponent, selector: "app-ws-notifications" }, { kind: "component", type: i7.WsAiMessagingComponent, selector: "app-ws-ai-messaging" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
|
|
101
|
-
}
|
|
102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RequestManagerWsDemoComponent, decorators: [{
|
|
103
|
-
type: Component,
|
|
104
|
-
args: [{ selector: 'app-request-manager-ws-demo', template: "<div style=\"margin: 2rem;\">\n\n <h2 style=\"display: flex;\">\n <span style=\"flex:1\">HTTP Request State Manager - Websockets</span>\n <span *ngIf=\"(connectionStatus$ | async) as connected; else NOT_CONNECTED\">\n WS -\n <span style=\"color: green;\">Connected</span>\n </span>\n <ng-template #NOT_CONNECTED>\n <span style=\"color: red;\">Disconnected {{ attempts$ | async }} - {{ nextRetry$ |async }}</span>\n </ng-template>\n </h2>\n\n <div>\n\n <div *ngIf=\"(user$ | async) as userInfo\">\n <mat-toolbar>\n <div style=\"display: flex; flex:1\">\n <div style=\"flex:1\">{{ userInfo.name }}</div>\n <div>({{ user.ldap }})</div>\n </div>\n </mat-toolbar>\n </div>\n\n <div *ngIf=\"(isPending$ | async)\">\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n </div>\n\n <mat-tab-group animationDuration=\"0ms\">\n\n <mat-tab label=\"WS - Data Control\">\n <!-- DATA CONTROL -->\n <app-ws-data-control\n [server]=\"server\"\n [wsServer]=\"wsServer\"\n [jwtToken]=\"jwtToken\"\n [user]=\"user\"\n ></app-ws-data-control>\n\n </mat-tab>\n\n <mat-tab label=\"WS - Messaging\">\n\n <!-- <app-ws-messaging\n [server]=\"server\"\n [wsServer]=\"wsServer\"\n [jwtToken]=\"jwtToken\"\n [user]=\"user\"\n ></app-ws-messaging> -->\n\n </mat-tab>\n\n <mat-tab label=\"WS - Notifications\" [disabled]=\"true\">\n <app-ws-notifications></app-ws-notifications>\n WS - Custom Messaging\n </mat-tab>\n\n <mat-tab label=\"WS - AI Messaging\" [disabled]=\"true\">\n <app-ws-ai-messaging></app-ws-ai-messaging>\n WS - AI Messaging\n </mat-tab>\n\n </mat-tab-group>\n </div>\n\n</div>\n\n" }]
|
|
105
|
-
}], propDecorators: { server: [{
|
|
106
|
-
type: Input
|
|
107
|
-
}], wsServer: [{
|
|
108
|
-
type: Input
|
|
109
|
-
}], jwtToken: [{
|
|
110
|
-
type: Input
|
|
111
|
-
}], user: [{
|
|
112
|
-
type: Input
|
|
113
|
-
}] } });
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1tYW5hZ2VyLXdzLWRlbW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9odHRwLXJlcXVlc3Qtc2VydmljZXMtZGVtby9yZXF1ZXN0LW1hbmFnZXItd3MtZGVtby9yZXF1ZXN0LW1hbmFnZXItd3MtZGVtby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vL3JlcXVlc3QtbWFuYWdlci13cy1kZW1vL3JlcXVlc3QtbWFuYWdlci13cy1kZW1vLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBYyxhQUFhLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBTyxNQUFNLE1BQU0sQ0FBQztBQUVsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQWdCLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7Ozs7QUFPaEYsTUFBTSxPQUFPLDZCQUE2QjtJQUwxQztRQU9FLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBQy9DLDRCQUF1QixHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO1FBRXpELE9BQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7UUFPeEIsVUFBSyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFL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QkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIG1hcCwgRU1QVFksIHRhcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBIVFRQTWFuYWdlclNlcnZpY2UsIFJhbmRvbU51bWJlciwgQ2hhbm5lbE1lc3NhZ2UsIENvbW11bmljYXRpb25UeXBlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgU3RhdGVSZXF1ZXN0U2VydmljZURlbW8gfSBmcm9tICcuL3NlcnZpY2VzL3N0YXRlLXJlcXVlc3QtZGVtby5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXJlcXVlc3QtbWFuYWdlci13cy1kZW1vJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcXVlc3QtbWFuYWdlci13cy1kZW1vLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVxdWVzdC1tYW5hZ2VyLXdzLWRlbW8uY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJlcXVlc3RNYW5hZ2VyV3NEZW1vQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBodHRwTWFuYWdlclNlcnZpY2UgPSBpbmplY3QoSFRUUE1hbmFnZXJTZXJ2aWNlKVxuICBzdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtbyA9IGluamVjdChTdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtbylcblxuICBmYiA9IGluamVjdChGb3JtQnVpbGRlcilcblxuICBASW5wdXQoKSBzZXJ2ZXIhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHdzU2VydmVyITogc3RyaW5nO1xuICBASW5wdXQoKSBqd3RUb2tlbiE6IHN0cmluZztcbiAgQElucHV0KCkgdXNlciE6IGFueTtcblxuICB1c2VyJCA9IHRoaXMuc3RhdGVSZXF1ZXN0U2VydmljZURlbW8udXNlciRcbiAgdXNlcnMkID0gdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby51c2VyTGlzdCRcblxuICBhdHRlbXB0cyQgPSB0aGlzLnN0YXRlUmVxdWVzdFNlcnZpY2VEZW1vLmF0dGVtcHRzJFxuICBuZXh0UmV0cnkkID0gdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby5uZXh0UmV0cnkkXG5cbiAgY29ubmVjdGlvblN0YXR1cyQgPSB0aGlzLnN0YXRlUmVxdWVzdFNlcnZpY2VEZW1vLnN0YXR1cyRcblxuICBtZXNzYWdlcyA9IHRoaXMuZmIuZ3JvdXA8YW55Pih7XG4gICAgdG9Vc2VyOiB0aGlzLmZiLmNvbnRyb2w8c3RyaW5nfG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgIGNvbnRlbnQ6IHRoaXMuZmIuY29udHJvbDxzdHJpbmd8bnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gIH0pXG5cbiAgZ2V0IHRvVXNlcigpIHtcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlcy5nZXQoJ3RvVXNlcicpIGFzIEZvcm1Db250cm9sXG4gIH1cblxuICBnZXQgY29udGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlcy5nZXQoJ2NvbnRlbnQnKSBhcyBGb3JtQ29udHJvbFxuICB9XG5cbiAgZ2V0IGlzVmFsaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9Vc2VyLnZhbGlkXG4gIH1cblxuICBkYXRhJCA9IHRoaXMuc3RhdGVSZXF1ZXN0U2VydmljZURlbW8uZGF0YSQ7XG4gIGlzUGVuZGluZyQgPSB0aGlzLnN0YXRlUmVxdWVzdFNlcnZpY2VEZW1vLmlzUGVuZGluZyQ7XG5cbiAgZnJvbU1lID0gKHVzZXI6IHN0cmluZywgZnJvbVVzZXI6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiB1c2VyID09PSBmcm9tVXNlclxuICB9XG5cbiAgY29tbXVuaWNhdGlvbk1lc3NhZ2VzJCA9IHRoaXMuc3RhdGVSZXF1ZXN0U2VydmljZURlbW8uY29tbXVuaWNhdGlvbk1lc3NhZ2VzJFxuICBsYXRlc3RDb21tdW5pY2F0aW9uTWVzc2FnZXMkID0gdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby5sYXRlc3RDb21tdW5pY2F0aW9uTWVzc2FnZXMkXG5cbiAgY2hhdCQ6IE9ic2VydmFibGU8eyB1c2VyOiBhbnksIG1lc3NhZ2VzOiBhbnlbXX18YW55PiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMudXNlciQsIHRoaXMuY29tbXVuaWNhdGlvbk1lc3NhZ2VzJF0pXG4gIC5waXBlKFxuICAgIG1hcCgoW3VzZXIsIG1lc3NhZ2VzXTogYW55KSA9PiAoeyB1c2VyLCBtZXNzYWdlcyB9KSksXG4gICAgbWFwKG9iaiA9PiB7XG5cbiAgICAgIGlmKCFvYmoudXNlcikgcmV0dXJuIEVNUFRZXG5cbiAgICAgIC8vIGNvbnN0IG1haW5Vc2VyID0gVXNlck5hbWUuYWRhcHQoe1xuICAgICAgLy8gICAgIGlkOiBvYmoudXNlci51c2VybmFtZSxcbiAgICAgIC8vICAgICBmaXJzdDogb2JqLnVzZXI/Lm5hbWU/LmZpcnN0LFxuICAgICAgLy8gICAgIGxhc3Q6IG9iai51c2VyPy5uYW1lPy5sYXN0LFxuICAgICAgLy8gfSlcblxuICAgICAgY29uc3QgbWFpblVzZXIgPSAnJ1xuXG4gICAgICBjb25zdCBtZXNzYWdlcyA9IG9iai5tZXNzYWdlcy5tYXAoKGl0ZW06IGFueSkgPT4ge1xuXG4gICAgICAgIGlmKGl0ZW0udG9Vc2VyID09PSAnYWxsQ2hhbm5lbHMnKSB7XG4gICAgICAgICAgLy8gaXRlbS50b1VzZXIgPSBVc2VyTmFtZS5hZGFwdCh7XG4gICAgICAgICAgLy8gICAgIGlkOiAnJyxcbiAgICAgICAgICAvLyAgICAgZmlyc3Q6ICdBbGwgVXNlcnMnLFxuICAgICAgICAgIC8vICAgICBsYXN0OiAnJyxcbiAgICAgICAgICAvLyB9KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmV0dXJuIE1lc3NhZ2UuYWRhcHQoe1xuICAgICAgICAvLyAgICAgZnJvbVVzZXI6IHtcbiAgICAgICAgLy8gICAgICAgaWQ6IGl0ZW0uZnJvbVVzZXIudXNlcm5hbWUsXG4gICAgICAgIC8vICAgICAgIGZpcnN0OiBpdGVtLmZyb21Vc2VyPy5uYW1lPy5maXJzdCxcbiAgICAgICAgLy8gICAgICAgbGFzdDogaXRlbS5mcm9tVXNlcj8ubmFtZT8ubGFzdCxcbiAgICAgICAgLy8gICAgIH0sXG4gICAgICAgIC8vICAgICB0b1VzZXI6IHtcbiAgICAgICAgLy8gICAgICAgaWQ6IGl0ZW0udG9Vc2VyLnVzZXJuYW1lLFxuICAgICAgICAvLyAgICAgICBmaXJzdDogaXRlbS50b1VzZXI/Lm5hbWU/LmZpcnN0LFxuICAgICAgICAvLyAgICAgICBsYXN0OiBpdGVtLnRvVXNlcj8ubmFtZT8ubGFzdCxcbiAgICAgICAgLy8gICAgIH0sXG4gICAgICAgIC8vICAgICBjb250ZW50OiBpdGVtLmNvbnRlbnQsXG4gICAgICAgIC8vICAgICBkYXRlOiBpdGVtLmlzc3VlZCxcbiAgICAgICAgLy8gfSlcbiAgICAgIH0pXG5cbiAgICAgIHJldHVybiB7IHVzZXI6IG1haW5Vc2VyLCBtZXNzYWdlcyB9XG5cbiAgICB9KVxuICApO1xuXG4gIG5nT25Jbml0KCkge1xuICAgICAgdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby51cGRhdGVDb25uZWN0aW9uKHRoaXMuc2VydmVyLCB0aGlzLndzU2VydmVyLCB0aGlzLmp3dFRva2VuLCB0aGlzLnVzZXIpO1xuICB9XG5cbiAgb25TZW5kTWVzc2FnZSgpIHtcbiAgICB0aGlzLm1lc3NhZ2VzLm1hcmtBbGxBc1RvdWNoZWQoKVxuICAgIGlmICh0aGlzLm1lc3NhZ2VzLmludmFsaWQpIHJldHVyblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBDaGFubmVsTWVzc2FnZS5hZGFwdCh0aGlzLm1lc3NhZ2VzLnZhbHVlKVxuICAgIHRoaXMuc3RhdGVSZXF1ZXN0U2VydmljZURlbW8uc2VuZE1lc3NhZ2UobWVzc2FnZSlcbiAgICB0aGlzLmNvbnRlbnQucmVzZXQoKVxuICB9XG5cbiAgb25TZW5kQWxlcnQoKSB7XG4gICAgdGhpcy5tZXNzYWdlcy5tYXJrQWxsQXNUb3VjaGVkKClcbiAgICBpZiAodGhpcy5tZXNzYWdlcy5pbnZhbGlkKSByZXR1cm5cbiAgICBjb25zdCBtZXNzYWdlID0gQ2hhbm5lbE1lc3NhZ2UuYWRhcHQoeyAuLi50aGlzLm1lc3NhZ2VzLnZhbHVlLCB0eXBlOiBDb21tdW5pY2F0aW9uVHlwZS5BTEVSVCB9KVxuICAgIHRoaXMuc3RhdGVSZXF1ZXN0U2VydmljZURlbW8uc2VuZE1lc3NhZ2UobWVzc2FnZSlcbiAgICB0aGlzLmNvbnRlbnQucmVzZXQoKVxuICB9XG5cbn1cbiIsIjxkaXYgc3R5bGU9XCJtYXJnaW46IDJyZW07XCI+XG5cbiAgPGgyIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cbiAgICA8c3BhbiBzdHlsZT1cImZsZXg6MVwiPkhUVFAgUmVxdWVzdCBTdGF0ZSBNYW5hZ2VyIC0gV2Vic29ja2V0czwvc3Bhbj5cbiAgICA8c3BhbiAqbmdJZj1cIihjb25uZWN0aW9uU3RhdHVzJCB8IGFzeW5jKSBhcyBjb25uZWN0ZWQ7IGVsc2UgTk9UX0NPTk5FQ1RFRFwiPlxuICAgICAgV1MgLVxuICAgICAgPHNwYW4gc3R5bGU9XCJjb2xvcjogZ3JlZW47XCI+Q29ubmVjdGVkPC9zcGFuPlxuICAgIDwvc3Bhbj5cbiAgICA8bmctdGVtcGxhdGUgI05PVF9DT05ORUNURUQ+XG4gICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiByZWQ7XCI+RGlzY29ubmVjdGVkIHt7IGF0dGVtcHRzJCB8IGFzeW5jIH19IC0ge3sgbmV4dFJldHJ5JCB8YXN5bmMgfX08L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9oMj5cblxuICA8ZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIih1c2VyJCB8IGFzeW5jKSBhcyB1c2VySW5mb1wiPlxuICAgICAgPG1hdC10b29sYmFyPlxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZmxleDoxXCI+XG4gICAgICAgICAgPGRpdiBzdHlsZT1cImZsZXg6MVwiPnt7IHVzZXJJbmZvLm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2Pih7eyB1c2VyLmxkYXAgfX0pPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtdG9vbGJhcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCIoaXNQZW5kaW5nJCB8IGFzeW5jKVwiPlxuICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgPC9kaXY+XG5cbiAgICA8bWF0LXRhYi1ncm91cCBhbmltYXRpb25EdXJhdGlvbj1cIjBtc1wiPlxuXG4gICAgICA8bWF0LXRhYiBsYWJlbD1cIldTIC0gRGF0YSBDb250cm9sXCI+XG4gICAgICAgIDwhLS0gREFUQSBDT05UUk9MIC0tPlxuICAgICAgICA8YXBwLXdzLWRhdGEtY29udHJvbFxuICAgICAgICAgIFtzZXJ2ZXJdPVwic2VydmVyXCJcbiAgICAgICAgICBbd3NTZXJ2ZXJdPVwid3NTZXJ2ZXJcIlxuICAgICAgICAgIFtqd3RUb2tlbl09XCJqd3RUb2tlblwiXG4gICAgICAgICAgW3VzZXJdPVwidXNlclwiXG4gICAgICAgID48L2FwcC13cy1kYXRhLWNvbnRyb2w+XG5cbiAgICAgIDwvbWF0LXRhYj5cblxuICAgICAgPG1hdC10YWIgbGFiZWw9XCJXUyAtIE1lc3NhZ2luZ1wiPlxuXG4gICAgICAgIDwhLS0gPGFwcC13cy1tZXNzYWdpbmdcbiAgICAgICAgICBbc2VydmVyXT1cInNlcnZlclwiXG4gICAgICAgICAgW3dzU2VydmVyXT1cIndzU2VydmVyXCJcbiAgICAgICAgICBband0VG9rZW5dPVwiand0VG9rZW5cIlxuICAgICAgICAgIFt1c2VyXT1cInVzZXJcIlxuICAgICAgICA+PC9hcHAtd3MtbWVzc2FnaW5nPiAtLT5cblxuICAgICAgPC9tYXQtdGFiPlxuXG4gICAgICA8bWF0LXRhYiBsYWJlbD1cIldTIC0gTm90aWZpY2F0aW9uc1wiIFtkaXNhYmxlZF09XCJ0cnVlXCI+XG4gICAgICAgIDxhcHAtd3Mtbm90aWZpY2F0aW9ucz48L2FwcC13cy1ub3RpZmljYXRpb25zPlxuICAgICAgICBXUyAtIEN1c3RvbSBNZXNzYWdpbmdcbiAgICAgIDwvbWF0LXRhYj5cblxuICAgICAgPG1hdC10YWIgbGFiZWw9XCJXUyAtIEFJIE1lc3NhZ2luZ1wiIFtkaXNhYmxlZF09XCJ0cnVlXCI+XG4gICAgICAgIDxhcHAtd3MtYWktbWVzc2FnaW5nPjwvYXBwLXdzLWFpLW1lc3NhZ2luZz5cbiAgICAgICAgV1MgLSBBSSBNZXNzYWdpbmdcbiAgICAgIDwvbWF0LXRhYj5cblxuICAgIDwvbWF0LXRhYi1ncm91cD5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuXG4iXX0=
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { UserData } from '../models/user-data.model';
|
|
3
|
-
import { DatabaseStorage, DataType, RetryOptions } from '../../../models';
|
|
4
|
-
import { HTTPManagerStateService, ApiRequest } from '../../../services';
|
|
5
|
-
import { OIDCClient } from '../models/oidc-client.model';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class StateRequestServiceDemo extends HTTPManagerStateService {
|
|
8
|
-
constructor() {
|
|
9
|
-
super(ApiRequest.adapt({
|
|
10
|
-
server: '',
|
|
11
|
-
retry: RetryOptions.adapt({
|
|
12
|
-
times: 3,
|
|
13
|
-
delay: 1,
|
|
14
|
-
}),
|
|
15
|
-
adapter: OIDCClient.adapt,
|
|
16
|
-
ws: {
|
|
17
|
-
id: ``,
|
|
18
|
-
// wsChannels: ['allChannels'],
|
|
19
|
-
// access: ['read,write,delete,update'],
|
|
20
|
-
wsServer: '',
|
|
21
|
-
jwtToken: '',
|
|
22
|
-
user: UserData.adapt(),
|
|
23
|
-
retry: RetryOptions.adapt({
|
|
24
|
-
times: 3,
|
|
25
|
-
delay: 10,
|
|
26
|
-
}),
|
|
27
|
-
}
|
|
28
|
-
}), DataType.ARRAY, DatabaseStorage.adapt({
|
|
29
|
-
table: 'ws_demo_data',
|
|
30
|
-
expiresIn: '5mn',
|
|
31
|
-
}));
|
|
32
|
-
this.attempts$ = this.wsRetryAttempts$;
|
|
33
|
-
this.nextRetry$ = this.wsNextRetry$;
|
|
34
|
-
}
|
|
35
|
-
updateConnection(server, wsServer, jwtToken, user) {
|
|
36
|
-
this.setApiRequestOptions({
|
|
37
|
-
server,
|
|
38
|
-
retry: RetryOptions.adapt({
|
|
39
|
-
times: 3,
|
|
40
|
-
delay: 1,
|
|
41
|
-
}),
|
|
42
|
-
adapter: OIDCClient.adapt,
|
|
43
|
-
ws: {
|
|
44
|
-
id: 'WS-USERS',
|
|
45
|
-
wsServer,
|
|
46
|
-
jwtToken,
|
|
47
|
-
user, // user object
|
|
48
|
-
retry: RetryOptions.adapt({
|
|
49
|
-
times: 3,
|
|
50
|
-
delay: 10,
|
|
51
|
-
}),
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
this.userAction$.subscribe(user => {
|
|
55
|
-
console.log('User Action:', user);
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
sendMessage(data) {
|
|
59
|
-
console.log('sendMessage', data);
|
|
60
|
-
this.wsMessaging(data);
|
|
61
|
-
}
|
|
62
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StateRequestServiceDemo, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
63
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StateRequestServiceDemo, providedIn: 'root' }); }
|
|
64
|
-
}
|
|
65
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StateRequestServiceDemo, decorators: [{
|
|
66
|
-
type: Injectable,
|
|
67
|
-
args: [{
|
|
68
|
-
providedIn: 'root'
|
|
69
|
-
}]
|
|
70
|
-
}], ctorParameters: () => [] });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtcmVxdWVzdC1kZW1vLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vL3JlcXVlc3QtbWFuYWdlci13cy1kZW1vL3NlcnZpY2VzL3N0YXRlLXJlcXVlc3QtZGVtby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxVQUFVLEVBQWdELE1BQU0sbUJBQW1CLENBQUM7QUFDdEgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUt6RCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsdUJBQTRCO0lBS3JFO1FBQ0EsS0FBSyxDQUNELFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFDZixNQUFNLEVBQUUsRUFBRTtZQUNWLEtBQUssRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDO2dCQUN4QixLQUFLLEVBQUUsQ0FBQztnQkFDUixLQUFLLEVBQUUsQ0FBQzthQUNULENBQUM7WUFDRixPQUFPLEVBQUUsVUFBVSxDQUFDLEtBQUs7WUFDekIsRUFBRSxFQUFFO2dCQUNGLEVBQUUsRUFBRSxFQUFFO2dCQUNOLCtCQUErQjtnQkFDL0Isd0NBQXdDO2dCQUN4QyxRQUFRLEVBQUUsRUFBRTtnQkFDWixRQUFRLEVBQUUsRUFBRTtnQkFDWixJQUFJLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRTtnQkFDdEIsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUM7b0JBQ3hCLEtBQUssRUFBRSxDQUFDO29CQUNSLEtBQUssRUFBRSxFQUFFO2lCQUNWLENBQUM7YUFDSDtTQUNGLENBQUMsRUFDRixRQUFRLENBQUMsS0FBSyxFQUNkLGVBQWUsQ0FBQyxLQUFLLENBQUM7WUFDcEIsS0FBSyxFQUFFLGNBQWM7WUFDckIsU0FBUyxFQUFFLEtBQUs7U0FDakIsQ0FBQyxDQUNILENBQUE7UUE5QkwsY0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQTtRQUNqQyxlQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQTtJQThCNUIsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQWMsRUFBRSxRQUFnQixFQUFFLFFBQWdCLEVBQUUsSUFBUztRQUU1RSxJQUFJLENBQUMsb0JBQW9CLENBQUM7WUFDdEIsTUFBTTtZQUNOLEtBQUssRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDO2dCQUN4QixLQUFLLEVBQUUsQ0FBQztnQkFDUixLQUFLLEVBQUUsQ0FBQzthQUNULENBQUM7WUFDRixPQUFPLEVBQUUsVUFBVSxDQUFDLEtBQUs7WUFDekIsRUFBRSxFQUFFO2dCQUNGLEVBQUUsRUFBRSxVQUFVO2dCQUNkLFFBQVE7Z0JBQ1IsUUFBUTtnQkFDUixJQUFJLEVBQUUsY0FBYztnQkFDcEIsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUM7b0JBQ3hCLEtBQUssRUFBRSxDQUFDO29CQUNSLEtBQUssRUFBRSxFQUFFO2lCQUNWLENBQUM7YUFDSDtTQUNGLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ25DLENBQUMsQ0FBQyxDQUFBO0lBRU4sQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFvQjtRQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3hCLENBQUM7K0dBakVRLHVCQUF1QjttSEFBdkIsdUJBQXVCLGNBRnRCLE1BQU07OzRGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVXNlckRhdGEgfSBmcm9tICcuLi9tb2RlbHMvdXNlci1kYXRhLm1vZGVsJztcbmltcG9ydCB7IERhdGFiYXNlU3RvcmFnZSwgRGF0YVR5cGUsIFJldHJ5T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5cbmltcG9ydCB7IEhUVFBNYW5hZ2VyU3RhdGVTZXJ2aWNlLCBBcGlSZXF1ZXN0LCBSZXF1ZXN0T3B0aW9ucywgUmFuZG9tTnVtYmVyLCBDaGFubmVsTWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IE9JRENDbGllbnQgfSBmcm9tICcuLi9tb2RlbHMvb2lkYy1jbGllbnQubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtbyBleHRlbmRzIEhUVFBNYW5hZ2VyU3RhdGVTZXJ2aWNlPGFueT4ge1xuXG4gIGF0dGVtcHRzJCA9IHRoaXMud3NSZXRyeUF0dGVtcHRzJFxuICBuZXh0UmV0cnkkID0gdGhpcy53c05leHRSZXRyeSRcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFxuICAgICAgICBBcGlSZXF1ZXN0LmFkYXB0KHtcbiAgICAgICAgICBzZXJ2ZXI6ICcnLFxuICAgICAgICAgIHJldHJ5OiBSZXRyeU9wdGlvbnMuYWRhcHQoe1xuICAgICAgICAgICAgdGltZXM6IDMsXG4gICAgICAgICAgICBkZWxheTogMSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBhZGFwdGVyOiBPSURDQ2xpZW50LmFkYXB0LFxuICAgICAgICAgIHdzOiB7XG4gICAgICAgICAgICBpZDogYGAsXG4gICAgICAgICAgICAvLyB3c0NoYW5uZWxzOiBbJ2FsbENoYW5uZWxzJ10sXG4gICAgICAgICAgICAvLyBhY2Nlc3M6IFsncmVhZCx3cml0ZSxkZWxldGUsdXBkYXRlJ10sXG4gICAgICAgICAgICB3c1NlcnZlcjogJycsXG4gICAgICAgICAgICBqd3RUb2tlbjogJycsXG4gICAgICAgICAgICB1c2VyOiBVc2VyRGF0YS5hZGFwdCgpLFxuICAgICAgICAgICAgcmV0cnk6IFJldHJ5T3B0aW9ucy5hZGFwdCh7XG4gICAgICAgICAgICAgIHRpbWVzOiAzLFxuICAgICAgICAgICAgICBkZWxheTogMTAsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBEYXRhVHlwZS5BUlJBWSxcbiAgICAgICAgRGF0YWJhc2VTdG9yYWdlLmFkYXB0KHtcbiAgICAgICAgICB0YWJsZTogJ3dzX2RlbW9fZGF0YScsXG4gICAgICAgICAgZXhwaXJlc0luOiAnNW1uJyxcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9XG5cbiAgICB1cGRhdGVDb25uZWN0aW9uKHNlcnZlcjogc3RyaW5nLCB3c1NlcnZlcjogc3RyaW5nLCBqd3RUb2tlbjogc3RyaW5nLCB1c2VyOiBhbnkpIHtcblxuICAgICAgdGhpcy5zZXRBcGlSZXF1ZXN0T3B0aW9ucyh7XG4gICAgICAgICAgc2VydmVyLFxuICAgICAgICAgIHJldHJ5OiBSZXRyeU9wdGlvbnMuYWRhcHQoe1xuICAgICAgICAgICAgdGltZXM6IDMsXG4gICAgICAgICAgICBkZWxheTogMSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBhZGFwdGVyOiBPSURDQ2xpZW50LmFkYXB0LFxuICAgICAgICAgIHdzOiB7XG4gICAgICAgICAgICBpZDogJ1dTLVVTRVJTJyxcbiAgICAgICAgICAgIHdzU2VydmVyLFxuICAgICAgICAgICAgand0VG9rZW4sXG4gICAgICAgICAgICB1c2VyLCAvLyB1c2VyIG9iamVjdFxuICAgICAgICAgICAgcmV0cnk6IFJldHJ5T3B0aW9ucy5hZGFwdCh7XG4gICAgICAgICAgICAgIHRpbWVzOiAzLFxuICAgICAgICAgICAgICBkZWxheTogMTAsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgdGhpcy51c2VyQWN0aW9uJC5zdWJzY3JpYmUodXNlciA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ1VzZXIgQWN0aW9uOicsIHVzZXIpXG4gICAgICAgIH0pXG5cbiAgICB9XG5cbiAgICBzZW5kTWVzc2FnZShkYXRhOiBDaGFubmVsTWVzc2FnZSkge1xuICAgICAgY29uc29sZS5sb2coJ3NlbmRNZXNzYWdlJywgZGF0YSlcbiAgICAgIHRoaXMud3NNZXNzYWdpbmcoZGF0YSlcbiAgICB9XG5cbiAgICAvLyBhZGREYXRhKCkge1xuXG4gICAgLy8gICBjb25zdCBudW0gPSBSYW5kb21OdW1iZXIoMTAwMCwgOTk5OSlcblxuICAgIC8vICAgY29uc3QgbmV3RGF0YSA9ICAgICB7XG4gICAgLy8gICAgICAgXCJzcGlmZmVcIjogYHNhbXBsZS5jb20vZGV2ZWxvcGVyLyR7bnVtfWAsXG4gICAgLy8gICAgICAgXCJsYXN0X25hbWVcIjogXCJib25pXCIsXG4gICAgLy8gICAgICAgXCJlbWFpbFwiOiBcIm1pa2Vib25pQGhvdG1haWwuY29tXCIsXG4gICAgLy8gICAgICAgXCJmaXJzdF9uYW1lXCI6IFwibWlrZVwiXG4gICAgLy8gICB9XG5cbiAgICAvLyAgIHRoaXMuY3JlYXRlUmVjb3JkKG5ld0RhdGEsIFJlcXVlc3RPcHRpb25zLmFkYXB0KHsgcGF0aDogWydhaScsJ3Rlc3RzJ10gfSkpXG5cbiAgICAvLyB9XG5cbiAgICAvLyBnZXREYXRhKCkge1xuICAgIC8vICAgdGhpcy5mZXRjaFJlY29yZHMoUmVxdWVzdE9wdGlvbnMuYWRhcHQoeyBwYXRoOiBbJ2FpJywndGVzdHMnXSB9KSlcbiAgICAvLyB9XG5cbiAgICAvLyB1cGRhdGVEYXRhKGRhdGE6IGFueSkge1xuICAgIC8vICAgY29uc3Qgc2FtcGxlT3B0aW9ucyA9IFJlcXVlc3RPcHRpb25zLmFkYXB0KHsgcGF0aDogWydhaScsICd0ZXN0cycsIGRhdGEuaWRdIH0pXG4gICAgLy8gICBjb25zb2xlLmxvZygndXBkYXRlRGF0YScsIHNhbXBsZU9wdGlvbnMpXG4gICAgLy8gICB0aGlzLnVwZGF0ZVJlY29yZChkYXRhLCBzYW1wbGVPcHRpb25zKVxuXG4gICAgLy8gfVxuXG4gICAgLy8gZGVsZXRlRGF0YShkYXRhOiBhbnkpIHtcbiAgICAvLyAgIGNvbnN0IHNhbXBsZU9wdGlvbnMgPSBSZXF1ZXN0T3B0aW9ucy5hZGFwdCh7IHBhdGg6IFsnYWknLCAndGVzdHMnLCBkYXRhLmlkXSB9KVxuICAgIC8vICAgY29uc29sZS5sb2coJ2RlbGV0ZURhdGEnLCBzYW1wbGVPcHRpb25zKVxuICAgIC8vICAgdGhpcy5kZWxldGVSZWNvcmQoc2FtcGxlT3B0aW9ucylcbiAgICAvLyB9XG5cbn1cbiJdfQ==
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export class AIPrompt {
|
|
2
|
-
constructor(response = '') {
|
|
3
|
-
this.response = response;
|
|
4
|
-
}
|
|
5
|
-
static adapt(item) {
|
|
6
|
-
return new AIPrompt(item?.response);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtcGxlLWFpLXByb21wdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1zaWduYWxzLW1hbmFnZXItZGVtby9tb2RlbHMvc2FtcGxlLWFpLXByb21wdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sUUFBUTtJQUVuQixZQUNTLFdBQVcsRUFBRTtRQUFiLGFBQVEsR0FBUixRQUFRLENBQUs7SUFDbkIsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBVTtRQUVyQixPQUFPLElBQUksUUFBUSxDQUNqQixJQUFJLEVBQUUsUUFBUSxDQUNmLENBQUE7SUFFSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFJUHJvbXB0SW50ZXJmYWNlIHtcbiAgcmVzcG9uc2U6IHN0cmluZ1xufVxuXG5leHBvcnQgY2xhc3MgQUlQcm9tcHQgaW1wbGVtZW50cyBBSVByb21wdEludGVyZmFjZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlc3BvbnNlID0gJycsXG4gICkge31cblxuICBzdGF0aWMgYWRhcHQoaXRlbT86IGFueSk6IEFJUHJvbXB0IHtcblxuICAgIHJldHVybiBuZXcgQUlQcm9tcHQoXG4gICAgICBpdGVtPy5yZXNwb25zZSxcbiAgICApXG5cbiAgfVxuXG59XG4iXX0=
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export class ClientInfo {
|
|
2
|
-
constructor(domain = '', service = '', id = 0, name = '') {
|
|
3
|
-
this.domain = domain;
|
|
4
|
-
this.service = service;
|
|
5
|
-
this.id = id;
|
|
6
|
-
this.name = name;
|
|
7
|
-
}
|
|
8
|
-
static adapt(item) {
|
|
9
|
-
return new ClientInfo(item?.domain, item?.service, item?.id, (item?.first_name || item?.last_name) ? `${item?.first_name} ${item?.last_name}` : '');
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtcGxlLWNsaWVudC1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9odHRwLXJlcXVlc3Qtc2VydmljZXMtZGVtby9yZXF1ZXN0LXNpZ25hbHMtbWFuYWdlci1kZW1vL21vZGVscy9zYW1wbGUtY2xpZW50LWluZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxPQUFPLFVBQVU7SUFFckIsWUFDUyxTQUFTLEVBQUUsRUFDWCxVQUFVLEVBQUUsRUFDWixLQUFLLENBQUMsRUFDTixPQUFPLEVBQUU7UUFIVCxXQUFNLEdBQU4sTUFBTSxDQUFLO1FBQ1gsWUFBTyxHQUFQLE9BQU8sQ0FBSztRQUNaLE9BQUUsR0FBRixFQUFFLENBQUk7UUFDTixTQUFJLEdBQUosSUFBSSxDQUFLO0lBQ2YsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBVTtRQUVyQixPQUFPLElBQUksVUFBVSxDQUNuQixJQUFJLEVBQUUsTUFBTSxFQUNaLElBQUksRUFBRSxPQUFPLEVBQ2IsSUFBSSxFQUFFLEVBQUUsRUFDUixDQUFDLElBQUksRUFBRSxVQUFVLElBQUksSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxVQUFVLElBQUksSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ3RGLENBQUE7SUFFSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENsaWVudEluZm9JbnRlcmZhY2Uge1xuICBkb21haW46IHN0cmluZ1xuICBzZXJ2aWNlOiBzdHJpbmdcbiAgaWQ6IG51bWJlclxuICBuYW1lOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNsYXNzIENsaWVudEluZm8gaW1wbGVtZW50cyBDbGllbnRJbmZvSW50ZXJmYWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZG9tYWluID0gJycsXG4gICAgcHVibGljIHNlcnZpY2UgPSAnJyxcbiAgICBwdWJsaWMgaWQgPSAwLFxuICAgIHB1YmxpYyBuYW1lID0gJycsXG4gICkge31cblxuICBzdGF0aWMgYWRhcHQoaXRlbT86IGFueSk6IENsaWVudEluZm8ge1xuXG4gICAgcmV0dXJuIG5ldyBDbGllbnRJbmZvKFxuICAgICAgaXRlbT8uZG9tYWluLFxuICAgICAgaXRlbT8uc2VydmljZSxcbiAgICAgIGl0ZW0/LmlkLFxuICAgICAgKGl0ZW0/LmZpcnN0X25hbWUgfHwgaXRlbT8ubGFzdF9uYW1lKSA/IGAke2l0ZW0/LmZpcnN0X25hbWV9ICR7aXRlbT8ubGFzdF9uYW1lfWAgOiAnJyxcbiAgICApXG5cbiAgfVxuXG59XG5cblxuIl19
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export class ClientInfoMapper {
|
|
2
|
-
constructor(id = 0, first_name = '', last_name = '', email = '') {
|
|
3
|
-
this.id = id;
|
|
4
|
-
this.first_name = first_name;
|
|
5
|
-
this.last_name = last_name;
|
|
6
|
-
this.email = email;
|
|
7
|
-
}
|
|
8
|
-
static adapt(item) {
|
|
9
|
-
const first_name = (item?.name) ? item.name.split(' ')[0] : '';
|
|
10
|
-
const last_name = (item?.name) ? item.name.split(' ')[1] : '';
|
|
11
|
-
return new ClientInfoMapper(item?.id, first_name, last_name, item?.email);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtcGxlLW1hcHBlci1jbGllbnQtaW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1zaWduYWxzLW1hbmFnZXItZGVtby9tb2RlbHMvc2FtcGxlLW1hcHBlci1jbGllbnQtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQ1MsS0FBSyxDQUFDLEVBQ04sYUFBYSxFQUFFLEVBQ2YsWUFBWSxFQUFFLEVBQ2QsUUFBUSxFQUFFO1FBSFYsT0FBRSxHQUFGLEVBQUUsQ0FBSTtRQUNOLGVBQVUsR0FBVixVQUFVLENBQUs7UUFDZixjQUFTLEdBQVQsU0FBUyxDQUFLO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBSztJQUNoQixDQUFDO0lBRUosTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFVO1FBRXJCLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBQzlELE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBRTdELE9BQU8sSUFBSSxnQkFBZ0IsQ0FDekIsSUFBSSxFQUFFLEVBQUUsRUFDUixVQUFVLEVBQ1YsU0FBUyxFQUNULElBQUksRUFBRSxLQUFLLENBQ1osQ0FBQTtJQUVILENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ2xpZW50SW5mb01hcHBlckludGVyZmFjZSB7XG4gIGlkOiBudW1iZXJcbiAgZmlyc3RfbmFtZTogc3RyaW5nXG4gIGxhc3RfbmFtZTogc3RyaW5nXG4gIGVtYWlsOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNsYXNzIENsaWVudEluZm9NYXBwZXIgaW1wbGVtZW50cyBDbGllbnRJbmZvTWFwcGVySW50ZXJmYWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaWQgPSAwLFxuICAgIHB1YmxpYyBmaXJzdF9uYW1lID0gJycsXG4gICAgcHVibGljIGxhc3RfbmFtZSA9ICcnLFxuICAgIHB1YmxpYyBlbWFpbCA9ICcnLFxuICApIHt9XG5cbiAgc3RhdGljIGFkYXB0KGl0ZW0/OiBhbnkpOiBDbGllbnRJbmZvTWFwcGVyIHtcblxuICAgIGNvbnN0IGZpcnN0X25hbWUgPSAoaXRlbT8ubmFtZSkgPyBpdGVtLm5hbWUuc3BsaXQoJyAnKVswXSA6ICcnXG4gICAgY29uc3QgbGFzdF9uYW1lID0gKGl0ZW0/Lm5hbWUpID8gaXRlbS5uYW1lLnNwbGl0KCcgJylbMV0gOiAnJ1xuXG4gICAgcmV0dXJuIG5ldyBDbGllbnRJbmZvTWFwcGVyKFxuICAgICAgaXRlbT8uaWQsXG4gICAgICBmaXJzdF9uYW1lLFxuICAgICAgbGFzdF9uYW1lLFxuICAgICAgaXRlbT8uZW1haWwsXG4gICAgKVxuXG4gIH1cblxufVxuXG5cbiJdfQ==
|